From 578600b9bb1e0b6b6d94c256afd54009bc200e04 Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Tue, 21 Aug 2012 22:45:46 +0900 Subject: [PATCH] tizen 2.0 init --- ChangeLog | 8666 +++++++++++++- Makefile.am | 4 + Makefile.in | 108 +- NEWS | 333 +- RELEASE | 518 +- REQUIREMENTS | 3 +- aclocal.m4 | 113 +- autoregen.sh | 2 - common/Makefile.in | 56 +- common/check-exports | 4 +- common/gst.supp | 36 +- common/gstdoc-scangobj | 75 +- common/gtk-doc-plugins.mak | 138 +- common/gtk-doc.mak | 127 +- common/m4/Makefile.in | 56 +- common/m4/gst-args.m4 | 5 +- common/m4/gst-feature.m4 | 59 +- common/m4/gst-glib2.m4 | 2 + common/m4/introspection.m4 | 6 + common/m4/orc.m4 | 12 +- common/scangobj-merge.py | 41 +- compile | 195 +- config.guess | 1517 +++ config.h.in | 33 +- config.sub | 1760 +++ configure | 7283 ++++++++---- configure.ac | 280 +- debian/changelog | 329 +- debian/control | 4 +- debian/rules | 240 +- depcomp | 74 +- docs/Makefile.am | 4 +- docs/Makefile.in | 60 +- docs/libs/Makefile.am | 69 + docs/libs/Makefile.in | 1047 ++ docs/libs/compiling.sgml | 48 + docs/libs/gst-plugins-bad-libs-docs.sgml | 65 + docs/libs/gst-plugins-bad-libs-overrides.txt | 0 docs/libs/gst-plugins-bad-libs-sections.txt | 483 + docs/libs/gst-plugins-bad-libs.types | 4 + docs/libs/html/annotation-glossary.html | 44 + docs/libs/html/api-index-deprecated.html | 31 + docs/libs/html/api-index-full.html | 1443 +++ docs/libs/html/codecparsers.html | 53 + docs/libs/html/compiling.html | 64 + .../gst-plugins-bad-libs-GstBaseVideoCodec.html | 221 + .../gst-plugins-bad-libs-GstBaseVideoDecoder.html | 601 + .../gst-plugins-bad-libs-GstBaseVideoEncoder.html | 415 + .../gst-plugins-bad-libs-GstSurfaceBuffer.html | 173 + .../gst-plugins-bad-libs-GstSurfaceConverter.html | 159 + ...-plugins-bad-libs-GstVideoContextInterface.html | 752 ++ .../gst-plugins-bad-libs-gstbasevideoutils.html | 96 + .../libs/html/gst-plugins-bad-libs-h264parser.html | 1721 +++ .../html/gst-plugins-bad-libs-mpeg4parser.html | 1044 ++ .../html/gst-plugins-bad-libs-mpegvideoparser.html | 1070 ++ docs/libs/html/gst-plugins-bad-libs-vc1parser.html | 1268 ++ docs/libs/html/gst-plugins-bad-libs.devhelp2 | 304 + docs/libs/html/gstreamer-libs-hierarchy.html | 32 + docs/libs/html/gstreamer-plugins-bad.html | 87 + docs/libs/html/home.png | Bin 0 -> 654 bytes docs/libs/html/index.html | 86 + docs/libs/html/index.sgml | 319 + docs/libs/html/left.png | Bin 0 -> 459 bytes docs/libs/html/right.png | Bin 0 -> 472 bytes docs/libs/html/style.css | 266 + docs/libs/html/up.png | Bin 0 -> 406 bytes docs/libs/html/video.html | 53 + docs/plugins/Makefile.am | 57 +- docs/plugins/Makefile.in | 251 +- docs/plugins/gst-plugins-bad-plugins-docs.sgml | 18 +- docs/plugins/gst-plugins-bad-plugins-sections.txt | 140 +- docs/plugins/gst-plugins-bad-plugins.args | 11822 +++++++++++++++++-- docs/plugins/gst-plugins-bad-plugins.hierarchy | 526 + docs/plugins/gst-plugins-bad-plugins.interfaces | 70 +- docs/plugins/gst-plugins-bad-plugins.prerequisites | 7 +- docs/plugins/html/GstPhotography.html | 645 +- docs/plugins/html/ch01.html | 46 +- docs/plugins/html/ch02.html | 28 +- docs/plugins/html/ch03.html | 10 +- .../html/gst-plugins-bad-plugins-aiffmux.html | 14 +- .../html/gst-plugins-bad-plugins-aiffparse.html | 12 +- .../html/gst-plugins-bad-plugins-amrwbenc.html | 195 - .../html/gst-plugins-bad-plugins-assrender.html | 35 +- .../html/gst-plugins-bad-plugins-autoconvert.html | 10 +- .../html/gst-plugins-bad-plugins-bulge.html | 10 +- .../plugins/html/gst-plugins-bad-plugins-burn.html | 12 +- .../html/gst-plugins-bad-plugins-camerabin.html | 44 +- .../html/gst-plugins-bad-plugins-camerabin2.html | 551 + .../html/gst-plugins-bad-plugins-celtdec.html | 42 +- .../html/gst-plugins-bad-plugins-celtenc.html | 38 +- .../html/gst-plugins-bad-plugins-chromium.html | 12 +- .../html/gst-plugins-bad-plugins-circle.html | 10 +- .../html/gst-plugins-bad-plugins-coloreffects.html | 18 +- .../html/gst-plugins-bad-plugins-curlsink.html | 44 +- .../html/gst-plugins-bad-plugins-cvdilate.html | 34 +- .../gst-plugins-bad-plugins-cvequalizehist.html | 33 +- .../html/gst-plugins-bad-plugins-cverode.html | 34 +- .../html/gst-plugins-bad-plugins-cvlaplace.html | 37 +- .../html/gst-plugins-bad-plugins-cvsmooth.html | 40 +- .../html/gst-plugins-bad-plugins-cvsobel.html | 41 +- .../html/gst-plugins-bad-plugins-dataurisrc.html | 12 +- .../gst-plugins-bad-plugins-dccpclientsink.html | 12 +- .../gst-plugins-bad-plugins-dccpclientsrc.html | 12 +- .../gst-plugins-bad-plugins-dccpserversink.html | 12 +- .../gst-plugins-bad-plugins-dccpserversrc.html | 12 +- .../html/gst-plugins-bad-plugins-dfbvideosink.html | 175 +- .../html/gst-plugins-bad-plugins-diffuse.html | 10 +- .../html/gst-plugins-bad-plugins-dilate.html | 12 +- .../gst-plugins-bad-plugins-directdrawsink.html | 35 +- .../html/gst-plugins-bad-plugins-dodge.html | 12 +- .../html/gst-plugins-bad-plugins-dtmfdetect.html | 10 +- .../html/gst-plugins-bad-plugins-dtmfsrc.html | 28 +- .../html/gst-plugins-bad-plugins-dtsdec.html | 45 +- .../html/gst-plugins-bad-plugins-dvbsrc.html | 67 +- .../html/gst-plugins-bad-plugins-dvdspu.html | 12 +- .../html/gst-plugins-bad-plugins-edgedetect.html | 95 +- .../html/gst-plugins-bad-plugins-exclusion.html | 12 +- .../plugins/html/gst-plugins-bad-plugins-faac.html | 91 +- .../plugins/html/gst-plugins-bad-plugins-faad.html | 51 +- .../html/gst-plugins-bad-plugins-faceblur.html | 68 +- .../html/gst-plugins-bad-plugins-facedetect.html | 132 +- .../html/gst-plugins-bad-plugins-festival.html | 12 +- .../html/gst-plugins-bad-plugins-fisheye.html | 12 +- .../gst-plugins-bad-plugins-fpsdisplaysink.html | 12 +- .../html/gst-plugins-bad-plugins-freeze.html | 12 +- .../html/gst-plugins-bad-plugins-gaussianblur.html | 10 +- .../html/gst-plugins-bad-plugins-ivfparse.html | 10 +- .../html/gst-plugins-bad-plugins-jpegparse.html | 12 +- .../html/gst-plugins-bad-plugins-kaleidoscope.html | 10 +- .../html/gst-plugins-bad-plugins-katedec.html | 47 +- .../html/gst-plugins-bad-plugins-kateenc.html | 38 +- .../html/gst-plugins-bad-plugins-kateparse.html | 56 +- .../html/gst-plugins-bad-plugins-katetag.html | 62 +- .../html/gst-plugins-bad-plugins-ladspa.html | 15 +- .../gst-plugins-bad-plugins-legacyresample.html | 12 +- .../html/gst-plugins-bad-plugins-liveadder.html | 10 +- .../html/gst-plugins-bad-plugins-marble.html | 10 +- .../html/gst-plugins-bad-plugins-mimdec.html | 21 +- .../html/gst-plugins-bad-plugins-mimenc.html | 29 +- .../html/gst-plugins-bad-plugins-mirror.html | 12 +- .../html/gst-plugins-bad-plugins-modplug.html | 32 +- .../html/gst-plugins-bad-plugins-mpeg2enc.html | 62 +- .../html/gst-plugins-bad-plugins-mplex.html | 50 +- .../html/gst-plugins-bad-plugins-mxfdemux.html | 16 +- .../html/gst-plugins-bad-plugins-mxfmux.html | 12 +- .../html/gst-plugins-bad-plugins-mythtvsrc.html | 67 +- .../html/gst-plugins-bad-plugins-nuvdemux.html | 12 +- .../gst-plugins-bad-plugins-opencvtextoverlay.html | 31 +- .../html/gst-plugins-bad-plugins-pcapparse.html | 25 +- .../html/gst-plugins-bad-plugins-pinch.html | 10 +- .../html/gst-plugins-bad-plugins-plugin-aiff.html | 16 +- .../gst-plugins-bad-plugins-plugin-assrender.html | 16 +- ...lugins-bad-plugins-plugin-audiovisualizers.html | 88 + ...gst-plugins-bad-plugins-plugin-autoconvert.html | 16 +- .../html/gst-plugins-bad-plugins-plugin-bayer.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-bz2.html | 12 +- .../gst-plugins-bad-plugins-plugin-camerabin.html | 16 +- .../gst-plugins-bad-plugins-plugin-camerabin2.html | 84 + .../gst-plugins-bad-plugins-plugin-cdaudio.html | 16 +- .../gst-plugins-bad-plugins-plugin-cdxaparse.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-celt.html | 12 +- ...st-plugins-bad-plugins-plugin-coloreffects.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-curl.html | 12 +- .../gst-plugins-bad-plugins-plugin-dataurisrc.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-dccp.html | 12 +- ...t-plugins-bad-plugins-plugin-debugutilsbad.html | 20 +- ...st-plugins-bad-plugins-plugin-dfbvideosink.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-dirac.html | 12 +- .../gst-plugins-bad-plugins-plugin-directdraw.html | 10 +- .../html/gst-plugins-bad-plugins-plugin-dtmf.html | 14 +- .../gst-plugins-bad-plugins-plugin-dtsdec.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-dvb.html | 12 +- .../gst-plugins-bad-plugins-plugin-dvdspu.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-faac.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-faad.html | 12 +- .../gst-plugins-bad-plugins-plugin-fbdevsink.html | 12 +- .../gst-plugins-bad-plugins-plugin-festival.html | 12 +- .../gst-plugins-bad-plugins-plugin-filter.html | 10 +- .../gst-plugins-bad-plugins-plugin-freeze.html | 12 +- .../gst-plugins-bad-plugins-plugin-frei0r.html | 16 +- ...st-plugins-bad-plugins-plugin-gaudieffects.html | 12 +- ...gins-bad-plugins-plugin-geometrictransform.html | 14 +- .../html/gst-plugins-bad-plugins-plugin-gsm.html | 12 +- .../gst-plugins-bad-plugins-plugin-h264parse.html | 12 +- .../gst-plugins-bad-plugins-plugin-ivfparse.html | 12 +- .../gst-plugins-bad-plugins-plugin-jpegformat.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-kate.html | 12 +- .../gst-plugins-bad-plugins-plugin-ladspa.html | 12 +- ...-plugins-bad-plugins-plugin-legacyresample.html | 16 +- .../gst-plugins-bad-plugins-plugin-liveadder.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-lv2.html | 112 +- .../html/gst-plugins-bad-plugins-plugin-mimic.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-mms.html | 12 +- .../gst-plugins-bad-plugins-plugin-modplug.html | 12 +- .../gst-plugins-bad-plugins-plugin-mpeg2enc.html | 12 +- ...plugins-bad-plugins-plugin-mpeg4videoparse.html | 14 +- .../gst-plugins-bad-plugins-plugin-mpegdemux2.html | 12 +- .../gst-plugins-bad-plugins-plugin-mpegpsmux.html | 12 +- .../gst-plugins-bad-plugins-plugin-mpegtsmux.html | 12 +- ...-plugins-bad-plugins-plugin-mpegvideoparse.html | 14 +- .../html/gst-plugins-bad-plugins-plugin-mplex.html | 12 +- .../gst-plugins-bad-plugins-plugin-musepack.html | 12 +- ...gst-plugins-bad-plugins-plugin-musicbrainz.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-mve.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-mxf.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-nas.html | 14 +- .../html/gst-plugins-bad-plugins-plugin-neon.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-nsf.html | 12 +- .../gst-plugins-bad-plugins-plugin-nuvdemux.html | 12 +- .../gst-plugins-bad-plugins-plugin-opencv.html | 14 +- .../gst-plugins-bad-plugins-plugin-pcapparse.html | 22 +- .../gst-plugins-bad-plugins-plugin-rawparse.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-real.html | 12 +- .../gst-plugins-bad-plugins-plugin-rfbsrc.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-rsvg.html | 16 +- .../html/gst-plugins-bad-plugins-plugin-rtmp.html | 80 + .../gst-plugins-bad-plugins-plugin-rtpmux.html | 16 +- .../gst-plugins-bad-plugins-plugin-scaletempo.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-sdl.html | 14 +- .../html/gst-plugins-bad-plugins-plugin-sdp.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-shm.html | 12 +- .../gst-plugins-bad-plugins-plugin-sndfile.html | 12 +- .../gst-plugins-bad-plugins-plugin-soundtouch.html | 12 +- .../gst-plugins-bad-plugins-plugin-spcdec.html | 10 +- .../html/gst-plugins-bad-plugins-plugin-speed.html | 12 +- .../gst-plugins-bad-plugins-plugin-stereo.html | 12 +- .../gst-plugins-bad-plugins-plugin-swfdec.html | 10 +- .../gst-plugins-bad-plugins-plugin-timidity.html | 16 +- .../html/gst-plugins-bad-plugins-plugin-tta.html | 12 +- .../gst-plugins-bad-plugins-plugin-vcdsrc.html | 12 +- ...st-plugins-bad-plugins-plugin-videomaxrate.html | 12 +- ...gst-plugins-bad-plugins-plugin-videosignal.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-vmnc.html | 12 +- ...> gst-plugins-bad-plugins-plugin-voaacenc.html} | 38 +- .../html/gst-plugins-bad-plugins-plugin-vp8.html | 16 +- .../gst-plugins-bad-plugins-plugin-wildmidi.html | 12 +- .../html/gst-plugins-bad-plugins-plugin-xvid.html | 16 +- .../html/gst-plugins-bad-plugins-plugin-zbar.html | 14 +- .../gst-plugins-bad-plugins-pyramidsegment.html | 100 +- .../html/gst-plugins-bad-plugins-rsvgdec.html | 31 +- .../html/gst-plugins-bad-plugins-rsvgoverlay.html | 82 +- .../html/gst-plugins-bad-plugins-rtmpsink.html | 149 + .../html/gst-plugins-bad-plugins-rtmpsrc.html | 150 + .../html/gst-plugins-bad-plugins-rtpdtmfdepay.html | 233 - .../html/gst-plugins-bad-plugins-rtpdtmfmux.html | 10 +- .../html/gst-plugins-bad-plugins-rtpdtmfsrc.html | 32 +- .../html/gst-plugins-bad-plugins-rtpmux.html | 12 +- .../html/gst-plugins-bad-plugins-scaletempo.html | 65 +- .../html/gst-plugins-bad-plugins-sdlaudiosink.html | 42 +- .../html/gst-plugins-bad-plugins-sdlvideosink.html | 52 +- .../html/gst-plugins-bad-plugins-sdpdemux.html | 16 +- .../html/gst-plugins-bad-plugins-shmsink.html | 18 +- .../html/gst-plugins-bad-plugins-shmsrc.html | 12 +- .../html/gst-plugins-bad-plugins-solarize.html | 16 +- .../html/gst-plugins-bad-plugins-spacescope.html | 188 + .../html/gst-plugins-bad-plugins-spectrascope.html | 171 + .../html/gst-plugins-bad-plugins-speed.html | 18 +- .../html/gst-plugins-bad-plugins-sphere.html | 10 +- .../html/gst-plugins-bad-plugins-square.html | 12 +- .../html/gst-plugins-bad-plugins-stereo.html | 12 +- .../html/gst-plugins-bad-plugins-stretch.html | 10 +- .../html/gst-plugins-bad-plugins-synaescope.html | 171 + .../gst-plugins-bad-plugins-templatematch.html | 37 +- .../html/gst-plugins-bad-plugins-tiger.html | 62 +- .../html/gst-plugins-bad-plugins-timidity.html | 37 +- docs/plugins/html/gst-plugins-bad-plugins-trm.html | 49 +- .../html/gst-plugins-bad-plugins-tunnel.html | 10 +- .../html/gst-plugins-bad-plugins-twirl.html | 10 +- .../html/gst-plugins-bad-plugins-videoanalyse.html | 12 +- .../html/gst-plugins-bad-plugins-videodetect.html | 14 +- .../html/gst-plugins-bad-plugins-videomark.html | 16 +- .../html/gst-plugins-bad-plugins-videomaxrate.html | 14 +- .../html/gst-plugins-bad-plugins-videoparse.html | 10 +- .../html/gst-plugins-bad-plugins-voaacenc.html | 153 + .../html/gst-plugins-bad-plugins-voamrwbenc.html | 55 + .../html/gst-plugins-bad-plugins-vp8dec.html | 43 +- .../html/gst-plugins-bad-plugins-vp8enc.html | 161 +- .../html/gst-plugins-bad-plugins-waterripple.html | 10 +- .../html/gst-plugins-bad-plugins-wavescope.html | 188 + .../html/gst-plugins-bad-plugins-wildmidi.html | 40 +- .../plugins/html/gst-plugins-bad-plugins-zbar.html | 99 +- docs/plugins/html/gst-plugins-bad-plugins.devhelp | 1090 -- docs/plugins/html/gst-plugins-bad-plugins.devhelp2 | 692 +- docs/plugins/html/index.html | 65 +- docs/plugins/html/index.sgml | 274 +- docs/plugins/inspect/plugin-adpcmdec.xml | 4 +- docs/plugins/inspect/plugin-adpcmenc.xml | 4 +- docs/plugins/inspect/plugin-aiff.xml | 2 +- docs/plugins/inspect/plugin-amrwbenc.xml | 34 - docs/plugins/inspect/plugin-apexsink.xml | 4 +- docs/plugins/inspect/plugin-asfmux.xml | 2 +- docs/plugins/inspect/plugin-assrender.xml | 2 +- docs/plugins/inspect/plugin-audiovisualizers.xml | 97 + docs/plugins/inspect/plugin-autoconvert.xml | 2 +- docs/plugins/inspect/plugin-bayer.xml | 4 +- docs/plugins/inspect/plugin-bz2.xml | 2 +- docs/plugins/inspect/plugin-camerabin.xml | 2 +- docs/plugins/inspect/plugin-camerabin2.xml | 64 + docs/plugins/inspect/plugin-cdaudio.xml | 2 +- docs/plugins/inspect/plugin-cdxaparse.xml | 2 +- docs/plugins/inspect/plugin-celt.xml | 2 +- docs/plugins/inspect/plugin-cog.xml | 2 +- docs/plugins/inspect/plugin-coloreffects.xml | 2 +- docs/plugins/inspect/plugin-colorspace.xml | 2 +- docs/plugins/inspect/plugin-curl.xml | 2 +- docs/plugins/inspect/plugin-dataurisrc.xml | 2 +- docs/plugins/inspect/plugin-dc1394.xml | 2 +- docs/plugins/inspect/plugin-dccp.xml | 2 +- docs/plugins/inspect/plugin-debugutilsbad.xml | 50 +- docs/plugins/inspect/plugin-decklink.xml | 6 +- docs/plugins/inspect/plugin-dfbvideosink.xml | 2 +- docs/plugins/inspect/plugin-dirac.xml | 2 +- docs/plugins/inspect/plugin-divxdec.xml | 34 + docs/plugins/inspect/plugin-divxenc.xml | 34 + docs/plugins/inspect/plugin-dtmf.xml | 2 +- docs/plugins/inspect/plugin-dtsdec.xml | 2 +- docs/plugins/inspect/plugin-dvb.xml | 2 +- docs/plugins/inspect/plugin-dvbsuboverlay.xml | 2 +- docs/plugins/inspect/plugin-dvdspu.xml | 2 +- docs/plugins/inspect/plugin-faac.xml | 6 +- docs/plugins/inspect/plugin-faad.xml | 4 +- docs/plugins/inspect/plugin-faceoverlay.xml | 34 + docs/plugins/inspect/plugin-fbdevsink.xml | 2 +- docs/plugins/inspect/plugin-festival.xml | 2 +- docs/plugins/inspect/plugin-fieldanalysis.xml | 2 +- docs/plugins/inspect/plugin-flite.xml | 28 + docs/plugins/inspect/plugin-fragmented.xml | 6 +- docs/plugins/inspect/plugin-freeverb.xml | 34 + docs/plugins/inspect/plugin-freeze.xml | 2 +- docs/plugins/inspect/plugin-frei0r.xml | 23 +- docs/plugins/inspect/plugin-gaudieffects.xml | 2 +- docs/plugins/inspect/plugin-geometrictransform.xml | 10 +- docs/plugins/inspect/plugin-gmedec.xml | 2 +- docs/plugins/inspect/plugin-gsettings.xml | 2 +- docs/plugins/inspect/plugin-gsm.xml | 2 +- docs/plugins/inspect/plugin-gstsiren.xml | 2 +- docs/plugins/inspect/plugin-h264parse.xml | 2 +- docs/plugins/inspect/plugin-hdvparse.xml | 2 +- docs/plugins/inspect/plugin-id3tag.xml | 2 +- docs/plugins/inspect/plugin-inter.xml | 73 + docs/plugins/inspect/plugin-interlace.xml | 2 +- docs/plugins/inspect/plugin-invtelecine.xml | 4 +- docs/plugins/inspect/plugin-ivfparse.xml | 2 +- docs/plugins/inspect/plugin-jp2kdecimator.xml | 2 +- docs/plugins/inspect/plugin-jpegformat.xml | 4 +- docs/plugins/inspect/plugin-kate.xml | 6 +- docs/plugins/inspect/plugin-ladspa.xml | 2 +- docs/plugins/inspect/plugin-legacyresample.xml | 2 +- docs/plugins/inspect/plugin-linsys.xml | 2 +- docs/plugins/inspect/plugin-liveadder.xml | 2 +- docs/plugins/inspect/plugin-lv2.xml | 1003 +- docs/plugins/inspect/plugin-mimic.xml | 2 +- docs/plugins/inspect/plugin-mms.xml | 2 +- docs/plugins/inspect/plugin-modplug.xml | 2 +- docs/plugins/inspect/plugin-mpeg2enc.xml | 2 +- docs/plugins/inspect/plugin-mpeg4videoparse.xml | 4 +- docs/plugins/inspect/plugin-mpegdemux2.xml | 6 +- docs/plugins/inspect/plugin-mpegpsmux.xml | 4 +- docs/plugins/inspect/plugin-mpegtsdemux.xml | 7 +- docs/plugins/inspect/plugin-mpegtsmux.xml | 4 +- docs/plugins/inspect/plugin-mpegvideoparse.xml | 4 +- docs/plugins/inspect/plugin-mplex.xml | 4 +- docs/plugins/inspect/plugin-musepack.xml | 2 +- docs/plugins/inspect/plugin-musicbrainz.xml | 2 +- docs/plugins/inspect/plugin-mve.xml | 2 +- docs/plugins/inspect/plugin-mxf.xml | 2 +- docs/plugins/inspect/plugin-mythtv.xml | 2 +- docs/plugins/inspect/plugin-nas.xml | 4 +- docs/plugins/inspect/plugin-neon.xml | 2 +- docs/plugins/inspect/plugin-nsf.xml | 2 +- docs/plugins/inspect/plugin-nuvdemux.xml | 2 +- docs/plugins/inspect/plugin-ofa.xml | 2 +- docs/plugins/inspect/plugin-opencv.xml | 4 +- docs/plugins/inspect/plugin-patchdetect.xml | 2 +- docs/plugins/inspect/plugin-pcapparse.xml | 23 +- docs/plugins/inspect/plugin-pnm.xml | 2 +- docs/plugins/inspect/plugin-rawparse.xml | 2 +- docs/plugins/inspect/plugin-real.xml | 2 +- docs/plugins/inspect/plugin-removesilence.xml | 35 + docs/plugins/inspect/plugin-resindvd.xml | 2 +- docs/plugins/inspect/plugin-rfbsrc.xml | 2 +- docs/plugins/inspect/plugin-rsvg.xml | 2 +- .../{plugin-rtmpsrc.xml => plugin-rtmp.xml} | 21 +- docs/plugins/inspect/plugin-rtpmux.xml | 2 +- docs/plugins/inspect/plugin-rtpvp8.xml | 6 +- docs/plugins/inspect/plugin-scaletempo.xml | 2 +- docs/plugins/inspect/plugin-schro.xml | 2 +- docs/plugins/inspect/plugin-sdi.xml | 2 +- docs/plugins/inspect/plugin-sdl.xml | 4 +- docs/plugins/inspect/plugin-sdp.xml | 2 +- docs/plugins/inspect/plugin-segmentclip.xml | 2 +- docs/plugins/inspect/plugin-shm.xml | 4 +- docs/plugins/inspect/plugin-smooth.xml | 34 + docs/plugins/inspect/plugin-sndfile.xml | 2 +- docs/plugins/inspect/plugin-soundtouch.xml | 2 +- docs/plugins/inspect/plugin-speed.xml | 2 +- docs/plugins/inspect/plugin-stereo.xml | 2 +- docs/plugins/inspect/plugin-subenc.xml | 23 +- docs/plugins/inspect/plugin-timidity.xml | 6 +- docs/plugins/inspect/plugin-tta.xml | 2 +- docs/plugins/inspect/plugin-vcdsrc.xml | 2 +- docs/plugins/inspect/plugin-vdpau.xml | 2 +- docs/plugins/inspect/plugin-video3d.xml | 82 + docs/plugins/inspect/plugin-videofiltersbad.xml | 2 +- docs/plugins/inspect/plugin-videomaxrate.xml | 2 +- docs/plugins/inspect/plugin-videomeasure.xml | 2 +- docs/plugins/inspect/plugin-videoparsersbad.xml | 58 +- docs/plugins/inspect/plugin-videosignal.xml | 2 +- docs/plugins/inspect/plugin-vmnc.xml | 2 +- docs/plugins/inspect/plugin-voaacenc.xml | 34 + docs/plugins/inspect/plugin-vp8.xml | 2 +- docs/plugins/inspect/plugin-wildmidi.xml | 2 +- docs/plugins/inspect/plugin-xvid.xml | 6 +- docs/plugins/inspect/plugin-y4mdec.xml | 2 +- docs/plugins/inspect/plugin-zbar.xml | 4 +- docs/plugins/scanobj-build.stamp | 0 ext/Makefile.am | 50 +- ext/Makefile.in | 85 +- ext/amrwbenc/Makefile.am | 19 - ext/amrwbenc/README | 12 - ext/amrwbenc/gstamrwbenc.c | 388 - ext/apexsink/Makefile.in | 106 +- ext/apexsink/gstapexraop.c | 123 +- ext/apexsink/gstapexraop.h | 28 +- ext/apexsink/gstapexsink.c | 142 +- ext/apexsink/gstapexsink.h | 17 +- ext/assrender/Makefile.in | 96 +- ext/assrender/gstassrender.c | 20 +- ext/bz2/Makefile.in | 106 +- ext/bz2/gstbz2dec.c | 6 +- ext/bz2/gstbz2enc.c | 6 +- ext/cdaudio/Makefile.in | 96 +- ext/celt/Makefile.am | 5 +- ext/celt/Makefile.in | 111 +- ext/celt/gstceltdec.c | 677 +- ext/celt/gstceltdec.h | 14 +- ext/celt/gstceltenc.c | 984 +- ext/celt/gstceltenc.h | 28 +- ext/cog/Makefile.in | 179 +- ext/cog/cogvirtframe.c | 9 +- ext/cog/gstcogcolorspace.c | 8 +- ext/cog/gstcogdownsample.c | 16 +- ext/cog/gstcogmse.c | 23 +- ext/cog/gstcogorc-dist.c | 148 +- ext/cog/gstcogscale.c | 14 +- ext/cog/gstcolorconvert.c | 16 +- ext/cog/gstlogoinsert.c | 13 +- ext/curl/Makefile.in | 101 +- ext/curl/gstcurlsink.c | 3 +- ext/dc1394/Makefile.in | 96 +- ext/dc1394/gstdc1394.c | 67 +- ext/dirac/Makefile.in | 101 +- ext/dirac/gstdiracenc.cc | 272 +- ext/directfb/Makefile.in | 108 +- ext/directfb/dfbvideosink.c | 93 +- ext/divx/Makefile.in | 103 +- ext/divx/gstdivxdec.c | 7 +- ext/divx/gstdivxenc.c | 7 +- ext/dts/Makefile.am | 8 +- ext/dts/Makefile.in | 106 +- ext/dts/gstdtsdec.c | 627 +- ext/dts/gstdtsdec.h | 20 +- ext/faac/Makefile.am | 10 +- ext/faac/Makefile.in | 106 +- ext/faac/gstfaac.c | 786 +- ext/faac/gstfaac.h | 39 +- ext/faad/Makefile.am | 3 +- ext/faad/Makefile.in | 99 +- ext/faad/gstfaad.c | 771 +- ext/faad/gstfaad.h | 28 +- ext/flite/Makefile.in | 101 +- ext/flite/gstflitetestsrc.c | 4 +- ext/gme/Makefile.in | 96 +- ext/gme/gstgme.c | 12 +- ext/gsettings/Makefile.in | 126 +- ext/gsettings/gstswitchsink.c | 3 +- ext/gsettings/gstswitchsrc.c | 3 +- ...edesktop.gstreamer.default-elements.gschema.xml | 94 + ext/gsm/Makefile.in | 106 +- ext/gsm/gstgsmdec.c | 8 +- ext/gsm/gstgsmenc.c | 8 +- ext/jp2k/Makefile.in | 106 +- ext/jp2k/gstjasperdec.c | 48 +- ext/jp2k/gstjasperenc.c | 52 +- ext/kate/Makefile.in | 131 +- ext/kate/gstkatedec.c | 6 +- ext/kate/gstkateenc.c | 105 +- ext/kate/gstkateparse.c | 11 +- ext/kate/gstkateparse.h | 2 +- ext/kate/gstkatespu.c | 19 +- ext/kate/gstkatetiger.c | 609 +- ext/kate/gstkatetiger.h | 4 + ext/kate/gstkateutil.c | 103 +- ext/kate/gstkateutil.h | 2 + ext/ladspa/Makefile.in | 96 +- ext/libmms/Makefile.in | 96 +- ext/libmms/gstmms.c | 5 +- ext/lv2/Makefile.in | 96 +- ext/lv2/gstlv2.c | 42 +- ext/mimic/Makefile.am | 1 + ext/mimic/Makefile.in | 119 +- ext/mimic/gstmimdec.c | 6 +- ext/mimic/gstmimenc.c | 6 +- ext/modplug/Makefile.in | 96 +- ext/modplug/gstmodplug.cc | 26 +- ext/mpeg2enc/Makefile.in | 116 +- ext/mpeg2enc/gstmpeg2enc.cc | 7 +- ext/mpeg2enc/gstmpeg2encoder.cc | 5 +- ext/mplex/Makefile.in | 111 +- ext/mplex/gstmplex.cc | 15 +- ext/musepack/Makefile.in | 101 +- ext/musepack/gstmusepackdec.c | 7 +- ext/musicbrainz/Makefile.in | 96 +- ext/musicbrainz/gsttrm.c | 7 +- ext/mythtv/Makefile.in | 96 +- ext/mythtv/gstmythtvsrc.c | 3 +- ext/nas/Makefile.in | 96 +- ext/nas/nassink.c | 3 +- ext/neon/Makefile.in | 96 +- ext/neon/gstneonhttpsrc.c | 27 +- ext/ofa/Makefile.in | 96 +- ext/ofa/gstofa.c | 58 +- ext/openal/Makefile.am | 15 + ext/openal/Makefile.in | 910 ++ ext/openal/gstopenal.c | 55 + ext/openal/gstopenalsink.c | 951 ++ ext/openal/gstopenalsink.h | 123 + ext/openal/gstopenalsrc.c | 357 + ext/openal/gstopenalsrc.h | 105 + ext/opencv/Makefile.am | 13 +- ext/opencv/Makefile.in | 293 +- ext/opencv/MotionCells.cpp | 595 + ext/opencv/MotionCells.h | 259 + ext/opencv/gstcvdilateerode.c | 9 - ext/opencv/gstcvequalizehist.c | 16 +- ext/opencv/gstcvlaplace.c | 6 +- ext/opencv/gstcvsmooth.c | 9 - ext/opencv/gstcvsobel.c | 14 +- ext/opencv/gstedgedetect.c | 70 +- ext/opencv/gstedgedetect.h | 38 +- ext/opencv/gstfaceblur.c | 76 +- ext/opencv/gstfaceblur.h | 38 +- ext/opencv/gstfacedetect.c | 439 +- ext/opencv/gstfacedetect.h | 49 +- ext/opencv/gstmotioncells.c | 1096 ++ ext/opencv/gstmotioncells.h | 123 + ext/opencv/gstopencv.c | 14 +- ext/opencv/gstpyramidsegment.c | 70 +- ext/opencv/gstpyramidsegment.h | 38 +- ext/opencv/gsttemplatematch.c | 84 +- ext/opencv/gsttemplatematch.h | 30 +- ext/opencv/gsttextoverlay.c | 6 +- ext/opencv/motioncells_wrapper.cpp | 215 + ext/opencv/motioncells_wrapper.h | 89 + ext/opus/Makefile.am | 19 + ext/opus/Makefile.in | 956 ++ ext/opus/gstopus.c | 66 + ext/opus/gstopuscommon.c | 106 + ext/opus/gstopuscommon.h | 37 + ext/opus/gstopusdec.c | 649 + ext/opus/gstopusdec.h | 80 + ext/opus/gstopusenc.c | 1035 ++ ext/opus/gstopusenc.h | 98 + ext/opus/gstopusheader.c | 251 + ext/opus/gstopusheader.h | 42 + ext/opus/gstopusparse.c | 338 + ext/opus/gstopusparse.h | 61 + ext/opus/gstrtpopusdepay.c | 123 + ext/opus/gstrtpopusdepay.h | 57 + ext/opus/gstrtpopuspay.c | 140 + ext/opus/gstrtpopuspay.h | 58 + ext/resindvd/Makefile.in | 146 +- ext/resindvd/gstpesfilter.c | 3 +- ext/resindvd/resindvdbin.c | 35 +- ext/resindvd/resindvdsrc.c | 21 +- ext/resindvd/rsnaudiomunge.c | 9 +- ext/resindvd/rsndec.c | 53 +- ext/resindvd/rsnparsetter.c | 6 +- ext/resindvd/rsnstreamselector.c | 23 +- ext/resindvd/rsnwrappedbuffer.c | 1 + ext/rsvg/Makefile.in | 106 +- ext/rsvg/gstrsvgdec.c | 47 +- ext/rsvg/gstrsvgdec.h | 2 +- ext/rsvg/gstrsvgoverlay.c | 24 +- ext/rtmp/Makefile.am | 4 +- ext/rtmp/Makefile.in | 119 +- ext/rtmp/gstrtmp.c | 54 + ext/rtmp/gstrtmpsink.c | 372 + ext/rtmp/gstrtmpsink.h | 68 + ext/rtmp/gstrtmpsrc.c | 36 +- ext/schroedinger/Makefile.in | 111 +- ext/schroedinger/gstschrodec.c | 77 +- ext/schroedinger/gstschroenc.c | 379 +- ext/sdl/Makefile.in | 106 +- ext/sdl/sdlaudiosink.c | 4 +- ext/sdl/sdlvideosink.c | 1 + ext/sndfile/Makefile.in | 106 +- ext/sndfile/gstsfsink.c | 4 +- ext/sndfile/gstsfsrc.c | 9 +- ext/soundtouch/Makefile.in | 129 +- ext/soundtouch/gstpitch.cc | 59 +- ext/soundtouch/gstpitch.hh | 7 + ext/spandsp/Makefile.am | 9 + ext/spandsp/Makefile.in | 892 ++ ext/spandsp/gstspandsp.c | 40 + ext/spandsp/gstspanplc.c | 298 + ext/spandsp/gstspanplc.h | 60 + ext/spc/Makefile.in | 101 +- ext/spc/gstspc.c | 8 +- ext/swfdec/Makefile.in | 96 +- ext/swfdec/gstswfdec.c | 12 +- ext/teletextdec/Makefile.am | 10 + ext/teletextdec/Makefile.in | 893 ++ ext/teletextdec/gstteletextdec.c | 1239 ++ ext/teletextdec/gstteletextdec.h | 107 + ext/teletextdec/teletext.c | 43 + ext/timidity/Makefile.in | 103 +- ext/timidity/gsttimidity.c | 9 +- ext/timidity/gstwildmidi.c | 13 +- ext/voaacenc/Makefile.am | 27 + ext/voaacenc/Makefile.in | 912 ++ ext/voaacenc/gstvoaac.c | 38 + ext/voaacenc/gstvoaacenc.c | 619 + ext/voaacenc/gstvoaacenc.h | 75 + .../GstVoAmrwbEnc.prs} | 2 +- ext/voamrwbenc/Makefile.am | 21 + ext/{amrwbenc => voamrwbenc}/Makefile.in | 179 +- .../gstamrwb.c => voamrwbenc/gstvoamrwb.c} | 8 +- ext/voamrwbenc/gstvoamrwbenc.c | 317 + .../gstamrwbenc.h => voamrwbenc/gstvoamrwbenc.h} | 53 +- ext/vp8/Makefile.am | 1 + ext/vp8/Makefile.in | 127 +- ext/vp8/gstvp8dec.c | 66 +- ext/vp8/gstvp8enc.c | 823 +- ext/vp8/gstvp8enc.h | 20 +- ext/xvid/Makefile.in | 106 +- ext/xvid/gstxviddec.c | 12 +- ext/xvid/gstxvidenc.c | 198 +- ext/xvid/gstxvidenc.h | 1 + ext/zbar/Makefile.in | 96 +- ext/zbar/gstzbar.c | 18 +- gst-libs/Makefile.in | 56 +- gst-libs/gst/Makefile.am | 9 +- gst-libs/gst/Makefile.in | 61 +- gst-libs/gst/basecamerabinsrc/Makefile.am | 3 - gst-libs/gst/basecamerabinsrc/Makefile.in | 118 +- gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c | 123 +- gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h | 28 +- .../gst/basecamerabinsrc/gstcamerabinpreview.c | 258 +- .../gst/basecamerabinsrc/gstcamerabinpreview.h | 9 +- gst-libs/gst/codecparsers/Makefile.am | 43 + gst-libs/gst/codecparsers/Makefile.in | 982 ++ gst-libs/gst/codecparsers/gsth264parser.c | 1955 +++ gst-libs/gst/codecparsers/gsth264parser.h | 716 ++ gst-libs/gst/codecparsers/gstmpeg4parser.c | 1726 +++ gst-libs/gst/codecparsers/gstmpeg4parser.h | 578 + gst-libs/gst/codecparsers/gstmpegvideoparser.c | 744 ++ gst-libs/gst/codecparsers/gstmpegvideoparser.h | 400 + gst-libs/gst/codecparsers/gstvc1parser.c | 2132 ++++ gst-libs/gst/codecparsers/gstvc1parser.h | 622 + gst-libs/gst/codecparsers/parserutils.c | 57 + gst-libs/gst/codecparsers/parserutils.h | 108 + gst-libs/gst/glib-compat-private.h | 148 + gst-libs/gst/interfaces/Makefile.in | 110 +- gst-libs/gst/interfaces/photography.h | 4 +- gst-libs/gst/signalprocessor/Makefile.in | 100 +- gst-libs/gst/signalprocessor/gstsignalprocessor.c | 1 + gst-libs/gst/video/Makefile.am | 13 +- gst-libs/gst/video/Makefile.in | 169 +- gst-libs/gst/video/gstbasevideocodec.c | 400 +- gst-libs/gst/video/gstbasevideocodec.h | 47 +- gst-libs/gst/video/gstbasevideodecoder.c | 1768 ++- gst-libs/gst/video/gstbasevideodecoder.h | 273 +- gst-libs/gst/video/gstbasevideoencoder.c | 973 +- gst-libs/gst/video/gstbasevideoencoder.h | 134 +- gst-libs/gst/video/gstbasevideoutils.c | 96 +- gst-libs/gst/video/gstbasevideoutils.h | 46 + gst-libs/gst/video/gstsurfacebuffer.c | 88 + gst-libs/gst/video/gstsurfacebuffer.h | 93 + gst-libs/gst/video/gstsurfaceconverter.c | 80 + gst-libs/gst/video/gstsurfaceconverter.h | 68 + gst-libs/gst/video/videocontext.c | 539 + gst-libs/gst/video/videocontext.h | 117 + gst-plugins-bad.doap | 12 + gst-plugins-bad.spec.in | 565 +- gst/Makefile.in | 57 +- gst/adpcmdec/Makefile.in | 96 +- gst/adpcmdec/adpcmdec.c | 28 +- gst/adpcmenc/Makefile.in | 96 +- gst/adpcmenc/adpcmenc.c | 19 +- gst/aiff/Makefile.am | 1 + gst/aiff/Makefile.in | 109 +- gst/aiff/aiff.c | 4 + gst/aiff/aiffmux.c | 42 +- gst/aiff/aiffmux.h | 1 + gst/aiff/aiffparse.c | 51 +- gst/aiff/aiffparse.h | 3 + gst/asfmux/Makefile.in | 116 +- gst/asfmux/gstasfmux.c | 11 +- gst/asfmux/gstasfparse.c | 6 +- gst/asfmux/gstrtpasfpay.c | 8 +- gst/audiovisualizers/Makefile.am | 36 + gst/audiovisualizers/Makefile.in | 961 ++ gst/audiovisualizers/README | 84 + gst/audiovisualizers/gstbaseaudiovisualizer.c | 865 ++ gst/audiovisualizers/gstbaseaudiovisualizer.h | 121 + gst/audiovisualizers/gstdrawhelpers.h | 86 + gst/audiovisualizers/gstspacescope.c | 446 + gst/audiovisualizers/gstspacescope.h | 62 + gst/audiovisualizers/gstspectrascope.c | 224 + gst/audiovisualizers/gstspectrascope.h | 54 + gst/audiovisualizers/gstsynaescope.c | 307 + gst/audiovisualizers/gstsynaescope.h | 58 + gst/audiovisualizers/gstwavescope.c | 422 + gst/audiovisualizers/gstwavescope.h | 59 + gst/audiovisualizers/plugin.c | 51 + gst/autoconvert/Makefile.in | 106 +- gst/autoconvert/gstautoconvert.c | 113 +- gst/autoconvert/gstautoconvert.h | 2 - gst/autoconvert/gstautovideoconvert.c | 6 +- gst/bayer/Makefile.am | 11 + gst/bayer/Makefile.in | 251 +- gst/bayer/gstbayer2rgb.c | 371 +- gst/bayer/gstbayerorc-dist.c | 3212 +++++ gst/bayer/gstbayerorc-dist.h | 86 + gst/bayer/gstbayerorc.orc | 252 + gst/bayer/gstrgb2bayer.c | 8 +- gst/camerabin/Makefile.in | 137 +- gst/camerabin/camerabinimage.c | 57 +- gst/camerabin/camerabinimage.h | 8 +- gst/camerabin/camerabinvideo.c | 13 +- gst/camerabin/gstcamerabin-enum.h | 1 + gst/camerabin/gstcamerabin.c | 80 +- gst/camerabin/gstcamerabin.h | 1 + gst/camerabin/gstinputselector.c | 8 +- gst/camerabin2/Makefile.am | 2 - gst/camerabin2/Makefile.in | 128 +- gst/camerabin2/camerabingeneral.c | 46 +- gst/camerabin2/camerabingeneral.h | 2 - gst/camerabin2/gstcamerabin2.c | 1378 ++- gst/camerabin2/gstcamerabin2.h | 115 +- gst/camerabin2/gstimagecapturebin.c | 352 - gst/camerabin2/gstimagecapturebin.h | 63 - gst/camerabin2/gstplugin.c | 5 +- gst/camerabin2/gstviewfinderbin.c | 174 +- gst/camerabin2/gstviewfinderbin.h | 2 + gst/camerabin2/gstwrappercamerabinsrc.c | 186 +- gst/camerabin2/gstwrappercamerabinsrc.h | 2 + gst/cdxaparse/Makefile.in | 101 +- gst/cdxaparse/gstcdxaparse.c | 8 +- gst/cdxaparse/gstvcdparse.c | 6 +- gst/coloreffects/Makefile.in | 106 +- gst/coloreffects/gstchromahold.c | 11 +- gst/coloreffects/gstchromahold.h | 6 +- gst/coloreffects/gstcoloreffects.c | 17 +- gst/coloreffects/gstcoloreffects.h | 2 +- gst/colorspace/Makefile.in | 107 +- gst/colorspace/colorspace.c | 115 +- gst/colorspace/colorspace.h | 3 +- gst/colorspace/gstcolorspace.c | 12 +- gst/colorspace/gstcolorspaceorc-dist.c | 196 +- gst/colorspace/gstcolorspaceorc-dist.h | 4 +- gst/dataurisrc/Makefile.in | 96 +- gst/dataurisrc/gstdataurisrc.c | 3 +- gst/dccp/Makefile.in | 121 +- gst/dccp/gstdccp_common.h | 3 + gst/dccp/gstdccpclientsink.c | 15 +- gst/dccp/gstdccpclientsrc.c | 3 +- gst/dccp/gstdccpserversink.c | 3 +- gst/dccp/gstdccpserversrc.c | 3 +- gst/debugutils/Makefile.am | 10 +- gst/debugutils/Makefile.in | 144 +- gst/debugutils/debugutilsbad.c | 7 + gst/debugutils/fpsdisplaysink.c | 4 +- gst/debugutils/gstchecksumsink.c | 8 +- gst/debugutils/gstchopmydata.c | 8 +- gst/debugutils/gstcompare.c | 662 ++ gst/debugutils/gstcompare.h | 75 + gst/debugutils/gstdebugspy.c | 238 + gst/debugutils/gstdebugspy.h | 63 + gst/dtmf/Makefile.in | 121 +- gst/dtmf/gstdtmfcommon.h | 4 +- gst/dtmf/gstdtmfdetect.c | 6 +- gst/dtmf/gstdtmfsrc.c | 118 +- gst/dtmf/gstdtmfsrc.h | 3 + gst/dtmf/gstrtpdtmfcommon.h | 23 - gst/dtmf/gstrtpdtmfdepay.c | 8 +- gst/dtmf/gstrtpdtmfsrc.c | 199 +- gst/dtmf/gstrtpdtmfsrc.h | 5 +- gst/dvbsuboverlay/Makefile.in | 101 +- gst/dvbsuboverlay/dvb-sub.c | 5 +- gst/dvbsuboverlay/gstdvbsuboverlay.c | 12 +- gst/dvbsuboverlay/gstdvbsuboverlay.h | 1 + gst/dvdspu/Makefile.in | 116 +- gst/dvdspu/gstdvdspu.c | 11 +- gst/dvdspu/gstspu-pgs.c | 12 +- gst/dvdspu/gstspu-vobsub.c | 8 +- gst/faceoverlay/Makefile.am | 13 + gst/{invtelecine => faceoverlay}/Makefile.in | 177 +- gst/faceoverlay/gstfaceoverlay.c | 498 + gst/faceoverlay/gstfaceoverlay.h | 91 + gst/festival/Makefile.in | 96 +- gst/festival/gstfestival.c | 38 +- gst/fieldanalysis/Makefile.in | 102 +- gst/fieldanalysis/gstfieldanalysis.c | 17 +- gst/freeverb/Makefile.am | 28 + gst/freeverb/Makefile.in | 904 ++ gst/freeverb/gstfreeverb.c | 972 ++ gst/freeverb/gstfreeverb.h | 71 + gst/freeze/Makefile.in | 96 +- gst/freeze/gstfreeze.c | 8 +- gst/frei0r/Makefile.in | 111 +- gst/frei0r/gstfrei0r.c | 3 +- gst/frei0r/gstfrei0rfilter.c | 2 + gst/frei0r/gstfrei0rmixer.c | 4 + gst/frei0r/gstfrei0rsrc.c | 1 + gst/gaudieffects/Makefile.in | 131 +- gst/gaudieffects/gstburn.c | 6 +- gst/gaudieffects/gstchromium.c | 6 +- gst/gaudieffects/gstdilate.c | 6 +- gst/gaudieffects/gstdodge.c | 6 +- gst/gaudieffects/gstexclusion.c | 6 +- gst/gaudieffects/gstgaussblur.c | 6 +- gst/gaudieffects/gstsolarize.c | 6 +- gst/geometrictransform/Makefile.in | 186 +- gst/geometrictransform/gstfisheye.c | 2 +- gst/geometrictransform/gstgeometrictransform.c | 8 +- gst/geometrictransform/gstmirror.c | 2 +- gst/geometrictransform/gstrotate.c | 4 +- gst/geometrictransform/gstsquare.c | 2 +- gst/h264parse/Makefile.in | 96 +- gst/h264parse/gsth264parse.c | 82 +- gst/h264parse/gsth264parse.h | 2 +- gst/hdvparse/Makefile.in | 96 +- gst/hdvparse/gsthdvparse.c | 7 +- gst/hls/Makefile.am | 8 +- gst/hls/Makefile.in | 106 +- gst/hls/gstfragment.c | 208 + gst/hls/gstfragment.h | 70 + gst/hls/gsthlsdemux.c | 1132 +- gst/hls/gsthlsdemux.h | 45 +- gst/hls/gsturidownloader.c | 365 + gst/hls/gsturidownloader.h | 68 + gst/hls/m3u8.c | 451 +- gst/hls/m3u8.h | 44 +- gst/id3tag/Makefile.am | 3 +- gst/id3tag/Makefile.in | 115 +- gst/id3tag/gstid3mux.c | 23 +- gst/id3tag/gstid3mux.h | 2 +- gst/id3tag/gsttagmux.c | 495 - gst/id3tag/gsttagmux.h | 79 - gst/id3tag/id3tag.c | 6 +- gst/id3tag/id3tag.h | 12 +- gst/inter/Makefile.am | 58 + gst/inter/Makefile.in | 1014 ++ gst/inter/gstinter.c | 51 + gst/inter/gstinteraudiosink.c | 337 + gst/inter/gstinteraudiosink.h | 56 + gst/inter/gstinteraudiosrc.c | 477 + gst/inter/gstinteraudiosrc.h | 56 + gst/inter/gstintersurface.c | 42 + gst/inter/gstintersurface.h | 58 + gst/inter/gstintertest.c | 502 + gst/inter/gstintervideosink.c | 327 + gst/inter/gstintervideosink.h | 56 + gst/inter/gstintervideosrc.c | 505 + gst/inter/gstintervideosrc.h | 61 + gst/interlace/Makefile.in | 96 +- gst/interlace/gstinterlace.c | 46 +- gst/invtelecine/Makefile.am | 30 - gst/invtelecine/gstinvtelecine.c | 966 -- gst/ivfparse/Makefile.in | 96 +- gst/ivfparse/gstivfparse.c | 6 +- gst/jp2kdecimator/Makefile.in | 101 +- gst/jp2kdecimator/gstjp2kdecimator.c | 8 +- gst/jpegformat/Makefile.in | 106 +- gst/jpegformat/gstjifmux.c | 10 +- gst/jpegformat/gstjpegformat.c | 3 +- gst/jpegformat/gstjpegparse.c | 14 +- gst/legacyresample/Makefile.in | 121 +- gst/legacyresample/gstlegacyresample.c | 8 +- gst/librfb/Makefile.in | 118 +- gst/librfb/gstrfbsrc.c | 4 +- gst/librfb/rfbdecoder.c | 4 +- gst/librfb/vncauth.c | 5 +- gst/liveadder/Makefile.in | 96 +- gst/liveadder/liveadder.c | 17 +- gst/mpeg4videoparse/Makefile.am | 24 - gst/mpeg4videoparse/mpeg4videoparse.c | 1097 -- gst/mpeg4videoparse/mpeg4videoparse.h | 90 - gst/mpegdemux/Makefile.in | 146 +- gst/mpegdemux/flutspmtstreaminfo.c | 2 + gst/mpegdemux/gstmpegdefs.h | 4 +- gst/mpegdemux/gstmpegdemux.c | 57 +- gst/mpegdemux/gstmpegdemux.h | 1 - gst/mpegdemux/gstmpegtsdemux.c | 399 +- gst/mpegdemux/gstmpegtsdemux.h | 15 +- gst/mpegdemux/gstpesfilter.c | 6 +- gst/mpegdemux/mpegtspacketizer.c | 65 +- gst/mpegdemux/mpegtsparse.c | 28 +- gst/mpegpsmux/Makefile.in | 116 +- gst/mpegpsmux/mpegpsmux.c | 124 +- gst/mpegpsmux/mpegpsmux.h | 7 +- gst/mpegpsmux/psmux.c | 83 +- gst/mpegpsmux/psmux.h | 6 + gst/mpegpsmux/psmuxstream.c | 3 +- gst/mpegpsmux/psmuxstream.h | 5 +- gst/mpegtsdemux/Makefile.am | 10 +- gst/mpegtsdemux/Makefile.in | 149 +- gst/mpegtsdemux/TODO | 242 +- gst/mpegtsdemux/gstmpegdefs.h | 12 +- gst/mpegtsdemux/mpegtsbase.c | 588 +- gst/mpegtsdemux/mpegtsbase.h | 53 +- gst/mpegtsdemux/mpegtspacketizer.c | 115 +- gst/mpegtsdemux/mpegtspacketizer.h | 2 + gst/mpegtsdemux/mpegtsparse.c | 7 +- gst/mpegtsdemux/payload_parsers.c | 313 + gst/mpegtsdemux/payload_parsers.h | 36 + gst/mpegtsdemux/pesparse.c | 428 + gst/mpegtsdemux/pesparse.h | 112 + gst/mpegtsdemux/tsdemux.c | 1500 ++- gst/mpegtsdemux/tsdemux.h | 18 + gst/mpegtsmux/Makefile.am | 5 +- gst/mpegtsmux/Makefile.in | 115 +- gst/mpegtsmux/mpegtsmux.c | 283 +- gst/mpegtsmux/mpegtsmux.h | 5 +- gst/mpegtsmux/mpegtsmux_aac.c | 1 - gst/mpegtsmux/mpegtsmux_h264.c | 1 - gst/mpegtsmux/tsmux/Makefile.in | 95 +- gst/mpegtsmux/tsmux/tsmux.c | 2 + gst/mpegtsmux/tsmux/tsmuxcommon.h | 10 +- gst/mpegtsmux/tsmux/tsmuxstream.c | 2 + gst/mpegvideoparse/Makefile.in | 101 +- gst/mpegvideoparse/mpegpacketiser.c | 9 +- gst/mpegvideoparse/mpegvideoparse.c | 18 +- gst/mve/Makefile.in | 136 +- gst/mve/gstmvedemux.c | 13 +- gst/mve/gstmvemux.c | 13 +- gst/mve/mvevideoenc16.c | 3 + gst/mxf/Makefile.in | 176 +- gst/mxf/mxfdemux.c | 10 +- gst/mxf/mxfmetadata.c | 6 +- gst/mxf/mxfmux.c | 10 +- gst/nsf/Makefile.in | 141 +- gst/nsf/gstnsf.c | 8 +- gst/nuvdemux/Makefile.in | 96 +- gst/nuvdemux/gstnuvdemux.c | 18 +- gst/patchdetect/Makefile.in | 96 +- gst/patchdetect/gstpatchdetect.c | 26 +- gst/patchdetect/gstpatchdetect.h | 3 - gst/pcapparse/Makefile.am | 4 +- gst/pcapparse/Makefile.in | 120 +- gst/pcapparse/gstirtspparse.c | 254 + gst/pcapparse/gstirtspparse.h | 70 + gst/pcapparse/gstpcapparse.c | 131 +- gst/pcapparse/gstpcapparse.h | 2 + gst/pcapparse/plugin.c | 44 + gst/pnm/Makefile.in | 111 +- gst/pnm/gstpnmdec.c | 8 +- gst/pnm/gstpnmenc.c | 8 +- gst/rawparse/Makefile.in | 111 +- gst/rawparse/gstrawparse.c | 11 +- gst/real/Makefile.in | 106 +- gst/real/gstrealaudiodec.c | 4 +- gst/real/gstrealvideodec.c | 4 +- gst/removesilence/Makefile.am | 12 + gst/removesilence/Makefile.in | 896 ++ gst/removesilence/gstremovesilence.c | 261 + gst/removesilence/gstremovesilence.h | 56 + gst/removesilence/vad_private.c | 152 + gst/removesilence/vad_private.h | 44 + gst/rtpmux/Makefile.in | 106 +- gst/rtpmux/gstrtpdtmfmux.c | 29 +- gst/rtpmux/gstrtpmux.c | 78 +- gst/rtpmux/gstrtpmux.h | 6 +- gst/rtpvp8/Makefile.am | 6 +- gst/rtpvp8/Makefile.in | 122 +- gst/rtpvp8/dboolhuff.c | 68 + gst/rtpvp8/dboolhuff.h | 151 + gst/rtpvp8/gstrtpvp8depay.c | 36 +- gst/rtpvp8/gstrtpvp8pay.c | 372 +- gst/rtpvp8/gstrtpvp8pay.h | 9 + gst/scaletempo/Makefile.in | 101 +- gst/scaletempo/gstscaletempo.c | 45 +- gst/sdi/Makefile.in | 106 +- gst/sdi/gstsdidemux.c | 30 +- gst/sdi/gstsdimux.c | 24 +- gst/sdp/Makefile.in | 101 +- gst/sdp/gstsdpdemux.c | 6 +- gst/segmentclip/Makefile.in | 111 +- gst/segmentclip/gstaudiosegmentclip.c | 8 +- gst/segmentclip/gstvideosegmentclip.c | 8 +- gst/siren/Makefile.in | 136 +- gst/siren/gstsirendec.c | 6 +- gst/siren/gstsirenenc.c | 8 +- gst/smooth/Makefile.am | 30 + gst/{mpeg4videoparse => smooth}/Makefile.in | 166 +- gst/smooth/gstsmooth.c | 293 + gst/smooth/gstsmooth.h | 75 + gst/speed/Makefile.in | 96 +- gst/speed/gstspeed.c | 10 +- gst/stereo/Makefile.in | 96 +- gst/subenc/Makefile.am | 7 +- gst/subenc/Makefile.in | 122 +- gst/subenc/gstsrtenc.c | 21 +- gst/subenc/gstsubenc.c | 41 + gst/subenc/gstwebvttenc.c | 276 + gst/subenc/gstwebvttenc.h | 65 + gst/tta/Makefile.in | 106 +- gst/tta/gstttadec.c | 15 +- gst/tta/gstttaparse.c | 8 +- gst/videofilters/Makefile.in | 111 +- gst/videofilters/gstscenechange.c | 9 - gst/videofilters/gstvideofilter2.c | 36 +- gst/videofilters/gstzebrastripe.c | 3 - gst/videomaxrate/Makefile.in | 96 +- gst/videomaxrate/videomaxrate.c | 8 +- gst/videomeasure/Makefile.in | 106 +- gst/videomeasure/gstvideomeasure_collector.c | 8 +- gst/videomeasure/gstvideomeasure_ssim.c | 32 +- gst/videoparsers/Makefile.am | 16 +- gst/videoparsers/Makefile.in | 181 +- gst/videoparsers/dirac_parse.c | 4 +- gst/videoparsers/gstdiracparse.c | 213 +- gst/videoparsers/gstdiracparse.h | 4 + gst/videoparsers/gsth263parse.c | 76 +- gst/videoparsers/gsth264parse.c | 1512 ++- gst/videoparsers/gsth264parse.h | 45 +- gst/videoparsers/gstmpeg4videoparse.c | 694 ++ gst/videoparsers/gstmpeg4videoparse.h | 76 + gst/videoparsers/gstmpegvideoparse.c | 800 ++ gst/videoparsers/gstmpegvideoparse.h | 85 + gst/videoparsers/h263parse.c | 41 +- gst/videoparsers/h264parse.c | 1046 -- gst/videoparsers/h264parse.h | 186 - gst/videoparsers/plugin.c | 16 +- gst/videosignal/Makefile.in | 111 +- gst/videosignal/gstvideoanalyse.c | 8 +- gst/videosignal/gstvideodetect.c | 8 +- gst/videosignal/gstvideomark.c | 8 +- gst/vmnc/Makefile.in | 96 +- gst/vmnc/vmncdec.c | 8 +- gst/y4m/Makefile.in | 96 +- gst/y4m/gsty4mdec.c | 24 +- install-sh | 29 +- ltmain.sh | 4016 ++++--- m4/Makefile.in | 56 +- m4/glibc2.m4 | 30 - m4/intl.m4 | 285 - m4/intldir.m4 | 19 - m4/intmax.m4 | 33 - m4/libtool.m4 | 2236 ++-- m4/lock.m4 | 316 - m4/longlong.m4 | 109 - m4/ltoptions.m4 | 32 +- m4/ltversion.m4 | 12 +- m4/lt~obsolete.m4 | 12 +- m4/printf-posix.m4 | 44 - m4/size_max.m4 | 68 - m4/visibility.m4 | 52 - m4/wchar_t.m4 | 20 - m4/wint_t.m4 | 28 - m4/xsize.m4 | 13 - missing | 53 +- packaging/gst-plugins-bad.spec | 293 +- pkgconfig/Makefile.am | 12 +- pkgconfig/Makefile.in | 94 +- pkgconfig/gstreamer-basevideo-uninstalled.pc.in | 12 + pkgconfig/gstreamer-basevideo.pc.in | 12 + pkgconfig/gstreamer-codecparsers-uninstalled.pc.in | 12 + pkgconfig/gstreamer-codecparsers.pc.in | 12 + pkgconfig/gstreamer-plugins-bad.pc.in | 1 - po/LINGUAS | 2 +- po/Makevars.template | 41 - po/af.gmo | Bin 783 -> 783 bytes po/af.po | 2 +- po/az.gmo | Bin 845 -> 845 bytes po/az.po | 2 +- po/bg.gmo | Bin 2556 -> 2556 bytes po/bg.po | 2 +- po/ca.gmo | Bin 1740 -> 2091 bytes po/ca.po | 21 +- po/cs.gmo | Bin 1729 -> 1729 bytes po/cs.po | 2 +- po/da.gmo | Bin 1886 -> 1886 bytes po/da.po | 2 +- po/de.gmo | Bin 2118 -> 2118 bytes po/de.po | 2 +- po/el.gmo | Bin 2022 -> 2022 bytes po/el.po | 2 +- po/en_GB.gmo | Bin 777 -> 777 bytes po/en_GB.po | 2 +- po/eo.gmo | Bin 0 -> 1705 bytes po/eo.po | 71 + po/es.gmo | Bin 1709 -> 2040 bytes po/es.po | 369 +- po/eu.gmo | Bin 1704 -> 1704 bytes po/eu.po | 2 +- po/fi.gmo | Bin 1647 -> 1647 bytes po/fi.po | 2 +- po/fr.gmo | Bin 2055 -> 2055 bytes po/fr.po | 2 +- po/gl.gmo | Bin 1805 -> 2151 bytes po/gl.po | 14 +- po/gst-plugins-bad-0.10.pot | 18 +- po/hu.gmo | Bin 1710 -> 1710 bytes po/hu.po | 2 +- po/id.gmo | Bin 1604 -> 1914 bytes po/id.po | 363 +- po/it.gmo | Bin 1657 -> 1657 bytes po/it.po | 2 +- po/ja.gmo | Bin 2381 -> 2381 bytes po/ja.po | 2 +- po/ky.gmo | Bin 970 -> 970 bytes po/ky.po | 2 +- po/lt.gmo | Bin 1383 -> 1383 bytes po/lt.po | 2 +- po/lv.gmo | Bin 1797 -> 2109 bytes po/lv.po | 12 +- po/mt.gmo | Bin 1624 -> 1624 bytes po/mt.po | 2 +- po/nb.gmo | Bin 1201 -> 1201 bytes po/nb.po | 2 +- po/nl.gmo | Bin 2032 -> 2032 bytes po/nl.po | 2 +- po/or.gmo | Bin 955 -> 955 bytes po/or.po | 2 +- po/pl.gmo | Bin 2045 -> 2045 bytes po/pl.po | 2 +- po/pt_BR.gmo | Bin 1749 -> 1749 bytes po/pt_BR.po | 2 +- po/ro.gmo | Bin 1853 -> 1853 bytes po/ro.po | 2 +- po/ru.gmo | Bin 2509 -> 2509 bytes po/ru.po | 2 +- po/sk.gmo | Bin 1775 -> 1775 bytes po/sk.po | 2 +- po/sl.gmo | Bin 2100 -> 2100 bytes po/sl.po | 2 +- po/sq.gmo | Bin 1259 -> 1259 bytes po/sq.po | 2 +- po/sr.gmo | Bin 1018 -> 2619 bytes po/sr.po | 93 +- po/sv.gmo | Bin 1588 -> 1588 bytes po/sv.po | 2 +- po/tr.gmo | Bin 1833 -> 1833 bytes po/tr.po | 2 +- po/uk.gmo | Bin 2626 -> 2626 bytes po/uk.po | 2 +- po/vi.gmo | Bin 1787 -> 1787 bytes po/vi.po | 2 +- po/zh_CN.gmo | Bin 1539 -> 1539 bytes po/zh_CN.po | 2 +- stamp-h.in | 1 - sys/Makefile.am | 25 +- sys/Makefile.in | 71 +- sys/acmenc/Makefile.in | 96 +- sys/acmenc/acmenc.c | 8 +- sys/acmmp3dec/Makefile.am | 2 +- sys/acmmp3dec/Makefile.in | 103 +- sys/acmmp3dec/acmmp3dec.c | 8 +- sys/applemedia/Makefile.in | 224 +- sys/applemedia/avfvideosrc.m | 3 +- sys/applemedia/celvideosrc.c | 3 +- sys/applemedia/miovideosrc.c | 3 +- sys/applemedia/plugin.m | 2 +- sys/applemedia/qtkitvideosrc.m | 63 +- sys/applemedia/vtdec.c | 2 + sys/applemedia/vtenc.c | 2 + sys/applemedia/vth264decbin.c | 8 +- sys/applemedia/vth264encbin.c | 8 +- sys/avc/Makefile.am | 25 + sys/avc/Makefile.in | 907 ++ sys/avc/gstavcplugin.cpp | 41 + sys/avc/gstavcsrc.cpp | 424 + sys/avc/gstavcsrc.h | 67 + sys/d3dvideosink/Makefile.am | 17 + sys/d3dvideosink/Makefile.in | 965 ++ sys/d3dvideosink/d3dvideosink.c | 2628 +++++ sys/d3dvideosink/d3dvideosink.h | 106 + sys/d3dvideosink/directx/d3d.c | 65 + sys/d3dvideosink/directx/d3d.h | 99 + sys/d3dvideosink/directx/directx.h | 33 + sys/d3dvideosink/directx/directx10/dx10.c | 27 + sys/d3dvideosink/directx/directx10/dx10.h | 39 + sys/d3dvideosink/directx/directx10/dx10_d3d.c | 77 + sys/d3dvideosink/directx/directx10/dx10_d3d.h | 72 + sys/d3dvideosink/directx/directx11/dx11.c | 27 + sys/d3dvideosink/directx/directx11/dx11.h | 39 + sys/d3dvideosink/directx/directx11/dx11_d3d.c | 75 + sys/d3dvideosink/directx/directx11/dx11_d3d.h | 72 + sys/d3dvideosink/directx/directx9/dx9.c | 27 + sys/d3dvideosink/directx/directx9/dx9.h | 38 + sys/d3dvideosink/directx/directx9/dx9_d3d.c | 73 + sys/d3dvideosink/directx/directx9/dx9_d3d.h | 71 + sys/d3dvideosink/directx/dx.c | 282 + sys/d3dvideosink/directx/dx.h | 265 + sys/decklink/DeckLinkAPIDispatch.cpp | 110 - sys/decklink/Makefile.am | 15 +- sys/decklink/Makefile.in | 137 +- sys/decklink/capture.cpp | 349 +- sys/decklink/capture.h | 6 +- sys/decklink/gstdecklink.cpp | 161 + sys/decklink/gstdecklink.h | 140 + sys/decklink/gstdecklinksink.cpp | 332 +- sys/decklink/gstdecklinksink.h | 23 +- sys/decklink/gstdecklinksrc.cpp | 534 +- sys/decklink/gstdecklinksrc.h | 23 +- sys/decklink/{ => linux}/DeckLinkAPI.h | 56 +- sys/decklink/linux/DeckLinkAPIDispatch.cpp | 149 + sys/decklink/{ => linux}/LinuxCOM.h | 0 sys/decklink/win/DeckLinkAPI.h | 9217 +++++++++++++++ sys/decklink/win/DeckLinkAPIDispatch.cpp | 40 + sys/decklink/win/DeckLinkAPI_i.c | 259 + sys/directdraw/Makefile.in | 101 +- sys/directdraw/gstdirectdrawplugin.c | 2 +- sys/directdraw/gstdirectdrawsink.c | 29 +- sys/directsound/Makefile.in | 101 +- sys/directsound/gstdirectsoundsrc.c | 4 +- sys/dshowdecwrapper/Makefile.in | 116 +- sys/dshowdecwrapper/gstdshowaudiodec.cpp | 103 +- sys/dshowdecwrapper/gstdshowaudiodec.h | 7 +- sys/dshowdecwrapper/gstdshowutil.h | 4 + sys/dshowdecwrapper/gstdshowvideodec.cpp | 104 +- sys/dshowdecwrapper/gstdshowvideodec.h | 7 +- sys/dshowsrcwrapper/Makefile.in | 56 +- sys/dshowsrcwrapper/gstdshowaudiosrc.cpp | 3 +- sys/dshowsrcwrapper/gstdshowvideosrc.cpp | 3 +- sys/dshowvideosink/Makefile.in | 56 +- sys/dshowvideosink/dshowvideosink.cpp | 5 +- sys/dvb/Makefile.in | 161 +- sys/dvb/camapplicationinfo.c | 2 +- sys/dvb/camresourcemanager.c | 8 +- sys/dvb/camsession.c | 6 +- sys/dvb/camtransport.c | 3 +- sys/dvb/dvbbasebin.c | 7 +- sys/dvb/gstdvbsrc.c | 150 +- sys/dvb/gstdvbsrc.h | 4 +- sys/fbdev/Makefile.in | 96 +- sys/fbdev/gstfbdevsink.c | 6 +- sys/linsys/Makefile.am | 2 +- sys/linsys/Makefile.in | 119 +- sys/linsys/gstlinsyssdisink.c | 13 +- sys/linsys/gstlinsyssdisrc.c | 15 +- sys/osxvideo/Makefile.in | 101 +- sys/osxvideo/osxvideosrc.c | 3 +- sys/pvr2d/Makefile.am | 22 + sys/pvr2d/Makefile.in | 916 ++ sys/pvr2d/gstpvr.c | 85 + sys/pvr2d/gstpvr.h | 42 + sys/pvr2d/gstpvrbufferpool.c | 320 + sys/pvr2d/gstpvrbufferpool.h | 89 + sys/pvr2d/gstpvrvideosink.c | 1548 +++ sys/pvr2d/gstpvrvideosink.h | 157 + sys/qtwrapper/Makefile.in | 121 +- sys/qtwrapper/audiodecoders.c | 14 +- sys/qtwrapper/videodecoders.c | 3 +- sys/shm/Makefile.in | 117 +- sys/shm/gstshmsink.c | 62 +- sys/shm/gstshmsink.h | 1 + sys/shm/gstshmsrc.c | 5 +- sys/shm/shmpipe.c | 35 +- sys/shm/shmpipe.h | 64 +- sys/vcd/Makefile.in | 96 +- sys/vcd/vcdsrc.c | 3 +- sys/vdpau/Makefile.in | 161 +- sys/vdpau/basevideodecoder/Makefile.in | 95 +- sys/vdpau/basevideodecoder/gstbasevideodecoder.c | 13 - sys/vdpau/gstvdp/Makefile.in | 155 +- sys/vdpau/gstvdp/gstvdpdecoder.c | 1 + sys/vdpau/gstvdpsink.c | 6 +- sys/vdpau/gstvdpvideopostprocess.c | 2 + sys/vdpau/h264/gsth264dpb.c | 3 - sys/vdpau/h264/gsth264frame.c | 4 - sys/vdpau/h264/gsth264parser.c | 2 +- sys/vdpau/h264/gstvdph264dec.c | 8 +- sys/vdpau/mpeg/gstvdpmpegdec.c | 4 +- sys/vdpau/mpeg4/gstvdpmpeg4dec.c | 4 +- sys/wasapi/Makefile.in | 56 +- sys/wasapi/gstwasapisink.c | 4 +- sys/wasapi/gstwasapisrc.c | 3 +- sys/wininet/Makefile.in | 96 +- sys/wininet/gstwininetsrc.c | 5 +- sys/winks/Makefile.in | 56 +- sys/winks/gstksvideosrc.c | 7 +- sys/winscreencap/Makefile.in | 56 +- sys/winscreencap/gstdx9screencapsrc.c | 3 +- sys/winscreencap/gstgdiscreencapsrc.c | 3 +- tests/Makefile.in | 56 +- tests/check/Makefile.am | 131 +- tests/check/Makefile.in | 1151 +- tests/check/elements/autoconvert.c | 16 +- tests/check/elements/baseaudiovisualizer.c | 183 + tests/check/elements/camerabin.c | 26 +- tests/check/elements/camerabin2.c | 488 +- tests/check/elements/faac.c | 31 +- tests/check/elements/faad.c | 2 - tests/check/elements/h263parse.c | 175 + tests/check/elements/h264parse.c | 393 + tests/check/elements/imagecapturebin.c | 410 - tests/check/elements/jifmux.c | 3 + tests/check/elements/jpegparse.c | 189 + tests/check/elements/mpeg4videoparse.c | 193 + tests/check/elements/mpegtsmux.c | 323 + tests/check/elements/mpegvideoparse.c | 269 + tests/check/elements/opus.c | 385 + tests/check/elements/parser.c | 433 + tests/check/elements/parser.h | 117 + tests/check/elements/voaacenc.c | 287 + tests/check/elements/voamrwbenc.c | 186 + tests/check/libs/h264parser.c | 182 + tests/check/libs/mpegvideoparser.c | 212 + tests/check/libs/vc1parser.c | 1240 ++ tests/check/orc/cog.c | 9718 +++++++++++++++ tests/check/pipelines/colorspace.c | 310 + tests/examples/Makefile.am | 10 +- tests/examples/Makefile.in | 64 +- tests/examples/camerabin/Makefile.in | 119 +- tests/examples/camerabin/gst-camera-perf.c | 6 +- tests/examples/camerabin/gst-camera.c | 2 +- tests/examples/camerabin/gst-camerabin-test.c | 6 + tests/examples/camerabin2/Makefile.am | 3 + tests/examples/camerabin2/Makefile.in | 112 +- tests/examples/camerabin2/gst-camera2.c | 139 +- tests/examples/camerabin2/gst-camera2.h | 3 + tests/examples/camerabin2/gst-camera2.ui | 76 +- tests/examples/camerabin2/gst-camerabin2-test.c | 573 +- tests/examples/directfb/Makefile.in | 95 +- tests/examples/mxf/Makefile.in | 95 +- tests/examples/mxf/mxfdemux-structure.c | 2 +- tests/examples/opencv/Makefile.am | 11 + tests/examples/opencv/Makefile.in | 856 ++ .../examples/opencv/gst_element_print_properties.c | 599 + .../examples/opencv/gst_element_print_properties.h | 34 + .../examples/opencv/gstmotioncells_dynamic_test.c | 241 + .../examples/opencv/gstmotioncells_dynamic_test.h | 30 + tests/examples/scaletempo/Makefile.in | 115 +- tests/examples/scaletempo/demo-gui.c | 2 + tests/files/Makefile.in | 56 +- tests/icles/Makefile.in | 95 +- tools/Makefile.in | 56 +- tools/element-templates/audiofilter | 31 +- tools/element-templates/sinkpad | 4 +- tools/element-templates/sinkpad-simple | 4 +- tools/element-templates/srcpad | 4 +- tools/element-templates/srcpad-simple | 4 +- tools/gst-element-maker | 6 +- win32/common/config.h | 223 + 1348 files changed, 168711 insertions(+), 37415 deletions(-) delete mode 100755 autoregen.sh create mode 100755 config.guess create mode 100755 config.sub create mode 100644 docs/libs/Makefile.am create mode 100644 docs/libs/Makefile.in create mode 100644 docs/libs/compiling.sgml create mode 100644 docs/libs/gst-plugins-bad-libs-docs.sgml create mode 100644 docs/libs/gst-plugins-bad-libs-overrides.txt create mode 100644 docs/libs/gst-plugins-bad-libs-sections.txt create mode 100644 docs/libs/gst-plugins-bad-libs.types create mode 100644 docs/libs/html/annotation-glossary.html create mode 100644 docs/libs/html/api-index-deprecated.html create mode 100644 docs/libs/html/api-index-full.html create mode 100644 docs/libs/html/codecparsers.html create mode 100644 docs/libs/html/compiling.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstBaseVideoCodec.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstBaseVideoDecoder.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstBaseVideoEncoder.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstSurfaceBuffer.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstSurfaceConverter.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-GstVideoContextInterface.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-gstbasevideoutils.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-h264parser.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-mpeg4parser.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-mpegvideoparser.html create mode 100644 docs/libs/html/gst-plugins-bad-libs-vc1parser.html create mode 100644 docs/libs/html/gst-plugins-bad-libs.devhelp2 create mode 100644 docs/libs/html/gstreamer-libs-hierarchy.html create mode 100644 docs/libs/html/gstreamer-plugins-bad.html create mode 100644 docs/libs/html/home.png create mode 100644 docs/libs/html/index.html create mode 100644 docs/libs/html/index.sgml create mode 100644 docs/libs/html/left.png create mode 100644 docs/libs/html/right.png create mode 100644 docs/libs/html/style.css create mode 100644 docs/libs/html/up.png create mode 100644 docs/libs/html/video.html create mode 100644 docs/plugins/gst-plugins-bad-plugins.hierarchy delete mode 100644 docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-camerabin2.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin2.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html rename docs/plugins/html/{gst-plugins-bad-plugins-plugin-amrwbenc.html => gst-plugins-bad-plugins-plugin-voaacenc.html} (60%) create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtmpsrc.html delete mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-spacescope.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-spectrascope.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-synaescope.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-voamrwbenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-wavescope.html delete mode 100644 docs/plugins/html/gst-plugins-bad-plugins.devhelp delete mode 100644 docs/plugins/inspect/plugin-amrwbenc.xml create mode 100644 docs/plugins/inspect/plugin-audiovisualizers.xml create mode 100644 docs/plugins/inspect/plugin-camerabin2.xml create mode 100644 docs/plugins/inspect/plugin-divxdec.xml create mode 100644 docs/plugins/inspect/plugin-divxenc.xml create mode 100644 docs/plugins/inspect/plugin-faceoverlay.xml create mode 100644 docs/plugins/inspect/plugin-flite.xml create mode 100644 docs/plugins/inspect/plugin-freeverb.xml create mode 100644 docs/plugins/inspect/plugin-inter.xml create mode 100644 docs/plugins/inspect/plugin-removesilence.xml rename docs/plugins/inspect/{plugin-rtmpsrc.xml => plugin-rtmp.xml} (57%) create mode 100644 docs/plugins/inspect/plugin-smooth.xml create mode 100644 docs/plugins/inspect/plugin-video3d.xml create mode 100644 docs/plugins/inspect/plugin-voaacenc.xml create mode 100644 docs/plugins/scanobj-build.stamp delete mode 100644 ext/amrwbenc/Makefile.am delete mode 100644 ext/amrwbenc/README delete mode 100644 ext/amrwbenc/gstamrwbenc.c create mode 100644 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml create mode 100644 ext/openal/Makefile.am create mode 100644 ext/openal/Makefile.in create mode 100644 ext/openal/gstopenal.c create mode 100644 ext/openal/gstopenalsink.c create mode 100644 ext/openal/gstopenalsink.h create mode 100644 ext/openal/gstopenalsrc.c create mode 100644 ext/openal/gstopenalsrc.h create mode 100644 ext/opencv/MotionCells.cpp create mode 100644 ext/opencv/MotionCells.h create mode 100644 ext/opencv/gstmotioncells.c create mode 100644 ext/opencv/gstmotioncells.h create mode 100644 ext/opencv/motioncells_wrapper.cpp create mode 100644 ext/opencv/motioncells_wrapper.h create mode 100644 ext/opus/Makefile.am create mode 100644 ext/opus/Makefile.in create mode 100644 ext/opus/gstopus.c create mode 100644 ext/opus/gstopuscommon.c create mode 100644 ext/opus/gstopuscommon.h create mode 100644 ext/opus/gstopusdec.c create mode 100644 ext/opus/gstopusdec.h create mode 100644 ext/opus/gstopusenc.c create mode 100644 ext/opus/gstopusenc.h create mode 100644 ext/opus/gstopusheader.c create mode 100644 ext/opus/gstopusheader.h create mode 100644 ext/opus/gstopusparse.c create mode 100644 ext/opus/gstopusparse.h create mode 100644 ext/opus/gstrtpopusdepay.c create mode 100644 ext/opus/gstrtpopusdepay.h create mode 100644 ext/opus/gstrtpopuspay.c create mode 100644 ext/opus/gstrtpopuspay.h create mode 100644 ext/rtmp/gstrtmp.c create mode 100644 ext/rtmp/gstrtmpsink.c create mode 100644 ext/rtmp/gstrtmpsink.h create mode 100644 ext/spandsp/Makefile.am create mode 100644 ext/spandsp/Makefile.in create mode 100644 ext/spandsp/gstspandsp.c create mode 100644 ext/spandsp/gstspanplc.c create mode 100644 ext/spandsp/gstspanplc.h create mode 100644 ext/teletextdec/Makefile.am create mode 100644 ext/teletextdec/Makefile.in create mode 100644 ext/teletextdec/gstteletextdec.c create mode 100644 ext/teletextdec/gstteletextdec.h create mode 100644 ext/teletextdec/teletext.c create mode 100644 ext/voaacenc/Makefile.am create mode 100644 ext/voaacenc/Makefile.in create mode 100644 ext/voaacenc/gstvoaac.c create mode 100644 ext/voaacenc/gstvoaacenc.c create mode 100644 ext/voaacenc/gstvoaacenc.h rename ext/{amrwbenc/GstAmrwbEnc.prs => voamrwbenc/GstVoAmrwbEnc.prs} (87%) create mode 100644 ext/voamrwbenc/Makefile.am rename ext/{amrwbenc => voamrwbenc}/Makefile.in (80%) rename ext/{amrwbenc/gstamrwb.c => voamrwbenc/gstvoamrwb.c} (88%) create mode 100644 ext/voamrwbenc/gstvoamrwbenc.c rename ext/{amrwbenc/gstamrwbenc.h => voamrwbenc/gstvoamrwbenc.h} (51%) create mode 100644 gst-libs/gst/codecparsers/Makefile.am create mode 100644 gst-libs/gst/codecparsers/Makefile.in create mode 100644 gst-libs/gst/codecparsers/gsth264parser.c create mode 100644 gst-libs/gst/codecparsers/gsth264parser.h create mode 100644 gst-libs/gst/codecparsers/gstmpeg4parser.c create mode 100644 gst-libs/gst/codecparsers/gstmpeg4parser.h create mode 100644 gst-libs/gst/codecparsers/gstmpegvideoparser.c create mode 100644 gst-libs/gst/codecparsers/gstmpegvideoparser.h create mode 100644 gst-libs/gst/codecparsers/gstvc1parser.c create mode 100644 gst-libs/gst/codecparsers/gstvc1parser.h create mode 100644 gst-libs/gst/codecparsers/parserutils.c create mode 100644 gst-libs/gst/codecparsers/parserutils.h create mode 100644 gst-libs/gst/glib-compat-private.h create mode 100644 gst-libs/gst/video/gstbasevideoutils.h create mode 100644 gst-libs/gst/video/gstsurfacebuffer.c create mode 100644 gst-libs/gst/video/gstsurfacebuffer.h create mode 100644 gst-libs/gst/video/gstsurfaceconverter.c create mode 100644 gst-libs/gst/video/gstsurfaceconverter.h create mode 100644 gst-libs/gst/video/videocontext.c create mode 100644 gst-libs/gst/video/videocontext.h create mode 100644 gst/audiovisualizers/Makefile.am create mode 100644 gst/audiovisualizers/Makefile.in create mode 100644 gst/audiovisualizers/README create mode 100644 gst/audiovisualizers/gstbaseaudiovisualizer.c create mode 100644 gst/audiovisualizers/gstbaseaudiovisualizer.h create mode 100644 gst/audiovisualizers/gstdrawhelpers.h create mode 100644 gst/audiovisualizers/gstspacescope.c create mode 100644 gst/audiovisualizers/gstspacescope.h create mode 100644 gst/audiovisualizers/gstspectrascope.c create mode 100644 gst/audiovisualizers/gstspectrascope.h create mode 100644 gst/audiovisualizers/gstsynaescope.c create mode 100644 gst/audiovisualizers/gstsynaescope.h create mode 100644 gst/audiovisualizers/gstwavescope.c create mode 100644 gst/audiovisualizers/gstwavescope.h create mode 100644 gst/audiovisualizers/plugin.c create mode 100644 gst/bayer/gstbayerorc-dist.c create mode 100644 gst/bayer/gstbayerorc-dist.h create mode 100644 gst/bayer/gstbayerorc.orc delete mode 100644 gst/camerabin2/gstimagecapturebin.c delete mode 100644 gst/camerabin2/gstimagecapturebin.h create mode 100644 gst/debugutils/gstcompare.c create mode 100644 gst/debugutils/gstcompare.h create mode 100644 gst/debugutils/gstdebugspy.c create mode 100644 gst/debugutils/gstdebugspy.h delete mode 100644 gst/dtmf/gstrtpdtmfcommon.h create mode 100644 gst/faceoverlay/Makefile.am rename gst/{invtelecine => faceoverlay}/Makefile.in (82%) create mode 100644 gst/faceoverlay/gstfaceoverlay.c create mode 100644 gst/faceoverlay/gstfaceoverlay.h create mode 100644 gst/freeverb/Makefile.am create mode 100644 gst/freeverb/Makefile.in create mode 100644 gst/freeverb/gstfreeverb.c create mode 100644 gst/freeverb/gstfreeverb.h create mode 100644 gst/hls/gstfragment.c create mode 100644 gst/hls/gstfragment.h create mode 100644 gst/hls/gsturidownloader.c create mode 100644 gst/hls/gsturidownloader.h delete mode 100644 gst/id3tag/gsttagmux.c delete mode 100644 gst/id3tag/gsttagmux.h create mode 100644 gst/inter/Makefile.am create mode 100644 gst/inter/Makefile.in create mode 100644 gst/inter/gstinter.c create mode 100644 gst/inter/gstinteraudiosink.c create mode 100644 gst/inter/gstinteraudiosink.h create mode 100644 gst/inter/gstinteraudiosrc.c create mode 100644 gst/inter/gstinteraudiosrc.h create mode 100644 gst/inter/gstintersurface.c create mode 100644 gst/inter/gstintersurface.h create mode 100644 gst/inter/gstintertest.c create mode 100644 gst/inter/gstintervideosink.c create mode 100644 gst/inter/gstintervideosink.h create mode 100644 gst/inter/gstintervideosrc.c create mode 100644 gst/inter/gstintervideosrc.h delete mode 100644 gst/invtelecine/Makefile.am delete mode 100644 gst/invtelecine/gstinvtelecine.c delete mode 100644 gst/mpeg4videoparse/Makefile.am delete mode 100644 gst/mpeg4videoparse/mpeg4videoparse.c delete mode 100644 gst/mpeg4videoparse/mpeg4videoparse.h create mode 100644 gst/mpegtsdemux/payload_parsers.c create mode 100644 gst/mpegtsdemux/payload_parsers.h create mode 100644 gst/mpegtsdemux/pesparse.c create mode 100644 gst/mpegtsdemux/pesparse.h create mode 100644 gst/pcapparse/gstirtspparse.c create mode 100644 gst/pcapparse/gstirtspparse.h create mode 100644 gst/pcapparse/plugin.c create mode 100644 gst/removesilence/Makefile.am create mode 100644 gst/removesilence/Makefile.in create mode 100644 gst/removesilence/gstremovesilence.c create mode 100644 gst/removesilence/gstremovesilence.h create mode 100644 gst/removesilence/vad_private.c create mode 100644 gst/removesilence/vad_private.h create mode 100644 gst/rtpvp8/dboolhuff.c create mode 100644 gst/rtpvp8/dboolhuff.h create mode 100644 gst/smooth/Makefile.am rename gst/{mpeg4videoparse => smooth}/Makefile.in (83%) create mode 100644 gst/smooth/gstsmooth.c create mode 100644 gst/smooth/gstsmooth.h create mode 100644 gst/subenc/gstsubenc.c create mode 100644 gst/subenc/gstwebvttenc.c create mode 100644 gst/subenc/gstwebvttenc.h create mode 100644 gst/videoparsers/gstmpeg4videoparse.c create mode 100644 gst/videoparsers/gstmpeg4videoparse.h create mode 100644 gst/videoparsers/gstmpegvideoparse.c create mode 100644 gst/videoparsers/gstmpegvideoparse.h delete mode 100644 gst/videoparsers/h264parse.c delete mode 100644 gst/videoparsers/h264parse.h mode change 100755 => 100644 ltmain.sh delete mode 100644 m4/glibc2.m4 delete mode 100644 m4/intl.m4 delete mode 100644 m4/intldir.m4 delete mode 100644 m4/intmax.m4 delete mode 100644 m4/lock.m4 delete mode 100644 m4/longlong.m4 delete mode 100644 m4/printf-posix.m4 delete mode 100644 m4/size_max.m4 delete mode 100644 m4/visibility.m4 delete mode 100644 m4/wchar_t.m4 delete mode 100644 m4/wint_t.m4 delete mode 100644 m4/xsize.m4 create mode 100644 pkgconfig/gstreamer-basevideo-uninstalled.pc.in create mode 100644 pkgconfig/gstreamer-basevideo.pc.in create mode 100644 pkgconfig/gstreamer-codecparsers-uninstalled.pc.in create mode 100644 pkgconfig/gstreamer-codecparsers.pc.in delete mode 100644 po/Makevars.template create mode 100644 po/eo.gmo create mode 100644 po/eo.po delete mode 100644 stamp-h.in create mode 100644 sys/avc/Makefile.am create mode 100644 sys/avc/Makefile.in create mode 100644 sys/avc/gstavcplugin.cpp create mode 100644 sys/avc/gstavcsrc.cpp create mode 100644 sys/avc/gstavcsrc.h create mode 100644 sys/d3dvideosink/Makefile.am create mode 100644 sys/d3dvideosink/Makefile.in create mode 100644 sys/d3dvideosink/d3dvideosink.c create mode 100644 sys/d3dvideosink/d3dvideosink.h create mode 100644 sys/d3dvideosink/directx/d3d.c create mode 100644 sys/d3dvideosink/directx/d3d.h create mode 100644 sys/d3dvideosink/directx/directx.h create mode 100644 sys/d3dvideosink/directx/directx10/dx10.c create mode 100644 sys/d3dvideosink/directx/directx10/dx10.h create mode 100644 sys/d3dvideosink/directx/directx10/dx10_d3d.c create mode 100644 sys/d3dvideosink/directx/directx10/dx10_d3d.h create mode 100644 sys/d3dvideosink/directx/directx11/dx11.c create mode 100644 sys/d3dvideosink/directx/directx11/dx11.h create mode 100644 sys/d3dvideosink/directx/directx11/dx11_d3d.c create mode 100644 sys/d3dvideosink/directx/directx11/dx11_d3d.h create mode 100644 sys/d3dvideosink/directx/directx9/dx9.c create mode 100644 sys/d3dvideosink/directx/directx9/dx9.h create mode 100644 sys/d3dvideosink/directx/directx9/dx9_d3d.c create mode 100644 sys/d3dvideosink/directx/directx9/dx9_d3d.h create mode 100644 sys/d3dvideosink/directx/dx.c create mode 100644 sys/d3dvideosink/directx/dx.h delete mode 100644 sys/decklink/DeckLinkAPIDispatch.cpp create mode 100644 sys/decklink/gstdecklink.h rename sys/decklink/{ => linux}/DeckLinkAPI.h (93%) create mode 100644 sys/decklink/linux/DeckLinkAPIDispatch.cpp rename sys/decklink/{ => linux}/LinuxCOM.h (100%) create mode 100644 sys/decklink/win/DeckLinkAPI.h create mode 100644 sys/decklink/win/DeckLinkAPIDispatch.cpp create mode 100644 sys/decklink/win/DeckLinkAPI_i.c create mode 100644 sys/pvr2d/Makefile.am create mode 100644 sys/pvr2d/Makefile.in create mode 100644 sys/pvr2d/gstpvr.c create mode 100644 sys/pvr2d/gstpvr.h create mode 100644 sys/pvr2d/gstpvrbufferpool.c create mode 100644 sys/pvr2d/gstpvrbufferpool.h create mode 100644 sys/pvr2d/gstpvrvideosink.c create mode 100644 sys/pvr2d/gstpvrvideosink.h create mode 100644 tests/check/elements/baseaudiovisualizer.c create mode 100644 tests/check/elements/h263parse.c create mode 100644 tests/check/elements/h264parse.c delete mode 100644 tests/check/elements/imagecapturebin.c create mode 100644 tests/check/elements/mpeg4videoparse.c create mode 100644 tests/check/elements/mpegtsmux.c create mode 100644 tests/check/elements/mpegvideoparse.c create mode 100644 tests/check/elements/opus.c create mode 100644 tests/check/elements/parser.c create mode 100644 tests/check/elements/parser.h create mode 100644 tests/check/elements/voaacenc.c create mode 100644 tests/check/elements/voamrwbenc.c create mode 100644 tests/check/libs/h264parser.c create mode 100644 tests/check/libs/mpegvideoparser.c create mode 100644 tests/check/libs/vc1parser.c create mode 100644 tests/check/orc/cog.c create mode 100644 tests/check/pipelines/colorspace.c create mode 100644 tests/examples/opencv/Makefile.am create mode 100644 tests/examples/opencv/Makefile.in create mode 100644 tests/examples/opencv/gst_element_print_properties.c create mode 100644 tests/examples/opencv/gst_element_print_properties.h create mode 100644 tests/examples/opencv/gstmotioncells_dynamic_test.c create mode 100644 tests/examples/opencv/gstmotioncells_dynamic_test.h create mode 100644 win32/common/config.h diff --git a/ChangeLog b/ChangeLog index e5cca4e..60a919f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,8671 @@ +=== release 0.10.23 === + +2012-02-21 Tim-Philipp Müller + + * configure.ac: + releasing 0.10.23, "The Game Has Changed" + +2012-02-21 01:35:55 +0000 Tim-Philipp Müller + + * po/ca.po: + * po/id.po: + * po/sv.po: + po: update translations + +2012-02-20 12:42:47 +0100 Sebastian Dröge + + * sys/decklink/Makefile.am: + decklink: Add $(GST_PLUGINS_BASE_CFLAGS) and $(GST_PLUGINS_BASE_LIBS) to fix the build + Conflicts: + sys/decklink/Makefile.am + +2012-02-19 12:57:39 -0800 David Schleef + + * ext/gme/gstgme.c: + * ext/opus/gstopusparse.c: + printf format fixes + +2012-02-16 16:30:02 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Put source to null when resetting caps + It seems that v4l2src isn't happy when switching formats on ready + state, it works when putting it to NULL. Keep this workaround in + wrappercamerabinsrc while v4l2src isn't fixed. + Fixes #849832 + +2012-02-16 01:12:58 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Put source in NULL when it fails changing state + When source is being reset to change caps, check the return of + the state syncing function to avoid leaving the source in an + unconsistent state. + +2012-02-16 00:30:05 +0000 Tim-Philipp Müller + + * gst/mve/gstmvedemux.c: + mve: don't return a boolean for a GstFlowReturn + fixes playback. + +2012-02-15 14:29:23 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: use proper NALU offset for config data insertion + ... which has to be the position of the start code, which is almost always + but need not be 4 bytes. + +2012-02-15 15:07:35 +0100 Jonas Larsson + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: fix SEI parsing + ... in the presence of emulation_prevention_three_byte. + Fixes #668381. + +2012-02-13 23:04:12 +1100 Jan Schmidt + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: Trivial bug fix. Don't copy data from an uninited buffer. + Fixes issue with garbage data in stream headers in caps. + +2012-02-08 21:21:47 +0000 Vincent Penquerc'h + + * sys/shm/gstshmsink.c: + shmsink: fix indefinite wait after adding a new fd to the poll set + If the second call to _wait blocks, we will not signal the condition + variable, so ensure that second call is not blocking. + See rationale and information in the linked bug: + https://bugzilla.gnome.org/show_bug.cgi?id=669697 + +2011-08-27 13:07:00 +0200 Andoni Morales Alastruey + + * sys/d3dvideosink/d3dvideosink.c: + d3dvideosink: Fix device initialization check + +2012-02-02 13:33:02 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: prevent captures from being lost when switching resolutions + When switching capture caps, camerabin1 resets its state to ready + to force a new caps to be negotiated. This causes ongoing captures + to be aborted. + This commit adds a condition to wait for captures to finish before + going to ready state. + +2012-02-02 12:22:06 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Improve debug message about processing counter + Mention on the logs how many capture operations might have been + lost + +2012-02-04 22:06:57 +0000 Vincent Penquerc'h + + * gst/geometrictransform/gstrotate.c: + rotate: angle is in radians already, do not scale it + Other plugins use radians, and the angle documentation says radians. + https://bugzilla.gnome.org/show_bug.cgi?id=669365 + +2012-02-04 22:06:12 +0000 Vincent Penquerc'h + + * gst/geometrictransform/gstrotate.c: + rotate: fix description string to match what the element does + https://bugzilla.gnome.org/show_bug.cgi?id=669365 + +2012-02-05 13:44:22 +0000 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.22.3 pre-release + +2012-02-03 11:08:48 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: do not emit no-more-pads + Doing so may fix some things, but breaks others (new streams being + added in the future). + https://bugzilla.gnome.org/show_bug.cgi?id=665814 + +2012-02-03 11:26:53 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: decrease passthrough negotiation preference + Also ensure parsing fixed caps when negotiating rather than failing to + handle non-fixed list cases. + See #668471. + +2012-02-02 11:41:15 +0000 Vincent Penquerc'h + + * gst/mpegpsmux/mpegpsmux.c: + mpegpsmux: include specific AAC stream-format in template caps + This elements seems to support raw and adts AAC. + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 11:37:55 +0000 Vincent Penquerc'h + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: add explicit supported AAC stream-format in template caps + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 11:31:32 +0000 Vincent Penquerc'h + + * ext/faad/gstfaad.c: + faad: include specific support AAC stream formats in template caps + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 11:27:33 +0000 Vincent Penquerc'h + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: specify in template caps we only take raw/adts AAC format + This appears to be what this element supports. + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 11:20:38 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: include specific AAC stream-format types in template caps + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 10:59:53 +0000 Vincent Penquerc'h + + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + * ext/kate/gstkateutil.h: + kate: better error/debug reporting + Include text messages instead of error codes. + +2012-01-30 18:46:07 +0000 Vincent Penquerc'h + + * ext/resindvd/resindvdsrc.c: + resindvd: fix wedge in preroll when playbin2 deinterlacing is enabled + When deinterlacing is enabled, an extra colorspace element is added. + Colorspace is a basetransform, and is then the only basetransform + element on the video path. A while ago, basetransform started delaying + events till caps were set on its source pad. These things conspired + to end up sending the DVD highlight events onto a blocked pad on + subtitleoverlay. + Ensuring these highlight events are only sent once we're in playing + mode fixes the issue. + https://bugzilla.gnome.org/show_bug.cgi?id=668762 + +2011-12-26 21:57:48 -0600 Rob Clark + + * gst/videoparsers/gstmpegvideoparse.c: + videoparsers: set interlaced field in caps for mpeg2 + https://bugzilla.gnome.org/show_bug.cgi?id=667218 + +2012-01-25 13:57:57 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: fix parsing of VUI parameters. + max_dec_frame_buffering was mis-parsed because log2_max_mv_length_vertical + was parsed twice. + https://bugzilla.gnome.org/show_bug.cgi?id=668660 + +2012-01-28 20:01:35 +0100 Mark Nauwelaerts + + * ext/voamrwbenc/gstvoamrwbenc.c: + voamrwbenc: init debug category + +2012-01-28 20:01:19 +0100 Mark Nauwelaerts + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: init debug category + +2012-01-28 12:32:46 +0000 Vincent Penquerc'h + + * ext/kate/gstkateenc.c: + kateenc: remove 'flush every packet' hack + This is a bad hack which does not work with Matroska, and is now + obsolete as similar code is not included in oggmux/oggstream. + +2012-01-27 07:36:19 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Add viewfinder colorspace conversion to default flags + This make the default settings more likely to work. If needed, one + can optimize by disabling conversions with the flags. + +2012-01-23 08:04:20 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Removing solved TODO and fixing a typo + +2011-12-22 15:19:05 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/Makefile.am: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + basecamerabinsrc: remove redundant functions + gst_bin_get_by_interface should be enough for applications. + Haven't seen anyone using those other than wrappercamerabinsrc. + +2012-02-01 12:47:56 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: disable optimized packetized processing for reverse playback + ... as baseparse then provides whole chunks of data (as it should) at once + to be parsed, and so the assumptions used to optimize are no longer valid. + Fixes #667560. + +2012-02-01 12:23:23 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: also mind SEI position for config data insertion + Fixes #668627. + +2012-02-01 12:03:04 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: unbreak optimized packetized NALU collection processing + ... in that it was so optimized it did not consider grouping NALU into AU + altogether. + Fixes #668627. + +2012-01-18 11:28:26 +0100 Alessandro Decina + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: don't scan for the last PTS if the first wasn't found + +2012-01-24 11:22:46 +0100 Oleksij Rempel (Alexey Fisher) + + * ext/vp8/gstvp8enc.c: + vp8enc: trace outgoing timestamps + add info level prints for outgoing timestamps. + Signed-off-by: Oleksij Rempel (Alexey Fisher) + +2012-01-23 22:20:40 +0000 Vincent Penquerc'h + + * ext/resindvd/rsndec.c: + resindvd: fix caps refcount error + /me bad monkey. + +2012-01-20 15:34:27 +0000 Vincent Penquerc'h + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsndec.c: + resindvd: fix preroll on titles with no audio track + https://bugzilla.gnome.org/show_bug.cgi?id=599469 + +2012-01-23 18:30:19 +0000 Jonas Larsson + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parse: fix gst_h264_parse_clock_timestamp always failing + +2012-01-23 18:01:14 +0000 Tim-Philipp Müller + + * REQUIREMENTS: + REQUIREMENTS: we need librtmp for rtmp support + https://bugzilla.gnome.org/show_bug.cgi?id=668521 + +2012-01-23 18:51:34 +0100 Jonas Larsson + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: read the cbr_flag in h264_parse_hrd_parameters + +2012-01-23 17:47:45 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix frequent deadlock demuxing MPEG TS + A previous patch to add streams early to fix playback of + low bitrate streams causes frequent deadlock of a nature + I'm at loss how to fix. + I'm not certain whether it's a bug in decodebin2, or in + that mpegtsdemux patch. + Since it causes a major regression, let it be disabled for now. + +2012-01-23 14:10:43 +0100 Mark Nauwelaerts + + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: break out when stream identified + +2012-01-23 14:06:54 +0100 Mark Nauwelaerts + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsdemux: avoid NULL manipulation if invalid input + +2012-01-23 14:05:45 +0100 Mark Nauwelaerts + + * gst/mpegdemux/mpegtsparse.c: + mpegdemux: avoid NULL manipulation if invalid input + +2012-01-23 14:01:02 +0100 Mark Nauwelaerts + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: avoid some unlikely leaks + +2012-01-23 13:58:57 +0100 Mark Nauwelaerts + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: prevent some fall-through cases + +2012-01-23 13:58:04 +0100 Mark Nauwelaerts + + * gst/mve/gstmvemux.c: + mve: use signed loop variable + ... when using it in i >= 0. + +2012-01-23 13:57:32 +0100 Mark Nauwelaerts + + * gst/mve/mvevideoenc16.c: + mve: ensure best target found + +2012-01-23 13:56:02 +0100 Mark Nauwelaerts + + * gst/festival/gstfestival.c: + festival: enhance some error case handling + +2012-01-23 13:55:33 +0100 Mark Nauwelaerts + + * gst/nuvdemux/gstnuvdemux.c: + nuvdemux: check directly for valid buffer + ... rather than doing so indirectly in (incomplete) semantic way. + +2012-01-23 13:54:32 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: fix parameter sanity check + +2012-01-20 12:25:09 +0000 Vincent Penquerc'h + + * ext/resindvd/resindvdsrc.c: + rsndvdsrc: fix leak + +2012-01-20 12:15:20 +0000 Vincent Penquerc'h + + * ext/resindvd/resindvdbin.c: + resindvdbin: fix video/audio mixup in error message + +2012-01-20 10:42:21 +0000 Vincent Penquerc'h + + * ext/resindvd/rsnaudiomunge.c: + rsnaudiomunge: keep the object ref longer + Since we do not get a ref to the pad, I'm not certain it's safe + to drop the object and use the pad later, so hold the object ref + till we're done with the pad. + +2011-12-31 17:13:02 -0800 David Schleef + + * sys/avc/Makefile.am: + avc: fix broken line continuation + +2011-08-04 13:05:22 -0700 David Schleef + + * ext/kate/gstkateenc.c: + kateenc: Don't error on empty input buffers + +2012-01-18 16:35:16 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: fix ref_pic_list_modification() + The entries were not filled in linearly and the termination was not + recorded either. Now, the actual number of modifications is recorded + similarly to dec_ref_pic_marking(). i.e. an explicit counter instead + of storing the termination value in the array. + https://bugzilla.gnome.org/show_bug.cgi?id=668192 + +2012-01-16 17:30:22 +0000 Vincent Penquerc'h + + * gst/debugutils/gstdebugspy.c: + debugspy: fix string leak + +2012-01-16 17:07:29 +0000 Vincent Penquerc'h + + * gst/mpegdemux/flutspmtstreaminfo.c: + mpegdemux: fix missing finalize chaining to parent + This code does not seem to trigger on my test streams, so it's + a bit of a blind fix, but seems safe enough to push. + +2012-01-16 17:02:22 +0000 Vincent Penquerc'h + + * ext/opencv/gsttemplatematch.c: + opencv: fix missing finalize chaining to parent class + Not compiled, I do not have the necessary dependencies. + +2012-01-16 17:01:18 +0000 Vincent Penquerc'h + + * ext/gme/gstgme.c: + gme: fix missing dispose chaining to parent class + Not compiled, I do not have the necessary dependencies. + +2012-01-16 16:59:57 +0000 Vincent Penquerc'h + + * ext/spc/gstspc.c: + spc: fix missing dispose chaining to parent class + Not even compiled, I do not have the dependencies needed. + +2012-01-13 15:57:33 -0300 Reynaldo H. Verdejo Pinochet + + * gst/videoparsers/Makefile.am: + Android, Fix wrong dinamic linking attempt + gstcodecparsers is built as an static library. + This change fixes building with the Android buildsystem. + +2012-01-13 13:30:57 +0000 Vincent Penquerc'h + + * ext/cog/gstcogmse.c: + cogmse: fix finalize not calling base class (and leaking) + +2012-01-13 12:55:39 +0000 Vincent Penquerc'h + + * ext/cog/gstcogmse.c: + cogmse: signal chain functions to exit on flush-start + +2012-01-13 12:08:28 +0000 Vincent Penquerc'h + + * gst/siren/gstsirenenc.c: + sirenenc: fix base class call mixup in finalize + +2012-01-13 11:22:42 +0000 Vincent Penquerc'h + + * ext/cog/gstcogmse.c: + cogmse: fix typo using the wrong pad + +2012-01-13 11:22:21 +0000 Vincent Penquerc'h + + * ext/cog/gstcogmse.c: + cogmse: fix possible buffer leak + +2012-01-13 10:32:59 +0000 Vincent Penquerc'h + + * sys/linsys/gstlinsyssdisink.c: + * sys/linsys/gstlinsyssdisrc.c: + linsyssdi: fix leaks + +2012-01-13 10:25:22 +0000 Vincent Penquerc'h + + * ext/rsvg/gstrsvgoverlay.c: + rsvgoverlay: fix adapter leak + +2012-01-12 17:16:32 +0000 Vincent Penquerc'h + + * ext/cog/gstcogmse.c: + cogmse: fix pad leaks + +2012-01-12 17:11:14 +0000 Vincent Penquerc'h + + * gst/patchdetect/gstpatchdetect.c: + * gst/patchdetect/gstpatchdetect.h: + patchdetect: remove (leaking) dead code + +2012-01-12 16:45:39 +0000 Vincent Penquerc'h + + * gst/inter/gstinteraudiosink.c: + * gst/inter/gstinteraudiosink.h: + * gst/inter/gstinteraudiosrc.c: + * gst/inter/gstinteraudiosrc.h: + * gst/inter/gstintervideosink.c: + * gst/inter/gstintervideosink.h: + * gst/inter/gstintervideosrc.c: + * gst/inter/gstintervideosrc.h: + inter: remove (leaking) dead code + +2012-01-12 16:36:19 +0000 Vincent Penquerc'h + + * ext/schroedinger/gstschroenc.c: + schroenc: balance encoder and video format alloc/dealloc + They would leak if just constructing and freeing an object, + and probably crash if going from PLAYING to READY and back + again (though I haven't tested that). + +2012-01-12 15:58:36 +0000 Vincent Penquerc'h + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix queue leak + +2012-01-12 15:43:51 +0000 Vincent Penquerc'h + + * gst/dccp/gstdccpclientsink.c: + dccpclientsink: fix string leak + +2012-01-12 15:19:01 +0000 Vincent Penquerc'h + + * gst/y4m/gsty4mdec.c: + y4mdec: fix event leak + +2012-01-12 14:34:25 +0000 Vincent Penquerc'h + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + mpegvideoparser: fix memory leak + +2012-01-11 18:24:41 +0000 Vincent Penquerc'h + + * ext/schroedinger/gstschrodec.c: + schrodec: fix tag leak + +2012-01-11 18:12:22 +0000 Vincent Penquerc'h + + * ext/schroedinger/gstschrodec.c: + schrodec: take out unused leaking buffer + +2012-01-11 16:34:35 +0000 Vincent Penquerc'h + + * ext/opus/gstopusparse.c: + opusparse: fix caps leak + +2012-01-11 16:32:31 +0000 Vincent Penquerc'h + + * ext/opus/gstopusparse.c: + opusparse: fix slist leak + +2012-01-11 13:32:36 +0000 Vincent Penquerc'h + + * tests/check/elements/opus.c: + tests: fix buffer leaks in opus tests + +2012-01-10 17:27:54 +0000 Vincent Penquerc'h + + * ext/modplug/gstmodplug.cc: + modplug: fix caps leak + +2012-01-10 13:38:50 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix slist leak + +2012-01-10 13:38:42 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix caps leak + +2012-01-10 13:25:05 +0000 Vincent Penquerc'h + + * gst/interlace/gstinterlace.c: + interlace: fix caps leaks + +2012-01-10 13:24:22 +0000 Vincent Penquerc'h + + * gst/interlace/gstinterlace.c: + interlace: fix ref leak + +2012-01-10 11:41:34 +0100 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Don't provide bogus values in non-TIME push-mode + Only take the upstream segment values in GST_FORMAT_TIME + +2012-01-10 11:37:13 +0100 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Handle rollover in PTS and DTS + Also hands back-rollover which can happen with PTS + +2012-01-09 14:56:29 +0100 Mark Nauwelaerts + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: mpeg4: fix parsing when recursively skipping user data + +2012-01-09 11:03:24 +0000 Vincent Penquerc'h + + * gst/videoparsers/gsth264parse.c: + h264parse: use the framerate that was copied a few lines above + +2012-01-06 10:52:36 +0000 Vincent Penquerc'h + + * gst/videoparsers/gsth264parse.c: + h264parse: fix test and set not using the same input + This fixes H.264 output not having a set framerate, and + confusing some of the elements downstream (such as interlace). + +2012-01-06 10:39:07 +0000 Vincent Penquerc'h + + * gst/interlace/gstinterlace.c: + interlace: avoid dividing by zero on unkbown framerate + If the framerate is unknown, we cannot generate meaningful + buffer timestamps/durations, so set them to _NONE instead of + calculating something wrong and dividing by 0. + +2011-12-08 12:15:39 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: remove h263 gob parsing, since there is no gob immediate after svh + +2011-12-08 12:13:38 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: add missing zero_bits in h263 parsing + +2011-12-08 12:12:21 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: includes start_marker in h263 header for parsing + +2011-12-08 12:07:42 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix offset issue in h263 parse + +2011-12-08 11:27:56 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix mask pattern for h263 start marker + +2012-01-05 11:01:01 +0000 Vincent Penquerc'h + + * tests/examples/camerabin2/gst-camera2.c: + tests: test for GTK 2.24 for new symbols used in camerabin2 tests + The whole tree is likely to switch to GTK 3.0 at some point, but + we might as well continue building with slightly less new versions + if it's not hard to do. + +2012-01-04 19:40:55 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 11f0cd5 to cb5da59 + +2012-01-04 18:42:57 +0000 Tim-Philipp Müller + + * tests/check/elements/camerabin.c: + * tests/check/elements/camerabin2.c: + * tests/check/elements/jifmux.c: + tests: remove temporary files when done in camerabin, camerabin2 and jifmux tests + +2012-01-04 10:56:51 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: fix and tweak frame timestamping + ... to run with properly init'ed variables, and to only perform interpolation + in safe cases. + +2012-01-03 22:09:04 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: prefer negotiating pass-through + +2012-01-03 21:59:32 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: mark byte-stream AU frame with inserted codec NALs as keyframe + +2012-01-03 20:23:16 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: properly determine skip amount when no NAL start found yet + +2012-01-03 20:21:51 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: some more proper parse state reset + +2011-12-30 00:02:46 -0300 Thiago Santos + + * gst-libs/gst/video/gstbasevideocodec.c: + basevideocodec: Reset should reset current caps + New caps will need to be negotiated when reset happens + (PAUSED to READY). Without reseting the internal + stored format, basevideoencoder/decoder wouldn't call the + configuration function when the same caps was negotiated + again as they would believe this was the same caps as before. + The issue is that _stop has been called when going to READY and + the elements would have reset their internal codec libs/state as + well. A new configuration should be done. + +2011-12-30 00:02:19 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: clarify some message logs + Be explicit on which encodebin we're switching profiles on the + log messages + +2011-12-29 13:30:13 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camera2.c: + examples: camerabin2: add some error handling for format changing + Check that the format could be initialized and shows a modal dialog + in case it couldn't. + +2011-12-29 12:47:48 -0300 Thiago Santos + + * tests/examples/camerabin2/Makefile.am: + * tests/examples/camerabin2/gst-camera2.c: + * tests/examples/camerabin2/gst-camera2.h: + * tests/examples/camerabin2/gst-camera2.ui: + examples: camerabin2: add format selection for camerabin2 example + Adds a combobox for selecting the video profile for recordings. + Useful for testing multiple formats a/v sync when recording. + +2011-12-28 16:59:15 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: remove comment for already fixed issues on makefile + Some issues on camerabin2 and jifmux tests were fixed some + time ago, remove the comments about them + +2011-12-28 16:57:25 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Fix message leak in tests + +2011-12-27 11:59:16 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: fix gvalue leak + +2011-12-27 10:23:18 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: fix mainloop leaks + +2011-12-27 10:20:48 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: secure event ref when sending event to parent class + camerabin2 needs to hold an extra ref on send_event before sending + it to the parent class as it will need to use it after the parent + handles it. + +2011-12-22 15:01:47 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + camerabin2: remove unused helper function + This drop_eos_probe function is not used anymore, remove it + +2011-12-19 16:49:08 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Fix A/V sync for captures + Audio src was pushing newsegments starting from 0, even when its buffers + were not starting with 0 as their timestamps. Add a buffer probe that + checks the ts of the first buffer and uses that to push a newsegment, + just like we do for video on wrappercamerabinsrc. + +2011-12-19 15:17:22 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: camerabin2: enable tests + Tests are passing now, enable them + +2011-12-19 15:16:42 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Push newsegments on video capture start + Pushing newsegments to inform muxers about the start time of the + video buffer timestamps. + +2011-12-19 13:18:51 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: only warn when we see a PID with unknown type + This is quite frequent, and we will just ignore that stream, + so an error is not warranted. + +2011-12-18 17:32:11 +0100 Alessandro Decina + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: unset the current PCR stream when starting a new unit + Unset the current PCR stream when starting a new unit so that afterwards a new + stream is selected as PCR and PAT and PMT tables are regenerated. + +2011-12-18 17:31:18 +0100 Alessandro Decina + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: fix key unit event handling when muxing both audio and video + Take only video buffers into account when deciding when to cut so that new units + start with a video keyframe. + +2011-12-20 14:04:52 +0100 Mark Nauwelaerts + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: clear sei message prior to parsing + Fixes #666584. + +2011-12-15 11:11:41 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: jifmux: re-enable jifmux's tests + Fix for its test is now available on -base module. + Enabling again. + +2011-12-14 17:36:55 +0100 Mark Nauwelaerts + + * ext/dts/gstdtsdec.c: + dtsdec: avoid crashing upon draining + ... and clean up some variable init and debug statement. + +2011-12-14 08:54:32 -0300 Thiago Santos + + * tests/check/elements/mpegtsmux.c: + tests: mpegtsmux: remove unused variable + +2011-12-14 08:32:50 -0300 Tommi Myöhänen + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: fix leak on error handling + Camerabin2 parses warning messages with gst_message_parse_warning(message, + &err, &debug) but doesn't free given GError and debug strings. + Documentation shows that the ownership of those fields is transferred + to caller (they are marked "[transfer full]" in the API docs). + +2011-12-12 15:52:20 +0100 Julien Isorce + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: check offset when retrieving table_id on malformed packets + Fix bug #665988 + +2011-12-12 13:59:33 +0000 Vincent Penquerc'h + + * gst/liveadder/liveadder.c: + liveadder: fix buffer leak + +2011-12-12 10:40:08 +0100 Sebastian Dröge + + * ext/Makefile.am: + teletextdec: Properly integrate into the build system + +2011-12-12 10:28:10 +0100 Sebastian Dröge + + * ext/dts/Makefile.am: + dts: Add $(GST_BASE_LIBS) and CFLAGS to the build + dtsdec now uses GstAdapter, which is in libgstbase. Also reorder + CFLAGS and LIBADD. + +2011-12-11 16:23:56 +0000 Tim-Philipp Müller + + * configure.ac: + * ext/cog/gstcogorc-dist.c: + * gst/bayer/gstbayerorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.h: + * win32/common/config.h: + 0.10.22.2 pre-release + +2011-12-11 16:07:44 +0000 Tim-Philipp Müller + + * docs/libs/Makefile.am: + docs: fix make distcheck + Set DOC_OVERRIDES, so the -overrides.txt file which is apparently + created anyway, gets cleaned up properly. + +2011-12-11 16:05:57 +0000 Tim-Philipp Müller + + * docs/libs/Makefile.am: + docs: minor Makefile.am clean-up + GST_BAD_CFLAGS and GST_BAD_LIBS don't exist. + +2011-12-11 15:29:31 +0000 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: disable failing jifmux, camerabin2, and colorspace tests + jifmux: general:test_jifmux_tags:0: Assertion 'entry->components == 2' failed + camerabin2: test_multiple_video_recordings:0: gst_caps_get_structure: assertion `GST_IS_CAPS (caps) + colorspace: bad memory accesses in orc code for odd width buffers (see bug #663248) + +2011-12-11 15:03:17 +0000 Tim-Philipp Müller + + * tests/check/elements/camerabin2.c: + tests: fix g_usleep() in camerabin2 test + g_usleep() takes a microsecond value, GST_SECOND is nanoseconds, so + we were sleeping for more than 3 minutes here instead of 200ms. + +2011-12-11 00:59:15 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/eo.po: + * po/es.po: + * po/gl.po: + * po/ky.po: + * po/lv.po: + * po/sr.po: + * po/sv.po: + po: update translations + +2011-09-25 23:57:34 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegpsmux/psmux.c: + * gst/mpegpsmux/psmux.h: + mpegpsmux: put stream headers into output caps + Basic version with only the system header and the program + stream map. An advanced version could include codec-specific + bits like SPS/PPS too. This is useful in connection with + e.g. multifilesink to make sure new files always start with + the stream headers. + +2011-09-16 19:32:38 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegpsmux/mpegpsmux.h: + mpegpsmux: add "aggregate-gops" property to aggregate GOPs into buffer lists + Useful in connection with multifilesink, for example, to make sure + the new file always starts with a keyframe. + +2011-12-10 20:08:20 +0000 Tim-Philipp Müller + + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegpsmux/mpegpsmux.h: + mpegpsmux: remember primary video stream + +2011-08-31 19:40:05 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegpsmux/psmuxstream.c: + * gst/mpegpsmux/psmuxstream.h: + mpegpsmux: remember whether an incoming buffer is a keyunit or not + +2011-12-09 17:25:41 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusparse.c: + * ext/opus/gstrtpopuspay.c: + opusenc: add upstream negotiation for multistream ability + This will help elements that cannot deal with multistream, + such as the RTP payloader. + The caps now do not include a "streams" field anymore, but + a "multistream" boolean, since we have no real use for knowing + the exact amount of streams. + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-07 15:13:11 -0200 Danilo Cesar Lemes de Paula + + * ext/opus/Makefile.am: + * ext/opus/gstopus.c: + * ext/opus/gstrtpopusdepay.c: + * ext/opus/gstrtpopusdepay.h: + * ext/opus/gstrtpopuspay.c: + * ext/opus/gstrtpopuspay.h: + Adding opus RTP payloader/depayloader element + Adding OPUS RTP module based on the current draft: + http://tools.ietf.org/id/draft-spittka-payload-rtp-opus-00.txt + https://bugzilla.gnome.org/show_bug.cgi?id=664817 + +2011-12-08 19:47:55 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusparse.c: + opus: include streams count in caps + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-08 18:45:27 +0000 Vincent Penquerc'h + + * ext/opus/gstopuscommon.c: + * ext/opus/gstopuscommon.h: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusheader.h: + * ext/opus/gstopusparse.c: + opus: properly create channel mapping tables + There are two of them, unintuitively enough; the one passed + to the encoder should not be the one that gets written to the + file. The former maps the input to an ordering which puts + paired channels first, while the latter moves the channels + to Vorbis order. So add code to calculate both, and we now + have properly paired channels where appropriate. + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-08 22:49:50 +0000 Tim-Philipp Müller + + * gst/videoparsers/Makefile.am: + videoparsers: fix LIBS order in Makefile.am + +2011-12-08 12:42:57 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: only offset timestamps when live + This code is to sync to a live source when there is a delay + between start and when we receive the first buffer, so it does + not make sense in a non live case. + This fixes playback of streams where the input timestamps are + based off some arbitrary offset. + https://bugzilla.gnome.org/show_bug.cgi?id=663756 + +2011-12-08 11:51:36 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Only make the header buffer metadata writable, not the buffer + +2011-12-08 10:19:40 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Fix handling of force-keyunit events + +2011-12-07 00:06:11 -0500 Olivier Crête + + * ext/opus/gstopusdec.c: + opusdec: header cleanup + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-07 00:06:11 -0500 Olivier Crête + + * ext/opus/gstopusdec.c: + opusdec: Truncate caps first + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-11-28 19:47:34 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: default to stereo 48000 Hz if possible when no headers seen + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-07 13:48:53 +0100 Sebastian Dröge + + * ext/resindvd/rsndec.c: + rsndec: Don't use the initial-identity property on autoconvert + It was removed, see bug #599469, #665205 + +2011-12-07 13:46:43 +0100 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Remove the initial-identity property from autoconvert + Initially creating an identity element to forward serialized + events downstream before any caps are known is broken behaviour. + Serialized events should only be forwarded downstream if the + caps are already known, otherwise autopluggers and other elements + using pad-blocks will fail. + This behaviour also doesn't work anymore after basetransform + was fixed to queue serialized events until the caps are known + as a result of fixing bug #659571. + See bug #599469, #665205. + +2011-12-06 16:27:25 -0300 Thibault Saunier + + * gst/videoparsers/gstmpeg4videoparse.c: + videoparsers: Do not not skip startcode when needed + Fix: https://bugzilla.gnome.org/show_bug.cgi?id=665631 + +2011-12-06 08:55:19 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: first video_packet_header doesn't start with resync_marker + +2011-12-06 08:53:07 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: return NO_PACKET if needed + +2011-12-06 08:31:14 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix an issue in check resync marker + +2011-12-06 08:25:59 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix an issue in finding the last video packet in vop + +2011-12-06 08:21:19 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: include resync marker in video packet size + +2011-12-06 08:19:05 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: scan next resync marker after current one + +2011-12-06 08:17:38 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix < 0 issue of guint in mpeg4 parser + gst_byte_reader_masked_scan_uint32 returns a guint, not a gint, which + explains the issue we sometime get using < 0 instead of == -1; + +2011-12-06 08:15:46 +0800 Zhao Halley + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix pattern/mask of resync_marker parsing of mpeg4 + +2011-12-06 13:06:06 +0100 Alessandro Decina + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: handle force key unit events + Send SPS/PPS on force key unit events. Useful for example when serving HLS + without transcoding. + +2011-12-06 12:55:26 +0100 Alessandro Decina + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + codecparsers: fix compile warnings in gstmpeg4parser.c + +2011-12-05 11:56:02 +0100 Edward Hervey + + * tests/check/elements/.gitignore: + * tests/check/libs/.gitignore: + tests: Add more files to .gitignore + +2011-12-05 11:50:17 +0100 Edward Hervey + + * gst/videoparsers/gsth264parse.c: + h264parse: Use faster parsing variant when input is packetized + Reduces latency and cpu usage + https://bugzilla.gnome.org/show_bug.cgi?id=665584 + +2011-12-05 11:47:57 +0100 Edward Hervey + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: Variant of _identify_nalu without checks + This is useful for cases where the caller *knows* that the provided + input contains a whole NALU and can therefore avoid: + * the expensive checks for the next start code (which won't be present) + * delaying the input parsing (since we would need the next incoming NALU + in order for the parsing code to detect the next start code) + https://bugzilla.gnome.org/show_bug.cgi?id=665584 + +2011-12-05 13:09:17 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: reflow slice nal processing + +2011-12-05 12:57:47 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: optimize slice nal processing + Only minimal slice info is needed here to determine real frame start, + so no need to parse extensively. + Fixes #665418. + +2011-12-05 12:53:59 +0100 Mark Nauwelaerts + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparser: unbreak h264 slice header parsing + .. introduced by refactoring in commit 177451c9216f4e3959e7358675fbb9731d2c81a2 + +2011-12-05 08:56:43 +0100 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Implement iterate_internal_links function on the sinkpad and srcpad + +2011-11-28 19:38:34 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: guard against decoding 0 samples + https://bugzilla.gnome.org/show_bug.cgi?id=665078 + +2011-12-02 11:46:03 +0100 Sebastian Dröge + + * configure.ac: + configure: Require XVID API >= 4.3 + This is required for encoding the simple profile + with levels 4a, 5 or 6. + Fixes bug #665378. + +2011-12-01 10:54:49 +0100 Sebastian Dröge + + * ext/xvid/gstxvidenc.c: + xvidenc: Don't add the profile/level to the video/x-xvid caps + +2011-12-01 09:54:08 +0100 Sebastian Dröge + + * ext/xvid/gstxvidenc.c: + * ext/xvid/gstxvidenc.h: + xvidenc: Add profile/level to the caps and negotiate them with downstream + Still keep the profile property to select profile/level if there + are no downstream constraints. + Fixes bug #652261. + +2011-12-01 09:39:11 +0100 Sebastian Dröge + + * ext/xvid/gstxvidenc.c: + xvidenc: Add support for levels 4a/5/6 of the simple profile + +2011-12-01 09:02:46 +0100 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: let upstream PAR override in-stream PAR + +2011-11-23 18:26:44 +0100 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: rework PAR parsing + And in the process refactor _update_src_caps a bit + +2011-11-16 00:03:12 -0500 Luciana Fujii Pontello + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: respect pixel-aspect-ratio + Parse pixel-aspect-ratio in vui information. + +2011-11-30 22:12:27 +0100 Stefan Sauer + + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstspacescope.h: + spacespace: whitespace cleanups + +2011-11-30 22:11:40 +0100 Stefan Sauer + + * gst/audiovisualizers/gstwavescope.c: + * gst/audiovisualizers/gstwavescope.h: + wavescape: also add colormodes like in spacescope + +2011-11-30 15:13:04 +0100 Stefan Sauer + + * gst/audiovisualizers/README: + audiovisualizer: update README + +2011-11-30 14:20:38 +0100 Stefan Sauer + + * gst/audiovisualizers/gstdrawhelpers.h: + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstspacescope.h: + spacescope: add color-modes + In colormode we split the signal in low,mid,high frequency parts and draw them + separately into red, gree, blue color channels. + +2011-08-30 14:37:42 +0200 Nicola Murino + + * ext/opencv/gstmotioncells.c: + * ext/opencv/gstmotioncells.h: + replace propset_mutex with GST_OBJECT_LOCK + +2011-11-25 22:32:11 +0100 Stefan Sauer + + * gst/audiovisualizers/gstdrawhelpers.h: + audiovisualizers: streamline the line_aa code + Have a reusable dot_aa code and reuse in the line drawing. + +2011-11-30 10:35:12 +0000 Tim-Philipp Müller + + * gst/mpegtsmux/Makefile.am: + mpegtsmux: fix build in uninstalled setup + Add -base libs includes to CFLAGS, fix order of LIBS. + +2011-08-21 11:01:37 +0200 Alessandro Decina + + * gst/mpegtsmux/Makefile.am: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + * tests/check/Makefile.am: + * tests/check/elements/mpegtsmux.c: + mpegtsmux: add support for force key unit events + Handle force key unit events outputting PAT and PMT when all_headers=TRUE + +2011-11-29 23:41:22 +0100 Stefan Sauer + + * configure.ac: + opencv: allow to build against 2.3.1 + +2011-11-29 18:18:36 +0000 Tim-Philipp Müller + + * Makefile.am: + build: add old mpeg4videoparse directory to CRUFT_DIRS + +2011-11-22 09:47:58 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: record ref_pic_list_modification(). + +2011-11-22 09:47:57 +0100 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: rename ref_pic_list_reordering() to ref_pic_list_modification(). + Upgrade to current AVC specification. + +2011-11-29 12:20:51 +0100 Alexey Fisher + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: recalculate adjust if difference is negative + One of my dvds jump on some position and miss about 1 minute of stream. + The reason was mpeg timestamps. On some position scr difference is negative. + It produced negative timestamps. Since it was converted to unsigned value, + gstreamer timestamps was invalid. Instead of increasing mpeg ts, + they was decreasing till it started to be positive. + The jump in timestamps caused mpeg2dec to skip frames to make QoS happy. + This patch just make diff unsigned to avoid negative values. + Signed-off-by: Alexey Fisher + https://bugzilla.gnome.org/show_bug.cgi?id=656115 + +2011-11-29 12:12:33 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Pass the all-headers field of the force-key-unit event to the subclass + +2011-11-29 12:12:04 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Implement full support for the new force-key-unit event + Including support for the running-time and count fields. + +2011-11-29 09:31:11 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Use new force-keyunit event API from gst-plugins-base + +2011-11-29 09:18:19 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Adjusting padding is not required for -bad libraries + +2011-11-28 19:48:01 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Move some fields to the private part of the instance struct + +2011-11-28 19:36:56 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Make headers metadata writable before pushing downstream + The timestamp, duration, etc of the headers has to be changed. + +2011-11-28 19:35:40 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Push the downstream force-keyframe event after the next keyframe + Even if the corresponding GstVideoFrame doesn't have the is_sync_point + flag set. + +2011-11-28 19:29:13 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Don't push an upstream force-keyunit event downstream + +2011-11-25 11:48:08 +0100 Jonas Larsson + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Add initial support for the all-headers field of the force-keyframe event + See bug #607742. + +2011-11-29 09:22:38 +0000 Tim-Philipp Müller + + * ext/kate/gstkatetiger.c: + kate: fix set-but-not-used-variable compiler warning + gstkatetiger.c:1156:15: error: variable 'height' set but not used + gstkatetiger.c:1156:8: error: variable 'width' set but not used + +2011-11-29 09:15:11 +0000 Tim-Philipp Müller + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + * gst-libs/gst/codecparsers/gstmpeg4parser.h: + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: minor fixes + Const-ify one more VLC table. Fix spelling of 'hybrid'. + No need to explicitly call ensure_debug_category() everywhere, + that will be done automatically from GST_LOG() and friends + via GST_CAT_DEFAULT. + +2011-11-08 10:44:11 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + * gst-libs/gst/codecparsers/gstmpeg4parser.h: + * gst/videoparsers/gstmpeg4videoparse.c: + codecparser: mpeg4: Look for resync code in _mpeg4_parse + This way the API is simpler and users can call 1 single function for packet + detection. + +2011-09-29 14:37:59 -0300 Thibault Saunier + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstmpeg4videoparse.c: + * gst/videoparsers/gstmpeg4videoparse.h: + mpeg4videoparse: Properly handle profile and level in caps + Fix #660234 + +2011-09-26 16:58:58 -0300 Thibault Saunier + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstmpeg4videoparse.c: + * gst/videoparsers/gstmpeg4videoparse.h: + * gst/videoparsers/mpeg4parse.c: + * gst/videoparsers/mpeg4parse.h: + mpeg4videoparse: Port to the new mpeg4parser library + +2011-09-26 10:39:31 -0300 Thibault Saunier + + * configure.ac: + * gst/mpeg4videoparse/Makefile.am: + * gst/mpeg4videoparse/mpeg4parse.c: + * gst/mpeg4videoparse/mpeg4parse.h: + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstmpeg4videoparse.c: + * gst/videoparsers/gstmpeg4videoparse.h: + * gst/videoparsers/mpeg4parse.c: + * gst/videoparsers/mpeg4parse.h: + * gst/videoparsers/plugin.c: + mpeg4videoparse: Move to the videoparsers plugin + Rename a few variables to use the same convention as others elements in this + plugin + Conflicts: + gst/videoparsers/gstmpeg4videoparse.c + +2011-11-02 09:14:42 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: Declare private arrays as static all around + +2011-09-21 19:49:36 -0300 Thibault Saunier + + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstmpeg4parser.c: + * gst-libs/gst/codecparsers/gstmpeg4parser.h: + codecparsers: mpeg4: Implement an Mpeg4 part 2 parsing library + +2011-09-21 19:40:47 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/parserutils.c: + * gst-libs/gst/codecparsers/parserutils.h: + codecparsers: Move shared code to a parser utils file + +2011-09-29 16:25:29 -0300 Thibault Saunier + + * pkgconfig/gstreamer-plugins-bad.pc.in: + pkgconfig: remove references to codecparsers from -bad.pc.in + +2011-11-28 18:47:50 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + camerabin2: viewfinderbin: use faster cast macro + Use cast macro without type checks when we know it should work. + +2011-11-28 18:43:40 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + camerabin2: viewfinderbin: Link elements directly to use faster version + ffmpegcolorspace and videoscale should always link successfully, use + the fast pad linking version instead of calling the generic helper + function. + +2011-11-28 16:35:48 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/gstcamerabin2.c: + camerabin2: micro optimize linking some more + +2011-09-29 22:43:30 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + kate: support for rendering on several YUV formats + This speeds up rendering a fair bit by not requiring colorspace + conversion, whether there is anything to overlay or not. + The blending code was nicked from textoverlay. I would think + this might be a helpful thing to put in, say, libgstvideo at + some point. + https://bugzilla.gnome.org/show_bug.cgi?id=660528 + +2011-08-18 11:39:37 +0100 Vincent Penquerc'h + + * gst/mpeg4videoparse/mpeg4parse.c: + mpeg4videoparse: fix number of bytes read for fixed time increment + The spec I found says "16 bits". + The existing code used log2(somevalue)+1. + ffmpeg uses log2(somevalue-1)+1. + The code now uses log2(somevalue-1)+1, and this makes it work with + some sample video without breaking another sample. + Now, I'm far from certain I've got the right spec, I found it by + searching the internet, so... + https://bugzilla.gnome.org/show_bug.cgi?id=654666 + +2011-11-28 15:10:39 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegdemux: Try to add all streams early + This will allow us to signal no-more-pads to avoid hitting + the decodebin2 overrun. + +2011-09-26 12:43:27 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: handle pads with no data + Some streams declare PIDs but will not send data for them. + Ensure we time out on those, and both send new segments to + keep their time synchronized with the rest, and do not wait + forever before deciding to signal no-more-pads. + https://bugzilla.gnome.org/show_bug.cgi?id=659924 + +2011-09-26 12:16:30 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: signal no-more-pads when appropriate + We track streams for which a data callback is set (and for which + pads will be added only when data is received), and signal + no-more-pads when the last pad is added. + https://bugzilla.gnome.org/show_bug.cgi?id=659924 + +2011-09-05 17:40:07 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegdemux: take into account offset of first buffer + This fixes playback when the source starts later than the playback + pipeline, and when a source drops for a while then restarts. + https://bugzilla.gnome.org/show_bug.cgi?id=657794 + +2011-09-03 14:37:40 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: fix some more video freezing + There was a second threshold, which apparently needs to be smaller + than the first, though I'm not certain of it as I don't understand + yet this nest of wtf that is the mpeg demuxer timing logic. + Fixes video freezing on one (corrupted) MPEG sample. It would + previously never think it was out of the discontinuity, and would + push buffers with no timestamp. + Now this took me more than a day's poking at the thing, for just + one constant change, and I'm scared to have to touch this again :S + https://bugzilla.gnome.org/show_bug.cgi?id=655804 + +2011-08-30 14:50:52 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegdemux: catch smaller PTS dicontinuities + In a test stream, I get one buffer with a PTS of about 15 seconds + in the future compared to the previous one, and next buffers with + timestamps continuing where the original ones left off. + This caused the sink to wait 15 seconds to display the frame while + more frames queued up, and then dump all the subsequent frames as + they "arrived too late". + Maybe that threshold should be made configurable, but for now, + make it more smaller to catch more of these. + https://bugzilla.gnome.org/show_bug.cgi?id=655804 + Non AV streams keep using the larger threshold (10 minutes), as + subtitles may arrive only every so often. + +2011-11-28 13:08:27 +0000 Vincent Penquerc'h + + * ext/apexsink/gstapexsink.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/assrender/gstassrender.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/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + * ext/curl/gstcurlsink.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/gme/gstgme.c: + * ext/gsettings/gstswitchsink.c: + * ext/gsettings/gstswitchsrc.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/hermes/gsthermescolorspace.c: + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetiger.c: + * ext/lcs/gstcolorspace.c: + * ext/libfame/gstlibfame.c: + * ext/libmms/gstmms.c: + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + * ext/modplug/gstmodplug.cc: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mplex/gstmplex.cc: + * ext/musepack/gstmusepackdec.c: + * ext/musicbrainz/gsttrm.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/nas/nassink.c: + * ext/neon/gstneonhttpsrc.c: + * ext/openal/gstopenalsink.c: + * ext/openal/gstopenalsrc.c: + * ext/opencv/gstcvequalizehist.c: + * ext/opencv/gstcvlaplace.c: + * ext/opencv/gstcvsobel.c: + * ext/opencv/gstedgedetect.c: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstmotioncells.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttextoverlay.c: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnaudiomunge.c: + * ext/resindvd/rsndec.c: + * ext/resindvd/rsnparsetter.c: + * ext/resindvd/rsnstreamselector.c: + * ext/rsvg/gstrsvgdec.c: + * ext/rsvg/gstrsvgoverlay.c: + * ext/rtmp/gstrtmpsink.c: + * ext/rtmp/gstrtmpsrc.c: + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.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/soundtouch/gstpitch.cc: + * ext/spandsp/gstspanplc.c: + * ext/spc/gstspc.c: + * ext/swfdec/gstswfdec.c: + * ext/teletextdec/gstteletextdec.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * ext/voamrwbenc/gstvoamrwbenc.c: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * ext/zbar/gstzbar.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst/adpcmdec/adpcmdec.c: + * gst/adpcmenc/adpcmenc.c: + * gst/aiff/aiffmux.c: + * gst/aiff/aiffparse.c: + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfparse.c: + * gst/asfmux/gstrtpasfpay.c: + * gst/audiobuffer/gstaudioringbuffer.c: + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstspectrascope.c: + * gst/audiovisualizers/gstsynaescope.c: + * gst/audiovisualizers/gstwavescope.c: + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautovideoconvert.c: + * gst/bayer/gstbayer2rgb.c: + * gst/bayer/gstrgb2bayer.c: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstinputselector.c: + * gst/camerabin2/gstviewfinderbin.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/cdxaparse/gstvcdparse.c: + * gst/chart/gstchart.c: + * gst/coloreffects/gstchromahold.c: + * gst/coloreffects/gstcoloreffects.c: + * gst/colorspace/gstcolorspace.c: + * gst/dataurisrc/gstdataurisrc.c: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversrc.c: + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/gstchecksumsink.c: + * gst/debugutils/gstchopmydata.c: + * gst/debugutils/gstcompare.c: + * gst/debugutils/gstdebugspy.c: + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvdspu/gstdvdspu.c: + * gst/faceoverlay/gstfaceoverlay.c: + * gst/festival/gstfestival.c: + * gst/fieldanalysis/gstfieldanalysis.c: + * gst/freeze/gstfreeze.c: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + * gst/gaudieffects/gstburn.c: + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstdilate.c: + * gst/gaudieffects/gstdodge.c: + * gst/gaudieffects/gstexclusion.c: + * gst/gaudieffects/gstgaussblur.c: + * gst/gaudieffects/gstsolarize.c: + * gst/geometrictransform/gstgeometrictransform.c: + * gst/h264parse/gsth264parse.c: + * gst/hdvparse/gsthdvparse.c: + * gst/hls/gsthlsdemux.c: + * gst/id3tag/gstid3mux.c: + * gst/inter/gstinteraudiosink.c: + * gst/inter/gstinteraudiosrc.c: + * gst/inter/gstintervideosink.c: + * gst/inter/gstintervideosrc.c: + * gst/interlace/gstinterlace.c: + * gst/ivfparse/gstivfparse.c: + * gst/jp2kdecimator/gstjp2kdecimator.c: + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.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/mpegtsparse.c: + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsparse.c: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/mve/gstmvedemux.c: + * gst/mve/gstmvemux.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmux.c: + * gst/nsf/gstnsf.c: + * gst/nuvdemux/gstnuvdemux.c: + * gst/overlay/gstoverlay.c: + * gst/patchdetect/gstpatchdetect.c: + * gst/pcapparse/gstirtspparse.c: + * gst/pcapparse/gstpcapparse.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + * gst/rawparse/gstrawparse.c: + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + * gst/removesilence/gstremovesilence.c: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpvp8/gstrtpvp8depay.c: + * gst/rtpvp8/gstrtpvp8pay.c: + * gst/scaletempo/gstscaletempo.c: + * gst/sdi/gstsdidemux.c: + * gst/sdi/gstsdimux.c: + * gst/sdp/gstsdpdemux.c: + * gst/segmentclip/gstaudiosegmentclip.c: + * gst/segmentclip/gstvideosegmentclip.c: + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + * gst/smooth/gstsmooth.c: + * gst/speed/gstspeed.c: + * gst/subenc/gstsrtenc.c: + * gst/subenc/gstwebvttenc.c: + * gst/tta/gstttadec.c: + * gst/tta/gstttaparse.c: + * gst/vbidec/gstvbidec.c: + * gst/videodrop/gstvideodrop.c: + * gst/videofilters/gstvideofilter2.c: + * gst/videomaxrate/videomaxrate.c: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gstmpegvideoparse.c: + * gst/videosignal/gstvideoanalyse.c: + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + * gst/vmnc/vmncdec.c: + * gst/y4m/gsty4mdec.c: + * sys/acmenc/acmenc.c: + * sys/acmmp3dec/acmmp3dec.c: + * sys/applemedia/avfvideosrc.m: + * sys/applemedia/celvideosrc.c: + * sys/applemedia/miovideosrc.c: + * sys/applemedia/qtkitvideosrc.m: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vth264decbin.c: + * sys/applemedia/vth264encbin.c: + * sys/avc/gstavcsrc.cpp: + * sys/d3dvideosink/d3dvideosink.c: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksrc.cpp: + * 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/linsys/gstlinsyssdisink.c: + * sys/linsys/gstlinsyssdisrc.c: + * sys/osxvideo/osxvideosrc.c: + * sys/qcam/gstqcamsrc.c: + * sys/qtwrapper/audiodecoders.c: + * sys/qtwrapper/videodecoders.c: + * sys/shm/gstshmsink.c: + * sys/shm/gstshmsrc.c: + * sys/vcd/vcdsrc.c: + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.c: + * sys/wasapi/gstwasapisink.c: + * sys/wasapi/gstwasapisrc.c: + * sys/wininet/gstwininetsrc.c: + * sys/winks/gstksvideosrc.c: + * sys/winscreencap/gstdx9screencapsrc.c: + * sys/winscreencap/gstgdiscreencapsrc.c: + * tests/check/elements/autoconvert.c: + * tests/check/elements/baseaudiovisualizer.c: + * tools/element-templates/sinkpad: + * tools/element-templates/sinkpad-simple: + * tools/element-templates/srcpad: + * tools/element-templates/srcpad-simple: + various: fix pad template ref leaks + https://bugzilla.gnome.org/show_bug.cgi?id=662664 + +2011-10-06 17:43:19 +0200 Julien Isorce + + * ext/rtmp/gstrtmpsink.c: + * ext/rtmp/gstrtmpsrc.c: + rtmp: add WSAStartup and WSACleanup on Win32 + https://bugzilla.gnome.org/show_bug.cgi?id=661098 + +2011-11-24 13:49:12 +0000 Tim-Philipp Müller + + * gst/aiff/Makefile.am: + * gst/aiff/aiff.c: + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + aiffparse: extract ID3 tags embedded in ID3 chunks + https://bugzilla.gnome.org/show_bug.cgi?id=664725 + +2011-11-25 11:41:19 -0200 Danilo Cesar Lemes de Paula + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + opusenc: Fixing "Unused var" compiling error for opus codec + https://bugzilla.gnome.org/show_bug.cgi?id=664815 + +2011-11-25 14:00:18 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusheader.c: + opusenc: only use mono streams for > 2 channels + I'm getting odd results with packing streams into stereo + streams, and using only mono streams is enough in all cases. + +2011-11-25 12:47:42 +0000 Vincent Penquerc'h + + * ext/opus/gstopuscommon.c: + * ext/opus/gstopuscommon.h: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + opus: add some more debug information about channel mapping + +2011-11-25 12:46:55 +0000 Vincent Penquerc'h + + * ext/opus/gstopusparse.c: + opusparse: remove dead assigments + We now only keep a ref to the headers for later reuse. + +2011-11-25 12:40:31 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: do not cause the decoder to apply the channel mapping again + Since we already reorder channels, we do not want to write that + reordering in the header, or the decoder will do it again. + +2011-11-25 12:39:20 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: fix bogus assertion + +2011-11-25 15:49:05 +0100 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/voamrwbenc.c: + tests: add unit test for voamrwbenc + +2011-11-25 11:37:39 +0000 Tim-Philipp Müller + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: some more debug logging + +2011-11-25 11:36:14 +0000 Tim-Philipp Müller + + * ext/vp8/gstvp8dec.c: + vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted + +2011-11-23 20:03:32 +0000 Tim-Philipp Müller + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: add API to drop a frame and post a QoS message on the bus + https://bugzilla.gnome.org/show_bug.cgi?id=640017 + API: gst_base_video_decoder_drop_frame() + +2011-08-30 23:39:36 -0300 Luciana Fujii Pontello + + * configure.ac: + * sys/Makefile.am: + * sys/pvr2d/Makefile.am: + * sys/pvr2d/gstpvr.c: + * sys/pvr2d/gstpvr.h: + * sys/pvr2d/gstpvrbufferpool.c: + * sys/pvr2d/gstpvrbufferpool.h: + * sys/pvr2d/gstpvrvideosink.c: + * sys/pvr2d/gstpvrvideosink.h: + * sys/pvr2d/pvr_includes/dri2_ws.h: + * sys/pvr2d/pvr_includes/img_defs.h: + * sys/pvr2d/pvr_includes/img_types.h: + * sys/pvr2d/pvr_includes/pvr2d.h: + * sys/pvr2d/pvr_includes/services.h: + * sys/pvr2d/pvr_includes/servicesext.h: + * sys/pvr2d/pvr_includes/wsegl.h: + Add pvrvideosink element + PVRVideoSink uses PVR2D library to blit images. + Author: Alessandro Decina + Author: Luciana Fujii + +2011-11-24 19:03:23 +0100 Stefan Sauer + + * gst/audiovisualizers/README: + * gst/audiovisualizers/gstdrawhelpers.h: + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstwavescope.c: + audiovisualizers: add aa-line code and user for wave/space-scope + +2011-11-24 13:38:59 +0000 Vincent Penquerc'h + + * ext/opus/gstopusheader.c: + opus: pre-skip and output gain are little endian, remove reminder note + +2011-11-24 13:29:56 +0000 Vincent Penquerc'h + + * ext/opus/Makefile.am: + * ext/opus/gstopuscommon.c: + * ext/opus/gstopuscommon.h: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusheader.h: + * ext/opus/gstopusparse.c: + * ext/opus/gstopusparse.h: + opus: multichannel support + +2011-11-23 17:49:58 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opus: switch to multistream API + It's very similar to the basic API, and is a superset ot it, + which will allow encoding and decoding more than 2 channels. + +2011-11-23 17:32:03 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: shuffle supported sample rates to favor 48000 + +2011-11-23 16:36:54 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opusenc: remove useless setup field + +2011-11-02 13:25:56 +0000 Vincent Penquerc'h + + * gst/colorspace/colorspace.c: + colorspace: fix width/height mismatches + https://bugzilla.gnome.org/show_bug.cgi?id=663238 + +2011-11-24 10:26:25 +0100 Sebastian Dröge + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: Use the sinkpad template caps as a fallback, not the srcpad ones + +2011-11-24 10:14:06 +0100 Sebastian Dröge + + * gst/videoparsers/gstmpegvideoparse.c: + mpegvideoparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 10:09:59 +0100 Sebastian Dröge + + * gst/videoparsers/gsth263parse.c: + h263parse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 10:08:27 +0100 Sebastian Dröge + + * gst/videoparsers/gstdiracparse.c: + diracparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 10:04:30 +0100 Sebastian Dröge + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-23 23:30:00 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: do not leak buffer when no encoded data yet or encoding error + +2011-11-23 23:29:10 +0100 Mark Nauwelaerts + + * ext/dts/Makefile.am: + * ext/dts/gstdtsdec.c: + * ext/dts/gstdtsdec.h: + dtsdec: port to audiodecoder + +2011-11-23 16:01:35 +0000 Tim-Philipp Müller + + * gst/smooth/gstsmooth.c: + smooth: fix printf format compiler warning in debug message + https://bugzilla.gnome.org/show_bug.cgi?id=664631 + +2011-11-23 13:47:11 +0100 Krzysztof Krakowiak + + * ext/modplug/gstmodplug.cc: + modplug: fix modules playing as mono instead of stereo + replaced broken if-return logic for fixating rate and number + of channels that caused that modules were always (after + successful fixation of rate) played as mono (instead of + stereo) by correct one with appropiate warnings. + https://bugzilla.gnome.org/show_bug.cgi?id=619035 + +2011-11-23 13:22:12 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: implement replay gain + It would ideally be better to leave this to a rgvolume element, + but we don't control the pipeline. So do it by default, and allow + disabling it via a property, so the correct volume should always + be output. + +2011-11-23 11:58:54 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: add in-band FEC support + This allows reconstruction of lost packets if FEC info is included + in the next packet, at the cost of extra latency. Since we do not + know if the stream has FEC (and this can change at runtime), we + always incur the latency, even if we never lose any frame, or see + any FEC information. Off by default. + +2011-11-23 12:41:32 +0100 René Stadler + + * gst/frei0r/gstfrei0r.c: + frei0r: normalize boolean property default values to TRUE/FALSE + Glib barks at us with a warning when we pass e.g. 4. + +2011-11-23 11:59:42 +0100 Edward Hervey + + * pkgconfig/gstreamer-basevideo-uninstalled.pc.in: + pkgconfig: aaand fix my last commit + +2011-11-23 11:55:06 +0100 Edward Hervey + + * pkgconfig/gstreamer-basevideo-uninstalled.pc.in: + pkgconfig: Fix gstreamer-basevideo-uninstalled.pc.in + +2011-11-23 11:31:44 +0100 Stefan Sauer + + * gst/audiovisualizers/README: + * gst/audiovisualizers/gstdrawhelpers.h: + audiovisualizers: update README and TODO comments + +2011-11-23 11:21:15 +0100 Stefan Sauer + + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstspacescope.h: + spacescope: use the drawhelpers and add a draw-style property + Like in wavescope support drawing dots and lines. + +2011-11-23 08:40:49 +0100 Stefan Sauer + + * gst/audiovisualizers/Makefile.am: + * gst/audiovisualizers/gstdrawhelpers.h: + * gst/audiovisualizers/gstwavescope.c: + audiovisualizers: add some simple drawing helpers for reuse + Add a (uninstalled) header with simple drawing macros + +2011-11-23 08:17:05 +0100 Stefan Sauer + + * gst/smoothwave/Makefile.am: + * gst/smoothwave/README: + * gst/smoothwave/gstsmoothwave.c: + * gst/smoothwave/gstsmoothwave.h: + smoothwave: remove element unported from 0.8 + The wavescope element does achieve the same effect. + +2011-11-23 08:14:38 +0100 Stefan Sauer + + * gst/audiovisualizers/gstwavescope.c: + * gst/audiovisualizers/gstwavescope.h: + wavescope: add a style property for drawing modes + Add a style enum of { dots, lines}. Now this elements is a superset of smoothwave. + +2011-11-22 23:04:49 +0000 Tim-Philipp Müller + + * gst-libs/gst/video/gstbasevideodecoder.c: + docs: fix comment in gst_base_video_decoder_get_max_decode_time() docs + +2011-11-22 20:27:50 +0000 Tim-Philipp Müller + + * ext/opus/gstopusenc.c: + opusenc: mark properties changeable at runtime with GST_PARAM_MUTABLE_PLAYING + +2011-11-22 19:57:07 +0000 Tim-Philipp Müller + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: fix weird event list handling + Get rid of weird code that copies a list manually, taking + ownership of the elements and then frees the old list. Instead, + just take over the old list entirely. (If the intent was to + reverse the list, one could use g_list_reverse() instead). + Then, push events in the list out from last to first (since they + were prepended as they came in) instead of just pushing out the + last in the list and leaking the others. + +2011-11-22 18:33:17 +0000 Vincent Penquerc'h + + * tests/check/Makefile.am: + * tests/check/elements/opus.c: + opus: add test + +2011-11-22 17:04:09 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opusenc: allow setting most properties at PLAYING time + Opus allows these to be changed during encoding, transparently + to the decoder. + +2011-11-22 16:14:06 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: bound the bitrate to more sensible values + Go from the bounds mentioned in the spec, and allow some more + variation. + In particular, don't allow silly low bitrates, and allow reaching + the maximum useful bitrate. + +2011-11-22 15:33:20 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opusenc: fix crash on pathological parameters + Asking for 1 bit/s would select a 0 byte buffer, leading + to a crash. Buffer size is now controlled by a max-payload-size + property, which can't be less than 2. + +2011-11-21 18:12:00 +0000 Vincent Penquerc'h + + * ext/opus/gstopusparse.c: + opusparse: do not send headers through data path + Additionally, since Opus packets may change between stereo + and mono as the encoder sees fit, assume two channels when + we do not see a header, and use the header value otherwise. + +2011-11-21 17:48:54 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusheader.h: + opus: move header magic testing to gstopusheader + +2011-11-21 17:01:49 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: skip pre-skip samples + +2011-11-21 12:50:22 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: read pre-skip from first header if available + +2011-11-17 11:33:56 +0100 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: support more character set encodings + Support UTF-16BE, EUC-KR (KSX1001), GB2312 and ISO-10646/UTF8 text + encoding and fixed new line for multibyte encoding + https://bugzilla.gnome.org/show_bug.cgi?id=664257 + +2011-11-22 09:11:35 +0100 Stefan Sauer + + * gst/playondemand/.gitignore: + * gst/playondemand/Makefile.am: + * gst/playondemand/demo-mp3.c: + * gst/playondemand/filter.func: + * gst/playondemand/gstplayondemand.c: + * gst/playondemand/gstplayondemand.h: + playondemand: remove unported plugin from 0.8 + These days one would do the effect e.g. using gnonlin. + +2011-11-22 09:10:32 +0100 Stefan Sauer + + * gst/speed/gstspeed.c: + speed: tiny doc blob clarification + +2011-11-21 22:55:40 +0100 Stefan Sauer + + * configure.ac: + * gst/freeverb/Makefile.am: + * gst/freeverb/gstfreeverb.c: + * gst/freeverb/gstfreeverb.h: + freeverb: add a freeverb port + Freeverb is a public domain reverb implementation. Port it as a gstreamer + element and make use of gstreamer specific features (gap aware, disconts, + controller, ...). + +2011-11-21 12:02:28 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: reset tagsetter interface on stop + +2011-11-21 11:44:01 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: handle NULL packets (used for PLC) + +2011-11-21 11:28:10 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: light cleanup + +2011-11-20 13:07:27 +0000 Vincent Penquerc'h + + * ext/opus/gstopusparse.c: + opusparse: parse raw opus packets + +2011-11-20 09:58:06 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: do not push header buffers + Opus headers appear only when muxed in Ogg, so only place them + on the caps, where oggmux will find them, but other elements will + be blithely unaware of them. + +2011-11-20 09:52:46 +0000 Vincent Penquerc'h + + * ext/opus/Makefile.am: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusheader.c: + * ext/opus/gstopusheader.h: + * ext/opus/gstopusparse.c: + * ext/opus/gstopusparse.h: + opus: make opusparse set headers on caps + Header-on-caps code moved to a new shared location to avoid + duplicating the code. + +2011-11-21 08:20:14 +0100 Stefan Sauer + + * configure.ac: + * gst/smooth/Makefile.am: + * gst/smooth/gstsmooth.c: + * gst/smooth/gstsmooth.h: + smooth: port to 0.10 + Port from GstElement to GstVideoFilter. Fix FIXMEs. Cleanup naming. Expose left + out property (kuma-only). + +2011-11-20 20:16:03 +0100 Stefan Sauer + + * gst/passthrough/.gitignore: + * gst/passthrough/Makefile.am: + * gst/passthrough/filter.func: + * gst/passthrough/gstpassthrough.c: + * gst/passthrough/gstpassthrough.h: + * gst/passthrough/passthrough.vcproj: + passthrough: remove obsolete element + It is not built by default. We have identity for some of the needs and otherwise + audio/videofilter base classes. + +2011-11-20 20:08:47 +0100 Stefan Sauer + + * gst/filter/Makefile.am: + * gst/filter/filter.vcproj: + * gst/filter/gstfilter.c: + * gst/filter/gstfilter.h: + * gst/filter/gstiir.c: + * gst/filter/gstiir.h: + * gst/filter/iir.c: + * gst/filter/iir.h: + filter: remove filter plugin + We don't build it anyway and we have audioiirfilter in good. + +2011-11-20 20:06:29 +0100 Stefan Sauer + + * gst/inter/gstinter.c: + * gst/inter/gstintersurface.c: + inter: fix leftover boilerplace comments + +2011-11-18 03:31:32 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Also reset video/audio filters before capturing + Video and audio custom filter element should also be reset before + starting a new capture, otherwise we get wrong-state errors + +2011-11-19 15:58:09 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix terminating NUL being written in signature + +2011-11-16 19:40:20 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: make frame-size an enum + It only supports a set number of specific values (including + a non integer one). + +2011-11-16 19:22:44 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: the encoder might not make use of all the bytes + +2011-11-18 19:28:26 +0100 Stefan Sauer + + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstmotioncells.c: + opencv: use caps constants more + +2011-11-18 19:19:32 +0100 Stefan Sauer + + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gsttemplatematch.c: + opencv: fixup doc blobs + +2011-11-18 19:15:26 +0100 Stefan Sauer + + * 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/gstmotioncells.c: + * ext/opencv/gstmotioncells.h: + * ext/opencv/gstopencv.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gstpyramidsegment.h: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttemplatematch.h: + opencv: fixup gobject naming conventions + +2011-11-18 17:18:01 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: remove redundant code + ... now that what should not be needed is really not needed anymore to cover + up bogus stuff that has been FIXMEd. + +2011-11-18 12:32:13 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: fix up AU collection processing + On the one hand, no need to collect nal if processing last one. + On the other hand, ensure AU collection processing to have sufficient + next NAL data in normal cases. + Fixes #663180. + +2011-11-18 15:12:46 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: mind to-be-skipped data in subsequent re-used offsets + +2011-11-18 15:10:57 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: avoid additional NAL parsing if no AU collection is needed + +2011-11-18 15:10:25 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: some more get_caps tweaking + ... by having it use sink template rather than src template, and not + passing an downstream parsed(=true) to upstream. + +2011-11-18 15:07:01 +0100 Mark Nauwelaerts + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parser: initialize additional sps field value + Fixes #663552. + +2011-11-18 08:29:31 +0100 Stefan Sauer + + * ext/opencv/gstcvdilateerode.c: + * ext/opencv/gstcvequalizehist.c: + * ext/opencv/gstcvsmooth.c: + * ext/opencv/gstcvsobel.c: + opencv: remove empty finalize implementations + +2011-11-17 23:03:05 +0100 Mark Nauwelaerts + + * ext/voamrwbenc/Makefile.am: + * ext/voamrwbenc/gstvoamrwbenc.c: + * ext/voamrwbenc/gstvoamrwbenc.h: + voamrwbenc: port to audioencoder + +2011-11-17 23:02:55 +0100 Mark Nauwelaerts + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: some code shuffle cleanup + +2011-11-17 23:02:39 +0100 Mark Nauwelaerts + + * ext/voaacenc/Makefile.am: + * ext/voaacenc/gstvoaacenc.c: + * ext/voaacenc/gstvoaacenc.h: + voaacenc: port to audioencoder + +2011-11-17 23:02:31 +0100 Mark Nauwelaerts + + * ext/celt/gstceltenc.c: + celtenc: properly report error case + +2011-11-17 23:02:17 +0100 Mark Nauwelaerts + + * ext/celt/gstceltdec.h: + celtdec: remove unused instance variable + +2011-11-17 10:33:42 -0800 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Only call ::reset once in READY->PAUSED + +2011-11-16 20:53:13 +0100 Stefan Sauer + + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstfacedetect.h: + facedetect: detect face features + Also detect mouth, nose and eyes. Drop faces that don't have them. Fixes leaking the + cascades. Adds more docs. + +2011-11-16 20:51:27 +0100 Stefan Sauer + + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstfacedetect.h: + facedetect: Gstfacedetect -> GstFacedetect + +2011-11-14 11:05:44 +0100 Stefan Sauer + + * ext/opencv/gstfacedetect.c: + facedetect: code maintenance + Update example to be useful. Draw colored ellipses instead of unicolor circles. + Reflow code for more local variables. Improve parameter descriptions. + +2011-11-16 10:57:55 -0800 Sebastian Dröge + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: Change rank to PRIMARY+1 + +2011-11-16 10:45:52 -0800 Sebastian Dröge + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: Don't require parsed=false on the sinkpad caps + +2011-11-16 18:49:03 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: do not include variable fields in caps + Those can vary from one packet to the next, so have no reason + to be in the caps. + +2011-11-16 18:43:53 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix constrained-vbr property name typo + +2011-11-16 10:38:49 -0800 Sebastian Dröge + + * gst/videoparsers/gsth264parse.c: + h264parse: Implement ::sink_get_caps to allow stream-format conversion again + Just proxying the downstream caps will prevent h264parse from + accepting a different stream-format than what is supported + downstream, although it could convert to a different stream-format. + +2011-11-16 18:35:29 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: let the base class handle all timing + +2011-11-16 19:18:50 +0100 Mark Nauwelaerts + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltdec.h: + celtdec: port to audiodecoder + +2011-11-16 19:11:24 +0100 Mark Nauwelaerts + + * ext/celt/Makefile.am: + * ext/celt/gstceltenc.c: + * ext/celt/gstceltenc.h: + celtenc: port to audioencoder + +2011-11-15 19:53:33 +0000 Vincent Penquerc'h + + * ext/opus/Makefile.am: + * ext/opus/gstopus.c: + * ext/opus/gstopusparse.c: + * ext/opus/gstopusparse.h: + opusparse: add opusparse element + A very simple element that parses Opus streams from the ad hoc + framing used by the Opus test vectors. + +2011-11-16 17:24:20 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: allow negotiation of rate/channels with downstream + Since an opus stream may be decoded to any (sensible) rate, + and either stereo or mono, we try to accomodate downstream. + +2011-11-16 17:05:17 +0000 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: rewrite logic + Parameters such as frame size, etc, are variable. Pretty much + everything can change within a stream, so be prepared about it, + and do not cache parameters in the decoder. + +2011-11-16 16:56:43 +0000 Vincent Penquerc'h + + * ext/opus/Makefile.am: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opus: port to base audio encoder/decoder + +2011-11-16 12:46:04 +0100 Edward Hervey + + * gst/mpegtsdemux/TODO: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Add notes on synchronization and scheduling + +2011-11-16 10:56:24 +0100 Jonas Larsson + + * gst/videoparsers/gsth264parse.c: + h264parse: outgoing byte stream prefix always has size 4 + Fixes #664123. + +2011-11-14 11:30:13 +0100 David King + + * gst/camerabin/gstcamerabin.c: + camerabin: Document requirement for PLAYING state + As described in GNOME bug 663998, the element must be in the PLAYING + state before calling capture-start. + https://bugzilla.gnome.org/show_bug.cgi?id=664048 + +2011-11-14 18:34:18 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Fix some racyness in tests + Fix some racyness as the test was checking the idle property + right after it got the preview message for video recordings. In some + conditions, it might happen that camerabin2 still hasn't decremented + the processing counter after posting the preview and/or the image/video-done + message and the test will get idle=false and fail. + The approach for checking for the idle property was a busy loop with + a sleep. Far from elegant, but good enough for these tests. + +2011-11-14 16:55:37 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Also reset audio elements when video capture finishes + Audio elements also need to be reset after each capture, do it + together with the video elements' reset + +2011-11-11 09:58:30 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add one debug line about camerabin2 being idle + +2011-11-10 16:53:40 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Remove video elements' state clearing from start-capture + Reduce start-capture workload by moving the elements' state reseting to the + finishing steps of the capture. This reduces the time start-capture takes to + actually start a capture and return to its caller, improving user experience. + As the elements' state reset is now triggered from the message handling + function, it needs to spawn a new thread, changing state from the pad's + task would cause a deadlock. + +2011-11-10 16:11:56 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: keep track of video recording state + Adds a new variable to keep track of the state of the video + recording in camerabin2. This allows start-capture to reject + new video recording requests when one is already ongoing. This + fixes one of check tests. + +2011-11-03 14:09:52 +0200 Sreerenj Balachandran + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + mpegvideoparse:Correct the skipping of vbv_delay in picture header and some typo fixes. + https://bugzilla.gnome.org/show_bug.cgi?id=663309 + +2011-11-10 15:13:34 +0200 Mart Raudsepp + + * ext/mimic/Makefile.am: + * ext/opencv/Makefile.am: + * ext/vp8/Makefile.am: + * sys/acmmp3dec/Makefile.am: + * sys/linsys/Makefile.am: + mimic, opencv, vp8, acmmp3dec, linsys: Don't build static plugins + Pass --tag=disable-static to libtool everywhere where it's been forgotten + https://bugzilla.gnome.org/show_bug.cgi?id=663768 + +2011-11-10 19:42:40 -0300 Matej Knopp + + * gst/videoparsers/gstmpegvideoparse.c: + * gst/videoparsers/gstmpegvideoparse.h: + mpegvideoparse: add support for progressive frames + https://bugzilla.gnome.org/show_bug.cgi?id=663782 + +2011-11-10 17:13:40 +0000 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix bandwidth property type mismatch + +2011-11-09 12:21:37 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: protect image location list with mutex + Rename the image taglists' mutex into image capture mutex and + use it also for the image capture list to prevent concurrent + access from different threads (application and capture threads). + +2011-11-09 11:45:27 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Handle null taglists for images + Add NULL and check for them to the image capture taglist list, representing + that a capture has no application tags set. + +2011-11-09 11:17:15 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Don't store preview location if preview isn't requested + Do not store preview location is post-previews is false, this would + mess up preview naming in case application switches between enabling + and disabling previews + +2011-11-09 09:41:44 -0300 Lasse Laukkanen + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Avoid blocking in start-capture and send application tags later + Tags are currently sent from start-capture, which is run in the + application thread. For images we can delay the tags pushing to the + buffer probe and push the tags with the location event and reduce + start-capture time. + +2011-11-09 12:00:05 +0100 Thijs Vermeir + + * gst-libs/gst/video/gstbasevideodecoder.h: + fix documentation typo + +2011-11-09 11:56:07 +0100 Thijs Vermeir + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: fix compiler warning for uninitialized values + +2011-11-04 17:54:04 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + dtmfsrc: Reject start/stop requests that come out of order + +2011-10-29 18:24:26 +0200 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Post messages when starting to send/receive DTMF + This way, the UI can display the DTMF events as they as being sent. + +2011-11-08 08:08:20 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Decrement processing counter when message handling finishes + Some messages might be interesting to applications, so we can only + decrement the processing counter and send the idle notification + when those messages are posted on the pipline's bus + +2011-11-08 07:33:59 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: update tests to set post-previews to true + Makes most of camerabin2 tests pass again + +2011-11-08 07:09:41 -0300 Lasse Laukkanen + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: change post-previews property default value as false + Generating and posting preview image always comes with a performance + penalty so set default value as false. The preview-caps property that + defines the preview image format is also NULL by default, so instead + of generating preview image of unspecified format by default explicit + action from application should be required for enabling preview image + posting feature. + Application also has to add custom code to be able + to handle preview messages on its message handling function anyway. + +2011-11-07 20:39:56 -0300 Reynaldo H. Verdejo Pinochet + + * Android.mk: + Add Android buildsystem hooks for codecparsers + +2011-11-01 20:37:17 +0000 Vincent Penquerc'h + + * gst/colorspace/colorspace.c: + colorspace: fix r210 writing only half a scanline + https://bugzilla.gnome.org/show_bug.cgi?id=663203 + +2011-11-07 16:41:42 +0000 Vincent Penquerc'h + + * gst/adpcmdec/adpcmdec.c: + * gst/adpcmenc/adpcmenc.c: + adpcm: add more consts, espcially for static const data + +2011-11-03 18:55:24 +0000 Vincent Penquerc'h + + * gst/autoconvert/gstautoconvert.c: + autoconvert: merge caps instead of using union + It's a lot faster, and preserves caps ordering. + https://bugzilla.gnome.org/show_bug.cgi?id=663346 + +2011-10-27 15:53:48 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + tiger: add a 'silent' property to skip rendering + https://bugzilla.gnome.org/show_bug.cgi?id=662857 + +2011-08-29 13:00:02 +0100 Vincent Penquerc'h + + * gst/mpegdemux/mpegtspacketizer.c: + mpegdemux: catch section lengths extending past the buffer length + This is probably the cause for an occasional crash while streaming + MPEG. Blind fix after staring at the code and following logic, so + may or may not fix the issue, I cannot test. + +2011-10-20 10:42:42 +0100 Vincent Penquerc'h + + * ext/resindvd/resindvdsrc.c: + resindvdsrc: do not try to seek before the first chapter + https://bugzilla.gnome.org/show_bug.cgi?id=589064 + +2011-10-05 18:30:23 +0100 Vincent Penquerc'h + + * ext/celt/gstceltenc.c: + celtenc: fix latency query + https://bugzilla.gnome.org/show_bug.cgi?id=616421 + +2011-10-05 18:25:58 +0100 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix latency query + This makes live 'audiosrc ! opusenc ! opusdec ! audiosink' pipelines + actually work without all audio being dumped. + https://bugzilla.gnome.org/show_bug.cgi?id=660999 + +2011-10-05 15:47:06 +0100 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: use debug level for debug info, not error + https://bugzilla.gnome.org/show_bug.cgi?id=660999 + +2011-09-29 14:22:53 +0100 Vincent Penquerc'h + + * ext/celt/gstceltenc.c: + celtenc: fix calculation of filler data size + https://bugzilla.gnome.org/show_bug.cgi?id=660469 + +2011-09-29 14:22:33 +0100 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: fix calculation of filler data size + https://bugzilla.gnome.org/show_bug.cgi?id=660469 + +2011-10-03 18:28:14 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstpesfilter.c: + mpegpsdemux: fix zero length packet handling + https://bugzilla.gnome.org/show_bug.cgi?id=631416 + +2011-11-02 12:41:54 +0000 Vincent Penquerc'h + + * tests/check/libs/mpegvideoparser.c: + tests: mark test input data const + https://bugzilla.gnome.org/show_bug.cgi?id=663235 + +2011-11-02 12:41:30 +0000 Vincent Penquerc'h + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + mpegvideoparser: input data is const, mark it so + +2011-11-02 12:38:30 +0000 Vincent Penquerc'h + + * tests/check/libs/mpegvideoparser.c: + tests: allow building with older versions of glib (g_list_free_full) + https://bugzilla.gnome.org/show_bug.cgi?id=663234 + +2011-11-04 18:06:51 -0300 Reynaldo H. Verdejo Pinochet + + * gst/bayer/Makefile.am: + Fix missing sources on bayer's buildsystem androgenizer call + +2011-11-04 13:04:19 +0100 René Stadler + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parser: add more size checks and improve existing + Don't subtract with unsigned values, that will bite us. Also fix format + specifier in the log message. + +2011-11-03 17:17:10 -0400 Olivier Crête + + * gst-libs/gst/video/gstsurfacebuffer.h: + * gst-libs/gst/video/gstsurfaceconverter.h: + surfaceconverter: Remove duplicated forward declaration + It seems that some compilers don't like duplicated typedefs. + +2011-09-28 19:29:07 -0400 Nicolas Dufresne + + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-basevideo-uninstalled.pc.in: + * pkgconfig/gstreamer-basevideo.pc.in: + video: Add libgstbasevideo PC file + +2011-10-19 16:19:51 -0400 Nicolas Dufresne + + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/video/videocontext.c: + * gst-libs/gst/video/videocontext.h: + video: Add GstVideoContext interface + This interface will be used to implement video context sharing. Those + context could be X11 Display, VaDisplay, etc. + +2011-10-07 19:05:30 -0400 Nicolas Dufresne + + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstsurfacebuffer.c: + * gst-libs/gst/video/gstsurfacebuffer.h: + * gst-libs/gst/video/gstsurfaceconverter.c: + * gst-libs/gst/video/gstsurfaceconverter.h: + video: Abstract surface API for HW accelerated codecs + +2011-10-26 16:31:39 +0100 Vincent Penquerc'h + + * tests/check/libs/vc1parser.c: + tests: make const data const + https://bugzilla.gnome.org/show_bug.cgi?id=662776 + +2011-10-26 16:29:35 +0100 Vincent Penquerc'h + + * gst-libs/gst/codecparsers/gstvc1parser.c: + vc1parser: do not overwrite buffer + I do not know the bitstream format, but this seems likely + to be what was intended. Also add a check on the number of + items to read. + https://bugzilla.gnome.org/show_bug.cgi?id=662776 + +2011-10-21 13:18:26 +0300 Sreerenj Balachandran + + * gst-libs/gst/codecparsers/gstvc1parser.c: + vc1parser: fix parsing of RANGEREDFRM + +2011-11-01 11:47:46 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: On capture error, skip previews + When the camera source fails to do some capture, skip the next + preview and decrement processing counter. + +2011-11-01 10:38:33 -0300 Lasse Laukkanen + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: track also preview images with processing counter + Makes camerabin2 only signal that it is idle after all previews have + been generated, images are captured and saved, and videos have + been finished properly. + +2011-11-01 15:08:26 +0100 René Stadler + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parser: fix access to uninitialized memory + When vui->timing_info_present is 0, vui->fixed_frame_rate_flag and others + cannot be accessed since they have not been set. + It was also possible that sps->fps_{num,den} end up initialized here. + +2011-11-01 11:11:47 +0000 Brad Smith + + * configure.ac: + configure: hack around broken mplex 2.0.0 headers in mplex check + Due to the addition of an unconditional inclusion of config.h in + mjpegtool 2.0.0's stream_params.h header the autoconf test for the + mplex module failed. Hack around this in the same way we did for + mpeg2enc. + https://bugzilla.gnome.org/show_bug.cgi?id=661614 + +2011-11-01 11:09:52 +0000 Brad Smith + + * configure.ac: + configure: fix typo in mpeg2enc check so CPPFLAGS get restored correctly + https://bugzilla.gnome.org/show_bug.cgi?id=661614 + +2011-11-01 12:29:35 +0100 René Stadler + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parser: fix MAX_SPS/PPS boundary checks + +2011-11-01 12:12:56 +0100 René Stadler + + * tests/check/elements/h264parse.c: + tests: h264parse: fix exit code + +2011-10-28 11:10:06 +0200 Robert Swain + + * gst/fieldanalysis/gstfieldanalysis.c: + fieldanalysis: Don't reset the context on DISCONT + On discont, the queue of frames was being cleared, but also the + context reset. We only need to clear the queue. + +2011-10-31 11:36:06 +0100 Alessandro Decina + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: handle failures in start() and stop() + +2011-10-31 06:59:53 -0300 Tommi Myöhänen + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h: + basecamerasrc: optimize state changing speed + Create preview pipeline already in initialization phase. This speeds + up NULL_TO_READY state change. Also implement a separate function for + setting the preview filter element. + This also restricts the preview filter property to work only on + NULL state. + +2011-10-19 10:24:52 +0300 Sreerenj Balachandran + + * gst-libs/gst/codecparsers/gstvc1parser.c: + vc1parser: Correct the parsing of FRMRTQ_POSTPROC and BITRTQ_POSTPROC + +2011-10-21 11:40:54 +0300 Sreerenj Balachandran + + * gst-libs/gst/codecparsers/gstvc1parser.c: + vc1parser: Correct the parsing of sequece layer. + +2011-10-20 09:39:19 -0300 Reynaldo H. Verdejo Pinochet + + * Android.mk: + Disable ext/faad for the android ndk build + It currently makes the build fail. Idea is to enable + it back again once its building problems get sorted + out. + +2011-10-18 14:41:48 +0100 Tim-Philipp Müller + + * ext/assrender/gstassrender.c: + * gst/nuvdemux/gstnuvdemux.c: + assrender, nuvdemux: unref buffers with gst_buffer_unref() + +2011-10-14 11:07:00 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Compute par and fps in advanced profile + +2011-10-10 14:19:48 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Handle interlaced fields + +2011-10-10 10:14:12 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Handle interlaced frames properly + +2011-10-07 13:11:55 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Use enums when possible + Add GstVC1FrameCodingMode and use it for the fcm field + Use GstVC1PictureType as variable type for ptype + Use GstVC1Level as variable type for level + +2011-10-07 17:42:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: fix bitplanes decoding (check for errors). + +2011-10-07 15:21:34 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: fix bitplanes decoding (INVERT mode). + +2011-10-07 13:59:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: fix MVMODE and MVMODE2 parsing. + +2011-10-05 17:39:59 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: handle skipped pictures gracefully. + +2011-10-04 17:39:42 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: VC1: Implement bitplanes diff operator + +2011-10-04 17:39:00 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Some cosmetics and debug logging enhancements + +2011-10-04 15:16:04 +0200 Gwenole Beauchesne + + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + * tests/check/libs/vc1parser.c: + codecparsers: vc1: Implement bitplanes handling properly + Add a new GstVC1BitPlanes API. + +2011-10-04 14:04:42 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: vc1: fix BFRACTION parser (values range + overflow). + +2011-10-04 11:57:37 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: fix VLC decoding. + +2011-10-05 16:40:47 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: VC1: Implement FrameLayer parsing + +2011-10-05 12:15:00 -0300 Thibault Saunier + + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + * tests/check/libs/vc1parser.c: + codecparsers: VC1: Implement Sequence Layer Data Structures + Instead of having a single VC1SequenceHeader structure, use the 3 structs + from the "Table 265: Sequence Layer Data Structure" of the specification + for the library to be more flexible. + Implement the functions to parse them + +2011-10-05 08:26:31 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: VC1: Compute framerate and bitrate in simple/main profiles + +2011-10-03 14:25:00 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + * tests/check/libs/vc1parser.c: + codecparsers: VC1: compute MB height and width + Add them to GstVC1SequenceHdr + +2011-10-03 15:36:08 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: debug cosmetics. + +2011-10-03 11:42:32 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: vc1: record picture layer header size in bits. + +2011-10-03 11:14:25 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: vc1: compute altpquant. + +2011-10-03 14:22:17 -0300 Thibault Saunier + + * docs/libs/gst-plugins-bad-libs-sections.txt: + * tests/check/libs/vc1parser.c: + codecparsers: VC1: Fix after GstVC1ParserResult renaming + +2011-09-30 12:41:13 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + codecparsers: vc1: use GstVC1ParserResult type name similarly to other parsers. + +2011-09-30 11:38:15 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstvc1parser.c: + codecparsers: vc1: handle End-of-Sequence correctly. + +2011-09-14 14:21:47 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + codecparsers: mpeg2: fix quant_matrix_extension() parser for chroma intra QM. + +2011-10-13 16:52:43 +0300 Sreerenj Balachandran + + * gst/videoparsers/gsth264parse.c: + h264parse: correct debug message and remove some dead code + See #661113. + +2011-10-06 16:55:43 +0300 Sreerenj Balachandran + + * gst/videoparsers/gsth264parse.c: + h264parse: correct parsing of "numberOfPictureParameterSets" + See #661113. + +2011-10-12 12:09:18 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Check before acessing preview location list + Only access the preview location if it exists, to avoid acessing + a NULL variable. If the preview location list doesn't exist, it is + likely because the source has posted a preview message after camerabin2 + has been put to READY. + +2011-08-07 17:01:48 +0200 Sjoerd Simons + + * sys/shm/gstshmsink.c: + * sys/shm/gstshmsink.h: + shm: Add buffer-time property + Add a buffer-time property to limit the size of the amount of data + queued in the shmsink buffer in nanoseconds. + Fixes: #656107 + +2011-08-07 16:36:32 +0200 Sjoerd Simons + + * sys/shm/shmpipe.c: + * sys/shm/shmpipe.h: + shm: Add ability to add uint64 tags on buffers + +2011-10-11 23:30:49 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: Set preview pipeline to ready when going to ready + The preview pipeline should go to ready when the camerasrc goes + to ready, as in ready elements shouldn't be processing data. + +2011-10-11 23:13:00 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add a mutex to avoid concurrent access of preview filename lists + The preview filename list is acessed whenever a new capture is started, when + camera-source posts a new preview message or on state changes. All of those can + occur simultaneously, so add a mutex to prevent concurrent access. + +2011-10-07 10:48:07 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Reset audiosrc timestamping + Reset audiosrc's timestamping data by setting + it to NULL to reset the ringbuffer and then re-seting + the clock that camerabin might not redistribute + +2011-10-11 16:27:07 -0300 Thiago Santos + + * gst/camerabin/camerabinvideo.c: + camerabin: Prevent audio source from providing clock + camerabin's audio source might be put to NULL during its + use, so the clock would be lost. Better not allow it to + provide a clock at all. + +2011-10-06 23:22:51 +0530 Arun Raghavan + + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin2/gst-camera2.c: + * tests/examples/scaletempo/demo-gui.c: + examples: Fixes for compiling with GTK+ 3.0 + camerabing example had a missing ')' and the fix to build against GTK+3 + that was introduced in commit 516c977c76ba4cd86a7147aab7416a33d76f870f + is also applied to the camerabin2 example. + The scaletempo demo was using API which has been removed, so that's + wrapped in a version check. + +2011-10-06 12:15:45 -0300 Thibault Saunier + + * gst/videoparsers/gsth264parse.c: + h264parse: Make proper use of the h264parser lib in parse_chain + Minor debugging logs fixes + +2011-10-06 12:25:26 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: properly interpret baseparse draining state + ... which means the input data has reached the end, but need not exclude + many separate frames may still need parsing. + Fixes merging NALs into AU. + +2011-10-05 23:14:23 +0300 Sreerenj Balachandran + + * gst/videoparsers/gsth264parse.c: + h264parse: correct the size argument of gst_h264_parser_identify_nalu_avc() + +2011-10-05 12:09:04 +0300 Sreerenj Balachandran + + * gst/videoparsers/gsth264parse.c: + h264parse: minimum size of parsable avcC data should be 8 + +2011-10-04 12:31:05 +0200 Sebastian Dröge + + * gst/videoparsers/plugin.c: + videoparsers: Only fail to initialize the plugin if all parsers can't be registered + +2011-10-03 15:26:14 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + camerabin2: Initialize camerabin2 preview pipeline data with 0 + Use g_new0 to initialize all fields with 0 to only cleanup what has been + initialized. This makes cleanup work correctly when some initialization + fails and pointers are left in some inconsistent state. + +2011-10-03 12:06:27 +0200 Sebastian Dröge + + * gst/rtpvp8/gstrtpvp8pay.c: + rtpvp8pay: Fix typo + +2011-09-23 22:58:30 +0000 Youness Alaoui + + * gst/rtpvp8/gstrtpvp8depay.c: + * gst/rtpvp8/gstrtpvp8pay.c: + * gst/rtpvp8/gstrtpvp8pay.h: + rtpvp8: Update the pay/depay to the ietf-draft-01 spec + +2011-09-28 14:57:02 +0100 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: fix decoding + A simple ... opusenc ! opusdec ... pipeline now works. + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-28 14:56:18 +0100 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: moan if we get an unexpected amount of data + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-28 14:22:02 +0100 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + opus: properly setup caps and init state from caps + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-28 13:25:21 +0100 Vincent Penquerc'h + + * ext/opus/gstopusenc.c: + opusenc: use the same frame size setup as the opus test code + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-28 13:24:52 +0100 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + opusdec: opus supports a select set of sampling rates + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-28 13:24:21 +0100 Vincent Penquerc'h + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusenc.c: + opus: make it build against current, and remove cruft + https://bugzilla.gnome.org/show_bug.cgi?id=660364 + +2011-09-30 18:54:04 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix scanning stopping too early + https://bugzilla.gnome.org/show_bug.cgi?id=648245 + +2011-09-29 20:55:22 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: avoid rendering when we know there is nothing to render + https://bugzilla.gnome.org/show_bug.cgi?id=660528 + +2011-10-01 14:30:07 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: fix race condition on PAUSED->READY state change + https://bugzilla.gnome.org/show_bug.cgi?id=660630 + +2011-09-21 14:53:01 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: take into account SCR offset when seeking + Since the seeking byte offset is chosen by linear interpolation + from SCR values, we need to take that first SCR into account + to end up near the correct offset. Otherwise, as the code does + a linear search after that first seek, it will take a LOOOOOONG + time to get there for streams which don't start at zero. + https://bugzilla.gnome.org/show_bug.cgi?id=659485 + +2011-09-21 17:29:52 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: answer position query with a stream time position + https://bugzilla.gnome.org/show_bug.cgi?id=659485 + +2011-09-20 15:21:53 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegdemux.h: + mpegpsdemux: remove unused field + https://bugzilla.gnome.org/show_bug.cgi?id=659485 + +2011-09-29 18:20:44 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Refactor tests a little + Refactor camerabin2 tests a little + +2011-09-29 13:03:08 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: adding tests to check for preview message filenames + Preview messages now have filenames, add tests to check that they are + correct + +2011-09-29 18:03:25 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: add location to preview image messages + Makes camerabin2 intercept preview-image messages and add + the filename corresponding to the message structure in the + 'location' field. + Makes easier for applications to track preview images + +2011-09-27 13:04:21 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h: + camerabin2: removing capsfilter from preview pipeline + appsink already has a caps property, so we don't need the + capsfilter here + +2011-09-29 16:22:00 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix potential loss of EOS event + Setting the audio source to NULL just after pushing the EOS event + on it could potentially cause loss of said EOS event. Instead, we + can set the audio source to NULL when ready-for-capture is + signalled and the boolean value is true as this indicates we are + not currently capturing video. + +2011-09-26 17:23:41 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Stop the audio source between captures + Move the audio source setting of state to NULL to _stop_capture () to + avoid the audio source running between captures. + +2011-09-26 16:26:31 +0200 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Also set maximum number of samples that the subclass wants + +2011-09-26 16:05:40 +0200 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Simple fix for GstAudioEncoder API change + +2011-08-23 18:25:20 -0300 Thibault Saunier + + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstvc1parser.c: + * gst-libs/gst/codecparsers/gstvc1parser.h: + * tests/check/Makefile.am: + * tests/check/libs/vc1parser.c: + codecparser: VC1: Implement a VC1 parsing library + +2011-09-16 19:03:31 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gsth264parser.h: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + * gst/videoparsers/Makefile.am: + * tests/check/Makefile.am: + codecparsers: Declare the new APIs as unstable for the time being + +2011-09-26 11:44:02 +0100 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: keep CRC table in .rodata + https://bugzilla.gnome.org/show_bug.cgi?id=660118 + +2011-09-20 16:29:55 +0200 Mark Nauwelaerts + + * gst/pcapparse/Makefile.am: + * gst/pcapparse/gstirtspparse.c: + * gst/pcapparse/gstirtspparse.h: + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/plugin.c: + irtspparse: add Interleaved RTSP parser element + +2011-09-23 10:10:37 +0100 Tim-Philipp Müller + + * ext/faad/gstfaad.c: + faad: fix compiler warning + gstfaad.c: In function 'gst_faad_parse': + gstfaad.c:615:11: error: 'len' may be used uninitialized in this function + +2011-09-23 09:57:01 +0100 Tim-Philipp Müller + + * ext/faad/gstfaad.c: + faad: parse wants a GstFlowReturn return value, not a gboolean + +2011-09-22 20:11:21 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/psmux.c: + psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams + header_length contains the length in bytes after the header_length + field, excluding the 6 byte start code and header_length field. + H.264 streams and some other formats need to be announced in the PSM. + VLC wouldn't play files created with mpegpsmux containing H.264 because + we claim the system header is larger than it actually is, which makes + VLC skip the program stream map which follows the system header, which + in turn makes it not recognise our H.264 video stream. + +2011-09-22 20:09:32 +0100 Tim-Philipp Müller + + * docs/libs/.gitignore: + docs: add ignore rules for libs docs directory + +2011-09-22 18:23:32 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: fixup misunderstanding in sample counting + ... between codec and audioencoder regarding whether or not channel + count is already considered. + Fixes #659836. + +2011-09-22 16:01:56 +0200 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: use some more boilerplate + +2011-09-22 09:49:21 +0200 Mark Nauwelaerts + + * ext/faad/Makefile.am: + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: port to audiodecoder + +2011-09-21 16:11:27 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: use some more boilerplate + +2011-09-21 16:01:28 +0200 Mark Nauwelaerts + + * ext/faac/Makefile.am: + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: port to audioencoder + +2011-09-20 16:54:32 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: forward return code from setting src pad caps + https://bugzilla.gnome.org/show_bug.cgi?id=659606 + +2011-09-20 13:00:49 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + basecamerasrc: Fail state change if preview pipeline fails creation + If the preview pipeline fails creation, for any reason, we should + fail basecamerasrc state change. + Also adds a missing g_return_if_fail check to preview pipeline + functions + +2011-09-19 16:32:58 +0200 Edward Hervey + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + codecparsers: Add checks to input, and fix size checking + +2011-09-19 14:54:11 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth263parse.c: + h263parse: bring debug statements up to desired specs + +2011-09-19 14:07:52 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: bring debug statements up to desired specs + +2011-09-19 13:41:44 +0200 Edward Hervey + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + codecparsinglibs: Doc and indentation fixes + +2011-09-10 11:31:20 +0100 Vincent Penquerc'h + + * gst/rtpvp8/Makefile.am: + * gst/rtpvp8/dboolhuff.LICENSE: + * gst/rtpvp8/dboolhuff.c: + * gst/rtpvp8/dboolhuff.h: + * gst/rtpvp8/gstrtpvp8pay.c: + rtpvp8: fix bitstream parsing using the wrong kind of bitreader + VP8 uses a probabilistic bool coder, not a straight bit coder. + This fixes parsing when error-resilient is set. + This commit includes a copy of libvpx's bool coder, BSD licensed. + https://bugzilla.gnome.org/show_bug.cgi?id=652694 + +2011-09-14 20:22:42 +0100 Vincent Penquerc'h + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celt: a bit more error checking on header parsing + https://bugzilla.gnome.org/show_bug.cgi?id=659087 + +2011-09-14 19:56:40 +0100 Vincent Penquerc'h + + * ext/celt/gstceltenc.c: + celtenc: cleanup header creation + Avoid an extra copy via a temporary fixed size stack buffer. + Use libcelt's header size to allocate a buffer of the correct + size in the first place (libcelt has an off by 4 there, so + account for this). + While there, make size unsigned, and granpos signed. + https://bugzilla.gnome.org/show_bug.cgi?id=659087 + +2011-09-14 19:09:30 +0100 Vincent Penquerc'h + + * ext/celt/gstceltenc.c: + celtenc: do not use invalid buffer timestamps + https://bugzilla.gnome.org/show_bug.cgi?id=659087 + +2011-09-14 17:26:05 +0100 Vincent Penquerc'h + + * ext/celt/gstceltdec.c: + celtdec: fix error checking with libcelt 0.11 + The return value of celt_decode has changed, newer versions + now return positive values on success. + https://bugzilla.gnome.org/show_bug.cgi?id=659087 + +2011-09-14 17:07:50 +0100 Vincent Penquerc'h + + * ext/celt/gstceltenc.c: + * ext/celt/gstceltenc.h: + celtenc: allow actually overriding frame size + https://bugzilla.gnome.org/show_bug.cgi?id=659087 + +2011-09-13 16:24:32 +0100 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: flush on seek, and ensure we cancel any waiting buffer + This is what pango textoverlay does, and I've had that condition + variable get stuck once. + https://bugzilla.gnome.org/show_bug.cgi?id=658940 + +2011-09-12 11:17:20 +0100 Vincent Penquerc'h + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parse: do not try to read from a non existent VUI + https://bugzilla.gnome.org/show_bug.cgi?id=658800 + +2011-09-16 00:32:02 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adding 2 more log messages + +2011-09-14 15:20:09 +0100 Vincent Penquerc'h + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: replace deprecated g_atomic_int_exchange_and_add + It was replaced by g_atomic_int_add, which now returns the + old value. + https://bugzilla.gnome.org/show_bug.cgi?id=659061 + +2011-09-15 17:35:44 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Reset last state change result on state-locked elements + An element stores the result for the last state change it did and + GstBin's state change handler will use this last result for state + locked elements to decide if its state change was successfull or not. + In camerabin2, the filesinks have their state locked and when they + fail switching states, this last failure will be used if the application + tries to change camerabin2's state, causing any state change to fail. + This patch makes camerabin2 reset this last change failure, avoiding + that camerabin2 fails on its next state changes. + +2011-09-15 18:17:24 -0400 Olivier Crête + + * ext/spandsp/gstspanplc.c: + spanplc: Fix typos + +2011-09-13 20:40:35 -0300 Thibault Saunier + + * gst/videoparsers/gstmpegvideoparse.c: + mpegvideoparse: Handle properly frame detection + Handle the case where we have buffers containing no startcode + in the middle of a frame properly. + +2011-09-13 20:38:27 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + codecparsers: mpegvideo: Debugging symbols enhancements + +2011-09-12 13:54:37 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + codecparsers: mpegvideo: Add the ChromaType enum + +2011-09-12 13:41:41 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + codecparsers: mpegvideo: Change broken_gop to broken_link + This way we respect the standard naming + +2011-09-14 16:14:24 +0200 Mark Nauwelaerts + + * gst/videoparsers/gstmpegvideoparse.c: + * gst/videoparsers/gstmpegvideoparse.h: + mpegvideoparse: send a video-codec tag + https://bugzilla.gnome.org/show_bug.cgi?id=569305 + +2011-09-12 16:50:10 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Check zoom notify callback from camera-source + Camerabin2 has a zoom property that is simply proxied to its + internal camera-source element. This patch makes camerabin2 listen + to 'notify' signals from it so it can update its zoom property value + when camera-source changes its zoom as a side-effect of another operation + or because the user set the zoom directly to it, instead of doing + it from camerabin2. + +2011-08-29 08:00:22 +0200 Alessandro Decina + + * ext/rtmp/gstrtmpsink.c: + rtmpsink: don't block the main thread with RTMP_Connect + Move the RTMP_Connect call from the main thread (::start) to the streaming + thread (::render). + +2011-09-12 10:33:06 +0200 Alessandro Decina + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: fix compiler warnings + +2011-09-12 10:23:19 +0200 Alessandro Decina + + * gst/videoparsers/gstmpegvideoparse.c: + mpegvideoparse: fix compiler warnings + +2011-09-09 14:22:39 -0300 Thibault Saunier + + * gst/videoparsers/gsth264parse.c: + h264parse: Make use of the h264_nal_parser_free function + +2011-09-09 14:15:21 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gsth264parser.c: + * tests/check/libs/h264parser.c: + codecparsers: h264: Implement the nal_parser_free function + +2011-09-06 21:29:28 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gsth264parser.c: + * tests/check/libs/h264parser.c: + codecparsers: h264: Use g_slice instead of g_malloc in nal_parser_new + +2011-09-06 21:28:45 -0300 Thibault Saunier + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: Update the documentation + Fix a few error. + Document missing parts. + Add links to the specifications + +2011-09-09 12:27:57 +0200 Sebastian Dröge + + * gst/hls/m3u8.c: + hlsdemux: Fix merge mistake from last commit + +2011-09-08 23:56:33 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Report the correct timestamp for live streams + Buffers would always start with timestamp 0 and we'd start streaming + from the first buffer, but live streams always start streaming from + the last fragment - 3 fragments in the playlist, which makes its + timestamp, as returned by get_next_fragment, be whatever position + they had in the playlist. This makes sure the position correctly + reports the position of the buffer in the playlist, and added a shifting + variable to allow seeking in the middle of fragments. + +2011-09-08 22:13:19 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + hlsdemux/tsdemux: Add HP copyright on work done on HLS + +2011-09-08 20:29:42 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: set playlist to NULL after unreffing it to avoid a double-unref in the dispose + +2011-09-08 18:25:00 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not lock the mutex of the fetcher during EOS + The fetch_location might call stop_fetcher which could generate an EOS + and cause a deadlock + +2011-09-06 22:11:06 -0400 Youness Alaoui + + * configure.ac: + * ext/Makefile.am: + * ext/spandsp/Makefile.am: + * ext/spandsp/gstspandsp.c: + * ext/spandsp/gstspanplc.c: + * ext/spandsp/gstspanplc.h: + spandsp: Adding spandsp plugin with spanplc element for packet loss concealment + +2011-09-07 20:09:12 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not join the task from the task's thread itself. join it only in the state change + +2011-09-07 15:48:33 +0200 Stefan Sauer + + * docs/libs/Makefile.am: + * docs/plugins/Makefile.am: + docs: cleanup makefiles + Remove commented out parts that we don't need. Remove "the wingo addition" - no + so useful after all. Narrow down file-globs for plugin docs. + +2011-09-07 15:42:37 +0200 Stefan Sauer + + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: fix camerabin2 names in sections.txt + +2011-09-07 15:37:53 +0200 Stefan Sauer + + * ext/kate/gstkateparse.h: + kateparse: fix crap in object macros + +2011-09-07 12:32:48 +0100 Vincent Penquerc'h + + * gst/videoparsers/gstmpegvideoparse.c: + mpegvideoparse: make this build with older glib + g_list_free_full is a new convenience function. + Replace it with g_list_foreach and g_list_free. + https://bugzilla.gnome.org/show_bug.cgi?id=658450 + +2011-09-07 13:46:49 +0200 Sebastian Dröge + + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/videoparsers/plugin.c: + videoparsers: Make the h263 and (new) mpeg video parser autopluggable + +2011-09-05 20:02:57 +0300 George Kiagiadakis + + * gst/videoparsers/gsth264parse.c: + h264parse: Fix IDR position marking when the IDR is split into several NALs + +2011-09-07 11:27:56 +0200 Sebastian Dröge + + * gst/videoparsers/gsth263parse.c: + h263parse: Add all always present fields to the src template caps + +2011-09-07 11:24:14 +0200 Sebastian Dröge + + * gst/videoparsers/gstdiracparse.c: + diracparse: Add all fields to the src template caps + +2011-09-07 11:22:07 +0200 Sebastian Dröge + + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/gstmpegvideoparse.c: + videoparsers: Allow parsed streams to be passed through the parsers + +2011-09-07 11:17:54 +0200 Sebastian Dröge + + * gst/videoparsers/gsth264parse.c: + h264parse: Put stream-format and alignment into the src template caps + Also remove the parsed field from the sink template caps. + +2011-09-07 11:14:36 +0200 Sebastian Dröge + + * gst/videoparsers/plugin.c: + h264parse: Change rank to PRIMARY+1 to have h264parse autoplugged + +2011-09-07 11:06:46 +0200 Sebastian Dröge + + * gst/videoparsers/dirac_parse.c: + diracparse: Constify some arrays + +2011-09-06 10:49:04 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + camerabin2: preview: No need for appsink to store the last buffer + There is no need for preview's appsink to keep a reference to the last buffer, + so disable the property to make it unref the buffers sooner. + +2011-09-06 22:48:30 +0100 Christian Fredrik Kalager Schaller + + * gst-plugins-bad.spec.in: + Update for latest new plugins and moved plugins + +2011-09-06 21:25:00 +0200 Stefan Sauer + + * common: + Automatic update of common submodule + From a39eb83 to 11f0cd5 + +2011-09-06 15:40:46 +0200 Stefan Sauer + + * common: + Automatic update of common submodule + From 605cd9a to a39eb83 + +2011-09-06 13:20:43 +0200 Sebastian Dröge + + * gst/videoparsers/gsth264parse.c: + h264parse: Add Converter to classification + This parser can convert between different alignments and stream-formats. + +2011-09-05 14:39:20 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + camerabin2: preview: Appsink doesn't need to sync + Set sync to false on preview's pipeline appsink + +2011-09-05 09:55:53 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + camerabin2: preview: Remove one of the two colorspace converters + The preview pipeline doesn't need 2 colorspace converters, remove + one to speed up caps negotiation and reduce the delay on getting + the first preview buffer out of the preview pipeline. + It shouldn't cause problems as videoscale and ffmpegcolorspace seems + to handle the same caps, so no conversion should be needed for + videoscale. Additionally, camerabin1 has been working with a similar + pipeline with a single ffmpegcolorspace and no bugs have been open about it + so far. + +2011-09-01 20:01:09 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + camerabin2: preview: Disable appsrc signals emission + Camerabin2 doesn't check appsrc's signals, so disable them + +2011-08-26 10:50:38 +0100 Vincent Penquerc'h + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoenc: do not try to calculate latency from an unknown framerate + It'll divide by zero, and latency is unknown for an unknown framerate. + Fixes an assert in the schroenc test. + https://bugzilla.gnome.org/show_bug.cgi?id=657419 + +2011-09-03 00:36:34 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: If a fetch fails, decrement the sequence number + +2011-09-02 23:49:38 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: make hlsdemux lock/unlock the m3u8 client when it accesses it + +2011-09-02 23:48:22 +0000 Youness Alaoui + + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Add a get_target_duration and get_current_uri api to m3u8_client + +2011-09-02 23:48:03 +0000 Youness Alaoui + + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Make the m3u8 client thread-safe + +2011-09-02 19:44:31 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Reset in PAUSED->READY after chaining up to the parent class + Otherwise there are possible race conditions with the streaming thread. + +2011-09-02 16:08:59 +0200 Edward Hervey + + * docs/libs/gst-plugins-bad-libs-sections.txt: + * gst-libs/gst/codecparsers/gsth264parser.h: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + docs: minor fixes + +2011-08-31 10:12:44 +0200 Edward Hervey + + * gst-libs/gst/play/.gitignore: + * gst-libs/gst/play/play.h: + * gst-libs/gst/play/play.vcproj: + gst-libs: Remove play directory. Was unported since 0.8 + +2011-08-31 10:10:21 +0200 Edward Hervey + + * docs/libs/Makefile.am: + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + docs: Add more sections to the gst-libs API docs + +2011-08-29 13:52:17 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: fix PPS parser + Fix transform_8x8_mode_flag and second_chroma_qp_index_offset + +2011-08-29 13:52:16 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: fix NAL reader initialization. + +2011-08-26 15:54:51 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: handle end-of-seq and end-of-stream NAL gracefully. + +2011-08-26 16:05:58 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + codecparsers: h264: fix ref_pic_list_reordering(). + +2011-08-16 16:19:02 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: fix pred_weight_table() parsing. + Use 16-bit signed integer values for weight values because valid + ranges are -128 to +128 inclusive. + +2011-08-16 15:21:18 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: record slice_header() size in bits. + +2011-08-16 15:14:03 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: fix slice_header() parsing. + We were not parsing the slice headers until the actual end, we are now + parsing until the end. + +2011-08-12 13:19:29 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gsth264parser.h: + codecparsers: h264: fix filler-data NAL unit type name. + +2011-08-12 10:17:47 +0200 Gwenole Beauchesne + + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-codecparsers-uninstalled.pc.in: + * pkgconfig/gstreamer-codecparsers.pc.in: + codecparsers: add pkgconfig file. + Adds a new pkgconfig file for codecparsers. They don't have + any specific dependency on gst-plugins-bad and they could quite be + independent bitstream parsers. + +2011-08-05 11:21:05 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + codecparsers: mpeg: add user-data packet start code definition. + +2011-08-03 17:31:55 +0200 Gwenole Beauchesne + + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + codecparsers: mpeg: fix Picture_Coding_Extension parser. + +2011-08-02 12:37:02 +0200 Thibault Saunier + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + * gst/videoparsers/h264parse.c: + * gst/videoparsers/h264parse.h: + h264parse: Port to the new h.264 parsing library + +2011-07-29 10:56:15 +0200 Thibault Saunier + + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * docs/libs/gst-plugins-bad-libs.types: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gsth264parser.c: + * gst-libs/gst/codecparsers/gsth264parser.h: + * tests/check/Makefile.am: + * tests/check/libs/h264parser.c: + codecparsers: h264: Add an h.264 bitstream parsing library + +2011-06-23 12:54:43 -0400 Thibault Saunier + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstmpegvideoparse.c: + * gst/videoparsers/gstmpegvideoparse.h: + * gst/videoparsers/mpegvideoparse.c: + * gst/videoparsers/mpegvideoparse.h: + * tests/check/elements/mpegvideoparse.c: + mpegvideoparse: Port to the new mpeg parsing library + +2011-07-19 13:52:01 +0200 Thibault Saunier + + * configure.ac: + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * docs/libs/gst-plugins-bad-libs.types: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/codecparsers/Makefile.am: + * gst-libs/gst/codecparsers/gstmpegvideoparser.c: + * gst-libs/gst/codecparsers/gstmpegvideoparser.h: + * gst-plugins-bad.spec.in: + * pkgconfig/gstreamer-plugins-bad.pc.in: + * tests/check/Makefile.am: + * tests/check/libs/mpegvideoparser.c: + codecparsers: mpeg: Add an mpeg video bitstream parsing library + Create a new codecparsers library + +2011-08-30 14:50:41 -0300 Thibault Saunier + + * configure.ac: + * docs/Makefile.am: + * docs/libs/Makefile.am: + * docs/libs/compiling.sgml: + * docs/libs/gst-plugins-bad-libs-docs.sgml: + * docs/libs/gst-plugins-bad-libs-overrides.txt: + * docs/libs/gst-plugins-bad-libs-sections.txt: + * docs/libs/gst-plugins-bad-libs.types: + docs: Build documentations for libraries + +2011-09-02 15:00:58 +0200 Sebastian Dröge + + * gst/hls/m3u8.c: + hlsdemux: Remove obsolete FIXME comment + +2011-09-02 14:55:45 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Reset the internal state going to/from READY instead of NULL + This theoretically allows reuse of the element when setting it to READY + instead of NULL. + +2011-09-02 14:54:56 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Set playlist parsing helper object to NULL after freeing + +2011-09-01 23:18:51 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Allow up to 3 consecutive failed downloads before erroring + In some networks, especiall in 3G, a fragment download or playlist + update may fail. We allow for up to 3 consecutive failures, while using + the rfc's specs for retry delays before considering that there was an + error on the stream. + +2011-09-01 22:46:19 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: remove unused argument + +2011-08-21 20:15:25 -0700 David Schleef + + * ext/vp8/gstvp8enc.c: + vp8enc: fix drop-frame property + Fixes #656929. + +2011-09-01 15:57:50 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add a flag to disable image conversion elements + If we know that our camera source element produces buffers at the same + resolution and appropriate colourspace for the output, we don't need any + of the generic conversion elements in encodebin. This reduces caps + negotiation overheads among other things. + +2011-08-31 23:06:53 +0200 Josep Torra + + * ext/libmms/gstmms.c: + mms: fix warnings related to the format on the debug lines. + +2011-08-31 13:29:17 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Micro optimize encodebin pads linking + Reduce one check in encodebin pads linking on camerabin2 by + using the link_pads_full version + +2011-08-31 13:28:25 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + basecamerabinsrc: Optimize preview pipeline startup + Use gst_element_link_pads_full to optimize preview pipeline startup, + leading to a faster camerabin2 startup as well. + +2011-08-31 15:33:10 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Use explicit boolean literals to make gobject happy + gobject boolean properties are strict and only accept 1 or 0, otherwise + they throw an assertion. + +2011-08-31 14:48:47 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Just join the task + gst_task_join() will already stop the task, no need + to stop it additionally. + +2011-08-31 14:47:40 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Join the task instead of just stopping it and not waiting for it to finish + Fixes interesting race conditions that cause crashes in decodebin2 + because pads are added/removed from child elements although they + should be in READY state already. + +2011-08-31 12:12:59 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Remove unused variable + +2011-08-31 03:47:52 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: switch to higher/lower bitrate by more than one step at a time + +2011-08-31 03:20:48 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: remove spamming GST_LOG_OBJECT + +2011-08-31 03:07:48 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: If paused, do not cache fragments until out of memory error! + We should stop the update thread in PAUSED state and avoid fetching + new fragments when the queue is not empty. The queue should always be + empty since we push data into a queue. Also, in totem, if we seek and + pause the stream while it's buffering, then the state will stay playing + for some reason, so it's best not to continue fetching fragments forever. + +2011-08-31 03:01:58 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: start/stop update thread and keep track of status + +2011-08-31 02:05:08 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Post duration message when we parse the playlist + +2011-08-31 01:08:39 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Send a flush-stop when switching pads. Fixes A->A/V sync issue. + This is to ensure that we reset the accumulate segment on the sinks + so if we start with audio only then switch to audio+video, then both + sinks will have the same segments and will be synchronized. + +2011-08-26 22:48:01 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: seems there was a typo, free the adapter if it contains data, not if already empty + +2011-08-26 22:47:35 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: oups, we need to empty the queue after freeing its content + +2011-08-26 22:44:08 +0000 Youness Alaoui + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Need to flush all streams when we receive a flush-start + +2011-08-26 21:46:06 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: do not broadcast the fetcher_cond on bus error if we're cancelled + If we cancel the fetch and call the stop_fetcher, which holds the lock, + when it sets the fetcher's state to NULL, it might send an error + on the bus. In that case, we must ignore it, otherwise it will try + to take the lock and will block forever. + +2011-08-26 19:29:06 +0000 Jonas Larsson + + * gst/hls/m3u8.c: + hlsdemux: Split playslist on \r\n not just \n + +2011-08-26 19:10:58 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not succeed a download if the fetcher had an error + +2011-08-26 19:10:39 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Rename functions that need to be called with a locked mutex + +2011-08-26 19:09:54 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: We must signal the fetcher_cond while holding its lock + +2011-08-26 17:54:51 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: We do not need to set the current playlist to the main one + When caching fragments, if we set the current playlist to main, then + it will always think it's a live stream (no endlist in it) so it will + force the redownload of the main playlist after every seek, which is + unnecessary. Also, it causes a race condition where a seek migh happen + during that redownload, and we'll think we're trying to seek a live pipeline. + +2011-08-30 17:43:22 +1000 Jan Schmidt + + * ext/soundtouch/gstpitch.cc: + * ext/soundtouch/gstpitch.hh: + soundtouch: Handling incoming rate when requested. + Absorb inbound segments with rate != 1.0 and output a segment with + rate taken from the new output-rate property, adjusting the segment + applied_rate, stream duration and timestamps as necessary to + compensate + +2011-08-15 17:57:53 +0200 Nicola Murino + + * ext/opencv/MotionCells.cpp: + fix valgrind warning about Conditional jump or move depends on uninitialised value(s) + +2011-08-17 09:42:07 +0200 Nicola Murino + + * ext/opencv/MotionCells.cpp: + Move m_pprevFrame free just before the clone of the latest frame for readability + +2011-08-26 09:43:14 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Make viewfinder's queue a thread limit only + Reduce the viewfinder queue limits to only allow it to store + one buffer, preventing the queue from holding old buffers for + too long. This also avoids showing slightly outdated frames on + the viewfinder when the source has already produced new ones + and improves the buffer recycling rate, important for sources + that use bufferpools. + +2011-08-25 19:56:58 +0100 Vincent Penquerc'h + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: fix element leak + and this concludes an hour of yelling at the bloody test failing, + only to track down the problem not being in the test. + https://bugzilla.gnome.org/show_bug.cgi?id=657368 + +2011-08-26 00:52:46 +0000 Youness Alaoui + + * gst/mpegtsdemux/mpegtsbase.c: + tsdemux: In push mode, do not start pull loop if upstream seek fails + +2011-08-26 00:47:53 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: do not make the update_thread joinable + +2011-08-26 00:26:29 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Ensure the task is paused in case of cache error + +2011-08-25 23:37:47 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: stop the threads in the proper order + first pause the task, then stop all fetchers, then stop the update thread + then pause the task again, since it might have been restarted by + another thread in the meantime + +2011-08-25 23:37:25 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: do not post an error if we seek/cancel during caching of fragments + +2011-08-25 23:37:00 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: if we're canceling a fetcher, we must stop its thread + +2011-08-25 23:36:27 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: lock the update_thread mutex before stopping it + +2011-08-25 23:35:55 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: lock the fetcher mutex before stopping it + +2011-08-25 23:33:10 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: do not allow two fetchers to run simultanously + +2011-08-23 20:49:33 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Stop the streaming task on PAUSED_TO_READY state change + +2011-08-25 19:24:56 +0100 Vincent Penquerc'h + + * tests/check/Makefile.am: + tests: make camerabin2 test build + https://bugzilla.gnome.org/show_bug.cgi?id=657363 + +2011-07-12 21:48:37 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Add more debug + +2011-07-12 19:09:02 -0400 Olivier Crête + + * gst/dtmf/gstdtmfcommon.h: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Max event type is 15 + +2011-04-14 15:46:08 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + dtmfsrc: Align DTMF sound buffers with last-stop from event + Also make sure the timestamps never go backwards + +2011-07-11 21:31:07 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Correctly recognize the end of a buffer + +2011-07-11 20:47:23 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap + +2011-07-11 20:46:20 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Put the inter digit interval at the end, not at the start + The reason is to let rtpdtmfmux drop buffers during the inter digit interval, + this way, there will be more silence around the DTMF tones so IVFs will have + a better chance recognizing them. + +2011-04-14 17:08:57 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + rtpdtmfsrc: Start at the last_stop from the start event if there was one + The goal is to try to not have a GAP between the audio and the DTMF + +2011-04-14 14:34:26 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + rtpdtmfmux: Add last-stop to dtmf-event upstream events + Add the running time of the last outputted buffer to the + upstream "dtmf-event" events so that the dtmf source does not + leave a gap. + +2011-04-14 16:49:39 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + rtpdtmfsrc: Respect ptime from the caps + Respect the ptime from the caps for the DTMF packets + +2011-07-11 21:30:28 -0400 Olivier Crête + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Just error out if there is no clock + +2011-08-24 16:53:52 +0100 Tim-Philipp Müller + + * ext/kate/gstkateutil.c: + kate: make gst_kate_util_is_utf8_string() inline to fix compiler warning with older libkate versions + gstkateutil.c:230:1: error: 'gst_kate_util_is_utf8_string' defined but not used + +2011-08-24 15:32:12 +0100 Vincent Penquerc'h + + * ext/resindvd/rsnwrappedbuffer.c: + rsndvd: ensure metadata is writable when writing to it + https://bugzilla.gnome.org/show_bug.cgi?id=657250 + +2011-08-24 09:35:18 +0200 Sebastian Dröge + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Use FALSE instead of 0 for bool parameter + +2011-08-23 22:44:17 +0000 Youness Alaoui + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Need to send a newsegment after a seek + +2011-08-23 22:38:26 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Send buffering messages on the bus + +2011-08-23 22:38:05 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: cache the number of fragments we are required to cache + +2011-08-23 22:40:25 +0000 Youness Alaoui + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Forward seek/duration query/event to the sinkpad + +2011-08-24 01:03:32 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Optimize start up a little by removing some pad checks + Some pad checks are guaranteed to work, so we can disable them + by using gst_element_link_pads_full + +2011-08-23 19:26:31 -0300 Thiago Santos + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst/camerabin2/gstcamerabin2.c: + * tests/check/Makefile.am: + * tests/examples/Makefile.am: + camerabin2: Remove from experimental + Remove camerabin2 from experimental, allowing it to be built + without needing to pass --enable-experimental on configure. + +2011-08-23 19:13:21 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Always set encodebin flags when going to ready + When going from NULL to READY we want the encodebin flags to be + set, and not only after creating encodebin (on the first run) + +2011-08-23 11:58:33 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add new entry to flags property + Adds a new entry to camerabin2 flags to disable viewfinder + conversion elements. + +2011-08-23 11:19:51 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + * gst/camerabin2/gstviewfinderbin.h: + camerabin2: viewfinderbin: Add property for disabling converters + Adds a new property to disable converters elements for performance + reasons. It should only be used if the application knows they aren't + needed. + +2011-08-19 17:28:54 +0100 Vincent Penquerc'h + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: do not try to compare a PCR with itself for statistics + Especially as one of the logs will cause a divide by zero. + https://bugzilla.gnome.org/show_bug.cgi?id=656927 + +2011-08-19 13:32:14 +0100 Vincent Penquerc'h + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: do not keep a dangling pointer + When removing the current program, it will get freed by the + hash table removal callback, so ensure we clear our pointer + to it. + Fixes a crash later on in gst_ts_demux_push trying to access it. + https://bugzilla.gnome.org/show_bug.cgi?id=656927 + +2011-08-21 20:36:07 +0100 Vincent Penquerc'h + + * ext/kate/gstkateutil.c: + kate: pass on timed event metadata as tags when we can + Metadata attached to other objects that may be used in this + event are not passed, as is binary metadata. + +2011-08-23 10:32:14 +0200 Sebastian Dröge + + * configure.ac: + configure: Add AC_MSG_CHECKING() to the VP8E_SET_TUNING presence check + +2011-08-19 19:17:15 +0100 Vincent Penquerc'h + + * configure.ac: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8: probe for the new tuning API to keep building with older libvpx + https://bugzilla.gnome.org/show_bug.cgi?id=656928 + +2011-08-18 13:21:18 +0100 Vincent Penquerc'h + + * ext/rsvg/gstrsvgdec.c: + * ext/rsvg/gstrsvgdec.h: + rsvgdec: use input buffer timings if possible + SVG data may come through multiple buffers, so keep track of the + timestamp of the first buffer, and use it in preference. + https://bugzilla.gnome.org/show_bug.cgi?id=628284 + +2011-08-22 17:10:24 +0100 Vincent Penquerc'h + + * ext/kate/gstkatespu.c: + kate: do not consider an empty SPU to be a fatal error + Instead, just encode nothing and go on. + https://bugzilla.gnome.org/show_bug.cgi?id=657091 + +2011-08-22 17:15:10 +0100 Vincent Penquerc'h + + * ext/kate/gstkatespu.c: + kate: do not clear out high bits from display area + http://dvd.sourceforge.net/spu_notes does not mention that high bits + are to be masked, and not clearing them makes a sample work, where + clearing them yielded left > right. + History from the dvdspu plugin, from where this code was copied, + does not shed any light, as tracing this code's origin shows + the same bitmasks being there in 2007 when it was imported. + https://bugzilla.gnome.org/show_bug.cgi?id=657091 + +2011-08-22 16:52:13 +0100 Vincent Penquerc'h + + * gst/dvdspu/gstspu-vobsub.c: + dvdspu: do not clear out high bits from display area + http://dvd.sourceforge.net/spu_notes does not mention that high bits + are to be masked, and not clearing them makes a sample work, where + clearing them yielded left > right. + History does not shed any light, as tracing this code's origin shows + the same bitmasks being there in 2007 when it was imported. + https://bugzilla.gnome.org/show_bug.cgi?id=620119 + +2011-08-23 09:52:20 +0200 Sebastian Dröge + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: First try if upstream handles seeking in TIME format before seeking in the demuxer + +2011-08-23 09:40:16 +0200 Sebastian Dröge + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: First send SEEKING queries upstream + +2011-08-23 09:27:23 +0200 Sebastian Dröge + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Send DURATION query upstream first + +2011-08-23 09:23:33 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Use FALSE instead of 0 for a bool parameter + +2011-08-16 19:53:31 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: switch pads when we seek (need_segment) since tsdemux doesn't cope well with a reset + +2011-08-23 02:36:25 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Add a FIXME comment. loop task should be a pad task + +2011-08-22 23:41:39 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not seek in a live stream + +2011-08-22 23:41:31 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not take the pad stream lock, use the task's lock instead + +2011-08-16 19:46:49 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: Implement EVENT_SEEK + +2011-08-23 01:54:26 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Implement the GST_QUERY_SEEKING properly + +2011-08-23 01:54:03 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Implement correctly the GST_QUERY_DURATION + +2011-08-16 19:41:08 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Do not use GST_TASK_WAIT in the task function + The task function uses GST_TASK_WAIT which does a g_cond_wait giving it + the GST_OBJECT_GET_LOCK of the task. The mutex gets locked when + g_cond_wait returns, so if we don't lock/unlock it, it will + stay locked forever, preventing the task from ever finishing. + We shouldn't lock the task object lock, so let's remove the GST_TASK_WAIT + and make the task pause instead if there are no buffers in the queue. + +2011-08-18 23:52:37 +0000 Youness Alaoui + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: do not send a new-segment on stream removal + When a program is changed, stream_added is called which sets the + need_newsegment to TRUE, then stream_removed is called, which calls + the flush_pending_data, which checks for the newsegment and causes + it to send a new-segment. + We must not send the newsegment when flushing the pending data on the + removed stream. We should only push it when flushing data on the newly + added streams (after they finish parsing their PTS header) + +2011-08-16 22:05:14 +0000 Youness Alaoui + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Fix newsegment when switching programs + If a program/stream is changed, then a newsegment is sent which must + not be the same as the base segment since it happens later. We must + shift the start position by the time elapsed since the newsegment + and the current PTS of the stream + +2011-08-16 19:54:04 +0000 Youness Alaoui + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: interpolate gap and fix timestamps depending on upstream segment + +2011-08-18 23:54:59 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Keep a separate variable for the current variant used + By using a separate variable, first it allows us to sort the lists + of alternates but keep the pointer on the first occurence in the main + playlist (to respect the spec of starting with the bitrate specified + first in the main playlist). It also avoid playing with the lists variable + which should be used to store the list of playlists and not as a pointer + to the current one. + Also fixes a memleak with the g_list_foreach freeing the lists, if it wasn't + pointing to the first element of the list. + +2011-08-21 18:44:43 -0700 David Schleef + + * sys/decklink/Makefile.am: + * sys/decklink/capture.cpp: + * sys/decklink/capture.h: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksink.h: + * sys/decklink/gstdecklinksrc.h: + decklink: fix compilation on Linux + +2011-08-18 14:29:53 -0700 David Schleef + + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: Add subdevice property + +2011-07-07 16:44:31 -0400 Joshua M. Doe + + * sys/decklink/DeckLinkAPI.h: + * sys/decklink/DeckLinkAPIDispatch.cpp: + * sys/decklink/LinuxCOM.h: + * sys/decklink/capture.cpp: + * sys/decklink/capture.h: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksink.h: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + * sys/decklink/linux/DeckLinkAPI.h: + * sys/decklink/linux/DeckLinkAPIDispatch.cpp: + * sys/decklink/linux/LinuxCOM.h: + * sys/decklink/win/DeckLinkAPI.h: + * sys/decklink/win/DeckLinkAPIDispatch.cpp: + * sys/decklink/win/DeckLinkAPI_i.c: + decklink: add support for Windows + Builds with MSVC, not tested in MinGW or anything else. Added + COM handling code, borrowed from dshowvideosink. Moved Linux + specific files to ./linux and added Windows specific files to + ./win (generated from IDL files in VS9). Added macros to handle + BSTR and defined bool as BOOL. Fixes #655362. + Signed-off-by: David Schleef + +2011-07-07 14:34:01 -0400 Joshua M. Doe + + * sys/decklink/capture.cpp: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: improve frame handling + Send NEWSEGMENT on start. Send warning instead of error on + dropped frames. + Signed-off-by: David Schleef + +2011-07-07 14:20:37 -0400 Joshua M. Doe + + * sys/decklink/capture.cpp: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: fix debugging in capture.cpp by making category extern + Signed-off-by: David Schleef + +2011-07-07 14:13:00 -0400 Joshua M. Doe + + * sys/decklink/capture.cpp: + * sys/decklink/capture.h: + decklink: use mutexes from glib instead of pthread + Signed-off-by: David Schleef + +2011-06-16 17:19:49 -0300 Tiago César Katcipis + + * configure.ac: + * gst/removesilence/Makefile.am: + * gst/removesilence/gstremovesilence.c: + * gst/removesilence/gstremovesilence.h: + * gst/removesilence/vad_private.c: + * gst/removesilence/vad_private.h: + removesilence: new plugin + Fixes: #597822. + Signed-off-by: David Schleef + +2011-08-21 14:41:28 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Prevent audiosrc from sending undesired eos + Basesrc derived classes send an eos when they change state + from paused to ready and that breaks video recordings on camerabin2 + as it makes the whole audio branch pads flushing. + Prevent it by using a pad probe that only allows the eos to pass + when it is caused by a stop-capture action. + +2011-08-21 14:07:37 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Use audiotestsrc on tests + Use audiotestsrc on tests instead of using the system's default + audiosrc, avoiding any problems that a local audio setup might + have. + +2011-08-18 18:27:03 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Use gst_pad_send_event instead of eventfunc macro + +2011-08-14 04:41:58 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Improving tests + Adding some additional checks for custom camerabin2 messages + Also improves reliability of the tests by waiting for the preview-buffer message. + This message is generated from the preview pipeline, and might arrive later than the + image/video-done from the main camerabin2 pipeline, the tests need to wait for it even + after getting the image/video-done. + +2011-08-18 15:12:56 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Avoid assertions when plugin creation fails + Capsfilters are created on the constructor and their properties can + be set/get from camerabin2's set/get_property functions. The user with + a broken setup would cause assertions when trying to set/get the + capture caps of this camerabin2. + A proper missing-plugin message will be posted when the user tries to + set camerabin2 to READY state. + +2011-08-20 00:48:20 +0200 Alessandro Decina + + * gst/mpegtsmux/mpegtsmux.c: + tsmux: remove unnecessary check + remove an if (best) check where best != NULL has already been checked + +2011-08-16 19:51:34 +0000 Youness Alaoui + + * gst/mpegtsdemux/mpegtsbase.c: + tsbase: reinitiate segment at flush-stop event only + +2011-08-16 19:43:08 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Set buffer timestamp since we send a TIME segment + +2011-08-02 19:21:47 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: Allow bandwidth switching during caching of fragments + +2011-08-02 19:21:18 +0000 Youness Alaoui + + * gst/hls/gsthlsdemux.c: + hlsdemux: set the pad's caps before adding it + +2011-08-17 11:02:12 +0100 Vincent Penquerc'h + + * ext/ofa/gstofa.c: + ofa: fingerprint creation can fail + There does not seem to be a way to retrieve information + about why failure occured, unfortunately. + When failure occurs, do not post a NULL fingerprint tag. + https://bugzilla.gnome.org/show_bug.cgi?id=656641 + +2011-08-17 10:55:59 +0100 Vincent Penquerc'h + + * ext/ofa/gstofa.c: + ofa: cleanup + Avoid repeating casting to GstAudioFilter when one will do + Use object related logging to make it easier to get just the logs we want + https://bugzilla.gnome.org/show_bug.cgi?id=656641 + +2011-08-17 11:07:54 +0100 Vincent Penquerc'h + + * ext/ofa/gstofa.c: + ofa: do not create fingerprint on EOS if record is FALSE + https://bugzilla.gnome.org/show_bug.cgi?id=656641 + +2011-08-18 10:39:26 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Remove unused and useless variable in tags handling + +2011-08-18 08:02:50 +0000 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: Fix locking, especially if both pads have different streaming threads + +2011-08-18 07:42:02 +0000 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: Don't call g_type_class_peek_parent() in class_init + This is already done by the GObject boilerplate macro + +2011-08-16 10:24:37 +0100 Vincent Penquerc'h + + * gst/aiff/aiffmux.c: + * gst/aiff/aiffmux.h: + aiffmux: drop data after 4ish GB and moan + https://bugzilla.gnome.org/show_bug.cgi?id=654278 + +2011-08-16 10:02:59 +0100 Vincent Penquerc'h + + * gst/aiff/aiffmux.c: + aiffmux: use guint32 for guint32 parameters + This makes explicit that the range is limited. + https://bugzilla.gnome.org/show_bug.cgi?id=654278 + +2011-08-16 10:02:11 +0100 Vincent Penquerc'h + + * gst/aiff/aiffmux.c: + aiffmux: avoid integer overflow + These values are 32 bits, and width is a multiple of 8. + https://bugzilla.gnome.org/show_bug.cgi?id=654278 + +2011-08-16 19:39:40 +0100 Vincent Penquerc'h + + * ext/celt/gstceltdec.c: + celtdec: make this compile with git libcelt + celt_mode_info was removed, in favor of a _ctl. + https://bugzilla.gnome.org/show_bug.cgi?id=656686 + +2011-08-16 18:34:59 +0100 Vincent Penquerc'h + + * ext/ofa/gstofa.c: + ofa: don't crash when there's no data to create a fingerprint from + Fixes a crash when no data flowed through. + https://bugzilla.gnome.org/show_bug.cgi?id=656641 + +2011-08-16 19:47:02 +0300 George Kiagiadakis + + * gst/mpeg4videoparse/mpeg4parse.c: + mpeg4videoparse: Use gst_bit_reader_skip to skip more than 32 bits. + GET_BITS is a macro for gst_bit_reader_get_bits_uint32, which cannot + read more than 32 bits and will fail in this case where it is called + to read 79 bits. Since we want to skip those bits, gst_bit_reader_skip + is more appropriate in this case. + +2011-08-15 02:08:14 +0200 Alessandro Decina + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: get the framerate from caps + ...and configure QTKit accordingly. Hardcoding to 30fps was pretty -bad. + +2011-08-13 15:55:01 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Add test for audio-filter property + Checks that the audio-filter is properly plugged in the pipeline + and receives buffers when recording a video. + +2011-08-11 18:59:07 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add audio-filter property + Adds a property to add a custom GstElement to the audio + branch of the pipeline. This allows the user to do custom audio + processing/analysis when recording videos. + +2011-08-12 22:39:53 +0200 Stefan Kost + + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + * gst/audiovisualizers/gstbaseaudiovisualizer.h: + basevisualizer: add more shader variants and simplify code + Use macros to simplyfy the shading code. Those will ease to add support for + other colorspaces in the future. Add more variants for the shading (left,right, + horiz-in, vert-out, vert-in). + +2011-08-12 21:22:20 +0200 Stefan Kost + + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + basevisualizer: more docs + +2011-08-12 21:18:44 +0200 Stefan Kost + + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + * gst/audiovisualizers/gstbaseaudiovisualizer.h: + baseaudiovisualizer: protect config with a lock + Before it was easy to crash the elements when using a ximagesink and triggering + renegotiation by resizing. + +2011-08-12 16:57:49 +0200 Stefan Kost + + * gst/audiovisualizers/gstspectrascope.c: + spectrascope: make a copy of the audiodata before downmixing and windowing + The buffers come from the adapter and the data might overlap. We don't want to + modify it in place. + +2011-08-12 12:25:03 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream + This allows to specify constraints on the compressed downstream caps + by muxers or capsfilters, which will then be forwarded to upstream + and allows video converters to fulfill the constraints. + Code based on Mark Nauwelaerts audio encoder base class. + +2011-08-12 12:13:45 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Remove old ::getcaps() comment + +2011-08-12 12:08:32 +0200 Sebastian Dröge + + * ext/dirac/gstdiracenc.cc: + diracenc: Update for basevideoencoder ::get_caps() removal + +2011-08-12 12:08:20 +0200 Sebastian Dröge + + * ext/schroedinger/gstschroenc.c: + schroenc: Update for basevideoencoder ::get_caps() removal + +2011-08-12 12:08:08 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Update for basevideoencoder ::get_caps() removal + +2011-08-12 12:06:23 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Remove ::get_caps() vfunc + Subclasses can set the caps more efficiently and this only + caused additional indirections. + +2011-08-09 09:29:21 +0100 Vincent Penquerc'h + + * gst/mxf/mxfmetadata.c: + mxf: do not assert on the values of data read from input + Instead, log a warning, and return. + https://bugzilla.gnome.org/show_bug.cgi?id=563827 + +2011-08-03 16:02:01 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Use the cached video frame size instead of recalculating it + +2011-08-08 17:53:16 +0200 Sjoerd Simons + + * ext/schroedinger/gstschroenc.c: + schroedinger: Fix set but unused variables + Remove some dead code that triggers "set but unused variables" + from Gcc 4.6. Fixes #656166 + Signed-off-by: David Schleef + +2011-08-08 16:44:20 +0200 Sjoerd Simons + + * ext/dirac/gstdiracenc.cc: + dirac: Fix set but unused variables + Remove some dead code that triggers "set but unused variables" from Gcc + 4.6. Fixes #656164. + Signed-off-by: David Schleef + +2011-08-06 12:13:22 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adding video-done message + video-done message will be posted when a video recording is + finished. Similar to image-done message. + +2011-08-05 15:48:53 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adding top-level element documentation + +2011-08-05 13:34:08 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fixing typo + +2011-08-04 13:33:20 +0200 Stefan Sauer + + * ext/opencv/gstmotioncells.c: + * ext/opencv/motioncells_wrapper.cpp: + * ext/opencv/motioncells_wrapper.h: + motioncells: turn two global vars into static variables + Move 2 variable to motioncells_warpper and make them static. + +2011-08-04 13:33:56 +0200 Edward Hervey + + * tests/examples/opencv/Makefile.am: + examples: Add missing header file + +2011-08-04 11:28:30 +0200 Edward Hervey + + * sys/decklink/Makefile.am: + decklink: Add gstdecklink.h to list of headers + +2011-08-04 09:49:46 +0200 Alessandro Decina + + * gst/videoparsers/mpegvideoparse.c: + mpegvideoparse: fix sequence header parsing + After bitrate there's 11 bits (1 marker bit + VBV buffer size) before the load + intra quantiser flag. + +2011-07-21 08:58:27 +0300 Tommi Myöhänen + + * gst-libs/gst/interfaces/photography.h: + photography: add missing FLICKER_REDUCTION capability + GstPhotography API contains functions to get/set flicker reduction + mode, but GstPhotoCaps enumeration doesn't have item for it, so elements + are not able to report whether they support this feature or not. + Also add useful GST_PHOTOGRAPHY_CAPS_ALL for easily selecting all + capabilities at once. + https://bugzilla.gnome.org/show_bug.cgi?id=655318 + +2011-08-03 13:37:28 -0700 David Schleef + + * gst/subenc/Makefile.am: + * gst/subenc/gstsrtenc.c: + * gst/subenc/gstsubenc.c: + * gst/subenc/gstwebvttenc.c: + * gst/subenc/gstwebvttenc.h: + subenc: Add webvttenc element + +2011-08-03 13:35:41 -0700 David Schleef + + * ext/kate/gstkateenc.c: + kateenc: Fix uninitialized error + +2011-07-09 23:22:26 -0700 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: remove shape_output handling + +2011-07-09 23:07:39 -0700 David Schleef + + * ext/dirac/gstdiracenc.cc: + diracenc: Remove unused shape_output code + +2011-07-09 18:53:24 -0700 David Schleef + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: Add more properties + +2011-06-19 16:06:46 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: add min/maxsection-pct option + This options should be good to redeuce decode CPU load. + for lowend hardware: + minsection-pct=15 maxsection-pct=400 + for hiend hw: + minsection-pct=5 maxsection-pct=800 + see example: + http://www.webmproject.org/tools/encoder-parameters/#2-pass_vbr_encoding_for_smooth_playback_on_low-end_hardware + Signed-off-by: Alexey Fisher + Signed-off-by: David Schleef + +2011-06-19 11:05:36 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: add lag-in-frames option. + This option set maximum of frames codec should remember, + to make better prediktion for alt-ref frames. + See example: + http://www.webmproject.org/tools/encoder-parameters/#2-pass_best_quality_vbr_encoding + Signed-off-by: Alexey Fisher + Signed-off-by: David Schleef + +2011-06-19 07:16:57 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + vp8enc: use multipass.cache file name as default for multipass mode. + Signed-off-by: Alexey Fisher + Signed-off-by: David Schleef + +2011-07-09 16:05:07 -0400 Mukul Majmudar + + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: Add properties for VBR encoding + Property "quality" to specify VBR quantizer quality and property + "brtype" to choose between ABR and VBR encoding. The default is now VBR + with quality=100. + Fixes bug #654310. + Signed-off-by: David Schleef + +2011-07-07 16:07:50 -0700 David Schleef + + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: Add audio-input property + +2011-07-18 15:25:05 +1000 Tim 'mithro' Ansell + + * gst/inter/Makefile.am: + inter: Adding missing base requirements. + Fixes: #654806. + +2011-08-03 15:21:17 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: add more missing plugin checks + Sprinkle some more missing plugin checks around + +2011-08-03 13:12:18 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add a missing element check and remove TODO + Add missing element checks for elements created at _init + functions and remove TODO about it + +2011-08-03 13:57:09 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Remove redundant image-queue + Encodebin is used for image encoding and it already contains + a queue, so we can remove camerabin2 image queue. + +2011-08-03 13:42:20 +0100 Tim-Philipp Müller + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: fix up copyrights + +2011-06-29 15:14:29 +0200 Robert Swain + + * tests/examples/camerabin2/gst-camerabin2-test.c: + gst-camerabin2-test: Add audio capture caps option + +2011-08-02 15:14:24 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Make access to the list of frames threadsafe + +2011-08-02 23:53:08 +0100 Tim-Philipp Müller + + * gst/bayer/Makefile.am: + bayer: back around compiler warnings in orc-generated code by disabling -Werror for this plugin + https://bugzilla.gnome.org/show_bug.cgi?id=652677 + +2011-08-02 22:57:15 +0100 Tim-Philipp Müller + + * .gitignore: + * ext/opencv/gstmotioncells.c: + * tests/examples/opencv/gst_element_print_properties.c: + * tests/examples/opencv/gstmotioncells_dynamic_test.c: + Fix some more variable-set-but-not-used compiler warnings + +2011-08-02 21:14:06 +0200 Robert Jobbagy + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Fix camerabin2 G_OBJECT cast + Adds missing cast to fix build error. + +2011-08-02 10:49:09 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Workaround for ringbuffer not resyncing on READY + Add a workaround to fix timestamps meanwhile bug + https://bugzilla.gnome.org/show_bug.cgi?id=648359 is fixed. + +2011-07-30 16:12:31 +0300 Raluca Elena Podiuc + + * gst/camerabin2/gstwrappercamerabinsrc.c: + camerabin2 remove redundant viewfinder-colorspace and viewfinder-scale + camrabin2 connects a viewfinderbin on "vfsrc". viewfinderbin is made of: + vfbin-csp ! vfbin-videoscale ! videosink. + we should either remove csp/videoscale from wrappercamerabinsrc (as + done in this patch) or we should get rid of viewfinderbin altogether. + +2011-07-26 06:04:41 +0300 Raluca Elena Podiuc + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + basecamerasrc: remove unused get_allowed_input_caps + The use of this method was removed in: + commit 539f10f4d99e1a074881289254d1d109159cf9e5 + basecamerasrc: More cleanup + The code from wrappercamerabinsrc is from v4l2camerasrc but is unused: + get_allowed_input_caps is not called anywhere. + +2011-07-26 05:59:09 +0300 Raluca Elena Podiuc + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + basecamerasrc: don't use class offsets for start/stop-capture signal handlers + +2011-07-26 05:43:34 +0300 Raluca Elena Podiuc + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: document why we set preview to PLAYING + +2011-07-26 04:42:49 +0300 Raluca Elena Podiuc + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + basecamerasrc: document callbacks + Note for each callback: + - when it is called, + - whether it is mandatory or optional. + +2011-07-26 03:04:47 +0300 Raluca Elena Podiuc + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + basecamerabinsrc: preview: remove unused new_preroll callback + +2011-07-28 13:18:57 -0300 Teemu Katajisto + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Synchronize clock and base time to audiosrc + When audio source goes to READY it loses its clock and base time, + this patch sets them back after bringing the audio source back to PAUSED. + +2011-07-28 12:56:12 -0300 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Prevent audio source from providing clock + The audio source inside camerabin2 is put to READY and back to + PLAYING when starting capture, causing the pipeline to lose its + clock. As camerabin2 isn't put to PAUSED->PLAYING again during + this, a new clock isn't selected for elements. + +2011-06-30 11:09:44 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: Add flags prop to toggle encodebin conversion elements + A flags property has been added to encodebin to toggle whether the + conversion elements (ffmpegcolorspace, videoscale, audioconvert, + audioresample, audiorate) are created and linked into the appropriate + branches of encodebin. + Not including these elements avoids some slow caps negotiation and + allows the first buffers to flow through encodebin much more quickly. + However, it imposes that the uncompressed input is appropriate for the + target profile and elements selected to meet that profile. + +2011-06-29 15:35:42 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Prepare audiosrc before start-capture + If we bring the audio source up to the PAUSED state before emitting the + start-capture signal to the camera source, when subequently taking the + audio source to the PLAYING state, it will begin capture more quickly. + +2011-06-29 15:18:47 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Remove redundant elements + Since camerabin2 has switched to encodebin and encodebin has its own + queues and conversion elements, those preceding encodebin are no longer + necessary and as such can be removed. + +2011-08-01 18:49:55 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Take into account upstream newsegment events + If the incoming newsegment event was in time, use that position value + for the downstream newsegments. + +2011-08-01 18:48:03 +0200 Edward Hervey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: Send NEWSEGMENT events + Previously hlsdemux wasn't sending out any newsegment. + Here we push a GST_FORMAT_TIME newsegment, and whenever possible we + try to indicate the proper start time. + This allows downstream elements to relay the start/time values properly + to the sinks, allowing better stream switching. + +2011-08-01 15:46:12 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Remove programs on EOS + Allows subclasses to properly flush out pending data. + +2011-08-01 10:54:16 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Refactor stream/program removal + The program_stopped vmethod was called before stream_removed vmethod + was being called. Since we only did stream-related operations in there, + we just remove the program_stopped vmethod and do everything in the + stream_removed one. + Also, make sure we flush out all pending data before sending EOS. + +2011-07-28 18:21:04 -0400 Nicolas Dufresne + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Prevent stack gardening by using the right type + stream_type is stored as guint inside the GstStructure but was retreived + using valist with a pointer to guint16. This would cause stack gardening + when code is compiled without optimisation (e.g. in -O0 the compiler wont + pad the stack to optimise out required mask). + https://bugzilla.gnome.org/show_bug.cgi?id=655540 + +2011-07-29 21:26:41 +0100 Tim-Philipp Müller + + * tests/check/elements/faad.c: + tests: fix compiler warning in faad unit test + +2011-07-29 19:43:11 +0100 Tim-Philipp Müller + + * gst/id3tag/Makefile.am: + * gst/id3tag/gstid3mux.h: + * gst/id3tag/gsttagmux.c: + * gst/id3tag/gsttagmux.h: + * gst/id3tag/id3tag.h: + id3mux: use now-public GstTagMux base class from libgsttag + +2011-07-28 20:38:37 +0100 Tim-Philipp Müller + + * gst/id3tag/gstid3mux.c: + * gst/id3tag/gsttagmux.c: + tagmux: require subclass to install sink pad template + Require the subclass to install both source and sink pad + templates. Also, print some warnings if the subclass doesn't + do that. + https://bugzilla.gnome.org/show_bug.cgi?id=555437 + +2011-07-27 22:34:23 +0200 Robert Jobbagy + + * configure.ac: + * tests/examples/Makefile.am: + * tests/examples/opencv/Makefile.am: + * tests/examples/opencv/gst_element_print_properties.c: + * tests/examples/opencv/gst_element_print_properties.h: + * tests/examples/opencv/gstmotioncells_dynamic_test.c: + * tests/examples/opencv/gstmotioncells_dynamic_test.h: + gstmotioncells_dynamic_test: test tool what can to do dynamic change properties + +2011-07-27 18:58:15 +0200 Robert Jobbagy + + * ext/opencv/Makefile.am: + * ext/opencv/MotionCells.cpp: + * ext/opencv/MotionCells.h: + * ext/opencv/gstmotioncells.c: + * ext/opencv/gstmotioncells.h: + * ext/opencv/gstopencv.c: + * ext/opencv/motioncells_wrapper.cpp: + * ext/opencv/motioncells_wrapper.h: + motioncells: new element to detect areas of motion + +2011-07-26 17:02:05 +0200 Edward Hervey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hsldemux: Handle change of media types + When switching bitrates, we might end up switching to a different + media-type (like from aac to/from mpeg-ts). + For this switch to behave properly in decodebin2, this patch adds: + * dynamic source pads (which will be added/removed whenever a stream + media type changes + * re-checking the fragment media type whenever we switch to a different + playlist + +2011-07-26 13:47:04 +0200 Edward Hervey + + * gst/mpeg4videoparse/mpeg4parse.c: + mpeg4videoparse: Fix unitialized variable on old compilers + +2011-07-27 11:02:41 +0100 Olaf Seibert + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix wrong usage of GST_ELEMENT_ERROR macros and compilation on NetBSD + https://bugzilla.gnome.org/show_bug.cgi?id=655319 + +2011-07-27 10:56:15 +0100 Tim-Philipp Müller + + * gst/pcapparse/gstpcapparse.c: + pcapparse: fix compiler warning + gstpcapparse.c: In function 'gst_pcap_parse_chain': + gstpcapparse.c:381:6: error: 'eth_type' may be used uninitialized in this function [-Werror=uninitialized] + gstpcapparse.c:354:11: note: 'eth_type' was declared here + +2011-07-26 19:11:16 +0300 Felipe Contreras + + * gst/pcapparse/gstpcapparse.c: + pcapparse: fix SLL parsing + The current code is not checking for ethernet type, as it's supposed to, + but link layer device type and it's hard-coded to only accept dumps from + ethernet (ARPHRD_ETHER; 1). We don't care where the dump was fetched + from (wlan, 3G, etc.) + What we care about is the that the ethernet type is IP (ETHERNET_IP; + 0x800), which is clearly field 14: + http://www.tcpdump.org/pcap3_man.html + And do a bit of cleanup. + Signed-off-by: Felipe Contreras + +2011-07-21 13:26:55 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsbase/tsdemux: Fix stream/pad activation order + We first activate new streams before shutting down old ones. + We emit no-more-pads after we add new streams and emit EOS before + removing old ones. + Also cleanup/refactor a bit more of the code accordingly + +2011-07-22 12:26:07 +0300 Raluca Elena Podiuc + + * gst/camerabin2/PORTING: + camerabin2: add location=NULL docs to PORTING + https://bugzilla.gnome.org/show_bug.cgi?id=641918 + +2011-07-22 11:38:30 +0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: If location is NULL do not encode images + Using a NULL string for location means that the application + doesn't want the image to be encoded, but wants to receive + the preview image. (Only works for image captures) + Useful for application that want the capture in memory only, like + displaying to the user before it choses to encode or take another + picture in avatar capturing scenarios. + https://bugzilla.gnome.org/show_bug.cgi?id=641918 + +2011-07-21 08:04:11 +0200 Sebastian Dröge + + * ext/schroedinger/gstschroenc.c: + schroenc: Update for GstBaseVideoEncoder::finish() signature change + +2011-07-21 08:03:51 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Update for GstBaseVideoEncoder::finish() signature change + +2011-07-21 08:03:27 +0200 Sebastian Dröge + + * ext/dirac/gstdiracenc.cc: + diracenc: Update for GstBaseVideoEncoder::finish() signature change + +2011-07-21 05:44:10 +0000 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame + +2011-07-20 08:39:51 +0000 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass + +2011-07-20 09:25:28 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Delay sending of serialized sink events until finish_frame() + +2011-07-20 09:09:25 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder + +2011-07-20 19:16:05 +0200 Edward Hervey + + * gst/mpegtsdemux/pesparse.c: + * gst/mpegtsdemux/pesparse.h: + pesparse: Fix stuffing byte handling + We in fact get the size of the header (including stuffing bytes), therefore + use that instead of trying to skip 0xff bytes ourselves since some media + streams do start with 0xff (like mpeg audio's initial 0xfff). + +2011-07-18 14:53:31 -0400 Nicolas Dufresne + + * ext/assrender/gstassrender.c: + * ext/lv2/gstlv2.c: + * ext/modplug/gstmodplug.cc: + * ext/sndfile/gstsfsrc.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * ext/zbar/gstzbar.c: + Fix compilation for unused but not set + https://bugzilla.gnome.org/show_bug.cgi?id=654572 + +2011-07-20 08:57:47 +0200 Alessandro Decina + + * gst/mpegtsdemux/pesparse.c: + mpegtsdemux: fix compiler warnings + +2011-07-19 12:50:43 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: Use a temporary GstVideoState until the subclass accepted the caps + Also store the caps in the GstVideoState and assume a PAR of 1/1 instead + of 0/1 if no PAR is specified in the caps. + +2011-07-19 09:36:53 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/tsdemux.c: + mpegtsbase/tsdemux: Add more comments and removal unused variable + +2011-07-19 09:36:10 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Avoid double removal of streams + This can happen if the PCR pid is the same as a audio/video PID. + +2011-07-19 09:34:37 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsbase: Add a GList of streams to the program + Allows faster iteration of all program streams. + We still keep the Array to allow fast retrieval of stream by PID. + +2011-07-19 08:45:51 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsbase: Use a bit array instead of an array of gboolean + Makes know_psi and is_pes 32 times smaller + +2011-07-19 08:37:24 +0200 Sebastian Dröge + + * gst/pcapparse/gstpcapparse.c: + pcapparse: Fix format string compiler warning + +2011-07-18 14:14:31 +0300 Sreerenj Balachandran + + * ext/directfb/dfbvideosink.c: + dfbvideosink: fix harmless typo in variable initialization + https://bugzilla.gnome.org/show_bug.cgi?id=654840 + +2011-07-12 19:04:27 +0200 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + h264parse: remove a check made useless by the last commit + +2011-07-12 19:01:47 +0200 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + h264parse: assume byte-stream if stream-format and codec_data are missing from input caps + +2011-07-06 23:24:27 +0200 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + h264parse: ignore codec_data if stream-format=byte-stream + Some encoders set codec_data even when outputting byte-stream. Before this patch + h264parse would incorrectly detect such streams as AVC. + +2011-07-18 09:12:16 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Use standalone PES parser + +2011-07-17 14:17:10 +0200 Edward Hervey + + * gst/mpegtsdemux/Makefile.am: + * gst/mpegtsdemux/pesparse.c: + * gst/mpegtsdemux/pesparse.h: + mpegtsdemux: Add standalone PES parser + +2011-07-17 09:49:06 +0200 Edward Hervey + + * gst/mpegtsdemux/gstmpegdefs.h: + mpegdefs: clarify some stream ids + +2011-07-16 13:51:44 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: whoops, tsdemux isn't ready yet for primary rank :) + +2011-07-16 13:47:45 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + mpegtsbase/tsdemux: Cleanups and comments + +2011-07-16 13:44:00 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Fix newsegment creation for push mode + And all relevent comments to what it should be doing, refactor everything + a bit. Still not perfect ... but better. + Fixes #654657 + +2011-07-15 12:08:40 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + mpegtsbase: Store incoming newsegments + +2011-07-15 20:57:47 +0100 Tim-Philipp Müller + + * gst/id3tag/gstid3mux.c: + * gst/id3tag/gsttagmux.h: + * gst/id3tag/id3tag.c: + * gst/id3tag/id3tag.h: + tagmux: const-ify GstTagList argument of render vfuncs + +2011-07-15 20:39:20 +0100 Tim-Philipp Müller + + * gst/id3tag/gsttagmux.c: + * gst/id3tag/gsttagmux.h: + * gst/id3tag/id3tag.c: + tagmux: fix up private base class header so it can be made public + Move private bits into a private struct, add some padding. + https://bugzilla.gnome.org/show_bug.cgi?id=555437 + +2011-07-15 16:10:57 +0100 Tim-Philipp Müller + + * configure.ac: + We need core/base from git + Update requirements after out-of-order 0.10.35 release + +2011-07-13 17:15:36 +0300 Raluca Elena Podiuc + + * tests/check/elements/camerabin2.c: + tests: camerabin2: fix name of 'image-done' bus message + Use the correct bus message for camerabin2 image done and removes + check that is no longer needed for these tests. + +2011-07-15 10:04:53 +0200 Mark Nauwelaerts + + * gst/pcapparse/gstpcapparse.c: + pcapparse: rename offset property to ts-offset + ... so as to promote consistency with some other elements in the wild. + +2011-07-14 19:30:45 +0100 Tim-Philipp Müller + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gstvdph264dec.c: + vdpau: fix some variable-set-but-unused compiler warnings + +2011-07-15 00:03:10 +0200 Alessandro Decina + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: actually set seen_pat=TRUE when we see a PAT + +2011-06-26 20:32:53 +0200 Alessandro Decina + + * ext/neon/gstneonhttpsrc.c: + neonhttpsrc: implement URI query + +2011-07-14 22:08:56 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + mpegtsbase: Split up whether we saw a PAT and its offset + Fixes the issue with streams that don't set an offset on their buffers, + like those coming from hlsdemux. + Fixes #653481 + +2011-07-14 17:06:38 +0200 Mark Nauwelaerts + + * gst/pcapparse/gstpcapparse.c: + pcapparse: properly apply ts offset + +2011-07-14 16:50:29 +0200 Mark Nauwelaerts + + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/gstpcapparse.h: + pcapparse: optionally output relative timestamps, possibly shifted by offset + That is, output timestamps can then either be the absolute capture time, + or the relative capture time (w.r.t. to first output buffer), or the relative + capture time incremented by some offset. + +2011-07-14 16:40:14 +0200 Mark Nauwelaerts + + * gst/pcapparse/gstpcapparse.c: + pcapparse: also support extracting tcp data + +2011-07-14 14:37:14 +0100 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + * tests/check/pipelines/.gitignore: + tests: add some more unit test binaries to .gitignore + +2011-07-13 13:44:41 -0400 Olivier Crête + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + docs: Revert wrongly committed changes to .args/.hierarchy + +2011-07-13 13:42:09 -0400 Olivier Crête + + * gst/mpegvideoparse/mpegpacketiser.c: + mpegvideoparse: Restore some unused variables as comments + +2011-07-13 13:39:46 -0400 Olivier Crête + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtsdemux: Restore erroneously removed data++ + Also, put back some unused code in comment and replace // comments by /* */ + +2011-07-13 13:38:31 -0400 Olivier Crête + + * gst/mpegdemux/mpegtspacketizer.c: + mpegdemux: Restore erroneously removed data++ + Also, put back some unused code in comment and replace // comments by /* */ + +2011-07-13 10:42:36 +0200 Sebastian Dröge + + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + schroedinger: Fix compilation and set-but-not-used compiler warnings + +2011-07-13 10:33:58 +0200 Sebastian Dröge + + * ext/dirac/gstdiracenc.cc: + diracenc: Fix compilation by including the new gstbasevideoutils.h header and fixing some set but not used compiler warnings + +2011-07-12 18:22:35 -0400 Olivier Crête + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * tests/examples/camerabin/gst-camera-perf.c: + examples/camerabin: Fix set-but-unused warnings + +2011-07-12 18:20:23 -0400 Olivier Crête + + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + jp2k: Fix set-but-unused warnings + +2011-07-12 18:18:30 -0400 Olivier Crête + + * ext/resindvd/gstpesfilter.c: + * ext/resindvd/rsnstreamselector.c: + resindvd: Fix set-but-unused warnings + +2011-07-12 18:16:54 -0400 Olivier Crête + + * ext/cog/cogvirtframe.c: + cog: Fix set-but-unused warnings + +2011-07-12 18:13:56 -0400 Olivier Crête + + * sys/dvb/camresourcemanager.c: + * sys/dvb/camsession.c: + * sys/dvb/camtransport.c: + dvb: Fix set-but-unused warnings + +2011-07-12 18:10:42 -0400 Olivier Crête + + * gst/videomeasure/gstvideomeasure_ssim.c: + videomeasure: Fix set-but-unused warnings + +2011-07-12 18:09:26 -0400 Olivier Crête + + * gst/tta/gstttadec.c: + tta: Fix set-but-unused warnings + +2011-07-12 18:08:21 -0400 Olivier Crête + + * gst/sdi/gstsdidemux.c: + * gst/sdi/gstsdimux.c: + sdi: Fix set-but-unused warnings + +2011-07-12 18:05:25 -0400 Olivier Crête + + * ext/vp8/gstvp8enc.c: + vp8: Fix set-but-unused warnings + +2011-07-12 18:03:53 -0400 Olivier Crête + + * gst/rtpvp8/gstrtpvp8pay.c: + rtpvp8: Reject unknown bitstream versions + +2011-07-12 17:59:56 -0400 Olivier Crête + + * gst/videoparsers/h263parse.c: + videoparsers: Fix set-but-unused warnings + +2011-07-12 17:57:45 -0400 Olivier Crête + + * gst/pcapparse/gstpcapparse.c: + pcapparse: Fix set-but-unused warnings + +2011-07-12 17:56:25 -0400 Olivier Crête + + * gst/mpegvideoparse/mpegpacketiser.c: + mpegvideoparse: Fix set-but-unused warnings + +2011-07-12 17:53:33 -0400 Olivier Crête + + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/tsdemux.c: + mpegdemux: Fix unused-but-set warnings + +2011-07-12 17:50:27 -0400 Olivier Crête + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsdemux: Fix unused-but-set warnings + +2011-07-12 01:18:16 +0530 Sameer Naik + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: fix segfault if gst_collect_pads_pop () returns no buffer + In mpegtsmux_choose_best_stream () call if the gst_collect_pads_pop () call + returns no buffer (NULL), the plugin SegFaults in the gst_buffer_unref call. + To fix this we check if a valid buffer is returned before calling + gst_buffer_unref (). + Fixes bug #654416. + +2011-07-11 12:59:07 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: First inform subclass about resetting before resetting/freeing all internal state + The subclass might want to access the old state. + +2011-07-11 12:36:42 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Track present position on discont before resetting it + +2011-07-11 11:52:33 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Also protect the list of pending frames from concurrent access when pushing all pendings events + +2011-07-11 11:28:40 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideocodec: Protect access to the list of pending frames with the object lock + This is required if ::finish_frame() and all buffer output happens + on a different thread than the sinkpad streaming thread. + +2011-07-11 09:35:25 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Set the correct lists to NULL after freeing + +2011-07-11 08:54:53 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Work with a copy of the GstVideoState in setcaps until the caps are accepted + Also fix a refcount problem with the codec_data. + +2011-07-09 11:40:17 +0200 Sebastian Dröge + + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: Move the utils from the codec header to its own header + +2011-07-09 11:31:02 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Use destroy notify to free the coder hook + +2011-07-09 11:09:12 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Use GSlice for allocating GstVideoFrame and don't duplicate code in the decoder base class + +2011-06-28 11:47:25 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: Don't reorder serialized src events + And allow to drop EOS by the subclass if ::finish returns + DROPPED. This requires that the subclass sends EOS manually later. + Fixes bug #653544. + +2011-06-27 09:41:40 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Add the caps to the GstVideoState and clean up caps/codec_data properly + Having access to the caps in ::set_format can be useful if + non-standard caps fields like the h264 alignment must be accessed. + +2011-07-09 10:57:52 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Add destroy notify for the coder_hook to prevent memory leaks + Fixes bug #654293. + +2011-07-08 11:52:17 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Properly return seeking errors if the requested position can't be found + +2011-07-07 16:00:44 -0700 Stefan Kost + + * gst/inter/.gitignore: + inter: add ignore file for intermediate files + +2011-07-07 15:59:05 -0700 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/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-decklink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-flite.xml: + * docs/plugins/inspect/plugin-inter.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + docs: add camerabin2 to the docs and update the doc files + +2011-07-07 15:55:59 -0700 Stefan Kost + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstplugin.c: + camerabin2: don't mess with camerabin (1) namespace + Use an extra '2' to stay out of the old namespace. + +2011-07-07 11:11:42 -0700 Stefan Kost + + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: keep section file sorted + +2011-07-07 10:52:50 -0700 Stefan Kost + + * gst/scaletempo/gstscaletempo.c: + scaletempo: improve the docs + Fix the syntax, add more explanation and xref the properties. + +2011-06-05 00:54:19 -0700 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/opus/Makefile.am: + * ext/opus/gstopus.c: + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + * ext/opus/gstopusenc.c: + * ext/opus/gstopusenc.h: + opus: duplicate from CELT + Copy the celt plugin and convert it to Opus. Mostly works. + +2011-07-06 15:56:32 -0700 David Schleef + + * sys/decklink/gstdecklink.cpp: + decklink: HD modes are square pixels + +2011-07-04 16:18:18 -0700 David Schleef + + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/gstdiracparse.h: + diracparse: make diracparse work correctly + +2011-07-03 18:32:37 -0700 David Schleef + + * sys/decklink/gstdecklinksrc.cpp: + decklink: properly set up analog input + +2011-06-28 23:47:18 -0700 David Schleef + + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksrc.cpp: + decklink: Add more modes + +2011-06-03 19:41:33 -0700 David Schleef + + * configure.ac: + * gst/inter/Makefile.am: + * gst/inter/gstinter.c: + * gst/inter/gstinteraudiosink.c: + * gst/inter/gstinteraudiosink.h: + * gst/inter/gstinteraudiosrc.c: + * gst/inter/gstinteraudiosrc.h: + * gst/inter/gstintersurface.c: + * gst/inter/gstintersurface.h: + * gst/inter/gstintertest.c: + * gst/inter/gstintervideosink.c: + * gst/inter/gstintervideosink.h: + * gst/inter/gstintervideosrc.c: + * gst/inter/gstintervideosrc.h: + inter: new intermediate surface plugin + This set of elements allows easily rendering audio and video to + an intermediate surface that is then used as a source in a different + pipeline. + +2011-06-18 15:51:54 -0700 David Schleef + + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + colorspace: Add JPEG YCbCr matrix + +2011-06-18 15:56:49 -0700 David Schleef + + * ext/vp8/gstvp8enc.c: + vp8enc: update for new libvpx api + +2011-06-26 19:29:24 -0700 David Schleef + + * gst/y4m/gsty4mdec.c: + y4mdec: Fix buffer duration + +2011-06-26 15:15:54 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + vp8enc: generate a timestamp for alt-ref frames. + It will fix handling of altref/invisible frames since matroska-mux + drop any fram with no timestamp. + see also: + http://www.webmproject.org/code/specs/container/ + The encoder will currently set the AR's timestamp as close as possible + to the previous frame while attempting to provide a timestamp that is + strictly increasing. In cases where the time base given to the encoder + at configure time is not granular enough to allow for this the AR + will share the same timestamp as D, but should be + treated as having no duration. + Fixes bug #652951 + Signed-off-by: Alexey Fisher + +2011-06-25 23:55:28 +0300 Raimo Järvi + + * configure.ac: + wininet: Fix configure check by including windows.h + Fixes bug #653161. + +2011-06-07 13:55:38 +0300 Raimo Järvi + + * configure.ac: + * sys/Makefile.am: + * sys/d3dvideosink/Makefile.am: + d3dvideosink: Fix configure check and makefiles + Fixes bug #652035. + +2011-06-25 15:12:45 -0700 David Schleef + + * gst/tta/gstttadec.c: + * gst/tta/gstttaparse.c: + tta: decrease rank to NONE + Appears to be utterly incapable of parsing and decoding TTA streams. + Hasn't been updated to do TTA2. If you want this element to work, + fix the bloody thing. The gst-ffmpeg decoder works fine. + Also fixed an obvious endianness issue along the way. + Fixes: #652924 + +2011-06-18 17:47:36 +0200 Alexey Fisher + + * ext/vp8/gstvp8dec.c: + vp8dec: add check if we have legal aspect-ratio before reset it. + the commit f9b552f0494e (vp8dec: set par to 1/1) + will fix situation where no aspect-ratio is set, but it brake + stream with available aspect-ratio. This patch fix it. + Fixes: #652902. + Signed-off-by: Alexey Fisher + +2011-06-23 20:11:55 +0100 Tim-Philipp Müller + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: don't use GLib 2.28 API + Don't use GLib 2.28 API, we still only require >= 2.24. + +2011-06-23 11:28:53 -0700 David Schleef + + * common: + Automatic update of common submodule + From 69b981f to 605cd9a + +2011-06-22 22:25:18 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Set tagsetters to merge replace mode + The default for tagsetters is to use merge keep mode, so tags + would never be replaced and all captures would have the same tags. + This commit watches all elements added into encodebin and sets + all tagsetters to merge replace mode + +2011-06-22 18:58:29 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * tests/check/elements/camerabin2.c: + camerabin2: Use a single location for both modes + Implement the location property just like it works in camerabin, the + same location is used for both images and videos + +2011-06-22 16:27:00 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Send serialized custom events for filename changes in image sink + Using serialized custom events for switching image capture saving + location makes camerabin2 save each capture correctly to the location + that was set during the moment start-capture was called, and not + the moment the filesink was writing to disk. + This prevents captures to be overwriten by racyness among start-capture + and setting location for images. + +2011-06-22 15:56:26 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: No need to change state of the whole image branch + We only need to change the state of the filesink to switch its + saving location. This might still cause some problems of dropping + captured buffers, but it is better than changing the state of + the whole branch. + +2011-06-22 15:37:44 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Use names for image and video encodebin + Naming encodebins as image-encodebin and video-encodebin to make + it easier for debugging camerabin2. + +2011-06-17 17:26:37 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Remove unused variable + +2011-06-17 14:32:35 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Adds new test to check image location correctness + This new test checks that images are saved with the filename setting + on location on the moment of the start-capture + +2011-06-15 08:20:31 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Minor debug message fix + +2011-05-13 11:25:18 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: Adds performance measurement to gst-camerabin2-test + Adds performance (timing) measure feature to gst-camerabin2-test, it allows + users to specify some target values for commonly measured times and the + application will print out a table of values at the end of its execution + with the measured times and averages of them. + +2011-06-22 10:13:38 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + legacyh264parse: create correct avc codec-data + Fixes #653013. + +2011-06-21 12:45:31 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + legacyh264parse: fix output caps alignment for avc input + ... particularly when splitting packetized input. + Fixes #652995. + +2011-06-21 12:43:41 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: avc input must either pass-through or be split into bytestream chunks + ... since parsing code is not meant to receive avc data. + Fixes #653087. + +2011-06-21 12:41:47 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: avoid bogus frame parsing state + +2011-06-20 12:47:39 -0700 David Schleef + + * sys/decklink/DeckLinkAPI.h: + * sys/decklink/DeckLinkAPIDispatch.cpp: + decklink: update DeckLink API wrappers + +2011-06-20 00:38:05 -0700 David Schleef + + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: Add connection type + +2011-06-05 21:19:58 -0700 Rafael Diniz + + * sys/decklink/capture.cpp: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksink.h: + decklinksink: Add audio support + Signed-off-by: David Schleef + +2011-06-05 21:24:58 -0700 David Schleef + + * sys/decklink/capture.cpp: + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksink.h: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: Add various features + Better mode support, input source property, audio support. + +2011-06-05 21:24:39 -0700 David Schleef + + * sys/decklink/capture.cpp: + decklink: remove unused code + +2011-06-05 21:17:04 -0700 David Schleef + + * sys/decklink/DeckLinkAPIDispatch.cpp: + * sys/decklink/capture.cpp: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksrc.cpp: + decklink: reindent + +2011-06-17 16:12:00 -0300 Thiago Santos + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: only free the index array if it exists + Only free the array if it exists. + Contains an unrelated indentation fix, courtesy of gst-indent + +2011-06-18 01:11:05 +1000 Jan Schmidt + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + update docs generated files + +2011-06-18 01:09:51 +1000 Jan Schmidt + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-rtmp.xml: + * docs/plugins/inspect/plugin-rtmpsrc.xml: + * ext/rtmp/Makefile.am: + * ext/rtmp/gstrtmp.c: + * ext/rtmp/gstrtmpsink.c: + * ext/rtmp/gstrtmpsink.h: + * ext/rtmp/gstrtmpsrc.c: + RTMP: add rtmpsink element for output to an RTMP server + +2011-06-16 17:17:07 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/pipelines/colorspace.c: + tests: add colorspace unit test + Compares colorspace result with ffmpegcolorspace output using SSIM. + Also probes for possible crashes for odd width and height image by applying + all possible colorspace transformations. + +2011-06-17 12:10:06 +0200 Mark Nauwelaerts + + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstcompare.c: + * gst/debugutils/gstcompare.h: + debugutils: add compare element + +2011-06-15 18:20:48 +0200 Mark Nauwelaerts + + * gst/colorspace/colorspace.c: + colorspace: fix odd width and height handling in some fastpath cases + +2011-06-16 19:06:03 -0400 Olivier Crête + + * sys/shm/shmpipe.h: + shm: Improve documentation of internal shmpipe + +2011-06-13 11:12:36 +0100 Tim-Philipp Müller + + * sys/wininet/gstwininetsrc.c: + wininetsrc: don't use G_CONST_RETURN + It's going to be deprecated really soon. + +2011-06-12 12:55:40 +0200 Edward Hervey + + * gst/videoparsers/gstmpegvideoparse.c: + videoparsers: Speed up the start code search algorithm + Based on 96a7f9c8b1195129f0c2157cbbcbaa6cab45056e + Makes it 3-4 times faster + +2011-06-12 12:40:15 +0200 Edward Hervey + + * gst/videoparsers/gstmpegvideoparse.c: + videoparsers: Fix sink pad template + no wonder it was never picked up ... + +2011-06-12 11:27:30 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Don't free unexistent PAT + And cleanup find_timestamps a bit + +2011-05-18 19:33:45 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/tsdemux.c: + tsdemux: More fixes to handle non-188 byte packets + +2011-05-15 14:04:45 +0200 Edward Hervey + + * gst/mpegtsdemux/payload_parsers.c: + * gst/mpegtsdemux/payload_parsers.h: + * gst/mpegtsdemux/tsdemux.c: + mpegts: Stop scanning for keyframes as early as possible + +2011-03-31 14:36:02 +0200 Janne Grunau + + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: always try to seek for to a keyframe + keyframe is expected to lie in the the next ~2500 ms + +2011-03-23 18:50:25 +0100 Janne Grunau + + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: fix timestamps in newsegement event after seeking + +2011-03-30 11:26:18 +0200 Janne Grunau + + * gst/mpegtsdemux/payload_parsers.c: + * gst/mpegtsdemux/payload_parsers.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: payload parsing for H.264 + +2011-03-28 10:20:43 +0200 Janne Grunau + + * gst/mpegtsdemux/Makefile.am: + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/payload_parsers.c: + * gst/mpegtsdemux/payload_parsers.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: implement key_unit seeking for MPEG2 video + +2011-03-22 16:49:13 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: accurate seeking + * pes header parsing for pts is ugly, refactor + * timestamps/newsegment after seeking is still off + +2011-02-22 12:33:56 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/mpegtspacketizer.h: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + mpegtsdemux: push based seeking based on PCR + buffer timestamps are converted to GstClockTime to cover pcr/pts wraps. + multiple pcr/pts wraps are handled with an index which ensures at most + a single pcr wraparound between two entries. + the last seen pcr is recorded to have a nearby index point for short seeks + resuming playback might be delayed if the postion is not a keyframe + TODO: replace manual packet scanning and parsing in the initial duration estimation + +2011-02-23 15:21:22 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/mpegtspacketizer.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: create function for pcr parsing + +2011-04-11 14:53:28 +0200 Janne Grunau + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtsdemux: adaptation field length == 0 is valid + it can be used to insert a single stuffing byte + do not parse the following payload as adaptation field + +2011-06-07 14:14:36 +0100 Tim-Philipp Müller + + * Makefile.am: + Add gst/invtelecine to CRUFT_DIRS + +2011-06-07 13:44:08 +0100 Tim-Philipp Müller + + * configure.ac: + configure: require GLib >= 2.24 + Make implicit requirement explicit. + +2011-06-06 15:23:22 +0300 Stefan Kost + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/baseaudiovisualizer.c: + tests: add a test for baseaudiovisualizer + +2011-06-06 15:20:30 +0300 Stefan Kost + + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + baseaudiovisualizer: fix last block condition + Also push out the last frame if we have exact amount of samples. Fix the adapter + flushing to not cause endless loops. Drop a redundant avail() check. + +2011-06-04 20:41:49 +0300 Stefan Kost + + * gst/audiovisualizers/README: + audiovisualizers: add a README with comments and plans + +2011-06-04 20:34:20 +0300 Stefan Kost + + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-camerabin2.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-decklink.xml: + * docs/plugins/inspect/plugin-divxdec.xml: + * docs/plugins/inspect/plugin-divxenc.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faceoverlay.xml: + * docs/plugins/inspect/plugin-fieldanalysis.xml: + * docs/plugins/inspect/plugin-fragmented.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-linsys.xml: + * docs/plugins/inspect/plugin-lv2.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-patchdetect.xml: + * docs/plugins/inspect/plugin-sdi.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-video3d.xml: + * docs/plugins/inspect/plugin-videofiltersbad.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + * docs/plugins/inspect/plugin-xvid.xml: + docs: update inspect files + +2011-06-04 16:12:40 +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/inspect/plugin-audiovisualizers.xml: + docs: add new audiovisualizers to the plugin docs + +2011-06-04 15:56:15 +0300 Stefan Kost + + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstwavescope.c: + audiovisualizers: remove some not needed boilerplate + +2011-06-04 15:52:44 +0300 Stefan Kost + + * gst/audiovisualizers/Makefile.am: + * gst/audiovisualizers/gstspacescope.c: + * gst/audiovisualizers/gstspacescope.h: + * gst/audiovisualizers/plugin.c: + audiovisualizers: add a spacescope element + Add another element that maps left/right channel to x,y coordinates. + +2011-06-04 15:38:46 +0300 Stefan Kost + + * gst/audiovisualizers/gstsynaescope.c: + synaescope: tweak the algorithm + Speed-up the calculation a bit. Keep a few values as doubles. Tune the scaling + to get nices colors. + +2011-06-04 14:37:04 +0300 Stefan Kost + + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + * gst/audiovisualizers/gstspectrascope.c: + * gst/audiovisualizers/gstsynaescope.c: + audiovisualizers: doc-blob and comment updates + +2011-06-04 14:33:29 +0300 Stefan Kost + + * gst/audiovisualizers/Makefile.am: + * gst/audiovisualizers/gstbaseaudiovisualizer.c: + * gst/audiovisualizers/gstbaseaudiovisualizer.h: + * gst/audiovisualizers/gstbasescope.c: + * gst/audiovisualizers/gstbasescope.h: + * gst/audiovisualizers/gstspectrascope.c: + * gst/audiovisualizers/gstspectrascope.h: + * gst/audiovisualizers/gstsynaescope.c: + * gst/audiovisualizers/gstsynaescope.h: + * gst/audiovisualizers/gstwavescope.c: + * gst/audiovisualizers/gstwavescope.h: + audiovisualizers: rename baseclass from basescope to baseaudiovisualizer + +2011-06-04 14:25:57 +0300 Stefan Kost + + * configure.ac: + * gst/audiovisualizers/Makefile.am: + * gst/audiovisualizers/gstbasescope.c: + * gst/audiovisualizers/gstbasescope.h: + * gst/audiovisualizers/gstspectrascope.c: + * gst/audiovisualizers/gstspectrascope.h: + * gst/audiovisualizers/gstsynaescope.c: + * gst/audiovisualizers/gstsynaescope.h: + * gst/audiovisualizers/gstwavescope.c: + * gst/audiovisualizers/gstwavescope.h: + * gst/audiovisualizers/plugin.c: + * gst/scopes/Makefile.am: + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + * gst/scopes/gstspectrascope.c: + * gst/scopes/gstspectrascope.h: + * gst/scopes/gstsynaescope.c: + * gst/scopes/gstsynaescope.h: + * gst/scopes/gstwavescope.c: + * gst/scopes/gstwavescope.h: + * gst/scopes/plugin.c: + audiovisualizers: rename scopes plugin to audiovisualizers + +2011-05-31 14:42:55 +0300 Stefan Kost + + * gst/scopes/gstspectrascope.c: + * gst/scopes/gstsynaescope.c: + scopes: fix elements descriptions + +2011-05-30 23:45:17 +0300 Stefan Kost + + * gst/scopes/gstspectrascope.c: + spectrascope: use add_pixel for non-white pixels + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-30 23:36:42 +0300 Stefan Kost + + * gst/scopes/Makefile.am: + * gst/scopes/gstsynaescope.c: + * gst/scopes/gstsynaescope.h: + * gst/scopes/plugin.c: + scopes: add a new element similar to synaesthesia + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-28 23:22:59 +0300 Stefan Kost + + * gst/scopes/gstspectrascope.c: + * gst/scopes/gstwavescope.c: + scopes: draw pixels with signle 32bit writes + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-28 14:36:51 +0300 Stefan Kost + + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + basescope: add more shading effects + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-28 14:08:05 +0300 Stefan Kost + + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + basescope: add a property to modify the ammount of shading + Add another property to specify the shading per color channel. Fix endianess + issues in the shading code. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-27 23:25:00 +0300 Stefan Kost + + * gst/scopes/Makefile.am: + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + * gst/scopes/plugin.c: + basescope: add a backbuffer and apply shading effects + Keep the last frame and apply shade and geometry effects. Expose the shading + effects as a controllable gobject property on the baseclass. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-27 23:12:00 +0300 Stefan Kost + + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + * gst/scopes/gstspectrascope.c: + basescope: allow subclasses telling how many sample they need per frame + This allows e.g. FFT based elements to require enough data. If they need more + data than what we get, we flush less from the adapter. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-27 22:53:10 +0300 Stefan Kost + + * gst/scopes/gstbasescope.c: + basescope: remove some comments + Those comments where pointing to example calls that we do in the subclass. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-27 14:43:51 +0300 Stefan Kost + + * gst/scopes/Makefile.am: + * gst/scopes/gstspectrascope.c: + * gst/scopes/gstspectrascope.h: + * gst/scopes/plugin.c: + scopes: add a simple fft based scope + Add a 2nd demo scope that uses a fft. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-05-27 11:14:19 +0300 Stefan Kost + + * configure.ac: + * gst/scopes/Makefile.am: + * gst/scopes/gstbasescope.c: + * gst/scopes/gstbasescope.h: + * gst/scopes/gstwavescope.c: + * gst/scopes/gstwavescope.h: + * gst/scopes/plugin.c: + scopes: first version of a scopes plugin using a new baseclass + Add a new baseclass for writing visualisation plugins. Provide a simple wave + oscilloscope as a first subclass. + https://bugzilla.gnome.org/show_bug.cgi?id=651536 + +2011-04-29 13:33:43 +0200 Edward Hervey + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Avoid double scanning of pictures + The incoming data has already been scanned in mpeg_packetizer_add_buf. + We can therefore stop scanning for picture data as soon as we've parsed + the header. Makes mpegvideoparse 2 times faster. + https://bugzilla.gnome.org/show_bug.cgi?id=648933 + +2011-06-05 13:56:08 -0700 Levente Farkas + + * sys/directdraw/gstdirectdrawplugin.c: + directdrawsink: lower rank to secondary + Signed-off-by: David Schleef + +2011-06-05 13:38:46 -0700 Levente Farkas + + * sys/d3dvideosink/directx/dx.h: + d3dvideosink: compile fix + Signed-off-by: David Schleef + +2011-06-05 10:34:28 -0700 David Schleef + + * configure.ac: + * gst/invtelecine/Makefile.am: + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Remove in favor of fieldanalysis + +2011-06-04 18:54:16 -0700 David Schleef + + * sys/directdraw/gstdirectdrawsink.c: + directdrawsink: Handle pixel-aspect-ratio + Fixes: #651779. From Raimo Järvi. + +2011-06-04 18:43:45 -0700 David Schleef + + * configure.ac: + * sys/Makefile.am: + * sys/d3dvideosink/Makefile.am: + * sys/d3dvideosink/d3dvideosink.c: + * sys/d3dvideosink/d3dvideosink.h: + * sys/d3dvideosink/directx/d3d.c: + * sys/d3dvideosink/directx/d3d.h: + * sys/d3dvideosink/directx/directx.h: + * sys/d3dvideosink/directx/directx10/dx10.c: + * sys/d3dvideosink/directx/directx10/dx10.h: + * sys/d3dvideosink/directx/directx10/dx10_d3d.c: + * sys/d3dvideosink/directx/directx10/dx10_d3d.h: + * sys/d3dvideosink/directx/directx11/dx11.c: + * sys/d3dvideosink/directx/directx11/dx11.h: + * sys/d3dvideosink/directx/directx11/dx11_d3d.c: + * sys/d3dvideosink/directx/directx11/dx11_d3d.h: + * sys/d3dvideosink/directx/directx9/dx9.c: + * sys/d3dvideosink/directx/directx9/dx9.h: + * sys/d3dvideosink/directx/directx9/dx9_d3d.c: + * sys/d3dvideosink/directx/directx9/dx9_d3d.h: + * sys/d3dvideosink/directx/dx.c: + * sys/d3dvideosink/directx/dx.h: + d3dvideosink: Add plugin + Fixes #651782. Patch from various authors, by way of ossbuild. + +2011-06-04 14:04:44 -0700 David Schleef + + * gst/liveadder/liveadder.c: + * gst/mxf/mxfmux.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + Work around changes in g_atomic API + See #651514 for details. + +2011-06-04 13:51:20 -0700 David Schleef + + * sys/vdpau/h264/gsth264frame.c: + vdpau: remove old glib compatibility code + +2011-06-03 19:36:59 -0700 David Schleef + + * ext/vp8/gstvp8dec.c: + vp8dec: set par to 1/1 + +2011-06-03 19:36:12 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Better handling of invalid par + +2011-05-30 17:03:14 -0700 David Schleef + + * gst/videofilters/gstvideofilter2.c: + videofilter2: Fix copyright + +2011-06-04 20:35:03 +0100 Tim-Philipp Müller + + * gst/dvdspu/gstspu-pgs.c: + * gst/invtelecine/gstinvtelecine.c: + * gst/jpegformat/gstjpegparse.c: + * gst/librfb/rfbdecoder.c: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstpesfilter.c: + * gst/mpegdemux/mpegtspacketizer.c: + gst: some more unused-but-set-variable warning fixes + +2011-05-30 17:54:26 +0530 Debarshi Ray + + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + * gst/nsf/gstnsf.c: + * gst/patchdetect/gstpatchdetect.c: + * gst/sdi/gstsdidemux.c: + * gst/sdi/gstsdimux.c: + * gst/videofilters/gstscenechange.c: + * gst/videofilters/gstvideofilter2.c: + * gst/videofilters/gstzebrastripe.c: + * gst/videoparsers/gstdiracparse.c: + * gst/y4m/gsty4mdec.c: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksrc.cpp: + * sys/fbdev/gstfbdevsink.c: + * sys/linsys/gstlinsyssdisink.c: + * sys/linsys/gstlinsyssdisrc.c: + Remove unused but set variables + This is needed to satisfy the new -Wunused-but-set-variable added in + GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html + +2011-05-09 14:35:42 -0300 Luciana Fujii Pontello + + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + camerabin2: Adding a filter to wrappercamerabinsrc + Camerabin2 allows setting a filter for image, video or viewfinder, but + not one filter for all three at the same time. I added a filter to + wrappercamerabinsrc to allow setting a global filter when using this + source. + https://bugzilla.gnome.org/show_bug.cgi?id=649822 + +2011-05-26 00:09:28 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: remove unused var + +2011-05-25 23:29:25 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * tests/check/elements/camerabin2.c: + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: Use full names in properties + Improve API by using source instead of src in properties + +2011-05-23 13:36:27 +0300 Teemu Katajisto + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: do not unref pad template + +2011-05-29 13:16:21 +0200 Alessandro Decina + + * configure.ac: + configure.ac: fix avc check so that it tries to link to AVCVideoServices + Avoids avc plugin from being built when AVCVideoServices is not installed + +2011-05-26 12:23:01 +0300 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: Add --image-formatter command-line option + Add command-line option to gst-camerabin-test for configuring camerabin + metadata formatter element. + +2011-05-31 13:08:00 +0200 Sebastian Dröge + + * tests/check/elements/faac.c: + faac: Fix unit test after latest faac changes + +2011-05-31 12:55:45 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Fix scanning on small files + We were previously: + * Stopping early in the initial PCR scan + * Giving a negative offset for the second PCR scan + +2011-05-31 12:54:43 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Don't call program_stopped with a NULL program + +2011-05-19 12:55:30 +0200 Edward Hervey + + * gst/h264parse/gsth264parse.c: + legacyh264parse: Delay pushing buffers until we have width/height + +2011-05-27 11:13:08 +0300 Stefan Kost + + * ext/zbar/gstzbar.c: + zbar: remove template stamp comment + +2011-05-30 23:43:39 -0700 David Schleef + + * gst/bayer/Makefile.am: + * gst/bayer/gstbayer2rgb.c: + * gst/bayer/gstbayerorc-dist.c: + * gst/bayer/gstbayerorc-dist.h: + * gst/bayer/gstbayerorc.orc: + bayer2rgb: Convert to Orc + Seriously faster. Algorithm is nearly the same as bilinear, which + given the speed of this code, should be considered the baseline of + quality. Speed appears to be limited by memory bandwidth, so I + didn't bother trying to make it any faster. + +2011-05-30 16:56:33 -0700 David Schleef + + * gst/bayer/gstbayer2rgb.c: + bayer2rgb: Rewrite signal processing. Much faster. + +2011-05-30 17:54:26 +0530 Debarshi Ray + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst/camerabin/gstcamerabin.c: + Remove unused but set variables + This is needed to satisfy the new -Wunused-but-set-variable added in + GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html + +2011-05-30 13:01:54 +0200 Edward Hervey + + * gst/dvdspu/gstdvdspu.c: + Revert "dvdspu: Fix pad templates" + This reverts commit 732828e31cbace59e6ce4f262b8339e43ed0c631. + It was in fact an issue in core + +2011-05-30 13:01:20 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Protect against program being removed + +2011-05-30 12:27:37 +0200 Sebastian Dröge + + * gst/faceoverlay/Makefile.am: + faceoverlay: Add gst-plugins-base CFLAGS and LIBS to fix compilation + +2011-05-30 12:24:31 +0200 Laura Lucas Alday + + * configure.ac: + * gst/faceoverlay/Makefile.am: + * gst/faceoverlay/gstfaceoverlay.c: + * gst/faceoverlay/gstfaceoverlay.h: + faceoverlay: Add element that displays an SVG image over a detected face + Fixes bug #642759. + +2011-05-30 08:48:29 +0200 Tom Deseyn + + * ext/directfb/dfbvideosink.c: + dfbvideosink: Also consider non-accelerated DirectFB surfaces + Fixes bug #631390. + +2010-09-02 23:31:23 +0300 Martin Storsjo + + * sys/qtwrapper/audiodecoders.c: + qtwrapper: Decode audio until all input data is consumed + The special return value is returned from our buffer callback + when all input data has been consumed. + +2011-05-03 14:14:20 +0300 Martin Storsjo + + * sys/qtwrapper/audiodecoders.c: + qtwrapper: Replace the hackish 42 magic number with a define + +2011-05-30 08:43:59 +0200 Julien MOUTTE + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowaudiodec.h: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.h: + dshowdecwrapper: Fix COM initialization + Fixes bug #625190. + +2011-05-30 08:43:40 +0200 Julien MOUTTE + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowutil.h: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + dshowdecwrapper: Fix element registration using data in the type instead of a global + +2011-05-29 18:16:49 +0200 Edward Hervey + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Fix pad templates + Our caps intersection code is a bit too touchy about what an element + returns compared to its pad templates. + +2011-05-29 13:05:31 +0200 Alessandro Decina + + * gst/videoparsers/h264parse.c: + h264parse: check for out of range pps_id one layer up + +2011-05-29 13:03:38 +0200 Alessandro Decina + + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/videoparsers/gstmpegvideoparse.c: + mpeg4videoparse: fix compiler warnings + +2011-05-29 12:54:40 +0200 Alessandro Decina + + * gst/h264parse/gsth264parse.c: + legacyh264parse: check for out of range pps_id one layer up + Fixes compiler warning comparing guint8 and MAX_PPS_COUNT which is > G_MAXUINT8 + +2011-05-27 11:05:46 +0100 Christian Fredrik Kalager Schaller + + * gst-plugins-bad.spec.in: + * gst/debugutils/Makefile.am: + Fix missing header file and update spec to work around current compiler issues + +2011-05-27 10:44:28 +0100 Tim-Philipp Müller + + * ext/faac/Makefile.am: + faac: fix CFLAGS and LIBS order in Makefile.am + +2011-05-27 10:44:42 +0200 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Set the correct, valid sample rates in the pad template caps + +2011-05-27 10:41:02 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: Make sure to also return only a subset of the pad template caps in getcaps + +2011-05-27 10:35:31 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: Set the correct, valid sample rates in the pad template caps + +2011-05-27 10:32:26 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: The encoder library currently only supports 1 or 2 channels + +2011-05-27 10:31:07 +0200 Sebastian Dröge + + * ext/voaacenc/Makefile.am: + * ext/voaacenc/gstvoaacenc.c: + voaacenc: Add profile and level to the caps + Fixes bug #650595. + +2011-05-27 10:11:32 +0200 Sebastian Dröge + + * ext/faac/Makefile.am: + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: Add the profile and level to the caps + Also negotiate the profile from the downstream peer caps + instead of using a property. + Fixes bug #650594. + +2011-05-27 09:40:38 +0200 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Use PROP_ instead of ARG_ for the property enums + +2011-05-26 09:59:35 +0200 Sebastian Dröge + + * gst/debugutils/gstdebugspy.c: + debugspy: Use G_PARAM_STATIC_STRINGS + +2011-01-14 17:42:50 +0100 Guillaume Emont + + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstdebugspy.c: + * gst/debugutils/gstdebugspy.h: + debugspy: add new element + This element allows you to get information about buffers with bus messages. It + provides the same kind of information as identity does through a notify signal + on a string property, but in a more programmer-friendly way. + +2011-05-26 09:46:58 +0200 Gabriel Strimtu + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Fix parsing of PSI table IDs + Fixes bug #635917. + +2011-05-26 09:22:31 +0200 Sebastian Dröge + + * ext/dc1394/gstdc1394.c: + dc1394src: Implement LATENCY query + Based on the LATENCY query code in v4l2src and the patch + by Tristan Matthews. Fixes bug #625520. + +2011-05-25 23:14:27 +0300 Stefan Kost + + * tests/check/Makefile.am: + tests: blacklist more sys elements from the state tests + Also wrap the list of blacklisted elements and trim some whitespace. + +2011-05-25 23:13:17 +0300 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: ensure uniqe property names + Copy and adjust the code from ladspa plugin to ensure unique gobject property + names. + +2011-05-25 20:52:09 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/h263parse.c: + * tests/check/elements/h264parse.c: + * tests/check/elements/mpeg4videoparse.c: + * tests/check/elements/mpegvideoparse.c: + tests: add unit tests for a number of video parsers + +2011-05-25 20:49:05 +0200 Mark Nauwelaerts + + * tests/check/elements/parser.c: + tests: additional offset tracking in parser test helper + +2011-05-25 20:48:38 +0200 Mark Nauwelaerts + + * tests/check/elements/parser.c: + * tests/check/elements/parser.h: + tests: additional parameterization for parser test helper + Allow context callbacks to perform custom buffer verification + and custom element setup. Also move some static tracking variables + into helper struct and expose the latter struct for use by unit test + (callbacks). + +2011-05-25 15:26:05 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: plug some more buffer leaks + +2011-05-25 13:53:55 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: compensate for skipped bytes in parsing state offsets + +2011-05-25 13:53:21 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: fix clearing adapter forming avc output frame + ... which needs to be reset upon a new frame and otherwise (only) + for avc input in passthrough mode (rather than on every chain call). + +2011-05-25 11:50:07 +0200 Mark Nauwelaerts + + * gst/videoparsers/h264parse.c: + * gst/videoparsers/h264parse.h: + h264parse: handle all valid pps_id + ... which are in range 0-255. + +2011-05-15 13:23:39 +0200 Alessandro Decina + + * gst/videoparsers/gsth264parse.c: + h264parse: allow full negotiation for packetized input + ... by defaulting to allow splitting packetized input and having + negotiation with downstream deciding whether or not this applies. + Also enable pass-through parsing mode if input and output format + (stream-format and alignment) match. + API: GstH264Parse:split-packetized (removed) + Fixes #650228. + +2011-05-24 21:50:52 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/h263parse.c: + h263parse: also extract width and height into caps + +2011-04-21 22:42:45 +0200 Víctor Manuel Jáquez Leal + + * tests/check/elements/jpegparse.c: + jpegparse: unit test for APP1/exif & comment parsing + https://bugzilla.gnome.org/show_bug.cgi?id=648478 + +2011-05-25 14:42:38 +0100 Tim-Philipp Müller + + * configure.ac: + * ext/mpeg2enc/gstmpeg2encoder.cc: + mpeg2enc: fix build with 1.9.0 release again after recent fixes for mjpegtools 2.0.0 + https://bugzilla.gnome.org/show_bug.cgi?id=650970 + +2011-05-25 15:10:19 +0200 Andreas Frisch + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: fix pointer output in stream-not-associated debug output + https://bugzilla.gnome.org/show_bug.cgi?id=651050 + +2011-05-24 15:42:44 +0200 Götz Waschk + + * ext/mpeg2enc/gstmpeg2encoder.cc: + mpeg2enc: support mjpegtools 2.0 + This adds conditional includes for the renamed headers in mjpegtools 2.0. + Fixes: #650970. + +2011-05-23 17:29:56 +0200 Sebastian Dröge + + * ext/xvid/gstxviddec.c: + xviddec: Add video/mpeg,mpegversion=4 to the caps + Fixes bug #609639. + +2011-05-20 17:06:49 +0300 Lasse Laukkanen + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * tests/check/elements/camerabin.c: + camerabin: Add image-formatter property + Add image-formatter property in order to let application configure + the formatter element for metadata. + +2011-05-23 13:54:35 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4parse.c: + mpeg4videoparse: additional debug tracing + +2011-05-23 12:06:01 +0200 Mark Nauwelaerts + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstmpegvideoparse.c: + * gst/videoparsers/gstmpegvideoparse.h: + * gst/videoparsers/mpegvideoparse.c: + * gst/videoparsers/mpegvideoparse.h: + * gst/videoparsers/plugin.c: + videoparsers: add new mpegvideoparse + +2011-05-23 12:02:00 +0200 Mark Nauwelaerts + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: rename to legacympegvideoparse + +2011-05-18 09:47:43 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: avoid stale parsing state + +2011-05-17 22:42:45 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth263parse.c: + h263parse: simplify minimum frame size handling + +2011-05-17 22:42:29 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: simplify minimum frame size handling + +2011-05-17 22:39:19 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: simplify minimum frame size handling + +2011-05-17 22:18:51 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: avoid stale parsing state + +2011-05-12 12:07:39 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/Makefile.am: + * gst/mpeg4videoparse/mpeg4parse.c: + * gst/mpeg4videoparse/mpeg4parse.h: + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + mpeg4videoparse: port to baseparse + +2011-05-23 15:03:18 +0200 Mark Nauwelaerts + + * configure.ac: + configure.ac: bump -core/-base requirement to 0.10.34.1 + ... since latest baseparse API is required for videoparsers. + +2011-05-23 14:41:27 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: gracefully handle truncated input NAL units + Rather than assert'ing in such case, emit warning if the length of a NAL unit + is less than expected 2 and discard it. + Based on patch by Benjamin M. Schwartz + Fixes #650416. + +2011-05-23 16:47:31 +0200 Vincent Génieux + + * sys/dvb/gstdvbsrc.c: + * sys/dvb/gstdvbsrc.h: + dvbsrc: Add timeout property and use GstPoll instead of poll + This allows to use much higher timeout values because GstPoll + is interruptible and keeps the number of wakeups during signal + loss lower. + Fixes bug #608171. + +2011-05-23 14:58:08 +0100 Christian Fredrik Kalager Schaller + + * ext/openal/Makefile.am: + * gst-plugins-bad.spec.in: + fix build of openal plugin from disted tarball + +2011-05-23 15:32:09 +0200 Sebastian Dröge + + * ext/teletextdec/gstteletextdec.c: + * ext/teletextdec/gstteletextdec.h: + * ext/teletextdec/teletext.c: + teletextdec: Minor cleanup and indention fixes + +2011-05-23 15:20:45 +0200 Sebastian Dröge + + * ext/teletextdec/gstteletextdec.c: + teletextdec: Don't use GST_FLOW_IS_FATAL() + +2011-05-23 15:14:04 +0200 Sebastian Dröge + + * ext/teletextdec/gstteletextdec.c: + teletextdec: Fix buffer data leak + +2010-09-10 14:34:42 +0200 Andoni Morales Alastruey + + * ext/teletextdec/gstteletextdec.c: + * ext/teletextdec/gstteletextdec.h: + teletextdec: Add support for pango + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2010-06-10 12:44:27 +0200 Andoni Morales Alastruey + + * ext/teletextdec/gstteletextdec.c: + * ext/teletextdec/gstteletextdec.h: + teletextdec: add a new method to convert a page in a list of strings + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2010-09-09 16:41:32 +0200 Andoni Morales Alastruey + + * ext/teletextdec/gstteletextdec.c: + teletextdec: add some data in the preroll buffer + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2010-06-10 13:55:30 +0200 Andoni Morales Alastruey + + * ext/teletextdec/gstteletextdec.c: + teletextdec: fix deadlock on a stream error + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2010-06-10 12:42:42 +0200 Andoni Morales Alastruey + + * ext/teletextdec/gstteletextdec.c: + teletextdec: don't try to push an event on a pad that returned an error + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2010-09-13 11:59:18 +0200 Andoni Morales Alastruey + + * configure.ac: + * ext/Makefile.am: + * ext/teletextdec/Makefile.am: + * ext/teletextdec/gstteletextdec.c: + * ext/teletextdec/gstteletextdec.h: + * ext/teletextdec/teletext.c: + teletextdec: New teletext decoder plugin based in zvbi + https://bugzilla.gnome.org/show_bug.cgi?id=619739 + +2011-05-23 14:14:09 +0200 Sebastian Dröge + + * ext/openal/Makefile.am: + * ext/openal/gstopenal.c: + * ext/openal/gstopenalsrc.c: + * ext/openal/gstopenalsrc.h: + openal: Add new openalsrc element + Based on patches by Victor Lin + Fixes bug #550230. + +2011-05-23 13:41:36 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/openal/Makefile.am: + * ext/openal/gstopenal.c: + * ext/openal/gstopenalsink.c: + * ext/openal/gstopenalsink.h: + openal: Add new OpenAL sink element + Based on a patch by Chris Robinson + Fixes bug #615615. + +2011-05-20 15:25:08 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Do not segfault on null locations + Prevent capture from starting when saving location is set to + NULL + +2011-05-20 13:04:54 +0300 Stefan Kost + + * sys/dvb/camapplicationinfo.c: + camapplicationinfo: fix possible array overrun + +2011-05-20 09:58:50 +0200 Rafael Diniz + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams + Fixes bug #615681. + +2011-05-19 08:05:14 +0200 W. Michael Petullo + + * ext/apexsink/gstapexraop.c: + * ext/apexsink/gstapexraop.h: + * ext/apexsink/gstapexsink.c: + * ext/apexsink/gstapexsink.h: + apexsink: Add support for generation 2 AirTunes hardware + Fixes bug #649931. + +2011-05-20 00:35:55 +0300 Stefan Kost + + * tests/examples/mxf/mxfdemux-structure.c: + mxf-example: fix the { } scope + +2011-05-20 00:20:07 +0300 Stefan Kost + + * gst/festival/gstfestival.c: + festival: don't leak fd on error + +2011-05-20 00:16:00 +0300 Stefan Kost + + * gst/librfb/vncauth.c: + librfb: don't leak password on error + +2011-05-19 23:57:38 +0300 Stefan Kost + + * docs/plugins/Makefile.am: + docs: remove obsolete commented out part + We don't have this in the other modules and its not needed. + +2011-05-19 23:50:47 +0300 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: update plugin introspection data + Now more files are merged and produced in a canonical fashion, which hopefully + creates less or no delta in the future. + +2011-05-19 22:58:10 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 9e5bbd5 to 69b981f + +2011-05-19 14:58:22 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Add video-device argument + Adds an argument to select which video device should be used + on the video source element in camerabin2 + +2011-05-19 14:52:22 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Fix typo from previous commit + The property is audio-src and not audio-source + +2011-05-19 14:32:02 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Add audio-source parameter to gst-camerabin2-test + Adds an option to select the audio source to be used on video + recordings on camerabin2 test application + +2011-05-19 14:23:59 -0300 Thiago Santos + + * configure.ac: + configure: add missing [ + Adds missing [ to configure on the CDAUDIO pkg config check + +2011-05-19 18:45:25 +0300 Stefan Kost + + * ext/jp2k/gstjasperenc.c: + jasperenc: remove unused 'mimetype' variable + As mimetype is not used, we don't need to fetch it and therefore neither need + the structure s. + +2011-05-19 15:26:38 +0100 Christian Fredrik Kalager Schaller + + * gst-plugins-bad.spec.in: + Update spec file to fit with latest upstream spec files + +2011-05-18 15:44:06 -0400 Olivier Crête + + * sys/shm/gstshmsink.c: + * sys/shm/shmpipe.c: + shm: Make gcc 4.6 happy + Remove warnings due to initialized but never used warnings + +2011-05-18 13:35:34 -0700 David Schleef + + * gst/h264parse/gsth264parse.h: + h264parse: max pps is 255 + Fixes #650484. + +2011-05-12 22:54:44 +0300 Brian Gitonga Marete + + * sys/decklink/gstdecklinksrc.h: + decklink: Change counters to 64 bit unsigned integers. + +2011-05-10 16:14:32 -0700 David Schleef + + * configure.ac: + configure: switch libcdaudio to pkg-config + +2011-04-24 19:11:36 -0700 David Schleef + + * gst/mpegtsmux/mpegtsmux_aac.c: + * gst/mpegtsmux/mpegtsmux_h264.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxcommon.h: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + mpegtsmux: use gst debug for tsmux library + +2011-04-19 15:04:05 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: avcsrc is always enabled + +2011-04-19 15:01:15 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: Include 200 bus cycles in each buffer (about 300 TS packets) + +2011-04-19 15:00:53 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: Emit a single buffer per callback + +2011-04-19 13:53:54 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + * sys/avc/gstavcsrc.h: + avc: Track the number of enqueued and dequeued packets + +2011-04-19 13:53:23 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: Dump timestamp information + +2011-04-18 15:37:57 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + * sys/avc/gstavcsrc.h: + avc: Save AVC objects in the GstAVCSrc object + and stop them when the pipeline is stopped + +2011-04-18 15:16:00 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: Cycle and packet are unsigned + +2011-04-18 15:15:28 -0400 Quentin Smith + + * sys/avc/gstavcsrc.cpp: + avc: avcsrc is a live source + +2011-04-18 15:14:55 -0400 Quentin Smith + + * sys/avc/Makefile.am: + avc: Look in AVCVideoServices for headers + +2011-04-18 12:28:52 -0700 David Schleef + + * configure.ac: + avc: attempt new configure + +2011-04-16 19:42:00 -0700 David Schleef + + * configure.ac: + * sys/Makefile.am: + * sys/avc/Makefile.am: + * sys/avc/gstavcplugin.cpp: + * sys/avc/gstavcsrc.cpp: + * sys/avc/gstavcsrc.h: + avc: Add AVC Video Services plugin for OS/X + +2011-05-18 16:10:40 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From fd35073 to 9e5bbd5 + +2011-05-18 13:27:20 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Name max/min quantizer properties {max,min}-quantizer + Also improve quality property description. + +2011-05-18 13:26:23 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: Add properties to select a maximum and minimum quantizer + Fixes bug #641405. + +2011-05-18 13:18:58 +0200 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + vp8enc: Fix quality to (constant) quantizer mapping + This now allows to select all possible quantizers between + 0 and 63. + See bug #641405. + +2011-05-18 12:24:47 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 46dfcea to fd35073 + +2011-04-28 15:59:38 +0300 Stefan Kost + + * ext/mplex/gstmplex.cc: + * gst/adpcmdec/adpcmdec.c: + * gst/adpcmenc/adpcmenc.c: + * gst/geometrictransform/gstfisheye.c: + * gst/geometrictransform/gstmirror.c: + * gst/geometrictransform/gstsquare.c: + * gst/mpegtsdemux/tsdemux.c: + * sys/shm/gstshmsrc.c: + various: fix author tag in element details + +2011-04-27 16:56:09 +0300 Stefan Kost + + * tools/element-templates/audiofilter: + element-templates: improve the audiofilter template + Add comments. Add start/stop methods. Add (commented) instance casts at the + begin of the method. Make transform_ip returning FLOW_OK by default. + +2011-04-27 16:51:55 +0300 Stefan Kost + + * tools/gst-element-maker: + element-maker: improve plugin_init() + Return the result of gst_element_register(). Use the TYPE macro instead of the + _get_type() function. + +2011-05-12 11:57:19 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: fix some buffer leaks + Fixes #650323. + +2011-05-12 11:56:52 +0200 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: fixup boilerplate and debug code style + +2011-05-13 17:18:52 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstimagecapturebin.h: + * gst/camerabin2/gstplugin.c: + * tests/check/Makefile.am: + * tests/check/elements/imagecapturebin.c: + camerabin2: Remove obsolete imagecapturebin + imagecapturebin has been replaced by encodebin, no need + for it anymore + +2011-05-13 16:27:17 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: use jpeg as a container to force jifmux usage + Jifmux should be used as it can do xmp/exif tagging, so this patch + sets jpeg as a container to force it to be used together with + a jpeg encoder + +2011-05-12 11:17:28 +0000 Alessandro Decina + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: do proper EOS handling on send_event(eos) + We first let the inner camera EOS. Then we manually post EOS on the image and + video sinks if those are <= READY and so have ignored EOS events. + +2011-04-28 15:11:36 +0200 Alessandro Decina + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * tests/check/elements/camerabin2.c: + camerabin2: use encodebin to encode images + +2011-05-13 15:16:14 -0300 Thiago Santos + + * gst/jpegformat/gstjpegformat.c: + jifmux: Bump rank to secondary + jifmux is being used for quite some time and has no open bugs + currently, so we can give it a secondary rank at least. + Fixes #649391 + +2011-05-13 15:15:53 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Change class to formatter + jifmux is a formatter and not a muxer + Fixes #649391 + +2011-05-13 09:11:35 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: Fix GOptionEntry array + Use no flags instead of passing G_OPTION_ARG_OPTIONAL to options that + must have an argument + +2011-05-12 11:39:51 -0300 Thiago Santos + + * tests/examples/camerabin2/Makefile.am: + camerabin2: examples: build fixes + Add some missing dependencies + +2011-05-11 18:35:40 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Changing how some properties work + Some properties (like viewfinder-filter) only are taken into use + on NULL->READY transitions and the get/set property was returning + the currently in use value, instead of the last set. + This is bad, as after setting 'a' to 'x', you expect that getting 'a' + will return 'x'. This patch fixes it. + If needed, later we could add current-* properties that are readonly + and get the current value in use. + +2011-04-29 08:54:56 -0300 Lasse Laukkanen + + * gst/camerabin2/PORTING: + camerabin2: Updating PORTING file + +2011-04-28 16:05:53 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstviewfinderbin.c: + camerabin2: Adding missing plugin error messages + Whenever a required plugin is missing, camerabin2 should post + a missing plugin message to the bus + +2011-04-28 14:37:22 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: encodebin might not have the requested pad + handle the case where encodebin doesn't have the pad + camerabin2 is requesting, either because of its current profile + or because of missing elements, making it fail to provide + the pad + +2011-04-27 15:12:18 -0300 Lasse Laukkanen + + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: Add more arguments + Add command-line options for setting image-capture, viewfinder + and video-capture caps as strings. + The width and height properties are now used only if these new caps + properties aren't set. + +2011-04-26 15:21:34 -0300 Thiago Santos + + * gst/camerabin2/gstimagecapturebin.c: + camerabin2: imagecapturebin: Fix tags merging mode + Use merge replace mode to allow new tags to override old ones + and fix the use case where the last sent tags should be serialized + to the captured images. + +2011-04-26 14:53:35 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix tag handling for videos + In video mode the tags should be pushed after sending the start capture + to the source, this allows the video recording elements to be reset + and leave the flushing state they were at after a previous capture. + This fixes the problem where tags only work for the first video capture + +2011-04-26 14:50:29 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Fix set but unused variable warnings + +2011-04-26 14:49:35 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Fix tags setting tests + Fixes the tags setting tests to reveal a bug in camerabin2 + tag setting logic. + +2011-04-25 16:04:26 -0300 Thiago Santos + + * gst/camerabin2/camerabin2-src.txt: + camerabin2: Adding camera source documentation file + Adds a small text file with a brief description of + what is expected from a camerabin2 source element + +2011-04-11 15:33:20 -0300 Lauri Lehtinen + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + basecamerabinsrc: Handle errors from preview pipeline + Implements a message handling function to preview pipeline bus. + If GST_MESSAGE_ERROR is seen, considers preview pipeline unable + to do its job and posts an error message to application. + Sets pipeline element to NULL so that subsequent calls to post_preview + and set_caps functions just returns without pushing anything to the + disposed preview pipeline. Leaves further actions to the application. + +2011-04-08 09:22:11 -0300 Lauri Lehtinen + + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h: + basecamerabinsrc: Protection for previewpipeline when setting new preview caps + Implements a state indicating flag to preview pipeline, + so that new caps are not set if the pipeline is processing a + preview. The caps are set as pending and applied when the + next preview post is called. + In this case a wait was implemented in the post_preview function, + so that new preview image buffer will wait until the other previews + have been posted to the application and the new caps can be used + safely. + +2011-03-29 13:46:09 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: Fix compile problem with debug disabled + +2011-03-23 18:41:02 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + camerabin2: viewfinderbin: Post missing plugin messages + Makes viewfinderbin post missing plugin messages when it + can't create an internal elements + +2011-03-23 18:40:03 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + camerabin2: Improve missing plugin message + Improves the message text for missing plugin messages from + camerabin2 + +2011-03-23 17:46:56 -0300 Thiago Santos + + * gst/camerabin2/PORTING: + camerabin2: Update porting file + Update porting file with mention that stop-capture is now + async. + +2011-04-08 17:58:42 +0200 Robert Swain + + * tests/examples/camerabin2/gst-camerabin2-test.c: + gst-camerabin2-test: Allow gst-launch pipelines for sinks + Use gst_parse_launch () to parse the sink strings to allow specification + of properties to sinks and of more advanced sink graphs. + +2011-04-04 13:28:32 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix debug print to show audio/video depending on pad type + +2011-03-31 13:08:48 +0200 Robert Swain + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix order of element state change + To change the state of elements in a pipeline, we should mirror the + behaviour of GstBin which starts at the sink element and works its way + upstream. + +2011-04-01 22:13:55 +0200 Mark Nauwelaerts + + * ext/vp8/gstvp8dec.c: + vp8dec: debug code style fixes + +2011-04-01 22:13:00 +0200 Mark Nauwelaerts + + * ext/vp8/gstvp8dec.c: + vp8dec: propagate downstream flow return to upstream + +2011-04-03 22:35:13 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: handle missing framerate when calculating timestamp + +2011-04-03 22:32:20 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: debug code style fixes + +2011-04-01 22:12:30 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: tune parsing sink caps into video state + ... to provide subclass with more information w.r.t. original caps. + +2011-04-01 18:49:10 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: video state reference to codec_data is not refcounted + ... but rather implicitly valid as long as sink caps are not modified. + +2011-04-01 18:00:11 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: improve glitch resilience + Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first + atom out of place, while on the other hand not failing indefinitely. + +2011-03-31 14:47:55 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: reverse playback support + +2011-03-30 10:28:08 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: use basevideocodec discont field + +2011-03-30 10:18:23 +0200 Mark Nauwelaerts + + * ext/schroedinger/gstschrodec.c: + * ext/vp8/gstvp8dec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: really and only set src pad caps whenever requested + ... since subclass is expected to be wise enough to know when to do so. + +2011-03-30 09:17:22 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: add some sanity enforcing + +2011-03-30 09:15:13 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: add documentation + ... and remove some more stray unused code and methods. + +2011-03-29 15:41:55 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideocodec: fully free video frame + +2011-03-29 15:41:08 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: streamline discont, flush and reset handling + ... which is not to say there is no room for further tweaking ... + +2011-03-29 15:39:07 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: add some header commentary + +2011-03-29 12:57:21 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: remove (almost) unused fields + ... and also some more unused code. + +2011-03-29 10:41:54 +0200 Mark Nauwelaerts + + * ext/vp8/gstvp8dec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: invoke subclass start method at state change and use set_format + While this changes API slightly (e.g. actually uses set_format now), which is OK + for unstable API, it has following merits: + * symmetric w.r.t. stop at state change + * in line with other base class practice + * otherwise no subclass method at state change (global activation time) + Moreover, subclassese are either unaffected or trivially adjusted accordingly. + +2011-04-28 12:02:27 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: fixup tweak + +2011-03-28 16:15:19 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: add and tweak debug statements + +2011-03-28 13:32:17 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: arrange for limited legacy seeking support + In particular, tweak src query and event handling to provide for + byte <-> time conversion. + +2011-03-28 11:15:49 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoutils.c: + basevideo: cater for format conversion + +2011-03-28 10:51:27 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoutils.c: + videocodec: remove unused fields and code + +2011-03-28 09:14:57 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: fix copy-and-paste variable misnomer + +2011-03-28 08:59:20 +0200 Mark Nauwelaerts + + * ext/vp8/gstvp8dec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: subsume skip_frame into finish_frame + +2011-03-28 08:56:59 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: remove unused code + +2011-03-27 22:27:09 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: code cleanup and debug style fixes + +2011-03-27 16:36:57 +0200 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: pass along buffer discont flag + +2011-03-25 15:29:34 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: implement preset interface + +2011-03-25 09:28:24 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: add documentation and related cosmetics + +2011-03-24 14:10:07 +0100 Mark Nauwelaerts + + * ext/dirac/gstdiracenc.cc: + * ext/vp8/gstvp8enc.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: provide proper upstream flow return handling + +2011-03-24 13:59:35 +0100 Mark Nauwelaerts + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: minor optimization in setting up image buffer + +2011-03-24 12:50:23 +0100 Mark Nauwelaerts + + * ext/vp8/gstvp8enc.c: + vp8enc: refactor frame processing + +2011-03-24 11:55:41 +0100 Mark Nauwelaerts + + * ext/vp8/gstvp8enc.c: + vp8enc: do init at set_format time + +2011-03-24 10:15:55 +0100 Mark Nauwelaerts + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: fix keyframe forcing + +2011-03-24 08:23:27 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: enhance set_caps + Specifically, only invoke set_format if incoming format really changed, + and finish current format if so (and if any current). + +2011-03-23 22:17:49 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: elaborate finish to draining + +2011-03-24 09:21:04 +0100 Mark Nauwelaerts + + * ext/dirac/gstdiracenc.cc: + * ext/schroedinger/gstschroenc.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: invoke subclass start method at state change + While this changes order w.r.t. set_format, which is OK for unstable API, + it has following merits: + * symmetric w.r.t. stop at state change + * in line with other base class practice + * little benefit in invoking 2 subclass virtual methods (set_format and start) + in immediate succession; all actions in the second could be done in the first + whereas subclass has no chance to do anything 'global' at activation time + Moreover, current -bad subclass relevant methods either trivially commute + or are either trivially adjusted accordingly. + +2011-03-24 08:21:03 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: enable clipping by default + +2011-03-24 08:17:52 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: reset more state + +2011-03-24 08:56:33 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: header cosmetic and doc fixes + +2011-03-23 09:45:20 +0100 Mark Nauwelaerts + + * ext/dirac/gstdiracenc.cc: + * ext/schroedinger/gstschroenc.c: + * ext/vp8/gstvp8enc.c: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideocodec: remove redundant caps field + ... as it is already at hand as the src pad's negotiated caps. + +2011-03-23 09:32:50 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: remove unused code + +2011-03-23 08:50:31 +0100 Mark Nauwelaerts + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: use baseclass event virtual handler + +2011-03-23 08:49:48 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: add event virtual method to allow subclass event handling + +2011-03-23 08:35:51 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: improve GstForceKeyUnit event handling + +2011-03-22 13:19:17 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.c: + basevideocodec: debug style fixes + +2011-03-21 18:02:15 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + basevideocodec: remove unused code cluttering up the place + Also minor debug style fixes. + +2011-03-21 17:44:17 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideoencoder: simplify negotiated checking + ... by avoiding some extraneous (un)ref'ing. + +2011-03-24 14:16:12 +0100 Mark Nauwelaerts + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: code cleanup and some debug + Also add some minor locking and remove unused bits. + +2011-05-16 09:07:57 +0200 Pino Toscano + + * sys/shm/shmpipe.c: + shm: Don't use PATH_MAX + PATH_MAX is not defined on GNU Hurd and others. Also fix + format string. + +2011-05-14 14:48:56 +0200 Marc-André Lureau + + * gst/dccp/gstdccp_common.h: + gst/dccp: fix build on newer mingw + Fix this build error: + CC libgstdccp_la-gstdccpplugin.lo + In file included from ../../../gst/dccp/gstdccpclientsrc.h:29:0, + from ../../../gst/dccp/gstdccpplugin.c:24: + ../../../gst/dccp/gstdccp_common.h:32:0: warning: WINVER redefined [enabled by default] + /usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the location of the previous definition + In file included from ../../../gst/dccp/gstdccpplugin.c:24:0: + ../../../gst/dccp/gstdccpclientsrc.h:58:3: error: unknown type name 'uint8_t' + In file included from ../../../gst/dccp/gstdccpplugin.c:25:0: + ../../../gst/dccp/gstdccpserversink.h:74:3: error: unknown type name 'uint8_t' + In file included from ../../../gst/dccp/gstdccpplugin.c:26:0: + ../../../gst/dccp/gstdccpclientsink.h:67:3: error: unknown type name 'uint8_t' + In file included from ../../../gst/dccp/gstdccpplugin.c:27:0: + ../../../gst/dccp/gstdccpserversrc.h:58:3: error: unknown type name 'uint8_t' + make: *** [libgstdccp_la-gstdccpplugin.lo] Error 1 + https://bugzilla.gnome.org/show_bug.cgi?id=650171 + +2011-05-15 10:04:50 +0200 Alessandro Decina + + * sys/applemedia/plugin.m: + applemedia: bump the rank of qtkitvideosrc to PRIMARY + +2011-05-15 10:00:44 +0200 Alessandro Decina + + * gst/hls/m3u8.c: + hls: fix handling of strol() overflows + +2011-05-14 12:18:19 +0200 Sebastian Dröge + + * Makefile.am: + cruft: Add ext/amrwbenc directory, it's ext/voamrwbenc now + +2011-05-13 01:03:27 +0200 Andoni Morales Alastruey + + * gst-libs/gst/video/gstbasevideocodec.c: + basevideencoder: Fix use after free after state change transition + +2011-04-18 23:40:35 +0300 Sreerenj Balachandran + + * ext/opencv/gstfacedetect.c: + facedetect: Remove dead code and some minor doc changes. + +2011-04-24 21:06:29 +0300 Sreerenj Balachandran + + * ext/opencv/gstedgedetect.c: + edgedetect: Remove dead code and some minor doc changes + +2011-04-19 19:09:30 +0200 Luis de Bethencourt + + * gst/coloreffects/gstchromahold.c: + * gst/coloreffects/gstchromahold.h: + * gst/coloreffects/gstcoloreffects.c: + * gst/coloreffects/gstcoloreffects.h: + coloreffects: Coding style fixes + +2011-04-19 10:32:50 +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/inspect/plugin-voaacenc.xml: + aacenc: Integrate into the documentation + +2011-04-19 10:07: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-amrwbenc.xml: + * ext/Makefile.am: + * ext/amrwbenc/GstAmrwbEnc.prs: + * ext/amrwbenc/Makefile.am: + * ext/amrwbenc/README: + * ext/amrwbenc/gstamrwb.c: + * ext/amrwbenc/gstamrwbenc.c: + * ext/amrwbenc/gstamrwbenc.h: + * ext/voamrwbenc/GstVoAmrwbEnc.prs: + * ext/voamrwbenc/Makefile.am: + * ext/voamrwbenc/gstvoamrwb.c: + * ext/voamrwbenc/gstvoamrwbenc.c: + * ext/voamrwbenc/gstvoamrwbenc.h: + amrwbenc: Switch to the free vo-amrwbenc library + And rename everything to voamrwbenc instead of amrwbenc. + +2011-04-15 11:19:20 +0200 benjamin gaignard + + * ext/faac/gstfaac.c: + * tests/check/elements/faac.c: + faac: Detect output format from downstream caps change unit test + +2011-04-19 09:52:23 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + voaaenc: Fix CFLAGS/LIBS of the unit test + +2011-04-19 09:49:08 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + * ext/voaacenc/gstvoaacenc.h: + voaacenc: Only generate sinkcaps once and in a threadsafe way + +2011-04-19 09:42:22 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + voaacenc: Add NULL terminator to gst_structure_new() + +2011-04-19 09:40:48 +0200 Sebastian Dröge + + * ext/voaacenc/gstvoaacenc.c: + * ext/voaacenc/gstvoaacenc.h: + voaacenc: Some minor cleanup + +2011-04-19 09:34:03 +0200 Sebastian Dröge + + * ext/voaacenc/Makefile.am: + voaacenc: Fix CFLAGS and LIBS + +2011-04-18 17:19:00 +0200 benjamin gaignard + + * configure.ac: + * ext/Makefile.am: + * ext/voaacenc/Makefile.am: + * ext/voaacenc/gstvoaac.c: + * ext/voaacenc/gstvoaacenc.c: + * ext/voaacenc/gstvoaacenc.h: + * tests/check/Makefile.am: + * tests/check/elements/voaacenc.c: + voaacenc: Add new plugin for audio AAC encoder based on vo-aacenc lib + Add plugin and unit test. + Fixes bug #647748. + +2011-05-14 10:19:57 +0100 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-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: + * win32/common/config.h: + Back to development + === release 0.10.22 === -2011-05-10 Tim-Philipp Müller +2011-05-10 11:35:56 +0100 Tim-Philipp Müller + * ChangeLog: + * NEWS: + * RELEASE: * configure.ac: - releasing 0.10.22, "Toy Piano" + * 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: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.22 + Highlights: + - hlsdemux: Add HTTP live streaming parser/demuxer element + - new elements: h263parse, zebrastripe, patchdetect + - scenechange: new scene change detection element + - removed audioparsersbad plugin, it has been moved to -good + - make opencv plugin work with OpenCV 2.2 + - countless (still experimental) camerabin2 fixes and improvements + - experimental VP8 RTP payloader/depayloader (RTP payloading not finalised yet) + - curlsink: add libcurl-based sink element (acts as client, not server) + - decklink: add decklink plugin + - linsys: add plugin for Linear Systems SDI boards + - sdi: add raw SDI muxing/demuxing elements + - camerabin now relies on muxers to mux based on running time (ie. latest base/good/ugly releases) + - many other fixes and improvements 2011-05-05 09:54:33 -0300 Thiago Santos diff --git a/Makefile.am b/Makefile.am index 1c36d7d..153fef5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -52,6 +52,7 @@ CRUFT_FILES = \ $(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/mpeg4videoparse/.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} \ @@ -78,6 +79,8 @@ CRUFT_DIRS = \ $(top_srcdir)/gst/amrparse \ $(top_srcdir)/gst/flacparse \ $(top_srcdir)/gst/imagefreeze \ + $(top_srcdir)/gst/invtelecine \ + $(top_srcdir)/gst/mpeg4videoparse \ $(top_srcdir)/gst/qtmux \ $(top_srcdir)/gst/selector \ $(top_srcdir)/gst/shapewipe \ @@ -87,6 +90,7 @@ CRUFT_DIRS = \ $(top_srcdir)/tests/examples/switch \ $(top_srcdir)/tests/examples/jack \ $(top_srcdir)/ext/alsaspdif \ + $(top_srcdir)/ext/amrwbenc \ $(top_srcdir)/ext/ivorbis \ $(top_srcdir)/ext/jack \ $(top_srcdir)/ext/metadata \ diff --git a/Makefile.in b/Makefile.in index f63e1a8..a6a3be6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -60,6 +60,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -99,11 +100,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -125,9 +126,11 @@ 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)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -156,12 +159,13 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' 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@ @@ -179,7 +183,6 @@ 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@ @@ -214,6 +217,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -253,6 +257,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -270,6 +275,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -278,13 +284,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -309,13 +318,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -363,6 +373,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -394,8 +405,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -419,6 +434,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -443,10 +460,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -458,6 +479,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -482,6 +507,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -517,7 +543,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -583,6 +608,7 @@ CRUFT_FILES = \ $(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/mpeg4videoparse/.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} \ @@ -609,6 +635,8 @@ CRUFT_DIRS = \ $(top_srcdir)/gst/amrparse \ $(top_srcdir)/gst/flacparse \ $(top_srcdir)/gst/imagefreeze \ + $(top_srcdir)/gst/invtelecine \ + $(top_srcdir)/gst/mpeg4videoparse \ $(top_srcdir)/gst/qtmux \ $(top_srcdir)/gst/selector \ $(top_srcdir)/gst/shapewipe \ @@ -618,6 +646,7 @@ CRUFT_DIRS = \ $(top_srcdir)/tests/examples/switch \ $(top_srcdir)/tests/examples/jack \ $(top_srcdir)/ext/alsaspdif \ + $(top_srcdir)/ext/amrwbenc \ $(top_srcdir)/ext/ivorbis \ $(top_srcdir)/ext/jack \ $(top_srcdir)/ext/metadata \ @@ -628,7 +657,7 @@ all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(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 \ @@ -653,6 +682,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; +$(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: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -664,10 +694,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -902,7 +930,11 @@ 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 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir @@ -910,7 +942,7 @@ dist-lzma: distdir $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -928,7 +960,7 @@ dist-zip: 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 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -942,6 +974,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -962,6 +996,7 @@ distcheck: dist && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -990,8 +1025,16 @@ distcheck: dist 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 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -1022,10 +1065,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1114,8 +1162,8 @@ uninstall-am: .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 \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip 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 \ diff --git a/NEWS b/NEWS index eb2c12f..4e7ab08 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,335 @@ -This is GStreamer Bad Plug-ins 0.10.22, "Toy Piano" +This is GStreamer Bad Plug-ins 0.10.23, "The Game Has Changed" + +Changes since 0.10.22: + + * aiffparse: extract ID3 tags embedded in ID3 chunks + * amrwbenc: switch to the free vo-amrwbenc library + * apexsink: Add support for generation 2 AirTunes hardware + * applemedia: bump the rank of qtkitvideosrc to PRIMARY + * autoconvert: remove the initial-identity property from autoconvert, update for basetransform changes in core + * avcsrc: add AVC Video Services plugin for OS/X (captures DV or HDV video from Firewire port) + * basevideo: cater for format conversion + * basevideo: Fix locking, especially if both pads have different streaming threads + * basevideodecoder: add API to drop a frame and post a QoS message on the bus + * basevideodecoder: reverse playback support; limited legacy seeking support + * basevideodecoder: better caps handling; event handling fixes esp. discont and flush + * basevideoencoder: add support for new force-key-unit event API + * basevideoencoder: implement preset interface; enable clipping by default + * basevideoencoder: proxy the width/height/framerate/PAR constraints of downstream caps to upstream + * bayer2rgb: rewrite signal processing and convert to orc for better speed + * camerabin2: no longer experimental; add flags to disable conversion elements + * camerabin2: add "audio-filter" property; countless fixes + * camerabin: add "image-formatter" property + * camerabin: prevent audio source from providing clock; reset audiosrc timestamping + * camerabin: prevent captures from being lost when switching resolutions + * colorspace: Add JPEG YCbCr matrix + * colorspace: fix odd width and height handling in some fastpath cases + * colorspace: fix r210 writing only half a scanline + * d3dvideosink: new d3dvideosink element + * dc1394src: implement LATENCY query + * debugutils: new elements: compare (with memcmp and ssim method) and debugspy + * decklink: add more modes, connection type, "audio-input" and "subdevice" properties + * decklink: add support for Windows; properly set up analog input + * decklinksink: add audio support + * dfbvideosink: also consider non-accelerated DirectFB surfaces + * diracparse: make diracparse work correctly + * directdrawsink: handle pixel-aspect-ratio, lower rank to secondary + * dshowdecwrapper: fix COM initialization + * dtmf: post messages when starting to send/receive DTMF + * dtmfsrc: align DTMF sound buffers with last-stop from event + * dtmfsrc: reject start/stop requests that come out of order + * dvbsrc: add "timeout" property and use (interruptible) GstPoll + * element-templates: improve the audiofilter template + * faac: add properties for VBR encoding + * faac: add profile and level to the caps; negotiate output format from downstream caps + * facedetect: detect face features (mouth, nose, eyes) and drop faces that don't have them + * faceoverlay: add element that displays an SVG image over a detected face + * freeverb: new freeverb element (reverb effect) + * h263parse: also extract width and height into caps; propagate downstream caps + * h264parse: many negotiation and caps-related fixes; propagate downstream caps where appropriate + * h264parse: countless parsing and timestamping fixes + * hlsdemux: allow bandwidth switching during caching of fragments + * hlsdemux: make more error resilient + * hlsdemux: cache number of fragments we are required to cache + * hlsdemux: add seeking support (for streams that are not live) + * hlsdemux: implement duration and seeking queries; improved duration reporting + * hlsdemux: Send a flush-stop when switching pads. Fixes A -> A/V sync issue + * hlsdemux: implement buffering by posting buffering messages on the bus + * hlsdemux: send NEWSEGMENT events in TIME format + * hlsdemux: switch to higher/lower bitrate by more than one step at a time + * hsldemux: handle change of media types + * inter: new intermediate surface elements: inter{video,audio,sub}{sink,src} to decouple elements within the same pipeline + * invtelecine: Remove in favor of fieldanalysis + * irtspparse: add Interleaved RTSP parser element + * jifmux: change class to formatter, bump rank to secondary + * kate: do not consider an empty SPU to be a fatal error + * kateenc: don't error on empty input buffers + * kate: pass on timed event metadata as tags when we can + * kate: support for rendering on several YUV formats + * legacyh264parse: create correct avc codec-data + * legacyh264parse: delay pushing buffers until we have width/height + * legacyh264parse: fix output caps alignment for avc input + * modplug: fix modules playing as mono instead of stereo + * motioncells: new element to detect areas of motion + * mpeg2enc: support mjpegtools 2.0 + * mpeg4videoparse: properly handle profile and level in caps + * mpegpsdemux: timestamp handling and seeking fixes + * mpegpsmux: remember whether an incoming buffer is a keyunit or not + * mpegpsmux: add "aggregate-gops" property to aggregate GOPs into buffer lists + * mpegpsmux: put stream headers into output caps + * mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams + * mpegtsbase: actually set seen_pat=TRUE when we see a PAT + * mpegtsdemux: always try to seek for to a keyframe; add accurate seeking support + * mpegtsdemux: fix frequent deadlock demuxing MPEG TS + * mpegtsdemux: fix scanning stopping too early + * mpegtsdemux: fix timestamps in newsegement event after seeking + * mpegtsdemux: implement key_unit seeking for MPEG2 video + * mpegtsdemux: payload parsing for H.264 + * mpegtsdemux: push based seeking based on PCR + * mpegtsmux: add support for force key unit events + * mpegtsmux: unset the current PCR stream when starting a new unit + * mpegtsparse: fix parsing of PSI table IDs + * mpegtsparse: support more character set encodings + * mpegts: stop scanning for keyframes as early as possible + * ofa: don't crash when there's no data to create a fingerprint from + * openal: new OpenAL sink and source elements: openalsrc, openalsink + * opencv: allow to build against 2.3.1 + * opus: new Opus audio codec elements: opusdec, opusenc, opusparsertpopusdepay, rtpopusay + * pcapparse: also support extracting tcp data; fix SLL parsing + * photography: add missing FLICKER_REDUCTION capability + * pvr2d: new pvrvideosink element + * psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams + * removesilence: new plugin + * resindvdsrc: do not try to seek before the first chapter + * rotate: angle is in radians already, do not scale it + * rsvgdec: use input buffer timings if possible + * rtmp: add rtmpsink element for output to an RTMP server + * rtpdtmfmux: Add last-stop to dtmf-event upstream events + * rtpdtmfsrc: Correctly recognize the end of a buffer + * rtpdtmfsrc: Just error out if there is no clock + * rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap + * rtpdtmfsrc: Put the inter digit interval at the end, not at the start + * rtpdtmfsrc: Respect ptime from the caps + * rtpdtmfsrc: Start at the last_stop from the start event if there was one + * rtpvp8: fix bitstream parsing using the wrong kind of bitreader + * rtpvp8: Reject unknown bitstream versions + * rtpvp8: Update the pay/depay to the ietf-draft-01 spec + * schroenc: balance encoder and video format alloc/dealloc + * schroenc: remove shape_output handling + * scopes: add a new element similar to synaesthesia + * scopes: add a simple fft based scope + * scopes: draw pixels with signle 32bit writes + * scopes: first version of a scopes plugin using a new baseclass + * scopes: fix elements descriptions + * shm: add ability to add uint64 tags on buffers + * shm: add buffer-time property + * smooth: new element, port to 0.10 + * soundtouch: Handling incoming rate when requested + * spacescope: add color-modes + * spacescope: use the drawhelpers and add a draw-style property + * spandsp: Adding spandsp plugin with spanplc element for packet loss concealment + * spectrascope: use add_pixel for non-white pixels + * subenc: Add webvttenc element + * teletextdec: New teletext decoder plugin based in zvbi + * tiger: add a "silent" property to skip rendering + * tsdemux: add explicit supported AAC stream-format in template caps + * tsdemux: countless fixes and improvements + * tta: decrease rank to NONE + * video: abstract surface API for HW accelerated codecs + * video: add GstVideoContext interface + * video: add libgstbasevideo PC file + * voaacenc: add new plugin for audio AAC encoder based on vo-aacenc lib + * voaacenc: add profile and level to the caps + * vp8dec: add check if we have legal aspect-ratio before reset it + * vp8dec: propagate downstream flow return to upstream + * vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted + * vp8enc: add "lag-in-frames" and "min/maxsection-pct" options + * vp8enc: generate a timestamp for alt-ref frames + * wrappercamerabinsrc: push newsegments on video capture start + * xviddec: add video/mpeg,mpegversion=4 to the caps + * xvidenc: add profile/level to the caps and negotiate them with downstream + * xvidenc: add support for levels 4a/5/6 of the simple profile + * xvidenc: don't add the profile/level to the video/x-xvid caps + +Bugs fixed since 0.10.22: + + * 648021 : gst-plugins-bad/gst/nsf/ code not needed (can be replaced by ext/gme/) + * 655887 : gst_buffer_create_sub: assertion `buffer- > size > = offset + size' failed + * 597822 : Add removesilence plugin + * 608171 : [dvbsrc] many wake-ups in read_device on signal loss. + * 652677 : [bayer] compiler warning in orc-generated code + * 652956 : vp8enc: add more encoder options + * 654310 : FAAC VBR encoding support + * 655362 : [decklink] Add support for Windows + * 532820 : [mpegtsdemux] garbled display + * 550230 : A plug-in " openalsrc " for capture audio using OpenAL + * 569305 : [mgpegvideoparse] not all tags show up in gst.extend.discoverer + * 578926 : [h264parse] Make sure h264parse are autoplugged when required + * 589064 : resindvd doesn't behave right for " previous chapter " + * 599469 : resindvd: problems pre-rolling in the absence of audio + * 609639 : xviddec plugin caps does not allow MPEG 4 video - trivial fix + * 611046 : mpegtsmux: pcr problems + * 615615 : A plugin for audio output using OpenAL + * 615681 : [mpeg[pt]sdemux] do not support AAC LATM Stream type + * 616421 : celtenc/dec produces silent output with live sources + * 619739 : Teletext decoder element based on libzvbi + * 620119 : [dvdspu] Program received signal SIGSEGV, Segmentation fault. + * 625190 : Directshow decoders wrappers have COM initialization issues + * 625520 : dc1394src: timestamping problem + * 628284 : [rsvgdec] all buffer timestamps are set to zero + * 629244 : [opencv] Add motion detection element + * 631390 : dfbvideosink does not consider surfaces when blit is not accelerated + * 631416 : mpegpsdemux hits EOS too early + * 634582 : Localized menus when playing DVD + * 635917 : [mpegtsparse] don't parse and post all the EIT events. + * 640017 : basevideodecoder: add API to drop a frame and post a QoS message on the bus + * 641405 : [vp8enc] patch - allow to use best quality + * 641918 : [Camerabin2] Allow previewing without capture + * 642023 : [mpeg4videoparse] assertion `a_d != 0' failed + * 642759 : faceoverlay plugin: displays an SVG image over a detected face on a video stream + * 647055 : liveadder has a memory leak + * 647748 : [aacenc] add AAC audio encoder based on vo-aacenc lib + * 647842 : [faac] Detect ADTS/raw output in the downstream caps + * 648245 : mpegtsdemux: truncates last buffer + * 648478 : jpegparse: unit test for APP1/exif & comment parsing + * 648565 : clean_ups in opencv + * 648933 : [mpegvideoparse] Avoid searching for picture start codes when not needed + * 649391 : [jifmux] bump rank from none + * 649822 : wrappercamerabinsrc: add a filter property + * 649832 : [camerabin2]: negotiation problems when capturing + * 649931 : [apexsink] Allow to play to new, generation 2 AirTunes (AirPlay) hardware + * 650072 : [basevideoencoder] Fix use-after-free after state change transition + * 650171 : gst/dccp: fix build on newer mingw + * 650228 : Fix h264parse negotiation + * 650323 : [h264parse] leaks entire input if converting bytestream - > avc,au + * 650416 : [h264parse] Assertion failure: nal_size > =2 + * 650484 : h264parse should increase max allowed PPS id from 31 to 255 + * 650594 : [faac] AAC profile support in the caps + * 650595 : voaacenc needs profile caps support + * 650914 : decklink sink has no audio support + * 650970 : mpeg2enc: fix build with mjpegtools 2.0 + * 651050 : [mpegtsmux] error " Stream on pad xxx is not associated with any program " debug output incorrect pointer instead of padname + * 651779 : directdrawsink: keep aspect ratio + * 651782 : add d3dvideosink on windows + * 652035 : [d3dvideosink] Fix configure check and makefiles + * 652261 : xvidenc needs codec profiles in caps + * 652694 : rtpvp8pay fails on error-resilient stream + * 652902 : vp8dec: Add check if we have legal aspect-ratio before reset it. + * 652924 : [tta] playing white noise instead of file contents + * 652951 : vp8enc: Set correct timestamp/duration for altref/invisible frames + * 652995 : legacyh264parse wrong access-unit output + * 653013 : h264parse fails to create SPS when input uses 4 byte start code + * 653087 : [h264parse] Assertions on valid h264 streams when converting to stream-format=avc,alignment=nal + * 653161 : wininet.h checking during configure + * 653481 : tsdemux: Fail to sync to stream when input buffers lacks OFFSET + * 653544 : [basevideodecoder] Immediately forwards synchronized events + * 654293 : [basevideodecoder] Leaks coder_hook + * 654416 : [mpegtsmux] gst_buffer_unref () call segfaults + * 654572 : Set but unused warning + * 654657 : tsdemux: newsegment for push-mode is wrong + * 654666 : mpeg4videoparse: Fix failure to find frames on some streams + * 654799 : Add force-key-unit support to mpegtsmux + * 654805 : Missing gstdecklink.h in sys/decklink when doing a " make dist " + * 654806 : Missing dependencies for gst/intra + * 654840 : dfbvideosink: fix harmless typo in variable initialization + * 654844 : dtsdec: stream with jitter sounds broken + * 655112 : videomaxrate: add " max-rate " property and improve caps negotiation + * 655319 : hlsdemux: compilation problem on NetBSD caused by wrong GST_ELEMENT_ERROR usage + * 655361 : pcapparse: fix SLL parsing + * 655540 : mpegtsbase: gst_structure_id_get() called with wrong type + * 655804 : Play position advancing but frames not rendered + * 656107 : shmsink should have a buffer-time property. + * 656115 : mpegpsdemux: handle SCR jumps/discontinuities more gracefully + * 656164 : dirac triggers set but unused variable warnings + * 656166 : schroedinger: triggers set-but-not-used warnings from gcc + * 656226 : [faac] Does not passthrough downstream caps constraints to upstream + * 656641 : Segfault using ofa element + * 656686 : celtdec: make this compile with git libcelt + * 656928 : vp8: probe for the new tuning API to keep building with older libvpx + * 656929 : vp8: drop frames is a uint in the libvpx API, not a boolean + * 657033 : kate: emit timed metadata as tags + * 657091 : kate: do not clear out high bits from display area + * 657250 : rsndvdbin attempts to modify read only metadata + * 657363 : tests: make camerabin2 test build + * 657368 : basevideoencoder: fix element leak + * 657419 : basevideoenc: do not try to calculate latency from an unknown framerate + * 658251 : dccp: cross compile warning - " WINVER " redefined + * 658450 : mpegvideoparse: make this build with older glib + * 658800 : h264parse: do not try to read from a non existent VUI + * 658940 : kate: flush on seek, and ensure we cancel any waiting buffer + * 658973 : mpegvideoparse: avoid reading past a buffer + * 659061 : camerabin2: replace deprecated g_atomic_int_exchange_and_add + * 659087 : celt: various cleanups/fixes + * 659485 : mpegpsdemux: large MPEG PS file not working when seeking/transcoding with encodebin + * 659836 : Transcoding crash with new git master FAAC + * 659924 : Fix some MPEG-2 transport streams containing audio and private data + * 660118 : mpegtsdemux: keep CRC data in .rodata + * 660234 : [mpeg4videoparse] Use strings for the profile/level fields in caps + * 660364 : opus: misc cleanup/fixes + * 660406 : [rtpvp8] update rtp vp8 pay/depay to the latest IETF draft version 01 + * 660469 : opus/celt: fix calculation of filler data size + * 660528 : kate: rendering performance improvements + * 660630 : kate: fix race condition on PAUSED- > READY state change + * 660999 : opusenc: fix latency query + * 661053 : some patches to gsth264parse.c + * 661066 : Segfault when transcoding a file from Ogg to Quicktime + * 661098 : [rtmp] need to initialize winsock 2 dll + * 661113 : Some patches to h264parse + * 661614 : mplex configure check broken with mjpegtools 2.0.0 + * 662164 : vc1parser: fix parsing of FRMRTQ_POSTPROC, BITRTQ_POSTPROC and sequence layer + * 662321 : GstVideoContext to enable context sharing + * 662420 : Abstract surface API for HW accelerated decoders + * 662746 : vc1parser: fix parsing of RANGEREDFRM + * 662776 : vc1parser: do not overwrite buffer + * 662857 : tiger: add a 'silent' property to skip rendering + * 662949 : [h264parse] Doesn't use PAR from bitstream + * 663180 : h264parse tests are not valgrind clean + * 663203 : colorspace: fix r210 writing only half a scanline + * 663234 : tests: allow building with older versions of glib (g_list_free_full) + * 663235 : mpegvideoparser: input data is const, mark it so + * 663238 : colorspace: fix width/height mismatches + * 663309 : mpegvideoparse: Fix in picture header parse. + * 663346 : autoconvert: merge caps instead of using union + * 663552 : h264parse: conditional jump or or move depends on uninitialised value(s) + * 663768 : mimic, opencv, vp8, acmmp3dec, linsys: Don't build static plugins + * 663782 : Progressive support for gstmpegvideoparser + * 664048 : camerabin: Document requirement to be in PLAYING state for capture-start + * 664123 : [h264parse] Conversion from AVC to byte stream fails for nal_length_size != 4 + * 664257 : [mpegtsparse] Support UTF-16BE text encoding + * 664631 : Build error: gstsmooth.c:205:3: error: format '%d' expects type 'int', but argument 8 has type 'gulong' + * 664725 : aiffparse: extract embedded ID3 tags + * 664815 : opusenc: Fixing " Unused var " compiling error for opus codec + * 664817 : Adding opus RTP payloader/depayloader module + * 665078 : opus: work without the Ogg headers + * 665205 : rsndvd: sends buffers before newsegment event + * 665378 : Fail to compile xvidenc in ubuntu 11.04 uninstalled setup + * 665418 : h264parse produce AVC: nal size -1702885365 + * 665584 : [h264parse] Reduce latency and cpu usage for packetized input + * 665631 : mpeg4videoparse regressions + * 665703 : mpeg4videoparse: memory leak + * 665814 : mpegtsdemux: add a property to control whether to signal no-more-pads + * 666517 : Frequent deadlock while discovering a MPEG TS file + * 666584 : Invalid memory access in gsth264parse + * 666750 : Compiler warning- > error in faac + * 667560 : h264parse: H.264 reverse playback does not work anymore + * 668192 : codecparsers: h264: fix ref_pic_list_modification() + * 668311 : does pkg-config check for gst-plugins-good-0.10.pc which is not installed + * 668380 : [h264parse] [codecparsers] gst_h264_parse_hrd_parameters not reading cbr_flag + * 668381 : [h264parse] [codecparsers] SEI parsing fails when payload contains emulation_prevention_three_byte + * 668471 : [h264parse] Negotiation regression for autoplugging + * 668521 : REQUIREMENTS file doesn't list requirement for rtmp + * 668627 : [h264parse] conversion avc/au to byte-stream/au broken + * 668833 : kateenc provides wrong duration information when muxed in Matroska + * 669365 : rotate plugin docs say that 'angle' is in radians, yet seems to be in degrees + * 669697 : shmsink blocking forever + * 628609 : The qtwrapperaudiodec_samr decoder doesn't handle buffers containing many AMR frames properly + * 655318 : photography: add missing FLICKER_REDUCTION capability + +API additions since 0.10.22: + + * GstSurfaceBuffer, GstSurfaceConverter, GstDeviceContext + * codec parser library + * video decoder and encoder base class API Changes since 0.10.21: diff --git a/RELEASE b/RELEASE index 32685ce..d1f4707 100644 --- a/RELEASE +++ b/RELEASE @@ -1,5 +1,5 @@ -Release notes for GStreamer Bad Plug-ins 0.10.22 "Toy Piano" +Release notes for GStreamer Bad Plug-ins 0.10.23 "The Game Has Changed" @@ -60,148 +60,328 @@ contains a set of well-supported plug-ins, but might pose problems for 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 + * aiffparse: extract ID3 tags embedded in ID3 chunks + * amrwbenc: switch to the free vo-amrwbenc library + * apexsink: Add support for generation 2 AirTunes hardware + * applemedia: bump the rank of qtkitvideosrc to PRIMARY + * autoconvert: remove the initial-identity property from autoconvert, update for basetransform changes in core + * avcsrc: add AVC Video Services plugin for OS/X (captures DV or HDV video from Firewire port) + * basevideo: cater for format conversion + * basevideo: Fix locking, especially if both pads have different streaming threads + * basevideodecoder: add API to drop a frame and post a QoS message on the bus + * basevideodecoder: reverse playback support; limited legacy seeking support + * basevideodecoder: better caps handling; event handling fixes esp. discont and flush + * basevideoencoder: add support for new force-key-unit event API + * basevideoencoder: implement preset interface; enable clipping by default + * basevideoencoder: proxy the width/height/framerate/PAR constraints of downstream caps to upstream + * bayer2rgb: rewrite signal processing and convert to orc for better speed + * camerabin2: no longer experimental; add flags to disable conversion elements + * camerabin2: add "audio-filter" property; countless fixes + * camerabin: add "image-formatter" property + * camerabin: prevent audio source from providing clock; reset audiosrc timestamping + * camerabin: prevent captures from being lost when switching resolutions + * colorspace: Add JPEG YCbCr matrix + * colorspace: fix odd width and height handling in some fastpath cases + * colorspace: fix r210 writing only half a scanline + * d3dvideosink: new d3dvideosink element + * dc1394src: implement LATENCY query + * debugutils: new elements: compare (with memcmp and ssim method) and debugspy + * decklink: add more modes, connection type, "audio-input" and "subdevice" properties + * decklink: add support for Windows; properly set up analog input + * decklinksink: add audio support + * dfbvideosink: also consider non-accelerated DirectFB surfaces + * diracparse: make diracparse work correctly + * directdrawsink: handle pixel-aspect-ratio, lower rank to secondary + * dshowdecwrapper: fix COM initialization + * dtmf: post messages when starting to send/receive DTMF + * dtmfsrc: align DTMF sound buffers with last-stop from event + * dtmfsrc: reject start/stop requests that come out of order + * dvbsrc: add "timeout" property and use (interruptible) GstPoll + * element-templates: improve the audiofilter template + * faac: add properties for VBR encoding + * faac: add profile and level to the caps; negotiate output format from downstream caps + * facedetect: detect face features (mouth, nose, eyes) and drop faces that don't have them + * faceoverlay: add element that displays an SVG image over a detected face + * freeverb: new freeverb element (reverb effect) + * h263parse: also extract width and height into caps; propagate downstream caps + * h264parse: many negotiation and caps-related fixes; propagate downstream caps where appropriate + * h264parse: countless parsing and timestamping fixes + * hlsdemux: allow bandwidth switching during caching of fragments + * hlsdemux: make more error resilient + * hlsdemux: cache number of fragments we are required to cache + * hlsdemux: add seeking support (for streams that are not live) + * hlsdemux: implement duration and seeking queries; improved duration reporting + * hlsdemux: Send a flush-stop when switching pads. Fixes A -> A/V sync issue + * hlsdemux: implement buffering by posting buffering messages on the bus + * hlsdemux: send NEWSEGMENT events in TIME format + * hlsdemux: switch to higher/lower bitrate by more than one step at a time + * hsldemux: handle change of media types + * inter: new intermediate surface elements: inter{video,audio,sub}{sink,src} to decouple elements within the same pipeline + * invtelecine: Remove in favor of fieldanalysis + * irtspparse: add Interleaved RTSP parser element + * jifmux: change class to formatter, bump rank to secondary + * kate: do not consider an empty SPU to be a fatal error + * kateenc: don't error on empty input buffers + * kate: pass on timed event metadata as tags when we can + * kate: support for rendering on several YUV formats + * legacyh264parse: create correct avc codec-data + * legacyh264parse: delay pushing buffers until we have width/height + * legacyh264parse: fix output caps alignment for avc input + * modplug: fix modules playing as mono instead of stereo + * motioncells: new element to detect areas of motion + * mpeg2enc: support mjpegtools 2.0 + * mpeg4videoparse: properly handle profile and level in caps + * mpegpsdemux: timestamp handling and seeking fixes + * mpegpsmux: remember whether an incoming buffer is a keyunit or not + * mpegpsmux: add "aggregate-gops" property to aggregate GOPs into buffer lists + * mpegpsmux: put stream headers into output caps + * mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams + * mpegtsbase: actually set seen_pat=TRUE when we see a PAT + * mpegtsdemux: always try to seek for to a keyframe; add accurate seeking support + * mpegtsdemux: fix frequent deadlock demuxing MPEG TS + * mpegtsdemux: fix scanning stopping too early + * mpegtsdemux: fix timestamps in newsegement event after seeking + * mpegtsdemux: implement key_unit seeking for MPEG2 video + * mpegtsdemux: payload parsing for H.264 + * mpegtsdemux: push based seeking based on PCR + * mpegtsmux: add support for force key unit events + * mpegtsmux: unset the current PCR stream when starting a new unit + * mpegtsparse: fix parsing of PSI table IDs + * mpegtsparse: support more character set encodings + * mpegts: stop scanning for keyframes as early as possible + * ofa: don't crash when there's no data to create a fingerprint from + * openal: new OpenAL sink and source elements: openalsrc, openalsink + * opencv: allow to build against 2.3.1 + * opus: new Opus audio codec elements: opusdec, opusenc, opusparsertpopusdepay, rtpopusay + * pcapparse: also support extracting tcp data; fix SLL parsing + * photography: add missing FLICKER_REDUCTION capability + * pvr2d: new pvrvideosink element + * psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams + * removesilence: new plugin + * resindvdsrc: do not try to seek before the first chapter + * rotate: angle is in radians already, do not scale it + * rsvgdec: use input buffer timings if possible + * rtmp: add rtmpsink element for output to an RTMP server + * rtpdtmfmux: Add last-stop to dtmf-event upstream events + * rtpdtmfsrc: Correctly recognize the end of a buffer + * rtpdtmfsrc: Just error out if there is no clock + * rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap + * rtpdtmfsrc: Put the inter digit interval at the end, not at the start + * rtpdtmfsrc: Respect ptime from the caps + * rtpdtmfsrc: Start at the last_stop from the start event if there was one + * rtpvp8: fix bitstream parsing using the wrong kind of bitreader + * rtpvp8: Reject unknown bitstream versions + * rtpvp8: Update the pay/depay to the ietf-draft-01 spec + * schroenc: balance encoder and video format alloc/dealloc + * schroenc: remove shape_output handling + * scopes: add a new element similar to synaesthesia + * scopes: add a simple fft based scope + * scopes: draw pixels with signle 32bit writes + * scopes: first version of a scopes plugin using a new baseclass + * scopes: fix elements descriptions + * shm: add ability to add uint64 tags on buffers + * shm: add buffer-time property + * smooth: new element, port to 0.10 + * soundtouch: Handling incoming rate when requested + * spacescope: add color-modes + * spacescope: use the drawhelpers and add a draw-style property + * spandsp: Adding spandsp plugin with spanplc element for packet loss concealment + * spectrascope: use add_pixel for non-white pixels + * subenc: Add webvttenc element + * teletextdec: New teletext decoder plugin based in zvbi + * tiger: add a "silent" property to skip rendering + * tsdemux: add explicit supported AAC stream-format in template caps + * tsdemux: countless fixes and improvements + * tta: decrease rank to NONE + * video: abstract surface API for HW accelerated codecs + * video: add GstVideoContext interface + * video: add libgstbasevideo PC file + * voaacenc: add new plugin for audio AAC encoder based on vo-aacenc lib + * voaacenc: add profile and level to the caps + * vp8dec: add check if we have legal aspect-ratio before reset it + * vp8dec: propagate downstream flow return to upstream + * vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted + * vp8enc: add "lag-in-frames" and "min/maxsection-pct" options + * vp8enc: generate a timestamp for alt-ref frames + * wrappercamerabinsrc: push newsegments on video capture start + * xviddec: add video/mpeg,mpegversion=4 to the caps + * xvidenc: add profile/level to the caps and negotiate them with downstream + * xvidenc: add support for levels 4a/5/6 of the simple profile + * xvidenc: don't add the profile/level to the video/x-xvid caps 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 + * 648021 : gst-plugins-bad/gst/nsf/ code not needed (can be replaced by ext/gme/) + * 655887 : gst_buffer_create_sub: assertion `buffer- > size > = offset + size' failed + * 597822 : Add removesilence plugin + * 608171 : [dvbsrc] many wake-ups in read_device on signal loss. + * 652677 : [bayer] compiler warning in orc-generated code + * 652956 : vp8enc: add more encoder options + * 654310 : FAAC VBR encoding support + * 655362 : [decklink] Add support for Windows + * 532820 : [mpegtsdemux] garbled display + * 550230 : A plug-in " openalsrc " for capture audio using OpenAL + * 569305 : [mgpegvideoparse] not all tags show up in gst.extend.discoverer + * 578926 : [h264parse] Make sure h264parse are autoplugged when required + * 589064 : resindvd doesn't behave right for " previous chapter " + * 599469 : resindvd: problems pre-rolling in the absence of audio + * 609639 : xviddec plugin caps does not allow MPEG 4 video - trivial fix + * 611046 : mpegtsmux: pcr problems + * 615615 : A plugin for audio output using OpenAL + * 615681 : [mpeg[pt]sdemux] do not support AAC LATM Stream type + * 616421 : celtenc/dec produces silent output with live sources + * 619739 : Teletext decoder element based on libzvbi + * 620119 : [dvdspu] Program received signal SIGSEGV, Segmentation fault. + * 625190 : Directshow decoders wrappers have COM initialization issues + * 625520 : dc1394src: timestamping problem + * 628284 : [rsvgdec] all buffer timestamps are set to zero + * 629244 : [opencv] Add motion detection element + * 631390 : dfbvideosink does not consider surfaces when blit is not accelerated + * 631416 : mpegpsdemux hits EOS too early + * 634582 : Localized menus when playing DVD + * 635917 : [mpegtsparse] don't parse and post all the EIT events. + * 640017 : basevideodecoder: add API to drop a frame and post a QoS message on the bus + * 641405 : [vp8enc] patch - allow to use best quality + * 641918 : [Camerabin2] Allow previewing without capture + * 642023 : [mpeg4videoparse] assertion `a_d != 0' failed + * 642759 : faceoverlay plugin: displays an SVG image over a detected face on a video stream + * 647055 : liveadder has a memory leak + * 647748 : [aacenc] add AAC audio encoder based on vo-aacenc lib + * 647842 : [faac] Detect ADTS/raw output in the downstream caps + * 648245 : mpegtsdemux: truncates last buffer + * 648478 : jpegparse: unit test for APP1/exif & comment parsing + * 648565 : clean_ups in opencv + * 648933 : [mpegvideoparse] Avoid searching for picture start codes when not needed + * 649391 : [jifmux] bump rank from none + * 649822 : wrappercamerabinsrc: add a filter property + * 649832 : [camerabin2]: negotiation problems when capturing + * 649931 : [apexsink] Allow to play to new, generation 2 AirTunes (AirPlay) hardware + * 650072 : [basevideoencoder] Fix use-after-free after state change transition + * 650171 : gst/dccp: fix build on newer mingw + * 650228 : Fix h264parse negotiation + * 650323 : [h264parse] leaks entire input if converting bytestream - > avc,au + * 650416 : [h264parse] Assertion failure: nal_size > =2 + * 650484 : h264parse should increase max allowed PPS id from 31 to 255 + * 650594 : [faac] AAC profile support in the caps + * 650595 : voaacenc needs profile caps support + * 650914 : decklink sink has no audio support + * 650970 : mpeg2enc: fix build with mjpegtools 2.0 + * 651050 : [mpegtsmux] error " Stream on pad xxx is not associated with any program " debug output incorrect pointer instead of padname + * 651779 : directdrawsink: keep aspect ratio + * 651782 : add d3dvideosink on windows + * 652035 : [d3dvideosink] Fix configure check and makefiles + * 652261 : xvidenc needs codec profiles in caps + * 652694 : rtpvp8pay fails on error-resilient stream + * 652902 : vp8dec: Add check if we have legal aspect-ratio before reset it. + * 652924 : [tta] playing white noise instead of file contents + * 652951 : vp8enc: Set correct timestamp/duration for altref/invisible frames + * 652995 : legacyh264parse wrong access-unit output + * 653013 : h264parse fails to create SPS when input uses 4 byte start code + * 653087 : [h264parse] Assertions on valid h264 streams when converting to stream-format=avc,alignment=nal + * 653161 : wininet.h checking during configure + * 653481 : tsdemux: Fail to sync to stream when input buffers lacks OFFSET + * 653544 : [basevideodecoder] Immediately forwards synchronized events + * 654293 : [basevideodecoder] Leaks coder_hook + * 654416 : [mpegtsmux] gst_buffer_unref () call segfaults + * 654572 : Set but unused warning + * 654657 : tsdemux: newsegment for push-mode is wrong + * 654666 : mpeg4videoparse: Fix failure to find frames on some streams + * 654799 : Add force-key-unit support to mpegtsmux + * 654805 : Missing gstdecklink.h in sys/decklink when doing a " make dist " + * 654806 : Missing dependencies for gst/intra + * 654840 : dfbvideosink: fix harmless typo in variable initialization + * 654844 : dtsdec: stream with jitter sounds broken + * 655112 : videomaxrate: add " max-rate " property and improve caps negotiation + * 655319 : hlsdemux: compilation problem on NetBSD caused by wrong GST_ELEMENT_ERROR usage + * 655361 : pcapparse: fix SLL parsing + * 655540 : mpegtsbase: gst_structure_id_get() called with wrong type + * 655804 : Play position advancing but frames not rendered + * 656107 : shmsink should have a buffer-time property. + * 656115 : mpegpsdemux: handle SCR jumps/discontinuities more gracefully + * 656164 : dirac triggers set but unused variable warnings + * 656166 : schroedinger: triggers set-but-not-used warnings from gcc + * 656226 : [faac] Does not passthrough downstream caps constraints to upstream + * 656641 : Segfault using ofa element + * 656686 : celtdec: make this compile with git libcelt + * 656928 : vp8: probe for the new tuning API to keep building with older libvpx + * 656929 : vp8: drop frames is a uint in the libvpx API, not a boolean + * 657033 : kate: emit timed metadata as tags + * 657091 : kate: do not clear out high bits from display area + * 657250 : rsndvdbin attempts to modify read only metadata + * 657363 : tests: make camerabin2 test build + * 657368 : basevideoencoder: fix element leak + * 657419 : basevideoenc: do not try to calculate latency from an unknown framerate + * 658251 : dccp: cross compile warning - " WINVER " redefined + * 658450 : mpegvideoparse: make this build with older glib + * 658800 : h264parse: do not try to read from a non existent VUI + * 658940 : kate: flush on seek, and ensure we cancel any waiting buffer + * 658973 : mpegvideoparse: avoid reading past a buffer + * 659061 : camerabin2: replace deprecated g_atomic_int_exchange_and_add + * 659087 : celt: various cleanups/fixes + * 659485 : mpegpsdemux: large MPEG PS file not working when seeking/transcoding with encodebin + * 659836 : Transcoding crash with new git master FAAC + * 659924 : Fix some MPEG-2 transport streams containing audio and private data + * 660118 : mpegtsdemux: keep CRC data in .rodata + * 660234 : [mpeg4videoparse] Use strings for the profile/level fields in caps + * 660364 : opus: misc cleanup/fixes + * 660406 : [rtpvp8] update rtp vp8 pay/depay to the latest IETF draft version 01 + * 660469 : opus/celt: fix calculation of filler data size + * 660528 : kate: rendering performance improvements + * 660630 : kate: fix race condition on PAUSED- > READY state change + * 660999 : opusenc: fix latency query + * 661053 : some patches to gsth264parse.c + * 661066 : Segfault when transcoding a file from Ogg to Quicktime + * 661098 : [rtmp] need to initialize winsock 2 dll + * 661113 : Some patches to h264parse + * 661614 : mplex configure check broken with mjpegtools 2.0.0 + * 662164 : vc1parser: fix parsing of FRMRTQ_POSTPROC, BITRTQ_POSTPROC and sequence layer + * 662321 : GstVideoContext to enable context sharing + * 662420 : Abstract surface API for HW accelerated decoders + * 662746 : vc1parser: fix parsing of RANGEREDFRM + * 662776 : vc1parser: do not overwrite buffer + * 662857 : tiger: add a 'silent' property to skip rendering + * 662949 : [h264parse] Doesn't use PAR from bitstream + * 663180 : h264parse tests are not valgrind clean + * 663203 : colorspace: fix r210 writing only half a scanline + * 663234 : tests: allow building with older versions of glib (g_list_free_full) + * 663235 : mpegvideoparser: input data is const, mark it so + * 663238 : colorspace: fix width/height mismatches + * 663309 : mpegvideoparse: Fix in picture header parse. + * 663346 : autoconvert: merge caps instead of using union + * 663552 : h264parse: conditional jump or or move depends on uninitialised value(s) + * 663768 : mimic, opencv, vp8, acmmp3dec, linsys: Don't build static plugins + * 663782 : Progressive support for gstmpegvideoparser + * 664048 : camerabin: Document requirement to be in PLAYING state for capture-start + * 664123 : [h264parse] Conversion from AVC to byte stream fails for nal_length_size != 4 + * 664257 : [mpegtsparse] Support UTF-16BE text encoding + * 664631 : Build error: gstsmooth.c:205:3: error: format '%d' expects type 'int', but argument 8 has type 'gulong' + * 664725 : aiffparse: extract embedded ID3 tags + * 664815 : opusenc: Fixing " Unused var " compiling error for opus codec + * 664817 : Adding opus RTP payloader/depayloader module + * 665078 : opus: work without the Ogg headers + * 665205 : rsndvd: sends buffers before newsegment event + * 665378 : Fail to compile xvidenc in ubuntu 11.04 uninstalled setup + * 665418 : h264parse produce AVC: nal size -1702885365 + * 665584 : [h264parse] Reduce latency and cpu usage for packetized input + * 665631 : mpeg4videoparse regressions + * 665703 : mpeg4videoparse: memory leak + * 665814 : mpegtsdemux: add a property to control whether to signal no-more-pads + * 666517 : Frequent deadlock while discovering a MPEG TS file + * 666584 : Invalid memory access in gsth264parse + * 666750 : Compiler warning- > error in faac + * 667560 : h264parse: H.264 reverse playback does not work anymore + * 668192 : codecparsers: h264: fix ref_pic_list_modification() + * 668311 : does pkg-config check for gst-plugins-good-0.10.pc which is not installed + * 668380 : [h264parse] [codecparsers] gst_h264_parse_hrd_parameters not reading cbr_flag + * 668381 : [h264parse] [codecparsers] SEI parsing fails when payload contains emulation_prevention_three_byte + * 668471 : [h264parse] Negotiation regression for autoplugging + * 668521 : REQUIREMENTS file doesn't list requirement for rtmp + * 668627 : [h264parse] conversion avc/au to byte-stream/au broken + * 668833 : kateenc provides wrong duration information when muxed in Matroska + * 669365 : rotate plugin docs say that 'angle' is in radians, yet seems to be in degrees + * 669697 : shmsink blocking forever + * 628609 : The qtwrapperaudiodec_samr decoder doesn't handle buffers containing many AMR frames properly + * 655318 : photography: add missing FLICKER_REDUCTION capability Download @@ -230,47 +410,81 @@ Applications Contributors to this release + * Alessandro Decina * Alexey Fisher * Andoni Morales Alastruey * Andreas Frisch * Arun Raghavan - * Benjamin Gaignard - * Byeong-ryeol Kim - * Carl-Anton Ingmarsson - * Chris E Jones + * Brad Smith + * Brian Gitonga Marete * Christian Fredrik Kalager Schaller + * Danilo Cesar Lemes de Paula + * David King * David Schleef + * Debarshi Ray * Edward Hervey - * Fabrizio Milo - * Haakon Sporsheim - * Hu Gang + * Felipe Contreras + * Gabriel Strimtu + * George Kiagiadakis + * Guillaume Emont + * Gwenole Beauchesne + * Götz Waschk * Jan Schmidt * Janne Grunau + * Jonas Larsson + * Josep Torra + * Joshua M. Doe + * Julien Isorce + * Julien MOUTTE + * Krzysztof Krakowiak * Lasse Laukkanen + * Laura Lucas Alday * Lauri Lehtinen + * Levente Farkas * Luciana Fujii Pontello * Luis de Bethencourt + * Marc-André Lureau * Mark Nauwelaerts * Mart Raudsepp - * Mihai Draghicioiu - * Olivier Aubert + * Martin Storsjo + * Matej Knopp + * Mukul Majmudar + * Nicola Murino + * Nicolas Dufresne + * Olaf Seibert + * Oleksij Rempel (Alexey Fisher) * Olivier Crête - * Patricia Muscalu - * Philip Jägenstedt - * Philippe Normand + * Pino Toscano + * Quentin Smith + * Rafael Diniz * Raimo Järvi + * Raluca Elena Podiuc * René Stadler * Reynaldo H. Verdejo Pinochet + * Rob Clark + * Robert Jobbagy * Robert Swain + * Sameer Naik * Sebastian Dröge + * Sebastian Pölsterl * Sjoerd Simons * Sreerenj Balachandran * Stefan Kost + * Stefan Sauer * Teemu Katajisto * Thiago Santos * Thibault Saunier + * Thijs Vermeir + * Tiago César Katcipis + * Tim 'mithro' Ansell * Tim-Philipp Müller + * Tom Deseyn + * Tommi Myöhänen + * Vincent Génieux * Vincent Penquerc'h * Víctor Manuel Jáquez Leal + * W. Michael Petullo + * Youness Alaoui + * Zhao Halley * benjamin gaignard   \ No newline at end of file diff --git a/REQUIREMENTS b/REQUIREMENTS index ca498fc..601cebb 100644 --- a/REQUIREMENTS +++ b/REQUIREMENTS @@ -63,7 +63,8 @@ libamrwb (for AMR-WB support) (http://www.penguin.cz/~utx/amr) libkate (for Kate support) (http://libkate.googlecode.com/) - +librtmp (for RTMP support) + (http://rtmpdump.mplayerhq.hu/) Optional (debian) packages: =========================== diff --git a/aclocal.m4 b/aclocal.m4 index 2d3c3f2..9ba9cfb 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -13,18 +14,21 @@ 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. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. 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. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 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_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -34,7 +38,7 @@ 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], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_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 +[AM_AUTOMAKE_VERSION([1.11.3])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. +# Copyright (C) 2001, 2003, 2005, 2011 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 + # 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/../..'. @@ -144,14 +150,14 @@ AC_CONFIG_COMMANDS_PRE( 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. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 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 +# serial 12 # 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, @@ -191,6 +197,7 @@ AC_CACHE_CHECK([dependency style of $depcc], # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -255,7 +262,7 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -320,10 +327,13 @@ AC_DEFUN([AM_DEP_TRACK], if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -557,12 +567,15 @@ for _am_header in $config_headers :; do 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. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 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_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -602,8 +615,8 @@ 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. +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, +# 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -623,7 +636,7 @@ AC_DEFUN([AM_MAINTAINER_MODE], [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]) +AC_MSG_CHECKING([whether to enable 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 @@ -769,12 +782,15 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 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_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -797,13 +813,14 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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 +# serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -811,13 +828,13 @@ 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)])]) @@ -893,13 +910,13 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 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 +# serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -914,18 +931,50 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl 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. +# Copyright (C) 2001, 2003, 2005, 2011 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_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -948,13 +997,13 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 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 +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -963,13 +1012,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) 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. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -991,10 +1040,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # 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]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) @@ -1066,6 +1116,7 @@ AC_SUBST([am__untar]) 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-libtool.m4]) m4_include([common/m4/as-objc.m4]) m4_include([common/m4/as-python.m4]) m4_include([common/m4/as-scrub-include.m4]) diff --git a/autoregen.sh b/autoregen.sh deleted file mode 100755 index c67a299..0000000 --- a/autoregen.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./autogen.sh $@ diff --git a/common/Makefile.in b/common/Makefile.in index 862453b..88b10a0 100644 --- a/common/Makefile.in +++ b/common/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -129,7 +130,6 @@ 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@ @@ -147,7 +147,6 @@ 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@ @@ -182,6 +181,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -221,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,6 +239,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -246,13 +248,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -277,13 +282,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -331,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -362,8 +369,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -387,6 +398,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -411,10 +424,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -426,6 +443,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -450,6 +471,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -485,7 +507,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -776,10 +797,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/common/check-exports b/common/check-exports index c6d3eca..dd7bafb 100755 --- a/common/check-exports +++ b/common/check-exports @@ -41,9 +41,7 @@ fi # 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/ && \ + if ($3 !~ /^_gst_[a-z]*_init/ && \ $3 !~ /^__gst_element_details_/ && \ $3 !~ /^__gst_element_factory_add_/ && \ $3 !~ /^gst_interfaces_marshal/ && \ diff --git a/common/gst.supp b/common/gst.supp index 7e24bc8..d7f8961 100644 --- a/common/gst.supp +++ b/common/gst.supp @@ -915,7 +915,7 @@ fun:*alloc ... fun:g_type_init* - fun:init_pre + fun:init_pre* } { @@ -3894,6 +3894,13 @@ obj:*/sed } +{ + + Memcheck:Addr8 + ... + obj:*/sed +} + # GLib 2.23 interface vtable { @@ -3927,3 +3934,30 @@ fun:_gst_plugin_loader_client_run fun:main } + +{ + + Memcheck:Cond + fun:*strcasecmp* + ... + fun:__dcigettext +} + +{ + + Memcheck:Value8 + fun:*strcasecmp* + ... + fun:__dcigettext +} + +{ + + Memcheck:Leak + fun:malloc + ... + fun:gst_poll_new + fun:gst_poll_new_timer + fun:gst_system_clock_init +} + diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj index 688b2c0..5b13352 100755 --- a/common/gstdoc-scangobj +++ b/common/gstdoc-scangobj @@ -43,6 +43,7 @@ require "gtkdoc-common.pl"; my $MODULE; my $OUTPUT_DIR; my $INSPECT_DIR; +my $VERBOSE; my $PRINT_VERSION; my $PRINT_HELP; my $TYPE_INIT_FUNC="g_type_init ()"; @@ -55,10 +56,11 @@ my $TYPE_INIT_FUNC="g_type_init ()"; 'type-init-func' => \$TYPE_INIT_FUNC, 'output-dir' => \$OUTPUT_DIR, 'inspect-dir' => \$INSPECT_DIR, + 'verbose' => \$VERBOSE, '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"); +GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "verbose", "version", "help"); if ($NO_GTK_INIT) { # Do nothing. This just avoids a warning. @@ -75,15 +77,19 @@ if (!$MODULE) { } 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"; + print <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; } @@ -230,7 +240,7 @@ get_object_types (void) if (gst_plugin_get_filename (plugin) == NULL) continue; - g_print ("plugin: %s source: %s\\n", plugin->desc.name, source); + $debug_log ("plugin: %s source: %s", plugin->desc.name, source); if (reinspect) { inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml", @@ -277,7 +287,7 @@ get_object_types (void) const gchar *pad_pres[] = { "always","sometimes","request" }; GList *pads, *pad; - /*g_print (" feature: %s\\n", feature->name);*/ + $debug_log (" feature: %s", feature->name); factory = GST_ELEMENT_FACTORY (feature); factories = g_list_prepend (factories, factory); @@ -320,7 +330,7 @@ get_object_types (void) g_string_free (xmlstr, TRUE); - g_message ("number of element factories: %d", g_list_length (factories)); + $debug_log ("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); @@ -333,7 +343,7 @@ get_object_types (void) 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)); + $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory)); object_types[i++] = type; } else { g_message ("type info for factory %s not found", @@ -522,7 +532,7 @@ output_object_signal (FILE *fp, gchar signal_name[128]; gchar flags[16]; - /* g_print ("Object: %s Signal: %u\\n", object_name, signal_id);*/ + $debug_log ("Object: %s Signal: %u", object_name, signal_id); param_num = 1; widget_num = event_num = callback_num = 0; @@ -765,6 +775,16 @@ output_object_hierarchy (void) fclose (fp); } +static int +compare_types (const void *a, const void *b) +{ + const char *na = g_type_name (*((GType *)a)); + const char *nb = g_type_name (*((GType *)b)); + + return g_strcmp0 (na, nb); +} + + /* This is called recursively to output the hierarchy of a object. */ static void output_hierarchy (FILE *fp, @@ -783,6 +803,8 @@ output_hierarchy (FILE *fp, fprintf (fp, "%s\\n", g_type_name (type)); children = g_type_children (type, &n_children); + qsort (children, n_children, sizeof (GType), compare_types); + for (i=0; i < n_children; i++) output_hierarchy (fp, children[i], level + 1); @@ -1547,15 +1569,20 @@ if ($CC =~ /libtool/) { $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"; +my $stdout=""; +if (!defined($VERBOSE) or $VERBOSE eq "0") { + $stdout=">/dev/null"; +} + +# Compiling scanner +$command = "$CC $stdout $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"; +# Linking scanner +$command = "$LD $stdout -o $MODULE-scan $o_file $LDFLAGS"; system($command) == 0 or die "Linking of scanner failed: $!\n"; -print "gtk-doc: Running scanner $MODULE-scan\n"; +# Running scanner $MODULE-scan "; system("sh -c ./$MODULE-scan") == 0 or die "Scan failed: $!\n"; if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) { @@ -1563,9 +1590,9 @@ if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) { } &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_interfaces_filename, $new_interfaces_filename, 0); +#&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0); #&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 index ca6a351..8cc42e7 100644 --- a/common/gtk-doc-plugins.mak +++ b/common/gtk-doc-plugins.mak @@ -55,12 +55,12 @@ DOC_STAMPS = \ # files generated/updated by gtkdoc-scangobj SCANOBJ_FILES = \ - $(DOC_MODULE).signals \ + $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).types \ - $(DOC_MODULE).args + $(DOC_MODULE).signals \ + $(DOC_MODULE).types SCANOBJ_FILES_O = \ .libs/$(DOC_MODULE)-scan.o @@ -78,11 +78,8 @@ REPORT_FILES = \ $(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 @@ -104,32 +101,34 @@ INSPECT_ENVIRONMENT=\ 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 ***' +# gstdoc-scanobj produces 5 output files (.new) +# scangobj-merge.py merges them into the file which we commit later +# TODO: also merge the hierarchy +scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) + @echo " DOC Introspecting 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; \ + mkdir -p $(INSPECT_DIR); \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + 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)" \ + $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)" \ --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ + echo " DOC Merging introspection data" && \ $(PYTHON) \ $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ if test x"$(srcdir)" != x. ; then \ @@ -145,91 +144,102 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp ### scan headers; done on every build ### scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp - @echo '*** Scanning header files ***' + @echo ' DOC Scanning header 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 + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ gtkdoc-scan \ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ --module=$(DOC_MODULE) \ - --source-dir=$(DOC_SOURCE_DIR) \ + $${_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 ***' + @echo ' DOC 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) \ + @gtkdoc-mktmpl --module=$(DOC_MODULE) + @$(PYTHON) \ $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl - @rm -f tmpl-build.log - touch tmpl-build.stamp + @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true -#### build xml; done on every build #### +#### xml #### -### 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 ***' + @echo ' DOC 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 \ + @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 + $(MKDB_OPTIONS) + @cp ../version.entities xml + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true -#### build html; done on every step #### +#### html #### 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 + @echo ' DOC Building HTML' + @rm -rf html + @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 \ + @cp -pr xml html + @cp ../version.entities html + @mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + cd html && gtkdoc-mkhtml $$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 -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 + @echo ' DOC Fixing cross-references' + @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 + @rm -rf xml tmpl html # clean files copied for nonsrcdir templates build - if test x"$(srcdir)" != x. ; then \ + @if test x"$(srcdir)" != x. ; then \ rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \ $(MAINTAINER_DOC_STAMPS); \ fi @@ -239,16 +249,16 @@ clean-local-gtkdoc: endif clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @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 -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 ; \ @@ -258,7 +268,7 @@ distclean-local: rm -rf tmpl/*.sgml ; \ rm -rf $(INSPECT_DIR); \ fi - rm -rf *.o + @rm -rf *.o MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS) @@ -280,9 +290,7 @@ install-data-local: $(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; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak index 91edeee..dd2b5a5 100644 --- a/common/gtk-doc.mak +++ b/common/gtk-doc.mak @@ -28,7 +28,6 @@ DOC_STAMPS = \ scan-build.stamp \ sgml-build.stamp \ html-build.stamp \ - setup.stamp \ sgml.stamp \ html.stamp @@ -52,30 +51,36 @@ all-local: html-build.stamp #### setup #### -setup.stamp: $(content_files) +setup-build.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 \ + echo ' DOC Preparing build'; \ + files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + test -f $(abs_srcdir)/$$file && \ + cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ + done; \ + fi; \ fi - touch setup.stamp + @touch setup-build.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 \ + @echo ' DOC Scanning header files' + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan \ + $(SCAN_OPTIONS) $(EXTRA_HFILES) \ + --module=$(DOC_MODULE) \ + $${_source_dir} \ + --ignore-headers="$(IGNORE_HFILES)" + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then \ + echo " DOC Introspecting gobjects"; \ GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ GST_PLUGIN_PATH= \ GST_REGISTRY=doc-registry.xml \ @@ -90,31 +95,18 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) 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 + @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-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files) + @echo ' DOC 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) + @cp ../version.entities xml + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true @@ -122,31 +114,37 @@ sgml.stamp: sgml-build.stamp #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo '*** Building HTML ***' + @echo ' DOC Building HTML' @rm -rf html @mkdir html - cp -pr xml html - cp ../version.entities ./ + @cp -pr xml html + @cp ../version.entities ./ @mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + @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 + @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 ' DOC Fixing cross-references' + @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 + @rm -rf xml tmpl html # clean files copied for nonsrcdir templates build - if test x"$(srcdir)" != x. ; then \ + @if test x"$(srcdir)" != x. ; then \ rm -rf $(DOC_MODULE).types; \ fi else @@ -155,28 +153,29 @@ clean-local-gtkdoc: endif clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @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 -rf tmpl/*.sgml.bak + @rm -f $(DOC_MODULE).hierarchy + @rm -f *.stamp || true + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(DOC_MAIN_SGML_FILE) ; \ + rm -f $(DOC_OVERRIDES) ; \ 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 -f $(content_files) ; \ rm -rf tmpl/*.sgml ; \ fi - rm -rf *.o + @rm -rf *.o maintainer-clean-local: clean - cd $(srcdir) && rm -rf html \ + @cd $(srcdir) && rm -rf html \ xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt # thomas: make docs parallel installable; devhelp requires majorminor too @@ -190,9 +189,7 @@ install-data-local: 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; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in index 7786dda..d210cac 100644 --- a/common/m4/Makefile.in +++ b/common/m4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -89,7 +90,6 @@ 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@ @@ -107,7 +107,6 @@ 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@ @@ -142,6 +141,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -181,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -198,6 +199,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -206,13 +208,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -237,13 +242,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -291,6 +297,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -322,8 +329,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -347,6 +358,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -371,10 +384,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -386,6 +403,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -410,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,10 +620,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4 index ccdd4da..030e7ac 100644 --- a/common/m4/gst-args.m4 +++ b/common/m4/gst-args.m4 @@ -66,10 +66,7 @@ AC_DEFUN([AG_GST_ARG_VALGRIND], if test "x$USE_VALGRIND" = xyes; then PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, USE_VALGRIND="yes", - [ - USE_VALGRIND="no" - AC_MSG_RESULT([no]) - ]) + USE_VALGRIND="no") fi if test "x$USE_VALGRIND" = xyes; then AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) diff --git a/common/m4/gst-feature.m4 b/common/m4/gst-feature.m4 index bfb3a1c..c072c79 100644 --- a/common/m4/gst-feature.m4 +++ b/common/m4/gst-feature.m4 @@ -122,35 +122,6 @@ 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 @@ -247,7 +218,37 @@ AC_DEFUN([AG_GST_PARSE_SUBSYSTEM_DISABLES], AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML) ]) +dnl AG_GST_CHECK_GST_DEBUG_DISABLED(ACTION-IF-DISABLED, ACTION-IF-NOT-DISABLED) +dnl +dnl Checks if the GStreamer debugging system is disabled in the core version +dnl we are compiling against (by checking gstconfig.h) +dnl +AC_DEFUN([AG_GST_CHECK_GST_DEBUG_DISABLED], +[ + AC_REQUIRE([AG_GST_CHECK_GST]) + + AC_MSG_CHECKING([whether the GStreamer debugging system is enabled]) + AC_LANG_PUSH([C]) + save_CFLAGS="$CFLAGS" + CFLAGS="$GST_CFLAGS $CFLAGS" + AC_COMPILE_IFELSE([ + #include + #ifdef GST_DISABLE_GST_DEBUG + #error "debugging disabled, make compiler fail" + #endif], [ debug_system_enabled=yes], [debug_system_enabled=no]) + CFLAGS="$save_CFLAGS" + AC_LANG_POP([C]) + + AC_MSG_RESULT([$debug_system_enabled]) + if test "x$debug_system_enabled" = "xyes" ; then + $2 + true + else + $1 + true + fi +]) dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES, dnl GST_PLUGINS_NO, and BUILD_EXTERNAL diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 index bafba41..b01f02f 100644 --- a/common/m4/gst-glib2.m4 +++ b/common/m4/gst-glib2.m4 @@ -70,4 +70,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], dnl for the poor souls who for example have glib in /usr/local AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) ]) diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4 index f9ce49c..589721c 100644 --- a/common/m4/introspection.m4 +++ b/common/m4/introspection.m4 @@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], 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)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection fi AC_SUBST(INTROSPECTION_SCANNER) AC_SUBST(INTROSPECTION_COMPILER) AC_SUBST(INTROSPECTION_GENERATE) AC_SUBST(INTROSPECTION_GIRDIR) AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ]) diff --git a/common/m4/orc.m4 b/common/m4/orc.m4 index 3b2c6b5..26b2459 100644 --- a/common/m4/orc.m4 +++ b/common/m4/orc.m4 @@ -21,17 +21,19 @@ AC_DEFUN([ORC_CHECK], if test "x$enable_orc" != "xno" ; then PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [ AC_DEFINE(HAVE_ORC, 1, [Use Orc]) + HAVE_ORC=yes if test "x$ORCC" = "x" ; then + AC_MSG_CHECKING(for usable orcc) ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + dnl check whether the orcc found by pkg-config can be run from the build environment + dnl if this is not the case (e.g. when cross-compiling) fall back to orcc from PATH + AS_IF([$ORCC --version 1> /dev/null 2> /dev/null], [], [ORCC=`which orcc`]) + AC_MSG_RESULT($ORCC) 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 + AS_IF([test "x$ORCC" = "x"], [HAVE_ORCC=no], [HAVE_ORCC=yes]) ], [ if test "x$enable_orc" = "xyes" ; then AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found]) diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py index 5e84235..9a1cac9 100755 --- a/common/scangobj-merge.py +++ b/common/scangobj-merge.py @@ -3,7 +3,7 @@ # vi:si:et:sw=4:sts=4:ts=4 """ -parse, update and write .signals and .args files +parse, merge and write gstdoc-scanobj files """ import sys @@ -16,9 +16,9 @@ def debug(*args): # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747 # Licensed under the Python License class OrderedDict(dict): - def __init__(self, dict = None): + def __init__(self): self._keys = [] - dict.__init__(self, dict) + dict.__init__(self) def __delitem__(self, key): dict.__delitem__(self, key) @@ -110,8 +110,7 @@ class GDoc: def save_file(self, filename, backup=False): """ - Save the signals information to the given .signals file if the - file content changed. + Save the information to the given file if the file content changed. """ olddata = None try: @@ -256,6 +255,25 @@ class Args(GDoc): return "\n".join(lines) + '\n' +class SingleLine(GDoc): + def __init__(self): + self._objects = [] + + def load_data(self, data): + """ + Load the .interfaces/.prerequisites lines, merge duplicates + """ + # split data on '\n' + lines = data.splitlines(); + # merge them into self._objects + for line in lines: + if line not in self._objects: + self._objects.append(line) + + def get_data(self): + lines = sorted(self._objects) + return "\n".join(lines) + '\n' + def main(argv): modulename = None try: @@ -264,7 +282,6 @@ def main(argv): 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') @@ -277,4 +294,16 @@ def main(argv): args.save_file(modulename + '.args', backup=True) os.unlink(modulename + '.args.new') + ifaces = SingleLine() + ifaces.load_file(modulename + '.interfaces') + ifaces.load_file(modulename + '.interfaces.new') + ifaces.save_file(modulename + '.interfaces', backup=True) + os.unlink(modulename + '.interfaces.new') + + prereq = SingleLine() + prereq.load_file(modulename + '.prerequisites') + prereq.load_file(modulename + '.prerequisites.new') + prereq.save_file(modulename + '.prerequisites', backup=True) + os.unlink(modulename + '.prerequisites.new') + main(sys.argv) diff --git a/compile b/compile index c0096a7..b1f4749 100755 --- a/compile +++ b/compile @@ -1,10 +1,10 @@ #! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. +# Wrapper for compilers which do not understand '-c -o'. -scriptversion=2009-10-06.20; # UTC +scriptversion=2012-01-04.17; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free +# Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -29,21 +29,186 @@ scriptversion=2009-10-06.20; # UTC # bugs to or send patches to # . +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + 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'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l*) + lib=${1#-l} + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + set x "$@" "$dir/$lib.dll.lib" + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + set x "$@" "$dir/$lib.lib" + break + fi + done + IFS=$save_IFS + + test "$found" != yes && set x "$@" "$lib.lib" + shift + ;; + -L*) + func_file_conv "${1#-L}" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + 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 +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'. +right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF @@ -53,11 +218,13 @@ EOF echo "compile $scriptversion" exit $? ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; esac ofile= cfile= -eat= for arg do @@ -66,8 +233,8 @@ do 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. + # 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) @@ -94,10 +261,10 @@ do done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a + # 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 + # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi @@ -106,7 +273,7 @@ fi 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 +# 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 diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..40eaed4 --- /dev/null +++ b/config.guess @@ -0,0 +1,1517 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. + +timestamp='2011-05-11' + +# This file 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, 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. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-tilera-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +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` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in index 65143a8..8dbd5f0 100644 --- a/config.h.in +++ b/config.h.in @@ -70,9 +70,6 @@ /* 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 @@ -82,6 +79,9 @@ /* Define to enable ASS/SSA renderer (used by assrender). */ #undef HAVE_ASSRENDER +/* Define to enable AVC Video Services (used by avcsrc). */ +#undef HAVE_AVC + /* Define to enable bz2 library (used by bz2). */ #undef HAVE_BZ2 @@ -169,6 +169,9 @@ /* Define to enable dirac (used by dirac). */ #undef HAVE_DIRAC +/* Define to enable Direct3D plug-in (used by direct3dsink). */ +#undef HAVE_DIRECT3D + /* Define to enable DirectDraw plug-in (used by directdrawsink). */ #undef HAVE_DIRECTDRAW @@ -331,9 +334,15 @@ /* Define to enable ofa plugins (used by ofa). */ #undef HAVE_OFA +/* Define to enable OpenAL plugin (used by openal). */ +#undef HAVE_OPENAL + /* Define to enable opencv plugins (used by opencv). */ #undef HAVE_OPENCV +/* Define to enable opus (used by opus). */ +#undef HAVE_OPUS + /* Use Orc */ #undef HAVE_ORC @@ -346,6 +355,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PTHREAD_H +/* Define to enable pvrvideosink (used by pvr). */ +#undef HAVE_PVR + /* Define to enable QuickTime wrapper (used by qtwrapper). */ #undef HAVE_QUICKTIME @@ -379,6 +391,9 @@ /* Defined if the available libSoundTouch is >= 1.4 */ #undef HAVE_SOUNDTOUCH_1_4 +/* Define to enable Spandsp (used by spandsp). */ +#undef HAVE_SPANDSP + /* Define to enable spc decoder (used by spc). */ #undef HAVE_SPC @@ -415,6 +430,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UTSNAME_H +/* Define to enable Teletext decoder (used by teletextdec). */ +#undef HAVE_TELETEXTDEC + /* Define if libtiger is available */ #undef HAVE_TIGER @@ -433,9 +451,18 @@ /* Define to enable VDPAU (used by vdpau). */ #undef HAVE_VDPAU +/* Define to enable vo-aacenc library (used by vo-aacenc). */ +#undef HAVE_VOAACENC + +/* Define to enable vo-amrwbenc library (used by vo-amrwbenc). */ +#undef HAVE_VOAMRWBENC + /* Define to enable VP8 decoder (used by vp8). */ #undef HAVE_VP8 +/* Defined if the VP8 encoder has tuning API */ +#undef HAVE_VP8ENC_TUNING + /* Defined if the VP8 decoder is available */ #undef HAVE_VP8_DECODER diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..30fdca8 --- /dev/null +++ b/config.sub @@ -0,0 +1,1760 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. + +timestamp='2011-03-23' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, 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. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure index 5e1bacb..35799d4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for GStreamer Bad Plug-ins 0.10.22. +# Generated by GNU Autoconf 2.68 for GStreamer Bad Plug-ins 0.10.23. # # Report bugs to . # @@ -91,6 +91,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -173,6 +174,14 @@ test x\$exitcode = x0 || exit 1" 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes @@ -216,11 +225,18 @@ IFS=$as_save_IFS # 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. + # Preserve -v and -x to the replacement shell. 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+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -529,155 +545,8 @@ 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 @@ -702,8 +571,8 @@ 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_VERSION='0.10.23' +PACKAGE_STRING='GStreamer Bad Plug-ins 0.10.23' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' PACKAGE_URL='' @@ -768,6 +637,10 @@ gsettingsschemadir GSETTINGS_DISABLE_SCHEMAS_COMPILE GSETTINGS_LIBS GSETTINGS_CFLAGS +USE_SPANDSP_FALSE +USE_SPANDSP_TRUE +SPANDSP_LIBS +SPANDSP_CFLAGS USE_RTMP_FALSE USE_RTMP_TRUE RTMP_LIBS @@ -827,6 +700,10 @@ USE_WILDMIDI_TRUE WILDMIDI_LIBS WILDMIDI_CFLAGS HAVE_WILDMIDI +USE_TELETEXTDEC_FALSE +USE_TELETEXTDEC_TRUE +TELETEXTDEC_LIBS +TELETEXTDEC_CFLAGS USE_TIMIDITY_FALSE USE_TIMIDITY_TRUE TIMIDITY_LIBS @@ -835,10 +712,22 @@ USE_RSVG_FALSE USE_RSVG_TRUE RSVG_LIBS RSVG_CFLAGS +USE_PVR_FALSE +USE_PVR_TRUE +PVR_LIBS +PVR_CFLAGS +USE_OPUS_FALSE +USE_OPUS_TRUE +OPUS_LIBS +OPUS_CFLAGS USE_OPENCV_FALSE USE_OPENCV_TRUE OPENCV_LIBS OPENCV_CFLAGS +USE_OPENAL_FALSE +USE_OPENAL_TRUE +OPENAL_LIBS +OPENAL_CFLAGS USE_OFA_FALSE USE_OFA_TRUE OFA_LIBS @@ -982,9 +871,8 @@ CELT_LIBS CELT_CFLAGS USE_CDAUDIO_FALSE USE_CDAUDIO_TRUE -CDAUDIO_CFLAGS CDAUDIO_LIBS -CDAUDIO_CONFIG +CDAUDIO_CFLAGS USE_BZ2_FALSE USE_BZ2_TRUE BZ2_LIBS @@ -993,10 +881,14 @@ USE_APEXSINK_FALSE USE_APEXSINK_TRUE APEXSINK_LIBS APEXSINK_CFLAGS -USE_AMRWB_FALSE -USE_AMRWB_TRUE -HAVE_AMRWB -AMRWB_LIBS +USE_VOAACENC_FALSE +USE_VOAACENC_TRUE +VOAACENC_LIBS +VOAACENC_CFLAGS +USE_VOAMRWBENC_FALSE +USE_VOAMRWBENC_TRUE +VOAMRWBENC_LIBS +VOAMRWBENC_CFLAGS USE_ASSRENDER_FALSE USE_ASSRENDER_TRUE ASSRENDER_LIBS @@ -1007,6 +899,8 @@ USE_SHM_FALSE USE_SHM_TRUE USE_QUICKTIME_FALSE USE_QUICKTIME_TRUE +USE_AVC_FALSE +USE_AVC_TRUE USE_OSX_VIDEO_FALSE USE_OSX_VIDEO_TRUE HAVE_IOS_FALSE @@ -1017,6 +911,10 @@ USE_DIRECTDRAW_FALSE USE_DIRECTDRAW_TRUE HAVE_DIRECTDRAW DIRECTDRAW_LIBS +USE_DIRECT3D_FALSE +USE_DIRECT3D_TRUE +HAVE_DIRECT3D +DIRECT3D_LIBS USE_DIRECTSOUND_FALSE USE_DIRECTSOUND_TRUE HAVE_DIRECTSOUND @@ -1052,6 +950,8 @@ USE_PLUGIN_SUBENC_FALSE USE_PLUGIN_SUBENC_TRUE USE_PLUGIN_SPEED_FALSE USE_PLUGIN_SPEED_TRUE +USE_PLUGIN_SMOOTH_FALSE +USE_PLUGIN_SMOOTH_TRUE USE_PLUGIN_SIREN_FALSE USE_PLUGIN_SIREN_TRUE USE_PLUGIN_SEGMENTCLIP_FALSE @@ -1066,6 +966,8 @@ USE_PLUGIN_RTPVP8_FALSE USE_PLUGIN_RTPVP8_TRUE USE_PLUGIN_RTPMUX_FALSE USE_PLUGIN_RTPMUX_TRUE +USE_PLUGIN_REMOVESILENCE_FALSE +USE_PLUGIN_REMOVESILENCE_TRUE USE_PLUGIN_REAL_FALSE USE_PLUGIN_REAL_TRUE USE_PLUGIN_RAWPARSE_FALSE @@ -1086,8 +988,6 @@ 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 @@ -1108,10 +1008,10 @@ 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_INTER_FALSE +USE_PLUGIN_INTER_TRUE USE_PLUGIN_ID3TAG_FALSE USE_PLUGIN_ID3TAG_TRUE USE_PLUGIN_HLS_FALSE @@ -1126,12 +1026,16 @@ USE_PLUGIN_GAUDIEFFECTS_FALSE USE_PLUGIN_GAUDIEFFECTS_TRUE USE_PLUGIN_FREI0R_FALSE USE_PLUGIN_FREI0R_TRUE +USE_PLUGIN_FREEVERB_FALSE +USE_PLUGIN_FREEVERB_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_FACEOVERLAY_FALSE +USE_PLUGIN_FACEOVERLAY_TRUE USE_PLUGIN_DVDSPU_FALSE USE_PLUGIN_DVDSPU_TRUE USE_PLUGIN_DVBSUBOVERLAY_FALSE @@ -1158,6 +1062,8 @@ USE_PLUGIN_BAYER_FALSE USE_PLUGIN_BAYER_TRUE USE_PLUGIN_AUTOCONVERT_FALSE USE_PLUGIN_AUTOCONVERT_TRUE +USE_PLUGIN_AUDIOVISUALIZERS_FALSE +USE_PLUGIN_AUDIOVISUALIZERS_TRUE USE_PLUGIN_ASFMUX_FALSE USE_PLUGIN_ASFMUX_TRUE USE_PLUGIN_AIFF_FALSE @@ -1233,6 +1139,7 @@ GST_PLUGINS_DIR GST_TOOLS_DIR GST_LIBS GST_CFLAGS +GLIB_EXTRA_CFLAGS GLIB_LIBS GLIB_CFLAGS GLIB_REQ @@ -1353,8 +1260,9 @@ OTOOL LIPO NMEDIT DSYMUTIL -lt_ECHO +MANIFEST_TOOL RANLIB +ac_ct_AR AR LN_S NM @@ -1368,6 +1276,7 @@ SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -1385,9 +1294,16 @@ LIBTOOL OBJDUMP DLLTOOL AS +GST_LT_LDFLAGS +GST_LIBVERSION +GST_AGE +GST_REVISION +GST_CURRENT GST_MAJORMINOR AM_BACKSLASH AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V host_os host_vendor host_cpu @@ -1476,6 +1392,7 @@ with_pic enable_fast_install enable_dependency_tracking with_gnu_ld +with_sysroot enable_libtool_lock with_autoconf with_autoheader @@ -1511,6 +1428,7 @@ enable_adpcmdec enable_adpcmenc enable_aiff enable_asfmux +enable_audiovisualizers enable_autoconvert enable_bayer enable_camerabin @@ -1524,9 +1442,11 @@ enable_debugutils enable_dtmf enable_dvbsuboverlay enable_dvdspu +enable_faceoverlay enable_festival enable_fieldanalysis enable_freeze +enable_freeverb enable_frei0r enable_gaudieffects enable_geometrictransform @@ -1534,8 +1454,8 @@ enable_h264parse enable_hdvparse enable_hls enable_id3tag +enable_inter enable_interlace -enable_invtelecine enable_ivfparse enable_jp2kdecimator enable_jpegformat @@ -1546,7 +1466,6 @@ enable_mpegdemux enable_mpegtsdemux enable_mpegtsmux enable_mpegpsmux -enable_mpeg4videoparse enable_mpegvideoparse enable_mve enable_mxf @@ -1557,6 +1476,7 @@ enable_pcapparse enable_pnm enable_rawparse enable_real +enable_removesilence enable_rtpmux enable_rtpvp8 enable_scaletempo @@ -1564,6 +1484,7 @@ enable_sdi enable_sdp enable_segmentclip enable_siren +enable_smooth enable_speed enable_subenc enable_stereo @@ -1576,14 +1497,17 @@ enable_videosignal enable_vmnc enable_y4m enable_directsound +enable_direct3d enable_directdraw enable_apple_media enable_osx_video +enable_avc enable_quicktime enable_shm enable_vcd enable_assrender -enable_amrwb +enable_voamrwbenc +enable_voaacenc enable_apexsink enable_bz2 enable_cdaudio @@ -1619,9 +1543,14 @@ enable_nas with_x enable_neon enable_ofa +enable_openal enable_opencv +enable_opus +enable_pvr +with_pvr_external_headers enable_rsvg enable_timidity +enable_teletextdec enable_wildmidi enable_sdl with_sdl_prefix @@ -1641,6 +1570,7 @@ enable_schro enable_zbar enable_vp8 enable_rtmp +enable_spandsp enable_gsettings enable_schemas_compile ' @@ -1694,8 +1624,14 @@ GIO_CFLAGS GIO_LIBS ASSRENDER_CFLAGS ASSRENDER_LIBS +VOAMRWBENC_CFLAGS +VOAMRWBENC_LIBS +VOAACENC_CFLAGS +VOAACENC_LIBS APEXSINK_CFLAGS APEXSINK_LIBS +CDAUDIO_CFLAGS +CDAUDIO_LIBS CELT_CFLAGS CELT_LIBS CELT_0_7_CFLAGS @@ -1745,12 +1681,20 @@ NEON_CFLAGS NEON_LIBS OFA_CFLAGS OFA_LIBS +OPENAL_CFLAGS +OPENAL_LIBS OPENCV_CFLAGS OPENCV_LIBS +OPUS_CFLAGS +OPUS_LIBS +PVR_CFLAGS +PVR_LIBS RSVG_CFLAGS RSVG_LIBS TIMIDITY_CFLAGS TIMIDITY_LIBS +TELETEXTDEC_CFLAGS +TELETEXTDEC_LIBS SNDFILE_CFLAGS SNDFILE_LIBS SOUNDTOUCH_CFLAGS @@ -1765,6 +1709,8 @@ ZBAR_CFLAGS ZBAR_LIBS RTMP_CFLAGS RTMP_LIBS +SPANDSP_CFLAGS +SPANDSP_LIBS GSETTINGS_CFLAGS GSETTINGS_LIBS' @@ -2171,7 +2117,7 @@ Try \`$0 --help' for more information" $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} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -2309,7 +2255,7 @@ 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. +\`configure' configures GStreamer Bad Plug-ins 0.10.23 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2383,7 +2329,7 @@ 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:";; + short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 0.10.23:";; esac cat <<\_ACEOF @@ -2422,6 +2368,8 @@ Optional Features: --disable-adpcmenc disable dependency-less adpcmenc plugin --disable-aiff disable dependency-less aiff plugin --disable-asfmux disable dependency-less asfmux plugin + --disable-audiovisualizers + disable dependency-less audiovisualizers plugin --disable-autoconvert disable dependency-less autoconvert plugin --disable-bayer disable dependency-less bayer plugin --disable-camerabin disable dependency-less camerabin plugin @@ -2435,9 +2383,11 @@ Optional Features: --disable-dtmf disable dependency-less dtmf plugin --disable-dvbsuboverlay disable dependency-less dvbsuboverlay plugin --disable-dvdspu disable dependency-less dvdspu plugin + --disable-faceoverlay disable dependency-less faceoverlay plugin --disable-festival disable dependency-less festival plugin --disable-fieldanalysis disable dependency-less fieldanalysis plugin --disable-freeze disable dependency-less freeze plugin + --disable-freeverb disable dependency-less freeverb plugin --disable-frei0r disable dependency-less frei0r plugin --disable-gaudieffects disable dependency-less gaudieffects plugin --disable-geometrictransform @@ -2446,8 +2396,8 @@ Optional Features: --disable-hdvparse disable dependency-less hdvparse plugin --disable-hls disable dependency-less hls plugin --disable-id3tag disable dependency-less id3tag plugin + --disable-inter disable dependency-less inter 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 @@ -2459,8 +2409,6 @@ Optional Features: --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 @@ -2472,6 +2420,7 @@ Optional Features: --disable-pnm disable dependency-less pnm plugin --disable-rawparse disable dependency-less rawparse plugin --disable-real disable dependency-less real plugin + --disable-removesilence disable dependency-less removesilence plugin --disable-rtpmux disable dependency-less rtpmux plugin --disable-rtpvp8 disable dependency-less rtpvp8 plugin --disable-scaletempo disable dependency-less scaletempo plugin @@ -2479,6 +2428,7 @@ Optional Features: --disable-sdp disable dependency-less sdp plugin --disable-segmentclip disable dependency-less segmentclip plugin --disable-siren disable dependency-less siren plugin + --disable-smooth disable dependency-less smooth plugin --disable-speed disable dependency-less speed plugin --disable-subenc disable dependency-less subenc plugin --disable-stereo disable dependency-less stereo plugin @@ -2491,14 +2441,17 @@ Optional Features: --disable-vmnc disable dependency-less vmnc plugin --disable-y4m disable dependency-less y4m plugin --disable-directsound disable DirectSound: directsoundsrc + --disable-direct3d disable Direct3D plug-in: direct3dsink --disable-directdraw disable DirectDraw plug-in: directdrawsink --disable-apple_media disable Apple video: applemedia --disable-osx_video disable OSX video: osxvideosrc + --disable-avc disable AVC Video Services: avcsrc --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-voamrwbenc disable vo-amrwbenc library: vo-amrwbenc + --disable-voaacenc disable vo-aacenc library: vo-aacenc --disable-apexsink disable AirPort Express Wireless sink: apexsink --disable-bz2 disable bz2 library: bz2 --disable-cdaudio disable cdaudio: cdaudio @@ -2533,9 +2486,13 @@ Optional Features: --disable-nas disable nas plug-in: nassink --disable-neon disable neon http client plugins: neonhttpsrc --disable-ofa disable ofa plugins: ofa + --disable-openal disable OpenAL plugin: openal --disable-opencv disable opencv plugins: opencv + --disable-opus disable opus: opus + --disable-pvr disable pvrvideosink: pvr --disable-rsvg disable rsvg decoder: rsvg --disable-timidity disable timidity midi soft synth plugin: timidity + --disable-teletextdec disable Teletext decoder: teletextdec --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 @@ -2553,6 +2510,7 @@ Optional Features: --disable-zbar disable ZBar barcode detector: zbar --disable-vp8 disable VP8 decoder: vp8 --disable-rtmp disable rtmp library: rtmp + --disable-spandsp disable Spandsp: spandsp --disable-gsettings disable GSettings plugin: gsettings --disable-schemas-compile Disable regeneration of gschemas.compiled on install @@ -2560,9 +2518,11 @@ Optional Features: 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 + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-autoconf use a different autoconf for regeneration of Makefiles --with-autoheader use a different autoheader for regeneration of @@ -2592,6 +2552,8 @@ Optional Packages: --with-default-visualizer specify default visualizer --with-x use the X Window System + --with-pvr-external-headers + Use system installed PVR2D headers --with-sdl-prefix=PFX prefix where SDL is installed (optional) --with-sdl-exec-prefix=PFX exec prefix where SDL is installed (optional) @@ -2667,10 +2629,22 @@ Some influential environment variables: C compiler flags for ASSRENDER, overriding pkg-config ASSRENDER_LIBS linker flags for ASSRENDER, overriding pkg-config + VOAMRWBENC_CFLAGS + C compiler flags for VOAMRWBENC, overriding pkg-config + VOAMRWBENC_LIBS + linker flags for VOAMRWBENC, overriding pkg-config + VOAACENC_CFLAGS + C compiler flags for VOAACENC, overriding pkg-config + VOAACENC_LIBS + linker flags for VOAACENC, overriding pkg-config APEXSINK_CFLAGS C compiler flags for APEXSINK, overriding pkg-config APEXSINK_LIBS linker flags for APEXSINK, overriding pkg-config + CDAUDIO_CFLAGS + C compiler flags for CDAUDIO, overriding pkg-config + CDAUDIO_LIBS + linker flags for CDAUDIO, 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 @@ -2744,15 +2718,26 @@ Some influential environment variables: 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 + OPENAL_CFLAGS + C compiler flags for OPENAL, overriding pkg-config + OPENAL_LIBS linker flags for OPENAL, overriding pkg-config OPENCV_CFLAGS C compiler flags for OPENCV, overriding pkg-config OPENCV_LIBS linker flags for OPENCV, overriding pkg-config + OPUS_CFLAGS C compiler flags for OPUS, overriding pkg-config + OPUS_LIBS linker flags for OPUS, overriding pkg-config + PVR_CFLAGS C compiler flags for PVR, overriding pkg-config + PVR_LIBS linker flags for PVR, 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 + TELETEXTDEC_CFLAGS + C compiler flags for TELETEXTDEC, overriding pkg-config + TELETEXTDEC_LIBS + linker flags for TELETEXTDEC, overriding pkg-config SNDFILE_CFLAGS C compiler flags for SNDFILE, overriding pkg-config SNDFILE_LIBS @@ -2774,6 +2759,10 @@ Some influential environment variables: 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 + SPANDSP_CFLAGS + C compiler flags for SPANDSP, overriding pkg-config + SPANDSP_LIBS + linker flags for SPANDSP, overriding pkg-config GSETTINGS_CFLAGS C compiler flags for GSETTINGS, overriding pkg-config GSETTINGS_LIBS @@ -2845,8 +2834,8 @@ 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 +GStreamer Bad Plug-ins configure 0.10.23 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -2892,7 +2881,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -2938,7 +2927,7 @@ fi # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -2952,7 +2941,7 @@ 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2970,7 +2959,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -3006,7 +2995,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -3048,7 +3037,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -3061,7 +3050,7 @@ 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3116,7 +3105,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -3131,7 +3120,7 @@ ac_fn_c_check_decl () 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3162,7 +3151,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl @@ -3199,7 +3188,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -3236,7 +3225,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp @@ -3282,7 +3271,7 @@ fi # 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link @@ -3295,10 +3284,10 @@ fi 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 : + if eval \${$3+:} false; 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -3365,7 +3354,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -3374,7 +3363,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -3387,7 +3376,7 @@ 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -3428,7 +3417,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -3605,7 +3594,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int @@ -3618,7 +3607,7 @@ ac_fn_c_check_header_preproc () 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3635,7 +3624,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_preproc @@ -3647,10 +3636,10 @@ $as_echo "$ac_res" >&6; } 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 : + if eval \${$3+:} false; 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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -3717,7 +3706,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&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 : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -3726,7 +3715,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_mongrel @@ -3767,7 +3756,7 @@ 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;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run @@ -3775,8 +3764,8 @@ 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 +It was created by GStreamer Bad Plug-ins $as_me 0.10.23, which was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -4034,7 +4023,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;} || { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -4180,7 +4169,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. { $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 : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4267,11 +4256,11 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; + 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 ;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -4357,7 +4346,7 @@ if test "$cross_compiling" != no; then 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 : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -4397,7 +4386,7 @@ if test -z "$ac_cv_prog_STRIP"; then 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 : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -4450,7 +4439,7 @@ 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 : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4501,7 +4490,7 @@ do 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 : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -4541,7 +4530,7 @@ done $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 : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -4599,7 +4588,7 @@ fi # Define the identity of the package. PACKAGE='gst-plugins-bad' - VERSION='0.10.22' + VERSION='0.10.23' cat >>confdefs.h <<_ACEOF @@ -4629,21 +4618,21 @@ 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. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -AMTAR=${AMTAR-"${am_missing_run}tar"} +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' -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) + PACKAGE_VERSION_MAJOR=$(echo 0.10.23 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 0.10.23 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 0.10.23 | cut -d'.' -f3) @@ -4654,7 +4643,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' { $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) + NANO=$(echo 0.10.23 | cut -d'.' -f4) if test x"$NANO" = x || test "x$NANO" = "x0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 @@ -4712,7 +4701,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { $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 : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -4728,7 +4717,7 @@ fi $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4746,7 +4735,7 @@ 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 : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -4761,7 +4750,7 @@ fi $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4788,6 +4777,33 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi AM_BACKSLASH='\' @@ -4796,6 +4812,29 @@ GST_MAJORMINOR=0.10 + GST_CURRENT=23 + GST_REVISION=0 + GST_AGE=0 + GST_LIBVERSION=23:0:0 + + + + + + GST_LT_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION" + if test ! -z "" + then + GST_LT_LDFLAGS="$GST_LT_LDFLAGS -release " + fi + + + enable_dlopen=yes + + + + + + case $host_os in cygwin* | mingw*) lt_cv_deplibs_check_method=pass_all @@ -4807,13 +4846,13 @@ GST_MAJORMINOR=0.10 enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-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 : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -4853,7 +4892,7 @@ if test -z "$ac_cv_prog_AS"; then 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 : +if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then @@ -4905,7 +4944,7 @@ fi 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 : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -4945,7 +4984,7 @@ if test -z "$ac_cv_prog_DLLTOOL"; then 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 : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then @@ -4997,7 +5036,7 @@ fi 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 : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -5037,7 +5076,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then 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 : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -5115,8 +5154,8 @@ esac -macro_version='2.2.6b' -macro_revision='1.3017' +macro_version='2.4.2' +macro_revision='1.3337' @@ -5132,6 +5171,75 @@ macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" +# Backslashify 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' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -5184,6 +5292,7 @@ fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -5204,7 +5313,7 @@ if test -n "$ac_tool_prefix"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -5244,7 +5353,7 @@ if test -z "$ac_cv_prog_CC"; then 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -5297,7 +5406,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -5337,7 +5446,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -5396,7 +5505,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -5440,7 +5549,7 @@ do 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -5495,7 +5604,7 @@ 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 ; } +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 @@ -5610,7 +5719,7 @@ 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 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -5653,7 +5762,7 @@ 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 ; } +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 @@ -5712,7 +5821,7 @@ $as_echo "$ac_try_echo"; } >&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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -5723,7 +5832,7 @@ 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 : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5764,7 +5873,7 @@ 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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -5774,7 +5883,7 @@ 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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5811,7 +5920,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -5889,7 +5998,7 @@ else 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -5988,7 +6097,7 @@ 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 : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -5997,6 +6106,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -6056,7 +6166,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -6113,7 +6223,7 @@ 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 : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -6195,7 +6305,7 @@ 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 : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -6258,7 +6368,7 @@ $as_echo "$ac_cv_path_GREP" >&6; } { $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 : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -6325,7 +6435,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } { $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 : +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 @@ -6456,7 +6566,7 @@ 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 : +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -6496,7 +6606,7 @@ 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 : +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -6523,7 +6633,7 @@ 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 : +if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -6576,14 +6686,17 @@ 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" + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" 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 : +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then @@ -6621,13 +6734,13 @@ fi fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + for ac_prog in dumpbin "link -dump" 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 : +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then @@ -6676,6 +6789,15 @@ esac fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -6690,18 +6812,18 @@ 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 : +if ${lt_cv_nm_interface+:} false; 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 echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6701: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:$LINENO: $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) + (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6725,7 +6847,7 @@ 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 : +if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 @@ -6758,6 +6880,11 @@ else lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + 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. @@ -6783,6 +6910,11 @@ else lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + 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 @@ -6822,8 +6954,8 @@ else # 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 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -6865,8 +6997,8 @@ $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,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -6915,9 +7047,83 @@ esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + { $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 : +if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' @@ -6931,6 +7137,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -6953,7 +7164,7 @@ if test -n "$ac_tool_prefix"; then 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 : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -6993,7 +7204,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then 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 : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -7049,7 +7260,7 @@ 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 : +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -7091,16 +7302,18 @@ 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 + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && 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)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +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' @@ -7130,6 +7343,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -7138,11 +7355,11 @@ hpux10.20* | hpux11*) 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_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? 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_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 @@ -7163,7 +7380,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -7245,6 +7462,21 @@ 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_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + 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 @@ -7260,12 +7492,163 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + +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 ${ac_cv_prog_DLLTOOL+:} false; 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 ${ac_cv_prog_ac_ct_DLLTOOL+:} false; 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 + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + 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 + for ac_prog in ar + 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_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -7278,7 +7661,7 @@ do 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" + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7298,14 +7681,18 @@ $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi -if test -z "$ac_cv_prog_AR"; then +if test -z "$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 + for ac_prog in ar +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_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -7318,7 +7705,7 @@ do 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" + ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7337,6 +7724,10 @@ else $as_echo "no" >&6; } fi + + test -n "$ac_ct_AR" && break +done + if test "x$ac_ct_AR" = x; then AR="false" else @@ -7348,12 +7739,11 @@ 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 +: ${AR=ar} +: ${AR_FLAGS=cru} + @@ -7364,13 +7754,70 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + 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 : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -7410,7 +7857,7 @@ if test -z "$ac_cv_prog_STRIP"; then 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 : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -7469,7 +7916,7 @@ if test -n "$ac_tool_prefix"; then 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 : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -7509,7 +7956,7 @@ if test -z "$ac_cv_prog_RANLIB"; then 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 : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -7571,15 +8018,27 @@ 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 -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + @@ -7626,7 +8085,7 @@ 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 : +if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7687,8 +8146,8 @@ esac 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'" +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= @@ -7712,6 +8171,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -7724,6 +8184,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -7749,8 +8210,8 @@ _LT_EOF 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 + 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 @@ -7765,6 +8226,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -7776,7 +8249,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT_DLSYM_CONST struct { const char *name; void *address; } @@ -7802,8 +8275,8 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_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 @@ -7813,8 +8286,8 @@ _LT_EOF test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi @@ -7851,6 +8324,20 @@ else $as_echo "ok" >&6; } fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + @@ -7870,6 +8357,40 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + @@ -7904,7 +8425,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7907 "configure"' > conftest.$ac_ext + echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7998,7 +8519,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 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 : +if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c @@ -8039,7 +8560,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*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 @@ -8050,7 +8571,20 @@ sparc*-*solaris*) case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -8066,6 +8600,123 @@ esac need_locks="$enable_libtool_lock" +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt" + $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 +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt" + $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + 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 + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + case $host_os in rhapsody* | darwin*) @@ -8074,7 +8725,7 @@ need_locks="$enable_libtool_lock" 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 : +if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then @@ -8114,7 +8765,7 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then 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 : +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then @@ -8166,7 +8817,7 @@ fi 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 : +if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then @@ -8206,7 +8857,7 @@ if test -z "$ac_cv_prog_NMEDIT"; then 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 : +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then @@ -8258,7 +8909,7 @@ fi 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 : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -8298,7 +8949,7 @@ if test -z "$ac_cv_prog_LIPO"; then 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 : +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then @@ -8350,7 +9001,7 @@ fi 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 : +if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then @@ -8390,7 +9041,7 @@ if test -z "$ac_cv_prog_OTOOL"; then 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 : +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then @@ -8442,7 +9093,7 @@ fi 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 : +if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then @@ -8482,7 +9133,7 @@ if test -z "$ac_cv_prog_OTOOL64"; then 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 : +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then @@ -8557,7 +9208,7 @@ 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 : +if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no @@ -8573,7 +9224,13 @@ else $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 + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -8584,9 +9241,10 @@ else 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 : +if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no @@ -8616,6 +9274,41 @@ rm -f core conftest.err conftest.$ac_objext \ 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; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -8643,7 +9336,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -8663,7 +9356,7 @@ if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -8779,7 +9472,7 @@ 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 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -8791,7 +9484,7 @@ 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 : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8922,7 +9615,7 @@ 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 : +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF @@ -8933,11 +9626,11 @@ done -# Set options +# Set options + - enable_dlopen=no @@ -9006,7 +9699,22 @@ fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -9083,6 +9791,11 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + test -z "$LN_S" && LN_S="ln -s" @@ -9104,7 +9817,7 @@ 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 : +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null @@ -9132,19 +9845,6 @@ _ACEOF - - - - - - - - - - - - - case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some @@ -9157,23 +9857,6 @@ aix3*) ;; 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 @@ -9202,7 +9885,7 @@ for cc_temp in $compiler""; do *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it @@ -9212,7 +9895,7 @@ 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 : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -9278,7 +9961,7 @@ 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 : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -9411,11 +10094,16 @@ if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac { $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 : +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no @@ -9431,15 +10119,15 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9438: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -9468,8 +10156,6 @@ fi 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,' @@ -9517,6 +10203,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + 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 @@ -9559,6 +10251,15 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -9621,7 +10322,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' @@ -9633,25 +10340,40 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # 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='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *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' + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' ;; esac ;; @@ -9683,7 +10405,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; @@ -9740,13 +10462,17 @@ case $host_os in 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; } - - - - +{ $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 ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. @@ -9754,7 +10480,7 @@ $as_echo "$lt_prog_compiler_pic" >&6; } 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 : +if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no @@ -9770,15 +10496,15 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9777: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -9807,13 +10533,18 @@ 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 : +if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no @@ -9826,7 +10557,7 @@ else 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 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/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 @@ -9856,7 +10587,7 @@ 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 : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9875,16 +10606,16 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9882: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -9911,7 +10642,7 @@ $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 : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9930,16 +10661,16 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9937: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -10005,7 +10736,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie 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 @@ -10049,13 +10779,39 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -10089,11 +10845,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, 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. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -10129,10 +10886,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' 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' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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' @@ -10150,6 +10909,11 @@ _LT_EOF fi ;; + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -10175,15 +10939,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' 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' + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$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' + pgf77* | pgf90* | pgf95* | pgfortran*) + # 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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -10194,13 +10959,17 @@ _LT_EOF 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) + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; 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' + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -10216,17 +10985,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # 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' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_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' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -10240,8 +11008,8 @@ _LT_EOF 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' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -10259,8 +11027,8 @@ _LT_EOF _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' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -10306,8 +11074,8 @@ _LT_EOF *) 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' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -10347,8 +11115,10 @@ _LT_EOF 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 + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". 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' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (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 @@ -10436,7 +11206,13 @@ _LT_EOF allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10449,25 +11225,32 @@ main () _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 + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_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 "$lt_cv_aix_libpath_"; then + lt_cv_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 + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +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" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; 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' @@ -10476,7 +11259,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10489,30 +11278,42 @@ main () _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 + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_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 "$lt_cv_aix_libpath_"; then + lt_cv_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 + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +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' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi 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' @@ -10544,20 +11345,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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 + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + 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 `func_echo_all "$deplibs" | $SED '\''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' + enable_shared_with_static_runtimes=yes + ;; + esac ;; darwin* | rhapsody*) @@ -10567,7 +11412,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in @@ -10575,7 +11425,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all 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}" @@ -10593,10 +11443,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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 @@ -10609,7 +11455,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -10618,7 +11464,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -10626,7 +11472,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${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 @@ -10641,14 +11487,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; 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' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${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 @@ -10660,16 +11505,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$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 $pic_flag ${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' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -10681,7 +11526,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${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 + ;; esac fi @@ -10709,26 +11593,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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 + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + 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) {} +int foo (void) { return 0; } _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' - + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi 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' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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' @@ -10790,17 +11687,17 @@ rm -f core conftest.err conftest.$ac_objext \ 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' + 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' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -10810,13 +11707,13 @@ rm -f core conftest.err conftest.$ac_objext \ 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' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -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' @@ -10829,9 +11726,9 @@ rm -f core conftest.err conftest.$ac_objext \ 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_cmds='$CC -shared $pic_flag ${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' + $CC -shared $pic_flag ${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"*) @@ -11019,44 +11916,50 @@ x|xyes) # 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 ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + 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 + 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; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi @@ -11214,11 +12117,6 @@ esac - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } @@ -11227,16 +12125,23 @@ if test "$GCC" = yes; then 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 + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # 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 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # 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= @@ -11249,7 +12154,7 @@ if test "$GCC" = yes; then 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 ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -11269,7 +12174,13 @@ BEGIN {RS=" "; FS="/|\n";} { 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` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi @@ -11295,7 +12206,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -11304,7 +12215,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -11357,7 +12268,7 @@ amigaos*) 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' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''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 ;; @@ -11369,7 +12280,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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' @@ -11388,8 +12299,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -11410,36 +12322,83 @@ cygwin* | mingw* | pw32* | cegcc*) 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" + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; 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 + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + 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 + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # 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' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -11460,7 +12419,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -11468,10 +12427,6 @@ dgux*) 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. @@ -11479,7 +12434,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -11497,7 +12452,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -11517,12 +12472,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + 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=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -11568,12 +12537,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -11589,7 +12560,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -11626,9 +12597,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11636,12 +12607,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) 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 + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + 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 @@ -11654,13 +12630,17 @@ main () _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 + lt_cv_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 + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -11669,7 +12649,7 @@ rm -f core conftest.err conftest.$ac_objext \ # 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' ' '` + 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -11713,7 +12693,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -11782,7 +12762,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11807,7 +12787,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -11831,7 +12811,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -11862,7 +12842,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11872,7 +12852,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -11984,6 +12964,11 @@ 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= @@ -12056,7 +13041,7 @@ else # 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12090,7 +13075,7 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -12104,12 +13089,12 @@ 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 : +if test "x$ac_cv_func_shl_load" = xyes; 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 : +if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12143,16 +13128,16 @@ 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 : +if test "x$ac_cv_lib_dld_shl_load" = xyes; 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 : +if test "x$ac_cv_func_dlopen" = xyes; 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12186,12 +13171,12 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; 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 : +if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12225,12 +13210,12 @@ 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 : +if test "x$ac_cv_lib_svld_dlopen" = xyes; 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 : +if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -12264,7 +13249,7 @@ 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 : +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -12305,7 +13290,7 @@ fi { $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 : +if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -12314,7 +13299,7 @@ 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" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12355,7 +13340,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -12364,7 +13355,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -12401,7 +13396,7 @@ $as_echo "$lt_cv_dlopen_self" >&6; } 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 : +if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -12410,7 +13405,7 @@ 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" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12451,7 +13446,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -12460,7 +13461,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -12629,6 +13634,8 @@ CC="$lt_save_CC" + + ac_config_commands="$ac_config_commands libtool" @@ -12638,8 +13645,8 @@ CC="$lt_save_CC" -GST_REQ=0.10.33 -GSTPB_REQ=0.10.33 +GST_REQ=0.10.36 +GSTPB_REQ=0.10.36 @@ -12757,7 +13764,7 @@ rm -f conf$$.file 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 : +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -12798,7 +13805,7 @@ fi 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 : +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -12880,7 +13887,7 @@ rm -f conf$$.file 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 : +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -12958,7 +13965,7 @@ rm -f conf$$.file 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 : +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in @@ -13080,7 +14087,7 @@ 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 : +if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -13117,7 +14124,7 @@ 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 : +if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. @@ -13137,7 +14144,7 @@ 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 : +if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13651,7 +14658,7 @@ 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 : +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -13685,7 +14692,7 @@ $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 : +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -13761,7 +14768,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; { $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 : +if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13824,7 +14831,7 @@ $as_echo "$ac_res" >&6; } { $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 : +if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13881,7 +14888,7 @@ $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 : +if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else @@ -14432,7 +15439,7 @@ 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 : +if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" @@ -14663,7 +15670,7 @@ if test "${enable_debug+set}" = set; then : case "${enableval}" in yes) USE_DEBUG=yes ;; no) USE_DEBUG=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; esac else @@ -14677,7 +15684,7 @@ if test "${enable_profiling+set}" = set; then : case "${enableval}" in yes) USE_PROFILING=yes ;; no) USE_PROFILING=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;; esac else @@ -14692,7 +15699,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 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 : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -14735,7 +15742,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then 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 : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -14807,7 +15814,7 @@ if test "${enable_valgrind+set}" = set; then : case "${enableval}" in yes) USE_VALGRIND="$USE_DEBUG" ;; no) USE_VALGRIND=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; esac else @@ -14876,17 +15883,9 @@ fi { $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; } - + USE_VALGRIND="no" elif test $pkg_failed = untried; then - - USE_VALGRIND="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + USE_VALGRIND="no" else VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS @@ -15033,7 +16032,7 @@ if test "${enable_examples+set}" = set; then : case "${enableval}" in yes) BUILD_EXAMPLES=yes ;; no) BUILD_EXAMPLES=no ;; - *) as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;; esac else @@ -15067,8 +16066,8 @@ fi 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 ;; + 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 @@ -15110,8 +16109,8 @@ _ACEOF 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 ;; + 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 @@ -15164,7 +16163,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5 ;; esac else USE_EXTERNAL=yes @@ -15262,7 +16261,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5 ;; esac else USE_EXPERIMENTAL=no @@ -15445,14 +16444,14 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 : +if test "x$ac_cv_have_decl___i386" = xyes; 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 : +if test "x$ac_cv_have_decl___amd64" = xyes; then : AMD64_ABI="yes" else AMD64_ABI="no" @@ -15557,7 +16556,7 @@ $as_echo "#define HAVE_CPU_CRISV32 1" >>confdefs.h { $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 : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -15776,7 +16775,7 @@ $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 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac @@ -15902,7 +16901,7 @@ _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 : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -16121,7 +17120,7 @@ $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 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac @@ -16136,7 +17135,7 @@ if test -n "$ac_tool_prefix"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -16176,7 +17175,7 @@ if test -z "$ac_cv_prog_CC"; then 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -16229,7 +17228,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -16269,7 +17268,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -16328,7 +17327,7 @@ if test -z "$CC"; then 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 : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -16372,7 +17371,7 @@ do 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 : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -16427,7 +17426,7 @@ 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 ; } +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 @@ -16456,7 +17455,7 @@ 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 : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16493,7 +17492,7 @@ 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 : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -16571,7 +17570,7 @@ else 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -16670,7 +17669,7 @@ 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 : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -16679,6 +17678,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -16738,7 +17738,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -16799,7 +17799,7 @@ fi *) : { $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 : +if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no @@ -16974,7 +17974,7 @@ if test "x$ac_cv_prog_cc_c99" != xno; then : 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 : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -17070,7 +18070,7 @@ 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 : + if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi @@ -17103,7 +18103,7 @@ if test -z "$CXX"; then 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 : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -17147,7 +18147,7 @@ do 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 : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -17225,7 +18225,7 @@ 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 : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -17262,7 +18262,7 @@ 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 : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -17348,7 +18348,7 @@ 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 : +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -17357,6 +18357,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -17416,7 +18417,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -17472,391 +18473,16 @@ 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 () +func_stripname_cnf () { + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf - ; - 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" && + 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 @@ -17867,7 +18493,7 @@ 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 : + if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded @@ -17982,7 +18608,8 @@ 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; } +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -17995,9 +18622,6 @@ else _lt_caught_CXX_error=yes fi - - - ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -18013,7 +18637,6 @@ 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 @@ -18023,6 +18646,8 @@ module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no @@ -18078,6 +18703,7 @@ $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -18095,6 +18721,7 @@ $RM -r conftest* fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do @@ -18105,7 +18732,7 @@ $RM -r conftest* *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then @@ -18168,7 +18795,7 @@ 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 : +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -18208,7 +18835,7 @@ 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 : +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -18234,8 +18861,8 @@ 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' + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -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' @@ -18267,7 +18894,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # 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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -18377,7 +19004,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -18390,26 +19023,33 @@ main () _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 + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`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 + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +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" + 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 func_echo_all "${wl}${allow_undefined_flag}"; 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' @@ -18418,7 +19058,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -18431,30 +19077,42 @@ main () _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 + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`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 "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`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 + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +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' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -18484,28 +19142,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; 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 - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # 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_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _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' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + 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 + ;; + esac + ;; darwin* | rhapsody*) @@ -18513,7 +19218,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in @@ -18521,7 +19231,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all 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}" @@ -18555,7 +19265,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac ;; - freebsd[12]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no @@ -18574,6 +19284,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi gnu*) ;; + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: @@ -18598,11 +19313,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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' + 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; func_echo_all "$list"' ;; *) 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' + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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 @@ -18663,7 +19378,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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' + 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -18673,10 +19388,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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 $pic_flag ${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' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -18706,7 +19421,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 @@ -18717,9 +19432,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) 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' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes @@ -18748,7 +19463,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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' + 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; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -18785,26 +19500,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [1-5]* | *pgcpp\ [1-5]*) + *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`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $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`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $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' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $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' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above 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' ;; @@ -18812,7 +19527,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -18831,9 +19546,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # 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' @@ -18853,13 +19568,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$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' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -18928,7 +19643,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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 + output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi @@ -18963,15 +19678,15 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -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_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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~ + $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 "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; @@ -18987,17 +19702,17 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) 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}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -19007,7 +19722,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -19043,7 +19758,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' @@ -19064,7 +19779,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac link_all_deplibs_CXX=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -19084,14 +19799,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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_cmds_CXX='$CC -shared $pic_flag -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' + $CC -shared $pic_flag -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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -19102,7 +19817,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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 -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' @@ -19156,6 +19871,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 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' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -19217,6 +19936,14 @@ private: }; _LT_EOF + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -19230,7 +19957,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -19239,13 +19966,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} 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. @@ -19265,8 +20001,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -19302,6 +20040,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in @@ -19337,7 +20076,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -19402,8 +20141,6 @@ fi 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 @@ -19453,6 +20190,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -19502,6 +20244,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; esac ;; + 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). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; dgux*) case $cc_basename in ec++*) @@ -19591,8 +20338,8 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' @@ -19654,7 +20401,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' @@ -19719,10 +20466,17 @@ case $host_os in 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; } - +{ $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 ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. @@ -19730,7 +20484,7 @@ $as_echo "$lt_prog_compiler_pic_CXX" >&6; } 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 : +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no @@ -19746,15 +20500,15 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:19753: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -19780,13 +20534,15 @@ 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 : +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no @@ -19799,7 +20555,7 @@ else 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 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/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 @@ -19826,7 +20582,7 @@ 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 : +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no @@ -19845,16 +20601,16 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:19852: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -19878,7 +20634,7 @@ $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 : +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no @@ -19897,16 +20653,16 @@ else -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 echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:19904: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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 @@ -19957,30 +20713,40 @@ fi $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' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' 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 + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". 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' + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (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) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | 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; } @@ -20012,44 +20778,50 @@ x|xyes) # 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 ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + 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 + 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; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_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* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi @@ -20117,8 +20889,6 @@ esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } @@ -20144,7 +20914,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -20153,7 +20923,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -20206,7 +20976,7 @@ amigaos*) 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' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''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 ;; @@ -20218,7 +20988,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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' @@ -20237,8 +21007,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -20259,36 +21030,82 @@ cygwin* | mingw* | pw32* | cegcc*) 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 + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + 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 + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # 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' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -20308,7 +21125,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -20316,10 +21133,6 @@ dgux*) 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. @@ -20327,7 +21140,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -20345,7 +21158,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -20365,12 +21178,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + 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=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -20416,12 +21243,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -20437,7 +21266,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -20474,9 +21303,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -20484,12 +21313,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) 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 + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + 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 @@ -20502,13 +21336,17 @@ main () _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 + lt_cv_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 + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -20517,7 +21355,7 @@ rm -f core conftest.err conftest.$ac_objext \ # 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' ' '` + 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -20561,7 +21399,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -20630,7 +21468,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -20655,7 +21493,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -20679,7 +21517,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -20710,7 +21548,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -20720,7 +21558,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -20781,6 +21619,8 @@ 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= @@ -20828,6 +21668,7 @@ fi fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -20849,7 +21690,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu 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 : +if ${ac_cv_prog_HAVE_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CXX"; then @@ -20892,7 +21733,7 @@ if test -n "$ac_tool_prefix"; then 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 : +if ${ac_cv_prog_OBJC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJC"; then @@ -20936,7 +21777,7 @@ do 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 : +if ${ac_cv_prog_ac_ct_OBJC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJC"; then @@ -20994,7 +21835,7 @@ 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 : +if ${am_cv_OBJC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -21003,6 +21844,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -21060,7 +21902,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -21158,7 +22000,7 @@ 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 : +if ${am_cv_OBJC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -21167,6 +22009,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -21224,7 +22067,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -21292,7 +22135,7 @@ $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 : +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -21414,7 +22257,7 @@ 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 : +if ${_cv_g_support_dowhile_macros+:} false; then : $as_echo_n "(cached) " >&6 else @@ -21454,7 +22297,7 @@ fi 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 : +if ${ac_cv_path_VALGRIND_PATH+:} false; then : $as_echo_n "(cached) " >&6 else case $VALGRIND_PATH in @@ -21534,7 +22377,7 @@ 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 : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -21615,7 +22458,7 @@ do 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 : +if ${ac_cv_path_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_CHECK in @@ -21697,7 +22540,7 @@ else: 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 : +if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in @@ -21824,13 +22667,13 @@ fi LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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 : +if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21864,13 +22707,13 @@ 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 : +if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; 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 : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21904,7 +22747,7 @@ 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 : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="$LIBM -lm" fi @@ -21912,7 +22755,7 @@ 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 : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21946,7 +22789,7 @@ 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 : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="-lm" fi @@ -21983,7 +22826,7 @@ 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 : +if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF @@ -21993,7 +22836,7 @@ 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 : +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -22162,7 +23005,7 @@ 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 : +if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF @@ -22187,7 +23030,7 @@ 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 : +if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF @@ -22203,7 +23046,7 @@ $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 : +if ${ac_cv_header_stdint_t+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22278,7 +23121,7 @@ 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 : +if ${ac_cv_header_stdint_x+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22291,7 +23134,7 @@ $as_echo "(..)" >&6; } 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 : +if test "x$ac_cv_type_uintptr_t" = xyes; then : ac_cv_header_stdint_x=$i else continue @@ -22299,7 +23142,7 @@ 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 : +if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" @@ -22320,7 +23163,7 @@ 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 : +if ${ac_cv_header_stdint_o+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22333,7 +23176,7 @@ $as_echo "(..)" >&6; } 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 : +if test "x$ac_cv_type_uint32_t" = xyes; then : ac_cv_header_stdint_o=$i else continue @@ -22341,7 +23184,7 @@ 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 : +if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" @@ -22365,7 +23208,7 @@ 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 : +if ${ac_cv_header_stdint_u+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22377,7 +23220,7 @@ $as_echo "(..)" >&6; } 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 : +if test "x$ac_cv_type_u_int32_t" = xyes; then : ac_cv_header_stdint_u=$i else continue @@ -22385,7 +23228,7 @@ 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 : +if test "x$ac_cv_type_u_int64_t" = xyes; then : and64="/u_int64_t" else and64="" @@ -22416,7 +23259,7 @@ $as_echo "(..)" >&6; } # 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 : +if ${ac_cv_sizeof_char+:} false; 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 : @@ -22426,7 +23269,7 @@ 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 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi @@ -22449,7 +23292,7 @@ _ACEOF # 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 : +if ${ac_cv_sizeof_short+:} false; 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 : @@ -22459,7 +23302,7 @@ 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 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi @@ -22482,7 +23325,7 @@ _ACEOF # 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 : +if ${ac_cv_sizeof_int+:} false; 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 : @@ -22492,7 +23335,7 @@ 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 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -22515,7 +23358,7 @@ _ACEOF # 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 : +if ${ac_cv_sizeof_long+:} false; 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 : @@ -22525,7 +23368,7 @@ 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 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -22548,7 +23391,7 @@ _ACEOF # 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 : +if ${ac_cv_sizeof_voidp+:} false; 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 : @@ -22558,7 +23401,7 @@ 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 77 "cannot compute sizeof (void*) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_voidp=0 fi @@ -22627,19 +23470,19 @@ 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 : +if test "x$ac_cv_type_int_least32_t" = xyes; 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 : +if test "x$ac_cv_type_int_fast32_t" = xyes; 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 : +if test "x$ac_cv_type_intmax_t" = xyes; then : fi @@ -22663,7 +23506,7 @@ 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 : +if test "x$ac_cv_header_pthread_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTHREAD_H 1 _ACEOF @@ -22690,7 +23533,7 @@ 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 : + if ${_cv_gst_fionread_in_sys_ioctl+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22734,7 +23577,7 @@ $as_echo "#define HAVE_FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h { $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 : + if ${_cv_gst_fionread_in_sys_filio+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22784,7 +23627,7 @@ $as_echo "#define HAVE_FIONREAD_IN_SYS_FILIO 1" >>confdefs.h 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 : +if test "x$ac_cv_func_gmtime_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GMTIME_R 1 _ACEOF @@ -22796,7 +23639,7 @@ 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 : +if test "x$ac_cv_header_sys_utsname_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_UTSNAME_H 1 _ACEOF @@ -22808,12 +23651,12 @@ done ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" -if test "x$ac_cv_func_socket" = x""yes; then : +if test "x$ac_cv_func_socket" = xyes; 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 : +if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -22847,7 +23690,7 @@ 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 : +if test "x$ac_cv_lib_socket_socket" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF @@ -22859,12 +23702,12 @@ fi fi ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = x""yes; then : +if test "x$ac_cv_func_gethostbyname" = xyes; 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 : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -22898,7 +23741,7 @@ 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 : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF @@ -22913,7 +23756,7 @@ fi - GLIB_REQ=2.22 + GLIB_REQ=2.24 if test "x$GLIB_REQ" = "x" then as_fn_error $? "Please specify a required version for GLib 2.0" "$LINENO" 5 @@ -23080,6 +23923,8 @@ fi + + module=gstreamer-$GST_MAJORMINOR minver=$GST_REQ name="GStreamer" @@ -24098,7 +24943,7 @@ 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 ;; + *) as_fn_error $? "invalid gtk+ version specified" "$LINENO" 5;; esac else with_gtk=2.0 @@ -24191,6 +25036,8 @@ fi + + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMODULE_EXPORT" >&5 $as_echo_n "checking for GMODULE_EXPORT... " >&6; } @@ -24442,7 +25289,7 @@ if test "${enable_orc+set}" = set; then : auto) enable_orc=auto ;; yes) enable_orc=yes ;; no) enable_orc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;; esac else @@ -24541,17 +25388,27 @@ $as_echo "yes" >&6; } $as_echo "#define HAVE_ORC 1" >>confdefs.h + HAVE_ORC=yes if test "x$ORCC" = "x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable orcc" >&5 +$as_echo_n "checking for usable orcc... " >&6; } ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + if $ORCC --version 1> /dev/null 2> /dev/null; then : + +else + ORCC=`which orcc` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ORCC" >&5 +$as_echo "$ORCC" >&6; } fi ORCC_FLAGS="--compat $ORC_REQ" - HAVE_ORC=yes - HAVE_ORCC=yes - if test "x$cross_compiling" = "xyes" ; then - HAVE_ORCC=no - fi + if test "x$ORCC" = "x"; then : + HAVE_ORCC=no +else + HAVE_ORCC=yes +fi fi else @@ -25659,8 +26516,8 @@ _ACEOF 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 ;; + 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 @@ -25684,8 +26541,8 @@ _ACEOF 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 ;; + 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 @@ -25709,8 +26566,8 @@ _ACEOF 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 ;; + 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 @@ -25734,8 +26591,8 @@ _ACEOF 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 ;; + 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 @@ -25759,8 +26616,8 @@ _ACEOF 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 ;; + 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 @@ -25792,7 +26649,7 @@ if test "${enable_adpcmdec+set}" = set; then : case "${enableval}" in yes) gst_use_adpcmdec=yes ;; no) gst_use_adpcmdec=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-adpcmdec" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-adpcmdec" "$LINENO" 5 ;; esac else @@ -25832,7 +26689,7 @@ if test "${enable_adpcmenc+set}" = set; then : case "${enableval}" in yes) gst_use_adpcmenc=yes ;; no) gst_use_adpcmenc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-adpcmenc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-adpcmenc" "$LINENO" 5 ;; esac else @@ -25872,7 +26729,7 @@ if test "${enable_aiff+set}" = set; then : case "${enableval}" in yes) gst_use_aiff=yes ;; no) gst_use_aiff=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-aiff" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-aiff" "$LINENO" 5 ;; esac else @@ -25912,7 +26769,7 @@ if test "${enable_asfmux+set}" = set; then : case "${enableval}" in yes) gst_use_asfmux=yes ;; no) gst_use_asfmux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-asfmux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-asfmux" "$LINENO" 5 ;; esac else @@ -25942,6 +26799,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL audiovisualizers" + + + + # Check whether --enable-audiovisualizers was given. +if test "${enable_audiovisualizers+set}" = set; then : + enableval=$enable_audiovisualizers; + case "${enableval}" in + yes) gst_use_audiovisualizers=yes ;; + no) gst_use_audiovisualizers=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-audiovisualizers" "$LINENO" 5 ;; + esac + +else + gst_use_audiovisualizers=yes +fi + + if test x$gst_use_audiovisualizers = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin audiovisualizers" >&5 +$as_echo "$as_me: disabling dependency-less plugin audiovisualizers" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS audiovisualizers" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " audiovisualizers " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED audiovisualizers" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " audiovisualizers " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ audiovisualizers / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " audiovisualizers " > /dev/null; then + USE_PLUGIN_AUDIOVISUALIZERS_TRUE= + USE_PLUGIN_AUDIOVISUALIZERS_FALSE='#' +else + USE_PLUGIN_AUDIOVISUALIZERS_TRUE='#' + USE_PLUGIN_AUDIOVISUALIZERS_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL autoconvert" @@ -25952,7 +26849,7 @@ if test "${enable_autoconvert+set}" = set; then : case "${enableval}" in yes) gst_use_autoconvert=yes ;; no) gst_use_autoconvert=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-autoconvert" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-autoconvert" "$LINENO" 5 ;; esac else @@ -25992,7 +26889,7 @@ if test "${enable_bayer+set}" = set; then : case "${enableval}" in yes) gst_use_bayer=yes ;; no) gst_use_bayer=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-bayer" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-bayer" "$LINENO" 5 ;; esac else @@ -26032,7 +26929,7 @@ if test "${enable_camerabin+set}" = set; then : case "${enableval}" in yes) gst_use_camerabin=yes ;; no) gst_use_camerabin=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-camerabin" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-camerabin" "$LINENO" 5 ;; esac else @@ -26072,7 +26969,7 @@ if test "${enable_camerabin2+set}" = set; then : case "${enableval}" in yes) gst_use_camerabin2=yes ;; no) gst_use_camerabin2=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-camerabin2" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-camerabin2" "$LINENO" 5 ;; esac else @@ -26112,7 +27009,7 @@ if test "${enable_cdxaparse+set}" = set; then : case "${enableval}" in yes) gst_use_cdxaparse=yes ;; no) gst_use_cdxaparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-cdxaparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cdxaparse" "$LINENO" 5 ;; esac else @@ -26152,7 +27049,7 @@ if test "${enable_coloreffects+set}" = set; then : case "${enableval}" in yes) gst_use_coloreffects=yes ;; no) gst_use_coloreffects=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-coloreffects" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-coloreffects" "$LINENO" 5 ;; esac else @@ -26192,7 +27089,7 @@ if test "${enable_colorspace+set}" = set; then : case "${enableval}" in yes) gst_use_colorspace=yes ;; no) gst_use_colorspace=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-colorspace" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-colorspace" "$LINENO" 5 ;; esac else @@ -26232,7 +27129,7 @@ if test "${enable_dataurisrc+set}" = set; then : case "${enableval}" in yes) gst_use_dataurisrc=yes ;; no) gst_use_dataurisrc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-dataurisrc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dataurisrc" "$LINENO" 5 ;; esac else @@ -26272,7 +27169,7 @@ if test "${enable_dccp+set}" = set; then : case "${enableval}" in yes) gst_use_dccp=yes ;; no) gst_use_dccp=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-dccp" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dccp" "$LINENO" 5 ;; esac else @@ -26312,7 +27209,7 @@ if test "${enable_debugutils+set}" = set; then : case "${enableval}" in yes) gst_use_debugutils=yes ;; no) gst_use_debugutils=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-debugutils" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debugutils" "$LINENO" 5 ;; esac else @@ -26352,7 +27249,7 @@ if test "${enable_dtmf+set}" = set; then : case "${enableval}" in yes) gst_use_dtmf=yes ;; no) gst_use_dtmf=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-dtmf" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dtmf" "$LINENO" 5 ;; esac else @@ -26392,7 +27289,7 @@ if test "${enable_dvbsuboverlay+set}" = set; then : case "${enableval}" in yes) gst_use_dvbsuboverlay=yes ;; no) gst_use_dvbsuboverlay=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-dvbsuboverlay" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvbsuboverlay" "$LINENO" 5 ;; esac else @@ -26432,7 +27329,7 @@ if test "${enable_dvdspu+set}" = set; then : case "${enableval}" in yes) gst_use_dvdspu=yes ;; no) gst_use_dvdspu=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-dvdspu" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvdspu" "$LINENO" 5 ;; esac else @@ -26462,6 +27359,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL faceoverlay" + + + + # Check whether --enable-faceoverlay was given. +if test "${enable_faceoverlay+set}" = set; then : + enableval=$enable_faceoverlay; + case "${enableval}" in + yes) gst_use_faceoverlay=yes ;; + no) gst_use_faceoverlay=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-faceoverlay" "$LINENO" 5 ;; + esac + +else + gst_use_faceoverlay=yes +fi + + if test x$gst_use_faceoverlay = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin faceoverlay" >&5 +$as_echo "$as_me: disabling dependency-less plugin faceoverlay" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS faceoverlay" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " faceoverlay " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED faceoverlay" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " faceoverlay " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ faceoverlay / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " faceoverlay " > /dev/null; then + USE_PLUGIN_FACEOVERLAY_TRUE= + USE_PLUGIN_FACEOVERLAY_FALSE='#' +else + USE_PLUGIN_FACEOVERLAY_TRUE='#' + USE_PLUGIN_FACEOVERLAY_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL festival" @@ -26472,7 +27409,7 @@ if test "${enable_festival+set}" = set; then : case "${enableval}" in yes) gst_use_festival=yes ;; no) gst_use_festival=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-festival" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-festival" "$LINENO" 5 ;; esac else @@ -26512,7 +27449,7 @@ if test "${enable_fieldanalysis+set}" = set; then : case "${enableval}" in yes) gst_use_fieldanalysis=yes ;; no) gst_use_fieldanalysis=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-fieldanalysis" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-fieldanalysis" "$LINENO" 5 ;; esac else @@ -26552,7 +27489,7 @@ if test "${enable_freeze+set}" = set; then : case "${enableval}" in yes) gst_use_freeze=yes ;; no) gst_use_freeze=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-freeze" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-freeze" "$LINENO" 5 ;; esac else @@ -26582,6 +27519,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL freeverb" + + + + # Check whether --enable-freeverb was given. +if test "${enable_freeverb+set}" = set; then : + enableval=$enable_freeverb; + case "${enableval}" in + yes) gst_use_freeverb=yes ;; + no) gst_use_freeverb=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-freeverb" "$LINENO" 5 ;; + esac + +else + gst_use_freeverb=yes +fi + + if test x$gst_use_freeverb = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin freeverb" >&5 +$as_echo "$as_me: disabling dependency-less plugin freeverb" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS freeverb" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " freeverb " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED freeverb" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " freeverb " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ freeverb / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " freeverb " > /dev/null; then + USE_PLUGIN_FREEVERB_TRUE= + USE_PLUGIN_FREEVERB_FALSE='#' +else + USE_PLUGIN_FREEVERB_TRUE='#' + USE_PLUGIN_FREEVERB_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL frei0r" @@ -26592,7 +27569,7 @@ if test "${enable_frei0r+set}" = set; then : case "${enableval}" in yes) gst_use_frei0r=yes ;; no) gst_use_frei0r=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-frei0r" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-frei0r" "$LINENO" 5 ;; esac else @@ -26632,7 +27609,7 @@ if test "${enable_gaudieffects+set}" = set; then : case "${enableval}" in yes) gst_use_gaudieffects=yes ;; no) gst_use_gaudieffects=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-gaudieffects" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gaudieffects" "$LINENO" 5 ;; esac else @@ -26672,7 +27649,7 @@ if test "${enable_geometrictransform+set}" = set; then : case "${enableval}" in yes) gst_use_geometrictransform=yes ;; no) gst_use_geometrictransform=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-geometrictransform" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-geometrictransform" "$LINENO" 5 ;; esac else @@ -26712,7 +27689,7 @@ if test "${enable_h264parse+set}" = set; then : case "${enableval}" in yes) gst_use_h264parse=yes ;; no) gst_use_h264parse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-h264parse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-h264parse" "$LINENO" 5 ;; esac else @@ -26752,7 +27729,7 @@ if test "${enable_hdvparse+set}" = set; then : case "${enableval}" in yes) gst_use_hdvparse=yes ;; no) gst_use_hdvparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-hdvparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-hdvparse" "$LINENO" 5 ;; esac else @@ -26792,7 +27769,7 @@ if test "${enable_hls+set}" = set; then : case "${enableval}" in yes) gst_use_hls=yes ;; no) gst_use_hls=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-hls" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-hls" "$LINENO" 5 ;; esac else @@ -26832,7 +27809,7 @@ if test "${enable_id3tag+set}" = set; then : case "${enableval}" in yes) gst_use_id3tag=yes ;; no) gst_use_id3tag=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-id3tag" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-id3tag" "$LINENO" 5 ;; esac else @@ -26862,6 +27839,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL inter" + + + + # Check whether --enable-inter was given. +if test "${enable_inter+set}" = set; then : + enableval=$enable_inter; + case "${enableval}" in + yes) gst_use_inter=yes ;; + no) gst_use_inter=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-inter" "$LINENO" 5 ;; + esac + +else + gst_use_inter=yes +fi + + if test x$gst_use_inter = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin inter" >&5 +$as_echo "$as_me: disabling dependency-less plugin inter" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS inter" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " inter " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED inter" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " inter " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ inter / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " inter " > /dev/null; then + USE_PLUGIN_INTER_TRUE= + USE_PLUGIN_INTER_FALSE='#' +else + USE_PLUGIN_INTER_TRUE='#' + USE_PLUGIN_INTER_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL interlace" @@ -26872,7 +27889,7 @@ if test "${enable_interlace+set}" = set; then : case "${enableval}" in yes) gst_use_interlace=yes ;; no) gst_use_interlace=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-interlace" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-interlace" "$LINENO" 5 ;; esac else @@ -26902,46 +27919,6 @@ 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" @@ -26952,7 +27929,7 @@ if test "${enable_ivfparse+set}" = set; then : case "${enableval}" in yes) gst_use_ivfparse=yes ;; no) gst_use_ivfparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-ivfparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-ivfparse" "$LINENO" 5 ;; esac else @@ -26992,7 +27969,7 @@ if test "${enable_jp2kdecimator+set}" = set; then : case "${enableval}" in yes) gst_use_jp2kdecimator=yes ;; no) gst_use_jp2kdecimator=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-jp2kdecimator" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jp2kdecimator" "$LINENO" 5 ;; esac else @@ -27032,7 +28009,7 @@ if test "${enable_jpegformat+set}" = set; then : case "${enableval}" in yes) gst_use_jpegformat=yes ;; no) gst_use_jpegformat=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-jpegformat" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jpegformat" "$LINENO" 5 ;; esac else @@ -27072,7 +28049,7 @@ if test "${enable_legacyresample+set}" = set; then : case "${enableval}" in yes) gst_use_legacyresample=yes ;; no) gst_use_legacyresample=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-legacyresample" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-legacyresample" "$LINENO" 5 ;; esac else @@ -27112,7 +28089,7 @@ if test "${enable_librfb+set}" = set; then : case "${enableval}" in yes) gst_use_librfb=yes ;; no) gst_use_librfb=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-librfb" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-librfb" "$LINENO" 5 ;; esac else @@ -27152,7 +28129,7 @@ if test "${enable_liveadder+set}" = set; then : case "${enableval}" in yes) gst_use_liveadder=yes ;; no) gst_use_liveadder=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-liveadder" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-liveadder" "$LINENO" 5 ;; esac else @@ -27192,7 +28169,7 @@ if test "${enable_mpegdemux+set}" = set; then : case "${enableval}" in yes) gst_use_mpegdemux=yes ;; no) gst_use_mpegdemux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpegdemux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegdemux" "$LINENO" 5 ;; esac else @@ -27232,7 +28209,7 @@ if test "${enable_mpegtsdemux+set}" = set; then : case "${enableval}" in yes) gst_use_mpegtsdemux=yes ;; no) gst_use_mpegtsdemux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsdemux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsdemux" "$LINENO" 5 ;; esac else @@ -27272,7 +28249,7 @@ if test "${enable_mpegtsmux+set}" = set; then : case "${enableval}" in yes) gst_use_mpegtsmux=yes ;; no) gst_use_mpegtsmux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsmux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsmux" "$LINENO" 5 ;; esac else @@ -27312,7 +28289,7 @@ if test "${enable_mpegpsmux+set}" = set; then : case "${enableval}" in yes) gst_use_mpegpsmux=yes ;; no) gst_use_mpegpsmux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpegpsmux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegpsmux" "$LINENO" 5 ;; esac else @@ -27342,46 +28319,6 @@ 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" @@ -27392,7 +28329,7 @@ if test "${enable_mpegvideoparse+set}" = set; then : case "${enableval}" in yes) gst_use_mpegvideoparse=yes ;; no) gst_use_mpegvideoparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpegvideoparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegvideoparse" "$LINENO" 5 ;; esac else @@ -27432,7 +28369,7 @@ if test "${enable_mve+set}" = set; then : case "${enableval}" in yes) gst_use_mve=yes ;; no) gst_use_mve=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mve" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mve" "$LINENO" 5 ;; esac else @@ -27472,7 +28409,7 @@ if test "${enable_mxf+set}" = set; then : case "${enableval}" in yes) gst_use_mxf=yes ;; no) gst_use_mxf=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mxf" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mxf" "$LINENO" 5 ;; esac else @@ -27512,7 +28449,7 @@ if test "${enable_nsf+set}" = set; then : case "${enableval}" in yes) gst_use_nsf=yes ;; no) gst_use_nsf=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-nsf" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-nsf" "$LINENO" 5 ;; esac else @@ -27552,7 +28489,7 @@ if test "${enable_nuvdemux+set}" = set; then : case "${enableval}" in yes) gst_use_nuvdemux=yes ;; no) gst_use_nuvdemux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-nuvdemux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-nuvdemux" "$LINENO" 5 ;; esac else @@ -27592,7 +28529,7 @@ if test "${enable_patchdetect+set}" = set; then : case "${enableval}" in yes) gst_use_patchdetect=yes ;; no) gst_use_patchdetect=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-patchdetect" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-patchdetect" "$LINENO" 5 ;; esac else @@ -27632,7 +28569,7 @@ if test "${enable_pcapparse+set}" = set; then : case "${enableval}" in yes) gst_use_pcapparse=yes ;; no) gst_use_pcapparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-pcapparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-pcapparse" "$LINENO" 5 ;; esac else @@ -27672,7 +28609,7 @@ if test "${enable_pnm+set}" = set; then : case "${enableval}" in yes) gst_use_pnm=yes ;; no) gst_use_pnm=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-pnm" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-pnm" "$LINENO" 5 ;; esac else @@ -27712,7 +28649,7 @@ if test "${enable_rawparse+set}" = set; then : case "${enableval}" in yes) gst_use_rawparse=yes ;; no) gst_use_rawparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rawparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rawparse" "$LINENO" 5 ;; esac else @@ -27752,7 +28689,7 @@ if test "${enable_real+set}" = set; then : case "${enableval}" in yes) gst_use_real=yes ;; no) gst_use_real=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-real" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-real" "$LINENO" 5 ;; esac else @@ -27782,6 +28719,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL removesilence" + + + + # Check whether --enable-removesilence was given. +if test "${enable_removesilence+set}" = set; then : + enableval=$enable_removesilence; + case "${enableval}" in + yes) gst_use_removesilence=yes ;; + no) gst_use_removesilence=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-removesilence" "$LINENO" 5 ;; + esac + +else + gst_use_removesilence=yes +fi + + if test x$gst_use_removesilence = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin removesilence" >&5 +$as_echo "$as_me: disabling dependency-less plugin removesilence" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS removesilence" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " removesilence " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED removesilence" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " removesilence " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ removesilence / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " removesilence " > /dev/null; then + USE_PLUGIN_REMOVESILENCE_TRUE= + USE_PLUGIN_REMOVESILENCE_FALSE='#' +else + USE_PLUGIN_REMOVESILENCE_TRUE='#' + USE_PLUGIN_REMOVESILENCE_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL rtpmux" @@ -27792,7 +28769,7 @@ if test "${enable_rtpmux+set}" = set; then : case "${enableval}" in yes) gst_use_rtpmux=yes ;; no) gst_use_rtpmux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rtpmux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtpmux" "$LINENO" 5 ;; esac else @@ -27832,7 +28809,7 @@ if test "${enable_rtpvp8+set}" = set; then : case "${enableval}" in yes) gst_use_rtpvp8=yes ;; no) gst_use_rtpvp8=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rtpvp8" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtpvp8" "$LINENO" 5 ;; esac else @@ -27872,7 +28849,7 @@ if test "${enable_scaletempo+set}" = set; then : case "${enableval}" in yes) gst_use_scaletempo=yes ;; no) gst_use_scaletempo=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-scaletempo" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-scaletempo" "$LINENO" 5 ;; esac else @@ -27912,7 +28889,7 @@ if test "${enable_sdi+set}" = set; then : case "${enableval}" in yes) gst_use_sdi=yes ;; no) gst_use_sdi=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-sdi" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdi" "$LINENO" 5 ;; esac else @@ -27952,7 +28929,7 @@ if test "${enable_sdp+set}" = set; then : case "${enableval}" in yes) gst_use_sdp=yes ;; no) gst_use_sdp=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-sdp" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdp" "$LINENO" 5 ;; esac else @@ -27992,7 +28969,7 @@ if test "${enable_segmentclip+set}" = set; then : case "${enableval}" in yes) gst_use_segmentclip=yes ;; no) gst_use_segmentclip=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-segmentclip" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-segmentclip" "$LINENO" 5 ;; esac else @@ -28032,7 +29009,7 @@ if test "${enable_siren+set}" = set; then : case "${enableval}" in yes) gst_use_siren=yes ;; no) gst_use_siren=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-siren" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-siren" "$LINENO" 5 ;; esac else @@ -28062,6 +29039,46 @@ fi + GST_PLUGINS_ALL="$GST_PLUGINS_ALL smooth" + + + + # Check whether --enable-smooth was given. +if test "${enable_smooth+set}" = set; then : + enableval=$enable_smooth; + case "${enableval}" in + yes) gst_use_smooth=yes ;; + no) gst_use_smooth=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-smooth" "$LINENO" 5 ;; + esac + +else + gst_use_smooth=yes +fi + + if test x$gst_use_smooth = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin smooth" >&5 +$as_echo "$as_me: disabling dependency-less plugin smooth" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS smooth" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " smooth " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED smooth" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " smooth " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ smooth / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " smooth " > /dev/null; then + USE_PLUGIN_SMOOTH_TRUE= + USE_PLUGIN_SMOOTH_FALSE='#' +else + USE_PLUGIN_SMOOTH_TRUE='#' + USE_PLUGIN_SMOOTH_FALSE= +fi + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL speed" @@ -28072,7 +29089,7 @@ if test "${enable_speed+set}" = set; then : case "${enableval}" in yes) gst_use_speed=yes ;; no) gst_use_speed=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-speed" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-speed" "$LINENO" 5 ;; esac else @@ -28112,7 +29129,7 @@ if test "${enable_subenc+set}" = set; then : case "${enableval}" in yes) gst_use_subenc=yes ;; no) gst_use_subenc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-subenc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-subenc" "$LINENO" 5 ;; esac else @@ -28152,7 +29169,7 @@ if test "${enable_stereo+set}" = set; then : case "${enableval}" in yes) gst_use_stereo=yes ;; no) gst_use_stereo=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-stereo" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-stereo" "$LINENO" 5 ;; esac else @@ -28192,7 +29209,7 @@ if test "${enable_tta+set}" = set; then : case "${enableval}" in yes) gst_use_tta=yes ;; no) gst_use_tta=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-tta" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-tta" "$LINENO" 5 ;; esac else @@ -28232,7 +29249,7 @@ if test "${enable_videofilters+set}" = set; then : case "${enableval}" in yes) gst_use_videofilters=yes ;; no) gst_use_videofilters=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videofilters" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videofilters" "$LINENO" 5 ;; esac else @@ -28272,7 +29289,7 @@ if test "${enable_videomaxrate+set}" = set; then : case "${enableval}" in yes) gst_use_videomaxrate=yes ;; no) gst_use_videomaxrate=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videomaxrate" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videomaxrate" "$LINENO" 5 ;; esac else @@ -28312,7 +29329,7 @@ if test "${enable_videomeasure+set}" = set; then : case "${enableval}" in yes) gst_use_videomeasure=yes ;; no) gst_use_videomeasure=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videomeasure" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videomeasure" "$LINENO" 5 ;; esac else @@ -28352,7 +29369,7 @@ if test "${enable_videoparsers+set}" = set; then : case "${enableval}" in yes) gst_use_videoparsers=yes ;; no) gst_use_videoparsers=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videoparsers" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videoparsers" "$LINENO" 5 ;; esac else @@ -28392,7 +29409,7 @@ if test "${enable_videosignal+set}" = set; then : case "${enableval}" in yes) gst_use_videosignal=yes ;; no) gst_use_videosignal=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videosignal" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videosignal" "$LINENO" 5 ;; esac else @@ -28432,7 +29449,7 @@ if test "${enable_vmnc+set}" = set; then : case "${enableval}" in yes) gst_use_vmnc=yes ;; no) gst_use_vmnc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-vmnc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-vmnc" "$LINENO" 5 ;; esac else @@ -28472,7 +29489,7 @@ if test "${enable_y4m+set}" = set; then : case "${enableval}" in yes) gst_use_y4m=yes ;; no) gst_use_y4m=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-y4m" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-y4m" "$LINENO" 5 ;; esac else @@ -28519,20 +29536,6 @@ 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 @@ -28611,7 +29614,7 @@ 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 : +if test "x$ac_cv_header_sys_socket_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_SOCKET_H 1 _ACEOF @@ -28623,7 +29626,7 @@ 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 : +if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF @@ -28691,7 +29694,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-directsound" "$LINENO" 5 ;; esac else USE_DIRECTSOUND=yes @@ -28802,6 +29805,129 @@ fi echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Direct3D plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: Direct3D plug-in ***" >&6;} +if test "xdirect3dsink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: direct3dsink ***" >&5 +$as_echo "$as_me: *** for plug-ins: direct3dsink ***" >&6;} +fi +NOUSE= +if test "x$USE_DIRECT3D" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-direct3d was given. +if test "${enable_direct3d+set}" = set; then : + enableval=$enable_direct3d; case "${enableval}" in + yes) USE_DIRECT3D=yes;; + no) USE_DIRECT3D=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-direct3d" "$LINENO" 5 ;; + esac +else + USE_DIRECT3D=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIRECT3D="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** direct3dsink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** direct3dsink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIRECT3D = 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_DIRECT3D=no + + HAVE_DIRECT3D="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -ld3d9 -lgdi32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Direct3D LDFLAGS" >&5 +$as_echo_n "checking for Direct3D LDFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int main () +{ + Direct3DCreate9(D3D_SDK_VERSION); + + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + HAVE_DIRECT3D="yes" +else + HAVE_DIRECT3D="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_DIRECT3D" >&5 +$as_echo "$HAVE_DIRECT3D" >&6; } + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECT3D" = "xyes"; then + DIRECT3D_LIBS="-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_DIRECT3D = xno; then + USE_DIRECT3D=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: direct3dsink" >&5 +$as_echo "$as_me: *** These plugins will be built: direct3dsink" >&6;} + fi +fi +if test x$USE_DIRECT3D = xyes; then + : + if test "xdirect3dsink" != "x"; then + GST_PLUGINS_YES="\tdirect3dsink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIRECT3D /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: direct3dsink" >&5 +$as_echo "$as_me: *** These plugins will not be built: direct3dsink" >&6;} + if test "xdirect3dsink" != "x"; then + GST_PLUGINS_NO="\tdirect3dsink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIRECT3D = xyes; then + USE_DIRECT3D_TRUE= + USE_DIRECT3D_FALSE='#' +else + USE_DIRECT3D_TRUE='#' + USE_DIRECT3D_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" @@ -28818,7 +29944,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-directdraw" "$LINENO" 5 ;; esac else USE_DIRECTDRAW=yes @@ -28945,7 +30071,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-apple_media" "$LINENO" 5 ;; esac else USE_APPLE_MEDIA=yes @@ -28970,7 +30096,7 @@ if test x$USE_APPLE_MEDIA = xyes; then 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 : +if test "x$ac_cv_header_SystemConfiguration_SystemConfiguration_h" = xyes; then : HAVE_APPLE_MEDIA="yes" else HAVE_APPLE_MEDIA="no" @@ -29027,7 +30153,7 @@ 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 : +if test "x$ac_cv_header_MobileCoreServices_MobileCoreServices_h" = xyes; then : HAVE_IOS="yes" else HAVE_IOS="no" @@ -29068,7 +30194,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-osx_video" "$LINENO" 5 ;; esac else USE_OSX_VIDEO=yes @@ -29094,7 +30220,7 @@ if test x$USE_OSX_VIDEO = xyes; then ac_fn_c_check_type "$LINENO" "SeqGrabComponent" "ac_cv_type_SeqGrabComponent" "#include " -if test "x$ac_cv_type_SeqGrabComponent" = x""yes; then : +if test "x$ac_cv_type_SeqGrabComponent" = xyes; then : HAVE_OSX_VIDEO="yes" else HAVE_OSX_VIDEO="no" @@ -29148,6 +30274,132 @@ case "$host" in ;; esac +HAVE_AVC="no" +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: AVC Video Services ***" >&5 +$as_echo "$as_me: *** checking feature: AVC Video Services ***" >&6;} +if test "xavcsrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: avcsrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: avcsrc ***" >&6;} +fi +NOUSE= +if test "x$USE_AVC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-avc was given. +if test "${enable_avc+set}" = set; then : + enableval=$enable_avc; case "${enableval}" in + yes) USE_AVC=yes;; + no) USE_AVC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-avc" "$LINENO" 5 ;; + esac +else + USE_AVC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_AVC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** avcsrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** avcsrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_AVC = 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_AVC=no + + 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 + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation" + save_LIBS="$LIBS" + LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + HAVE_AVC=yes +else + HAVE_AVC=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$save_LIBS + CPPFLAGS=$save_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 + + + + 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_AVC = xno; then + USE_AVC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: avcsrc" >&5 +$as_echo "$as_me: *** These plugins will be built: avcsrc" >&6;} + fi +fi +if test x$USE_AVC = xyes; then + : + if test "xavcsrc" != "x"; then + GST_PLUGINS_YES="\tavcsrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_AVC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: avcsrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: avcsrc" >&6;} + if test "xavcsrc" != "x"; then + GST_PLUGINS_NO="\tavcsrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_AVC = xyes; then + USE_AVC_TRUE= + USE_AVC_FALSE='#' +else + USE_AVC_TRUE='#' + USE_AVC_FALSE= +fi + + +case "$host" in + *-*darwin*) + ;; + *) + HAVE_AVC="no" + ;; +esac + echo { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: QuickTime wrapper ***" >&5 $as_echo "$as_me: *** checking feature: QuickTime wrapper ***" >&6;} @@ -29165,7 +30417,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-quicktime" "$LINENO" 5 ;; esac else USE_QUICKTIME=yes @@ -29191,7 +30443,7 @@ if test x$USE_QUICKTIME = xyes; then ac_fn_c_check_type "$LINENO" "SampleReferenceRecord" "ac_cv_type_SampleReferenceRecord" "#include " -if test "x$ac_cv_type_SampleReferenceRecord" = x""yes; then : +if test "x$ac_cv_type_SampleReferenceRecord" = xyes; then : HAVE_QUICKTIME="yes" else HAVE_QUICKTIME="no" @@ -29255,7 +30507,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-shm" "$LINENO" 5 ;; esac else USE_SHM=yes @@ -29282,7 +30534,7 @@ if test x$USE_SHM = xyes; then 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 : +if ${ac_cv_lib_rt_shm_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29316,12 +30568,12 @@ 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 : +if test "x$ac_cv_lib_rt_shm_open" = xyes; 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 : +if test "x$ac_cv_have_decl_MSG_NOSIGNAL" = xyes; then : HAVE_SHM=yes else HAVE_SHM=no @@ -29392,7 +30644,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-vcd" "$LINENO" 5 ;; esac else USE_VCD=yes @@ -29417,7 +30669,7 @@ if test x$USE_VCD = xyes; then 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 : +if test "x$ac_cv_header_linux_cdrom_h" = xyes; then : HAVE_VCD="yes" else HAVE_VCD="no" @@ -29485,7 +30737,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-assrender" "$LINENO" 5 ;; esac else USE_ASSRENDER=yes @@ -29629,37 +30881,214 @@ 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" +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: vo-amrwbenc library ***" >&5 +$as_echo "$as_me: *** checking feature: vo-amrwbenc library ***" >&6;} +if test "xvo-amrwbenc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: vo-amrwbenc ***" >&5 +$as_echo "$as_me: *** for plug-ins: vo-amrwbenc ***" >&6;} +fi +NOUSE= +if test "x$USE_VOAMRWBENC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-voamrwbenc was given. +if test "${enable_voamrwbenc+set}" = set; then : + enableval=$enable_voamrwbenc; case "${enableval}" in + yes) USE_VOAMRWBENC=yes;; + no) USE_VOAMRWBENC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-voamrwbenc" "$LINENO" 5 ;; + esac +else + USE_VOAMRWBENC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_VOAMRWBENC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** vo-amrwbenc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** vo-amrwbenc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_VOAMRWBENC = 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_VOAMRWBENC=no + + + which="vo-amrwbenc >= 0.1.0" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VOAMRWBENC" >&5 +$as_echo_n "checking for VOAMRWBENC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$VOAMRWBENC_CFLAGS"; then + pkg_cv_VOAMRWBENC_CFLAGS="$VOAMRWBENC_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_VOAMRWBENC_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 "$VOAMRWBENC_LIBS"; then + pkg_cv_VOAMRWBENC_LIBS="$VOAMRWBENC_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_VOAMRWBENC_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 + VOAMRWBENC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + VOAMRWBENC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$VOAMRWBENC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_VOAMRWBENC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$VOAMRWBENC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $VOAMRWBENC_PKG_ERRORS" >&5 +$as_echo "$as_me: $VOAMRWBENC_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_VOAMRWBENC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$VOAMRWBENC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $VOAMRWBENC_PKG_ERRORS" >&5 +$as_echo "$as_me: $VOAMRWBENC_PKG_ERRORS" >&6;} + fi + +else + VOAMRWBENC_CFLAGS=$pkg_cv_VOAMRWBENC_CFLAGS + VOAMRWBENC_LIBS=$pkg_cv_VOAMRWBENC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_VOAMRWBENC="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_VOAMRWBENC = xno; then + USE_VOAMRWBENC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: vo-amrwbenc" >&5 +$as_echo "$as_me: *** These plugins will be built: vo-amrwbenc" >&6;} + fi +fi +if test x$USE_VOAMRWBENC = xyes; then + : + if test "xvo-amrwbenc" != "x"; then + GST_PLUGINS_YES="\tvo-amrwbenc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_VOAMRWBENC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: vo-amrwbenc" >&5 +$as_echo "$as_me: *** These plugins will not be built: vo-amrwbenc" >&6;} + if test "xvo-amrwbenc" != "x"; then + GST_PLUGINS_NO="\tvo-amrwbenc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_VOAMRWBENC = xyes; then + USE_VOAMRWBENC_TRUE= + USE_VOAMRWBENC_FALSE='#' +else + USE_VOAMRWBENC_TRUE='#' + USE_VOAMRWBENC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: vo-aacenc library ***" >&5 +$as_echo "$as_me: *** checking feature: vo-aacenc library ***" >&6;} +if test "xvo-aacenc" != "x" then - { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: amrwbenc ***" >&5 -$as_echo "$as_me: *** for plug-ins: amrwbenc ***" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: vo-aacenc ***" >&5 +$as_echo "$as_me: *** for plug-ins: vo-aacenc ***" >&6;} fi NOUSE= -if test "x$USE_AMRWB" = "xno"; then +if test "x$USE_VOAACENC" = "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 ;; +# Check whether --enable-voaacenc was given. +if test "${enable_voaacenc+set}" = set; then : + enableval=$enable_voaacenc; case "${enableval}" in + yes) USE_VOAACENC=yes;; + no) USE_VOAACENC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-voaacenc" "$LINENO" 5 ;; esac else - USE_AMRWB=yes + USE_VOAACENC=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;} + USE_VOAACENC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** vo-aacenc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** vo-aacenc pre-configured not to be built" >&2;} fi NOUSE= -if test x$USE_AMRWB = xyes; then +if test x$USE_VOAACENC = xyes; then gst_check_save_LIBS=$LIBS gst_check_save_LDFLAGS=$LDFLAGS @@ -29667,70 +31096,101 @@ if test x$USE_AMRWB = xyes; then gst_check_save_CPPFLAGS=$CPPFLAGS gst_check_save_CXXFLAGS=$CXXFLAGS - HAVE_AMRWB=no + HAVE_VOAACENC=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. */ + which="vo-aacenc >= 0.1.0" + required="no" -/* 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 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VOAACENC" >&5 +$as_echo_n "checking for VOAACENC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$VOAACENC_CFLAGS"; then + pkg_cv_VOAACENC_CFLAGS="$VOAACENC_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_VOAACENC_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` else - ac_cv_lib_amrwb_GP3E_IF_encode=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$VOAACENC_LIBS"; then + pkg_cv_VOAACENC_LIBS="$VOAACENC_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_VOAACENC_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes 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 + fi else - HAVE_AMRWB=no + pkg_failed=untried 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 : - : + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - HAVE_AMRWB=no + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + VOAACENC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + VOAACENC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$VOAACENC_PKG_ERRORS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "x$HAVE_AMRWB" = "xyes"; then - AMRWB_LIBS="-lamrwb" + HAVE_VOAACENC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$VOAACENC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $VOAACENC_PKG_ERRORS" >&5 +$as_echo "$as_me: $VOAACENC_PKG_ERRORS" >&6;} + fi - else - : - fi - else - : - fi +elif test $pkg_failed = untried; then + + HAVE_VOAACENC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$VOAACENC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $VOAACENC_PKG_ERRORS" >&5 +$as_echo "$as_me: $VOAACENC_PKG_ERRORS" >&6;} + fi + +else + VOAACENC_CFLAGS=$pkg_cv_VOAACENC_CFLAGS + VOAACENC_LIBS=$pkg_cv_VOAACENC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_VOAACENC="yes" + +fi @@ -29741,35 +31201,35 @@ fi CPPFLAGS=$gst_check_save_CPPFLAGS CXXFLAGS=$gst_check_save_CXXFLAGS - if test x$HAVE_AMRWB = xno; then - USE_AMRWB=no + if test x$HAVE_VOAACENC = xno; then + USE_VOAACENC=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;} + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: vo-aacenc" >&5 +$as_echo "$as_me: *** These plugins will be built: vo-aacenc" >&6;} fi fi -if test x$USE_AMRWB = xyes; then +if test x$USE_VOAACENC = xyes; then : - if test "xamrwbenc" != "x"; then - GST_PLUGINS_YES="\tamrwbenc\n$GST_PLUGINS_YES" + if test "xvo-aacenc" != "x"; then + GST_PLUGINS_YES="\tvo-aacenc\n$GST_PLUGINS_YES" fi -$as_echo "#define HAVE_AMRWB /**/" >>confdefs.h +$as_echo "#define HAVE_VOAACENC /**/" >>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" + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: vo-aacenc" >&5 +$as_echo "$as_me: *** These plugins will not be built: vo-aacenc" >&6;} + if test "xvo-aacenc" != "x"; then + GST_PLUGINS_NO="\tvo-aacenc\n$GST_PLUGINS_NO" fi : fi - if test x$USE_AMRWB = xyes; then - USE_AMRWB_TRUE= - USE_AMRWB_FALSE='#' + if test x$USE_VOAACENC = xyes; then + USE_VOAACENC_TRUE= + USE_VOAACENC_FALSE='#' else - USE_AMRWB_TRUE='#' - USE_AMRWB_FALSE= + USE_VOAACENC_TRUE='#' + USE_VOAACENC_FALSE= fi @@ -29791,7 +31251,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-apexsink" "$LINENO" 5 ;; esac else USE_APEXSINK=yes @@ -29894,7 +31354,7 @@ $as_echo "yes" >&6; } 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 : +if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -29928,11 +31388,11 @@ for ac_lib in '' socket; do fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_socket+set}" = set; then : + if ${ac_cv_search_socket+:} false; then : break fi done -if test "${ac_cv_search_socket+set}" = set; then : +if ${ac_cv_search_socket+:} false; then : else ac_cv_search_socket=no @@ -29952,7 +31412,7 @@ 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 : +if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -29986,11 +31446,11 @@ for ac_lib in '' nsl; do fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_gethostbyname+set}" = set; then : + if ${ac_cv_search_gethostbyname+:} false; then : break fi done -if test "${ac_cv_search_gethostbyname+set}" = set; then : +if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no @@ -30072,7 +31532,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-bz2" "$LINENO" 5 ;; esac else USE_BZ2=yes @@ -30099,7 +31559,7 @@ if test x$USE_BZ2 = xyes; then { $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 : +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -30133,7 +31593,7 @@ 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 : +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : HAVE_BZ2=yes else HAVE_BZ2=no @@ -30141,7 +31601,7 @@ 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 : +if test "x$ac_cv_header_bzlib_h" = xyes; then : : else HAVE_BZ2=no @@ -30228,7 +31688,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cdaudio" "$LINENO" 5 ;; esac else USE_CDAUDIO=yes @@ -30253,63 +31713,82 @@ if test x$USE_CDAUDIO = xyes; then 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 +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CDAUDIO" >&5 +$as_echo_n "checking for CDAUDIO... " >&6; } - test -z "$ac_cv_path_CDAUDIO_CONFIG" && ac_cv_path_CDAUDIO_CONFIG="no" - ;; -esac +if test -n "$PKG_CONFIG"; then + if test -n "$CDAUDIO_CFLAGS"; then + pkg_cv_CDAUDIO_CFLAGS="$CDAUDIO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcdaudio\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcdaudio") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CDAUDIO_CFLAGS=`$PKG_CONFIG --cflags "libcdaudio" 2>/dev/null` +else + pkg_failed=yes 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; } + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pkg_failed=untried 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 ` +if test -n "$PKG_CONFIG"; then + if test -n "$CDAUDIO_LIBS"; then + pkg_cv_CDAUDIO_LIBS="$CDAUDIO_LIBS" else - CDAUDIO_LIBS=`libcdaudio-config --libs ` + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcdaudio\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcdaudio") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CDAUDIO_LIBS=`$PKG_CONFIG --libs "libcdaudio" 2>/dev/null` +else + pkg_failed=yes +fi fi - CDAUDIO_CFLAGS=`libcdaudio-config --cflags ` - HAVE_CDAUDIO=yes - 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 + CDAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcdaudio"` + else + CDAUDIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcdaudio"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CDAUDIO_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_CDAUDIO="no" + +elif test $pkg_failed = untried; then + + HAVE_CDAUDIO="no" + +else + CDAUDIO_CFLAGS=$pkg_cv_CDAUDIO_CFLAGS + CDAUDIO_LIBS=$pkg_cv_CDAUDIO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_CDAUDIO="yes" + +fi @@ -30370,7 +31849,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-celt" "$LINENO" 5 ;; esac else USE_CELT=yes @@ -30774,7 +32253,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cog" "$LINENO" 5 ;; esac else USE_COG=yes @@ -30933,7 +32412,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-curl" "$LINENO" 5 ;; esac else USE_CURL=yes @@ -31113,7 +32592,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dc1394" "$LINENO" 5 ;; esac else USE_DC1394=yes @@ -31282,7 +32761,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-decklink" "$LINENO" 5 ;; esac else USE_DECKLINK=yes @@ -31312,7 +32791,7 @@ if test x$USE_DECKLINK = xyes; then 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 : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -31346,7 +32825,7 @@ 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 : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : HAVE_DECKLINK=yes DECKLINK_CXXFLAGS= @@ -31421,7 +32900,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-directfb" "$LINENO" 5 ;; esac else USE_DIRECTFB=yes @@ -31578,7 +33057,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dirac" "$LINENO" 5 ;; esac else USE_DIRAC=yes @@ -31735,7 +33214,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dts" "$LINENO" 5 ;; esac else USE_DTS=yes @@ -31763,7 +33242,7 @@ if test x$USE_DTS = xyes; then { $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 : +if ${ac_cv_lib_dca_dca_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -31797,7 +33276,7 @@ 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 : +if test "x$ac_cv_lib_dca_dca_init" = xyes; then : HAVE_DTS=yes else HAVE_DTS=no @@ -31805,7 +33284,7 @@ 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 : +if test "x$ac_cv_header_dca_h" = xyes; then : : else HAVE_DTS=no @@ -31827,7 +33306,7 @@ fi { $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 : +if ${ac_cv_lib_dts_pic_dts_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -31861,7 +33340,7 @@ 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 : +if test "x$ac_cv_lib_dts_pic_dts_init" = xyes; then : HAVE_DTS=yes else HAVE_DTS=no @@ -31869,7 +33348,7 @@ 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 : +if test "x$ac_cv_header_dts_h" = xyes; then : : else HAVE_DTS=no @@ -31951,7 +33430,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-divx" "$LINENO" 5 ;; esac else USE_DIVX=yes @@ -31977,7 +33456,7 @@ if test x$USE_DIVX = xyes; then 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 : +if test "x$ac_cv_header_encore2_h" = xyes; then : else @@ -32024,7 +33503,7 @@ 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 : +if test "x$ac_cv_header_decore_h" = xyes; then : else @@ -32074,7 +33553,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 : +if ${ac_cv_lib_divxencore_encore+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32108,7 +33587,7 @@ 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 : +if test "x$ac_cv_lib_divxencore_encore" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIVXENCORE 1 _ACEOF @@ -32127,7 +33606,7 @@ 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 : +if ${ac_cv_lib_divxdecore_decore+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32161,7 +33640,7 @@ 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 : +if test "x$ac_cv_lib_divxdecore_decore" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIVXDECORE 1 _ACEOF @@ -32241,7 +33720,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-resindvd" "$LINENO" 5 ;; esac else USE_RESINDVD=yes @@ -32398,7 +33877,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-faac" "$LINENO" 5 ;; esac else USE_FAAC=yes @@ -32425,7 +33904,7 @@ if test x$USE_FAAC = xyes; then { $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 : +if ${ac_cv_lib_faac_faacEncOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32459,7 +33938,7 @@ 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 : +if test "x$ac_cv_lib_faac_faacEncOpen" = xyes; then : HAVE_FAAC=yes else HAVE_FAAC=no @@ -32467,7 +33946,7 @@ 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 : +if test "x$ac_cv_header_faac_h" = xyes; then : : else HAVE_FAAC=no @@ -32554,7 +34033,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-faad" "$LINENO" 5 ;; esac else USE_FAAD=yes @@ -32583,7 +34062,7 @@ if test x$USE_FAAD = xyes; then { $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 : +if ${ac_cv_lib_faad_faacDecOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32617,7 +34096,7 @@ 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 : +if test "x$ac_cv_lib_faad_faacDecOpen" = xyes; then : HAVE_FAAD=yes else HAVE_FAAD=no @@ -32625,7 +34104,7 @@ 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 : +if test "x$ac_cv_header_faad_h" = xyes; then : : else HAVE_FAAD=no @@ -32647,7 +34126,7 @@ fi { $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 : +if ${ac_cv_lib_faad_NeAACDecOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32681,7 +34160,7 @@ 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 : +if test "x$ac_cv_lib_faad_NeAACDecOpen" = xyes; then : HAVE_FAAD=yes else HAVE_FAAD=no @@ -32689,7 +34168,7 @@ 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 : +if test "x$ac_cv_header_neaacdec_h" = xyes; then : : else HAVE_FAAD=no @@ -32856,7 +34335,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-fbdev" "$LINENO" 5 ;; esac else USE_FBDEV=yes @@ -32882,7 +34361,7 @@ if test x$USE_FBDEV = xyes; then 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 : +if test "x$ac_cv_header_linux_fb_h" = xyes; then : HAVE_FBDEV=yes else HAVE_FBDEV=no @@ -32948,7 +34427,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-flite" "$LINENO" 5 ;; esac else USE_FLITE=yes @@ -32975,7 +34454,7 @@ if test x$USE_FLITE = xyes; then { $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 : +if ${ac_cv_lib_flite_flite_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -33009,7 +34488,7 @@ 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 : +if test "x$ac_cv_lib_flite_flite_init" = xyes; then : HAVE_FLITE=yes else HAVE_FLITE=no @@ -33017,7 +34496,7 @@ 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 : +if test "x$ac_cv_header_flite_flite_h" = xyes; then : : else HAVE_FLITE=no @@ -33096,7 +34575,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gsm" "$LINENO" 5 ;; esac else USE_GSM=yes @@ -33123,7 +34602,7 @@ if test x$USE_GSM = xyes; 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 : +if ${ac_cv_lib_gsm_gsm_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -33157,7 +34636,7 @@ 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 : +if test "x$ac_cv_lib_gsm_gsm_create" = xyes; then : HAVE_GSM=yes else HAVE_GSM=no @@ -33165,7 +34644,7 @@ 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 : +if test "x$ac_cv_header_gsm_h" = xyes; then : : else HAVE_GSM=no @@ -33187,7 +34666,7 @@ fi { $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 : +if ${ac_cv_lib_gsm_gsm_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -33221,7 +34700,7 @@ 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 : +if test "x$ac_cv_lib_gsm_gsm_create" = xyes; then : HAVE_GSM=yes else HAVE_GSM=no @@ -33229,7 +34708,7 @@ 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 : +if test "x$ac_cv_header_gsm_gsm_h" = xyes; then : : else HAVE_GSM=no @@ -33312,7 +34791,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jp2k" "$LINENO" 5 ;; esac else USE_JP2K=yes @@ -33339,7 +34818,7 @@ if test x$USE_JP2K = xyes; then { $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 : +if ${ac_cv_lib_jasper_jas_stream_fopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -33373,7 +34852,7 @@ 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 : +if test "x$ac_cv_lib_jasper_jas_stream_fopen" = xyes; then : HAVE_JP2K=yes else HAVE_JP2K=no @@ -33381,7 +34860,7 @@ 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 : +if test "x$ac_cv_header_jasper_jasper_h" = xyes; then : : else HAVE_JP2K=no @@ -33458,7 +34937,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-kate" "$LINENO" 5 ;; esac else USE_KATE=yes @@ -33716,7 +35195,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-ladspa" "$LINENO" 5 ;; esac else USE_LADSPA=yes @@ -33741,7 +35220,7 @@ if test x$USE_LADSPA = xyes; then 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 : +if test "x$ac_cv_header_ladspa_h" = xyes; then : HAVE_LADSPA="yes" else HAVE_LADSPA="no" @@ -33885,7 +35364,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-lv2" "$LINENO" 5 ;; esac else USE_LV2=yes @@ -34040,7 +35519,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-libmms" "$LINENO" 5 ;; esac else USE_LIBMMS=yes @@ -34198,7 +35677,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-linsys" "$LINENO" 5 ;; esac else USE_LINSYS=yes @@ -34288,7 +35767,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-modplug" "$LINENO" 5 ;; esac else USE_MODPLUG=yes @@ -34449,7 +35928,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mimic" "$LINENO" 5 ;; esac else USE_MIMIC=yes @@ -34611,6 +36090,17 @@ else else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 2.0.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + mjpegtools_api=20000 + +else + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MJPEG" >&5 @@ -34621,12 +36111,12 @@ if test -n "$PKG_CONFIG"; 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0 mjpegtools < 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0 mjpegtools < 2.0.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` + pkg_cv_MJPEG_CFLAGS=`$PKG_CONFIG --cflags "mjpegtools >= 1.9.0 mjpegtools < 2.0.0" 2>/dev/null` else pkg_failed=yes fi @@ -34639,12 +36129,12 @@ if test -n "$PKG_CONFIG"; 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0 mjpegtools < 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0 mjpegtools < 2.0.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` + pkg_cv_MJPEG_LIBS=`$PKG_CONFIG --libs "mjpegtools >= 1.9.0 mjpegtools < 2.0.0" 2>/dev/null` else pkg_failed=yes fi @@ -34663,9 +36153,9 @@ 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"` + MJPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mjpegtools >= 1.9.0 mjpegtools < 2.0.0"` else - MJPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mjpegtools >= 1.9.0"` + MJPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mjpegtools >= 1.9.0 mjpegtools < 2.0.0"` fi # Put the nasty error message in config.log where it belongs echo "$MJPEG_PKG_ERRORS" >&5 @@ -34673,11 +36163,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - mjpegtools_api=0 + mjpegtools_api=0 elif test $pkg_failed = untried; then - mjpegtools_api=0 + mjpegtools_api=0 else MJPEG_CFLAGS=$pkg_cv_MJPEG_CFLAGS @@ -34685,23 +36175,25 @@ else { $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 : + 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" = xyes; then : - mjpegtools_api=10903 + mjpegtools_api=10903 else - mjpegtools_api=10900 + mjpegtools_api=10900 fi - CFLAGS="$OLD_CFLAGS" - LIBS="$OLD_LIBS" + CFLAGS="$OLD_CFLAGS" + LIBS="$OLD_LIBS" + +fi fi @@ -34732,7 +36224,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpeg2enc" "$LINENO" 5 ;; esac else USE_MPEG2ENC=yes @@ -34844,7 +36336,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 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 : +if test "x$ac_cv_header_mpeg2encoder_hh" = xyes; then : MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread" OLD_LIBS="$LIBS" @@ -34855,7 +36347,7 @@ $as_echo_n "checking for valid mpeg2enc objects... " >&6; } { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -34879,7 +36371,7 @@ if ac_fn_cxx_try_run "$LINENO"; then : $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 : +if test "x$ac_cv_header_mpeg2syntaxcodes_h" = xyes; then : mpeg2enc_headers_ok=yes @@ -34896,7 +36388,7 @@ fi if test "x$mpeg2enc_headers_ok" = "xyes"; then HAVE_MPEG2ENC="yes" fi - CPP_FLAGS="$CPPFLAGS_GOOD" + CPPFLAGS="$CPPFLAGS_GOOD" @@ -34984,7 +36476,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mplex" "$LINENO" 5 ;; esac else USE_MPLEX=yes @@ -35080,6 +36572,7 @@ else { $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' @@ -35087,9 +36580,10 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu OLD_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS" + CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS" + CPPFLAGS="$CPPFLAGS_GOOD -I." 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 : +if test "x$ac_cv_header_interact_hpp" = xyes; then : MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM" OLD_LIBS="$LIBS" @@ -35102,7 +36596,7 @@ $as_echo_n "checking for valid mplex objects... " >&6; } { { $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 ; } +See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -35136,6 +36630,7 @@ _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : HAVE_MPLEX="yes" + CPPFLAGS="$CPPFLAGS_GOOD" @@ -35224,7 +36719,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-musepack" "$LINENO" 5 ;; esac else USE_MUSEPACK=yes @@ -35249,7 +36744,7 @@ if test x$USE_MUSEPACK = xyes; then 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 : +if test "x$ac_cv_header_mpc_mpcdec_h" = xyes; then : HAVE_MUSEPACK="yes" MUSEPACK_LIBS="-lmpcdec" @@ -35257,7 +36752,7 @@ if test "x$ac_cv_header_mpc_mpcdec_h" = x""yes; then : 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 : +if test "x$ac_cv_header_mpcdec_mpcdec_h" = xyes; then : HAVE_MUSEPACK="yes" MUSEPACK_LIBS="-lmpcdec" @@ -35332,7 +36827,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-musicbrainz" "$LINENO" 5 ;; esac else USE_MUSICBRAINZ=yes @@ -35487,7 +36982,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mythtv" "$LINENO" 5 ;; esac else USE_MYTHTV=yes @@ -35644,8 +37139,8 @@ if test "x$with_x" = xno; then 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_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. @@ -35839,7 +37334,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-nas" "$LINENO" 5 ;; esac else USE_NAS=yes @@ -35965,7 +37460,7 @@ 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 : +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -35999,14 +37494,14 @@ 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 : +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; 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 : +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36040,7 +37535,7 @@ 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 : +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi @@ -36059,14 +37554,14 @@ rm -f core conftest.err conftest.$ac_objext \ # 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 : +if test "x$ac_cv_func_gethostbyname" = xyes; 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 : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36100,14 +37595,14 @@ 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 : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; 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 : +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36141,7 +37636,7 @@ 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 : +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi @@ -36156,14 +37651,14 @@ fi # 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 : +if test "x$ac_cv_func_connect" = xyes; 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 : +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36197,7 +37692,7 @@ 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 : +if test "x$ac_cv_lib_socket_connect" = xyes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi @@ -36205,14 +37700,14 @@ 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 : +if test "x$ac_cv_func_remove" = xyes; 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 : +if ${ac_cv_lib_posix_remove+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36246,7 +37741,7 @@ 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 : +if test "x$ac_cv_lib_posix_remove" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi @@ -36254,14 +37749,14 @@ 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 : +if test "x$ac_cv_func_shmat" = xyes; 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 : +if ${ac_cv_lib_ipc_shmat+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36295,7 +37790,7 @@ 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 : +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi @@ -36313,7 +37808,7 @@ fi # 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 : +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36347,7 +37842,7 @@ 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 : +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi @@ -36361,7 +37856,7 @@ fi 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 : +if test "x$ac_cv_header_X11_Xlib_h" = xyes; then : HAVE_X="yes" else HAVE_X="no" @@ -36390,7 +37885,7 @@ $as_echo "$as_me: cannot find X11 development files" >&6;} { $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 : +if ${ac_cv_lib_audio_AuOpenServer+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36424,7 +37919,7 @@ 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 : +if test "x$ac_cv_lib_audio_AuOpenServer" = xyes; then : HAVE_NAS=yes else HAVE_NAS=no @@ -36432,7 +37927,7 @@ 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 : +if test "x$ac_cv_header_audio_audiolib_h" = xyes; then : : else HAVE_NAS=no @@ -36512,7 +38007,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-neon" "$LINENO" 5 ;; esac else USE_NEON=yes @@ -36671,7 +38166,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-ofa" "$LINENO" 5 ;; esac else USE_OFA=yes @@ -36814,6 +38309,165 @@ fi echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: OpenAL plugin ***" >&5 +$as_echo "$as_me: *** checking feature: OpenAL plugin ***" >&6;} +if test "xopenal" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: openal ***" >&5 +$as_echo "$as_me: *** for plug-ins: openal ***" >&6;} +fi +NOUSE= +if test "x$USE_OPENAL" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-openal was given. +if test "${enable_openal+set}" = set; then : + enableval=$enable_openal; case "${enableval}" in + yes) USE_OPENAL=yes;; + no) USE_OPENAL=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-openal" "$LINENO" 5 ;; + esac +else + USE_OPENAL=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_OPENAL="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** openal pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** openal pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_OPENAL = 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_OPENAL=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENAL" >&5 +$as_echo_n "checking for OPENAL... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$OPENAL_CFLAGS"; then + pkg_cv_OPENAL_CFLAGS="$OPENAL_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openal\""; } >&5 + ($PKG_CONFIG --exists --print-errors "openal") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPENAL_CFLAGS=`$PKG_CONFIG --cflags "openal" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$OPENAL_LIBS"; then + pkg_cv_OPENAL_LIBS="$OPENAL_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openal\""; } >&5 + ($PKG_CONFIG --exists --print-errors "openal") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPENAL_LIBS=`$PKG_CONFIG --libs "openal" 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 + OPENAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openal"` + else + OPENAL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openal"` + fi + # Put the nasty error message in config.log where it belongs + echo "$OPENAL_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_OPENAL="no" + +elif test $pkg_failed = untried; then + + HAVE_OPENAL="no" + +else + OPENAL_CFLAGS=$pkg_cv_OPENAL_CFLAGS + OPENAL_LIBS=$pkg_cv_OPENAL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_OPENAL="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_OPENAL = xno; then + USE_OPENAL=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: openal" >&5 +$as_echo "$as_me: *** These plugins will be built: openal" >&6;} + fi +fi +if test x$USE_OPENAL = xyes; then + : + if test "xopenal" != "x"; then + GST_PLUGINS_YES="\topenal\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_OPENAL /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: openal" >&5 +$as_echo "$as_me: *** These plugins will not be built: openal" >&6;} + if test "xopenal" != "x"; then + GST_PLUGINS_NO="\topenal\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_OPENAL = xyes; then + USE_OPENAL_TRUE= + USE_OPENAL_FALSE='#' +else + USE_OPENAL_TRUE='#' + USE_OPENAL_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" @@ -36830,7 +38484,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-opencv" "$LINENO" 5 ;; esac else USE_OPENCV=yes @@ -36864,12 +38518,12 @@ if test -n "$PKG_CONFIG"; 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv <= 2.3.1 \""; } >&5 + ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv <= 2.3.1 ") 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` + pkg_cv_OPENCV_CFLAGS=`$PKG_CONFIG --cflags "opencv >= 2.0.0 opencv <= 2.3.1 " 2>/dev/null` else pkg_failed=yes fi @@ -36882,12 +38536,12 @@ if test -n "$PKG_CONFIG"; 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv <= 2.3.1 \""; } >&5 + ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv <= 2.3.1 ") 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` + pkg_cv_OPENCV_LIBS=`$PKG_CONFIG --libs "opencv >= 2.0.0 opencv <= 2.3.1 " 2>/dev/null` else pkg_failed=yes fi @@ -36906,9 +38560,9 @@ 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 "` + OPENCV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv <= 2.3.1 "` else - OPENCV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv <= 2.2.0 "` + OPENCV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv <= 2.3.1 "` fi # Put the nasty error message in config.log where it belongs echo "$OPENCV_PKG_ERRORS" >&5 @@ -36944,7 +38598,7 @@ if test -z "$CXX"; then 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 : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -36988,7 +38642,7 @@ do 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 : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -37066,7 +38720,7 @@ 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 : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -37103,7 +38757,7 @@ 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 : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -37189,7 +38843,7 @@ 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 : +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -37198,6 +38852,7 @@ else # 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'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -37257,7 +38912,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | 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. @@ -37321,7 +38976,7 @@ 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 : +if test "x$ac_cv_header_highgui_h" = xyes; then : HAVE_HIGHGUI="yes" else HAVE_HIGHGUI="no" @@ -37329,7 +38984,7 @@ 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 : +if test "x$ac_cv_header_cvaux_h" = xyes; then : HAVE_CVAUX="yes" else HAVE_CVAUX="no" @@ -37400,6 +39055,336 @@ fi echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: opus ***" >&5 +$as_echo "$as_me: *** checking feature: opus ***" >&6;} +if test "xopus" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: opus ***" >&5 +$as_echo "$as_me: *** for plug-ins: opus ***" >&6;} +fi +NOUSE= +if test "x$USE_OPUS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-opus was given. +if test "${enable_opus+set}" = set; then : + enableval=$enable_opus; case "${enableval}" in + yes) USE_OPUS=yes;; + no) USE_OPUS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-opus" "$LINENO" 5 ;; + esac +else + USE_OPUS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_OPUS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** opus pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** opus pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_OPUS = 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_OPUS=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPUS" >&5 +$as_echo_n "checking for OPUS... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$OPUS_CFLAGS"; then + pkg_cv_OPUS_CFLAGS="$OPUS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opus >= 0.9.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "opus >= 0.9.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPUS_CFLAGS=`$PKG_CONFIG --cflags "opus >= 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 "$OPUS_LIBS"; then + pkg_cv_OPUS_LIBS="$OPUS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opus >= 0.9.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "opus >= 0.9.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPUS_LIBS=`$PKG_CONFIG --libs "opus >= 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 + OPUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opus >= 0.9.4"` + else + OPUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opus >= 0.9.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$OPUS_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_OPUS="no" + +elif test $pkg_failed = untried; then + + HAVE_OPUS="no" + +else + OPUS_CFLAGS=$pkg_cv_OPUS_CFLAGS + OPUS_LIBS=$pkg_cv_OPUS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_OPUS 1" >>confdefs.h + + HAVE_OPUS="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_OPUS = xno; then + USE_OPUS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: opus" >&5 +$as_echo "$as_me: *** These plugins will be built: opus" >&6;} + fi +fi +if test x$USE_OPUS = xyes; then + : + if test "xopus" != "x"; then + GST_PLUGINS_YES="\topus\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_OPUS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: opus" >&5 +$as_echo "$as_me: *** These plugins will not be built: opus" >&6;} + if test "xopus" != "x"; then + GST_PLUGINS_NO="\topus\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_OPUS = xyes; then + USE_OPUS_TRUE= + USE_OPUS_FALSE='#' +else + USE_OPUS_TRUE='#' + USE_OPUS_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: pvrvideosink ***" >&5 +$as_echo "$as_me: *** checking feature: pvrvideosink ***" >&6;} +if test "xpvr" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: pvr ***" >&5 +$as_echo "$as_me: *** for plug-ins: pvr ***" >&6;} +fi +NOUSE= +if test "x$USE_PVR" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-pvr was given. +if test "${enable_pvr+set}" = set; then : + enableval=$enable_pvr; case "${enableval}" in + yes) USE_PVR=yes;; + no) USE_PVR=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-pvr" "$LINENO" 5 ;; + esac +else + USE_PVR=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_PVR="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** pvr pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** pvr pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_PVR = 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_PVR=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PVR" >&5 +$as_echo_n "checking for PVR... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$PVR_CFLAGS"; then + pkg_cv_PVR_CFLAGS="$PVR_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtimemmgr\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtimemmgr") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PVR_CFLAGS=`$PKG_CONFIG --cflags "libtimemmgr" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$PVR_LIBS"; then + pkg_cv_PVR_LIBS="$PVR_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtimemmgr\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtimemmgr") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PVR_LIBS=`$PKG_CONFIG --libs "libtimemmgr" 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 + PVR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libtimemmgr"` + else + PVR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libtimemmgr"` + fi + # Put the nasty error message in config.log where it belongs + echo "$PVR_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_PVR=no +elif test $pkg_failed = untried; then + HAVE_PVR=no +else + PVR_CFLAGS=$pkg_cv_PVR_CFLAGS + PVR_LIBS=$pkg_cv_PVR_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_PVR=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_PVR = xno; then + USE_PVR=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: pvr" >&5 +$as_echo "$as_me: *** These plugins will be built: pvr" >&6;} + fi +fi +if test x$USE_PVR = xyes; then + : + if test "xpvr" != "x"; then + GST_PLUGINS_YES="\tpvr\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_PVR /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: pvr" >&5 +$as_echo "$as_me: *** These plugins will not be built: pvr" >&6;} + if test "xpvr" != "x"; then + GST_PLUGINS_NO="\tpvr\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_PVR = xyes; then + USE_PVR_TRUE= + USE_PVR_FALSE='#' +else + USE_PVR_TRUE='#' + USE_PVR_FALSE= +fi + + + + +# Check whether --with-pvr-external-headers was given. +if test "${with_pvr_external_headers+set}" = set; then : + withval=$with_pvr_external_headers; if test "x$with_pvr_external_headers" = "xno"; then : + PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes" +fi +else + PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes" +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" @@ -37416,7 +39401,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rsvg" "$LINENO" 5 ;; esac else USE_RSVG=yes @@ -37575,7 +39560,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-timidity" "$LINENO" 5 ;; esac else USE_TIMIDITY=yes @@ -37744,6 +39729,183 @@ fi echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Teletext decoder ***" >&5 +$as_echo "$as_me: *** checking feature: Teletext decoder ***" >&6;} +if test "xteletextdec" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: teletextdec ***" >&5 +$as_echo "$as_me: *** for plug-ins: teletextdec ***" >&6;} +fi +NOUSE= +if test "x$USE_TELETEXTDEC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-teletextdec was given. +if test "${enable_teletextdec+set}" = set; then : + enableval=$enable_teletextdec; case "${enableval}" in + yes) USE_TELETEXTDEC=yes;; + no) USE_TELETEXTDEC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-teletextdec" "$LINENO" 5 ;; + esac +else + USE_TELETEXTDEC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_TELETEXTDEC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** teletextdec pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** teletextdec pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_TELETEXTDEC = 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_TELETEXTDEC=no + + + which="zvbi-0.2" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TELETEXTDEC" >&5 +$as_echo_n "checking for TELETEXTDEC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$TELETEXTDEC_CFLAGS"; then + pkg_cv_TELETEXTDEC_CFLAGS="$TELETEXTDEC_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_TELETEXTDEC_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 "$TELETEXTDEC_LIBS"; then + pkg_cv_TELETEXTDEC_LIBS="$TELETEXTDEC_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_TELETEXTDEC_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 + TELETEXTDEC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + TELETEXTDEC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$TELETEXTDEC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_TELETEXTDEC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$TELETEXTDEC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $TELETEXTDEC_PKG_ERRORS" >&5 +$as_echo "$as_me: $TELETEXTDEC_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_TELETEXTDEC="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$TELETEXTDEC_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $TELETEXTDEC_PKG_ERRORS" >&5 +$as_echo "$as_me: $TELETEXTDEC_PKG_ERRORS" >&6;} + fi + +else + TELETEXTDEC_CFLAGS=$pkg_cv_TELETEXTDEC_CFLAGS + TELETEXTDEC_LIBS=$pkg_cv_TELETEXTDEC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_TELETEXTDEC="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_TELETEXTDEC = xno; then + USE_TELETEXTDEC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: teletextdec" >&5 +$as_echo "$as_me: *** These plugins will be built: teletextdec" >&6;} + fi +fi +if test x$USE_TELETEXTDEC = xyes; then + : + if test "xteletextdec" != "x"; then + GST_PLUGINS_YES="\tteletextdec\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_TELETEXTDEC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: teletextdec" >&5 +$as_echo "$as_me: *** These plugins will not be built: teletextdec" >&6;} + if test "xteletextdec" != "x"; then + GST_PLUGINS_NO="\tteletextdec\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_TELETEXTDEC = xyes; then + USE_TELETEXTDEC_TRUE= + USE_TELETEXTDEC_FALSE='#' +else + USE_TELETEXTDEC_TRUE='#' + USE_TELETEXTDEC_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" @@ -37760,7 +39922,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-wildmidi" "$LINENO" 5 ;; esac else USE_WILDMIDI=yes @@ -37787,7 +39949,7 @@ if test x$USE_WILDMIDI = xyes; then { $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 : +if ${ac_cv_lib_WildMidi_WildMidi_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -37821,7 +39983,7 @@ 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 : +if test "x$ac_cv_lib_WildMidi_WildMidi_Init" = xyes; then : HAVE_WILDMIDI=yes else HAVE_WILDMIDI=no @@ -37829,7 +39991,7 @@ 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 : +if test "x$ac_cv_header_wildmidi_lib_h" = xyes; then : : else HAVE_WILDMIDI=no @@ -37849,7 +40011,7 @@ 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 : +if ${ac_cv_lib_WildMidi_WildMidi_LoadSamples+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -37883,7 +40045,7 @@ 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 : +if test "x$ac_cv_lib_WildMidi_WildMidi_LoadSamples" = xyes; then : $as_echo "#define HAVE_WILDMIDI_0_2_2 1" >>confdefs.h @@ -37961,7 +40123,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdl" "$LINENO" 5 ;; esac else USE_SDL=yes @@ -38028,7 +40190,7 @@ fi 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 : +if ${ac_cv_path_SDL_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SDL_CONFIG in @@ -38292,7 +40454,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sndfile" "$LINENO" 5 ;; esac else USE_SNDFILE=yes @@ -38447,7 +40609,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-soundtouch" "$LINENO" 5 ;; esac else USE_SOUNDTOUCH=yes @@ -40753,7 +42915,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-spc" "$LINENO" 5 ;; esac else USE_SPC=yes @@ -40778,11 +42940,11 @@ if test x$USE_SPC = xyes; then 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 : +if test "x$ac_cv_header_openspc_h" = xyes; 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 : +if ${ac_cv_lib_openspc_OSPC_Init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -40816,7 +42978,7 @@ 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 : +if test "x$ac_cv_lib_openspc_OSPC_Init" = xyes; then : SPC_LIBS="-lopenspc" @@ -40894,7 +43056,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gme" "$LINENO" 5 ;; esac else USE_GME=yes @@ -40919,11 +43081,11 @@ if test x$USE_GME = xyes; then 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 : +if test "x$ac_cv_header_gme_gme_h" = xyes; 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 : +if ${ac_cv_lib_gme_gme_new_emu+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -40957,7 +43119,7 @@ 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 : +if test "x$ac_cv_lib_gme_gme_new_emu" = xyes; then : GME_LIBS="-lgme" @@ -40981,7 +43143,7 @@ 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 : +if ${ac_cv_lib_gme_gme_enable_accuracy+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -41015,7 +43177,7 @@ 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 : +if test "x$ac_cv_lib_gme_gme_enable_accuracy" = xyes; then : $as_echo "#define HAVE_LIBGME_ACCURACY 1" >>confdefs.h @@ -41082,7 +43244,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-swfdec" "$LINENO" 5 ;; esac else USE_SWFDEC=yes @@ -41241,7 +43403,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-xvid" "$LINENO" 5 ;; esac else USE_XVID=yes @@ -41267,13 +43429,13 @@ if test x$USE_XVID = xyes; then 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 : +if test "x$ac_cv_header_xvid_h" = xyes; 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 : +if ${ac_cv_lib_xvidcore_xvid_encore+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -41307,11 +43469,11 @@ 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 : +if test "x$ac_cv_lib_xvidcore_xvid_encore" = xyes; 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 : +if ${ac_cv_lib_xvidcore_xvid_decore+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -41345,11 +43507,11 @@ 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 : +if test "x$ac_cv_lib_xvidcore_xvid_decore" = xyes; 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 : +if ${ac_cv_lib_xvidcore_xvid_global+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -41383,7 +43545,7 @@ 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 : +if test "x$ac_cv_lib_xvidcore_xvid_global" = xyes; 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; } @@ -41397,6 +43559,9 @@ main () #if XVID_API_MAJOR(XVID_API) != 4 #error "Incompatible XviD API version" #endif + #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3 + #error "Incompatible XviD API version" + #endif ; return 0; @@ -41486,7 +43651,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvb" "$LINENO" 5 ;; esac else USE_DVB=yes @@ -41513,7 +43678,7 @@ if test x$USE_DVB = xyes; then { $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 : +if test "x$ac_cv_header_linux_dvb_frontend_h" = xyes; then : HAVE_DVB="yes" else HAVE_DVB="no" @@ -41578,7 +43743,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-wininet" "$LINENO" 5 ;; esac else USE_WININET=yes @@ -41607,7 +43772,9 @@ $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" +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 @@ -41677,7 +43844,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-acm" "$LINENO" 5 ;; esac else USE_ACM=yes @@ -41781,7 +43948,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-vdpau" "$LINENO" 5 ;; esac else USE_VDPAU=yes @@ -41874,7 +44041,7 @@ $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 : +if test "x$ac_cv_header_vdpau_vdpau_h" = xyes; then : HAVE_VDPAU_H=yes fi @@ -41889,7 +44056,7 @@ $as_echo "$as_me: VDPAU header not in standard path. Checking /usr/include/nvidi 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 : +if test "x$ac_cv_header_vdpau_vdpau_h" = xyes; then : HAVE_VDPAU_H=yes fi @@ -41897,7 +44064,7 @@ 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 : +if test "x$ac_cv_header_vdpau_vdpau_x11_h" = xyes; then : HAVE_VDPAU_X11_H=yes fi @@ -41910,7 +44077,7 @@ $as_echo "$as_me: VDPAU headers found. Checking libraries" >&6;} 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 : +if ${ac_cv_lib_vdpau_vdp_device_create_x11+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -41944,7 +44111,7 @@ 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 : +if test "x$ac_cv_lib_vdpau_vdp_device_create_x11" = xyes; then : HAVE_VDPAU="yes" fi @@ -41957,7 +44124,7 @@ 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 : +if test "x$ac_cv_header_vdpau_vdpau_h" = xyes; then : HAVE_VDPAU_H=yes fi @@ -41972,7 +44139,7 @@ $as_echo "$as_me: VDPAU header not in standard path. Checking /usr/include/nvidi 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 : +if test "x$ac_cv_header_vdpau_vdpau_h" = xyes; then : HAVE_VDPAU_H=yes fi @@ -41980,7 +44147,7 @@ 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 : +if test "x$ac_cv_header_vdpau_vdpau_x11_h" = xyes; then : HAVE_VDPAU_X11_H=yes fi @@ -41993,7 +44160,7 @@ $as_echo "$as_me: VDPAU headers found. Checking libraries" >&6;} 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 : +if ${ac_cv_lib_vdpau_vdp_device_create_x11+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -42027,7 +44194,7 @@ 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 : +if test "x$ac_cv_lib_vdpau_vdp_device_create_x11" = xyes; then : HAVE_VDPAU="yes" fi @@ -42107,7 +44274,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schro" "$LINENO" 5 ;; esac else USE_SCHRO=yes @@ -42284,7 +44451,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-zbar" "$LINENO" 5 ;; esac else USE_ZBAR=yes @@ -42461,7 +44628,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-vp8" "$LINENO" 5 ;; esac else USE_VP8=yes @@ -42489,7 +44656,7 @@ if test x$USE_VP8 = xyes; then { $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 : +if ${ac_cv_lib_vpx_vpx_codec_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -42523,7 +44690,7 @@ 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 : +if test "x$ac_cv_lib_vpx_vpx_codec_version" = xyes; then : HAVE_VPX=yes else HAVE_VPX=no @@ -42531,7 +44698,7 @@ 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 : +if test "x$ac_cv_header_vpx_vpx_codec_h" = xyes; then : : else HAVE_VPX=no @@ -42547,7 +44714,7 @@ fi 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 : +if ${ac_cv_lib_vpx_vpx_codec_vp8_cx_algo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -42581,7 +44748,7 @@ 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 : +if test "x$ac_cv_lib_vpx_vpx_codec_vp8_cx_algo" = xyes; then : HAVE_VP8=yes @@ -42589,11 +44756,46 @@ $as_echo "#define HAVE_VP8_ENCODER 1" >>confdefs.h VPX_LIBS="-lvpx" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VP8E_SET_TUNING presence" >&5 +$as_echo_n "checking for VP8E_SET_TUNING presence... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int foo=VP8E_SET_TUNING; + +int +main () +{ + +return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + +$as_echo "#define HAVE_VP8ENC_TUNING 1" >>confdefs.h + + { $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 conftest.err conftest.$ac_objext conftest.$ac_ext + 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 : +if ${ac_cv_lib_vpx_vpx_codec_vp8_dx_algo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -42627,7 +44829,7 @@ 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 : +if test "x$ac_cv_lib_vpx_vpx_codec_vp8_dx_algo" = xyes; then : HAVE_VP8=yes @@ -42707,7 +44909,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtmp" "$LINENO" 5 ;; esac else USE_RTMP=yes @@ -42868,6 +45070,166 @@ fi echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Spandsp ***" >&5 +$as_echo "$as_me: *** checking feature: Spandsp ***" >&6;} +if test "xspandsp" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: spandsp ***" >&5 +$as_echo "$as_me: *** for plug-ins: spandsp ***" >&6;} +fi +NOUSE= +if test "x$USE_SPANDSP" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-spandsp was given. +if test "${enable_spandsp+set}" = set; then : + enableval=$enable_spandsp; case "${enableval}" in + yes) USE_SPANDSP=yes;; + no) USE_SPANDSP=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-spandsp" "$LINENO" 5 ;; + esac +else + USE_SPANDSP=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SPANDSP="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** spandsp pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** spandsp pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SPANDSP = 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_SPANDSP=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPANDSP" >&5 +$as_echo_n "checking for SPANDSP... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SPANDSP_CFLAGS"; then + pkg_cv_SPANDSP_CFLAGS="$SPANDSP_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spandsp >= 0.0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spandsp >= 0.0.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPANDSP_CFLAGS=`$PKG_CONFIG --cflags "spandsp >= 0.0.6" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SPANDSP_LIBS"; then + pkg_cv_SPANDSP_LIBS="$SPANDSP_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spandsp >= 0.0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spandsp >= 0.0.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPANDSP_LIBS=`$PKG_CONFIG --libs "spandsp >= 0.0.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 + SPANDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "spandsp >= 0.0.6"` + else + SPANDSP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "spandsp >= 0.0.6"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SPANDSP_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_SPANDSP="no" + +elif test $pkg_failed = untried; then + + HAVE_SPANDSP="no" + +else + SPANDSP_CFLAGS=$pkg_cv_SPANDSP_CFLAGS + SPANDSP_LIBS=$pkg_cv_SPANDSP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_SPANDSP="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_SPANDSP = xno; then + USE_SPANDSP=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: spandsp" >&5 +$as_echo "$as_me: *** These plugins will be built: spandsp" >&6;} + fi +fi +if test x$USE_SPANDSP = xyes; then + : + if test "xspandsp" != "x"; then + GST_PLUGINS_YES="\tspandsp\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SPANDSP /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: spandsp" >&5 +$as_echo "$as_me: *** These plugins will not be built: spandsp" >&6;} + if test "xspandsp" != "x"; then + GST_PLUGINS_NO="\tspandsp\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SPANDSP = xyes; then + USE_SPANDSP_TRUE= + USE_SPANDSP_FALSE='#' +else + USE_SPANDSP_TRUE='#' + USE_SPANDSP_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" @@ -42884,7 +45246,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gsettings" "$LINENO" 5 ;; esac else USE_GSETTINGS=yes @@ -43011,7 +45373,7 @@ 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 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; esac fi @@ -43024,7 +45386,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 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 : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -43067,7 +45429,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then 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 : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -43141,7 +45503,7 @@ fi 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 : +if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then : $as_echo_n "(cached) " >&6 else case $GLIB_COMPILE_SCHEMAS in @@ -43286,11 +45648,19 @@ else fi if false; then - USE_AMRWB_TRUE= - USE_AMRWB_FALSE='#' + USE_VOAMRWBENC_TRUE= + USE_VOAMRWBENC_FALSE='#' else - USE_AMRWB_TRUE='#' - USE_AMRWB_FALSE= + USE_VOAMRWBENC_TRUE='#' + USE_VOAMRWBENC_FALSE= +fi + + if false; then + USE_VOAACENC_TRUE= + USE_VOAACENC_FALSE='#' +else + USE_VOAACENC_TRUE='#' + USE_VOAACENC_FALSE= fi if false; then @@ -43582,6 +45952,14 @@ else fi if false; then + USE_OPENAL_TRUE= + USE_OPENAL_FALSE='#' +else + USE_OPENAL_TRUE='#' + USE_OPENAL_FALSE= +fi + + if false; then USE_OPENCV_TRUE= USE_OPENCV_FALSE='#' else @@ -43590,6 +45968,22 @@ else fi if false; then + USE_OPUS_TRUE= + USE_OPUS_FALSE='#' +else + USE_OPUS_TRUE='#' + USE_OPUS_FALSE= +fi + + if false; then + USE_PVR_TRUE= + USE_PVR_FALSE='#' +else + USE_PVR_TRUE='#' + USE_PVR_FALSE= +fi + + if false; then USE_RSVG_TRUE= USE_RSVG_FALSE='#' else @@ -43638,6 +46032,14 @@ else fi if false; then + USE_SPANDSP_TRUE= + USE_SPANDSP_FALSE='#' +else + USE_SPANDSP_TRUE='#' + USE_SPANDSP_FALSE= +fi + + if false; then USE_SPC_TRUE= USE_SPC_FALSE='#' else @@ -43741,6 +46143,14 @@ else USE_RTMP_FALSE= fi + if false; then + USE_TELETEXTDEC_TRUE= + USE_TELETEXTDEC_FALSE='#' +else + USE_TELETEXTDEC_TRUE='#' + USE_TELETEXTDEC_FALSE= +fi + fi @@ -43783,7 +46193,7 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_ -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" +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/audiovisualizers/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/faceoverlay/Makefile gst/festival/Makefile gst/fieldanalysis/Makefile gst/freeze/Makefile gst/freeverb/Makefile gst/frei0r/Makefile gst/gaudieffects/Makefile gst/geometrictransform/Makefile gst/h264parse/Makefile gst/hdvparse/Makefile gst/hls/Makefile gst/id3tag/Makefile gst/inter/Makefile gst/interlace/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/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/removesilence/Makefile gst/rtpmux/Makefile gst/rtpvp8/Makefile gst/scaletempo/Makefile gst/sdi/Makefile gst/sdp/Makefile gst/segmentclip/Makefile gst/siren/Makefile gst/smooth/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/codecparsers/Makefile gst-libs/gst/video/Makefile sys/Makefile sys/dshowdecwrapper/Makefile sys/acmenc/Makefile sys/acmmp3dec/Makefile sys/applemedia/Makefile sys/avc/Makefile sys/d3dvideosink/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/pvr2d/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/examples/opencv/Makefile tests/icles/Makefile ext/voamrwbenc/Makefile ext/voaacenc/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/openal/Makefile ext/opencv/Makefile ext/opus/Makefile ext/rsvg/Makefile ext/resindvd/Makefile ext/rtmp/Makefile ext/schroedinger/Makefile ext/sdl/Makefile ext/sndfile/Makefile ext/soundtouch/Makefile ext/spandsp/Makefile ext/teletextdec/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/libs/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc pkgconfig/gstreamer-codecparsers.pc pkgconfig/gstreamer-codecparsers-uninstalled.pc pkgconfig/gstreamer-basevideo.pc pkgconfig/gstreamer-basevideo-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 @@ -43849,10 +46259,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&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" && + if test "x$cache_file" != "x/dev/null"; then { $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 + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi 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;} @@ -43993,10 +46414,6 @@ 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 @@ -44069,6 +46486,10 @@ if test -z "${USE_PLUGIN_ASFMUX_TRUE}" && test -z "${USE_PLUGIN_ASFMUX_FALSE}"; 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_AUDIOVISUALIZERS_TRUE}" && test -z "${USE_PLUGIN_AUDIOVISUALIZERS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_AUDIOVISUALIZERS\" 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 @@ -44121,6 +46542,10 @@ if test -z "${USE_PLUGIN_DVDSPU_TRUE}" && test -z "${USE_PLUGIN_DVDSPU_FALSE}"; 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_FACEOVERLAY_TRUE}" && test -z "${USE_PLUGIN_FACEOVERLAY_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FACEOVERLAY\" 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 @@ -44133,6 +46558,10 @@ if test -z "${USE_PLUGIN_FREEZE_TRUE}" && test -z "${USE_PLUGIN_FREEZE_FALSE}"; 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_FREEVERB_TRUE}" && test -z "${USE_PLUGIN_FREEVERB_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FREEVERB\" 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 @@ -44161,12 +46590,12 @@ if test -z "${USE_PLUGIN_ID3TAG_TRUE}" && test -z "${USE_PLUGIN_ID3TAG_FALSE}"; 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. +if test -z "${USE_PLUGIN_INTER_TRUE}" && test -z "${USE_PLUGIN_INTER_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_INTER\" 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. +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_IVFPARSE_TRUE}" && test -z "${USE_PLUGIN_IVFPARSE_FALSE}"; then @@ -44209,10 +46638,6 @@ if test -z "${USE_PLUGIN_MPEGPSMUX_TRUE}" && test -z "${USE_PLUGIN_MPEGPSMUX_FAL 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 @@ -44253,6 +46678,10 @@ 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_REMOVESILENCE_TRUE}" && test -z "${USE_PLUGIN_REMOVESILENCE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_REMOVESILENCE\" 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 @@ -44281,6 +46710,10 @@ if test -z "${USE_PLUGIN_SIREN_TRUE}" && test -z "${USE_PLUGIN_SIREN_FALSE}"; th 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_SMOOTH_TRUE}" && test -z "${USE_PLUGIN_SMOOTH_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SMOOTH\" 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 @@ -44329,10 +46762,6 @@ 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 @@ -44345,6 +46774,10 @@ 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_DIRECT3D_TRUE}" && test -z "${USE_DIRECT3D_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRECT3D\" 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 @@ -44361,6 +46794,10 @@ 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_AVC_TRUE}" && test -z "${USE_AVC_FALSE}"; then + as_fn_error $? "conditional \"USE_AVC\" 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 @@ -44377,8 +46814,12 @@ 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. +if test -z "${USE_VOAMRWBENC_TRUE}" && test -z "${USE_VOAMRWBENC_FALSE}"; then + as_fn_error $? "conditional \"USE_VOAMRWBENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VOAACENC_TRUE}" && test -z "${USE_VOAACENC_FALSE}"; then + as_fn_error $? "conditional \"USE_VOAACENC\" 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 @@ -44525,6 +46966,10 @@ 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_OPENAL_TRUE}" && test -z "${USE_OPENAL_FALSE}"; then + as_fn_error $? "conditional \"USE_OPENAL\" 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 @@ -44533,6 +46978,14 @@ 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_OPUS_TRUE}" && test -z "${USE_OPUS_FALSE}"; then + as_fn_error $? "conditional \"USE_OPUS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PVR_TRUE}" && test -z "${USE_PVR_FALSE}"; then + as_fn_error $? "conditional \"USE_PVR\" 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 @@ -44541,6 +46994,10 @@ 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_TELETEXTDEC_TRUE}" && test -z "${USE_TELETEXTDEC_FALSE}"; then + as_fn_error $? "conditional \"USE_TELETEXTDEC\" 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 @@ -44605,6 +47062,10 @@ 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_SPANDSP_TRUE}" && test -z "${USE_SPANDSP_FALSE}"; then + as_fn_error $? "conditional \"USE_SPANDSP\" 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 @@ -44613,8 +47074,12 @@ 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. +if test -z "${USE_VOAMRWBENC_TRUE}" && test -z "${USE_VOAMRWBENC_FALSE}"; then + as_fn_error $? "conditional \"USE_VOAMRWBENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VOAACENC_TRUE}" && test -z "${USE_VOAACENC_FALSE}"; then + as_fn_error $? "conditional \"USE_VOAACENC\" 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 @@ -44761,10 +47226,22 @@ 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_OPENAL_TRUE}" && test -z "${USE_OPENAL_FALSE}"; then + as_fn_error $? "conditional \"USE_OPENAL\" 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_OPUS_TRUE}" && test -z "${USE_OPUS_FALSE}"; then + as_fn_error $? "conditional \"USE_OPUS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PVR_TRUE}" && test -z "${USE_PVR_FALSE}"; then + as_fn_error $? "conditional \"USE_PVR\" 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 @@ -44789,6 +47266,10 @@ 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_SPANDSP_TRUE}" && test -z "${USE_SPANDSP_FALSE}"; then + as_fn_error $? "conditional \"USE_SPANDSP\" 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 @@ -44841,8 +47322,12 @@ 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_TELETEXTDEC_TRUE}" && test -z "${USE_TELETEXTDEC_FALSE}"; then + as_fn_error $? "conditional \"USE_TELETEXTDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -44943,6 +47428,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -45249,8 +47735,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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 +This file was extended by GStreamer Bad Plug-ins $as_me 0.10.23, which was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -45315,8 +47801,8 @@ _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, +GStreamer Bad Plug-ins config.status 0.10.23 +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -45444,186 +47930,212 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" 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"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + # Quote evaled strings. -for var in SED \ +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ GREP \ EGREP \ FGREP \ @@ -45635,8 +48147,12 @@ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ +archiver_list_spec \ STRIP \ RANLIB \ CC \ @@ -45646,14 +48162,14 @@ 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 \ +nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ lt_prog_compiler_pic \ +lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ +MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ @@ -45667,9 +48183,7 @@ 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 \ @@ -45677,6 +48191,7 @@ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ +install_override_mode \ finish_eval \ old_striplib \ striplib \ @@ -45687,10 +48202,11 @@ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ +reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ -lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ @@ -45700,9 +48216,7 @@ 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 \ @@ -45712,9 +48226,9 @@ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -45736,11 +48250,13 @@ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ +postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ @@ -45749,10 +48265,11 @@ 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 +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -45760,12 +48277,6 @@ prelink_cmds_CXX; do 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' @@ -45835,6 +48346,7 @@ do "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/audiovisualizers/Makefile") CONFIG_FILES="$CONFIG_FILES gst/audiovisualizers/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" ;; @@ -45848,9 +48360,11 @@ do "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/faceoverlay/Makefile") CONFIG_FILES="$CONFIG_FILES gst/faceoverlay/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/freeverb/Makefile") CONFIG_FILES="$CONFIG_FILES gst/freeverb/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" ;; @@ -45858,8 +48372,8 @@ do "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/inter/Makefile") CONFIG_FILES="$CONFIG_FILES gst/inter/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" ;; @@ -45871,7 +48385,6 @@ do "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" ;; @@ -45882,6 +48395,7 @@ do "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/removesilence/Makefile") CONFIG_FILES="$CONFIG_FILES gst/removesilence/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" ;; @@ -45889,6 +48403,7 @@ do "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/smooth/Makefile") CONFIG_FILES="$CONFIG_FILES gst/smooth/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" ;; @@ -45905,12 +48420,15 @@ do "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/codecparsers/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/codecparsers/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/avc/Makefile") CONFIG_FILES="$CONFIG_FILES sys/avc/Makefile" ;; + "sys/d3dvideosink/Makefile") CONFIG_FILES="$CONFIG_FILES sys/d3dvideosink/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" ;; @@ -45926,6 +48444,7 @@ do "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/pvr2d/Makefile") CONFIG_FILES="$CONFIG_FILES sys/pvr2d/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" ;; @@ -45939,8 +48458,10 @@ do "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/examples/opencv/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/opencv/Makefile" ;; "tests/icles/Makefile") CONFIG_FILES="$CONFIG_FILES tests/icles/Makefile" ;; - "ext/amrwbenc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/amrwbenc/Makefile" ;; + "ext/voamrwbenc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/voamrwbenc/Makefile" ;; + "ext/voaacenc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/voaacenc/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" ;; @@ -45973,7 +48494,9 @@ do "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/openal/Makefile") CONFIG_FILES="$CONFIG_FILES ext/openal/Makefile" ;; "ext/opencv/Makefile") CONFIG_FILES="$CONFIG_FILES ext/opencv/Makefile" ;; + "ext/opus/Makefile") CONFIG_FILES="$CONFIG_FILES ext/opus/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" ;; @@ -45981,6 +48504,8 @@ do "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/spandsp/Makefile") CONFIG_FILES="$CONFIG_FILES ext/spandsp/Makefile" ;; + "ext/teletextdec/Makefile") CONFIG_FILES="$CONFIG_FILES ext/teletextdec/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" ;; @@ -45993,15 +48518,20 @@ do "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/libs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libs/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" ;; + "pkgconfig/gstreamer-codecparsers.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-codecparsers.pc" ;; + "pkgconfig/gstreamer-codecparsers-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-codecparsers-uninstalled.pc" ;; + "pkgconfig/gstreamer-basevideo.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-basevideo.pc" ;; + "pkgconfig/gstreamer-basevideo-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-basevideo-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 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -46024,9 +48554,10 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -46034,12 +48565,13 @@ $debug || { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -46061,7 +48593,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -46089,7 +48621,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -46137,7 +48669,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -46169,7 +48701,7 @@ 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" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -46203,7 +48735,7 @@ fi # test -n "$CONFIG_FILES" # 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 || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -46215,8 +48747,8 @@ _ACEOF # 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 + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -46317,7 +48849,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -46336,7 +48868,7 @@ do for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_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 `:'. @@ -46345,7 +48877,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + 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'" @@ -46371,8 +48903,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -46508,21 +49040,22 @@ 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 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_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"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_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" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -46533,20 +49066,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_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 + if diff "$ac_file" "$ac_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" \ + mv "$ac_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" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. @@ -46708,7 +49241,8 @@ $as_echo X"$file" | # 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. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -46741,13 +49275,13 @@ available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Assembler program. -AS=$AS +AS=$lt_AS # DLL creation program. -DLLTOOL=$DLLTOOL +DLLTOOL=$lt_DLLTOOL # Object dumper program. -OBJDUMP=$OBJDUMP +OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version @@ -46765,6 +49299,15 @@ pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -46814,20 +49357,36 @@ 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 +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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". +# Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + +# Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP @@ -46836,6 +49395,9 @@ RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC @@ -46854,14 +49416,14 @@ 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 +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO +# The name of the directory that contains temporary libtool files. +objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD @@ -46869,6 +49431,9 @@ MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL @@ -46925,6 +49490,9 @@ library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds @@ -46964,6 +49532,10 @@ striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds @@ -46976,12 +49548,12 @@ 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 +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static @@ -47031,10 +49603,6 @@ no_undefined_flag=$lt_no_undefined_flag # 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 @@ -47068,9 +49636,6 @@ 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 @@ -47086,6 +49651,9 @@ include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec @@ -47132,212 +49700,169 @@ ltmain="$ac_aux_dir/ltmain.sh" # 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" || + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +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}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -47349,6 +49874,10 @@ _LT_EOF # The linker used to build libraries. LD=$lt_LD_CXX +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX @@ -47361,12 +49890,12 @@ 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 +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX @@ -47416,10 +49945,6 @@ no_undefined_flag=$lt_no_undefined_flag_CXX # 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 @@ -47453,9 +49978,6 @@ 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 @@ -47471,6 +49993,9 @@ include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX diff --git a/configure.ac b/configure.ac index a72e7b0..43e7962 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ 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, +AC_INIT(GStreamer Bad Plug-ins, 0.10.23, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gst-plugins-bad) @@ -41,6 +41,14 @@ dnl we override it here if we need to for the release candidate of new series GST_MAJORMINOR=0.10 AC_SUBST(GST_MAJORMINOR) +dnl CURRENT, REVISION, AGE +dnl - library source changed -> increment REVISION +dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 +dnl - interfaces added -> increment AGE +dnl - interfaces removed -> AGE = 0 +dnl sets GST_LT_LDFLAGS +AS_LIBTOOL(GST, 23, 0, 0) + AG_GST_LIBTOOL_PREPARE dnl FIXME: this macro doesn't actually work; @@ -52,8 +60,8 @@ AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL dnl *** required versions of GStreamer stuff *** -GST_REQ=0.10.33 -GSTPB_REQ=0.10.33 +GST_REQ=0.10.36 +GSTPB_REQ=0.10.36 dnl *** autotools stuff **** @@ -180,7 +188,7 @@ 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]) +AG_GST_GLIB_CHECK([2.24]) dnl checks for gstreamer dnl uninstalled is selected preferentially -- see pkg-config(1) @@ -229,6 +237,8 @@ if test "x$BUILD_EXAMPLES" = "xyes"; then 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) @@ -249,6 +259,11 @@ AC_SUBST(EXIF_LIBS) AC_SUBST(EXIF_CFLAGS) AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes") +dnl crypto for hlsdemux +PKG_CHECK_MODULES(CRYPTO, libcrypto) +AC_SUBST(CRYPTO_CFLAGS) +AC_SUBST(CRYPTO_LIBS) + dnl Orc ORC_CHECK([0.4.11]) @@ -297,6 +312,7 @@ AG_GST_CHECK_PLUGIN(adpcmdec) AG_GST_CHECK_PLUGIN(adpcmenc) AG_GST_CHECK_PLUGIN(aiff) AG_GST_CHECK_PLUGIN(asfmux) +AG_GST_CHECK_PLUGIN(audiovisualizers) AG_GST_CHECK_PLUGIN(autoconvert) AG_GST_CHECK_PLUGIN(bayer) AG_GST_CHECK_PLUGIN(camerabin) @@ -310,9 +326,11 @@ AG_GST_CHECK_PLUGIN(debugutils) AG_GST_CHECK_PLUGIN(dtmf) AG_GST_CHECK_PLUGIN(dvbsuboverlay) AG_GST_CHECK_PLUGIN(dvdspu) +AG_GST_CHECK_PLUGIN(faceoverlay) AG_GST_CHECK_PLUGIN(festival) AG_GST_CHECK_PLUGIN(fieldanalysis) AG_GST_CHECK_PLUGIN(freeze) +AG_GST_CHECK_PLUGIN(freeverb) AG_GST_CHECK_PLUGIN(frei0r) AG_GST_CHECK_PLUGIN(gaudieffects) AG_GST_CHECK_PLUGIN(geometrictransform) @@ -320,8 +338,8 @@ AG_GST_CHECK_PLUGIN(h264parse) AG_GST_CHECK_PLUGIN(hdvparse) AG_GST_CHECK_PLUGIN(hls) AG_GST_CHECK_PLUGIN(id3tag) +AG_GST_CHECK_PLUGIN(inter) 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) @@ -332,7 +350,6 @@ 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) @@ -343,6 +360,7 @@ AG_GST_CHECK_PLUGIN(pcapparse) AG_GST_CHECK_PLUGIN(pnm) AG_GST_CHECK_PLUGIN(rawparse) AG_GST_CHECK_PLUGIN(real) +AG_GST_CHECK_PLUGIN(removesilence) AG_GST_CHECK_PLUGIN(rtpmux) AG_GST_CHECK_PLUGIN(rtpvp8) AG_GST_CHECK_PLUGIN(scaletempo) @@ -350,6 +368,7 @@ AG_GST_CHECK_PLUGIN(sdi) AG_GST_CHECK_PLUGIN(sdp) AG_GST_CHECK_PLUGIN(segmentclip) AG_GST_CHECK_PLUGIN(siren) +AG_GST_CHECK_PLUGIN(smooth) AG_GST_CHECK_PLUGIN(speed) AG_GST_CHECK_PLUGIN(subenc) AG_GST_CHECK_PLUGIN(stereo) @@ -370,11 +389,6 @@ if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then 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) @@ -453,6 +467,42 @@ int main () AC_SUBST(HAVE_DIRECTSOUND) ]) +dnl Direct3D +translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true) +AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [ + HAVE_DIRECT3D="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -ld3d9 -lgdi32" + AC_MSG_CHECKING(for Direct3D LDFLAGS) + AC_LINK_IFELSE([ +#include +#include + +int main () +{ + Direct3DCreate9(D3D_SDK_VERSION); + + return 0; +} +], + [HAVE_DIRECT3D="yes"], + [HAVE_DIRECT3D="no"]) + AC_MSG_RESULT($HAVE_DIRECT3D) + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECT3D" = "xyes"; then + DIRECT3D_LIBS="-lgdi32" + AC_SUBST(DIRECT3D_LIBS) + fi + AC_SUBST(HAVE_DIRECT3D) +]) + dnl DirectDraw translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true) AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [ @@ -534,6 +584,29 @@ case "$host" in ;; esac +dnl *** OS/X AVCVideoServices *** +translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true) +HAVE_AVC="no" +AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [ + AC_LANG_PUSH([C++]) + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation" + save_LIBS="$LIBS" + LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation" + AC_TRY_LINK([], [], [HAVE_AVC=yes], [HAVE_AVC=no]) + LIBS=$save_LIBS + CPPFLAGS=$save_CPPFLAGS + AC_LANG_POP([C++]) +]) +dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms +case "$host" in + *-*darwin*) + ;; + *) + HAVE_AVC="no" + ;; +esac + dnl check for QuickTime translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true) AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [ @@ -577,14 +650,16 @@ AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [ 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 *** vo-amrwbenc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true) +AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [ + AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0) +]) + +dnl *** vo-aacenc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true) +AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [ + AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0) ]) dnl *** apexsink *** @@ -625,7 +700,11 @@ AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [ 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) + PKG_CHECK_MODULES(CDAUDIO, libcdaudio, [ + HAVE_CDAUDIO="yes" + ], [ + HAVE_CDAUDIO="no" + ]) AC_SUBST(CDAUDIO_CFLAGS) AC_SUBST(CDAUDIO_LIBS) ]) @@ -968,7 +1047,7 @@ 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]) @@ -1042,21 +1121,25 @@ PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [ 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" + PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [ + mjpegtools_api=20000 ], [ - mjpegtools_api=0 + PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.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 + ]) ]) ]) ]) @@ -1119,7 +1202,7 @@ AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [ if test "x$mpeg2enc_headers_ok" = "xyes"; then HAVE_MPEG2ENC="yes" fi - CPP_FLAGS="$CPPFLAGS_GOOD" + CPPFLAGS="$CPPFLAGS_GOOD" AC_SUBST(MPEG2ENC_CFLAGS) AC_SUBST(MPEG2ENC_LIBS) ], [ @@ -1147,10 +1230,14 @@ AG_GST_CHECK_FEATURE(MPLEX, [mplex], 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 HACK because mplex 2.0.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" - CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS" + dnl HACK as above + CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS" + CPPFLAGS="$CPPFLAGS_GOOD -I." AC_CHECK_HEADER(interact.hpp, [ MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM" OLD_LIBS="$LIBS" @@ -1187,6 +1274,7 @@ main (int argc, } ],[ HAVE_MPLEX="yes" + CPPFLAGS="$CPPFLAGS_GOOD" AC_SUBST(MPLEX_CFLAGS) AC_SUBST(MPLEX_LIBS) AC_SUBST(MPLEX_LDFLAGS) @@ -1270,6 +1358,16 @@ AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [ AC_SUBST(OFA_LIBS) ]) +dnl *** OpenAL *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true) +AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [ + PKG_CHECK_MODULES(OPENAL, openal, HAVE_OPENAL="yes", [ + HAVE_OPENAL="no" + ]) + AC_SUBST(OPENAL_CFLAGS) + AC_SUBST(OPENAL_LIBS) +]) + dnl *** opencv *** translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true) AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ @@ -1279,7 +1377,7 @@ AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ 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 , [ + PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.3.1 , [ AC_PROG_CXX AC_LANG_CPLUSPLUS OLD_CPPFLAGS=$CPPFLAGS @@ -1304,6 +1402,33 @@ AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ AC_SUBST(OPENCV_LIBS) ]) +dnl *** Opus *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true) +AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [ + PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [ + AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed]) + HAVE_OPUS="yes" + ], [ + HAVE_OPUS="no" + ]) + AC_SUBST(OPUS_CFLAGS) + AC_SUBST(OPUS_LIBS) +]) + +dnl *** pvr *** +translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true) +AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [ + PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no) + AC_SUBST(PVR_CFLAGS) + AC_SUBST(PVR_LIBS) +]) + + AC_ARG_WITH([pvr-external-headers], + AC_HELP_STRING([--with-pvr-external-headers], [Use system installed PVR2D headers]), + [AS_IF([test "x$with_pvr_external_headers" = "xno"], + [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])], + [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"]) + dnl *** rsvg *** translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true) AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [ @@ -1343,6 +1468,12 @@ AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [ AC_SUBST(TIMIDITY_LIBS) ]) +dnl *** teletextdec *** +translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true) +AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [ + AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2) + ]) + dnl *** wildmidi *** translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true) AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [ @@ -1393,7 +1524,7 @@ AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [ [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0, [HAVE_SOUNDTOUCH=yes HAVE_SOUNDTOUCH_1_4=no - SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4, [HAVE_SOUNDTOUCH=yes], [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch, @@ -1476,6 +1607,9 @@ AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [ #if XVID_API_MAJOR(XVID_API) != 4 #error "Incompatible XviD API version" #endif + #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3 + #error "Incompatible XviD API version" + #endif ],[ AC_MSG_RESULT(yes) XVID_LIBS="-lxvidcore $LIBM" AC_SUBST(XVID_LIBS) @@ -1500,7 +1634,9 @@ 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"]) + [HAVE_WININET="yes"], [HAVE_WININET="no"], + [AC_INCLUDES_DEFAULT +#include ]) ]) dnl *** acm *** @@ -1528,7 +1664,7 @@ AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [ 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 @@ -1540,9 +1676,9 @@ AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [ 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]) @@ -1589,6 +1725,20 @@ AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [ HAVE_VP8=yes AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available]) VPX_LIBS="-lvpx" + + AC_MSG_CHECKING([for VP8E_SET_TUNING presence]) + AC_TRY_COMPILE([ +#include +#include +int foo=VP8E_SET_TUNING; + ], [ +return 0; + ], [ + AC_DEFINE(HAVE_VP8ENC_TUNING, 1, [Defined if the VP8 encoder has tuning API]) + AC_MSG_RESULT(yes) + ], [ + AC_MSG_RESULT(no) + ]) ]) AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [ HAVE_VP8=yes @@ -1606,6 +1756,17 @@ AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [ AG_GST_PKG_CHECK_MODULES(RTMP, librtmp) ]) +dnl *** spandsp *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true) +AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [ + PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [ + HAVE_SPANDSP="yes" ], [ + HAVE_SPANDSP="no" + ]) +]) +AC_SUBST(SPANDSP_CFLAGS) +AC_SUBST(SPANDSP_LIBS) + dnl *** GSettings *** translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true) AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [ @@ -1621,7 +1782,8 @@ 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_VOAMRWBENC, false) +AM_CONDITIONAL(USE_VOAACENC, false) AM_CONDITIONAL(USE_APEXSINK, false) AM_CONDITIONAL(USE_BZ2, false) AM_CONDITIONAL(USE_CDAUDIO, false) @@ -1658,13 +1820,17 @@ AM_CONDITIONAL(USE_MYTHTV, false) AM_CONDITIONAL(USE_NAS, false) AM_CONDITIONAL(USE_NEON, false) AM_CONDITIONAL(USE_OFA, false) +AM_CONDITIONAL(USE_OPENAL, false) AM_CONDITIONAL(USE_OPENCV, false) +AM_CONDITIONAL(USE_OPUS, false) +AM_CONDITIONAL(USE_PVR, 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_SPANDSP, false) AM_CONDITIONAL(USE_SPC, false) AM_CONDITIONAL(USE_GME, false) AM_CONDITIONAL(USE_GSETTINGS, false) @@ -1678,6 +1844,7 @@ AM_CONDITIONAL(USE_SCHRO, false) AM_CONDITIONAL(USE_ZBAR, false) AM_CONDITIONAL(USE_VP8, false) AM_CONDITIONAL(USE_RTMP, false) +AM_CONDITIONAL(USE_TELETEXTDEC, false) fi dnl of EXT plugins @@ -1757,6 +1924,7 @@ gst/adpcmdec/Makefile gst/adpcmenc/Makefile gst/aiff/Makefile gst/asfmux/Makefile +gst/audiovisualizers/Makefile gst/autoconvert/Makefile gst/bayer/Makefile gst/camerabin/Makefile @@ -1770,9 +1938,11 @@ gst/debugutils/Makefile gst/dtmf/Makefile gst/dvbsuboverlay/Makefile gst/dvdspu/Makefile +gst/faceoverlay/Makefile gst/festival/Makefile gst/fieldanalysis/Makefile gst/freeze/Makefile +gst/freeverb/Makefile gst/frei0r/Makefile gst/gaudieffects/Makefile gst/geometrictransform/Makefile @@ -1780,8 +1950,8 @@ gst/h264parse/Makefile gst/hdvparse/Makefile gst/hls/Makefile gst/id3tag/Makefile +gst/inter/Makefile gst/interlace/Makefile -gst/invtelecine/Makefile gst/ivfparse/Makefile gst/jp2kdecimator/Makefile gst/jpegformat/Makefile @@ -1793,7 +1963,6 @@ 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 @@ -1804,6 +1973,7 @@ gst/pcapparse/Makefile gst/pnm/Makefile gst/rawparse/Makefile gst/real/Makefile +gst/removesilence/Makefile gst/rtpmux/Makefile gst/rtpvp8/Makefile gst/scaletempo/Makefile @@ -1811,6 +1981,7 @@ gst/sdi/Makefile gst/sdp/Makefile gst/segmentclip/Makefile gst/siren/Makefile +gst/smooth/Makefile gst/speed/Makefile gst/subenc/Makefile gst/stereo/Makefile @@ -1827,12 +1998,15 @@ gst-libs/gst/Makefile gst-libs/gst/basecamerabinsrc/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/signalprocessor/Makefile +gst-libs/gst/codecparsers/Makefile gst-libs/gst/video/Makefile sys/Makefile sys/dshowdecwrapper/Makefile sys/acmenc/Makefile sys/acmmp3dec/Makefile sys/applemedia/Makefile +sys/avc/Makefile +sys/d3dvideosink/Makefile sys/decklink/Makefile sys/directdraw/Makefile sys/directsound/Makefile @@ -1848,6 +2022,7 @@ sys/vcd/Makefile sys/vdpau/Makefile sys/vdpau/gstvdp/Makefile sys/vdpau/basevideodecoder/Makefile +sys/pvr2d/Makefile sys/wasapi/Makefile sys/wininet/Makefile sys/winks/Makefile @@ -1861,8 +2036,10 @@ tests/examples/camerabin2/Makefile tests/examples/directfb/Makefile tests/examples/mxf/Makefile tests/examples/scaletempo/Makefile +tests/examples/opencv/Makefile tests/icles/Makefile -ext/amrwbenc/Makefile +ext/voamrwbenc/Makefile +ext/voaacenc/Makefile ext/assrender/Makefile ext/apexsink/Makefile ext/bz2/Makefile @@ -1895,7 +2072,9 @@ ext/mythtv/Makefile ext/nas/Makefile ext/neon/Makefile ext/ofa/Makefile +ext/openal/Makefile ext/opencv/Makefile +ext/opus/Makefile ext/rsvg/Makefile ext/resindvd/Makefile ext/rtmp/Makefile @@ -1903,6 +2082,8 @@ ext/schroedinger/Makefile ext/sdl/Makefile ext/sndfile/Makefile ext/soundtouch/Makefile +ext/spandsp/Makefile +ext/teletextdec/Makefile ext/gme/Makefile ext/gsettings/Makefile ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml @@ -1915,10 +2096,15 @@ ext/zbar/Makefile po/Makefile.in docs/Makefile docs/plugins/Makefile +docs/libs/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc +pkgconfig/gstreamer-codecparsers.pc +pkgconfig/gstreamer-codecparsers-uninstalled.pc +pkgconfig/gstreamer-basevideo.pc +pkgconfig/gstreamer-basevideo-uninstalled.pc tools/Makefile m4/Makefile win32/common/config.h diff --git a/debian/changelog b/debian/changelog index 18723b4..8785e38 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,330 @@ +gst-plugins-bad0.10 (0.10.23-1slp2+11) unstable; urgency=low + + * Modify the length for checking nalu start code + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+11 + + -- Dowan Kim Mon, 13 Aug 2012 19:20:12 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+10) unstable; urgency=low + + * handle byte-stream format codec_data + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+10 + + -- Sunghyun Eum Thu, 09 Aug 2012 17:20:24 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+9) unstable; urgency=low + + * do not set_caps on every frame (h263parse) + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+9 + + -- Sunghyun Eum Tue, 31 Jul 2012 17:51:00 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+8) unstable; urgency=low + + * Add to check the nalu size + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+8 + + -- Dowan Kim Mon, 30 Jul 2012 15:11:12 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+7) unstable; urgency=low + + * Enabling vp8 codec + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+7 + + -- Sunghyun Eum Fri, 27 Jul 2012 15:25:04 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+6) unstable; urgency=low + + * do not update caps on every buffer (from mpeg4videoparse opensource) + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+6 + + -- Sunghyun Eum Thu, 26 Jul 2012 11:05:31 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+5) unstable; urgency=low + + * Disable ADAPTER_LOGIC and modify the condition to fetch next for HLS + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+5 + + -- Sunghyun.Eum Wed, 25 Jul 2012 09:36:15 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+4) unstable; urgency=low + + * Enabling mpegtsmux for build + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+4 + + -- manojkumar.k Fri, 20 Jul 2012 13:37:28 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+3) unstable; urgency=low + + * Remove unused library + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+3 + + -- Jeongmo Yang Fri, 20 Jul 2012 11:37:28 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+2) unstable; urgency=low + + * Modify to check frame type with first frame + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+2 + + -- Dowan Kim Thu, 12 Jul 2012 13:22:03 +0900 + +gst-plugins-bad0.10 (0.10.23-1slp2+1) unstable; urgency=low + + * Upgrade 0.10.22 to 0.10.23 + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.23-1slp2+1 + + -- Hyunseok Lee Wed, 27 Jun 2012 21:26:03 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+9) unstable; urgency=low + + * Disable AAC encoder(faac) + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+9 + + -- Hyunseok Lee Fri, 23 Mar 2012 15:28:27 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+8) unstable; urgency=low + + * Modify to use the least pcr in audio and video as a last_pcr + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+8 + + -- Dowan Kim Thu, 22 Mar 2012 09:08:08 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+7) unstable; urgency=low + + * Add dependency for faac encoder + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+7 + + -- Jeongmo Yang Thu, 19 Jan 2012 21:35:12 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+6) unstable; urgency=low + + * Enable AAC encoder + * Git: slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+6 + + -- Hyunseok Lee Mon, 09 Jan 2012 14:53:44 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+5) unstable; urgency=low + + * Fix null packet error in mpegtsdemux + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+5 + + -- Sunghyun Eum Wed, 2 Nov 2011 18:06:31 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+4) unstable; urgency=low + + * Modify to handle earlier received PID before PAT and audio drop + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+4 + + -- Sunghyun Eum Wed, 26 Oct 2011 14:15:12 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+3) unstable; urgency=low + + * Enable VP8 Codec + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+3 + + -- YoungHun Kim Thu, 13 Oct 2011 20:50:10 +0900 + +gst-plugins-bad0.10 (0.10.22-12slp2+2) unstable; urgency=low + + * remove old files + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-12slp2+2 + + -- Younghwan Ahn Wed, 08 Jun 2011 18:08:08 +0900 + gst-plugins-bad0.10 (0.10.22-12slp2+1) unstable; urgency=low - * Initial release - * Git: pkgs/g/gst-plugins-bad0.10 + * upgrade 17 to 22 + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 * Tag: gst-plugins-bad0.10_0.10.22-12slp2+1 - -- Jeongmo Yang Wed, 07 Dec 2011 12:40:14 +0900 + -- Younghwan Ahn Thu, 12 May 2011 19:48:21 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+13) unstable; urgency=low + + * [amr] fix to seek by frame duration unit + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+13 + + -- Seungbae Shin Mon, 03 Jan 2011 13:45:10 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+12) unstable; urgency=low + + * Fix Makefile.am for as-needed + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+12 + + -- Seungbae Shin Fri, 24 Dec 2010 17:18:38 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+11) unstable; urgency=low + + * Fix bugs in previous patch (amr seeking) + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+11 + + -- Seungbae Shin Fri, 24 Dec 2010 16:33:36 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+10) unstable; urgency=low + + * Fix amr seeking + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+10 + + -- Seungbae Shin Wed, 08 Dec 2010 11:41:17 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+9) unstable; urgency=low + + * Add dbg package, PIC, as-needed + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+9 + + -- Seungbae Shin Fri, 19 Nov 2010 10:59:38 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+8) unstable; urgency=low + + * fixed build script to build required plugins for Farsight (by yoserb yi) + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+8 + + -- Seungbae Shin Wed, 10 Nov 2010 21:18:19 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+7) unstable; urgency=low + + * Increase AAC rank to 260 & update duration when first frame comes + * Add audioparsers and disable preview aac/ac3/amr parser + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+7 + + -- Seungbae Shin Mon, 11 Oct 2010 21:09:04 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+6) unstable; urgency=low + + * increase aacparse rank for linking + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-bad-0.10.17 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+6 + + -- YoungHwan Ahn Tue, 05 Oct 2010 16:27:24 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+5) unstable; urgency=low + + * No change in code + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-bad-0.10.17 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+5 + + -- Naveen Ch Wed, 23 Jun 2010 17:00:14 +0530 + +gst-plugins-bad0.10 (0.10.17-12slp2+4) unstable; urgency=low + + * changed tagging rules + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-bad-0.10.17 + * Tag: gst-plugins-bad0.10_0.10.17-12slp2+4 + + -- Naveen Ch Fri, 18 Jun 2010 10:58:26 +0530 + +gst-plugins-bad0.10 (0.10.17-12slp2+3) unstable; urgency=low + + * Add dependancy on libvpx0.8-dev + + -- Seungbae Shin Thu, 17 Jun 2010 16:03:52 +0900 + +gst-plugins-bad0.10 (0.10.17-12slp2+2) unstable; urgency=low + + * adding autogen in debian/rules and disabling gtk-doc tools + + -- Naveen Ch Thu, 17 Jun 2010 10:19:36 +0530 + +gst-plugins-bad0.10 (0.10.17-12slp2+1) unstable; urgency=low + + * Added VP8 codec gstreamer plugins for supporting WEBM files playback + + -- Naveen Ch Tue, 15 Jun 2010 16:52:46 +0530 + +gst-plugins-bad0.10 (0.10.17-12slp2+0) unstable; urgency=low + + * Change package naming rule + + -- Seungbae Shin Thu, 25 Mar 2010 15:14:28 +0900 + +gst-plugins-bad0.10 (0.10.17-12) unstable; urgency=low + + * Because gstbasesrc.h was changed, I build and upload this package again. + + -- Wonhyung Cho Mon, 22 Mar 2010 14:33:44 +0900 + +gst-plugins-bad0.10 (0.10.17-11) unstable; urgency=low + + * [selector] Support BT switching + + -- Seungbae Shin Tue, 09 Mar 2010 14:06:33 +0900 + +gst-plugins-bad0.10 (0.10.17-10) unstable; urgency=low + + * Enable AC3 Parser + + -- Heungsoon Rim Thu, 04 Mar 2010 11:40:02 +0900 + +gst-plugins-bad0.10 (0.10.17-9) unstable; urgency=low + + * rotang=90 + + -- sangho park Sat, 28 Nov 2009 18:18:46 +0900 + +gst-plugins-bad0.10 (0.10.17-8) unstable; urgency=low + + * change fimc device video1 to video0 + + -- sangho park Sat, 28 Nov 2009 17:43:54 +0900 + +gst-plugins-bad0.10 (0.10.17-7) unstable; urgency=low + + * change rotang form 90 to 0 for vga camera + + -- sangho park Wed, 25 Nov 2009 11:23:33 +0900 + +gst-plugins-bad0.10 (0.10.17-6) unstable; urgency=low + + * change image fimc device from video2 to video1 + + -- jongmin lee Wed, 25 Nov 2009 10:32:55 +0900 + +gst-plugins-bad0.10 (0.10.17-5) unstable; urgency=low + + * new 0.10.17 update + + -- jongmin lee Wed, 25 Nov 2009 10:13:23 +0900 + +gst-plugins-bad0.10 (0.10.17-4) unstable; urgency=low + + * force revision update + + -- jongmin lee Wed, 25 Nov 2009 09:23:07 +0900 + +gst-plugins-bad0.10 (0.10.17-2) unstable; urgency=low + + * change fimc convert device video0 to video2 + + -- jongmin lee Wed, 25 Nov 2009 08:58:46 +0900 + +gst-plugins-bad0.10 (0.10.17-1) unstable; urgency=low + + * Initial release. + + -- jongmin lee Tue, 17 Nov 2009 18:51:00 +0900 diff --git a/debian/control b/debian/control index efe6e6b..5d46325 100644 --- a/debian/control +++ b/debian/control @@ -2,12 +2,14 @@ Source: gst-plugins-bad0.10 Section: libs Priority: extra Maintainer: Seungbae Shin , JongHyuk Choi -Uploaders: Naveen Ch , YoungHwan Ahn , Jeongmo Yang +Uploaders: Naveen Ch , YoungHwan Ahn , Jeongmo Yang , Hyunseok Lee 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), + libfaac-dev, + libvpx0.9-dev Standards-Version: 3.8.1 Package: gstreamer0.10-plugins-bad diff --git a/debian/rules b/debian/rules index 5e6d494..b95126a 100755 --- a/debian/rules +++ b/debian/rules @@ -16,120 +16,129 @@ 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 +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-dvdspu \ + --disable-festival \ + --disable-freeze \ + --disable-frei0r \ + --disable-hdvparse \ + --disable-librfb \ + --disable-modplug \ + --disable-mpegtsmux \ + --disable-mpegpsmux \ + --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-segmentclip \ + --disable-geometrictransform \ + --disable-inter \ + --disable-dvbsuboverlay \ + --disable-ivfparse \ + --disable-gsettings \ + --disable-opus \ + --disable-openal \ + --disable-snapdsp \ + --disable-teletextdec \ + --disable-audiovisualizers \ + --disable-faceoverlay \ + --disable-freeverb \ + --disable-removesilence \ + --disable-smooth \ + --disable-avc \ + --disable-d3dvideosink \ + --disable-pvr2d #--disable-camerabin \ @@ -144,6 +153,9 @@ CONFIGURE_OPTION= --disable-static \ #--disable-selector \ #--disable-metadata \ +CFLAGS += -DGST_EXT_HLS_MODIFICATION \ + -DGST_H264PARSE_MODIFICATION + LDFLAGS += -Wl,--hash-style=both -Wl,--as-needed config.status: configure diff --git a/depcomp b/depcomp index df8eea7..bd0ac08 100755 --- a/depcomp +++ b/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 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 @@ -44,7 +44,7 @@ Environment variables: 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. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,10 +90,18 @@ 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" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 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=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ gcc) ' < "$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. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## 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" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ tru64) rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # 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 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/docs/Makefile.am b/docs/Makefile.am index 7af47d4..bfc1424 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -5,13 +5,13 @@ PLUGINS_DOCS_DIRS = endif if ENABLE_GTK_DOC -GTK_DOC_DIRS = $(PLUGINS_DOCS_DIRS) +GTK_DOC_DIRS = libs $(PLUGINS_DOCS_DIRS) else GTK_DOC_DIRS = endif SUBDIRS = $(GTK_DOC_DIRS) -DIST_SUBDIRS = plugins +DIST_SUBDIRS = libs plugins EXTRA_DIST = \ random/ChangeLog-0.8 \ diff --git a/docs/Makefile.in b/docs/Makefile.in index f85ed5e..f119da1 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -77,11 +78,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -129,7 +130,6 @@ 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@ @@ -147,7 +147,6 @@ 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@ @@ -182,6 +181,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -221,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,6 +239,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -246,13 +248,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -277,13 +282,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -331,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -362,8 +369,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -387,6 +398,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -411,10 +424,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -426,6 +443,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -450,6 +471,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -485,7 +507,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -510,8 +531,8 @@ top_srcdir = @top_srcdir@ @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 +SUBDIRS = libs $(GTK_DOC_DIRS) +DIST_SUBDIRS = libs plugins EXTRA_DIST = \ random/ChangeLog-0.8 \ version.entities.in @@ -766,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am new file mode 100644 index 0000000..1ab46ff --- /dev/null +++ b/docs/libs/Makefile.am @@ -0,0 +1,69 @@ +## Process this file with automake to produce Makefile.in + +# FIXME: fix the docs then remove this variable +DOCS_ARE_INCOMPLETE_PLEASE_FIXME=yespleasedo + +# The name of the module, e.g. 'glib'. +#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@ +DOC_MODULE=gst-plugins-bad-libs + +# for upload-doc.mak +DOC=gst-plugins-bad-libs +FORMATS=html +html: html-build.stamp +include $(top_srcdir)/common/upload-doc.mak + +# The top-level SGML file. Change it if you want. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/gst-libs/gst + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS=--deprecated-guards="GST_DISABLE_DEPRECATED" + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# 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 + +# Used for dependencies. +HFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.h +CFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +content_files = compiling.sgml + +# 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 = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) +GTKDOC_LIBS = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/video/libgstbasevideo-@GST_MAJORMINOR@.la \ + $(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 + +include $(top_srcdir)/common/gtk-doc.mak + diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in new file mode 100644 index 0000000..c4e180b --- /dev/null +++ b/docs/libs/Makefile.in @@ -0,0 +1,1047 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 + +########################################################################### +# Everything below here is generic and you shouldn't need to change it. +########################################################################### +# thomas: except of course that we did +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.mak \ + $(top_srcdir)/common/upload-doc.mak +subdir = docs/libs +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-libtool.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_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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@ + +# FIXME: fix the docs then remove this variable +DOCS_ARE_INCOMPLETE_PLEASE_FIXME = yespleasedo + +# The name of the module, e.g. 'glib'. +#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@ +DOC_MODULE = gst-plugins-bad-libs + +# for upload-doc.mak +DOC = gst-plugins-bad-libs +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) + +# The top-level SGML file. Change it if you want. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml + +# The directory containing the source code. +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting functions and macros. +DOC_SOURCE_DIR = $(top_srcdir)/gst-libs/gst + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = --deprecated-guards="GST_DISABLE_DEPRECATED" + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --sgml-mode --output-format=xml + +# 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 + + +# Used for dependencies. +HFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.h +CFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.c + +# Header files to ignore when scanning. +IGNORE_HFILES = + +# Images to copy into HTML directory. +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +content_files = compiling.sgml + +# 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 = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) +GTKDOC_LIBS = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/video/libgstbasevideo-@GST_MAJORMINOR@.la \ + $(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 + +# 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 \ + 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 +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.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/libs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/libs/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_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak: + +$(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 + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile all-local +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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +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 \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local dist-hook distclean \ + distclean-generic distclean-libtool distclean-local 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 \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am 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 + +@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp + +#### setup #### + +@ENABLE_GTK_DOC_TRUE@setup-build.stamp: $(content_files) +@ENABLE_GTK_DOC_TRUE@ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ +@ENABLE_GTK_DOC_TRUE@ echo ' DOC Preparing build'; \ +@ENABLE_GTK_DOC_TRUE@ files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \ +@ENABLE_GTK_DOC_TRUE@ if test "x$$files" != "x" ; then \ +@ENABLE_GTK_DOC_TRUE@ for file in $$files ; do \ +@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && \ +@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ @touch setup-build.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 +@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Scanning header files' +@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \ +@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \ +@ENABLE_GTK_DOC_TRUE@ done ; \ +@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} \ +@ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)" +@ENABLE_GTK_DOC_TRUE@ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then \ +@ENABLE_GTK_DOC_TRUE@ echo " DOC Introspecting gobjects"; \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH= \ +@ENABLE_GTK_DOC_TRUE@ GST_REGISTRY=doc-registry.xml \ +@ENABLE_GTK_DOC_TRUE@ $(GTKDOC_EXTRA_ENVIRONMENT) \ +@ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ +@ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ +@ENABLE_GTK_DOC_TRUE@ LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)" \ +@ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) ; \ +@ENABLE_GTK_DOC_TRUE@ else \ +@ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \ +@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \ +@ENABLE_GTK_DOC_TRUE@ done \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ @touch scan-build.stamp + +@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +#### xml #### + +@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files) +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building XML' +@ENABLE_GTK_DOC_TRUE@ @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) +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities xml +@ENABLE_GTK_DOC_TRUE@ @touch sgml-build.stamp + +@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +#### html #### + +@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building HTML' +@ENABLE_GTK_DOC_TRUE@ @rm -rf html +@ENABLE_GTK_DOC_TRUE@ @mkdir html +@ENABLE_GTK_DOC_TRUE@ @cp -pr xml html +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities ./ +@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ @gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options=--path="$(abs_srcdir)"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(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 -rf html/xml +@ENABLE_GTK_DOC_TRUE@ @rm -f version.entities +@ENABLE_GTK_DOC_TRUE@ @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html ) +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Fixing cross-references' +@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 $(DOC_MODULE).types; \ +@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_MAIN_SGML_FILE) ; \ + rm -f $(DOC_OVERRIDES) ; \ + rm -f $(DOC_MODULE).types ; \ + rm -f $(DOC_MODULE).interfaces ; \ + rm -f $(DOC_MODULE).prerequisites ; \ + rm -f $(DOC_MODULE)-sections.txt ; \ + rm -f $(content_files) ; \ + 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).devhelp2' ; \ + 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 +# +@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 + +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: + +# 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/libs/compiling.sgml b/docs/libs/compiling.sgml new file mode 100644 index 0000000..949209a --- /dev/null +++ b/docs/libs/compiling.sgml @@ -0,0 +1,48 @@ + + +%version-entities; +]> + + +Compiling +3 +GStreamer-Bad Library + + + +Compiling against the bad plugins libraries + +How to compile against the bad plugins libraries + + + + +Compiling against the bad plugins libraries + + +To compile against these libraries, you need to tell the compiler where to +find the header files and libraries. This is done with the +pkg-config utility. + + +The following interactive shell session demonstrates how +pkg-config is used: + +$ pkg-config --cflags gstreamer-plugins-bad-&GST_MAJORMINOR; +-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gstreamer-&GST_MAJORMINOR; -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 +$ pkg-config --libs gstreamer-plugins-bad-&GST_MAJORMINOR; +-Wl,--export-dynamic -pthread -lgstreamer-&GST_MAJORMINOR; -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lxml2 -lpthread -lz -lm -lglib-2.0 + + + + +Note that, because of the number of libraries provided in this package, +the pkg-config information does not add -l flags itself +to choose the libraries to link to. You must add these yourself to select +which of the libraries you want to use. + + + + diff --git a/docs/libs/gst-plugins-bad-libs-docs.sgml b/docs/libs/gst-plugins-bad-libs-docs.sgml new file mode 100644 index 0000000..cf6885b --- /dev/null +++ b/docs/libs/gst-plugins-bad-libs-docs.sgml @@ -0,0 +1,65 @@ + + +%version-entities; +]> + + + GStreamer Bad Plugins &GST_MAJORMINOR; Library Reference Manual + + for GStreamer Bad Library &GST_MAJORMINOR; (&GST_VERSION;) + http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/. + + + + + GStreamer Bad Plugins Libraries + + This manual describes the libraries provided by the GStreamer Bad Plugins + package. + + + + + Bitstream parsing Library + + This library should be linked to by getting cflags and libs from + gstreamer-plugins-bad-&GST_MAJORMINOR;.pc and adding + -lgscodeparsers-&GST_MAJORMINOR; to the library flags. + + + + + + + + + Base video element classes + + + + + + + + + + + + Object Hierarchy + + + + + Index + + + + Index of deprecated API + + + + + + diff --git a/docs/libs/gst-plugins-bad-libs-overrides.txt b/docs/libs/gst-plugins-bad-libs-overrides.txt new file mode 100644 index 0000000..e69de29 diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt new file mode 100644 index 0000000..b949137 --- /dev/null +++ b/docs/libs/gst-plugins-bad-libs-sections.txt @@ -0,0 +1,483 @@ +# codecparsers +
+gsth264parser +h264parser +gst/codecparsers/gsth264parser.h +GST_H264_MAX_SPS_COUNT +GST_H264_MAX_PPS_COUNT +GST_H264_IS_P_SLICE +GST_H264_IS_B_SLICE +GST_H264_IS_I_SLICE +GST_H264_IS_SP_SLICE +GST_H264_IS_SI_SLICE +GstH264NalUnitType +GstH264ParserResult +GstH264SEIPayloadType +GstH264SEIPicStructType +GstH264SliceType +GstH264NalParser +GstH264NalUnit +GstH264SPS +GstH264PPS +GstH264HRDParams +GstH264VUIParams +GstH264DecRefPicMarking +GstH264RefPicMarking +GstH264PredWeightTable +GstH264SliceHdr +GstH264ClockTimestamp +GstH264PicTiming +GstH264BufferingPeriod +GstH264SEIMessage +gst_h264_parser_identify_nalu +gst_h264_parser_identify_nalu_avc +gst_h264_parser_parse_nal +gst_h264_parser_parse_slice_hdr +gst_h264_parser_parse_sps +gst_h264_parser_parse_pps +gst_h264_parser_parse_sei +gst_h264_nal_parser_new +gst_h264_nal_parser_free +gst_h264_parse_sps +gst_h264_parse_pps + + +
+ +
+gstvc1parser +vc1parser +gst/codecparsers/gstvc1parser.h +MAX_HRD_NUM_LEAKY_BUCKETS +GST_VC1_BFRACTION_BASIS +GstVC1StartCode +GstVC1Profile +GstVC1ParserResult +GstVC1PictureType +GstVC1Level +GstVC1QuantizerSpec +GstVC1DQProfile +GstVC1Condover +GstVC1MvMode +GstVC1SeqHdr +GstVC1AdvancedSeqHdr +GstVC1SeqLayer +GstVC1SeqStructA +GstVC1SeqStructB +GstVC1SeqStructC +GstVC1HrdParam +GstVC1EntryPointHdr +GstVC1FrameHdr +GstVC1PicAdvanced +GstVC1PicSimpleMain +GstVC1Picture +GstVC1VopDquant +GstVC1BDU +gst_vc1_identify_next_bdu +gst_vc1_parse_sequence_header +gst_vc1_parse_sequence_layer +gst_vc1_parse_sequence_header_struct_a +gst_vc1_parse_sequence_header_struct_b +gst_vc1_parse_sequence_header_struct_c +gst_vc1_parse_entry_point_header +gst_vc1_parse_frame_header +gst_vc1_bitplanes_new +gst_vc1_bitplanes_free +gst_vc1_bitplanes_free_1 +gst_vc1_bitplanes_ensure_size + + +
+ +
+gstmpegvideoparser +mpegvideoparser +gst/codecparsers/gstmpegvideoparser.h +GstMpegVideoPacketTypeCode +GstMpegVideoPacketExtensionCode +GstMpegVideoLevel +GstMpegVideoProfile +GstMpegVideoPictureType +GstMpegVideoPictureStructure +GstMpegVideoSequenceHdr +GstMpegVideoSequenceExt +GstMpegVideoPictureHdr +GstMpegVideoGop +GstMpegVideoPictureExt +GstMpegVideoQuantMatrixExt +GstMpegVideoTypeOffsetSize +gst_mpeg_video_parse +gst_mpeg_video_parse_sequence_header +gst_mpeg_video_parse_picture_header +gst_mpeg_video_parse_picture_extension +gst_mpeg_video_parse_gop +gst_mpeg_video_parse_sequence_extension +gst_mpeg_video_parse_quant_matrix_extension + + +
+ +
+gstmpeg4parser +mpeg4parser +gst/codecparsers/gstmpeg4parser.h +GstMpeg4StartCode +GstMpeg4VisualObjectType +GstMpeg4AspectRatioInfo +GstMpeg4ParseResult +GstMpeg4VideoObjectCodingType +GstMpeg4ChromaFormat +GstMpeg4VideoObjectLayerShape +GstMpeg4SpriteEnable +GstMpeg4Profile +GstMpeg4Level +GstMpeg4VisualObjectSequence +GstMpeg4VisualObject +GstMpeg4VideoSignalType +GstMpeg4VideoPlaneShortHdr +GstMpeg4VideoObjectLayer +GstMpeg4SpriteTrajectory +GstMpeg4GroupOfVOP +GstMpeg4VideoObjectPlane +GstMpeg4Packet +GstMpeg4VideoPacketHdr +gst_mpeg4_parse +gst_mpeg4_parse_video_object_plane +gst_mpeg4_parse_group_of_vop +gst_mpeg4_parse_video_object_layer +gst_mpeg4_parse_visual_object +gst_mpeg4_parse_visual_object_sequence +gst_mpeg4_parse_video_packet_header + + +
+ +
+gstphotography +GST_PHOTOGRAPHY_AUTOFOCUS_DONE +GST_PHOTOGRAPHY_SHAKE_RISK +GST_PHOTOGRAPHY_PROP_WB_MODE +GST_PHOTOGRAPHY_PROP_COLOUR_TONE +GST_PHOTOGRAPHY_PROP_SCENE_MODE +GST_PHOTOGRAPHY_PROP_FLASH_MODE +GST_PHOTOGRAPHY_PROP_NOISE_REDUCTION +GST_PHOTOGRAPHY_PROP_FOCUS_STATUS +GST_PHOTOGRAPHY_PROP_CAPABILITIES +GST_PHOTOGRAPHY_PROP_SHAKE_RISK +GST_PHOTOGRAPHY_PROP_EV_COMP +GST_PHOTOGRAPHY_PROP_ISO_SPEED +GST_PHOTOGRAPHY_PROP_APERTURE +GST_PHOTOGRAPHY_PROP_EXPOSURE +GST_PHOTOGRAPHY_PROP_IMAGE_CAPTURE_SUPPORTED_CAPS +GST_PHOTOGRAPHY_PROP_IMAGE_PREVIEW_SUPPORTED_CAPS +GST_PHOTOGRAPHY_PROP_FLICKER_MODE +GST_PHOTOGRAPHY_PROP_FOCUS_MODE +GST_PHOTOGRAPHY_PROP_ZOOM +GstPhotographyNoiseReduction +GstWhiteBalanceMode +GstColourToneMode +GstSceneMode +GstFlashMode +GstFocusStatus +GstPhotoCaps +GstPhotoShakeRisk +GstFlickerReductionMode +GstFocusMode +GstPhotoCapturePrepared +get_ev_compensation +get_iso_speed +get_aperture +get_exposure +get_white_balance_mode +get_colour_tone_mode +get_scene_mode +get_flash_mode +get_zoom +get_flicker_mode +get_focus_mode +set_ev_compensation +set_iso_speed +set_aperture +set_exposure +set_white_balance_mode +set_colour_tone_mode +set_scene_mode +set_flash_mode +set_zoom +set_flicker_mode +set_focus_mode +get_capabilities +prepare_for_capture +set_autofocus +set_config +get_config +get_noise_reduction +set_noise_reduction +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_get_flicker_mode +gst_photography_get_focus_mode +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_set_flicker_mode +gst_photography_set_focus_mode +gst_photography_get_capabilities +gst_photography_prepare_for_capture +gst_photography_set_autofocus +gst_photography_set_config +gst_photography_get_config +GstPhotography + +GST_PHOTOGRAPHY +GST_IS_PHOTOGRAPHY +GST_TYPE_PHOTOGRAPHY +gst_photography_get_type +GST_PHOTOGRAPHY_GET_IFACE +
+ +
+gstbasecamerasrc +GstBaseCameraSrc +GST_BASE_CAMERA_SRC_CAST +GST_BASE_CAMERA_SRC_VIEWFINDER_PAD_NAME +GST_BASE_CAMERA_SRC_IMAGE_PAD_NAME +GST_BASE_CAMERA_SRC_VIDEO_PAD_NAME +GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME +GstBaseCameraSrc +GstBaseCameraSrcClass +MIN_ZOOM +MAX_ZOOM +ZOOM_1X +gst_base_camera_src_get_photography +gst_base_camera_src_get_color_balance +gst_base_camera_src_set_mode +gst_base_camera_src_setup_zoom +gst_base_camera_src_setup_preview +gst_base_camera_src_finish_capture +gst_base_camera_src_post_preview + +GST_BASE_CAMERA_SRC +GST_IS_BASE_CAMERA_SRC +GST_TYPE_BASE_CAMERA_SRC +gst_base_camera_src_get_type +GST_BASE_CAMERA_SRC_CLASS +GST_IS_BASE_CAMERA_SRC_CLASS +GST_BASE_CAMERA_SRC_GET_CLASS +
+ +
+gstbasevideoencoder +GstBaseVideoEncoder +GST_BASE_VIDEO_ENCODER_SINK_NAME +GST_BASE_VIDEO_ENCODER_SRC_NAME +GST_BASE_VIDEO_ENCODER_FLOW_DROPPED +GstBaseVideoEncoder +GstBaseVideoEncoderClass +gst_base_video_encoder_get_state +gst_base_video_encoder_get_oldest_frame +gst_base_video_encoder_finish_frame +gst_base_video_encoder_set_latency +gst_base_video_encoder_set_latency_fields + +GST_BASE_VIDEO_ENCODER +GST_IS_BASE_VIDEO_ENCODER +GST_TYPE_BASE_VIDEO_ENCODER +gst_base_video_encoder_get_type +GST_BASE_VIDEO_ENCODER_CLASS +GST_IS_BASE_VIDEO_ENCODER_CLASS +GST_BASE_VIDEO_ENCODER_GET_CLASS +
+ +
+gstbasevideodecoder +GstBaseVideoDecoder +GST_BASE_VIDEO_DECODER_SINK_NAME +GST_BASE_VIDEO_DECODER_SRC_NAME +GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA +GST_BASE_VIDEO_DECODER_FLOW_DROPPED +GST_BASE_AUDIO_DECODER_ERROR +GstBaseVideoDecoder +GstBaseVideoDecoderClass +gst_base_video_decoder_class_set_capture_pattern +gst_base_video_decoder_get_frame +gst_base_video_decoder_get_oldest_frame +gst_base_video_decoder_add_to_frame +gst_base_video_decoder_lost_sync +gst_base_video_decoder_have_frame +gst_base_video_decoder_set_sync_point +gst_base_video_decoder_set_src_caps +gst_base_video_decoder_alloc_src_buffer +gst_base_video_decoder_alloc_src_frame +gst_base_video_decoder_get_state +gst_base_video_decoder_get_max_decode_time +gst_base_video_decoder_finish_frame + +GST_BASE_VIDEO_DECODER +GST_IS_BASE_VIDEO_DECODER +GST_TYPE_BASE_VIDEO_DECODER +gst_base_video_decoder_get_type +GST_BASE_VIDEO_DECODER_CLASS +GST_IS_BASE_VIDEO_DECODER_CLASS +GST_BASE_VIDEO_DECODER_GET_CLASS +
+ +
+gstbasevideocodec +GstBaseVideoCodec +GST_BASE_VIDEO_CODEC_SINK_NAME +GST_BASE_VIDEO_CODEC_SRC_NAME +GST_BASE_VIDEO_CODEC_SRC_PAD +GST_BASE_VIDEO_CODEC_SINK_PAD +GST_BASE_VIDEO_CODEC_FLOW_NEED_DATA +GST_BASE_VIDEO_CODEC_STREAM_LOCK +GST_BASE_VIDEO_CODEC_STREAM_UNLOCK +GstVideoState +GstVideoFrame +GstBaseVideoCodec +GstBaseVideoCodecClass +gst_base_video_codec_new_frame +gst_base_video_codec_free_frame + +GST_BASE_VIDEO_CODEC +GST_IS_BASE_VIDEO_CODEC +GST_TYPE_BASE_VIDEO_CODEC +gst_base_video_codec_get_type +GST_BASE_VIDEO_CODEC_CLASS +GST_IS_BASE_VIDEO_CODEC_CLASS +GST_BASE_VIDEO_CODEC_GET_CLASS +
+ +
+gstsignalprocessor +GstSignalProcessor +GstSignalProcessorClassFlags +GST_SIGNAL_PROCESSOR_CLASS_CAN_PROCESS_IN_PLACE +GST_SIGNAL_PROCESSOR_CLASS_SET_CAN_PROCESS_IN_PLACE +GstSignalProcessorState +GST_SIGNAL_PROCESSOR_IS_INITIALIZED +GST_SIGNAL_PROCESSOR_IS_RUNNING +GstSignalProcessorGroup +GstSignalProcessor +GstSignalProcessorClass +gst_signal_processor_class_add_pad_template + +GST_SIGNAL_PROCESSOR +GST_IS_SIGNAL_PROCESSOR +GST_TYPE_SIGNAL_PROCESSOR +gst_signal_processor_get_type +GST_SIGNAL_PROCESSOR_CLASS +GST_IS_SIGNAL_PROCESSOR_CLASS +GST_SIGNAL_PROCESSOR_GET_CLASS +
+ + +
+photography-enumtypes +gst_photography_noise_reduction_get_type +GST_TYPE_PHOTOGRAPHY_NOISE_REDUCTION +gst_white_balance_mode_get_type +GST_TYPE_WHITE_BALANCE_MODE +gst_colour_tone_mode_get_type +GST_TYPE_COLOUR_TONE_MODE +gst_scene_mode_get_type +GST_TYPE_SCENE_MODE +gst_flash_mode_get_type +GST_TYPE_FLASH_MODE +gst_focus_status_get_type +GST_TYPE_FOCUS_STATUS +gst_photo_caps_get_type +GST_TYPE_PHOTO_CAPS +gst_photo_shake_risk_get_type +GST_TYPE_PHOTO_SHAKE_RISK +gst_flicker_reduction_mode_get_type +GST_TYPE_FLICKER_REDUCTION_MODE +gst_focus_mode_get_type +GST_TYPE_FOCUS_MODE +
+ +
+gstcamerabin-enum +DEFAULT_WIDTH +DEFAULT_HEIGHT +DEFAULT_CAPTURE_WIDTH +DEFAULT_CAPTURE_HEIGHT +DEFAULT_FPS_N +DEFAULT_FPS_D +DEFAULT_ZOOM +GstCameraBinMode +GST_TYPE_CAMERABIN_MODE +gst_camerabin_mode_get_type +
+ +
+gstcamerabinpreview +gst_camerabin_create_preview_pipeline +gst_camerabin_destroy_preview_pipeline +gst_camerabin_preview_pipeline_post +gst_camerabin_preview_set_caps +
+ +
+gstbasevideoutils +gst_base_video_rawvideo_convert +gst_base_video_encoded_video_convert +gst_video_state_get_timestamp +
+ +
+gstvideocontext +GstVideoContextInterface +GST_IS_VIDEO_CONTEXT +GstVideoContext +GstVideoContextInterface +gst_video_context_iface_get_type +gst_video_context_set_context +gst_video_context_set_context_string +gst_video_context_set_context_pointer +gst_video_context_set_context_object +gst_video_context_prepare +gst_video_context_message_parse_prepare +gst_video_context_query_new +gst_video_context_run_query +gst_video_context_query_get_supported_types +gst_video_context_query_parse_value +gst_video_context_query_set_value +gst_video_context_query_set_string +gst_video_context_query_set_pointer +gst_video_context_query_set_object +
+ +
+gstsurfacebuffer +GstSurfaceBuffer +GST_VIDEO_CAPS_SURFACE +GstSurfaceBuffer +GstSurfaceBufferClass +gst_surface_buffer_get_type +gst_surface_buffer_create_converter +
+ +
+gstsurfaceconverter +GstSurfaceConverter +GstSurfaceConverter +GstSurfaceConverterInterface +gst_surface_converter_get_type +gst_surface_converter_upload +
diff --git a/docs/libs/gst-plugins-bad-libs.types b/docs/libs/gst-plugins-bad-libs.types new file mode 100644 index 0000000..4932157 --- /dev/null +++ b/docs/libs/gst-plugins-bad-libs.types @@ -0,0 +1,4 @@ +#include + +#include +#include diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html new file mode 100644 index 0000000..eba1b19 --- /dev/null +++ b/docs/libs/html/annotation-glossary.html @@ -0,0 +1,44 @@ + + + + +Annotation Glossary + + + + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

O

+
+out
+

Parameter for returning results. Default is transfer full.

+

T

+
+transfer full
+

Free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html new file mode 100644 index 0000000..d10a989 --- /dev/null +++ b/docs/libs/html/api-index-deprecated.html @@ -0,0 +1,31 @@ + + + + +Index of deprecated API + + + + + + + + + + + + + + + + +
+

+Index of deprecated API

+ +
+ + + \ No newline at end of file diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html new file mode 100644 index 0000000..3a9e373 --- /dev/null +++ b/docs/libs/html/api-index-full.html @@ -0,0 +1,1443 @@ + + + + +Index + + + + + + + + + + + + + + + + + + + +
+

+Index

+

B

+
+GstBaseCameraSrc, struct in GstBaseCameraSrc +
+
+
+GstBaseCameraSrcClass, struct in GstBaseCameraSrc +
+
+
+GstBaseVideoCodec, struct in GstBaseVideoCodec +
+
+
+GstBaseVideoCodecClass, struct in GstBaseVideoCodec +
+
+
+GstBaseVideoDecoder, struct in GstBaseVideoDecoder +
+
+
+GstBaseVideoDecoderClass, struct in GstBaseVideoDecoder +
+
+
+GstBaseVideoEncoder, struct in GstBaseVideoEncoder +
+
+
+GstBaseVideoEncoderClass, struct in GstBaseVideoEncoder +
+
+
+GST_BASE_AUDIO_DECODER_ERROR, macro in GstBaseVideoDecoder +
+
+
+GST_BASE_CAMERA_SRC_CAST, macro in GstBaseCameraSrc +
+
+
+gst_base_camera_src_finish_capture, function in GstBaseCameraSrc +
+
+
+GST_BASE_CAMERA_SRC_IMAGE_PAD_NAME, macro in GstBaseCameraSrc +
+
+
+gst_base_camera_src_post_preview, function in GstBaseCameraSrc +
+
+
+GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME, macro in GstBaseCameraSrc +
+
+
+gst_base_camera_src_setup_preview, function in GstBaseCameraSrc +
+
+
+gst_base_camera_src_setup_zoom, function in GstBaseCameraSrc +
+
+
+gst_base_camera_src_set_mode, function in GstBaseCameraSrc +
+
+
+GST_BASE_CAMERA_SRC_VIDEO_PAD_NAME, macro in GstBaseCameraSrc +
+
+
+GST_BASE_CAMERA_SRC_VIEWFINDER_PAD_NAME, macro in GstBaseCameraSrc +
+
+
+GST_BASE_VIDEO_CODEC_FLOW_NEED_DATA, macro in GstBaseVideoCodec +
+
+
+gst_base_video_codec_free_frame, function in GstBaseVideoCodec +
+
+
+gst_base_video_codec_new_frame, function in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_SINK_NAME, macro in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_SINK_PAD, macro in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_SRC_NAME, macro in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_SRC_PAD, macro in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_STREAM_LOCK, macro in GstBaseVideoCodec +
+
+
+GST_BASE_VIDEO_CODEC_STREAM_UNLOCK, macro in GstBaseVideoCodec +
+
+
+gst_base_video_decoder_add_to_frame, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_alloc_src_buffer, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_alloc_src_frame, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_class_set_capture_pattern, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_finish_frame, function in GstBaseVideoDecoder +
+
+
+GST_BASE_VIDEO_DECODER_FLOW_DROPPED, macro in GstBaseVideoDecoder +
+
+
+GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA, macro in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_get_frame, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_get_max_decode_time, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_get_oldest_frame, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_get_state, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_have_frame, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_lost_sync, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_set_src_caps, function in GstBaseVideoDecoder +
+
+
+gst_base_video_decoder_set_sync_point, function in GstBaseVideoDecoder +
+
+
+GST_BASE_VIDEO_DECODER_SINK_NAME, macro in GstBaseVideoDecoder +
+
+
+GST_BASE_VIDEO_DECODER_SRC_NAME, macro in GstBaseVideoDecoder +
+
+
+gst_base_video_encoded_video_convert, function in gstbasevideoutils +
+
+
+gst_base_video_encoder_finish_frame, function in GstBaseVideoEncoder +
+
+
+GST_BASE_VIDEO_ENCODER_FLOW_DROPPED, macro in GstBaseVideoEncoder +
+
+
+gst_base_video_encoder_get_oldest_frame, function in GstBaseVideoEncoder +
+
+
+gst_base_video_encoder_get_state, function in GstBaseVideoEncoder +
+
+
+gst_base_video_encoder_set_latency, function in GstBaseVideoEncoder +
+
+
+gst_base_video_encoder_set_latency_fields, function in GstBaseVideoEncoder +
+
+
+GST_BASE_VIDEO_ENCODER_SINK_NAME, macro in GstBaseVideoEncoder +
+
+
+GST_BASE_VIDEO_ENCODER_SRC_NAME, macro in GstBaseVideoEncoder +
+
+
+gst_base_video_rawvideo_convert, function in gstbasevideoutils +
+
+

C

+
+GstCameraBinMode, enum in gstcamerabin-enum +
+
+
+gst_camerabin_create_preview_pipeline, function in gstcamerabinpreview +
+
+
+gst_camerabin_destroy_preview_pipeline, function in gstcamerabinpreview +
+
+
+gst_camerabin_mode_get_type, function in gstcamerabin-enum +
+
+
+gst_camerabin_preview_pipeline_post, function in gstcamerabinpreview +
+
+
+gst_camerabin_preview_set_caps, function in gstcamerabinpreview +
+
+
+GstColourToneMode, enum in gstphotography +
+
+
+gst_colour_tone_mode_get_type, function in photography-enumtypes +
+
+

D

+
+DEFAULT_CAPTURE_HEIGHT, macro in gstcamerabin-enum +
+
+
+DEFAULT_CAPTURE_WIDTH, macro in gstcamerabin-enum +
+
+
+DEFAULT_FPS_D, macro in gstcamerabin-enum +
+
+
+DEFAULT_FPS_N, macro in gstcamerabin-enum +
+
+
+DEFAULT_HEIGHT, macro in gstcamerabin-enum +
+
+
+DEFAULT_WIDTH, macro in gstcamerabin-enum +
+
+
+DEFAULT_ZOOM, macro in gstcamerabin-enum +
+
+

F

+
+GstFlashMode, enum in gstphotography +
+
+
+gst_flash_mode_get_type, function in photography-enumtypes +
+
+
+GstFlickerReductionMode, enum in gstphotography +
+
+
+gst_flicker_reduction_mode_get_type, function in photography-enumtypes +
+
+
+GstFocusMode, enum in gstphotography +
+
+
+GstFocusStatus, enum in gstphotography +
+
+
+gst_focus_mode_get_type, function in photography-enumtypes +
+
+
+gst_focus_status_get_type, function in photography-enumtypes +
+
+

G

+
+get_aperture, user_function in gstphotography +
+
+
+get_capabilities, user_function in gstphotography +
+
+
+get_colour_tone_mode, user_function in gstphotography +
+
+
+get_config, user_function in gstphotography +
+
+
+get_ev_compensation, user_function in gstphotography +
+
+
+get_exposure, user_function in gstphotography +
+
+
+get_flash_mode, user_function in gstphotography +
+
+
+get_flicker_mode, user_function in gstphotography +
+
+
+get_focus_mode, user_function in gstphotography +
+
+
+get_iso_speed, user_function in gstphotography +
+
+
+get_noise_reduction, user_function in gstphotography +
+
+
+get_scene_mode, user_function in gstphotography +
+
+
+get_white_balance_mode, user_function in gstphotography +
+
+
+get_zoom, user_function in gstphotography +
+
+

H

+
+GstH264BufferingPeriod, struct in h264parser +
+
+
+GstH264ClockTimestamp, struct in h264parser +
+
+
+GstH264DecRefPicMarking, struct in h264parser +
+
+
+GstH264HRDParams, struct in h264parser +
+
+
+GstH264NalParser, struct in h264parser +
+
+
+GstH264NalUnit, struct in h264parser +
+
+
+GstH264NalUnitType, enum in h264parser +
+
+
+GstH264ParserResult, enum in h264parser +
+
+
+GstH264PicTiming, struct in h264parser +
+
+
+GstH264PPS, struct in h264parser +
+
+
+GstH264PredWeightTable, struct in h264parser +
+
+
+GstH264RefPicMarking, struct in h264parser +
+
+
+GstH264SEIMessage, struct in h264parser +
+
+
+GstH264SEIPayloadType, enum in h264parser +
+
+
+GstH264SEIPicStructType, enum in h264parser +
+
+
+GstH264SliceHdr, struct in h264parser +
+
+
+GstH264SliceType, enum in h264parser +
+
+
+GstH264SPS, struct in h264parser +
+
+
+GstH264VUIParams, struct in h264parser +
+
+
+GST_H264_IS_B_SLICE, macro in h264parser +
+
+
+GST_H264_IS_I_SLICE, macro in h264parser +
+
+
+GST_H264_IS_P_SLICE, macro in h264parser +
+
+
+GST_H264_IS_SI_SLICE, macro in h264parser +
+
+
+GST_H264_IS_SP_SLICE, macro in h264parser +
+
+
+GST_H264_MAX_PPS_COUNT, macro in h264parser +
+
+
+GST_H264_MAX_SPS_COUNT, macro in h264parser +
+
+
+gst_h264_nal_parser_free, function in h264parser +
+
+
+gst_h264_nal_parser_new, function in h264parser +
+
+
+gst_h264_parser_identify_nalu, function in h264parser +
+
+
+gst_h264_parser_identify_nalu_avc, function in h264parser +
+
+
+gst_h264_parser_parse_nal, function in h264parser +
+
+
+gst_h264_parser_parse_pps, function in h264parser +
+
+
+gst_h264_parser_parse_sei, function in h264parser +
+
+
+gst_h264_parser_parse_slice_hdr, function in h264parser +
+
+
+gst_h264_parser_parse_sps, function in h264parser +
+
+
+gst_h264_parse_pps, function in h264parser +
+
+
+gst_h264_parse_sps, function in h264parser +
+
+

I

+
+GST_IS_VIDEO_CONTEXT, macro in GstVideoContextInterface +
+
+

M

+
+MAX_HRD_NUM_LEAKY_BUCKETS, macro in vc1parser +
+
+
+MAX_ZOOM, macro in GstBaseCameraSrc +
+
+
+MIN_ZOOM, macro in GstBaseCameraSrc +
+
+
+GstMpeg4AspectRatioInfo, enum in mpeg4parser +
+
+
+GstMpeg4ChromaFormat, enum in mpeg4parser +
+
+
+GstMpeg4GroupOfVOP, struct in mpeg4parser +
+
+
+GstMpeg4Level, enum in mpeg4parser +
+
+
+GstMpeg4Packet, struct in mpeg4parser +
+
+
+GstMpeg4ParseResult, enum in mpeg4parser +
+
+
+GstMpeg4Profile, enum in mpeg4parser +
+
+
+GstMpeg4SpriteEnable, enum in mpeg4parser +
+
+
+GstMpeg4SpriteTrajectory, struct in mpeg4parser +
+
+
+GstMpeg4StartCode, enum in mpeg4parser +
+
+
+GstMpeg4VideoObjectCodingType, enum in mpeg4parser +
+
+
+GstMpeg4VideoObjectLayer, struct in mpeg4parser +
+
+
+GstMpeg4VideoObjectLayerShape, enum in mpeg4parser +
+
+
+GstMpeg4VideoObjectPlane, struct in mpeg4parser +
+
+
+GstMpeg4VideoPacketHdr, struct in mpeg4parser +
+
+
+GstMpeg4VideoPlaneShortHdr, struct in mpeg4parser +
+
+
+GstMpeg4VideoSignalType, struct in mpeg4parser +
+
+
+GstMpeg4VisualObject, struct in mpeg4parser +
+
+
+GstMpeg4VisualObjectSequence, struct in mpeg4parser +
+
+
+GstMpeg4VisualObjectType, enum in mpeg4parser +
+
+
+gst_mpeg4_parse, function in mpeg4parser +
+
+
+gst_mpeg4_parse_group_of_vop, function in mpeg4parser +
+
+
+gst_mpeg4_parse_video_object_layer, function in mpeg4parser +
+
+
+gst_mpeg4_parse_video_object_plane, function in mpeg4parser +
+
+
+gst_mpeg4_parse_video_packet_header, function in mpeg4parser +
+
+
+gst_mpeg4_parse_visual_object, function in mpeg4parser +
+
+
+gst_mpeg4_parse_visual_object_sequence, function in mpeg4parser +
+
+
+GstMpegVideoGop, struct in mpegvideoparser +
+
+
+GstMpegVideoLevel, enum in mpegvideoparser +
+
+
+GstMpegVideoPacketExtensionCode, enum in mpegvideoparser +
+
+
+GstMpegVideoPacketTypeCode, enum in mpegvideoparser +
+
+
+GstMpegVideoPictureExt, struct in mpegvideoparser +
+
+
+GstMpegVideoPictureHdr, struct in mpegvideoparser +
+
+
+GstMpegVideoPictureStructure, enum in mpegvideoparser +
+
+
+GstMpegVideoPictureType, enum in mpegvideoparser +
+
+
+GstMpegVideoProfile, enum in mpegvideoparser +
+
+
+GstMpegVideoQuantMatrixExt, struct in mpegvideoparser +
+
+
+GstMpegVideoSequenceExt, struct in mpegvideoparser +
+
+
+GstMpegVideoSequenceHdr, struct in mpegvideoparser +
+
+
+GstMpegVideoTypeOffsetSize, struct in mpegvideoparser +
+
+
+gst_mpeg_video_parse, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_gop, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_picture_extension, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_picture_header, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_quant_matrix_extension, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_sequence_extension, function in mpegvideoparser +
+
+
+gst_mpeg_video_parse_sequence_header, function in mpegvideoparser +
+
+

P

+
+GstPhotoCaps, enum in gstphotography +
+
+
+GstPhotoCapturePrepared, user_function in gstphotography +
+
+
+GstPhotography, struct in gstphotography +
+
+
+GstPhotographyNoiseReduction, enum in gstphotography +
+
+
+GST_PHOTOGRAPHY_AUTOFOCUS_DONE, macro in gstphotography +
+
+
+gst_photography_get_aperture, function in gstphotography +
+
+
+gst_photography_get_capabilities, function in gstphotography +
+
+
+gst_photography_get_colour_tone_mode, function in gstphotography +
+
+
+gst_photography_get_config, function in gstphotography +
+
+
+gst_photography_get_ev_compensation, function in gstphotography +
+
+
+gst_photography_get_exposure, function in gstphotography +
+
+
+gst_photography_get_flash_mode, function in gstphotography +
+
+
+gst_photography_get_flicker_mode, function in gstphotography +
+
+
+gst_photography_get_focus_mode, function in gstphotography +
+
+
+gst_photography_get_iso_speed, function in gstphotography +
+
+
+gst_photography_get_noise_reduction, function in gstphotography +
+
+
+gst_photography_get_scene_mode, function in gstphotography +
+
+
+gst_photography_get_white_balance_mode, function in gstphotography +
+
+
+gst_photography_get_zoom, function in gstphotography +
+
+
+gst_photography_noise_reduction_get_type, function in photography-enumtypes +
+
+
+gst_photography_prepare_for_capture, function in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_APERTURE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_CAPABILITIES, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_COLOUR_TONE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_EV_COMP, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_EXPOSURE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_FLASH_MODE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_FLICKER_MODE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_FOCUS_MODE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_FOCUS_STATUS, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_IMAGE_CAPTURE_SUPPORTED_CAPS, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_IMAGE_PREVIEW_SUPPORTED_CAPS, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_ISO_SPEED, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_NOISE_REDUCTION, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_SCENE_MODE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_SHAKE_RISK, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_WB_MODE, macro in gstphotography +
+
+
+GST_PHOTOGRAPHY_PROP_ZOOM, macro in gstphotography +
+
+
+gst_photography_set_aperture, function in gstphotography +
+
+
+gst_photography_set_autofocus, function in gstphotography +
+
+
+gst_photography_set_colour_tone_mode, function in gstphotography +
+
+
+gst_photography_set_config, function in gstphotography +
+
+
+gst_photography_set_ev_compensation, function in gstphotography +
+
+
+gst_photography_set_exposure, function in gstphotography +
+
+
+gst_photography_set_flash_mode, function in gstphotography +
+
+
+gst_photography_set_flicker_mode, function in gstphotography +
+
+
+gst_photography_set_focus_mode, function in gstphotography +
+
+
+gst_photography_set_iso_speed, function in gstphotography +
+
+
+gst_photography_set_noise_reduction, function in gstphotography +
+
+
+gst_photography_set_scene_mode, function in gstphotography +
+
+
+gst_photography_set_white_balance_mode, function in gstphotography +
+
+
+gst_photography_set_zoom, function in gstphotography +
+
+
+GST_PHOTOGRAPHY_SHAKE_RISK, macro in gstphotography +
+
+
+GstPhotoShakeRisk, enum in gstphotography +
+
+
+gst_photo_caps_get_type, function in photography-enumtypes +
+
+
+gst_photo_shake_risk_get_type, function in photography-enumtypes +
+
+
+prepare_for_capture, user_function in gstphotography +
+
+

S

+
+GstSceneMode, enum in gstphotography +
+
+
+gst_scene_mode_get_type, function in photography-enumtypes +
+
+
+set_aperture, user_function in gstphotography +
+
+
+set_autofocus, user_function in gstphotography +
+
+
+set_colour_tone_mode, user_function in gstphotography +
+
+
+set_config, user_function in gstphotography +
+
+
+set_ev_compensation, user_function in gstphotography +
+
+
+set_exposure, user_function in gstphotography +
+
+
+set_flash_mode, user_function in gstphotography +
+
+
+set_flicker_mode, user_function in gstphotography +
+
+
+set_focus_mode, user_function in gstphotography +
+
+
+set_iso_speed, user_function in gstphotography +
+
+
+set_noise_reduction, user_function in gstphotography +
+
+
+set_scene_mode, user_function in gstphotography +
+
+
+set_white_balance_mode, user_function in gstphotography +
+
+
+set_zoom, user_function in gstphotography +
+
+
+GstSignalProcessor, struct in GstSignalProcessor +
+
+
+GstSignalProcessorClass, struct in GstSignalProcessor +
+
+
+GstSignalProcessorClassFlags, enum in GstSignalProcessor +
+
+
+GstSignalProcessorGroup, struct in GstSignalProcessor +
+
+
+GstSignalProcessorState, enum in GstSignalProcessor +
+
+
+gst_signal_processor_class_add_pad_template, function in GstSignalProcessor +
+
+
+GST_SIGNAL_PROCESSOR_CLASS_CAN_PROCESS_IN_PLACE, macro in GstSignalProcessor +
+
+
+GST_SIGNAL_PROCESSOR_CLASS_SET_CAN_PROCESS_IN_PLACE, macro in GstSignalProcessor +
+
+
+GST_SIGNAL_PROCESSOR_IS_INITIALIZED, macro in GstSignalProcessor +
+
+
+GST_SIGNAL_PROCESSOR_IS_RUNNING, macro in GstSignalProcessor +
+
+
+GstSurfaceBuffer, struct in GstSurfaceBuffer +
+
+
+GstSurfaceBufferClass, struct in GstSurfaceBuffer +
+
+
+GstSurfaceConverter, struct in GstSurfaceConverter +
+
+
+GstSurfaceConverterInterface, struct in GstSurfaceConverter +
+
+
+gst_surface_buffer_create_converter, function in GstSurfaceBuffer +
+
+
+gst_surface_buffer_get_type, function in GstSurfaceBuffer +
+
+
+gst_surface_converter_get_type, function in GstSurfaceConverter +
+
+
+gst_surface_converter_upload, function in GstSurfaceConverter +
+
+

T

+
+GST_TYPE_CAMERABIN_MODE, macro in gstcamerabin-enum +
+
+
+GST_TYPE_COLOUR_TONE_MODE, macro in photography-enumtypes +
+
+
+GST_TYPE_FLASH_MODE, macro in photography-enumtypes +
+
+
+GST_TYPE_FLICKER_REDUCTION_MODE, macro in photography-enumtypes +
+
+
+GST_TYPE_FOCUS_MODE, macro in photography-enumtypes +
+
+
+GST_TYPE_FOCUS_STATUS, macro in photography-enumtypes +
+
+
+GST_TYPE_PHOTOGRAPHY_NOISE_REDUCTION, macro in photography-enumtypes +
+
+
+GST_TYPE_PHOTO_CAPS, macro in photography-enumtypes +
+
+
+GST_TYPE_PHOTO_SHAKE_RISK, macro in photography-enumtypes +
+
+
+GST_TYPE_SCENE_MODE, macro in photography-enumtypes +
+
+
+GST_TYPE_WHITE_BALANCE_MODE, macro in photography-enumtypes +
+
+

V

+
+GstVC1AdvancedSeqHdr, struct in vc1parser +
+
+
+GstVC1BDU, struct in vc1parser +
+
+
+GstVC1Condover, enum in vc1parser +
+
+
+GstVC1DQProfile, enum in vc1parser +
+
+
+GstVC1EntryPointHdr, struct in vc1parser +
+
+
+GstVC1FrameHdr, struct in vc1parser +
+
+
+GstVC1HrdParam, struct in vc1parser +
+
+
+GstVC1Level, enum in vc1parser +
+
+
+GstVC1MvMode, enum in vc1parser +
+
+
+GstVC1ParserResult, enum in vc1parser +
+
+
+GstVC1PicAdvanced, struct in vc1parser +
+
+
+GstVC1PicSimpleMain, struct in vc1parser +
+
+
+GstVC1Picture, struct in vc1parser +
+
+
+GstVC1PictureType, enum in vc1parser +
+
+
+GstVC1Profile, enum in vc1parser +
+
+
+GstVC1QuantizerSpec, enum in vc1parser +
+
+
+GstVC1SeqHdr, struct in vc1parser +
+
+
+GstVC1SeqLayer, struct in vc1parser +
+
+
+GstVC1SeqStructA, struct in vc1parser +
+
+
+GstVC1SeqStructB, struct in vc1parser +
+
+
+GstVC1SeqStructC, struct in vc1parser +
+
+
+GstVC1StartCode, enum in vc1parser +
+
+
+GstVC1VopDquant, struct in vc1parser +
+
+
+GST_VC1_BFRACTION_BASIS, macro in vc1parser +
+
+
+gst_vc1_bitplanes_ensure_size, function in vc1parser +
+
+
+gst_vc1_bitplanes_free, function in vc1parser +
+
+
+gst_vc1_bitplanes_free_1, function in vc1parser +
+
+
+gst_vc1_bitplanes_new, function in vc1parser +
+
+
+gst_vc1_identify_next_bdu, function in vc1parser +
+
+
+gst_vc1_parse_entry_point_header, function in vc1parser +
+
+
+gst_vc1_parse_frame_header, function in vc1parser +
+
+
+gst_vc1_parse_sequence_header, function in vc1parser +
+
+
+gst_vc1_parse_sequence_header_struct_a, function in vc1parser +
+
+
+gst_vc1_parse_sequence_header_struct_b, function in vc1parser +
+
+
+gst_vc1_parse_sequence_header_struct_c, function in vc1parser +
+
+
+gst_vc1_parse_sequence_layer, function in vc1parser +
+
+
+GstVideoContext, struct in GstVideoContextInterface +
+
+
+GstVideoContextInterface, struct in GstVideoContextInterface +
+
+
+GstVideoFrame, struct in GstBaseVideoCodec +
+
+
+GstVideoState, struct in GstBaseVideoCodec +
+
+
+GST_VIDEO_CAPS_SURFACE, macro in GstSurfaceBuffer +
+
+
+gst_video_context_iface_get_type, function in GstVideoContextInterface +
+
+
+gst_video_context_message_parse_prepare, function in GstVideoContextInterface +
+
+
+gst_video_context_prepare, function in GstVideoContextInterface +
+
+
+gst_video_context_query_get_supported_types, function in GstVideoContextInterface +
+
+
+gst_video_context_query_new, function in GstVideoContextInterface +
+
+
+gst_video_context_query_parse_value, function in GstVideoContextInterface +
+
+
+gst_video_context_query_set_object, function in GstVideoContextInterface +
+
+
+gst_video_context_query_set_pointer, function in GstVideoContextInterface +
+
+
+gst_video_context_query_set_string, function in GstVideoContextInterface +
+
+
+gst_video_context_query_set_value, function in GstVideoContextInterface +
+
+
+gst_video_context_run_query, function in GstVideoContextInterface +
+
+
+gst_video_context_set_context, function in GstVideoContextInterface +
+
+
+gst_video_context_set_context_object, function in GstVideoContextInterface +
+
+
+gst_video_context_set_context_pointer, function in GstVideoContextInterface +
+
+
+gst_video_context_set_context_string, function in GstVideoContextInterface +
+
+
+gst_video_state_get_timestamp, function in gstbasevideoutils +
+
+

W

+
+GstWhiteBalanceMode, enum in gstphotography +
+
+
+gst_white_balance_mode_get_type, function in photography-enumtypes +
+
+

Z

+
+ZOOM_1X, macro in GstBaseCameraSrc +
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/codecparsers.html b/docs/libs/html/codecparsers.html new file mode 100644 index 0000000..6ea42ab --- /dev/null +++ b/docs/libs/html/codecparsers.html @@ -0,0 +1,53 @@ + + + + +Bitstream parsing Library + + + + + + + + + + + + + + + + +
+

+Bitstream parsing Library

+
+
+h264parser — Convenience library for h264 video +bitstream parsing. +
+
+mpegvideoparser — Convenience library for mpeg1 and 2 video +bitstream parsing. +
+
+mpeg4parser — Convenience library for parsing mpeg4 part 2 video +bitstream. +
+
+vc1parser — Convenience library for parsing vc1 video +bitstream. +
+
+

+ This library should be linked to by getting cflags and libs from + gstreamer-plugins-bad-0.10.pc and adding + -lgscodeparsers-0.10 to the library flags. +

+
+ + + \ No newline at end of file diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html new file mode 100644 index 0000000..f1cf392 --- /dev/null +++ b/docs/libs/html/compiling.html @@ -0,0 +1,64 @@ + + + + +Compiling + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Compiling

+

Compiling against the bad plugins libraries — +How to compile against the bad plugins libraries +

+
+
+

Compiling against the bad plugins libraries

+

+To compile against these libraries, you need to tell the compiler where to +find the header files and libraries. This is done with the +pkg-config utility. +

+

+The following interactive shell session demonstrates how +pkg-config is used: +

+
+$ pkg-config --cflags gstreamer-plugins-bad-0.10
+-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
+$ pkg-config --libs gstreamer-plugins-bad-0.10
+-Wl,--export-dynamic -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lxml2 -lpthread -lz -lm -lglib-2.0
+
+

+

+

+Note that, because of the number of libraries provided in this package, +the pkg-config information does not add -l flags itself +to choose the libraries to link to. You must add these yourself to select +which of the libraries you want to use. +

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

GstBaseVideoCodec

+

GstBaseVideoCodec

+
+ +
+

Description

+
+
+

Details

+
+

GST_BASE_VIDEO_CODEC_SINK_NAME

+
#define GST_BASE_VIDEO_CODEC_SINK_NAME    "sink"
+
+

+The name of the templates for the sink pad. +

+
+
+
+

GST_BASE_VIDEO_CODEC_SRC_NAME

+
#define GST_BASE_VIDEO_CODEC_SRC_NAME     "src"
+
+

+The name of the templates for the source pad. +

+
+
+
+

GST_BASE_VIDEO_CODEC_SRC_PAD()

+
#define GST_BASE_VIDEO_CODEC_SRC_PAD(obj)         (((GstBaseVideoCodec *) (obj))->srcpad)
+
+

+Gives the pointer to the source GstPad object of the element. +

+
++ + + + +

obj :

base video codec instance
+
+
+
+

GST_BASE_VIDEO_CODEC_SINK_PAD()

+
#define GST_BASE_VIDEO_CODEC_SINK_PAD(obj)        (((GstBaseVideoCodec *) (obj))->sinkpad)
+
+

+Gives the pointer to the sink GstPad object of the element. +

+
++ + + + +

obj :

base video codec instance
+
+
+
+

GST_BASE_VIDEO_CODEC_FLOW_NEED_DATA

+
#define GST_BASE_VIDEO_CODEC_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+
+
+
+
+

GST_BASE_VIDEO_CODEC_STREAM_LOCK()

+
#define GST_BASE_VIDEO_CODEC_STREAM_LOCK(codec) g_static_rec_mutex_lock (&GST_BASE_VIDEO_CODEC (codec)->stream_lock)
+
+
+
+
+

GST_BASE_VIDEO_CODEC_STREAM_UNLOCK()

+
#define GST_BASE_VIDEO_CODEC_STREAM_UNLOCK(codec) g_static_rec_mutex_unlock (&GST_BASE_VIDEO_CODEC (codec)->stream_lock)
+
+
+
+
+

struct GstVideoState

+
struct GstVideoState {
+  GstCaps *caps;
+  GstVideoFormat format;
+  int width, height;
+  int fps_n, fps_d;
+  int par_n, par_d;
+
+  gboolean have_interlaced;
+  gboolean interlaced;
+  gboolean top_field_first;
+
+  int clean_width, clean_height;
+  int clean_offset_left, clean_offset_top;
+
+  int bytes_per_picture;
+
+  GstBuffer *codec_data;
+};
+
+
+
+
+

struct GstVideoFrame

+
struct GstVideoFrame {
+  GstClockTime decode_timestamp;
+  GstClockTime presentation_timestamp;
+  GstClockTime presentation_duration;
+
+  gint system_frame_number;
+  gint decode_frame_number;
+  gint presentation_frame_number;
+
+  int distance_from_sync;
+  gboolean is_sync_point;
+  gboolean is_eos;
+
+  GstBuffer *sink_buffer;
+  GstBuffer *src_buffer;
+
+  int field_index;
+  int n_fields;
+
+  void *coder_hook;
+  GDestroyNotify coder_hook_destroy_notify;
+
+  GstClockTime deadline;
+
+  gboolean force_keyframe;
+  gboolean force_keyframe_headers;
+
+  /* Events that should be pushed downstream *before*
+   * the next src_buffer */
+  GList *events;
+};
+
+
+
+
+

struct GstBaseVideoCodec

+
struct GstBaseVideoCodec {
+  GstElement element;
+};
+
+
+
+
+

struct GstBaseVideoCodecClass

+
struct GstBaseVideoCodecClass {
+  GstElementClass element_class;
+
+  /* FIXME before moving to base */
+  void *padding[GST_PADDING_LARGE];
+};
+
+
+
+
+

gst_base_video_codec_new_frame ()

+
GstVideoFrame *     gst_base_video_codec_new_frame      (GstBaseVideoCodec *base_video_codec);
+
+
+
+

gst_base_video_codec_free_frame ()

+
void                gst_base_video_codec_free_frame     (GstVideoFrame *frame);
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoDecoder.html b/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoDecoder.html new file mode 100644 index 0000000..ed252a5 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoDecoder.html @@ -0,0 +1,601 @@ + + + + +GstBaseVideoDecoder + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GstBaseVideoDecoder

+

GstBaseVideoDecoder — Base class for video decoders

+
+
+

Synopsis

+
#define             GST_BASE_VIDEO_DECODER_SINK_NAME
+#define             GST_BASE_VIDEO_DECODER_SRC_NAME
+#define             GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA
+#define             GST_BASE_VIDEO_DECODER_FLOW_DROPPED
+#define             GST_BASE_AUDIO_DECODER_ERROR        (el,
+                                                         w,
+                                                         domain,
+                                                         code,
+                                                         text,
+                                                         debug,
+                                                         ret)
+struct              GstBaseVideoDecoder;
+struct              GstBaseVideoDecoderClass;
+void                gst_base_video_decoder_class_set_capture_pattern
+                                                        (GstBaseVideoDecoderClass *klass,
+                                                         guint32 mask,
+                                                         guint32 pattern);
+GstVideoFrame *     gst_base_video_decoder_get_frame    (GstBaseVideoDecoder *coder,
+                                                         int frame_number);
+GstVideoFrame *     gst_base_video_decoder_get_oldest_frame
+                                                        (GstBaseVideoDecoder *coder);
+void                gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder *base_video_decoder,
+                                                         int n_bytes);
+void                gst_base_video_decoder_lost_sync    (GstBaseVideoDecoder *base_video_decoder);
+GstFlowReturn       gst_base_video_decoder_have_frame   (GstBaseVideoDecoder *base_video_decoder);
+void                gst_base_video_decoder_set_sync_point
+                                                        (GstBaseVideoDecoder *base_video_decoder);
+gboolean            gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder *base_video_decoder);
+GstBuffer *         gst_base_video_decoder_alloc_src_buffer
+                                                        (GstBaseVideoDecoder *base_video_decoder);
+GstFlowReturn       gst_base_video_decoder_alloc_src_frame
+                                                        (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+GstVideoState *     gst_base_video_decoder_get_state    (GstBaseVideoDecoder *base_video_decoder);
+GstClockTimeDiff    gst_base_video_decoder_get_max_decode_time
+                                                        (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+GstFlowReturn       gst_base_video_decoder_finish_frame (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+
+
+
+

Description

+

+This base class is for video decoders turning encoded data into raw video +frames. +

+

+GstBaseVideoDecoder and subclass should cooperate as follows. +

+
    +
  1. +

    Configuration

    +
      +
    • + Initially, GstBaseVideoDecoder calls start when the decoder element + is activated, which allows subclass to perform any global setup. +

    • +
    • + GstBaseVideoDecoder calls set_format to inform subclass of caps + describing input video data that it is about to receive, including + possibly configuration data. + While unlikely, it might be called more than once, if changing input + parameters require reconfiguration. +

    • +
    • + GstBaseVideoDecoder calls stop at end of all processing. +

    • +
    +
  2. +
  3. +

    Data processing

    +
      +
    • + Base class gathers input data, and optionally allows subclass + to parse this into subsequently manageable chunks, typically + corresponding to and referred to as 'frames'. +

    • +
    • + Input frame is provided to subclass' handle_frame. +

    • +
    • + If codec processing results in decoded data, subclass should call + gst_base_video_decoder_finish_frame to have decoded data pushed + downstream. +

    • +
    +
  4. +
  5. +

    Shutdown phase

    +
    • + GstBaseVideoDecoder class calls stop to inform the subclass that data + parsing will be stopped. +

    +
  6. +
+

+

+

+Subclass is responsible for providing pad template caps for +source and sink pads. The pads need to be named "sink" and "src". It also +needs to set the fixed caps on srcpad, when the format is ensured. This +is typically when base class calls subclass' set_format function, though +it might be delayed until calling gst_base_video_decoder_finish_frame. +

+

+Subclass is also responsible for providing (presentation) timestamps +(likely based on corresponding input ones). If that is not applicable +or possible, baseclass provides limited framerate based interpolation. +

+

+Similarly, the baseclass provides some limited (legacy) seeking support +(upon explicit subclass request), as full-fledged support +should rather be left to upstream demuxer, parser or alike. This simple +approach caters for seeking and duration reporting using estimated input +bitrates. +

+

+Baseclass provides some support for reverse playback, in particular +in case incoming data is not packetized or upstream does not provide +fragments on keyframe boundaries. However, subclass should then be prepared +for the parsing and frame processing stage to occur separately (rather +than otherwise the latter immediately following the former), +and should ensure the parsing stage properly marks keyframes or rely on +upstream to do so properly for incoming data. +

+

+Things that subclass need to take care of: +

+
    +
  • Provide pad templates

  • +
  • + Set source pad caps when appropriate +

  • +
  • + Configure some baseclass behaviour parameters. +

  • +
  • + Optionally parse input data, if it is not considered packetized. + Parse sync is obtained either by providing baseclass with a + mask and pattern or a custom scan_for_sync. When sync is established, + parse_data should invoke gst_base_video_decoder_add_to_frame and + gst_base_video_decoder_have_frame as appropriate. +

  • +
  • + Accept data in handle_frame and provide decoded results to + gst_base_video_decoder_finish_frame. +

  • +
+

+

+
+
+

Details

+
+

GST_BASE_VIDEO_DECODER_SINK_NAME

+
#define GST_BASE_VIDEO_DECODER_SINK_NAME    "sink"
+
+

+The name of the templates for the sink pad. +

+
+
+
+

GST_BASE_VIDEO_DECODER_SRC_NAME

+
#define GST_BASE_VIDEO_DECODER_SRC_NAME     "src"
+
+

+The name of the templates for the source pad. +

+
+
+
+

GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA

+
#define GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+
+

+Returned while parsing to indicate more data is needed. +

+
+
+
+

GST_BASE_VIDEO_DECODER_FLOW_DROPPED

+
#define GST_BASE_VIDEO_DECODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1
+
+

+Returned when the event/buffer should be dropped. +

+
+
+
+

GST_BASE_AUDIO_DECODER_ERROR()

+
#define             GST_BASE_AUDIO_DECODER_ERROR(el, w, domain, code, text, debug, ret)
+
+
+
+

struct GstBaseVideoDecoder

+
struct GstBaseVideoDecoder {
+  GstBaseVideoCodec base_video_codec;
+};
+
+

+The opaque GstBaseVideoDecoder data structure. +

+
+
+
+

struct GstBaseVideoDecoderClass

+
struct GstBaseVideoDecoderClass {
+  GstBaseVideoCodecClass base_video_codec_class;
+
+  gboolean      (*start)          (GstBaseVideoDecoder *coder);
+
+  gboolean      (*stop)           (GstBaseVideoDecoder *coder);
+
+  int           (*scan_for_sync)  (GstBaseVideoDecoder *decoder, gboolean at_eos,
+                                   int offset, int n);
+
+  GstFlowReturn (*parse_data)     (GstBaseVideoDecoder *decoder, gboolean at_eos);
+
+  gboolean      (*set_format)     (GstBaseVideoDecoder *coder, GstVideoState * state);
+
+  gboolean      (*reset)          (GstBaseVideoDecoder *coder);
+
+  GstFlowReturn (*finish)         (GstBaseVideoDecoder *coder);
+
+  GstFlowReturn (*handle_frame)   (GstBaseVideoDecoder *coder, GstVideoFrame *frame);
+};
+
+

+Subclasses can override any of the available virtual methods or not, as +needed. At minimum handle_frame needs to be overridden, and set_format +and likely as well. If non-packetized input is supported or expected, +parse needs to be overridden as well. +

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

GstBaseVideoCodecClass base_video_codec_class;

start ()

Optional. +Called when the element starts processing. +Allows opening external resources.

stop ()

Optional. +Called when the element stops processing. +Allows closing external resources.

scan_for_sync ()

Optional. +Allows subclass to obtain sync for subsequent parsing +by custom means (above an beyond scanning for specific +marker and mask).

parse_data ()

Required for non-packetized input. +Allows chopping incoming data into manageable units (frames) +for subsequent decoding.

set_format ()

Notifies subclass of incoming data format (caps).

reset ()

Optional. +Allows subclass (codec) to perform post-seek semantics reset.

finish ()

Optional. +Called to request subclass to dispatch any pending remaining +data (e.g. at EOS).

handle_frame ()

Provides input data frame to subclass.
+
+
+
+

gst_base_video_decoder_class_set_capture_pattern ()

+
void                gst_base_video_decoder_class_set_capture_pattern
+                                                        (GstBaseVideoDecoderClass *klass,
+                                                         guint32 mask,
+                                                         guint32 pattern);
+
+
+
+

gst_base_video_decoder_get_frame ()

+
GstVideoFrame *     gst_base_video_decoder_get_frame    (GstBaseVideoDecoder *coder,
+                                                         int frame_number);
+
++ + + + + + + + + + + + + + +

base_video_decoder :

a GstBaseVideoDecoder +

frame_number :

system_frame_number of a frame

Returns :

pending unfinished GstVideoFrame identified by frame_number.
+
+
+
+

gst_base_video_decoder_get_oldest_frame ()

+
GstVideoFrame *     gst_base_video_decoder_get_oldest_frame
+                                                        (GstBaseVideoDecoder *coder);
+

+Sets the mask and pattern that will be scanned for to obtain parse sync. +Note that a non-zero mask implies that scan_for_sync will be ignored. +

+
++ + + + +

base_video_decoder_class :

a GstBaseVideoDecoderClass +
+
+
+
+

gst_base_video_decoder_add_to_frame ()

+
void                gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder *base_video_decoder,
+                                                         int n_bytes);
+
+
+
+

gst_base_video_decoder_lost_sync ()

+
void                gst_base_video_decoder_lost_sync    (GstBaseVideoDecoder *base_video_decoder);
+

+Advances out-of-sync input data by 1 byte and marks it accordingly. +

+
++ + + + +

base_video_decoder :

a GstBaseVideoDecoder +
+
+
+
+

gst_base_video_decoder_have_frame ()

+
GstFlowReturn       gst_base_video_decoder_have_frame   (GstBaseVideoDecoder *base_video_decoder);
+

+Gathers all data collected for currently parsed frame, gathers corresponding +metadata and passes it along for further processing, i.e. handle_frame. +

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

base_video_decoder :

a GstBaseVideoDecoder +

Returns :

a GstFlowReturn +
+
+
+
+

gst_base_video_decoder_set_sync_point ()

+
void                gst_base_video_decoder_set_sync_point
+                                                        (GstBaseVideoDecoder *base_video_decoder);
+

+Marks current frame as a sync point, i.e. keyframe. +

+
++ + + + +

base_video_decoder :

a GstBaseVideoDecoder +
+
+
+
+

gst_base_video_decoder_set_src_caps ()

+
gboolean            gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder *base_video_decoder);
+

+Sets src pad caps according to currently configured GstVideoState. +

+
++ + + + +

base_video_decoder :

a GstBaseVideoDecoder +
+
+
+
+

gst_base_video_decoder_alloc_src_buffer ()

+
GstBuffer *         gst_base_video_decoder_alloc_src_buffer
+                                                        (GstBaseVideoDecoder *base_video_decoder);
+

+Helper function that uses gst_pad_alloc_buffer_and_set_caps +to allocate a buffer to hold a video frame for base_video_decoder's +current GstVideoState. +

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

base_video_decoder :

a GstBaseVideoDecoder +

Returns :

allocated buffer
+
+
+
+

gst_base_video_decoder_alloc_src_frame ()

+
GstFlowReturn       gst_base_video_decoder_alloc_src_frame
+                                                        (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+

+Helper function that uses gst_pad_alloc_buffer_and_set_caps +to allocate a buffer to hold a video frame for base_video_decoder's +current GstVideoState. Subclass should already have configured video state +and set src pad caps. +

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

base_video_decoder :

a GstBaseVideoDecoder +

frame :

a GstVideoFrame +

Returns :

result from pad alloc call
+
+
+
+

gst_base_video_decoder_get_state ()

+
GstVideoState *     gst_base_video_decoder_get_state    (GstBaseVideoDecoder *base_video_decoder);
+
++ + + + + + + + + + +

base_video_decoder :

a GstBaseVideoDecoder +

Returns :

+GstVideoState describing format of video data.
+
+
+
+

gst_base_video_decoder_get_max_decode_time ()

+
GstClockTimeDiff    gst_base_video_decoder_get_max_decode_time
+                                                        (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+

+Determines maximum possible decoding time for frame that will +allow it to decode and arrive in time (as determined by QoS events). +In particular, a negative result means decoding in time is no longer possible +and should therefore occur as soon/skippy as possible. +

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

base_video_decoder :

a GstBaseVideoDecoder +

frame :

a GstVideoFrame +

Returns :

max decoding time.
+
+
+
+

gst_base_video_decoder_finish_frame ()

+
GstFlowReturn       gst_base_video_decoder_finish_frame (GstBaseVideoDecoder *base_video_decoder,
+                                                         GstVideoFrame *frame);
+

+Removes next n_bytes of input data and adds it to currently parsed frame. +

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

base_video_decoder :

a GstBaseVideoDecoder +

n_bytes :

an encoded GstVideoFrame +
+
+
+
+

See Also

+GstBaseTransform +
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoEncoder.html b/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoEncoder.html new file mode 100644 index 0000000..0f69cbc --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-GstBaseVideoEncoder.html @@ -0,0 +1,415 @@ + + + + +GstBaseVideoEncoder + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GstBaseVideoEncoder

+

GstBaseVideoEncoder — Base class for video encoders

+
+ +
+

Description

+

+This base class is for video encoders turning raw video into +encoded video data. +

+

+GstBaseVideoEncoder and subclass should cooperate as follows. +

+
    +
  1. +

    Configuration

    +
      +
    • + Initially, GstBaseVideoEncoder calls start when the encoder element + is activated, which allows subclass to perform any global setup. +

    • +
    • + GstBaseVideoEncoder calls set_format to inform subclass of the format + of input video data that it is about to receive. Subclass should + setup for encoding and configure base class as appropriate + (e.g. latency). While unlikely, it might be called more than once, + if changing input parameters require reconfiguration. Baseclass + will ensure that processing of current configuration is finished. +

    • +
    • + GstBaseVideoEncoder calls stop at end of all processing. +

    • +
    +
  2. +
  3. +

    Data processing

    +
      +
    • + Base class collects input data and metadata into a frame and hands + this to subclass' handle_frame. +

    • +
    • + If codec processing results in encoded data, subclass should call + gst_base_video_encoder_finish_frame to have encoded data pushed + downstream. +

    • +
    • + If implemented, baseclass calls subclass shape_output which then sends + data downstream in desired form. Otherwise, it is sent as-is. +

    • +
    • + GstBaseVideoEncoderClass will handle both srcpad and sinkpad events. + Sink events will be passed to subclass if event callback has been + provided. +

    • +
    +
  4. +
  5. +

    Shutdown phase

    +
    • + GstBaseVideoEncoder class calls stop to inform the subclass that data + parsing will be stopped. +

    +
  6. +
+

+

+

+Subclass is responsible for providing pad template caps for +source and sink pads. The pads need to be named "sink" and "src". It should +also be able to provide fixed src pad caps in getcaps by the time it calls +gst_base_video_encoder_finish_frame. +

+

+Things that subclass need to take care of: +

+
    +
  • Provide pad templates

  • +
  • + Provide source pad caps before pushing the first buffer +

  • +
  • + Accept data in handle_frame and provide encoded results to + gst_base_video_encoder_finish_frame. +

  • +
+

+

+
+
+

Details

+
+

GST_BASE_VIDEO_ENCODER_SINK_NAME

+
#define GST_BASE_VIDEO_ENCODER_SINK_NAME    "sink"
+
+

+The name of the templates for the sink pad. +

+
+
+
+

GST_BASE_VIDEO_ENCODER_SRC_NAME

+
#define GST_BASE_VIDEO_ENCODER_SRC_NAME     "src"
+
+

+The name of the templates for the source pad. +

+
+
+
+

GST_BASE_VIDEO_ENCODER_FLOW_DROPPED

+
#define GST_BASE_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1
+
+

+Returned when the event/buffer should be dropped. +

+
+
+
+

struct GstBaseVideoEncoder

+
struct GstBaseVideoEncoder {
+  GstBaseVideoCodec base_video_codec;
+};
+
+

+The opaque GstBaseVideoEncoder data structure. +

+
++ + + + +

GstBaseVideoCodec base_video_codec;

+
+
+
+

struct GstBaseVideoEncoderClass

+
struct GstBaseVideoEncoderClass {
+  GstBaseVideoCodecClass              base_video_codec_class;
+
+  /* virtual methods for subclasses */
+
+  gboolean      (*start)              (GstBaseVideoEncoder *coder);
+
+  gboolean      (*stop)               (GstBaseVideoEncoder *coder);
+
+  gboolean      (*set_format)         (GstBaseVideoEncoder *coder,
+                                       GstVideoState *state);
+
+  GstFlowReturn (*handle_frame)       (GstBaseVideoEncoder *coder,
+                                       GstVideoFrame *frame);
+
+  gboolean      (*reset)              (GstBaseVideoEncoder *coder);
+  GstFlowReturn (*finish)             (GstBaseVideoEncoder *coder);
+
+  GstFlowReturn (*shape_output)       (GstBaseVideoEncoder *coder,
+                                       GstVideoFrame *frame);
+
+  gboolean      (*event)              (GstBaseVideoEncoder *coder,
+                                       GstEvent *event);
+};
+
+

+Subclasses can override any of the available virtual methods or not, as +needed. At minimum handle_frame needs to be overridden, and set_format +and get_caps are likely needed as well. +

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

GstBaseVideoCodecClass base_video_codec_class;

start ()

Optional. +Called when the element starts processing. +Allows opening external resources.

stop ()

Optional. +Called when the element stops processing. +Allows closing external resources.

set_format ()

Optional. +Notifies subclass of incoming data format. +GstVideoState fields have already been +set according to provided caps.

handle_frame ()

Provides input frame to subclass.

reset ()

finish ()

Optional. +Called to request subclass to dispatch any pending remaining +data (e.g. at EOS).

shape_output ()

Optional. +Allows subclass to push frame downstream in whatever +shape or form it deems appropriate. If not provided, +provided encoded frame data is simply pushed downstream.

event ()

Optional. +Event handler on the sink pad. This function should return +TRUE if the event was handled and should be discarded +(i.e. not unref'ed).
+
+
+
+

gst_base_video_encoder_get_state ()

+
const GstVideoState * gst_base_video_encoder_get_state  (GstBaseVideoEncoder *coder);
+
++ + + + + + + + + + +

base_video_encoder :

a GstBaseVideoEncoder +

Returns :

+GstVideoState describing format of video data.
+
+
+
+

gst_base_video_encoder_get_oldest_frame ()

+
GstVideoFrame *     gst_base_video_encoder_get_oldest_frame
+                                                        (GstBaseVideoEncoder *coder);
+
++ + + + + + + + + + +

base_video_encoder :

a GstBaseVideoEncoder +

Returns :

oldest unfinished pending GstVideoFrame +
+
+
+
+

gst_base_video_encoder_finish_frame ()

+
GstFlowReturn       gst_base_video_encoder_finish_frame (GstBaseVideoEncoder *base_video_encoder,
+                                                         GstVideoFrame *frame);
+

+frame must have a valid encoded data buffer, whose metadata fields +are then appropriately set according to frame data or no buffer at +all if the frame should be dropped. +It is subsequently pushed downstream or provided to shape_output. +In any case, the frame is considered finished and released. +

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

base_video_encoder :

a GstBaseVideoEncoder +

frame :

an encoded GstVideoFrame +

Returns :

a GstFlowReturn resulting from sending data downstream
+
+
+
+

gst_base_video_encoder_set_latency ()

+
void                gst_base_video_encoder_set_latency  (GstBaseVideoEncoder *base_video_encoder,
+                                                         GstClockTime min_latency,
+                                                         GstClockTime max_latency);
+

+Informs baseclass of encoding latency. +

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

base_video_encoder :

a GstBaseVideoEncoder +

min_latency :

minimum latency

max_latency :

maximum latency
+
+
+
+

gst_base_video_encoder_set_latency_fields ()

+
void                gst_base_video_encoder_set_latency_fields
+                                                        (GstBaseVideoEncoder *base_video_encoder,
+                                                         int n_fields);
+

+Informs baseclass of encoding latency in terms of fields (both min +and max latency). +

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

base_video_encoder :

a GstBaseVideoEncoder +

fields :

latency in fields
+
+
+
+

See Also

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

GstSurfaceBuffer

+

GstSurfaceBuffer — Accelerated surface base class

+
+ +
+

Description

+

+This base class is used to abstract hardware accelerated buffers and enable +generic convertion to standard type such as GL textures. The media type for +those buffers is defined by GST_VIDEO_CAPS_SURFACE. An implementation +specific type must be set using the "type" key (e.g. type="vaapi"). +Available convertion type are speficied using seperate boolean +arguement (e.g. opengl=true). Having this information in the capabilities +allow easy negotiating of such feature with other elements (e.g. a +ClutterGstVideoSink can claim accpeting caps "video/x-surface,opengl=true"). +

+
+

Note

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

+

+
+
+

Details

+
+

GST_VIDEO_CAPS_SURFACE

+
#define GST_VIDEO_CAPS_SURFACE "video/x-surface"
+
+

+Base caps for GstSurfaceBuffer. Implementation specific type must be marked +using the type attribute (e.g. type=vaapi). Available convertion shall be +specified using boolean attributes (e.g. opengl=true). +

+
+
+
+

GstSurfaceBuffer

+
typedef struct {
+  GstBuffer parent;
+} GstSurfaceBuffer;
+
+
++ + + + +

GstBuffer parent;

parent object
+
+
+
+

struct GstSurfaceBufferClass

+
struct GstSurfaceBufferClass {
+  GstBufferClass parent_class;
+
+  GstSurfaceConverter * (*create_converter) (GstSurfaceBuffer *buffer,
+                                             const gchar *type,
+                                             GValue *dest);
+};
+
+

+GstVideoContextInterface interface. +

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

GstBufferClass parent_class;

parent class type.

create_converter ()

vmethod to create a converter.
+
+
+
+

gst_surface_buffer_get_type ()

+
GType               gst_surface_buffer_get_type         (void);
+
+
+
+

gst_surface_buffer_create_converter ()

+
GstSurfaceConverter * gst_surface_buffer_create_converter
+                                                        (GstSurfaceBuffer *buffer,
+                                                         const gchar *type,
+                                                         GValue *dest);
+

+This method is used to create a type specific converter. The converter will +serve as context to accelerate the data convertion. This converter object +shall be discarded when the pipeline state changes to NULL and renewed when +caps are changed. +

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

buffer :

a GstSurfaceBuffer +

type :

the type to convert to

dest :

a GValue containing the destination to upload

Returns :

newly allocated GstSurfaceConverter +
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-GstSurfaceConverter.html b/docs/libs/html/gst-plugins-bad-libs-GstSurfaceConverter.html new file mode 100644 index 0000000..d230070 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-GstSurfaceConverter.html @@ -0,0 +1,159 @@ + + + + +GstSurfaceConverter + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GstSurfaceConverter

+

GstSurfaceConverter — Interface for GstSurfaceBuffer convertion

+
+ +
+

Description

+

+Objects implementing this interface are used as a convertion context. This +allow element optimizing the upload by keeping required resources between +uploads. The context must be discarded when the pipeline goes to +GST_STATE_NULL or renewed whenever the caps are changed. +

+
+

Note

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

+

+

+

+
+

Example uploading to GL texture

+
+ + + + + + + +
1
+2
+3
+4
if (G_UNLIKELY (priv->converter == NULL))
+  priv->converter = gst_surface_buffer_create_converter (surface, "opengl", &value);
+
+gst_surface_converter_uplaod (priv->converter, surface);
+
+ +
+

+

+
+
+

Details

+
+

GstSurfaceConverter

+
typedef struct _GstSurfaceConverter GstSurfaceConverter;
+
+
+
+

struct GstSurfaceConverterInterface

+
struct GstSurfaceConverterInterface {
+  GTypeInterface parent;
+
+  gboolean (*upload) (GstSurfaceConverter *converter,
+                      GstSurfaceBuffer *buffer);
+};
+
+

+GstSurfaceConverterInterface interface. +

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

GTypeInterface parent;

parent interface type.

upload ()

vmethod to upload GstSurfaceBuffer.
+
+
+
+

gst_surface_converter_get_type ()

+
GType               gst_surface_converter_get_type      (void);
+
+
+
+

gst_surface_converter_upload ()

+
gboolean            gst_surface_converter_upload        (GstSurfaceConverter *converter,
+                                                         GstSurfaceBuffer *buffer);
+

+Convert and uploads the GstSurfaceBuffer to the converter destination. +

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

converter :

a GstSurfaceConverter +

buffer :

the GstSurfaceBuffer to upload

Returns :

+TRUE on success, FALSE otherwise
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-GstVideoContextInterface.html b/docs/libs/html/gst-plugins-bad-libs-GstVideoContextInterface.html new file mode 100644 index 0000000..d770779 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-GstVideoContextInterface.html @@ -0,0 +1,752 @@ + + + + +GstVideoContextInterface + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GstVideoContextInterface

+

GstVideoContextInterface — Interface to handle video library context

+
+
+

Synopsis

+
#define             GST_IS_VIDEO_CONTEXT                (obj)
+                    GstVideoContext;
+struct              GstVideoContextInterface;
+GType               gst_video_context_iface_get_type    (void);
+void                gst_video_context_set_context       (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         const GValue *value);
+void                gst_video_context_set_context_string
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         const gchar *value);
+void                gst_video_context_set_context_pointer
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         gpointer value);
+void                gst_video_context_set_context_object
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         GObject *value);
+void                gst_video_context_prepare           (GstVideoContext *context,
+                                                         const gchar **types);
+gboolean            gst_video_context_message_parse_prepare
+                                                        (GstMessage *message,
+                                                         const gchar ***types,
+                                                         GstVideoContext **ctx);
+GstQuery *          gst_video_context_query_new         (const gchar **types);
+gboolean            gst_video_context_run_query         (GstElement *element,
+                                                         GstQuery *query);
+const gchar **      gst_video_context_query_get_supported_types
+                                                        (GstQuery *query);
+void                gst_video_context_query_parse_value (GstQuery *query,
+                                                         const gchar **type,
+                                                         const GValue **value);
+void                gst_video_context_query_set_value   (GstQuery *query,
+                                                         const gchar *type,
+                                                         GValue *value);
+void                gst_video_context_query_set_string  (GstQuery *query,
+                                                         const gchar *type,
+                                                         const gchar *value);
+void                gst_video_context_query_set_pointer (GstQuery *query,
+                                                         const gchar *type,
+                                                         gpointer value);
+void                gst_video_context_query_set_object  (GstQuery *query,
+                                                         const gchar *type,
+                                                         GObject *value);
+
+
+
+

Description

+

+The Video Context interface enable sharing video context (such as display +name, X11 Display, VA-API Display, etc) between neighboor elements and the +application. +

+
+

Note

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

+

+

+

+
+

For Element

+

+ This interface shall be implement by group of elements that need to share + a specific video context (like VDPAU, LibVA, OpenGL elements) or by video + sink in order to let the application select appropriate display information + (like the X11 display name) when those sink are auto-plugged. +

+

+ Along with implementing the interface, elements will need to query + neighboor elements or send message to the application when preparing + the context (see gst_video_context_prepare()). They also need to reply + to the neighboors element queries, so the context can be shared without + the application help. +

+

+ Elements that are guarantied to have both upstream and downstream + neighboors element implementing the GstVideoContext (like the gloverlay + element in gst-plugins-opengl) is not required to also implement the + interface. Relying on neighboors query shall be sufficient (see + gst_video_context_run_query()). +

+

+ The query is an application query with a structure name set to + "prepare-video-context" and an array of supported video context types set + in the field named "types". This query shall be send downstream and + upstream, iterating the pads in order to find neighboors regardless of a + static (sink to src) or a dynamic (src to sink) activation. Element should + used the helpers method gst_video_context_prepare() (or + gst_video_context_run_query() if no GstVideoContext interface) to + correctly execute the query . The result is set using the query helper + functions, the structures fields name being "video-context-type" as + string and "video-context" as a GValue. +

+

+ If the query is not handled by any neighboor, the element should ask the + application using the "prepare-video-context" message. The application + may then use the interface to set the video context information. If no + context was set, the element shall create one using default configuration. + Elements with multiple src or sink pad shall implement proper locking to + prevent the race of parallel queries being replied. +

+

+ Well known video-context are: "x11-display-name" a string representing the + X11 display to use, "x11-display" the X11 Display structure, "va-display", + the VADisplay structure and more. +

+
+

+

+

+

+
+

For Application

+

+ In the case there is no neighboor element with video context to share, + the element will first turn toward the application, by sending a + "prepare-video-context" message. This message is sent along with a list + of supported display types. The application can optionally reply to this + message by calling appropriate setter through the GstVideoContext + interface. If the application supports more then one video context type, + it should choose the first one to occure in the supported list. It's + important to remember that the message is delivered from the streaming + thread, and appropriate locking should be considered. If the application + does not have a video context to share, the element will simply allocate + one base on default settings. Usually, only applications using OpenGL + base sink, or running on special X11 display need to share a video context. +

+
+

Note

+ Applications sharing X11 Display structure should always initialize the + X11 threading support using XInitThreads() as GStreamer will need to + manipulate the display from a separeate threads. +
+

+

+
+

Example using ClutterVideoGstVideoSink

+

+ This example is for user of ClutterGstVideoSink element, the + ClutterGstPlayer object transparently handle this. +

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
#if CLUTTER_WINDOWING_X11
+static GstBusSyncReply
+on_sync_message (GstBus * bus, GstMessage * message, gpointer user_data)
+{
+  Display *display = user_data;
+  GstVideoContext *context;
+  const gchar **types;
+
+  if (gst_video_context_message_parse_prepare (message, &types, &context)) {
+    gint i;
+
+    for (i = 0; types[i]; i++) {
+
+      if (!strcmp(types[i], "x11-display")) {
+        gst_video_context_set_context_pointer (context, "x11-display", display);
+      }
+      else if (!strcmp(types[i], "x11-display-name")) {
+        gst_video_context_set_context_string (context, "x11-display-name",
+            DisplayString (display));
+      } else {
+        continue;
+      }
+
+      gst_message_unref (message);
+      return GST_BUS_DROP;
+    }
+  }
+
+  return GST_BUS_PASS;
+}
+#endif
+
+gint
+main (gint argc, gchar **argv)
+{
+  GstBin *pipeline;
+  GstBus *bus;
+
+  ...
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+
+  #if CLUTTER_WINDOWING_X11
+  gst_bus_set_sync_handler (priv->bus, on_sync_message,
+      clutter_x11_get_default_display ());
+  #endif
+
+  gst_object_unref (GST_OBJECT (priv->bus));
+
+  ...
+}
+
+ +
+
+

+

+
+
+

Details

+
+

GST_IS_VIDEO_CONTEXT()

+
#define GST_IS_VIDEO_CONTEXT(obj)           (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_CONTEXT))
+
+
+
+
+

GstVideoContext

+
typedef struct _GstVideoContext GstVideoContext;
+

+Opaque GstVideoContext data structure. +

+
+
+
+

struct GstVideoContextInterface

+
struct GstVideoContextInterface {
+  GTypeInterface parent;
+
+  /* virtual functions */
+  void (*set_context) (GstVideoContext * context,
+                       const gchar * type,
+                       const GValue * value);
+};
+
+

+GstVideoContextInterface interface. +

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

GTypeInterface parent;

parent interface type.

set_context ()

vmethod to set video context.
+
+
+
+

gst_video_context_iface_get_type ()

+
GType               gst_video_context_iface_get_type    (void);
+
+
+
+

gst_video_context_set_context ()

+
void                gst_video_context_set_context       (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         const GValue *value);
+

+This is a wrapper for the set_context() virtual method. It is suggested to +use one of the helpers to avoid having to manipulate GValue +

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

context :

an element implementing GstVideoContext +

type :

the type of display being set

value :

a GValue containing the context
+
+
+
+

gst_video_context_set_context_string ()

+
void                gst_video_context_set_context_string
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         const gchar *value);
+

+This helper is commonly used for setting video context represented by a +string like the X11 display name ("x11-display-name")/ +

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

context :

an element implementing GstVideoContext +

type :

the type of display being set

string :

a string representing the video context
+
+
+
+

gst_video_context_set_context_pointer ()

+
void                gst_video_context_set_context_pointer
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         gpointer value);
+

+This helper is used for setting video context using a pointer, typically to +a structure like the X11 Display ("x11-display") or the VADisplay +("vaapi-display"). +

+
+

Note

+ Users of X11 Display should ensure that XInitThreads() was called before + opening the display. +
+

+

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

context :

an element implementing GstVideoContext +

type :

the type of display being set

pointer :

a pointer to the video context
+
+
+
+

gst_video_context_set_context_object ()

+
void                gst_video_context_set_context_object
+                                                        (GstVideoContext *context,
+                                                         const gchar *type,
+                                                         GObject *value);
+

+This is for video context that are GObject, this helper allow taking +benifit of the GObject refcounting. It is particularly handy for element +to have refcounting as the order in which element will stop using the +display is not defined. +

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

context :

an element implementing GstVideoContext +

type :

the type of display being set

object :

a GObject resenting the display
+
+
+
+

gst_video_context_prepare ()

+
void                gst_video_context_prepare           (GstVideoContext *context,
+                                                         const gchar **types);
+

+This method run "prepare-video-context" custom query dowstream, and +upstream. If * the query has a reply, it sets the context value using +gst_video_context_set_context(). Otherwise, it sends a +"prepare-video-context" message to the application. The element can then +continue video context initialization. +

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

context :

an element implementing GstVideoContext interface

types :

an array of supported types, prefered first
+
+
+
+

gst_video_context_message_parse_prepare ()

+
gboolean            gst_video_context_message_parse_prepare
+                                                        (GstMessage *message,
+                                                         const gchar ***types,
+                                                         GstVideoContext **ctx);
+

+This helper shall be used by application to simply handling of the +"prepare-video-context" message. +

+

+Rerturns: FALSE is the message was not valid "prepare-video-context" + element message, otherwise TRUE with types and context set. +

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

message :

a GstMessage +

types :

return value for supported types

context :

return value for the element the implements GstVideoContext +
+
+
+
+

gst_video_context_query_new ()

+
GstQuery *          gst_video_context_query_new         (const gchar **types);
+

+Create a new custom GstQuery with structure name "prepare-video-context". +

+
++ + + + +

types :

a string array of video context types
+
+
+
+

gst_video_context_run_query ()

+
gboolean            gst_video_context_run_query         (GstElement *element,
+                                                         GstQuery *query);
+

+This helper runs the query on each downstream, then upstream pads in an +element. This is called by gst_video_context_prepare(). This method is only +used directly within elements that are required to have two neighboors +elements with appropriate video context. This would be the case of +specialized filters that only manipulate non-raw buffers (e.g. +gldeinterlace). Those elements do not have to implement GstVideoContext +interface. +

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

element :

a GstElement +

query :

a GstQuery +
+
+
+
+

gst_video_context_query_get_supported_types ()

+
const gchar **      gst_video_context_query_get_supported_types
+                                                        (GstQuery *query);
+
++ + + + + + + + + + +

query :

a GstQuery +

Returns :

An array of supported video context types
+
+
+
+

gst_video_context_query_parse_value ()

+
void                gst_video_context_query_parse_value (GstQuery *query,
+                                                         const gchar **type,
+                                                         const GValue **value);
+

+Helper to extract the video context type and value from a GstQuery. +

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

query :

a GstQuery +

type :

return video context type

value :

return video context GValue +
+
+
+
+

gst_video_context_query_set_value ()

+
void                gst_video_context_query_set_value   (GstQuery *query,
+                                                         const gchar *type,
+                                                         GValue *value);
+

+Helper to set the video context as a GValue inside the GstQuery. +

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

query :

a GstQuery +

type :

the video context type

value :

a GValue set with video context
+
+
+
+

gst_video_context_query_set_string ()

+
void                gst_video_context_query_set_string  (GstQuery *query,
+                                                         const gchar *type,
+                                                         const gchar *value);
+

+Helper to set the video context as a string inside the GstQuery. +

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

query :

a GstQuery +

type :

the video context type

value :

a string representing the video context
+
+
+
+

gst_video_context_query_set_pointer ()

+
void                gst_video_context_query_set_pointer (GstQuery *query,
+                                                         const gchar *type,
+                                                         gpointer value);
+

+Helper to set the video context as a gpointer inside the GstQuery. +

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

query :

a GstQuery +

type :

the video context type

value :

a gpointer representing the video context
+
+
+
+

gst_video_context_query_set_object ()

+
void                gst_video_context_query_set_object  (GstQuery *query,
+                                                         const gchar *type,
+                                                         GObject *value);
+

+Helper to set the video context as a GObject inside the GstQuery. +

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

query :

a GstQuery +

type :

the video context type

value :

a GObject representing the video context
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-gstbasevideoutils.html b/docs/libs/html/gst-plugins-bad-libs-gstbasevideoutils.html new file mode 100644 index 0000000..2339bad --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-gstbasevideoutils.html @@ -0,0 +1,96 @@ + + + + +gstbasevideoutils + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

gstbasevideoutils

+

gstbasevideoutils

+
+
+

Synopsis

+
gboolean            gst_base_video_rawvideo_convert     (GstVideoState *state,
+                                                         GstFormat src_format,
+                                                         gint64 src_value,
+                                                         GstFormat *dest_format,
+                                                         gint64 *dest_value);
+gboolean            gst_base_video_encoded_video_convert
+                                                        (GstVideoState *state,
+                                                         gint64 bytes,
+                                                         gint64 time,
+                                                         GstFormat src_format,
+                                                         gint64 src_value,
+                                                         GstFormat *dest_format,
+                                                         gint64 *dest_value);
+GstClockTime        gst_video_state_get_timestamp       (const GstVideoState *state,
+                                                         GstSegment *segment,
+                                                         int frame_number);
+
+
+
+

Description

+
+
+

Details

+
+

gst_base_video_rawvideo_convert ()

+
gboolean            gst_base_video_rawvideo_convert     (GstVideoState *state,
+                                                         GstFormat src_format,
+                                                         gint64 src_value,
+                                                         GstFormat *dest_format,
+                                                         gint64 *dest_value);
+
+
+
+

gst_base_video_encoded_video_convert ()

+
gboolean            gst_base_video_encoded_video_convert
+                                                        (GstVideoState *state,
+                                                         gint64 bytes,
+                                                         gint64 time,
+                                                         GstFormat src_format,
+                                                         gint64 src_value,
+                                                         GstFormat *dest_format,
+                                                         gint64 *dest_value);
+
+
+
+

gst_video_state_get_timestamp ()

+
GstClockTime        gst_video_state_get_timestamp       (const GstVideoState *state,
+                                                         GstSegment *segment,
+                                                         int frame_number);
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-h264parser.html b/docs/libs/html/gst-plugins-bad-libs-h264parser.html new file mode 100644 index 0000000..9148f24 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-h264parser.html @@ -0,0 +1,1721 @@ + + + + +h264parser + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

h264parser

+

h264parser — Convenience library for h264 video +bitstream parsing.

+
+
+

Synopsis

+
+#include <gst/codecparsers/gsth264parser.h>
+
+#define             GST_H264_MAX_SPS_COUNT
+#define             GST_H264_MAX_PPS_COUNT
+#define             GST_H264_IS_P_SLICE                 (slice)
+#define             GST_H264_IS_B_SLICE                 (slice)
+#define             GST_H264_IS_I_SLICE                 (slice)
+#define             GST_H264_IS_SP_SLICE                (slice)
+#define             GST_H264_IS_SI_SLICE                (slice)
+enum                GstH264NalUnitType;
+enum                GstH264ParserResult;
+enum                GstH264SEIPayloadType;
+enum                GstH264SEIPicStructType;
+enum                GstH264SliceType;
+struct              GstH264NalParser;
+struct              GstH264NalUnit;
+struct              GstH264SPS;
+struct              GstH264PPS;
+struct              GstH264HRDParams;
+struct              GstH264VUIParams;
+struct              GstH264DecRefPicMarking;
+struct              GstH264RefPicMarking;
+struct              GstH264PredWeightTable;
+struct              GstH264SliceHdr;
+struct              GstH264ClockTimestamp;
+struct              GstH264PicTiming;
+struct              GstH264BufferingPeriod;
+struct              GstH264SEIMessage;
+GstH264ParserResult gst_h264_parser_identify_nalu       (GstH264NalParser *nalparser,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size,
+                                                         GstH264NalUnit *nalu);
+GstH264ParserResult gst_h264_parser_identify_nalu_avc   (GstH264NalParser *nalparser,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size,
+                                                         guint8 nal_length_size,
+                                                         GstH264NalUnit *nalu);
+GstH264ParserResult gst_h264_parser_parse_nal           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu);
+GstH264ParserResult gst_h264_parser_parse_slice_hdr     (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SliceHdr *slice,
+                                                         gboolean parse_pred_weight_table,
+                                                         gboolean parse_dec_ref_pic_marking);
+GstH264ParserResult gst_h264_parser_parse_sps           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SPS *sps,
+                                                         gboolean parse_vui_params);
+GstH264ParserResult gst_h264_parser_parse_pps           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264PPS *pps);
+GstH264ParserResult gst_h264_parser_parse_sei           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SEIMessage *sei);
+GstH264NalParser *  gst_h264_nal_parser_new             (void);
+void                gst_h264_nal_parser_free            (GstH264NalParser *nalparser);
+GstH264ParserResult gst_h264_parse_sps                  (GstH264NalUnit *nalu,
+                                                         GstH264SPS *sps,
+                                                         gboolean parse_vui_params);
+GstH264ParserResult gst_h264_parse_pps                  (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264PPS *pps);
+
+
+
+

Description

+

+It offers you bitstream parsing in AVC mode or not. To identify Nals in a bitstream and +parse its headers, you should call: +

+
+

+

+

+Then, depending on the GstH264NalUnitType of the newly parsed GstH264NalUnit, you should +call the differents functions to parse the structure: +

+ +

+

+

+Note: You should always call gst_h264_parser_parse_nal if you don't actually need +GstH264NalUnitType to be parsed for your personnal use, in order to guarantee that the +GstH264NalParser is always up to date. +

+

+For more details about the structures, look at the ITU-T H.264 and ISO/IEC 14496-10 – MPEG-4 +Part 10 specifications, you can download them from: +

+

+

+
    +
  • + ITU-T H.264: http://www.itu.int/rec/T-REC-H.264 +
  • +
  • + ISO/IEC 14496-10: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=56538 +
  • +
+

+

+
+
+

Details

+
+

GST_H264_MAX_SPS_COUNT

+
#define GST_H264_MAX_SPS_COUNT   32
+
+
+
+
+

GST_H264_MAX_PPS_COUNT

+
#define GST_H264_MAX_PPS_COUNT   256
+
+
+
+
+

GST_H264_IS_P_SLICE()

+
#define GST_H264_IS_P_SLICE(slice)  (((slice)->type % 5) == GST_H264_P_SLICE)
+
+
+
+
+

GST_H264_IS_B_SLICE()

+
#define GST_H264_IS_B_SLICE(slice)  (((slice)->type % 5) == GST_H264_B_SLICE)
+
+
+
+
+

GST_H264_IS_I_SLICE()

+
#define GST_H264_IS_I_SLICE(slice)  (((slice)->type % 5) == GST_H264_I_SLICE)
+
+
+
+
+

GST_H264_IS_SP_SLICE()

+
#define GST_H264_IS_SP_SLICE(slice) (((slice)->type % 5) == GST_H264_SP_SLICE)
+
+
+
+
+

GST_H264_IS_SI_SLICE()

+
#define GST_H264_IS_SI_SLICE(slice) (((slice)->type % 5) == GST_H264_SI_SLICE)
+
+
+
+
+

enum GstH264NalUnitType

+
typedef enum {
+  GST_H264_NAL_UNKNOWN      = 0,
+  GST_H264_NAL_SLICE        = 1,
+  GST_H264_NAL_SLICE_DPA    = 2,
+  GST_H264_NAL_SLICE_DPB    = 3,
+  GST_H264_NAL_SLICE_DPC    = 4,
+  GST_H264_NAL_SLICE_IDR    = 5,
+  GST_H264_NAL_SEI          = 6,
+  GST_H264_NAL_SPS          = 7,
+  GST_H264_NAL_PPS          = 8,
+  GST_H264_NAL_AU_DELIMITER = 9,
+  GST_H264_NAL_SEQ_END      = 10,
+  GST_H264_NAL_STREAM_END   = 11,
+  GST_H264_NAL_FILLER_DATA  = 12
+} GstH264NalUnitType;
+
+

+Indicates the type of H264 Nal Units +

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

GST_H264_NAL_UNKNOWN

Unknown nal type +

GST_H264_NAL_SLICE

Slice nal +

GST_H264_NAL_SLICE_DPA

DPA slice nal +

GST_H264_NAL_SLICE_DPB

DPB slice nal +

GST_H264_NAL_SLICE_DPC

DPC slice nal +

GST_H264_NAL_SLICE_IDR

DPR slice nal +

GST_H264_NAL_SEI

Supplemental enhancement information (SEI) nal unit +

GST_H264_NAL_SPS

Sequence parameter set (SPS) nal unit +

GST_H264_NAL_PPS

Picture parameter set (PPS) nal unit +

GST_H264_NAL_AU_DELIMITER

Access unit (AU) delimiter nal unit +

GST_H264_NAL_SEQ_END

End of sequence nal unit +

GST_H264_NAL_STREAM_END

End of stream nal unit +

GST_H264_NAL_FILLER_DATA

Filler data nal lunit +
+
+
+
+

enum GstH264ParserResult

+
typedef enum {
+  GST_H264_PARSER_OK,
+  GST_H264_PARSER_BROKEN_DATA,
+  GST_H264_PARSER_BROKEN_LINK,
+  GST_H264_PARSER_ERROR,
+  GST_H264_PARSER_NO_NAL,
+  GST_H264_PARSER_NO_NAL_END
+} GstH264ParserResult;
+
+

+The result of parsing H264 data. +

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

GST_H264_PARSER_OK

The parsing succeded +

GST_H264_PARSER_BROKEN_DATA

The data to parse is broken +

GST_H264_PARSER_BROKEN_LINK

The link to structure needed for the parsing couldn't be found +

GST_H264_PARSER_ERROR

An error accured when parsing +

GST_H264_PARSER_NO_NAL

No nal found during the parsing +

GST_H264_PARSER_NO_NAL_END

Start of the nal found, but not the end. +
+
+
+
+

enum GstH264SEIPayloadType

+
typedef enum {
+  GST_H264_SEI_BUF_PERIOD = 0,
+  GST_H264_SEI_PIC_TIMING = 1
+      /* and more...  */
+} GstH264SEIPayloadType;
+
+

+The type of SEI message. +

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

GST_H264_SEI_BUF_PERIOD

Buffering Period SEI Message +

GST_H264_SEI_PIC_TIMING

Picture Timing SEI Message +... +
+
+
+
+

enum GstH264SEIPicStructType

+
typedef enum {
+  GST_H264_SEI_PIC_STRUCT_FRAME             = 0,
+  GST_H264_SEI_PIC_STRUCT_TOP_FIELD         = 1,
+  GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD      = 2,
+  GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM        = 3,
+  GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP        = 4,
+  GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP    = 5,
+  GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6,
+  GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING    = 7,
+  GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING    = 8
+} GstH264SEIPicStructType;
+
+

+SEI pic_struct type +

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

GST_H264_SEI_PIC_STRUCT_FRAME

Picture is a frame +

GST_H264_SEI_PIC_STRUCT_TOP_FIELD

Top field of frame +

GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD

Botom field of frame +

GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM

Top bottom field of frame +

GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP

bottom top field of frame +

GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP

top bottom top field of frame +

GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM

bottom top bottom field of frame +

GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING

indicates that the frame should + be displayed two times consecutively +

GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING

indicates that the frame should be + displayed three times consecutively +
+
+
+
+

enum GstH264SliceType

+
typedef enum {
+  GST_H264_P_SLICE    = 0,
+  GST_H264_B_SLICE    = 1,
+  GST_H264_I_SLICE    = 2,
+  GST_H264_SP_SLICE   = 3,
+  GST_H264_SI_SLICE   = 4,
+  GST_H264_S_P_SLICE  = 5,
+  GST_H264_S_B_SLICE  = 6,
+  GST_H264_S_I_SLICE  = 7,
+  GST_H264_S_SP_SLICE = 8,
+  GST_H264_S_SI_SLICE = 9
+} GstH264SliceType;
+
+

+Type of Picture slice +

+
+
+
+

struct GstH264NalParser

+
struct GstH264NalParser {
+};
+
+

+H264 NAL Parser (opaque structure). +

+
+
+
+

struct GstH264NalUnit

+
struct GstH264NalUnit {
+  guint16 ref_idc;
+  guint16 type;
+
+  /* calculated values */
+  guint8 idr_pic_flag;
+  guint size;
+  guint offset;
+  guint sc_offset;
+  gboolean valid;
+
+  guint8 *data;
+};
+
+

+Structure defining the Nal unit headers +

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

guint16 ref_idc;

not equal to 0 specifies that the content of the NAL unit contains a sequence +parameter set, a sequence * parameter set extension, a subset sequence parameter set, a +picture parameter set, a slice of a reference picture, a slice data partition of a +reference picture, or a prefix NAL unit preceding a slice of a reference picture.

guint16 type;

A GstH264NalUnitType +

guint8 idr_pic_flag;

calculated idr_pic_flag

guint size;

The size of the nal unit starting from offset +

guint offset;

The offset of the actual start of the nal unit

guint sc_offset;

The offset of the start code of the nal unit

gboolean valid;

If the nal unit is valid, which mean it has +already been parsed

guint8 *data;

The data from which the Nalu has been parsed
+
+
+
+

struct GstH264SPS

+
struct GstH264SPS {
+  gint id;
+
+  guint8 profile_idc;
+  guint8 constraint_set0_flag;
+  guint8 constraint_set1_flag;
+  guint8 constraint_set2_flag;
+  guint8 constraint_set3_flag;
+  guint8 level_idc;
+
+  guint8 chroma_format_idc;
+  guint8 separate_colour_plane_flag;
+  guint8 bit_depth_luma_minus8;
+  guint8 bit_depth_chroma_minus8;
+  guint8 qpprime_y_zero_transform_bypass_flag;
+
+  guint8 scaling_matrix_present_flag;
+  guint8 scaling_lists_4x4[6][16];
+  guint8 scaling_lists_8x8[6][64];
+
+  guint8 log2_max_frame_num_minus4;
+  guint8 pic_order_cnt_type;
+
+  /* if pic_order_cnt_type == 0 */
+  guint8 log2_max_pic_order_cnt_lsb_minus4;
+
+  /* else if pic_order_cnt_type == 1 */
+  guint8 delta_pic_order_always_zero_flag;
+  gint32 offset_for_non_ref_pic;
+  gint32 offset_for_top_to_bottom_field;
+  guint8 num_ref_frames_in_pic_order_cnt_cycle;
+  gint32 offset_for_ref_frame[255];
+
+  guint32 num_ref_frames;
+  guint8 gaps_in_frame_num_value_allowed_flag;
+  guint32 pic_width_in_mbs_minus1;
+  guint32 pic_height_in_map_units_minus1;
+  guint8 frame_mbs_only_flag;
+
+  guint8 mb_adaptive_frame_field_flag;
+
+  guint8 direct_8x8_inference_flag;
+
+  guint8 frame_cropping_flag;
+
+  /* if frame_cropping_flag */
+  guint32 frame_crop_left_offset;
+  guint32 frame_crop_right_offset;
+  guint32 frame_crop_top_offset;
+  guint32 frame_crop_bottom_offset;
+
+  guint8 vui_parameters_present_flag;
+  /* if vui_parameters_present_flag */
+ GstH264VUIParams vui_parameters;
+
+  /* calculated values */
+  guint8 chroma_array_type;
+  guint32 max_frame_num;
+  gint width, height;
+  gint fps_num, fps_den;
+  gboolean valid;
+};
+
+

+H264 Sequence Parameter Set (SPS) +

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

gint id;

The ID of the sequence parameter set

guint8 profile_idc;

indicate the profile to which the coded video sequence conforms

guint8 constraint_set0_flag;

guint8 constraint_set1_flag;

guint8 constraint_set2_flag;

guint8 constraint_set3_flag;

guint8 level_idc;

guint8 chroma_format_idc;

guint8 separate_colour_plane_flag;

guint8 bit_depth_luma_minus8;

guint8 bit_depth_chroma_minus8;

guint8 qpprime_y_zero_transform_bypass_flag;

guint8 scaling_matrix_present_flag;

guint8 scaling_lists_4x4[6][16];

guint8 scaling_lists_8x8[6][64];

guint8 log2_max_frame_num_minus4;

guint8 pic_order_cnt_type;

guint8 log2_max_pic_order_cnt_lsb_minus4;

guint8 delta_pic_order_always_zero_flag;

gint32 offset_for_non_ref_pic;

gint32 offset_for_top_to_bottom_field;

guint8 num_ref_frames_in_pic_order_cnt_cycle;

gint32 offset_for_ref_frame[255];

guint32 num_ref_frames;

guint8 gaps_in_frame_num_value_allowed_flag;

guint32 pic_width_in_mbs_minus1;

guint32 pic_height_in_map_units_minus1;

guint8 frame_mbs_only_flag;

guint8 mb_adaptive_frame_field_flag;

guint8 direct_8x8_inference_flag;

guint8 frame_cropping_flag;

guint32 frame_crop_left_offset;

guint32 frame_crop_right_offset;

guint32 frame_crop_top_offset;

guint32 frame_crop_bottom_offset;

guint8 vui_parameters_present_flag;

GstH264VUIParams vui_parameters;

guint8 chroma_array_type;

guint32 max_frame_num;

gint width;

gint height;

gint fps_num;

gint fps_den;

gboolean valid;

+
+
+
+

struct GstH264PPS

+
struct GstH264PPS {
+  gint id;
+
+  GstH264SPS *sequence;
+
+  guint8 entropy_coding_mode_flag;
+  guint8 pic_order_present_flag;
+
+  guint32 num_slice_groups_minus1;
+
+  /* if num_slice_groups_minus1 > 0 */
+  guint8 slice_group_map_type;
+  /* and if slice_group_map_type == 0 */
+  guint32 run_length_minus1[8];
+  /* or if slice_group_map_type == 2 */
+  guint32 top_left[8];
+  guint32 bottom_right[8];
+  /* or if slice_group_map_type == (3, 4, 5) */
+  guint8 slice_group_change_direction_flag;
+  guint32 slice_group_change_rate_minus1;
+  /* or if slice_group_map_type == 6 */
+  guint32 pic_size_in_map_units_minus1;
+  guint8 *slice_group_id;
+
+  guint8 num_ref_idx_l0_active_minus1;
+  guint8 num_ref_idx_l1_active_minus1;
+  guint8 weighted_pred_flag;
+  guint8 weighted_bipred_idc;
+  gint8 pic_init_qp_minus26;
+  gint8 pic_init_qs_minus26;
+  gint8 chroma_qp_index_offset;
+  guint8 deblocking_filter_control_present_flag;
+  guint8 constrained_intra_pred_flag;
+  guint8 redundant_pic_cnt_present_flag;
+
+  guint8 transform_8x8_mode_flag;
+
+  guint8 scaling_lists_4x4[6][16];
+  guint8 scaling_lists_8x8[6][64];
+
+  guint8 second_chroma_qp_index_offset;
+
+  gboolean valid;
+};
+
+

+H264 Picture Parameter Set +

+
+
+
+

struct GstH264HRDParams

+
struct GstH264HRDParams {
+  guint8 cpb_cnt_minus1;
+  guint8 bit_rate_scale;
+  guint8 cpb_size_scale;
+
+  guint32 bit_rate_value_minus1[32];
+  guint32 cpb_size_value_minus1[32];
+  guint8 cbr_flag[32];
+
+  guint8 initial_cpb_removal_delay_length_minus1;
+  guint8 cpb_removal_delay_length_minus1;
+  guint8 dpb_output_delay_length_minus1;
+  guint8 time_offset_length;
+};
+
+

+Defines the HRD parameters +

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

guint8 cpb_cnt_minus1;

plus 1 specifies the number of alternative +CPB specifications in the bitstream

guint8 bit_rate_scale;

specifies the maximum input bit rate of the +SchedSelIdx-th CPB

guint8 cpb_size_scale;

specifies the CPB size of the SchedSelIdx-th CPB +guint32 bit_rate_value_minus1: specifies the maximum input bit rate for the +SchedSelIdx-th CPB

guint32 bit_rate_value_minus1[32];

guint32 cpb_size_value_minus1[32];

is used together with cpb_size_scale to specify the +SchedSelIdx-th CPB size

guint8 cbr_flag[32];

Specifies if running in itermediate bitrate mode or constant

guint8 initial_cpb_removal_delay_length_minus1;

specifies the length in bits of +the cpb_removal_delay syntax element

guint8 cpb_removal_delay_length_minus1;

specifies the length in bits of the +dpb_output_delay syntax element

guint8 dpb_output_delay_length_minus1;

>0 specifies the length in bits of the time_offset syntax element. +=0 specifies that the time_offset syntax element is not present

guint8 time_offset_length;

Length of the time offset
+
+
+
+

struct GstH264VUIParams

+
struct GstH264VUIParams {
+  guint8 aspect_ratio_info_present_flag;
+  guint8 aspect_ratio_idc;
+  /* if aspect_ratio_idc == 255 */
+  guint16 sar_width;
+  guint16 sar_height;
+
+  guint8 overscan_info_present_flag;
+  /* if overscan_info_present_flag */
+  guint8 overscan_appropriate_flag;
+
+  guint8 video_signal_type_present_flag;
+  guint8 video_format;
+  guint8 video_full_range_flag;
+  guint8 colour_description_present_flag;
+  guint8 colour_primaries;
+  guint8 transfer_characteristics;
+  guint8 matrix_coefficients;
+
+  guint8 chroma_loc_info_present_flag;
+  guint8 chroma_sample_loc_type_top_field;
+  guint8 chroma_sample_loc_type_bottom_field;
+
+  guint8 timing_info_present_flag;
+  /* if timing_info_present_flag */
+  guint32 num_units_in_tick;
+  guint32 time_scale;
+  guint8 fixed_frame_rate_flag;
+
+  guint8 nal_hrd_parameters_present_flag;
+  /* if nal_hrd_parameters_present_flag */
+  GstH264HRDParams nal_hrd_parameters;
+
+  guint8 vcl_hrd_parameters_present_flag;
+  /* if nal_hrd_parameters_present_flag */
+  GstH264HRDParams vcl_hrd_parameters;
+
+  guint8 low_delay_hrd_flag;
+  guint8 pic_struct_present_flag;
+
+  guint8 bitstream_restriction_flag;
+  /*  if bitstream_restriction_flag */
+  guint8 motion_vectors_over_pic_boundaries_flag;
+  guint32 max_bytes_per_pic_denom;
+  guint32 max_bits_per_mb_denom;
+  guint32 log2_max_mv_length_horizontal;
+  guint32 log2_max_mv_length_vertical;
+  guint32 num_reorder_frames;
+  guint32 max_dec_frame_buffering;
+};
+
+

+The structure representing the VUI parameters. +

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

guint8 aspect_ratio_info_present_flag;

+TRUE specifies that aspect_ratio_idc is present. +FALSE specifies that aspect_ratio_idc is not present +aspect_ratio_idc specifies the value of the sample aspect ratio of the luma samples +sar_width indicates the horizontal size of the sample aspect ratio +sar_height indicates the vertical size of the sample aspect ratio

guint8 aspect_ratio_idc;

guint16 sar_width;

guint16 sar_height;

guint8 overscan_info_present_flag;

+TRUE overscan_appropriate_flag is present FALSE otherwize

guint8 overscan_appropriate_flag;

+TRUE indicates that the cropped decoded pictures +output are suitable for display using overscan. FALSE the cropped decoded pictures +output contain visually important information

guint8 video_signal_type_present_flag;

+TRUE specifies that video_format, video_full_range_flag and +colour_description_present_flag are present.

guint8 video_format;

indicates the representation of the picture

guint8 video_full_range_flag;

indicates the black level and range of the luma and chroma signals

guint8 colour_description_present_flag;

+TRUE specifies that colour_primaries, +transfer_characteristics and matrix_coefficients are present

guint8 colour_primaries;

indicates the chromaticity coordinates of the source primaries

guint8 transfer_characteristics;

indicates the opto-electronic transfer characteristic

guint8 matrix_coefficients;

describes the matrix coefficients used in deriving luma and chroma signals

guint8 chroma_loc_info_present_flag;

+TRUE specifies that chroma_sample_loc_type_top_field and +chroma_sample_loc_type_bottom_field are present, FALSE otherwize

guint8 chroma_sample_loc_type_top_field;

specify the location of chroma for top field +chroma_sample_loc_type_bottom_field specify the location of chroma for bottom field

guint8 chroma_sample_loc_type_bottom_field;

guint8 timing_info_present_flag;

+TRUE specifies that num_units_in_tick, +time_scale and fixed_frame_rate_flag are present in the bitstream

guint32 num_units_in_tick;

is the number of time units of a clock operating at the frequency time_scale Hz +time_scale: is the number of time units that pass in one second

guint32 time_scale;

guint8 fixed_frame_rate_flag;

+TRUE indicates that the temporal distance between the HRD output times +of any two consecutive pictures in output order is constrained as specified in the spec, FALSE +otherwize.

guint8 nal_hrd_parameters_present_flag;

+TRUE if nal hrd parameters present in the bitstream

GstH264HRDParams nal_hrd_parameters;

guint8 vcl_hrd_parameters_present_flag;

+TRUE if nal vlc hrd parameters present in the bitstream

GstH264HRDParams vcl_hrd_parameters;

guint8 low_delay_hrd_flag;

specifies the HRD operational mode

guint8 pic_struct_present_flag;

+TRUE specifies that picture timing SEI messages are present or not

guint8 bitstream_restriction_flag;

+TRUE specifies that the following coded video sequence bitstream restriction +parameters are present

guint8 motion_vectors_over_pic_boundaries_flag;

+FALSE indicates that no sample outside the +picture boundaries and no sample at a fractional sample position, TRUE indicates that one or more +samples outside picture boundaries may be used in inter prediction

guint32 max_bytes_per_pic_denom;

indicates a number of bytes not exceeded by the sum of the sizes of +the VCL NAL units associated with any coded picture in the coded video sequence.

guint32 max_bits_per_mb_denom;

indicates the maximum number of coded bits of macroblock_layer

guint32 log2_max_mv_length_horizontal;

indicate the maximum absolute value of a decoded horizontal +motion vector component

guint32 log2_max_mv_length_vertical;

indicate the maximum absolute value of a decoded vertical +motion vector component

guint32 num_reorder_frames;

indicates the maximum number of frames, complementary field pairs, +or non-paired fields that precede any frame,

guint32 max_dec_frame_buffering;

specifies the required size of the HRD decoded picture buffer in +units of frame buffers.
+
+
+
+

struct GstH264DecRefPicMarking

+
struct GstH264DecRefPicMarking {
+  /* if slice->nal_unit.IdrPicFlag */
+  guint8 no_output_of_prior_pics_flag;
+  guint8 long_term_reference_flag;
+
+  guint8 adaptive_ref_pic_marking_mode_flag;
+  GstH264RefPicMarking ref_pic_marking[10];
+  guint8 n_ref_pic_marking;
+};
+
+
+
+
+

struct GstH264RefPicMarking

+
struct GstH264RefPicMarking {
+  guint8 memory_management_control_operation;
+
+  guint32 difference_of_pic_nums_minus1;
+  guint32 long_term_pic_num;
+  guint32 long_term_frame_idx;
+  guint32 max_long_term_frame_idx_plus1;
+};
+
+
+
+
+

struct GstH264PredWeightTable

+
struct GstH264PredWeightTable {
+  guint8 luma_log2_weight_denom;
+  guint8 chroma_log2_weight_denom;
+
+  gint16 luma_weight_l0[32];
+  gint8 luma_offset_l0[32];
+
+  /* if seq->ChromaArrayType != 0 */
+  gint16 chroma_weight_l0[32][2];
+  gint8 chroma_offset_l0[32][2];
+
+  /* if slice->slice_type % 5 == 1 */
+  gint16 luma_weight_l1[32];
+  gint8 luma_offset_l1[32];
+
+  /* and if seq->ChromaArrayType != 0 */
+  gint16 chroma_weight_l1[32][2];
+  gint8 chroma_offset_l1[32][2];
+};
+
+
+
+
+

struct GstH264SliceHdr

+
struct GstH264SliceHdr {
+  guint32 first_mb_in_slice;
+  guint32 type;
+  GstH264PPS *pps;
+
+  /* if seq->separate_colour_plane_flag */
+  guint8 colour_plane_id;
+
+  guint16 frame_num;
+
+  guint8 field_pic_flag;
+  guint8 bottom_field_flag;
+
+  /* if nal_unit.type == 5 */
+  guint16 idr_pic_id;
+
+  /* if seq->pic_order_cnt_type == 0 */
+  guint16 pic_order_cnt_lsb;
+  /* if seq->pic_order_present_flag && !field_pic_flag */
+  gint32 delta_pic_order_cnt_bottom;
+
+  gint32 delta_pic_order_cnt[2];
+  guint8 redundant_pic_cnt;
+
+  /* if slice_type == B_SLICE */
+  guint8 direct_spatial_mv_pred_flag;
+
+  guint8 num_ref_idx_l0_active_minus1;
+  guint8 num_ref_idx_l1_active_minus1;
+
+  guint8 ref_pic_list_modification_flag_l0;
+  guint8 n_ref_pic_list_modification_l0;
+  GstH264RefPicListModification ref_pic_list_modification_l0[32];
+  guint8 ref_pic_list_modification_flag_l1;
+  guint8 n_ref_pic_list_modification_l1;
+  GstH264RefPicListModification ref_pic_list_modification_l1[32];
+
+  GstH264PredWeightTable pred_weight_table;
+  /* if nal_unit.ref_idc != 0 */
+  GstH264DecRefPicMarking dec_ref_pic_marking;
+
+  guint8 cabac_init_idc;
+  gint8 slice_qp_delta;
+  gint8 slice_qs_delta;
+
+  guint8 disable_deblocking_filter_idc;
+  gint8 slice_alpha_c0_offset_div2;
+  gint8 slice_beta_offset_div2;
+
+  guint16 slice_group_change_cycle;
+
+  /* calculated values */
+  guint32 max_pic_num;
+  gboolean valid;
+
+  /* Size of the slice_header() in bits */
+  guint header_size;
+};
+
+
+
+
+

struct GstH264ClockTimestamp

+
struct GstH264ClockTimestamp {
+  guint8 ct_type;
+  guint8 nuit_field_based_flag;
+  guint8 counting_type;
+  guint8 discontinuity_flag;
+  guint8 cnt_dropped_flag;
+  guint8 n_frames;
+
+  guint8 seconds_flag;
+  guint8 seconds_value;
+
+  guint8 minutes_flag;
+  guint8 minutes_value;
+
+  guint8 hours_flag;
+  guint8 hours_value;
+
+  guint32 time_offset;
+};
+
+
+
+
+

struct GstH264PicTiming

+
struct GstH264PicTiming {
+  guint32 cpb_removal_delay;
+  guint32 dpb_output_delay;
+
+  guint8 pic_struct_present_flag;
+  /* if pic_struct_present_flag */
+  guint8 pic_struct;
+
+  guint8 clock_timestamp_flag[3];
+  GstH264ClockTimestamp clock_timestamp[3];
+};
+
+
+
+
+

struct GstH264BufferingPeriod

+
struct GstH264BufferingPeriod {
+  GstH264SPS *sps;
+
+  /* seq->vui_parameters->nal_hrd_parameters_present_flag */
+  guint8 nal_initial_cpb_removal_delay[32];
+  guint8 nal_initial_cpb_removal_delay_offset[32];
+
+  /* seq->vui_parameters->vcl_hrd_parameters_present_flag */
+  guint8 vcl_initial_cpb_removal_delay[32];
+  guint8 vcl_initial_cpb_removal_delay_offset[32];
+};
+
+
+
+
+

struct GstH264SEIMessage

+
struct GstH264SEIMessage {
+  GstH264SEIPayloadType payloadType;
+
+  union {
+    GstH264BufferingPeriod buffering_period;
+    GstH264PicTiming pic_timing;
+    /* ... could implement more */
+  };
+};
+
+
+
+
+

gst_h264_parser_identify_nalu ()

+
GstH264ParserResult gst_h264_parser_identify_nalu       (GstH264NalParser *nalparser,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size,
+                                                         GstH264NalUnit *nalu);
+

+Parses data and fills nalu from the next nalu data from data +

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

nalparser :

a GstH264NalParser +

data :

The data to parse

offset :

the offset from which to parse data +

size :

the size of data +

nalu :

The GstH264NalUnit where to store parsed nal headers

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_identify_nalu_avc ()

+
GstH264ParserResult gst_h264_parser_identify_nalu_avc   (GstH264NalParser *nalparser,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size,
+                                                         guint8 nal_length_size,
+                                                         GstH264NalUnit *nalu);
+

+Parses data and sets nalu. +

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

nalparser :

a GstH264NalParser +

data :

The data to parse, must be the beging of the Nal unit

offset :

the offset from which to parse data +

size :

the size of data +

nal_length_size :

the size in bytes of the AVC nal length prefix.

nalu :

The GstH264NalUnit where to store parsed nal headers

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_parse_nal ()

+
GstH264ParserResult gst_h264_parser_parse_nal           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu);
+

+This function should be called in the case one doesn't need to +parse a specific structure. It is necessary to do so to make +sure nalparser is up to date. +

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

nalparser :

a GstH264NalParser +

nalu :

The GstH264NalUnit to parse

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_parse_slice_hdr ()

+
GstH264ParserResult gst_h264_parser_parse_slice_hdr     (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SliceHdr *slice,
+                                                         gboolean parse_pred_weight_table,
+                                                         gboolean parse_dec_ref_pic_marking);
+

+Parses data, and fills the slice structure. +

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

nalparser :

a GstH264NalParser +

nalu :

The GST_H264_NAL_SLICE GstH264NalUnit to parse

slice :

The GstH264SliceHdr to fill.

parse_pred_weight_table :

Whether to parse the pred_weight_table or not

parse_dec_ref_pic_marking :

Whether to parse the dec_ref_pic_marking or not

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_parse_sps ()

+
GstH264ParserResult gst_h264_parser_parse_sps           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SPS *sps,
+                                                         gboolean parse_vui_params);
+

+Parses data, and fills the sps structure. +

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

nalparser :

a GstH264NalParser +

nalu :

The GST_H264_NAL_SPS GstH264NalUnit to parse

sps :

The GstH264SPS to fill.

parse_vui_params :

Whether to parse the vui_params or not

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_parse_pps ()

+
GstH264ParserResult gst_h264_parser_parse_pps           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264PPS *pps);
+

+Parses data, and fills the pps structure. +

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

nalparser :

a GstH264NalParser +

nalu :

The GST_H264_NAL_PPS GstH264NalUnit to parse

pps :

The GstH264PPS to fill.

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parser_parse_sei ()

+
GstH264ParserResult gst_h264_parser_parse_sei           (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264SEIMessage *sei);
+

+Parses data, and fills the sei structures. +

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

nalparser :

a GstH264NalParser +

nalu :

The GST_H264_NAL_SEI GstH264NalUnit to parse

sei :

The GstH264SEIMessage to fill.

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_nal_parser_new ()

+
GstH264NalParser *  gst_h264_nal_parser_new             (void);
+

+Creates a new GstH264NalParser. It should be freed with +gst_h264_nal_parser_free after use. +

+
++ + + + +

Returns :

a new GstH264NalParser +
+
+
+
+

gst_h264_nal_parser_free ()

+
void                gst_h264_nal_parser_free            (GstH264NalParser *nalparser);
+

+Frees nalparser and sets it to NULL +

+
++ + + + +

nalparser :

the GstH264NalParser to free
+
+
+
+

gst_h264_parse_sps ()

+
GstH264ParserResult gst_h264_parse_sps                  (GstH264NalUnit *nalu,
+                                                         GstH264SPS *sps,
+                                                         gboolean parse_vui_params);
+

+Parses data, and fills the sps structure. +

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

nalu :

The GST_H264_NAL_SPS GstH264NalUnit to parse

sps :

The GstH264SPS to fill.

parse_vui_params :

Whether to parse the vui_params or not

Returns :

a GstH264ParserResult +
+
+
+
+

gst_h264_parse_pps ()

+
GstH264ParserResult gst_h264_parse_pps                  (GstH264NalParser *nalparser,
+                                                         GstH264NalUnit *nalu,
+                                                         GstH264PPS *pps);
+

+Parses data, and fills the pps structure. +

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

nalparser :

a GstH264NalParser +

nalu :

The GST_H264_NAL_PPS GstH264NalUnit to parse

pps :

The GstH264PPS to fill.

Returns :

a GstH264ParserResult +
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-mpeg4parser.html b/docs/libs/html/gst-plugins-bad-libs-mpeg4parser.html new file mode 100644 index 0000000..24be150 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-mpeg4parser.html @@ -0,0 +1,1044 @@ + + + + +mpeg4parser + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpeg4parser

+

mpeg4parser — Convenience library for parsing mpeg4 part 2 video +bitstream.

+
+
+

Synopsis

+
+#include <gst/codecparsers/gstmpeg4parser.h>
+
+enum                GstMpeg4StartCode;
+enum                GstMpeg4VisualObjectType;
+enum                GstMpeg4AspectRatioInfo;
+enum                GstMpeg4ParseResult;
+enum                GstMpeg4VideoObjectCodingType;
+enum                GstMpeg4ChromaFormat;
+enum                GstMpeg4VideoObjectLayerShape;
+enum                GstMpeg4SpriteEnable;
+enum                GstMpeg4Profile;
+enum                GstMpeg4Level;
+struct              GstMpeg4VisualObjectSequence;
+struct              GstMpeg4VisualObject;
+struct              GstMpeg4VideoSignalType;
+struct              GstMpeg4VideoPlaneShortHdr;
+struct              GstMpeg4VideoObjectLayer;
+struct              GstMpeg4SpriteTrajectory;
+struct              GstMpeg4GroupOfVOP;
+struct              GstMpeg4VideoObjectPlane;
+struct              GstMpeg4Packet;
+struct              GstMpeg4VideoPacketHdr;
+GstMpeg4ParseResult gst_mpeg4_parse                     (GstMpeg4Packet *packet,
+                                                         gboolean skip_user_data,
+                                                         GstMpeg4VideoObjectPlane *vop,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_video_object_plane  (GstMpeg4VideoObjectPlane *vop,
+                                                         GstMpeg4SpriteTrajectory *sprite_trajectory,
+                                                         GstMpeg4VideoObjectLayer *vol,
+                                                         const guint8 *data,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_group_of_vop        (GstMpeg4GroupOfVOP *gov,
+                                                         const guint8 *data,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_video_object_layer  (GstMpeg4VideoObjectLayer *vol,
+                                                         GstMpeg4VisualObject *vo,
+                                                         const guint8 *data,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_visual_object       (GstMpeg4VisualObject *vo,
+                                                         GstMpeg4VideoSignalType *signal_type,
+                                                         const guint8 *data,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_visual_object_sequence
+                                                        (GstMpeg4VisualObjectSequence *vos,
+                                                         const guint8 *data,
+                                                         gsize size);
+GstMpeg4ParseResult gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr *videopackethdr,
+                                                         GstMpeg4VideoObjectLayer *vol,
+                                                         GstMpeg4VideoObjectPlane *vop,
+                                                         GstMpeg4SpriteTrajectory *sprite_trajectory,
+                                                         const guint8 *data,
+                                                         gsize size);
+
+
+
+

Description

+

+For more details about the structures, you can refer to the +specifications: ISO-IEC-14496-2_2004_MPEG4_VISUAL.pdf +

+
+
+

Details

+
+

enum GstMpeg4StartCode

+
typedef enum {
+  GST_MPEG4_VIDEO_OBJ_FIRST      = 0x00,
+  GST_MPEG4_VIDEO_OBJ_LAST       = 0x1f,
+  GST_MPEG4_VIDEO_LAYER_FIRST    = 0x20,
+  GST_MPEG4_VIDEO_LAYER_LAST     = 0x2f,
+  GST_MPEG4_VISUAL_OBJ_SEQ_START = 0xb0,
+  GST_MPEG4_VISUAL_OBJ_SEQ_END   = 0xb1,
+  GST_MPEG4_USER_DATA            = 0xb2,
+  GST_MPEG4_GROUP_OF_VOP         = 0xb3,
+  GST_MPEG4_VIDEO_SESSION_ERR    = 0xb4,
+  GST_MPEG4_VISUAL_OBJ           = 0xb5,
+  GST_MPEG4_VIDEO_OBJ_PLANE      = 0xb6,
+  GST_MPEG4_FBA                  = 0xba,
+  GST_MPEG4_FBA_PLAN             = 0xbb,
+  GST_MPEG4_MESH                 = 0xbc,
+  GST_MPEG4_MESH_PLAN            = 0xbd,
+  GST_MPEG4_STILL_TEXTURE_OBJ    = 0xbe,
+  GST_MPEG4_TEXTURE_SPATIAL      = 0xbf,
+  GST_MPEG4_TEXTURE_SNR_LAYER    = 0xc0,
+  GST_MPEG4_TEXTURE_TILE         = 0xc1,
+  GST_MPEG4_SHAPE_LAYER          = 0xc2,
+  GST_MPEG4_STUFFING             = 0xc3,
+  GST_MPEG4_SYSTEM_FIRST         = 0xc6,
+  GST_MPEG4_SYSTEM_LAST          = 0xff,
+  GST_MPEG4_RESYNC               = 0xfff
+} GstMpeg4StartCode;
+
+

+Defines the different startcodes present in the bitstream as +defined in: Table 6-3 — Start code values +

+
+
+
+

enum GstMpeg4VisualObjectType

+
typedef enum {
+  GST_MPEG4_VIDEO_ID         = 0x01,
+  GST_MPEG4_STILL_TEXTURE_ID = 0x02,
+  GST_MPEG4_STILL_MESH_ID    = 0x03,
+  GST_MPEG4_STILL_FBA_ID     = 0x04,
+  GST_MPEG4_STILL_3D_MESH_ID = 0x05,
+  /*... reserved */
+} GstMpeg4VisualObjectType;
+
+

+Defines the different visual object types as +defined in: Table 6-5 -- Meaning of visual object type +

+
+
+
+

enum GstMpeg4AspectRatioInfo

+
typedef enum {
+  GST_MPEG4_SQUARE        = 0x01,
+  GST_MPEG4_625_TYPE_4_3  = 0x02,
+  GST_MPEG4_525_TYPE_4_3  = 0x03,
+  GST_MPEG4_625_TYPE_16_9 = 0x04,
+  GST_MPEG4_525_TYPE_16_9 = 0x05,
+  GST_MPEG4_EXTENDED_PAR  = 0x0f,
+} GstMpeg4AspectRatioInfo;
+
+

+Defines the different pixel aspect ratios as +defined in: Table 6-12 -- Meaning of pixel aspect ratio +

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

GST_MPEG4_SQUARE

1:1 square +

GST_MPEG4_625_TYPE_4_3

12:11 (625-type for 4:3 picture) +

GST_MPEG4_525_TYPE_4_3

10:11 (525-type for 4:3 picture) +

GST_MPEG4_625_TYPE_16_9

16:11 (625-type stretched for 16:9 picture) +

GST_MPEG4_525_TYPE_16_9

40:33 (525-type stretched for 16:9 picture) +

GST_MPEG4_EXTENDED_PAR

Extended par +
+
+
+
+

enum GstMpeg4ParseResult

+
typedef enum {
+  GST_MPEG4_PARSER_OK,
+  GST_MPEG4_PARSER_BROKEN_DATA,
+  GST_MPEG4_PARSER_NO_PACKET,
+  GST_MPEG4_PARSER_NO_PACKET_END,
+  GST_MPEG4_PARSER_ERROR,
+} GstMpeg4ParseResult;
+
+

+Result type of any parsing function. +

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

GST_MPEG4_PARSER_OK

The parsing went well +

GST_MPEG4_PARSER_BROKEN_DATA

The bitstream was broken +

GST_MPEG4_PARSER_NO_PACKET

There was no packet in the buffer +

GST_MPEG4_PARSER_NO_PACKET_END

There was no packet end in the buffer +

GST_MPEG4_PARSER_ERROR

+
+
+
+

enum GstMpeg4VideoObjectCodingType

+
typedef enum {
+  GST_MPEG4_I_VOP = 0x0,
+  GST_MPEG4_P_VOP = 0x1,
+  GST_MPEG4_B_VOP = 0x2,
+  GST_MPEG4_S_VOP = 0x3
+} GstMpeg4VideoObjectCodingType;
+
+

+The vop coding types as defined in: +Table 6-20 -- Meaning of vop_coding_type +

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

GST_MPEG4_I_VOP

intra-coded (I) +

GST_MPEG4_P_VOP

predictive-coded (P) +

GST_MPEG4_B_VOP

bidirectionally-predictive-coded (B) +

GST_MPEG4_S_VOP

sprite (S) +
+
+
+
+

enum GstMpeg4ChromaFormat

+
typedef enum {
+  /* Other value are reserved */
+  GST_MPEG4_CHROMA_4_2_0 = 0x01
+} GstMpeg4ChromaFormat;
+
+

+The chroma format in use as +defined in: Table 6-13 -- Meaning of chroma_format +

+
+
+
+

enum GstMpeg4VideoObjectLayerShape

+
typedef enum {
+  GST_MPEG4_RECTANGULAR,
+  GST_MPEG4_BINARY,
+  GST_MPEG4_BINARY_ONLY,
+  GST_MPEG4_GRAYSCALE
+} GstMpeg4VideoObjectLayerShape;
+
+

+The different video object layer shapes as defined in: +Table 6-16 — Video Object Layer shape type +

+
+
+
+

enum GstMpeg4SpriteEnable

+
typedef enum {
+  GST_MPEG4_SPRITE_UNUSED,
+  GST_MPEG4_SPRITE_STATIC,
+  GST_MPEG4_SPRITE_GMG
+} GstMpeg4SpriteEnable;
+
+

+Indicates the usage of static sprite coding +or global motion compensation (GMC) as defined in: +Table V2 - 2 -- Meaning of sprite_enable codewords +

+
+
+
+

enum GstMpeg4Profile

+
typedef enum {
+  GST_MPEG4_PROFILE_CORE,
+  GST_MPEG4_PROFILE_MAIN,
+  GST_MPEG4_PROFILE_N_BIT,
+  GST_MPEG4_PROFILE_SIMPLE,
+  GST_MPEG4_PROFILE_HYBRID,
+  GST_MPEG4_PROFILE_RESERVED,
+  GST_MPEG4_PROFILE_SIMPLE_FBA,
+  GST_MPEG4_PROFILE_CORE_STUDIO,
+  GST_MPEG4_PROFILE_SIMPLE_STUDIO,
+  GST_MPEG4_PROFILE_CORE_SCALABLE,
+  GST_MPEG4_PROFILE_ADVANCED_CORE,
+  GST_MPEG4_PROFILE_ADVANCED_SIMPLE,
+  GST_MPEG4_PROFILE_SIMPLE_SCALABLE,
+  GST_MPEG4_PROFILE_SCALABLE_TEXTURE,
+  GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION,
+  GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE,
+  GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE,
+  GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE,
+  GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE,
+  GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY
+} GstMpeg4Profile;
+
+

+Different defined profiles as defined in: +9- Profiles and levels +

+

+It is computed using: +Table G.1 — FLC table for profile_and_level_indication +

+
+
+
+

enum GstMpeg4Level

+
typedef enum {
+  GST_MPEG4_LEVEL0,
+  GST_MPEG4_LEVEL1,
+  GST_MPEG4_LEVEL2,
+  GST_MPEG4_LEVEL3,
+  GST_MPEG4_LEVEL3b,
+  GST_MPEG4_LEVEL4,
+  GST_MPEG4_LEVEL5,
+  GST_MPEG4_LEVEL_RESERVED
+} GstMpeg4Level;
+
+

+Different levels as defined in: +9- Profiles and levels +

+

+It is computed using: +Table G.1 — FLC table for profile_and_level_indication +

+
+
+
+

struct GstMpeg4VisualObjectSequence

+
struct GstMpeg4VisualObjectSequence {
+  guint8 profile_and_level_indication;
+
+  /* Computed according to:
+   * Table G.1 — FLC table for profile_and_level_indication */
+  GstMpeg4Level level;
+  GstMpeg4Profile profile;
+};
+
+

+The visual object sequence structure as defined in: +6.2.2 Visual Object Sequence and Visual Object +

+
+
+
+

struct GstMpeg4VisualObject

+
struct GstMpeg4VisualObject {
+  guint8 is_identifier;
+  /* If is_identifier */
+  guint8 verid;
+  guint8 priority;
+
+  GstMpeg4VisualObjectType type;
+};
+
+
+
+
+

struct GstMpeg4VideoSignalType

+
struct GstMpeg4VideoSignalType {
+  guint8 type;
+
+  guint8 format;
+  guint8 range;
+  guint8 color_description;
+  guint8 color_primaries;
+  guint8 transfer_characteristics;
+  guint8 matrix_coefficients;
+};
+
+

+The video signal type structure as defined in: +6.2.2 Visual Object Sequence and Visual Object. +

+
+
+
+

struct GstMpeg4VideoPlaneShortHdr

+
struct GstMpeg4VideoPlaneShortHdr {
+  guint8 temporal_reference;
+  guint8 split_screen_indicator;
+  guint8 document_camera_indicator;
+  guint8 full_picture_freeze_release;
+  guint8 source_format;
+  guint8 picture_coding_type;
+  guint8 vop_quant;
+  guint8 pei;
+  guint8 psupp;
+
+  /*  Gob layer specific fields */
+  guint8 gob_header_empty;
+  guint8 gob_number;
+  guint8 gob_frame_id;
+  guint8 quant_scale;
+
+  /* Computed
+   * If all the values are set to 0, then it is reserved
+   * Table 6-25 -- Parameters Defined by source_format Field
+   */
+  guint16 vop_width;
+  guint16 vop_height;
+  guint16 num_macroblocks_in_gob;
+  guint8 num_gobs_in_vop;
+
+  /* The size in bits */
+  guint size;
+};
+
+

+The video plane short header structure as defined in: +6.2.5.2 Video Plane with Short Header +

+
+
+
+

struct GstMpeg4VideoObjectLayer

+
struct GstMpeg4VideoObjectLayer {
+  guint8 random_accessible_vol;
+  guint8 video_object_type_indication;
+
+  guint8 is_object_layer_identifier;
+  /* if is_object_layer_identifier */
+  guint8 verid;
+  guint8 priority;
+
+  GstMpeg4AspectRatioInfo aspect_ratio_info;
+  guint8 par_width;
+  guint8 par_height;
+
+  guint8 control_parameters;
+  /* if control_parameters */
+  GstMpeg4ChromaFormat chroma_format;
+  guint8 low_delay;
+  guint8 vbv_parameters;
+  /* if vbv_parameters */
+  guint16 first_half_bitrate;
+  guint16 latter_half_bitrate;
+  guint16 first_half_vbv_buffer_size;
+  guint16 latter_half_vbv_buffer_size;
+  guint16 first_half_vbv_occupancy;
+  guint16 latter_half_vbv_occupancy;
+
+  /* Computed values */
+  guint32 bit_rate;
+  guint32 vbv_buffer_size;
+
+  GstMpeg4VideoObjectLayerShape shape;
+  /* if shape == GST_MPEG4_GRAYSCALE && verid =! 1 */
+  guint8 shape_extension;
+
+  guint16 vop_time_increment_resolution;
+  guint8 vop_time_increment_bits;
+  guint8 fixed_vop_rate;
+  /* if fixed_vop_rate */
+  guint16 fixed_vop_time_increment;
+
+  guint16 width;
+  guint16 height;
+  guint8 interlaced;
+  guint8 obmc_disable;
+
+  GstMpeg4SpriteEnable sprite_enable;
+  /* if vol->sprite_enable == SPRITE_GMG or SPRITE_STATIC*/
+  /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
+  guint16 sprite_width;
+  guint16 sprite_height;
+  guint16 sprite_left_coordinate;
+  guint16 sprite_top_coordinate;
+
+  guint8 no_of_sprite_warping_points;
+  guint8 sprite_warping_accuracy;
+  guint8 sprite_brightness_change;
+  /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
+  guint8 low_latency_sprite_enable;
+
+  /* if shape != GST_MPEG4_RECTANGULAR */
+  guint8 sadct_disable;
+
+  guint8 not_8_bit;
+
+  /* if no_8_bit */
+  guint8 quant_precision;
+  guint8 bits_per_pixel;
+
+  /* if shape == GRAYSCALE */
+  guint8 no_gray_quant_update;
+  guint8 composition_method;
+  guint8 linear_composition;
+
+  guint8 quant_type;
+  /* if quant_type */
+  guint8 load_intra_quant_mat;
+  guint8 intra_quant_mat[64];
+  guint8 load_non_intra_quant_mat;
+  guint8 non_intra_quant_mat[64];
+
+  guint8 quarter_sample;
+  guint8 complexity_estimation_disable;
+  guint8 resync_marker_disable;
+  guint8 data_partitioned;
+  guint8 reversible_vlc;
+  guint8 newpred_enable;
+  guint8 reduced_resolution_vop_enable;
+  guint8 scalability;
+  guint8 enhancement_type;
+
+  GstMpeg4VideoPlaneShortHdr short_hdr;
+};
+
+

+The video object layer structure as defined in: +6.2.3 Video Object Layer +

+
+
+
+

struct GstMpeg4SpriteTrajectory

+
struct GstMpeg4SpriteTrajectory {
+  guint16 vop_ref_points[63]; /* Defined as "du" in 6.2.5.4 */
+  guint16 sprite_ref_points[63]; /* Defined as "dv" in 6.2.5.4 */
+};
+
+

+The sprite trajectory structure as defined in: +7.8.4 Sprite reference point decoding and +6.2.5.4 Sprite coding +

+
+
+
+

struct GstMpeg4GroupOfVOP

+
struct GstMpeg4GroupOfVOP {
+  guint8 hours;
+  guint8 minutes;
+  guint8 seconds;
+
+  guint8 closed;
+  guint8 broken_link;
+};
+
+

+The group of video object plane structure as defined in: +6.2.4 Group of Video Object Plane +

+
+
+
+

struct GstMpeg4VideoObjectPlane

+
struct GstMpeg4VideoObjectPlane {
+  GstMpeg4VideoObjectCodingType coding_type;
+
+  guint8  modulo_time_base;
+  guint16 time_increment;
+
+  guint8  coded;
+  /* if newpred_enable */
+  guint16 id;
+  guint8  id_for_prediction_indication;
+  guint16 id_for_prediction;
+
+  guint16 width;
+  guint16 height;
+  guint16 horizontal_mc_spatial_ref;
+  guint16 vertical_mc_spatial_ref;
+
+  guint8  rounding_type;
+  /*if vol->shape != GST_MPEG4_RECTANGULAR */
+  guint8  background_composition;
+  guint8  change_conv_ratio_disable;
+  guint8  constant_alpha;
+  guint8  constant_alpha_value;
+  guint8  reduced_resolution;
+
+  guint8  intra_dc_vlc_thr;
+
+
+  guint8  top_field_first;
+  guint8  alternate_vertical_scan_flag;
+
+  guint16 quant;
+
+  guint8  fcode_forward;
+  guint8  fcode_backward;
+
+  guint8  shape_coding_type;
+  guint8  load_backward_shape;
+  guint8  ref_select_code;
+
+  /* Computed macroblock informations */
+  guint16 mb_height;
+  guint16 mb_width;
+  guint mb_num;
+
+  /* The size of the header */
+  guint    size;
+};
+
+

+The Video object plane structure as defined in: +6.2.5 Video Object Plane and Video Plane with Short Header +

+
+
+
+

struct GstMpeg4Packet

+
struct GstMpeg4Packet {
+  const guint8     *data;
+  guint             offset;
+  gsize             size;
+  guint             marker_size;
+
+  GstMpeg4StartCode type;
+};
+
+

+A structure that contains the type of a packet, its offset and its size +

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

const guint8 *data;

the data of the packet, statring at offset +

guint offset;

offset of the start of the packet (without the 3 bytes startcode), but +including the GstMpeg4StartCode byte.

gsize size;

The size in bytes of the packet or G_MAXUINT if the end wasn't found.

guint marker_size;

The size in bit of the resync marker.

GstMpeg4StartCode type;

the type of the packet that start at offset +
+
+
+
+

struct GstMpeg4VideoPacketHdr

+
struct GstMpeg4VideoPacketHdr {
+  guint8  header_extension_code;
+  guint16 macroblock_number;
+  guint16 quant_scale;
+  guint   size;
+};
+
+

+The video packet header structure as defined in: +6.2.5.2 Video Plane with Short Header +

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

guint8 header_extension_code;

guint16 macroblock_number;

guint16 quant_scale;

guint size;

Size of the header in bit.
+
+
+
+

gst_mpeg4_parse ()

+
GstMpeg4ParseResult gst_mpeg4_parse                     (GstMpeg4Packet *packet,
+                                                         gboolean skip_user_data,
+                                                         GstMpeg4VideoObjectPlane *vop,
+                                                         const guint8 *data,
+                                                         guint offset,
+                                                         gsize size);
+

+Parses data and fills packet with the information of the next packet +found. +

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

packet :

The GstMpeg4Packet to fill

skip_user_data :

+TRUE to skip user data packet FALSE otherwize

vop :

The last parsed GstMpeg4VideoObjectPlane or NULL if you do +not need to detect the resync codes.

offset :

offset from which to start the parsing

data :

The data to parse

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_video_object_plane ()

+
GstMpeg4ParseResult gst_mpeg4_parse_video_object_plane  (GstMpeg4VideoObjectPlane *vop,
+                                                         GstMpeg4SpriteTrajectory *sprite_trajectory,
+                                                         GstMpeg4VideoObjectLayer *vol,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parses data containing the video object plane packet, and fills the vol +structure. +

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

vop :

The GstMpeg4VideoObjectPlane currently being parsed

sprite_trajectory :

A GstMpeg4SpriteTrajectory to fill or NULL +

vol :

The GstMpeg4VideoObjectLayer structure to fill

data :

The data to parse

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_group_of_vop ()

+
GstMpeg4ParseResult gst_mpeg4_parse_group_of_vop        (GstMpeg4GroupOfVOP *gov,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parses data containing the group of video object plane packet, and fills +the gov structure. +

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

gov :

The GstMpeg4GroupOfVOP structure to fill

data :

The data to parse

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_video_object_layer ()

+
GstMpeg4ParseResult gst_mpeg4_parse_video_object_layer  (GstMpeg4VideoObjectLayer *vol,
+                                                         GstMpeg4VisualObject *vo,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parses data containing the video object layer packet, and fills +the vol structure. +

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

vol :

The GstMpeg4VideoObjectLayer structure to fill

vo :

The GstMpeg4VisualObject currently being parsed or NULL +

data :

The data to parse

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_visual_object ()

+
GstMpeg4ParseResult gst_mpeg4_parse_visual_object       (GstMpeg4VisualObject *vo,
+                                                         GstMpeg4VideoSignalType *signal_type,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parses data containing the visual object packet, and fills +the vo structure. +

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

vo :

The GstMpeg4VisualObject structure to fill

signal_type :

The GstMpeg4VideoSignalType to fill or NULL +

data :

The data to parse, should contain the vo_start_code +but not the start code prefix

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_visual_object_sequence ()

+
GstMpeg4ParseResult gst_mpeg4_parse_visual_object_sequence
+                                                        (GstMpeg4VisualObjectSequence *vos,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parses data containing the visual object sequence packet, and fills +the vos structure. +

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

vos :

The GstMpeg4VisualObjectSequence structure to fill

data :

The data to parse, should contain the visual_object_sequence_start_code +but not the start code prefix

size :

The size of the data to parse

Returns :

a GstMpeg4ParseResult +
+
+
+
+

gst_mpeg4_parse_video_packet_header ()

+
GstMpeg4ParseResult gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr *videopackethdr,
+                                                         GstMpeg4VideoObjectLayer *vol,
+                                                         GstMpeg4VideoObjectPlane *vop,
+                                                         GstMpeg4SpriteTrajectory *sprite_trajectory,
+                                                         const guint8 *data,
+                                                         gsize size);
+

+Parsers data containing the video packet header +and fills the videopackethdr structure +

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

videopackethdr :

The GstMpeg4VideoPacketHdr structure to fill

vol :

The last parsed GstMpeg4VideoObjectLayer, will be updated +with the informations found during the parsing

vop :

The last parsed GstMpeg4VideoObjectPlane, will be updated +with the informations found during the parsing

sprite_trajectory :

A GstMpeg4SpriteTrajectory to fill or NULL +with the informations found during the parsing

data :

The data to parse, should be set after the resync marker.

size :

The size of the data to parse
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-mpegvideoparser.html b/docs/libs/html/gst-plugins-bad-libs-mpegvideoparser.html new file mode 100644 index 0000000..d098c76 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-mpegvideoparser.html @@ -0,0 +1,1070 @@ + + + + +mpegvideoparser + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpegvideoparser

+

mpegvideoparser — Convenience library for mpeg1 and 2 video +bitstream parsing.

+
+
+

Synopsis

+
+#include <gst/codecparsers/gstmpegvideoparser.h>
+
+enum                GstMpegVideoPacketTypeCode;
+enum                GstMpegVideoPacketExtensionCode;
+enum                GstMpegVideoLevel;
+enum                GstMpegVideoProfile;
+enum                GstMpegVideoPictureType;
+enum                GstMpegVideoPictureStructure;
+struct              GstMpegVideoSequenceHdr;
+struct              GstMpegVideoSequenceExt;
+struct              GstMpegVideoPictureHdr;
+struct              GstMpegVideoGop;
+struct              GstMpegVideoPictureExt;
+struct              GstMpegVideoQuantMatrixExt;
+struct              GstMpegVideoTypeOffsetSize;
+GList *             gst_mpeg_video_parse                (const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_sequence_header
+                                                        (GstMpegVideoSequenceHdr *params,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_picture_header (GstMpegVideoPictureHdr *hdr,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_picture_extension
+                                                        (GstMpegVideoPictureExt *ext,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_gop            (GstMpegVideoGop *gop,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_sequence_extension
+                                                        (GstMpegVideoSequenceExt *seqext,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+gboolean            gst_mpeg_video_parse_quant_matrix_extension
+                                                        (GstMpegVideoQuantMatrixExt *quant,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+
+
+
+

Description

+

+

+
+

+Provides useful functions for mpeg videos bitstream parsing. +

+
+

+

+
+
+

Details

+
+

enum GstMpegVideoPacketTypeCode

+
typedef enum {
+  GST_MPEG_VIDEO_PACKET_PICTURE      = 0x00,
+  GST_MPEG_VIDEO_PACKET_SLICE_MIN    = 0x01,
+  GST_MPEG_VIDEO_PACKET_SLICE_MAX    = 0xaf,
+  GST_MPEG_VIDEO_PACKET_USER_DATA    = 0xb2,
+  GST_MPEG_VIDEO_PACKET_SEQUENCE     = 0xb3,
+  GST_MPEG_VIDEO_PACKET_EXTENSION    = 0xb5,
+  GST_MPEG_VIDEO_PACKET_SEQUENCE_END = 0xb7,
+  GST_MPEG_VIDEO_PACKET_GOP          = 0xb8,
+  GST_MPEG_VIDEO_PACKET_NONE         = 0xff
+} GstMpegVideoPacketTypeCode;
+
+

+Indicates the type of MPEG packet +

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

GST_MPEG_VIDEO_PACKET_PICTURE

Picture packet starting code +

GST_MPEG_VIDEO_PACKET_SLICE_MIN

Slice min packet starting code +

GST_MPEG_VIDEO_PACKET_SLICE_MAX

Slice max packet starting code +

GST_MPEG_VIDEO_PACKET_USER_DATA

User data packet starting code +

GST_MPEG_VIDEO_PACKET_SEQUENCE

Sequence packet starting code +

GST_MPEG_VIDEO_PACKET_EXTENSION

Extension packet starting code +

GST_MPEG_VIDEO_PACKET_SEQUENCE_END

Sequence end packet code +

GST_MPEG_VIDEO_PACKET_GOP

Group of Picture packet starting code +

GST_MPEG_VIDEO_PACKET_NONE

None packet code +
+
+
+
+

enum GstMpegVideoPacketExtensionCode

+
typedef enum {
+  GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE         = 0x01,
+  GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY = 0x02,
+  GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX     = 0x03,
+  GST_MPEG_VIDEO_PACKET_EXT_PICTURE          = 0x08
+} GstMpegVideoPacketExtensionCode;
+
+

+Indicates what type of packets are in this block, some are mutually +exclusive though - ie, sequence packs are accumulated separately. GOP & +Picture may occur together or separately. +

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

GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE

Sequence extension code +

GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY

Sequence Display extension code +

GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX

Quantization Matrix extension code +

GST_MPEG_VIDEO_PACKET_EXT_PICTURE

Picture coding extension +
+
+
+
+

enum GstMpegVideoLevel

+
typedef enum {
+ GST_MPEG_VIDEO_LEVEL_HIGH      = 0x04,
+ GST_MPEG_VIDEO_LEVEL_HIGH_1440 = 0x06,
+ GST_MPEG_VIDEO_LEVEL_MAIN      = 0x08,
+ GST_MPEG_VIDEO_LEVEL_LOW       = 0x0a
+} GstMpegVideoLevel;
+
+

+Mpeg-2 Levels. +

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

GST_MPEG_VIDEO_LEVEL_HIGH

High level (HL) +

GST_MPEG_VIDEO_LEVEL_HIGH_1440

High 1440 level (H-14) +

GST_MPEG_VIDEO_LEVEL_MAIN

Main level (ML) +

GST_MPEG_VIDEO_LEVEL_LOW

Low level (LL) +
+
+
+
+

enum GstMpegVideoProfile

+
typedef enum {
+  GST_MPEG_VIDEO_PROFILE_422                 = 0x00,
+  GST_MPEG_VIDEO_PROFILE_HIGH                = 0x01,
+  GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE  = 0x02,
+  GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE        = 0x03,
+  GST_MPEG_VIDEO_PROFILE_MAIN                = 0x04,
+  GST_MPEG_VIDEO_PROFILE_SIMPLE              = 0x05
+} GstMpegVideoProfile;
+
+

+Mpeg-2 Profiles. +

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

GST_MPEG_VIDEO_PROFILE_422

4:2:2 profile (422) +

GST_MPEG_VIDEO_PROFILE_HIGH

High profile (HP) +

GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE

Spatially Scalable profile (Spatial) +

GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE

SNR Scalable profile (SNR) +

GST_MPEG_VIDEO_PROFILE_MAIN

Main profile (MP) +

GST_MPEG_VIDEO_PROFILE_SIMPLE

Simple profile (SP) +
+
+
+
+

enum GstMpegVideoPictureType

+
typedef enum {
+  GST_MPEG_VIDEO_PICTURE_TYPE_I = 0x01,
+  GST_MPEG_VIDEO_PICTURE_TYPE_P = 0x02,
+  GST_MPEG_VIDEO_PICTURE_TYPE_B = 0x03,
+  GST_MPEG_VIDEO_PICTURE_TYPE_D = 0x04
+} GstMpegVideoPictureType;
+
+

+Picture type. +

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

GST_MPEG_VIDEO_PICTURE_TYPE_I

Intra-coded (I) frame +

GST_MPEG_VIDEO_PICTURE_TYPE_P

Predictive-codec (P) frame +

GST_MPEG_VIDEO_PICTURE_TYPE_B

Bidirectionally predictive-coded (B) frame +

GST_MPEG_VIDEO_PICTURE_TYPE_D

D frame +
+
+
+
+

enum GstMpegVideoPictureStructure

+
typedef enum {
+    GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD    = 0x01,
+    GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD = 0x02,
+    GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME        = 0x03
+} GstMpegVideoPictureStructure;
+
+

+Picture structure type. +

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

GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD

Top field +

GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD

Bottom field +

GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME

Frame picture +
+
+
+
+

struct GstMpegVideoSequenceHdr

+
struct GstMpegVideoSequenceHdr {
+  guint16 width, height;
+  guint8  aspect_ratio_info;
+  guint8  frame_rate_code;
+  guint32 bitrate_value;
+  guint16 vbv_buffer_size_value;
+
+  guint8  constrained_parameters_flag;
+
+  guint8  intra_quantizer_matrix[64];
+  guint8  non_intra_quantizer_matrix[64];
+
+  /* Calculated values */
+  guint   par_w, par_h;
+  guint   fps_n, fps_d;
+  guint   bitrate;
+};
+
+

+The Mpeg2 Video Sequence Header structure. +

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

guint16 width;

Width of each frame

guint16 height;

Height of each frame

guint8 aspect_ratio_info;

guint8 frame_rate_code;

guint32 bitrate_value;

Value of the bitrate as is in the stream (400bps unit)

guint16 vbv_buffer_size_value;

guint8 constrained_parameters_flag;

+TRUE if this stream uses contrained parameters.

guint8 intra_quantizer_matrix[64];

intra-quantization table

guint8 non_intra_quantizer_matrix[64];

non-intra quantization table

guint par_w;

Calculated Pixel Aspect Ratio width

guint par_h;

Calculated Pixel Aspect Ratio height

guint fps_n;

Calculated Framrate nominator

guint fps_d;

Calculated Framerate denominator

guint bitrate;

the real bitrate of the Mpeg video stream in bits per second, 0 if VBR stream
+
+
+
+

struct GstMpegVideoSequenceExt

+
struct GstMpegVideoSequenceExt {
+  /* mpeg2 decoder profile */
+  guint8 profile;
+  /* mpeg2 decoder level */
+  guint8 level;
+
+  guint8 progressive;
+  guint8 chroma_format;
+
+  guint8 horiz_size_ext, vert_size_ext;
+
+  guint16 bitrate_ext;
+  guint8 vbv_buffer_size_extension;
+  guint8 low_delay;
+  guint8 fps_n_ext, fps_d_ext;
+};
+
+

+The Mpeg2 Video Sequence Extension structure. +

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

guint8 profile;

mpeg2 decoder profil

guint8 level;

mpeg2 decoder level

guint8 progressive;

+TRUE if the frames are progressive FALSE otherwize

guint8 chroma_format;

indicates the chrominance format

guint8 horiz_size_ext;

Horizontal size

guint8 vert_size_ext;

Vertical size

guint16 bitrate_ext;

The bitrate

guint8 vbv_buffer_size_extension;

Vbv vuffer size

guint8 low_delay;

+TRUE if the sequence doesn't contain any B-pictures, FALSE +otherwize

guint8 fps_n_ext;

Framerate nominator code

guint8 fps_d_ext;

Framerate denominator code
+
+
+
+

struct GstMpegVideoPictureHdr

+
struct GstMpegVideoPictureHdr {
+  guint16 tsn;
+  guint8 pic_type;
+
+  guint8 full_pel_forward_vector, full_pel_backward_vector;
+
+  guint8 f_code[2][2];
+};
+
+

+The Mpeg2 Video Picture Header structure. +

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

guint16 tsn;

Temporal Sequence Number

guint8 pic_type;

Type of the frame

guint8 full_pel_forward_vector;

the full pel forward flag of +the frame: 0 or 1.

guint8 full_pel_backward_vector;

the full pel backward flag +of the frame: 0 or 1.

guint8 f_code[2][2];

F code
+
+
+
+

struct GstMpegVideoGop

+
struct GstMpegVideoGop {
+  guint8 drop_frame_flag;
+
+  guint8 hour, minute, second, frame;
+
+  guint8 closed_gop;
+  guint8 broken_link;
+};
+
+

+The Mpeg Video Group of Picture structure. +

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

guint8 drop_frame_flag;

Drop Frame Flag

guint8 hour;

Hour (0-23)

guint8 minute;

Minute (O-59)

guint8 second;

Second (0-59)

guint8 frame;

Frame (0-59)

guint8 closed_gop;

Closed Gop

guint8 broken_link;

Broken link
+
+
+
+

struct GstMpegVideoPictureExt

+
struct GstMpegVideoPictureExt {
+  guint8 f_code[2][2];
+
+  guint8 intra_dc_precision;
+  guint8 picture_structure;
+  guint8 top_field_first;
+  guint8 frame_pred_frame_dct;
+  guint8 concealment_motion_vectors;
+  guint8 q_scale_type;
+  guint8 intra_vlc_format;
+  guint8 alternate_scan;
+  guint8 repeat_first_field;
+  guint8 chroma_420_type;
+  guint8 progressive_frame;
+  guint8 composite_display;
+  guint8 v_axis;
+  guint8 field_sequence;
+  guint8 sub_carrier;
+  guint8 burst_amplitude;
+  guint8 sub_carrier_phase;
+};
+
+

+The Mpeg2 Video Picture Extension structure. +

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

guint8 f_code[2][2];

guint8 intra_dc_precision;

Intra DC precision

guint8 picture_structure;

Structure of the picture

guint8 top_field_first;

Top field first

guint8 frame_pred_frame_dct;

Frame

guint8 concealment_motion_vectors;

Concealment Motion Vectors

guint8 q_scale_type;

Q Scale Type

guint8 intra_vlc_format;

Intra Vlc Format

guint8 alternate_scan;

Alternate Scan

guint8 repeat_first_field;

Repeat First Field

guint8 chroma_420_type;

Chroma 420 Type

guint8 progressive_frame;

+TRUE if the frame is progressive FALSE otherwize

guint8 composite_display;

guint8 v_axis;

guint8 field_sequence;

guint8 sub_carrier;

guint8 burst_amplitude;

guint8 sub_carrier_phase;

+
+
+
+

struct GstMpegVideoQuantMatrixExt

+
struct GstMpegVideoQuantMatrixExt {
+ guint8 load_intra_quantiser_matrix;
+ guint8 intra_quantiser_matrix[64];
+ guint8 load_non_intra_quantiser_matrix;
+ guint8 non_intra_quantiser_matrix[64];
+ guint8 load_chroma_intra_quantiser_matrix;
+ guint8 chroma_intra_quantiser_matrix[64];
+ guint8 load_chroma_non_intra_quantiser_matrix;
+ guint8 chroma_non_intra_quantiser_matrix[64];
+};
+
+

+The Quant Matrix Extension structure +

+
+
+
+

struct GstMpegVideoTypeOffsetSize

+
struct GstMpegVideoTypeOffsetSize {
+  guint8 type;
+  guint  offset;
+  gint   size;
+};
+
+

+A structure that contains the type of a packet, its offset and its size +

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

guint8 type;

the type of the packet that start at offset +

guint offset;

the offset of the packet start in bytes, it is the exact, start of the packet, no sync code included

gint size;

The size in bytes of the packet or -1 if the end wasn't found. It is the exact size of the packet, no sync code included
+
+
+
+

gst_mpeg_video_parse ()

+
GList *             gst_mpeg_video_parse                (const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parses the MPEG 1/2 video bitstream contained in data , and returns the +detect packets as a list of GstMpegVideoTypeOffsetSize. +

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

data :

The data to parse

size :

The size of data +

offset :

The offset from which to start parsing

Returns :

a GList of GstMpegVideoTypeOffsetSize +
+
+
+
+

gst_mpeg_video_parse_sequence_header ()

+
gboolean            gst_mpeg_video_parse_sequence_header
+                                                        (GstMpegVideoSequenceHdr *params,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parses the seqhdr Mpeg Video Sequence Header structure members from data +

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

seqhdr :

The GstMpegVideoSequenceHdr structure to fill. [out] +

data :

The data from which to parse the sequence header

size :

The size of data +

offset :

The offset in byte from which to start parsing data +

Returns :

+TRUE if the seqhdr could be parsed correctly, FALSE otherwize.
+
+
+
+

gst_mpeg_video_parse_picture_header ()

+
gboolean            gst_mpeg_video_parse_picture_header (GstMpegVideoPictureHdr *hdr,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parsers the hdr Mpeg Video Picture Header structure members from data +

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

hdr :

The GstMpegVideoPictureHdr structure to fill. [out] +

data :

The data from which to parse the picture header

size :

The size of data +

offset :

The offset in byte from which to start the parsing

Returns :

+TRUE if the picture sequence could be parsed correctly, FALSE +otherwize.
+
+
+
+

gst_mpeg_video_parse_picture_extension ()

+
gboolean            gst_mpeg_video_parse_picture_extension
+                                                        (GstMpegVideoPictureExt *ext,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parse the ext Mpeg Video Picture Extension structure members from data +

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

ext :

The GstMpegVideoPictureExt structure to fill. [out] +

data :

The data from which to parse the picture extension

size :

The size of data +

offset :

The offset in byte from which to start the parsing

Returns :

+TRUE if the picture extension could be parsed correctly, +FALSE otherwize.
+
+
+
+

gst_mpeg_video_parse_gop ()

+
gboolean            gst_mpeg_video_parse_gop            (GstMpegVideoGop *gop,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parses the gop Mpeg Video Group of Picture structure members from data +

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

gop :

The GstMpegVideoGop structure to fill. [out] +

data :

The data from which to parse the gop

size :

The size of data +

offset :

The offset in byte from which to start the parsing

Returns :

+TRUE if the gop could be parsed correctly, FALSE otherwize.
+
+
+
+

gst_mpeg_video_parse_sequence_extension ()

+
gboolean            gst_mpeg_video_parse_sequence_extension
+                                                        (GstMpegVideoSequenceExt *seqext,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parses the seqext Mpeg Video Sequence Extension structure members from data +

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

seqext :

The GstMpegVideoSequenceExt structure to fill. [out] +

data :

The data from which to parse the sequence extension

size :

The size of data +

offset :

The offset in byte from which to start parsing data +

Returns :

+TRUE if the seqext could be parsed correctly, FALSE otherwize.
+
+
+
+

gst_mpeg_video_parse_quant_matrix_extension ()

+
gboolean            gst_mpeg_video_parse_quant_matrix_extension
+                                                        (GstMpegVideoQuantMatrixExt *quant,
+                                                         const guint8 *data,
+                                                         gsize size,
+                                                         guint offset);
+

+Parses the quant Mpeg Video Quant Matrix Extension structure members from +data +

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

quant :

The GstMpegVideoQuantMatrixExt structure to fill. [out] +

data :

The data from which to parse the Quantization Matrix extension

size :

The size of data +

offset :

The offset in byte from which to start the parsing

Returns :

+TRUE if the quant matrix extension could be parsed correctly, +FALSE otherwize.
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs-vc1parser.html b/docs/libs/html/gst-plugins-bad-libs-vc1parser.html new file mode 100644 index 0000000..eb30b73 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs-vc1parser.html @@ -0,0 +1,1268 @@ + + + + +vc1parser + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vc1parser

+

vc1parser — Convenience library for parsing vc1 video +bitstream.

+
+
+

Synopsis

+
+#include <gst/codecparsers/gstvc1parser.h>
+
+#define             MAX_HRD_NUM_LEAKY_BUCKETS
+#define             GST_VC1_BFRACTION_BASIS
+enum                GstVC1StartCode;
+enum                GstVC1Profile;
+enum                GstVC1ParserResult;
+enum                GstVC1PictureType;
+enum                GstVC1Level;
+enum                GstVC1QuantizerSpec;
+enum                GstVC1DQProfile;
+enum                GstVC1Condover;
+enum                GstVC1MvMode;
+struct              GstVC1SeqHdr;
+struct              GstVC1AdvancedSeqHdr;
+struct              GstVC1SeqLayer;
+struct              GstVC1SeqStructA;
+struct              GstVC1SeqStructB;
+struct              GstVC1SeqStructC;
+struct              GstVC1HrdParam;
+struct              GstVC1EntryPointHdr;
+struct              GstVC1FrameHdr;
+struct              GstVC1PicAdvanced;
+struct              GstVC1PicSimpleMain;
+                    GstVC1Picture;
+struct              GstVC1VopDquant;
+struct              GstVC1BDU;
+GstVC1ParserResult  gst_vc1_identify_next_bdu           (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1BDU *bdu);
+GstVC1ParserResult  gst_vc1_parse_sequence_header       (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqHdr *seqhdr);
+GstVC1ParserResult  gst_vc1_parse_sequence_layer        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqLayer *seqlayer);
+GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_a
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructA *structa);
+GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_b
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructB *structb);
+GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_c
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructC *structc);
+GstVC1ParserResult  gst_vc1_parse_entry_point_header    (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1EntryPointHdr *entrypoint,
+                                                         GstVC1SeqHdr *seqhdr);
+GstVC1ParserResult  gst_vc1_parse_frame_header          (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1FrameHdr *framehdr,
+                                                         GstVC1SeqHdr *seqhdr,
+                                                         GstVC1BitPlanes *bitplanes);
+GstVC1BitPlanes *   gst_vc1_bitplanes_new               (void);
+void                gst_vc1_bitplanes_free              (GstVC1BitPlanes *bitplanes);
+void                gst_vc1_bitplanes_free_1            (GstVC1BitPlanes *bitplanes);
+gboolean            gst_vc1_bitplanes_ensure_size       (GstVC1BitPlanes *bitplanes,
+                                                         GstVC1SeqHdr *seqhdr);
+
+
+
+

Description

+

+For more details about the structures, look at the +smpte specifications (S421m-2006.pdf). +

+
+
+

Details

+
+

MAX_HRD_NUM_LEAKY_BUCKETS

+
#define MAX_HRD_NUM_LEAKY_BUCKETS 31
+
+
+
+
+

GST_VC1_BFRACTION_BASIS

+
#define GST_VC1_BFRACTION_BASIS 840
+
+
+
+
+

enum GstVC1StartCode

+
typedef enum {
+  GST_VC1_END_OF_SEQ       = 0x0A,
+  GST_VC1_SLICE            = 0x0B,
+  GST_VC1_FIELD            = 0x0C,
+  GST_VC1_FRAME            = 0x0D,
+  GST_VC1_ENTRYPOINT       = 0x0E,
+  GST_VC1_SEQUENCE         = 0x0F,
+  GST_VC1_SLICE_USER       = 0x1B,
+  GST_VC1_FIELD_USER       = 0x1C,
+  GST_VC1_FRAME_USER       = 0x1D,
+  GST_VC1_ENTRY_POINT_USER = 0x1E,
+  GST_VC1_SEQUENCE_USER    = 0x1F
+} GstVC1StartCode;
+
+
+
+
+

enum GstVC1Profile

+
typedef enum {
+  GST_VC1_PROFILE_SIMPLE,
+  GST_VC1_PROFILE_MAIN,
+  GST_VC1_PROFILE_RESERVED,
+  GST_VC1_PROFILE_ADVANCED
+} GstVC1Profile;
+
+
+
+
+

enum GstVC1ParserResult

+
typedef enum {
+  GST_VC1_PARSER_OK,
+  GST_VC1_PARSER_BROKEN_DATA,
+  GST_VC1_PARSER_NO_BDU,
+  GST_VC1_PARSER_NO_BDU_END,
+  GST_VC1_PARSER_ERROR,
+} GstVC1ParserResult;
+
+
+
+
+

enum GstVC1PictureType

+
typedef enum {
+  GST_VC1_PICTURE_TYPE_P,
+  GST_VC1_PICTURE_TYPE_B,
+  GST_VC1_PICTURE_TYPE_I,
+  GST_VC1_PICTURE_TYPE_BI,
+  GST_VC1_PICTURE_TYPE_SKIPPED
+} GstVC1PictureType;
+
+
+
+
+

enum GstVC1Level

+
typedef enum {
+    GST_VC1_LEVEL_LOW    = 0,    /* Simple/Main profile low level */
+    GST_VC1_LEVEL_MEDIUM = 1,    /* Simple/Main profile medium level */
+    GST_VC1_LEVEL_HIGH   = 2,   /* Main profile high level */
+
+    GST_VC1_LEVEL_L0    = 0,    /* Advanced profile level 0 */
+    GST_VC1_LEVEL_L1    = 1,    /* Advanced profile level 1 */
+    GST_VC1_LEVEL_L2    = 2,    /* Advanced profile level 2 */
+    GST_VC1_LEVEL_L3    = 3,    /* Advanced profile level 3 */
+    GST_VC1_LEVEL_L4    = 4,    /* Advanced profile level 4 */
+
+    /* 5 to 7 reserved */
+    GST_VC1_LEVEL_UNKNOWN = 255  /* Unknown profile */
+} GstVC1Level;
+
+
+
+
+

enum GstVC1QuantizerSpec

+
typedef enum {
+  GST_VC1_QUANTIZER_IMPLICITLY,
+  GST_VC1_QUANTIZER_EXPLICITLY,
+  GST_VC1_QUANTIZER_NON_UNIFORM,
+  GST_VC1_QUANTIZER_UNIFORM
+} GstVC1QuantizerSpec;
+
+
+
+
+

enum GstVC1DQProfile

+
typedef enum {
+  GST_VC1_DQPROFILE_FOUR_EDGES,
+  GST_VC1_DQPROFILE_DOUBLE_EDGES,
+  GST_VC1_DQPROFILE_SINGLE_EDGE,
+  GST_VC1_DQPROFILE_ALL_MBS
+} GstVC1DQProfile;
+
+
+
+
+

enum GstVC1Condover

+
typedef enum {
+  GST_VC1_CONDOVER_NONE,
+  GST_VC1_CONDOVER_ALL,
+  GST_VC1_CONDOVER_SELECT
+} GstVC1Condover;
+
+
+
+
+

enum GstVC1MvMode

+
typedef enum {
+  GST_VC1_MVMODE_1MV_HPEL_BILINEAR,
+  GST_VC1_MVMODE_1MV,
+  GST_VC1_MVMODE_1MV_HPEL,
+  GST_VC1_MVMODE_MIXED_MV,
+  GST_VC1_MVMODE_INTENSITY_COMP
+} GstVC1MvMode;
+
+
+
+
+

struct GstVC1SeqHdr

+
struct GstVC1SeqHdr {
+  GstVC1Profile profile;
+
+  GstVC1SeqStructC struct_c;
+
+  /*  calculated */
+  guint mb_height;
+  guint mb_width;
+  guint mb_stride;
+
+  GstVC1AdvancedSeqHdr   advanced;
+};
+
+

+Structure for sequence headers in any profile. +

+
+
+
+

struct GstVC1AdvancedSeqHdr

+
struct GstVC1AdvancedSeqHdr {
+  GstVC1Level  level;
+
+  guint8  frmrtq_postproc;
+  guint8  bitrtq_postproc;
+  guint8  postprocflag;
+  guint16 max_coded_width;
+  guint16 max_coded_height;
+  guint8  pulldown;
+  guint8  interlace;
+  guint8  tfcntrflag;
+  guint8  finterpflag;
+  guint8  psf;
+  guint8  display_ext;
+  guint16 disp_horiz_size;
+  guint16 disp_vert_size;
+  guint8  aspect_ratio_flag;
+  guint8  aspect_ratio;
+  guint8  aspect_horiz_size;
+  guint8  aspect_vert_size;
+  guint8  framerate_flag;
+  guint8  framerateind;
+  guint8  frameratenr;
+  guint8  frameratedr;
+  guint16 framerateexp;
+  guint8  color_format_flag;
+  guint8  color_prim;
+  guint8  transfer_char;
+  guint8  matrix_coef;
+  guint8  hrd_param_flag;
+  guint8  colordiff_format;
+
+  GstVC1HrdParam hrd_param;
+
+  /* computed */
+  guint framerate; /* Around in fps, 0 if unknown*/
+  guint bitrate;   /* Around in kpbs, 0 if unknown*/
+  guint par_n;
+  guint par_d;
+  guint fps_n;
+  guint fps_d;
+
+  /* The last parsed entry point */
+  GstVC1EntryPointHdr entrypoint;
+};
+
+

+Structure for the advanced profile sequence headers specific parameters. +

+
+
+
+

struct GstVC1SeqLayer

+
struct GstVC1SeqLayer {
+  guint32 numframes;
+
+  GstVC1SeqStructA struct_a;
+  GstVC1SeqStructB struct_b;
+  GstVC1SeqStructC struct_c;
+};
+
+
+
+
+

struct GstVC1SeqStructA

+
struct GstVC1SeqStructA {
+  guint32 vert_size;
+  guint32 horiz_size;
+};
+
+
+
+
+

struct GstVC1SeqStructB

+
struct GstVC1SeqStructB {
+  GstVC1Level  level;
+
+  guint8 cbr;
+  guint32 framerate;
+
+  /* In simple and main profiles only */
+  guint32 hrd_buffer;
+  guint32 hrd_rate;
+};
+
+
+
+
+

struct GstVC1SeqStructC

+
struct GstVC1SeqStructC {
+  GstVC1Profile profile;
+
+  /* Only in simple and main profiles */
+  guint8 frmrtq_postproc;
+  guint8 bitrtq_postproc;
+  guint8 res_sprite;
+  guint8 loop_filter;
+  guint8 multires;
+  guint8 fastuvmc;
+  guint8 extended_mv;
+  guint8 dquant;
+  guint8 vstransform;
+  guint8 overlap;
+  guint8 syncmarker;
+  guint8 rangered;
+  guint8 maxbframes;
+  guint8 quantizer;
+  guint8 finterpflag;
+
+  /* Computed */
+  guint framerate; /* Around in fps, 0 if unknown*/
+  guint bitrate;   /* Around in kpbs, 0 if unknown*/
+
+  /* This should be filled by user if previously known */
+  guint16 coded_width;
+  /* This should be filled by user if previously known */
+  guint16 coded_height;
+
+  /* Wmvp specific */
+  guint8 wmvp;          /* Specify if the stream is wmp or not */
+  /* In the wmvp case, the framerate is not computed but in the bistream */
+  guint8 slice_code;
+};
+
+
+
+
+

struct GstVC1HrdParam

+
struct GstVC1HrdParam {
+  guint8 hrd_num_leaky_buckets;
+  guint8 bit_rate_exponent;
+  guint8 buffer_size_exponent;
+  guint16 hrd_rate[MAX_HRD_NUM_LEAKY_BUCKETS];
+  guint16 hrd_buffer[MAX_HRD_NUM_LEAKY_BUCKETS];
+};
+
+
+
+
+

struct GstVC1EntryPointHdr

+
struct GstVC1EntryPointHdr {
+  guint8 broken_link;
+  guint8 closed_entry;
+  guint8 panscan_flag;
+  guint8 refdist_flag;
+  guint8 loopfilter;
+  guint8 fastuvmc;
+  guint8 extended_mv;
+  guint8 dquant;
+  guint8 vstransform;
+  guint8 overlap;
+  guint8 quantizer;
+  guint8 coded_size_flag;
+  guint16 coded_width;
+  guint16 coded_height;
+  guint8 extended_dmv;
+  guint8 range_mapy_flag;
+  guint8 range_mapy;
+  guint8 range_mapuv_flag;
+  guint8 range_mapuv;
+
+  guint8 hrd_full[MAX_HRD_NUM_LEAKY_BUCKETS];
+};
+
+

+Structure for entrypoint header, this will be used only in advanced profiles +

+
+
+
+

struct GstVC1FrameHdr

+
struct GstVC1FrameHdr {
+  /* common fields */
+  GstVC1PictureType ptype;
+  guint8 interpfrm;
+  guint8 halfqp;
+  guint8 transacfrm;
+  guint8 transdctab;
+  guint8 pqindex;
+  guint8 pquantizer;
+
+  /* Computed */
+  guint8 pquant;
+
+  /* Convenience fields */
+  guint8 profile;
+  guint8 dquant;
+
+  /*  If dquant */
+  GstVC1VopDquant vopdquant;
+
+  union {
+    GstVC1PicSimpleMain simple;
+    GstVC1PicAdvanced advanced;
+  } pic;
+
+  /* Size of the picture layer in bits */
+  guint header_size;
+};
+
+

+Structure that represent picture in any profile or mode. +You should look at ptype and profile to know what is currently +in use. +

+
+
+
+

struct GstVC1PicAdvanced

+
struct GstVC1PicAdvanced {
+  GstVC1FrameCodingMode fcm;
+  guint8  tfcntr;
+
+  guint8  rptfrm;
+  guint8  tff;
+  guint8  rff;
+  guint8  ps_present;
+  guint32 ps_hoffset;
+  guint32 ps_voffset;
+  guint16 ps_width;
+  guint16 ps_height;
+  guint8  rndctrl;
+  guint8  uvsamp;
+  guint8  postproc;
+
+  /*  B and P picture specific */
+  guint8  mvrange;
+  guint8  mvmode;
+  guint8  mvtab;
+  guint8  cbptab;
+  guint8  ttmbf;
+  guint8  ttfrm;
+
+  /* B and BI picture only
+   * Should be divided by #GST_VC1_BFRACTION_BASIS
+   * to get the real value. */
+  guint16 bfraction;
+
+  /* ppic */
+  guint8  mvmode2;
+  guint8  lumscale;
+  guint8  lumshift;
+
+  /* bipic */
+  guint8  bf;
+  guint8  condover;
+  guint8  transacfrm2;
+
+  /* Biplane value, those fields only mention the fact
+   * that the bitplane is in raw mode or not */
+  guint8  acpred;
+  guint8  overflags;
+  guint8  mvtypemb;
+  guint8  skipmb;
+  guint8  directmb;
+  guint8  forwardmb; /* B pic interlace field only */
+
+  /* For interlaced pictures only */
+  guint8  fieldtx;
+
+  /* P and B pictures */
+  guint8  intcomp;
+  guint8  dmvrange;
+  guint8  mbmodetab;
+  guint8  imvtab;
+  guint8  icbptab;
+  guint8  mvbptab2;
+  guint8  mvbptab4; /* If 4mvswitch in ppic */
+
+  /*  P picture */
+  guint8  mvswitch4;
+
+  /* For interlaced fields only */
+  guint16 refdist;
+  guint8 fptype; /* Raw value */
+
+  /* P pic */
+  guint8  numref;
+  guint8  reffield;
+  guint8  lumscale2;
+  guint8  lumshift2;
+  guint8  intcompfield;
+};
+
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GstVC1FrameCodingMode fcm;

guint8 tfcntr;

guint8 rptfrm;

guint8 tff;

guint8 rff;

guint8 ps_present;

guint32 ps_hoffset;

guint32 ps_voffset;

guint16 ps_width;

guint16 ps_height;

guint8 rndctrl;

guint8 uvsamp;

guint8 postproc;

guint8 mvrange;

guint8 mvmode;

guint8 mvtab;

guint8 cbptab;

guint8 ttmbf;

guint8 ttfrm;

guint16 bfraction;

guint8 mvmode2;

guint8 lumscale;

guint8 lumshift;

guint8 bf;

guint8 condover;

guint8 transacfrm2;

guint8 acpred;

guint8 overflags;

guint8 mvtypemb;

guint8 skipmb;

guint8 directmb;

guint8 forwardmb;

guint8 fieldtx;

guint8 intcomp;

guint8 dmvrange;

guint8 mbmodetab;

guint8 imvtab;

guint8 icbptab;

guint8 mvbptab2;

guint8 mvbptab4;

guint8 mvswitch4;

guint16 refdist;

guint8 fptype;

guint8 numref;

guint8 reffield;

guint8 lumscale2;

guint8 lumshift2;

guint8 intcompfield;

+
+
+
+

struct GstVC1PicSimpleMain

+
struct GstVC1PicSimpleMain {
+  guint8 frmcnt;
+  guint8 mvrange;
+  guint8 rangeredfrm;
+
+  /* I and P pic simple and main profiles only */
+  guint8 respic;
+
+  /* I and BI pic simple and main profiles only */
+  guint8 transacfrm2;
+  guint8 bf;
+
+  /* B and P pic simple and main profiles only */
+  guint8 mvmode;
+  guint8 mvtab;
+  guint8 ttmbf;
+
+  /* P pic simple and main profiles only */
+  guint8 mvmode2;
+  guint8 lumscale;
+  guint8 lumshift;
+
+  guint8 cbptab;
+  guint8 ttfrm;
+
+  /* B and BI picture only
+   * Should be divided by #GST_VC1_BFRACTION_BASIS
+   * to get the real value. */
+  guint16 bfraction;
+
+  /* Biplane value, those fields only mention the fact
+   * that the bitplane is in raw mode or not */
+  guint8 mvtypemb;
+  guint8 skipmb;
+  guint8 directmb; /* B pic main profile only */
+};
+
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

guint8 frmcnt;

guint8 mvrange;

guint8 rangeredfrm;

guint8 respic;

guint8 transacfrm2;

guint8 bf;

guint8 mvmode;

guint8 mvtab;

guint8 ttmbf;

guint8 mvmode2;

guint8 lumscale;

guint8 lumshift;

guint8 cbptab;

guint8 ttfrm;

guint16 bfraction;

guint8 mvtypemb;

guint8 skipmb;

guint8 directmb;

+
+
+
+

GstVC1Picture

+
typedef struct _GstVC1Picture GstVC1Picture;
+
+
+
+

struct GstVC1VopDquant

+
struct GstVC1VopDquant {
+  guint8 pqdiff;
+  guint8 abspq;
+
+  /* Computed */
+  guint8 altpquant;
+
+  /*  if dqant != 2*/
+  guint8 dquantfrm;
+  guint8 dqprofile;
+
+  /* if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE
+   * or GST_VC1_DQPROFILE_DOUBLE_EDGE:*/
+  guint8 dqsbedge;
+
+  /* if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE
+   * or GST_VC1_DQPROFILE_DOUBLE_EDGE:*/
+  guint8 dqbedge;
+
+  /* if dqprofile == GST_VC1_DQPROFILE_ALL_MBS */
+  guint8 dqbilevel;
+};
+
+
+
+
+

struct GstVC1BDU

+
struct GstVC1BDU {
+  GstVC1StartCode type;
+  guint size;
+  guint sc_offset;
+  guint offset;
+  guint8 * data;
+};
+
+

+Structure that represents a Bitstream Data Unit. +

+
+
+
+

gst_vc1_identify_next_bdu ()

+
GstVC1ParserResult  gst_vc1_identify_next_bdu           (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1BDU *bdu);
+

+Parses data and fills bdu fields +

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

data :

The data to parse

size :

the size of data +

bdu :

The GstVC1BDU where to store parsed bdu headers. [out] +

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_sequence_header ()

+
GstVC1ParserResult  gst_vc1_parse_sequence_header       (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqHdr *seqhdr);
+

+Parses data, and fills seqhdr fields. +

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

data :

The data to parse

size :

the size of data +

seqhdr :

The GstVC1SeqHdr to set.

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_sequence_layer ()

+
GstVC1ParserResult  gst_vc1_parse_sequence_layer        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqLayer *seqlayer);
+

+Parses data, and fills seqlayer fields. +

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

data :

The data to parse

size :

the size of data +

structa :

The GstVC1SeqLayer to set.

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_sequence_header_struct_a ()

+
GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_a
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructA *structa);
+

+Parses data, and fills structa fields. +

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

data :

The data to parse

size :

the size of data +

structa :

The GstVC1SeqStructA to set.

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_sequence_header_struct_b ()

+
GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_b
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructB *structb);
+

+Parses data, and fills structb fields. +

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

data :

The data to parse

size :

the size of data +

structa :

The GstVC1SeqStructB to set.

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_sequence_header_struct_c ()

+
GstVC1ParserResult  gst_vc1_parse_sequence_header_struct_c
+                                                        (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1SeqStructC *structc);
+

+Parses data, and fills structc fields. +

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

data :

The data to parse

size :

the size of data +

structc :

The GstVC1SeqStructC to set.

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_parse_entry_point_header ()

+
GstVC1ParserResult  gst_vc1_parse_entry_point_header    (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1EntryPointHdr *entrypoint,
+                                                         GstVC1SeqHdr *seqhdr);
+

+Parses data, and sets entrypoint fields. +

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

data :

The data to parse

size :

the size of data +

entrypoint :

The GstVC1EntryPointHdr to set. [out] +

seqhdr :

The GstVC1SeqHdr currently being parsed

Returns :

a GstVC1EntryPointHdr +
+
+
+
+

gst_vc1_parse_frame_header ()

+
GstVC1ParserResult  gst_vc1_parse_frame_header          (const guint8 *data,
+                                                         gsize size,
+                                                         GstVC1FrameHdr *framehdr,
+                                                         GstVC1SeqHdr *seqhdr,
+                                                         GstVC1BitPlanes *bitplanes);
+

+Parses data, and fills entrypoint fields. +

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

data :

The data to parse

size :

the size of data +

framehdr :

The GstVC1FrameHdr to fill.

seqhdr :

The GstVC1SeqHdr currently being parsed

bitplanes :

The GstVC1BitPlanes to store bitplanes in or NULL +

Returns :

a GstVC1ParserResult +
+
+
+
+

gst_vc1_bitplanes_new ()

+
GstVC1BitPlanes *   gst_vc1_bitplanes_new               (void);
+

+Creates a new GstVC1BitPlanes. It should be freed with +gst_vc1_bitplanes_free() after use. +

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

seqhdr :

The GstVC1SeqHdr from which to set bitplanes +

Returns :

a new GstVC1BitPlanes +
+
+
+
+

gst_vc1_bitplanes_free ()

+
void                gst_vc1_bitplanes_free              (GstVC1BitPlanes *bitplanes);
+
+
+
+

gst_vc1_bitplanes_free_1 ()

+
void                gst_vc1_bitplanes_free_1            (GstVC1BitPlanes *bitplanes);
+
+
+
+

gst_vc1_bitplanes_ensure_size ()

+
gboolean            gst_vc1_bitplanes_ensure_size       (GstVC1BitPlanes *bitplanes,
+                                                         GstVC1SeqHdr *seqhdr);
+

+Fills the bitplanes structure from seqhdr, this function +should be called after gst_vc1_parse_sequence_header if +in simple or main mode, or after gst_vc1_parse_entry_point_header +if in advanced mode. +

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

bitplanes :

The GstVC1BitPlanes to reset

seqhdr :

The GstVC1SeqHdr from which to set bitplanes +

Returns :

+TRUE if everything went fine, FALSE otherwize
+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gst-plugins-bad-libs.devhelp2 b/docs/libs/html/gst-plugins-bad-libs.devhelp2 new file mode 100644 index 0000000..09f5d60 --- /dev/null +++ b/docs/libs/html/gst-plugins-bad-libs.devhelp2 @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html new file mode 100644 index 0000000..9ca8623 --- /dev/null +++ b/docs/libs/html/gstreamer-libs-hierarchy.html @@ -0,0 +1,32 @@ + + + + +Part II. Object Hierarchy + + + + + + + + + + + + + + + + +
+

+Part II. Object Hierarchy

+
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/gstreamer-plugins-bad.html b/docs/libs/html/gstreamer-plugins-bad.html new file mode 100644 index 0000000..effbce5 --- /dev/null +++ b/docs/libs/html/gstreamer-plugins-bad.html @@ -0,0 +1,87 @@ + + + + +Part I. GStreamer Bad Plugins Libraries + + + + + + + + + + + + + + + + +
+

+Part I. GStreamer Bad Plugins Libraries

+
+

Table of Contents

+
+
+Compiling — +How to compile against the bad plugins libraries + +
+
Bitstream parsing Library
+
+
+h264parser — Convenience library for h264 video +bitstream parsing. +
+
+mpegvideoparser — Convenience library for mpeg1 and 2 video +bitstream parsing. +
+
+mpeg4parser — Convenience library for parsing mpeg4 part 2 video +bitstream. +
+
+vc1parser — Convenience library for parsing vc1 video +bitstream. +
+
+
Base video element classes
+
+
+GstBaseVideoCodec +
+
+GstBaseVideoDecoder — Base class for video decoders +
+
+GstBaseVideoEncoder — Base class for video encoders +
+
+gstbasevideoutils +
+
+GstVideoContextInterface — Interface to handle video library context +
+
+GstSurfaceBuffer — Accelerated surface base class +
+
+GstSurfaceConverter — Interface for GstSurfaceBuffer convertion +
+
+
+
+

+ This manual describes the libraries provided by the GStreamer Bad Plugins + package. +

+
+ + + \ No newline at end of file diff --git a/docs/libs/html/home.png b/docs/libs/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/libs/html/index.html b/docs/libs/html/index.html new file mode 100644 index 0000000..8e8be6d --- /dev/null +++ b/docs/libs/html/index.html @@ -0,0 +1,86 @@ + + + + +GStreamer Bad Plugins 0.10 Library Reference Manual + + + + + + + +
+
+
+
+ +
+
+
+
+
I. GStreamer Bad Plugins Libraries
+
+
+Compiling — +How to compile against the bad plugins libraries + +
+
Bitstream parsing Library
+
+
+h264parser — Convenience library for h264 video +bitstream parsing. +
+
+mpegvideoparser — Convenience library for mpeg1 and 2 video +bitstream parsing. +
+
+mpeg4parser — Convenience library for parsing mpeg4 part 2 video +bitstream. +
+
+vc1parser — Convenience library for parsing vc1 video +bitstream. +
+
+
Base video element classes
+
+
+GstBaseVideoCodec +
+
+GstBaseVideoDecoder — Base class for video decoders +
+
+GstBaseVideoEncoder — Base class for video encoders +
+
+gstbasevideoutils +
+
+GstVideoContextInterface — Interface to handle video library context +
+
+GstSurfaceBuffer — Accelerated surface base class +
+
+GstSurfaceConverter — Interface for GstSurfaceBuffer convertion +
+
+
+
II. Object Hierarchy
+
Index
+
Index of deprecated API
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml new file mode 100644 index 0000000..e035fe2 --- /dev/null +++ b/docs/libs/html/index.sgml @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libs/html/left.png b/docs/libs/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/libs/html/video.html b/docs/libs/html/video.html new file mode 100644 index 0000000..981e52a --- /dev/null +++ b/docs/libs/html/video.html @@ -0,0 +1,53 @@ + + + + +Base video element classes + + + + + + + + + + + + + + + + +
+

+Base video element classes

+
+
+GstBaseVideoCodec +
+
+GstBaseVideoDecoder — Base class for video decoders +
+
+GstBaseVideoEncoder — Base class for video encoders +
+
+gstbasevideoutils +
+
+GstVideoContextInterface — Interface to handle video library context +
+
+GstSurfaceBuffer — Accelerated surface base class +
+
+GstSurfaceConverter — Interface for GstSurfaceBuffer convertion +
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 7d83b0e..a948927 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -13,42 +13,17 @@ 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). +# The directory containing the source code. # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. -DOC_SOURCE_DIR = $(top_srcdir) +DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys # 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 @@ -58,15 +33,12 @@ FIXXREF_OPTIONS=--extra-dir=$(GLIB_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 +HFILE_GLOB= \ + $(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h \ + $(top_srcdir)/ext/*/*.hh +CFILE_GLOB= \ + $(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c \ + $(top_srcdir)/ext/*/*.cc $(top_srcdir)/sys/*/*.m # Header files to ignore when scanning. IGNORE_HFILES = @@ -91,7 +63,6 @@ EXAMPLE_CFILES = \ 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 \ @@ -131,13 +102,21 @@ EXTRA_HFILES = \ $(top_srcdir)/ext/sdl/sdlvideosink.h \ $(top_srcdir)/ext/timidity/gsttimidity.h \ $(top_srcdir)/ext/timidity/gstwildmidi.h \ + $(top_srcdir)/ext/voaacenc/gstvoaacenc.h \ + $(top_srcdir)/ext/voamrwbenc/gstvoamrwbenc.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/audiovisualizers/gstbaseaudiovisualizer.h \ + $(top_srcdir)/gst/audiovisualizers/gstspacescope.h \ + $(top_srcdir)/gst/audiovisualizers/gstspectrascope.h \ + $(top_srcdir)/gst/audiovisualizers/gstsynaescope.h \ + $(top_srcdir)/gst/audiovisualizers/gstwavescope.h \ $(top_srcdir)/gst/camerabin/gstcamerabin.h \ + $(top_srcdir)/gst/camerabin2/gstcamerabin2.h \ $(top_srcdir)/gst/coloreffects/gstcoloreffects.h \ $(top_srcdir)/gst/dataurisrc/gstdataurisrc.h \ $(top_srcdir)/gst/dccp/gstdccpclientsink.h \ @@ -212,7 +191,9 @@ 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_LIBS = \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(GST_BASE_LIBS) GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC) GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC) diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in index 764d069..41d4c5d 100644 --- a/docs/plugins/Makefile.in +++ b/docs/plugins/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -58,6 +58,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -95,11 +96,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -148,7 +149,6 @@ 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@ @@ -166,7 +166,6 @@ 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@ @@ -201,6 +200,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -240,6 +240,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -257,6 +258,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -265,13 +267,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -296,13 +301,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -350,6 +356,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -381,8 +388,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -406,6 +417,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -430,10 +443,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -445,6 +462,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -469,6 +490,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -504,7 +526,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -541,41 +562,17 @@ 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). +# The directory containing the source code. # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. -DOC_SOURCE_DIR = $(top_srcdir) +DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys # 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 @@ -586,14 +583,13 @@ FIXXREF_OPTIONS = --extra-dir=$(GLIB_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 +HFILE_GLOB = \ + $(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h \ + $(top_srcdir)/ext/*/*.hh -# 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 +CFILE_GLOB = \ + $(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c \ + $(top_srcdir)/ext/*/*.cc $(top_srcdir)/sys/*/*.m # Header files to ignore when scanning. @@ -619,7 +615,6 @@ EXAMPLE_CFILES = \ 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 \ @@ -659,13 +654,21 @@ EXTRA_HFILES = \ $(top_srcdir)/ext/sdl/sdlvideosink.h \ $(top_srcdir)/ext/timidity/gsttimidity.h \ $(top_srcdir)/ext/timidity/gstwildmidi.h \ + $(top_srcdir)/ext/voaacenc/gstvoaacenc.h \ + $(top_srcdir)/ext/voamrwbenc/gstvoamrwbenc.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/audiovisualizers/gstbaseaudiovisualizer.h \ + $(top_srcdir)/gst/audiovisualizers/gstspacescope.h \ + $(top_srcdir)/gst/audiovisualizers/gstspectrascope.h \ + $(top_srcdir)/gst/audiovisualizers/gstsynaescope.h \ + $(top_srcdir)/gst/audiovisualizers/gstwavescope.h \ $(top_srcdir)/gst/camerabin/gstcamerabin.h \ + $(top_srcdir)/gst/camerabin2/gstcamerabin2.h \ $(top_srcdir)/gst/coloreffects/gstcoloreffects.h \ $(top_srcdir)/gst/dataurisrc/gstdataurisrc.h \ $(top_srcdir)/gst/dccp/gstdccpclientsink.h \ @@ -741,7 +744,10 @@ 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_LIBS = \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(GST_BASE_LIBS) + GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) @@ -782,12 +788,12 @@ DOC_STAMPS = \ # files generated/updated by gtkdoc-scangobj SCANOBJ_FILES = \ - $(DOC_MODULE).signals \ + $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).types \ - $(DOC_MODULE).args + $(DOC_MODULE).signals \ + $(DOC_MODULE).types SCANOBJ_FILES_O = \ .libs/$(DOC_MODULE)-scan.o @@ -805,12 +811,8 @@ REPORT_FILES = \ $(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 @@ -861,6 +863,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -1088,10 +1091,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1256,32 +1264,34 @@ update: @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 ***' +# gstdoc-scanobj produces 5 output files (.new) +# scangobj-merge.py merges them into the file which we commit later +# TODO: also merge the hierarchy +@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) +@ENABLE_GTK_DOC_TRUE@ @echo " DOC Introspecting 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@ mkdir -p $(INSPECT_DIR); \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options=""; \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options="--verbose"; \ +@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@ $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)" \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ +@ENABLE_GTK_DOC_TRUE@ echo " DOC Merging introspection data" && \ @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 \ @@ -1297,91 +1307,102 @@ update: ### 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@ @echo ' DOC Scanning header 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@ @_source_dir='' ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \ +@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \ +@ENABLE_GTK_DOC_TRUE@ done ; \ @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@ $${_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@ @echo ' DOC 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@ @gtkdoc-mktmpl --module=$(DOC_MODULE) +@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@ @touch tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@ @true -#### build xml; done on every build #### +#### xml #### -### 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@ @echo ' DOC 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@ @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@ $(MKDB_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities xml +@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 #### +#### html #### @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@ @echo ' DOC Building HTML' +@ENABLE_GTK_DOC_TRUE@ @rm -rf html +@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@ @cp -pr xml html +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities html +@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(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@ @echo ' DOC Fixing cross-references' +@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 +@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@ @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 @@ -1389,16 +1410,16 @@ update: @ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc: clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @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 -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 ; \ @@ -1408,7 +1429,7 @@ distclean-local: rm -rf tmpl/*.sgml ; \ rm -rf $(INSPECT_DIR); \ fi - rm -rf *.o + @rm -rf *.o # thomas: make docs parallel installable; devhelp requires majorminor too install-data-local: @@ -1428,9 +1449,7 @@ install-data-local: $(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; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml index 42bf40c..07fcdaa 100644 --- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml @@ -19,12 +19,12 @@ gst-plugins-bad Elements - + @@ -90,7 +90,9 @@ - + + + @@ -101,6 +103,9 @@ + + + @@ -121,20 +126,24 @@ + + + gst-plugins-bad Plugins + - + @@ -191,6 +200,7 @@ + @@ -210,6 +220,8 @@ + + diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt index 8595dd3..d7fc96e 100644 --- a/docs/plugins/gst-plugins-bad-plugins-sections.txt +++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt @@ -28,20 +28,6 @@ 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 @@ -130,6 +116,20 @@ gst_camerabin_get_type
+element-camerabin2 +camerabin2 +GstCameraBin2 + +GstCameraBin2Class +GST_CAMERA_BIN2 +GST_IS_CAMERA_BIN2 +GST_TYPE_CAMERA_BIN2 +GST_CAMERA_BIN2_CLASS +GST_IS_CAMERA_BIN2_CLASS +gst_camera_bin2_get_type +
+ +
element-celtdec celtdec GstCeltDec @@ -1147,6 +1147,34 @@ gst_rsvg_dec_get_type
+element-rtmpsink +rtmpsink +GstRTMPSink + +GstRTMPSinkClass +GST_RTMP_SINK +GST_IS_RTMP_SINK +GST_TYPE_RTMP_SINK +gst_rtmp_sink_get_type +GST_RTMP_SINK_CLASS +GST_IS_RTMP_SINK_CLASS +
+ +
+element-rtmpsrc +rtmpsrc +GstRTMPSrc + +GstRTMPSrcClass +GST_RTMP_SRC +GST_IS_RTMP_SRC +GST_TYPE_RTMP_SRC +gst_rtmp_src_get_type +GST_RTMP_SRC_CLASS +GST_IS_RTMP_SRC_CLASS +
+ +
element-rtpdtmfdepay rtpdtmfdepay GstRtpDTMFDepay @@ -1319,6 +1347,34 @@ gst_solarize_plugin_init
+element-spacescope +spacescope +GstSpaceScope + +GstSpaceScopeClass +GST_SPACE_SCOPE +GST_SPACE_SCOPE_CLASS +GST_IS_SPACE_SCOPE +GST_IS_SPACE_SCOPE_CLASS +GST_TYPE_SPACE_SCOPE +gst_space_scope_get_type +
+ +
+element-spectrascope +spectrascope +GstSpectraScope + +GstSpectraScopeClass +GST_SPECTRA_SCOPE +GST_SPECTRA_SCOPE_CLASS +GST_IS_SPECTRA_SCOPE +GST_IS_SPECTRA_SCOPE_CLASS +GST_TYPE_SPECTRA_SCOPE +gst_spectra_scope_get_type +
+ +
element-speed speed GstSpeed @@ -1395,6 +1451,20 @@ gst_stretch_get_type gst_stretch_plugin_init
+
+element-synaescope +synaescope +GstSynaeScope + +GstSynaeScopeClass +GST_SYNAE_SCOPE +GST_SYNAE_SCOPE_CLASS +GST_IS_SYNAE_SCOPE +GST_IS_SYNAE_SCOPE_CLASS +GST_TYPE_SYNAE_SCOPE +gst_synae_scope_get_type +
+ element-templatematch templatematch GstTemplateMatch @@ -1557,6 +1627,20 @@ gst_water_ripple_plugin_init
+element-wavescope +wavescope +GstWaveScope + +GstWaveScopeClass +GST_WAVE_SCOPE +GST_WAVE_SCOPE_CLASS +GST_IS_WAVE_SCOPE +GST_IS_WAVE_SCOPE_CLASS +GST_TYPE_WAVE_SCOPE +gst_wave_scope_get_type +
+ +
element-wildmidi wildmidi GstWildmidi @@ -1570,6 +1654,34 @@ GST_TYPE_WILDMIDI
+element-voaacenc +voaacenc +GstVoAacEnc + +GstVoAacEncClass +GST_VOAACENC +GST_VOAACENC_CLASS +GST_IS_VOAACENC +GST_IS_VOAACENC_CLASS +GST_TYPE_VOAACENC +gst_voaacenc_get_type +
+ +
+element-voamrwbenc +voamrwbenc +GstVoAmrwbEnc + +GstVoAmrwbEncClass +GST_VOAMRWBENC +GST_VOAMRWBENC_CLASS +GST_IS_VOAMRWBENC +GST_IS_VOAMRWBENC_CLASS +GST_TYPE_VOAMRWBENC +gst_voamrwbenc_get_type +
+ +
element-vp8dec vp8dec GstVP8Dec diff --git a/docs/plugins/gst-plugins-bad-plugins.args b/docs/plugins/gst-plugins-bad-plugins.args index 9408b2b..31bb1b5 100644 --- a/docs/plugins/gst-plugins-bad-plugins.args +++ b/docs/plugins/gst-plugins-bad-plugins.args @@ -39,9 +39,19 @@ +GstPitch::output-rate +gfloat +[0.1,10] +rw +Output Rate +Output rate on downstream segment events. +1 + + + GstXvidEnc::averaging-period gint -[G_MAXULONG,100] +[-1,100] rw Averaging Period [CBR] Number of frames for which XviD averages bitrate. @@ -91,7 +101,7 @@ GstXvidEnc::buffer gint ->= G_MAXULONG +>= -1 rw Buffer Size [CBR] Size of the video buffers. @@ -121,7 +131,7 @@ GstXvidEnc::container-frame-overhead gint -[G_MAXULONG,100] +[-1,100] rw Container Frame Overhead [PASS2] Average container overhead per frame. @@ -151,7 +161,7 @@ GstXvidEnc::flow-control-strength gint -[G_MAXULONG,100] +[-1,100] rw Flow Control Strength [PASS2] Overflow control strength per frame. @@ -211,7 +221,7 @@ GstXvidEnc::keyframe-reduction gint -[G_MAXULONG,100] +[-1,100] rw Keyframe Reduction [PASS2] Keyframe size reduction in % of those within threshold. @@ -221,7 +231,7 @@ GstXvidEnc::keyframe-threshold gint -[G_MAXULONG,100] +[-1,100] rw Keyframe Threshold [PASS2] Distance between keyframes not to be subject to reduction. @@ -281,7 +291,7 @@ GstXvidEnc::max-overflow-degradation gint -[G_MAXULONG,100] +[-1,100] rw Max Overflow Degradation [PASS2] Amount in % that flow control can decrease frame size compared to ideal curve. @@ -291,7 +301,7 @@ GstXvidEnc::max-overflow-improvement gint -[G_MAXULONG,100] +[-1,100] rw Max Overflow Improvement [PASS2] Amount in % that flow control can increase frame size compared to ideal curve. @@ -421,7 +431,7 @@ GstXvidEnc::reaction-delay-factor gint -[G_MAXULONG,100] +[-1,100] rw Reaction Delay Factor [CBR] Reaction delay factor. @@ -851,7 +861,7 @@ GstMpeg2enc::max-gop-size gint -[G_MAXULONG,250] +[-1,250] rw Max. GOP size Maximal size per Group-of-Pictures (-1=default). @@ -861,7 +871,7 @@ GstMpeg2enc::min-gop-size gint -[G_MAXULONG,250] +[-1,250] rw Min. GOP size Minimal size per Group-of-Pictures (-1=default). @@ -941,7 +951,7 @@ GstMpeg2enc::quantisation gint -[G_MAXULONG,31] +[-1,31] rw Quantisation Quantisation factor (-1=cbr, 0=default, 1=best, 31=worst). @@ -1092,9 +1102,9 @@ GstFaac::bitrate gint [8000,320000] -rw +rwx Bitrate (bps) -Bitrate in bits/sec. +Average Bitrate (ABR) in bits/sec. 128000 @@ -1102,7 +1112,7 @@ GstFaac::midside gboolean -rw +rwx Midside Allow mid/side encoding. TRUE @@ -1132,7 +1142,7 @@ GstFaac::shortctl GstFaacShortCtl -rw +rwx Block type Block type encorcing. SHORTCTL_NORMAL @@ -1142,13 +1152,33 @@ GstFaac::tns gboolean -rw +rwx TNS Use temporal noise shaping. FALSE +GstFaac::quality +gint +[1,1000] +rwx +Quality (%) +Variable bitrate (VBR) quantizer quality in %. +100 + + + +GstFaac::rate-control +GstFaacBrtype + +rwx +Rate Control (ABR/VBR) +Encoding bitrate type (VBR/ABR). +VBR + + + GstDtsDec::drc gboolean @@ -1701,7 +1731,7 @@ GstDvbSrc::diseqc-source gint -[G_MAXULONG,7] +[-1,7] rw diseqc source DISEqC selected source (-1 disabled) (DVB-S). @@ -1759,6 +1789,16 @@ +GstDvbSrc::timeout +guint64 + +rw +Timeout +Post a message after timeout microseconds (0 = disabled). +1000000 + + + GstRfbSrc::host gchar* @@ -1935,7 +1975,7 @@ rwx damping damping. -0,75 +0.75 @@ -1945,17 +1985,17 @@ rwx volume volume. -0,5 +0.5 ladspa-Plate2x2::bandwidth gfloat -[0,005,0,999] +[0.005,0.999] rwx bandwidth bandwidth. -0,502 +0.502 @@ -1965,37 +2005,37 @@ rwx blend blend. -0,25 +0.25 ladspa-Plate2x2::damping gfloat -[0,0005,1] +[0.0005,1] rwx damping damping. -0,250375 +0.250375 ladspa-Plate2x2::tail gfloat -[0,0,749] +[0,0.749] rwx tail tail. -0,3745 +0.3745 ladspa-Plate::bandwidth gfloat -[0,005,0,999] +[0.005,0.999] rwx bandwidth bandwidth. -0,502 +0.502 @@ -2005,47 +2045,47 @@ rwx blend blend. -0,25 +0.25 ladspa-Plate::damping gfloat -[0,0005,1] +[0.0005,1] rwx damping damping. -0,250375 +0.250375 ladspa-Plate::tail gfloat -[0,0,749] +[0,0.749] rwx tail tail. -0,3745 +0.3745 ladspa-JVRev::blend gfloat -[0,0,28] +[0,0.28] rwx blend blend. -0,07 +0.07 ladspa-JVRev::t60 gfloat -[0,4,6] +[0,4.6] rwx t60 t60. -2,3 +2.3 @@ -2065,7 +2105,7 @@ rwx volume volume. -0,5 +0.5 @@ -2085,7 +2125,7 @@ rwx y y. -0,5 +0.5 @@ -2115,7 +2155,7 @@ rwx volume volume. -0,5 +0.5 @@ -2155,13 +2195,13 @@ rwx volume volume. -0,5 +0.5 ladspa-Sin::f gfloat -[0,0001,20000] +[0.0001,20000] rwx f f. @@ -2175,7 +2215,7 @@ rwx volume volume. -0,5 +0.5 @@ -2205,7 +2245,7 @@ rwx volume volume. -0,5 +0.5 @@ -2215,7 +2255,7 @@ rwx blend blend. -0,5 +0.5 @@ -2305,7 +2345,7 @@ rwx volume volume. -0,5 +0.5 @@ -2355,7 +2395,7 @@ rwx volume volume. -0,5 +0.5 @@ -2365,7 +2405,7 @@ rwx blend blend. -0,75 +0.75 @@ -2375,7 +2415,7 @@ rwx bpm bpm. -82,5 +82.5 @@ -2395,7 +2435,7 @@ rwx dry dry. -0,25 +0.25 @@ -2405,17 +2445,17 @@ rwx feedback feedback. -0,25 +0.25 ladspa-SweepVFII::Q gfloat -[0,001,0,999] +[0.001,0.999] rwx Q Q. -0,5 +0.5 @@ -2425,7 +2465,7 @@ rwx Q-depth-x Q-depth-x. -0,25 +0.25 @@ -2435,7 +2475,7 @@ rwx Q-depth-y Q-depth-y. -0,5 +0.5 @@ -2451,11 +2491,11 @@ ladspa-SweepVFII::Q-h gfloat -[0,001,1] +[0.001,1] rwx Q-h Q-h. -0,25075 +0.25075 @@ -2465,7 +2505,7 @@ rwx f f. -209,717 +209.717 @@ -2475,7 +2515,7 @@ rwx f-depth-x f-depth-x. -0,25 +0.25 @@ -2485,7 +2525,7 @@ rwx f-depth-y f-depth-y. -0,5 +0.5 @@ -2501,11 +2541,11 @@ ladspa-SweepVFII::f-h gfloat -[0,001,1] +[0.001,1] rwx f-h f-h. -0,25075 +0.25075 @@ -2521,11 +2561,11 @@ ladspa-SweepVFI::Q gfloat -[0,001,0,999] +[0.001,0.999] rwx Q Q. -0,5 +0.5 @@ -2535,7 +2575,7 @@ rwx depth-x depth-x. -0,25 +0.25 @@ -2545,7 +2585,7 @@ rwx depth-y depth-y. -0,5 +0.5 @@ -2565,17 +2605,17 @@ rwx f f. -209,717 +209.717 ladspa-SweepVFI::h gfloat -[0,001,1] +[0.001,1] rwx h h. -0,25075 +0.25075 @@ -2595,17 +2635,17 @@ rwx depth depth. -0,75 +0.75 ladspa-PhaserII::feedback gfloat -[0,0,999] +[0,0.999] rwx feedback feedback. -0,74925 +0.74925 @@ -2615,17 +2655,17 @@ rwx rate rate. -0,25 +0.25 ladspa-PhaserII::spread gfloat -[0,1,5708] +[0,1.5708] rwx spread spread. -0,392699 +0.392699 @@ -2635,17 +2675,17 @@ rwx depth depth. -0,75 +0.75 ladspa-PhaserI::feedback gfloat -[0,0,999] +[0,0.999] rwx feedback feedback. -0,74925 +0.74925 @@ -2661,11 +2701,11 @@ ladspa-PhaserI::spread gfloat -[0,3,14159] +[0,3.14159] rwx spread spread. -0,785398 +0.785398 @@ -2695,7 +2735,7 @@ rwx feedforward feedforward. -0,5 +0.5 @@ -2705,27 +2745,27 @@ rwx rate rate. -0,25 +0.25 ladspa-StereoChorusII::t gfloat -[2,5,40] +[2.5,40] rwx t t. -11,875 +11.875 ladspa-StereoChorusII::width gfloat -[0,5,10] +[0.5,10] rwx width width. -2,875 +2.875 @@ -2755,7 +2795,7 @@ rwx feedforward feedforward. -0,25 +0.25 @@ -2765,13 +2805,13 @@ rwx rate rate. -0,25 +0.25 ladspa-ChorusII::t gfloat -[2,5,40] +[2.5,40] rwx t t. @@ -2781,7 +2821,7 @@ ladspa-ChorusII::width gfloat -[0,5,10] +[0.5,10] rwx width width. @@ -2815,7 +2855,7 @@ rwx feedforward feedforward. -0,25 +0.25 @@ -2835,23 +2875,23 @@ rwx rate rate. -1,25 +1.25 ladspa-StereoChorusI::t gfloat -[2,5,40] +[2.5,40] rwx t t. -2,5 +2.5 ladspa-StereoChorusI::width gfloat -[0,5,10] +[0.5,10] rwx width width. @@ -2885,7 +2925,7 @@ rwx feedforward feedforward. -0,25 +0.25 @@ -2895,13 +2935,13 @@ rwx rate rate. -1,25 +1.25 ladspa-ChorusI::t gfloat -[2,5,40] +[2.5,40] rwx t t. @@ -2911,7 +2951,7 @@ ladspa-ChorusI::width gfloat -[0,5,10] +[0.5,10] rwx width width. @@ -2935,7 +2975,7 @@ r latency latency. --3,40282e+38 +-3.40282e+38 @@ -2951,7 +2991,7 @@ ladspa-CabinetII::model gint -[0,5] +[0,7] rwx model model. @@ -2991,11 +3031,11 @@ ladspa-AmpV::drive gfloat -[0,0001,1] +[0.0001,1] rwx drive drive. -0,750025 +0.750025 @@ -3015,7 +3055,7 @@ r latency latency. --3,40282e+38 +-3.40282e+38 @@ -3035,7 +3075,7 @@ rwx watts watts. -77,5 +77.5 @@ -3051,7 +3091,7 @@ ladspa-AmpIV::drive gfloat -[0,0001,1] +[0.0001,1] rwx drive drive. @@ -3085,7 +3125,7 @@ r latency latency. --3,40282e+38 +-3.40282e+38 @@ -3101,11 +3141,11 @@ ladspa-AmpIV::temperature gfloat -[0,005,1] +[0.005,1] rwx temperature temperature. -0,5025 +0.5025 @@ -3121,7 +3161,7 @@ ladspa-AmpIII::drive gfloat -[0,0001,1] +[0.0001,1] rwx drive drive. @@ -3145,17 +3185,17 @@ r latency latency. --3,40282e+38 +-3.40282e+38 ladspa-AmpIII::temperature gfloat -[0,005,1] +[0.005,1] rwx temperature temperature. -0,5025 +0.5025 @@ -3195,7 +3235,7 @@ r latency latency. --3,40282e+38 +-3.40282e+38 @@ -3211,11 +3251,11 @@ ladspa-PreampIV::temperature gfloat -[0,005,1] +[0.005,1] rwx temperature temperature. -0,5025 +0.5025 @@ -3245,17 +3285,17 @@ r latency latency. --3,40282e+38 +-3.40282e+38 ladspa-PreampIII::temperature gfloat -[0,005,1] +[0.005,1] rwx temperature temperature. -0,25375 +0.25375 @@ -3281,11 +3321,11 @@ ladspa-Pan::t gfloat -[0,1,40] +[0.1,40] rwx t t. -10,075 +10.075 @@ -3301,11 +3341,11 @@ ladspa-Compress::attack gfloat -[0,001,1] +[0.001,1] rwx attack attack. -0,001 +0.001 @@ -3325,7 +3365,7 @@ rwx knee-radius knee-radius. -3,25 +3.25 @@ -3341,11 +3381,11 @@ ladspa-Compress::release gfloat -[0,001,1] +[0.001,1] rwx release release. -0,5005 +0.5005 @@ -3415,7 +3455,7 @@ rwx param-31-Hz param-31-Hz. --30 +0 @@ -3475,7 +3515,7 @@ rwx Slope Slope. -0,5 +0.5 @@ -3515,13 +3555,13 @@ rwx Slope Slope. -0,5 +0.5 ladspa-tracker-gaacdcia-oa::Attack-Rate gfloat -[0,91875,22050] +[0.91875,22050] rwx Attack-Rate Attack-Rate. @@ -3531,7 +3571,7 @@ ladspa-tracker-gaacdcia-oa::Attack-Rate-1 gfloat -[0,91875,22050] +[0.91875,22050] rwx Attack-Rate-1 Attack-Rate-1. @@ -3541,7 +3581,7 @@ ladspa-tracker-gaacdcia-oa::Decay-Rate gfloat -[0,91875,22050] +[0.91875,22050] rwx Decay-Rate Decay-Rate. @@ -3551,7 +3591,7 @@ ladspa-tracker-gaacdcia-oa::Decay-Rate-1 gfloat -[0,91875,22050] +[0.91875,22050] rwx Decay-Rate-1 Decay-Rate-1. @@ -3595,7 +3635,7 @@ rwx Closed-Gate-Value Closed-Gate-Value. --3,40282e+38 +-3.40282e+38 @@ -3625,7 +3665,7 @@ rwx Value-Step-0 Value-Step-0. --3,40282e+38 +-3.40282e+38 @@ -3635,7 +3675,7 @@ rwx Value-Step-1 Value-Step-1. --3,40282e+38 +-3.40282e+38 @@ -3645,7 +3685,7 @@ rwx Value-Step-10 Value-Step-10. --3,40282e+38 +-3.40282e+38 @@ -3655,7 +3695,7 @@ rwx Value-Step-11 Value-Step-11. --3,40282e+38 +-3.40282e+38 @@ -3665,7 +3705,7 @@ rwx Value-Step-12 Value-Step-12. --3,40282e+38 +-3.40282e+38 @@ -3675,7 +3715,7 @@ rwx Value-Step-13 Value-Step-13. --3,40282e+38 +-3.40282e+38 @@ -3685,7 +3725,7 @@ rwx Value-Step-14 Value-Step-14. --3,40282e+38 +-3.40282e+38 @@ -3695,7 +3735,7 @@ rwx Value-Step-15 Value-Step-15. --3,40282e+38 +-3.40282e+38 @@ -3705,7 +3745,7 @@ rwx Value-Step-2 Value-Step-2. --3,40282e+38 +-3.40282e+38 @@ -3715,7 +3755,7 @@ rwx Value-Step-3 Value-Step-3. --3,40282e+38 +-3.40282e+38 @@ -3725,7 +3765,7 @@ rwx Value-Step-4 Value-Step-4. --3,40282e+38 +-3.40282e+38 @@ -3735,7 +3775,7 @@ rwx Value-Step-5 Value-Step-5. --3,40282e+38 +-3.40282e+38 @@ -3745,7 +3785,7 @@ rwx Value-Step-6 Value-Step-6. --3,40282e+38 +-3.40282e+38 @@ -3755,7 +3795,7 @@ rwx Value-Step-7 Value-Step-7. --3,40282e+38 +-3.40282e+38 @@ -3765,7 +3805,7 @@ rwx Value-Step-8 Value-Step-8. --3,40282e+38 +-3.40282e+38 @@ -3775,7 +3815,7 @@ rwx Value-Step-9 Value-Step-9. --3,40282e+38 +-3.40282e+38 @@ -3785,7 +3825,7 @@ rwx Closed-Gate-Value Closed-Gate-Value. --3,40282e+38 +-3.40282e+38 @@ -3815,7 +3855,7 @@ rwx Value-Step-0 Value-Step-0. --3,40282e+38 +-3.40282e+38 @@ -3825,7 +3865,7 @@ rwx Value-Step-1 Value-Step-1. --3,40282e+38 +-3.40282e+38 @@ -3835,7 +3875,7 @@ rwx Value-Step-10 Value-Step-10. --3,40282e+38 +-3.40282e+38 @@ -3845,7 +3885,7 @@ rwx Value-Step-11 Value-Step-11. --3,40282e+38 +-3.40282e+38 @@ -3855,7 +3895,7 @@ rwx Value-Step-12 Value-Step-12. --3,40282e+38 +-3.40282e+38 @@ -3865,7 +3905,7 @@ rwx Value-Step-13 Value-Step-13. --3,40282e+38 +-3.40282e+38 @@ -3875,7 +3915,7 @@ rwx Value-Step-14 Value-Step-14. --3,40282e+38 +-3.40282e+38 @@ -3885,7 +3925,7 @@ rwx Value-Step-15 Value-Step-15. --3,40282e+38 +-3.40282e+38 @@ -3895,7 +3935,7 @@ rwx Value-Step-16 Value-Step-16. --3,40282e+38 +-3.40282e+38 @@ -3905,7 +3945,7 @@ rwx Value-Step-17 Value-Step-17. --3,40282e+38 +-3.40282e+38 @@ -3915,7 +3955,7 @@ rwx Value-Step-18 Value-Step-18. --3,40282e+38 +-3.40282e+38 @@ -3925,7 +3965,7 @@ rwx Value-Step-19 Value-Step-19. --3,40282e+38 +-3.40282e+38 @@ -3935,7 +3975,7 @@ rwx Value-Step-2 Value-Step-2. --3,40282e+38 +-3.40282e+38 @@ -3945,7 +3985,7 @@ rwx Value-Step-20 Value-Step-20. --3,40282e+38 +-3.40282e+38 @@ -3955,7 +3995,7 @@ rwx Value-Step-21 Value-Step-21. --3,40282e+38 +-3.40282e+38 @@ -3965,7 +4005,7 @@ rwx Value-Step-22 Value-Step-22. --3,40282e+38 +-3.40282e+38 @@ -3975,7 +4015,7 @@ rwx Value-Step-23 Value-Step-23. --3,40282e+38 +-3.40282e+38 @@ -3985,7 +4025,7 @@ rwx Value-Step-24 Value-Step-24. --3,40282e+38 +-3.40282e+38 @@ -3995,7 +4035,7 @@ rwx Value-Step-25 Value-Step-25. --3,40282e+38 +-3.40282e+38 @@ -4005,7 +4045,7 @@ rwx Value-Step-26 Value-Step-26. --3,40282e+38 +-3.40282e+38 @@ -4015,7 +4055,7 @@ rwx Value-Step-27 Value-Step-27. --3,40282e+38 +-3.40282e+38 @@ -4025,7 +4065,7 @@ rwx Value-Step-28 Value-Step-28. --3,40282e+38 +-3.40282e+38 @@ -4035,7 +4075,7 @@ rwx Value-Step-29 Value-Step-29. --3,40282e+38 +-3.40282e+38 @@ -4045,7 +4085,7 @@ rwx Value-Step-3 Value-Step-3. --3,40282e+38 +-3.40282e+38 @@ -4055,7 +4095,7 @@ rwx Value-Step-30 Value-Step-30. --3,40282e+38 +-3.40282e+38 @@ -4065,7 +4105,7 @@ rwx Value-Step-31 Value-Step-31. --3,40282e+38 +-3.40282e+38 @@ -4075,7 +4115,7 @@ rwx Value-Step-4 Value-Step-4. --3,40282e+38 +-3.40282e+38 @@ -4085,7 +4125,7 @@ rwx Value-Step-5 Value-Step-5. --3,40282e+38 +-3.40282e+38 @@ -4095,7 +4135,7 @@ rwx Value-Step-6 Value-Step-6. --3,40282e+38 +-3.40282e+38 @@ -4105,7 +4145,7 @@ rwx Value-Step-7 Value-Step-7. --3,40282e+38 +-3.40282e+38 @@ -4115,7 +4155,7 @@ rwx Value-Step-8 Value-Step-8. --3,40282e+38 +-3.40282e+38 @@ -4125,7 +4165,7 @@ rwx Value-Step-9 Value-Step-9. --3,40282e+38 +-3.40282e+38 @@ -4135,7 +4175,7 @@ rwx Closed-Gate-Value Closed-Gate-Value. --3,40282e+38 +-3.40282e+38 @@ -4165,7 +4205,7 @@ rwx Value-Step-0 Value-Step-0. --3,40282e+38 +-3.40282e+38 @@ -4175,7 +4215,7 @@ rwx Value-Step-1 Value-Step-1. --3,40282e+38 +-3.40282e+38 @@ -4185,7 +4225,7 @@ rwx Value-Step-10 Value-Step-10. --3,40282e+38 +-3.40282e+38 @@ -4195,7 +4235,7 @@ rwx Value-Step-11 Value-Step-11. --3,40282e+38 +-3.40282e+38 @@ -4205,7 +4245,7 @@ rwx Value-Step-12 Value-Step-12. --3,40282e+38 +-3.40282e+38 @@ -4215,7 +4255,7 @@ rwx Value-Step-13 Value-Step-13. --3,40282e+38 +-3.40282e+38 @@ -4225,7 +4265,7 @@ rwx Value-Step-14 Value-Step-14. --3,40282e+38 +-3.40282e+38 @@ -4235,7 +4275,7 @@ rwx Value-Step-15 Value-Step-15. --3,40282e+38 +-3.40282e+38 @@ -4245,7 +4285,7 @@ rwx Value-Step-16 Value-Step-16. --3,40282e+38 +-3.40282e+38 @@ -4255,7 +4295,7 @@ rwx Value-Step-17 Value-Step-17. --3,40282e+38 +-3.40282e+38 @@ -4265,7 +4305,7 @@ rwx Value-Step-18 Value-Step-18. --3,40282e+38 +-3.40282e+38 @@ -4275,7 +4315,7 @@ rwx Value-Step-19 Value-Step-19. --3,40282e+38 +-3.40282e+38 @@ -4285,7 +4325,7 @@ rwx Value-Step-2 Value-Step-2. --3,40282e+38 +-3.40282e+38 @@ -4295,7 +4335,7 @@ rwx Value-Step-20 Value-Step-20. --3,40282e+38 +-3.40282e+38 @@ -4305,7 +4345,7 @@ rwx Value-Step-21 Value-Step-21. --3,40282e+38 +-3.40282e+38 @@ -4315,7 +4355,7 @@ rwx Value-Step-22 Value-Step-22. --3,40282e+38 +-3.40282e+38 @@ -4325,7 +4365,7 @@ rwx Value-Step-23 Value-Step-23. --3,40282e+38 +-3.40282e+38 @@ -4335,7 +4375,7 @@ rwx Value-Step-24 Value-Step-24. --3,40282e+38 +-3.40282e+38 @@ -4345,7 +4385,7 @@ rwx Value-Step-25 Value-Step-25. --3,40282e+38 +-3.40282e+38 @@ -4355,7 +4395,7 @@ rwx Value-Step-26 Value-Step-26. --3,40282e+38 +-3.40282e+38 @@ -4365,7 +4405,7 @@ rwx Value-Step-27 Value-Step-27. --3,40282e+38 +-3.40282e+38 @@ -4375,7 +4415,7 @@ rwx Value-Step-28 Value-Step-28. --3,40282e+38 +-3.40282e+38 @@ -4385,7 +4425,7 @@ rwx Value-Step-29 Value-Step-29. --3,40282e+38 +-3.40282e+38 @@ -4395,7 +4435,7 @@ rwx Value-Step-3 Value-Step-3. --3,40282e+38 +-3.40282e+38 @@ -4405,7 +4445,7 @@ rwx Value-Step-30 Value-Step-30. --3,40282e+38 +-3.40282e+38 @@ -4415,7 +4455,7 @@ rwx Value-Step-31 Value-Step-31. --3,40282e+38 +-3.40282e+38 @@ -4425,7 +4465,7 @@ rwx Value-Step-32 Value-Step-32. --3,40282e+38 +-3.40282e+38 @@ -4435,7 +4475,7 @@ rwx Value-Step-33 Value-Step-33. --3,40282e+38 +-3.40282e+38 @@ -4445,7 +4485,7 @@ rwx Value-Step-34 Value-Step-34. --3,40282e+38 +-3.40282e+38 @@ -4455,7 +4495,7 @@ rwx Value-Step-35 Value-Step-35. --3,40282e+38 +-3.40282e+38 @@ -4465,7 +4505,7 @@ rwx Value-Step-36 Value-Step-36. --3,40282e+38 +-3.40282e+38 @@ -4475,7 +4515,7 @@ rwx Value-Step-37 Value-Step-37. --3,40282e+38 +-3.40282e+38 @@ -4485,7 +4525,7 @@ rwx Value-Step-38 Value-Step-38. --3,40282e+38 +-3.40282e+38 @@ -4495,7 +4535,7 @@ rwx Value-Step-39 Value-Step-39. --3,40282e+38 +-3.40282e+38 @@ -4505,7 +4545,7 @@ rwx Value-Step-4 Value-Step-4. --3,40282e+38 +-3.40282e+38 @@ -4515,7 +4555,7 @@ rwx Value-Step-40 Value-Step-40. --3,40282e+38 +-3.40282e+38 @@ -4525,7 +4565,7 @@ rwx Value-Step-41 Value-Step-41. --3,40282e+38 +-3.40282e+38 @@ -4535,7 +4575,7 @@ rwx Value-Step-42 Value-Step-42. --3,40282e+38 +-3.40282e+38 @@ -4545,7 +4585,7 @@ rwx Value-Step-43 Value-Step-43. --3,40282e+38 +-3.40282e+38 @@ -4555,7 +4595,7 @@ rwx Value-Step-44 Value-Step-44. --3,40282e+38 +-3.40282e+38 @@ -4565,7 +4605,7 @@ rwx Value-Step-45 Value-Step-45. --3,40282e+38 +-3.40282e+38 @@ -4575,7 +4615,7 @@ rwx Value-Step-46 Value-Step-46. --3,40282e+38 +-3.40282e+38 @@ -4585,7 +4625,7 @@ rwx Value-Step-47 Value-Step-47. --3,40282e+38 +-3.40282e+38 @@ -4595,7 +4635,7 @@ rwx Value-Step-48 Value-Step-48. --3,40282e+38 +-3.40282e+38 @@ -4605,7 +4645,7 @@ rwx Value-Step-49 Value-Step-49. --3,40282e+38 +-3.40282e+38 @@ -4615,7 +4655,7 @@ rwx Value-Step-5 Value-Step-5. --3,40282e+38 +-3.40282e+38 @@ -4625,7 +4665,7 @@ rwx Value-Step-50 Value-Step-50. --3,40282e+38 +-3.40282e+38 @@ -4635,7 +4675,7 @@ rwx Value-Step-51 Value-Step-51. --3,40282e+38 +-3.40282e+38 @@ -4645,7 +4685,7 @@ rwx Value-Step-52 Value-Step-52. --3,40282e+38 +-3.40282e+38 @@ -4655,7 +4695,7 @@ rwx Value-Step-53 Value-Step-53. --3,40282e+38 +-3.40282e+38 @@ -4665,7 +4705,7 @@ rwx Value-Step-54 Value-Step-54. --3,40282e+38 +-3.40282e+38 @@ -4675,7 +4715,7 @@ rwx Value-Step-55 Value-Step-55. --3,40282e+38 +-3.40282e+38 @@ -4685,7 +4725,7 @@ rwx Value-Step-56 Value-Step-56. --3,40282e+38 +-3.40282e+38 @@ -4695,7 +4735,7 @@ rwx Value-Step-57 Value-Step-57. --3,40282e+38 +-3.40282e+38 @@ -4705,7 +4745,7 @@ rwx Value-Step-58 Value-Step-58. --3,40282e+38 +-3.40282e+38 @@ -4715,7 +4755,7 @@ rwx Value-Step-59 Value-Step-59. --3,40282e+38 +-3.40282e+38 @@ -4725,7 +4765,7 @@ rwx Value-Step-6 Value-Step-6. --3,40282e+38 +-3.40282e+38 @@ -4735,7 +4775,7 @@ rwx Value-Step-60 Value-Step-60. --3,40282e+38 +-3.40282e+38 @@ -4745,7 +4785,7 @@ rwx Value-Step-61 Value-Step-61. --3,40282e+38 +-3.40282e+38 @@ -4755,7 +4795,7 @@ rwx Value-Step-62 Value-Step-62. --3,40282e+38 +-3.40282e+38 @@ -4765,7 +4805,7 @@ rwx Value-Step-63 Value-Step-63. --3,40282e+38 +-3.40282e+38 @@ -4775,7 +4815,7 @@ rwx Value-Step-7 Value-Step-7. --3,40282e+38 +-3.40282e+38 @@ -4785,7 +4825,7 @@ rwx Value-Step-8 Value-Step-8. --3,40282e+38 +-3.40282e+38 @@ -4795,7 +4835,7 @@ rwx Value-Step-9 Value-Step-9. --3,40282e+38 +-3.40282e+38 @@ -4825,7 +4865,7 @@ rwx Denominator Denominator. --3,40282e+38 +-3.40282e+38 @@ -4835,7 +4875,7 @@ rwx Numerator Numerator. --3,40282e+38 +-3.40282e+38 @@ -4845,7 +4885,7 @@ r Ratio-Output Ratio-Output. --3,40282e+38 +-3.40282e+38 @@ -4855,7 +4895,7 @@ rwx Numerator Numerator. --3,40282e+38 +-3.40282e+38 @@ -4865,7 +4905,7 @@ rwx Denominator Denominator. --3,40282e+38 +-3.40282e+38 @@ -4955,7 +4995,7 @@ rwx Quantise-Range-Maximum Quantise-Range-Maximum. --3,40282e+38 +-3.40282e+38 @@ -4965,7 +5005,7 @@ rwx Quantise-Range-Minimum Quantise-Range-Minimum. --3,40282e+38 +-3.40282e+38 @@ -4985,7 +5025,7 @@ rwx Value-0 Value-0. --3,40282e+38 +-3.40282e+38 @@ -4995,7 +5035,7 @@ rwx Value-1 Value-1. --3,40282e+38 +-3.40282e+38 @@ -5005,7 +5045,7 @@ rwx Value-10 Value-10. --3,40282e+38 +-3.40282e+38 @@ -5015,7 +5055,7 @@ rwx Value-11 Value-11. --3,40282e+38 +-3.40282e+38 @@ -5025,7 +5065,7 @@ rwx Value-12 Value-12. --3,40282e+38 +-3.40282e+38 @@ -5035,7 +5075,7 @@ rwx Value-13 Value-13. --3,40282e+38 +-3.40282e+38 @@ -5045,7 +5085,7 @@ rwx Value-14 Value-14. --3,40282e+38 +-3.40282e+38 @@ -5055,7 +5095,7 @@ rwx Value-15 Value-15. --3,40282e+38 +-3.40282e+38 @@ -5065,7 +5105,7 @@ rwx Value-16 Value-16. --3,40282e+38 +-3.40282e+38 @@ -5075,7 +5115,7 @@ rwx Value-17 Value-17. --3,40282e+38 +-3.40282e+38 @@ -5085,7 +5125,7 @@ rwx Value-18 Value-18. --3,40282e+38 +-3.40282e+38 @@ -5095,7 +5135,7 @@ rwx Value-19 Value-19. --3,40282e+38 +-3.40282e+38 @@ -5105,7 +5145,7 @@ rwx Value-2 Value-2. --3,40282e+38 +-3.40282e+38 @@ -5115,7 +5155,7 @@ rwx Value-20 Value-20. --3,40282e+38 +-3.40282e+38 @@ -5125,7 +5165,7 @@ rwx Value-21 Value-21. --3,40282e+38 +-3.40282e+38 @@ -5135,7 +5175,7 @@ rwx Value-22 Value-22. --3,40282e+38 +-3.40282e+38 @@ -5145,7 +5185,7 @@ rwx Value-23 Value-23. --3,40282e+38 +-3.40282e+38 @@ -5155,7 +5195,7 @@ rwx Value-24 Value-24. --3,40282e+38 +-3.40282e+38 @@ -5165,7 +5205,7 @@ rwx Value-25 Value-25. --3,40282e+38 +-3.40282e+38 @@ -5175,7 +5215,7 @@ rwx Value-26 Value-26. --3,40282e+38 +-3.40282e+38 @@ -5185,7 +5225,7 @@ rwx Value-27 Value-27. --3,40282e+38 +-3.40282e+38 @@ -5195,7 +5235,7 @@ rwx Value-28 Value-28. --3,40282e+38 +-3.40282e+38 @@ -5205,7 +5245,7 @@ rwx Value-29 Value-29. --3,40282e+38 +-3.40282e+38 @@ -5215,7 +5255,7 @@ rwx Value-3 Value-3. --3,40282e+38 +-3.40282e+38 @@ -5225,7 +5265,7 @@ rwx Value-30 Value-30. --3,40282e+38 +-3.40282e+38 @@ -5235,7 +5275,7 @@ rwx Value-31 Value-31. --3,40282e+38 +-3.40282e+38 @@ -5245,7 +5285,7 @@ rwx Value-32 Value-32. --3,40282e+38 +-3.40282e+38 @@ -5255,7 +5295,7 @@ rwx Value-33 Value-33. --3,40282e+38 +-3.40282e+38 @@ -5265,7 +5305,7 @@ rwx Value-34 Value-34. --3,40282e+38 +-3.40282e+38 @@ -5275,7 +5315,7 @@ rwx Value-35 Value-35. --3,40282e+38 +-3.40282e+38 @@ -5285,7 +5325,7 @@ rwx Value-36 Value-36. --3,40282e+38 +-3.40282e+38 @@ -5295,7 +5335,7 @@ rwx Value-37 Value-37. --3,40282e+38 +-3.40282e+38 @@ -5305,7 +5345,7 @@ rwx Value-38 Value-38. --3,40282e+38 +-3.40282e+38 @@ -5315,7 +5355,7 @@ rwx Value-39 Value-39. --3,40282e+38 +-3.40282e+38 @@ -5325,7 +5365,7 @@ rwx Value-4 Value-4. --3,40282e+38 +-3.40282e+38 @@ -5335,7 +5375,7 @@ rwx Value-40 Value-40. --3,40282e+38 +-3.40282e+38 @@ -5345,7 +5385,7 @@ rwx Value-41 Value-41. --3,40282e+38 +-3.40282e+38 @@ -5355,7 +5395,7 @@ rwx Value-42 Value-42. --3,40282e+38 +-3.40282e+38 @@ -5365,7 +5405,7 @@ rwx Value-43 Value-43. --3,40282e+38 +-3.40282e+38 @@ -5375,7 +5415,7 @@ rwx Value-44 Value-44. --3,40282e+38 +-3.40282e+38 @@ -5385,7 +5425,7 @@ rwx Value-45 Value-45. --3,40282e+38 +-3.40282e+38 @@ -5395,7 +5435,7 @@ rwx Value-46 Value-46. --3,40282e+38 +-3.40282e+38 @@ -5405,7 +5445,7 @@ rwx Value-47 Value-47. --3,40282e+38 +-3.40282e+38 @@ -5415,7 +5455,7 @@ rwx Value-48 Value-48. --3,40282e+38 +-3.40282e+38 @@ -5425,7 +5465,7 @@ rwx Value-49 Value-49. --3,40282e+38 +-3.40282e+38 @@ -5435,7 +5475,7 @@ rwx Value-5 Value-5. --3,40282e+38 +-3.40282e+38 @@ -5445,7 +5485,7 @@ rwx Value-50 Value-50. --3,40282e+38 +-3.40282e+38 @@ -5455,7 +5495,7 @@ rwx Value-51 Value-51. --3,40282e+38 +-3.40282e+38 @@ -5465,7 +5505,7 @@ rwx Value-52 Value-52. --3,40282e+38 +-3.40282e+38 @@ -5475,7 +5515,7 @@ rwx Value-53 Value-53. --3,40282e+38 +-3.40282e+38 @@ -5485,7 +5525,7 @@ rwx Value-54 Value-54. --3,40282e+38 +-3.40282e+38 @@ -5495,7 +5535,7 @@ rwx Value-55 Value-55. --3,40282e+38 +-3.40282e+38 @@ -5505,7 +5545,7 @@ rwx Value-56 Value-56. --3,40282e+38 +-3.40282e+38 @@ -5515,7 +5555,7 @@ rwx Value-57 Value-57. --3,40282e+38 +-3.40282e+38 @@ -5525,7 +5565,7 @@ rwx Value-58 Value-58. --3,40282e+38 +-3.40282e+38 @@ -5535,7 +5575,7 @@ rwx Value-59 Value-59. --3,40282e+38 +-3.40282e+38 @@ -5545,7 +5585,7 @@ rwx Value-6 Value-6. --3,40282e+38 +-3.40282e+38 @@ -5555,7 +5595,7 @@ rwx Value-60 Value-60. --3,40282e+38 +-3.40282e+38 @@ -5565,7 +5605,7 @@ rwx Value-61 Value-61. --3,40282e+38 +-3.40282e+38 @@ -5575,7 +5615,7 @@ rwx Value-62 Value-62. --3,40282e+38 +-3.40282e+38 @@ -5585,7 +5625,7 @@ rwx Value-63 Value-63. --3,40282e+38 +-3.40282e+38 @@ -5595,7 +5635,7 @@ rwx Value-64 Value-64. --3,40282e+38 +-3.40282e+38 @@ -5605,7 +5645,7 @@ rwx Value-65 Value-65. --3,40282e+38 +-3.40282e+38 @@ -5615,7 +5655,7 @@ rwx Value-66 Value-66. --3,40282e+38 +-3.40282e+38 @@ -5625,7 +5665,7 @@ rwx Value-67 Value-67. --3,40282e+38 +-3.40282e+38 @@ -5635,7 +5675,7 @@ rwx Value-68 Value-68. --3,40282e+38 +-3.40282e+38 @@ -5645,7 +5685,7 @@ rwx Value-69 Value-69. --3,40282e+38 +-3.40282e+38 @@ -5655,7 +5695,7 @@ rwx Value-7 Value-7. --3,40282e+38 +-3.40282e+38 @@ -5665,7 +5705,7 @@ rwx Value-70 Value-70. --3,40282e+38 +-3.40282e+38 @@ -5675,7 +5715,7 @@ rwx Value-71 Value-71. --3,40282e+38 +-3.40282e+38 @@ -5685,7 +5725,7 @@ rwx Value-72 Value-72. --3,40282e+38 +-3.40282e+38 @@ -5695,7 +5735,7 @@ rwx Value-73 Value-73. --3,40282e+38 +-3.40282e+38 @@ -5705,7 +5745,7 @@ rwx Value-74 Value-74. --3,40282e+38 +-3.40282e+38 @@ -5715,7 +5755,7 @@ rwx Value-75 Value-75. --3,40282e+38 +-3.40282e+38 @@ -5725,7 +5765,7 @@ rwx Value-76 Value-76. --3,40282e+38 +-3.40282e+38 @@ -5735,7 +5775,7 @@ rwx Value-77 Value-77. --3,40282e+38 +-3.40282e+38 @@ -5745,7 +5785,7 @@ rwx Value-78 Value-78. --3,40282e+38 +-3.40282e+38 @@ -5755,7 +5795,7 @@ rwx Value-79 Value-79. --3,40282e+38 +-3.40282e+38 @@ -5765,7 +5805,7 @@ rwx Value-8 Value-8. --3,40282e+38 +-3.40282e+38 @@ -5775,7 +5815,7 @@ rwx Value-80 Value-80. --3,40282e+38 +-3.40282e+38 @@ -5785,7 +5825,7 @@ rwx Value-81 Value-81. --3,40282e+38 +-3.40282e+38 @@ -5795,7 +5835,7 @@ rwx Value-82 Value-82. --3,40282e+38 +-3.40282e+38 @@ -5805,7 +5845,7 @@ rwx Value-83 Value-83. --3,40282e+38 +-3.40282e+38 @@ -5815,7 +5855,7 @@ rwx Value-84 Value-84. --3,40282e+38 +-3.40282e+38 @@ -5825,7 +5865,7 @@ rwx Value-85 Value-85. --3,40282e+38 +-3.40282e+38 @@ -5835,7 +5875,7 @@ rwx Value-86 Value-86. --3,40282e+38 +-3.40282e+38 @@ -5845,7 +5885,7 @@ rwx Value-87 Value-87. --3,40282e+38 +-3.40282e+38 @@ -5855,7 +5895,7 @@ rwx Value-88 Value-88. --3,40282e+38 +-3.40282e+38 @@ -5865,7 +5905,7 @@ rwx Value-89 Value-89. --3,40282e+38 +-3.40282e+38 @@ -5875,7 +5915,7 @@ rwx Value-9 Value-9. --3,40282e+38 +-3.40282e+38 @@ -5885,7 +5925,7 @@ rwx Value-90 Value-90. --3,40282e+38 +-3.40282e+38 @@ -5895,7 +5935,7 @@ rwx Value-91 Value-91. --3,40282e+38 +-3.40282e+38 @@ -5905,7 +5945,7 @@ rwx Value-92 Value-92. --3,40282e+38 +-3.40282e+38 @@ -5915,7 +5955,7 @@ rwx Value-93 Value-93. --3,40282e+38 +-3.40282e+38 @@ -5925,7 +5965,7 @@ rwx Value-94 Value-94. --3,40282e+38 +-3.40282e+38 @@ -5935,7 +5975,7 @@ rwx Value-95 Value-95. --3,40282e+38 +-3.40282e+38 @@ -5945,7 +5985,7 @@ rwx Value-96 Value-96. --3,40282e+38 +-3.40282e+38 @@ -5955,7 +5995,7 @@ rwx Value-97 Value-97. --3,40282e+38 +-3.40282e+38 @@ -5965,7 +6005,7 @@ rwx Value-98 Value-98. --3,40282e+38 +-3.40282e+38 @@ -5975,7 +6015,7 @@ rwx Value-99 Value-99. --3,40282e+38 +-3.40282e+38 @@ -6005,7 +6045,7 @@ rwx Quantise-Range-Maximum Quantise-Range-Maximum. --3,40282e+38 +-3.40282e+38 @@ -6015,7 +6055,7 @@ rwx Quantise-Range-Minimum Quantise-Range-Minimum. --3,40282e+38 +-3.40282e+38 @@ -6035,7 +6075,7 @@ rwx Value-0 Value-0. --3,40282e+38 +-3.40282e+38 @@ -6045,7 +6085,7 @@ rwx Value-1 Value-1. --3,40282e+38 +-3.40282e+38 @@ -6055,7 +6095,7 @@ rwx Value-10 Value-10. --3,40282e+38 +-3.40282e+38 @@ -6065,7 +6105,7 @@ rwx Value-11 Value-11. --3,40282e+38 +-3.40282e+38 @@ -6075,7 +6115,7 @@ rwx Value-12 Value-12. --3,40282e+38 +-3.40282e+38 @@ -6085,7 +6125,7 @@ rwx Value-13 Value-13. --3,40282e+38 +-3.40282e+38 @@ -6095,7 +6135,7 @@ rwx Value-14 Value-14. --3,40282e+38 +-3.40282e+38 @@ -6105,7 +6145,7 @@ rwx Value-15 Value-15. --3,40282e+38 +-3.40282e+38 @@ -6115,7 +6155,7 @@ rwx Value-16 Value-16. --3,40282e+38 +-3.40282e+38 @@ -6125,7 +6165,7 @@ rwx Value-17 Value-17. --3,40282e+38 +-3.40282e+38 @@ -6135,7 +6175,7 @@ rwx Value-18 Value-18. --3,40282e+38 +-3.40282e+38 @@ -6145,7 +6185,7 @@ rwx Value-19 Value-19. --3,40282e+38 +-3.40282e+38 @@ -6155,7 +6195,7 @@ rwx Value-2 Value-2. --3,40282e+38 +-3.40282e+38 @@ -6165,7 +6205,7 @@ rwx Value-20 Value-20. --3,40282e+38 +-3.40282e+38 @@ -6175,7 +6215,7 @@ rwx Value-21 Value-21. --3,40282e+38 +-3.40282e+38 @@ -6185,7 +6225,7 @@ rwx Value-22 Value-22. --3,40282e+38 +-3.40282e+38 @@ -6195,7 +6235,7 @@ rwx Value-23 Value-23. --3,40282e+38 +-3.40282e+38 @@ -6205,7 +6245,7 @@ rwx Value-24 Value-24. --3,40282e+38 +-3.40282e+38 @@ -6215,7 +6255,7 @@ rwx Value-25 Value-25. --3,40282e+38 +-3.40282e+38 @@ -6225,7 +6265,7 @@ rwx Value-26 Value-26. --3,40282e+38 +-3.40282e+38 @@ -6235,7 +6275,7 @@ rwx Value-27 Value-27. --3,40282e+38 +-3.40282e+38 @@ -6245,7 +6285,7 @@ rwx Value-28 Value-28. --3,40282e+38 +-3.40282e+38 @@ -6255,7 +6295,7 @@ rwx Value-29 Value-29. --3,40282e+38 +-3.40282e+38 @@ -6265,7 +6305,7 @@ rwx Value-3 Value-3. --3,40282e+38 +-3.40282e+38 @@ -6275,7 +6315,7 @@ rwx Value-30 Value-30. --3,40282e+38 +-3.40282e+38 @@ -6285,7 +6325,7 @@ rwx Value-31 Value-31. --3,40282e+38 +-3.40282e+38 @@ -6295,7 +6335,7 @@ rwx Value-32 Value-32. --3,40282e+38 +-3.40282e+38 @@ -6305,7 +6345,7 @@ rwx Value-33 Value-33. --3,40282e+38 +-3.40282e+38 @@ -6315,7 +6355,7 @@ rwx Value-34 Value-34. --3,40282e+38 +-3.40282e+38 @@ -6325,7 +6365,7 @@ rwx Value-35 Value-35. --3,40282e+38 +-3.40282e+38 @@ -6335,7 +6375,7 @@ rwx Value-36 Value-36. --3,40282e+38 +-3.40282e+38 @@ -6345,7 +6385,7 @@ rwx Value-37 Value-37. --3,40282e+38 +-3.40282e+38 @@ -6355,7 +6395,7 @@ rwx Value-38 Value-38. --3,40282e+38 +-3.40282e+38 @@ -6365,7 +6405,7 @@ rwx Value-39 Value-39. --3,40282e+38 +-3.40282e+38 @@ -6375,7 +6415,7 @@ rwx Value-4 Value-4. --3,40282e+38 +-3.40282e+38 @@ -6385,7 +6425,7 @@ rwx Value-40 Value-40. --3,40282e+38 +-3.40282e+38 @@ -6395,7 +6435,7 @@ rwx Value-41 Value-41. --3,40282e+38 +-3.40282e+38 @@ -6405,7 +6445,7 @@ rwx Value-42 Value-42. --3,40282e+38 +-3.40282e+38 @@ -6415,7 +6455,7 @@ rwx Value-43 Value-43. --3,40282e+38 +-3.40282e+38 @@ -6425,7 +6465,7 @@ rwx Value-44 Value-44. --3,40282e+38 +-3.40282e+38 @@ -6435,7 +6475,7 @@ rwx Value-45 Value-45. --3,40282e+38 +-3.40282e+38 @@ -6445,7 +6485,7 @@ rwx Value-46 Value-46. --3,40282e+38 +-3.40282e+38 @@ -6455,7 +6495,7 @@ rwx Value-47 Value-47. --3,40282e+38 +-3.40282e+38 @@ -6465,7 +6505,7 @@ rwx Value-48 Value-48. --3,40282e+38 +-3.40282e+38 @@ -6475,7 +6515,7 @@ rwx Value-49 Value-49. --3,40282e+38 +-3.40282e+38 @@ -6485,7 +6525,7 @@ rwx Value-5 Value-5. --3,40282e+38 +-3.40282e+38 @@ -6495,7 +6535,7 @@ rwx Value-6 Value-6. --3,40282e+38 +-3.40282e+38 @@ -6505,7 +6545,7 @@ rwx Value-7 Value-7. --3,40282e+38 +-3.40282e+38 @@ -6515,7 +6555,7 @@ rwx Value-8 Value-8. --3,40282e+38 +-3.40282e+38 @@ -6525,7 +6565,7 @@ rwx Value-9 Value-9. --3,40282e+38 +-3.40282e+38 @@ -6535,7 +6575,7 @@ rwx First-Input First-Input. --3,40282e+38 +-3.40282e+38 @@ -6545,7 +6585,7 @@ rwx Second-Input Second-Input. --3,40282e+38 +-3.40282e+38 @@ -6555,7 +6595,7 @@ r Summed-Output Summed-Output. --3,40282e+38 +-3.40282e+38 @@ -6565,7 +6605,7 @@ rwx Second-Input Second-Input. --3,40282e+38 +-3.40282e+38 @@ -6585,7 +6625,7 @@ rwx Pulse-Width Pulse-Width. -0,5 +0.5 @@ -6615,7 +6655,7 @@ rwx Pulse-Width Pulse-Width. -0,5 +0.5 @@ -6655,7 +6695,7 @@ rwx Pulse-Width Pulse-Width. -0,5 +0.5 @@ -6665,7 +6705,7 @@ rwx First-Input First-Input. --3,40282e+38 +-3.40282e+38 @@ -6675,7 +6715,7 @@ r Product-Output Product-Output. --3,40282e+38 +-3.40282e+38 @@ -6685,7 +6725,7 @@ rwx Second-Input Second-Input. --3,40282e+38 +-3.40282e+38 @@ -6695,13 +6735,13 @@ rwx Second-Input Second-Input. --3,40282e+38 +-3.40282e+38 ladspa-lp4pole-fcrcia-oa::Cutoff-Frequency gfloat -[0,91875,22050] +[0.91875,22050] rwx Cutoff-Frequency Cutoff-Frequency. @@ -6755,7 +6795,7 @@ rwx Quantise-Range-Maximum Quantise-Range-Maximum. --3,40282e+38 +-3.40282e+38 @@ -6765,7 +6805,7 @@ rwx Quantise-Range-Minimum Quantise-Range-Minimum. --3,40282e+38 +-3.40282e+38 @@ -6785,7 +6825,7 @@ rwx Value-0 Value-0. --3,40282e+38 +-3.40282e+38 @@ -6795,7 +6835,7 @@ rwx Value-1 Value-1. --3,40282e+38 +-3.40282e+38 @@ -6805,7 +6845,7 @@ rwx Value-10 Value-10. --3,40282e+38 +-3.40282e+38 @@ -6815,7 +6855,7 @@ rwx Value-11 Value-11. --3,40282e+38 +-3.40282e+38 @@ -6825,7 +6865,7 @@ rwx Value-12 Value-12. --3,40282e+38 +-3.40282e+38 @@ -6835,7 +6875,7 @@ rwx Value-13 Value-13. --3,40282e+38 +-3.40282e+38 @@ -6845,7 +6885,7 @@ rwx Value-14 Value-14. --3,40282e+38 +-3.40282e+38 @@ -6855,7 +6895,7 @@ rwx Value-15 Value-15. --3,40282e+38 +-3.40282e+38 @@ -6865,7 +6905,7 @@ rwx Value-16 Value-16. --3,40282e+38 +-3.40282e+38 @@ -6875,7 +6915,7 @@ rwx Value-17 Value-17. --3,40282e+38 +-3.40282e+38 @@ -6885,7 +6925,7 @@ rwx Value-18 Value-18. --3,40282e+38 +-3.40282e+38 @@ -6895,7 +6935,7 @@ rwx Value-19 Value-19. --3,40282e+38 +-3.40282e+38 @@ -6905,7 +6945,7 @@ rwx Value-2 Value-2. --3,40282e+38 +-3.40282e+38 @@ -6915,7 +6955,7 @@ rwx Value-3 Value-3. --3,40282e+38 +-3.40282e+38 @@ -6925,7 +6965,7 @@ rwx Value-4 Value-4. --3,40282e+38 +-3.40282e+38 @@ -6935,7 +6975,7 @@ rwx Value-5 Value-5. --3,40282e+38 +-3.40282e+38 @@ -6945,7 +6985,7 @@ rwx Value-6 Value-6. --3,40282e+38 +-3.40282e+38 @@ -6955,7 +6995,7 @@ rwx Value-7 Value-7. --3,40282e+38 +-3.40282e+38 @@ -6965,7 +7005,7 @@ rwx Value-8 Value-8. --3,40282e+38 +-3.40282e+38 @@ -6975,7 +7015,7 @@ rwx Value-9 Value-9. --3,40282e+38 +-3.40282e+38 @@ -7005,7 +7045,7 @@ rwx Modulation Modulation. --3,40282e+38 +-3.40282e+38 @@ -7055,7 +7095,7 @@ rwx Modulation Modulation. --3,40282e+38 +-3.40282e+38 @@ -7065,7 +7105,7 @@ rwx Control-Input Control-Input. --3,40282e+38 +-3.40282e+38 @@ -7355,7 +7395,7 @@ r First-Output First-Output. --3,40282e+38 +-3.40282e+38 @@ -7365,7 +7405,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -7375,7 +7415,7 @@ r Second-Output Second-Output. --3,40282e+38 +-3.40282e+38 @@ -7485,7 +7525,7 @@ r Difference-Output Difference-Output. --3,40282e+38 +-3.40282e+38 @@ -7495,7 +7535,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -7505,7 +7545,7 @@ rwx Input-to-Subtract Input-to-Subtract. --3,40282e+38 +-3.40282e+38 @@ -7515,7 +7555,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -7525,7 +7565,7 @@ rwx Input-to-Subtract Input-to-Subtract. --3,40282e+38 +-3.40282e+38 @@ -7535,7 +7575,7 @@ rwx B B. --3,40282e+38 +-3.40282e+38 @@ -7565,7 +7605,7 @@ rwx Threshold Threshold. --3,40282e+38 +-3.40282e+38 @@ -7595,7 +7635,7 @@ rwx Base Base. --3,40282e+38 +-3.40282e+38 @@ -7605,7 +7645,7 @@ rwx Exponent Exponent. --3,40282e+38 +-3.40282e+38 @@ -7615,7 +7655,7 @@ r Result Result. --3,40282e+38 +-3.40282e+38 @@ -7625,7 +7665,7 @@ rwx Off Off. --3,40282e+38 +-3.40282e+38 @@ -7635,7 +7675,7 @@ rwx On On. --3,40282e+38 +-3.40282e+38 @@ -7645,7 +7685,7 @@ r Output Output. --3,40282e+38 +-3.40282e+38 @@ -7671,11 +7711,11 @@ ladspa-wg-mesh-cr::Tension gfloat -[0,0001,0,22] +[0.0001,0.22] rwx Tension Tension. -0,11005 +0.11005 @@ -7711,11 +7751,11 @@ ladspa-vcf-hshelf::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7761,11 +7801,11 @@ ladspa-vcf-lshelf::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7811,11 +7851,11 @@ ladspa-vcf-peakeq::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7861,11 +7901,11 @@ ladspa-vcf-notch::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7901,11 +7941,11 @@ ladspa-vcf-bp2::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7941,11 +7981,11 @@ ladspa-vcf-bp1::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -7981,11 +8021,11 @@ ladspa-vcf-hp::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -8021,11 +8061,11 @@ ladspa-vcf-lp::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -8061,11 +8101,11 @@ ladspa-vcf-reslp::Resonance-Offset gfloat -[0,001,1] +[0.001,1] rwx Resonance-Offset Resonance-Offset. -0,001 +0.001 @@ -8115,7 +8155,7 @@ rwx Trigger-Threshold Trigger-Threshold. --3,40282e+38 +-3.40282e+38 @@ -8165,7 +8205,7 @@ rwx Fall-time Fall-time. --3,40282e+38 +-3.40282e+38 @@ -8175,7 +8215,7 @@ rwx Rise-time Rise-time. --3,40282e+38 +-3.40282e+38 @@ -8195,7 +8235,7 @@ rwx Fall-rate Fall-rate. --3,40282e+38 +-3.40282e+38 @@ -8205,7 +8245,7 @@ rwx Rise-rate Rise-rate. --3,40282e+38 +-3.40282e+38 @@ -8455,7 +8495,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -8465,7 +8505,7 @@ r Output Output. --3,40282e+38 +-3.40282e+38 @@ -12081,7 +12121,7 @@ ladspa-gate::Output-select gint -[G_MAXULONG,1] +[-1,1] rwx Output-select Output-select. @@ -14701,11 +14741,11 @@ ladspa-syndrum::Resonance gfloat -[0,001,1] +[0.001,1] rwx Resonance Resonance. -0,001 +0.001 @@ -14735,7 +14775,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14745,7 +14785,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14765,7 +14805,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14775,7 +14815,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14795,7 +14835,7 @@ rwx Expansion-Ratio Expansion-Ratio. --1,70141e+38 +-1.70141e+38 @@ -14805,7 +14845,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14815,7 +14855,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14835,7 +14875,7 @@ rwx Expansion-Ratio Expansion-Ratio. --1,70141e+38 +-1.70141e+38 @@ -14845,7 +14885,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14855,7 +14895,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14875,7 +14915,7 @@ rwx Compression-Ratio Compression-Ratio. --1,70141e+38 +-1.70141e+38 @@ -14885,7 +14925,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14895,7 +14935,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14915,7 +14955,7 @@ rwx Compression-Ratio Compression-Ratio. --1,70141e+38 +-1.70141e+38 @@ -14925,7 +14965,7 @@ rwx Output-Envelope-Attack Output-Envelope-Attack. -3,40282e+38 +3.40282e+38 @@ -14935,7 +14975,7 @@ rwx Output-Envelope-Decay Output-Envelope-Decay. -3,40282e+38 +3.40282e+38 @@ -14971,21 +15011,21 @@ ladspa-phasemod::DCO1-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO1-Attack DCO1-Attack. -0,01 +0.01 ladspa-phasemod::DCO1-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO1-Decay DCO1-Decay. -0,01 +0.01 @@ -15011,11 +15051,11 @@ ladspa-phasemod::DCO1-Release gfloat -[0,01,8] +[0.01,8] rwx DCO1-Release DCO1-Release. -0,01 +0.01 @@ -15041,21 +15081,21 @@ ladspa-phasemod::DCO2-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO2-Attack DCO2-Attack. -0,01 +0.01 ladspa-phasemod::DCO2-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO2-Decay DCO2-Decay. -0,01 +0.01 @@ -15081,11 +15121,11 @@ ladspa-phasemod::DCO2-Release gfloat -[0,01,8] +[0.01,8] rwx DCO2-Release DCO2-Release. -0,01 +0.01 @@ -15111,21 +15151,21 @@ ladspa-phasemod::DCO3-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO3-Attack DCO3-Attack. -0,01 +0.01 ladspa-phasemod::DCO3-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO3-Decay DCO3-Decay. -0,01 +0.01 @@ -15151,11 +15191,11 @@ ladspa-phasemod::DCO3-Release gfloat -[0,01,8] +[0.01,8] rwx DCO3-Release DCO3-Release. -0,01 +0.01 @@ -15181,21 +15221,21 @@ ladspa-phasemod::DCO4-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO4-Attack DCO4-Attack. -0,01 +0.01 ladspa-phasemod::DCO4-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO4-Decay DCO4-Decay. -0,01 +0.01 @@ -15221,11 +15261,11 @@ ladspa-phasemod::DCO4-Release gfloat -[0,01,8] +[0.01,8] rwx DCO4-Release DCO4-Release. -0,01 +0.01 @@ -15251,21 +15291,21 @@ ladspa-phasemod::DCO5-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO5-Attack DCO5-Attack. -0,01 +0.01 ladspa-phasemod::DCO5-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO5-Decay DCO5-Decay. -0,01 +0.01 @@ -15291,11 +15331,11 @@ ladspa-phasemod::DCO5-Release gfloat -[0,01,8] +[0.01,8] rwx DCO5-Release DCO5-Release. -0,01 +0.01 @@ -15321,21 +15361,21 @@ ladspa-phasemod::DCO6-Attack gfloat -[0,01,8] +[0.01,8] rwx DCO6-Attack DCO6-Attack. -0,01 +0.01 ladspa-phasemod::DCO6-Decay gfloat -[0,01,8] +[0.01,8] rwx DCO6-Decay DCO6-Decay. -0,01 +0.01 @@ -15361,11 +15401,11 @@ ladspa-phasemod::DCO6-Release gfloat -[0,01,8] +[0.01,8] rwx DCO6-Release DCO6-Release. -0,01 +0.01 @@ -15431,21 +15471,21 @@ ladspa-organ::Attack-Hi gfloat -[0,01,1] +[0.01,1] rwx Attack-Hi Attack-Hi. -0,01 +0.01 ladspa-organ::Attack-Lo gfloat -[0,01,1] +[0.01,1] rwx Attack-Lo Attack-Lo. -0,01 +0.01 @@ -15461,21 +15501,21 @@ ladspa-organ::Decay-Hi gfloat -[0,01,1] +[0.01,1] rwx Decay-Hi Decay-Hi. -0,01 +0.01 ladspa-organ::Decay-Lo gfloat -[0,01,1] +[0.01,1] rwx Decay-Lo Decay-Lo. -0,01 +0.01 @@ -15521,21 +15561,21 @@ ladspa-organ::Release-Hi gfloat -[0,01,1] +[0.01,1] rwx Release-Hi Release-Hi. -0,01 +0.01 ladspa-organ::Release-Lo gfloat -[0,01,1] +[0.01,1] rwx Release-Lo Release-Lo. -0,01 +0.01 @@ -15635,7 +15675,7 @@ r Output Output. --3,40282e+38 +-3.40282e+38 @@ -15645,7 +15685,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -15661,21 +15701,21 @@ ladspa-logistic::Step-frequency gfloat -[0,44,1] +[0,44.1] rwx Step-frequency Step-frequency. -22,05 +22.05 ladspa-logistic::param--r--parameter gfloat -[2,9,3,9999] +[2.9,3.9999] rwx param--r--parameter param--r--parameter. -3,9999 +3.9999 @@ -15715,7 +15755,7 @@ rwx Input Input. --3,40282e+38 +-3.40282e+38 @@ -15725,7 +15765,7 @@ r Output Output. --3,40282e+38 +-3.40282e+38 @@ -15745,7 +15785,7 @@ rwx Density Density. -3,40282e+38 +3.40282e+38 @@ -15755,7 +15795,7 @@ rwx Grain-Attack Grain-Attack. -3,40282e+38 +3.40282e+38 @@ -15765,7 +15805,7 @@ rwx Grain-Length Grain-Length. -3,40282e+38 +3.40282e+38 @@ -15775,7 +15815,7 @@ rwx Scatter Scatter. -2,5 +2.5 @@ -15815,7 +15855,7 @@ rwx Room-Size Room-Size. -0,5 +0.5 @@ -15835,7 +15875,7 @@ rwx Width Width. -0,5 +0.5 @@ -15855,7 +15895,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -15865,7 +15905,7 @@ rwx Feedback Feedback. -0,5 +0.5 @@ -15885,7 +15925,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -15895,7 +15935,7 @@ rwx Feedback Feedback. -0,5 +0.5 @@ -15915,7 +15955,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -15925,17 +15965,17 @@ rwx Feedback Feedback. -0,5 +0.5 ladspa-fbdelay-0-1s::Delay gfloat -[0,0,1] +[0,0.1] rwx Delay Delay. -0,1 +0.1 @@ -15945,7 +15985,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -15955,17 +15995,17 @@ rwx Feedback Feedback. -0,5 +0.5 ladspa-fbdelay-0-01s::Delay gfloat -[0,0,01] +[0,0.01] rwx Delay Delay. -0,01 +0.01 @@ -15975,7 +16015,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -15985,7 +16025,7 @@ rwx Feedback Feedback. -0,5 +0.5 @@ -16035,7 +16075,7 @@ rwx Envelope-Forgetting-Factor Envelope-Forgetting-Factor. -3,40282e+38 +3.40282e+38 @@ -16055,7 +16095,7 @@ rwx Envelope-Forgetting-Factor Envelope-Forgetting-Factor. -3,40282e+38 +3.40282e+38 @@ -16085,7 +16125,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -16105,17 +16145,17 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 ladspa-delay-0-1s::Delay gfloat -[0,0,1] +[0,0.1] rwx Delay Delay. -0,1 +0.1 @@ -16125,17 +16165,17 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 ladspa-delay-0-01s::Delay gfloat -[0,0,01] +[0,0.01] rwx Delay Delay. -0,01 +0.01 @@ -16145,7 +16185,7 @@ rwx Dry-Wet-Balance Dry-Wet-Balance. -0,5 +0.5 @@ -16171,11 +16211,11 @@ ladspa-sledgehammer::Rate gfloat -[1e-05,0,001] +[1e-05,0.001] rwx Rate Rate. -0,000505 +0.000505 @@ -16211,11 +16251,11 @@ ladspa-canyon-delay::Left-to-Right-Time gfloat -[0,01,0,99] +[0.01,0.99] rwx Left-to-Right-Time Left-to-Right-Time. -0,01 +0.01 @@ -16241,11 +16281,11 @@ ladspa-canyon-delay::Right-to-Left-Time gfloat -[0,01,0,99] +[0.01,0.99] rwx Right-to-Left-Time Right-to-Left-Time. -0,01 +0.01 @@ -16291,31 +16331,31 @@ ladspa-analogue::DCO1-Octave gfloat -[0,001,1] +[0.001,1] rwx DCO1-Octave DCO1-Octave. -0,001 +0.001 ladspa-analogue::DCO1-Release gfloat -[0,01,8] +[0.01,8] rwx DCO1-Release DCO1-Release. -0,01 +0.01 ladspa-analogue::DCO1-Sustain gfloat -[0,01,8] +[0.01,8] rwx DCO1-Sustain DCO1-Sustain. -0,01 +0.01 @@ -16381,31 +16421,31 @@ ladspa-analogue::DCO2-Release gfloat -[0,01,8] +[0.01,8] rwx DCO2-Release DCO2-Release. -0,01 +0.01 ladspa-analogue::DCO2-Sustain gfloat -[0,01,8] +[0.01,8] rwx DCO2-Sustain DCO2-Sustain. -0,01 +0.01 ladspa-analogue::DCO2-Waveform gfloat -[0,01,8] +[0.01,8] rwx DCO2-Waveform DCO2-Waveform. -0,01 +0.01 @@ -16441,21 +16481,21 @@ ladspa-analogue::Filter-LFO-Modulation gfloat -[0,01,8] +[0.01,8] rwx Filter-LFO-Modulation Filter-LFO-Modulation. -0,01 +0.01 ladspa-analogue::Filter-Release gfloat -[0,01,8] +[0.01,8] rwx Filter-Release Filter-Release. -0,01 +0.01 @@ -16471,11 +16511,11 @@ ladspa-analogue::Filter-Sustain gfloat -[0,01,8] +[0.01,8] rwx Filter-Sustain Filter-Sustain. -0,01 +0.01 @@ -16501,11 +16541,11 @@ ladspa-analogue::LFO-Fadein gfloat -[0,01,8] +[0.01,8] rwx LFO-Fadein LFO-Fadein. -0,01 +0.01 @@ -17841,7 +17881,7 @@ DvbBaseBin::diseqc-source gint -[G_MAXULONG,7] +[-1,7] rw diseqc source DISEqC selected source (-1 disabled) (DVB-S). @@ -18786,7 +18826,7 @@ GstAppSrc::size gint64 ->= G_MAXULONG +>= -1 rw Size The size of the data stream (-1 if unknown). @@ -19720,7 +19760,7 @@ rwx decay decay. -0,25 +0.25 @@ -19770,7 +19810,7 @@ rwx Initial-phase-for-stereo Initial-phase-for-stereo. --3,40282e+38 +-3.40282e+38 @@ -19806,11 +19846,11 @@ ladspa-alienwah-stereo::Initial-phase-for-stereo gfloat -[0,6,28319] +[0,6.28319] rwx Initial-phase-for-stereo Initial-phase-for-stereo. -6,28319 +6.28319 @@ -20020,7 +20060,7 @@ rwx LP-filter LP-filter. -0,5 +0.5 @@ -20070,7 +20110,7 @@ rwx LP-filter LP-filter. -0,5 +0.5 @@ -20140,7 +20180,7 @@ rwx LP-filter LP-filter. -0,5 +0.5 @@ -20276,7 +20316,7 @@ ladspa-SooperLooper::QuantizeMode gint -<= G_MININT +<= G_MINLONG rwx QuantizeMode QuantizeMode. @@ -20296,7 +20336,7 @@ ladspa-SooperLooper::RedoTapMode gint -<= G_MININT +<= G_MINLONG rwx RedoTapMode RedoTapMode. @@ -20306,7 +20346,7 @@ ladspa-SooperLooper::RoundMode gint -<= G_MININT +<= G_MINLONG rwx RoundMode RoundMode. @@ -20330,7 +20370,7 @@ r State-Output State-Output. --3,40282e+38 +-3.40282e+38 @@ -20390,7 +20430,7 @@ rwx Look-ahead Look-ahead. -2,5 +2.5 @@ -20410,7 +20450,7 @@ rwx Strength Strength. -0,75 +0.75 @@ -20450,7 +20490,7 @@ rwx Look-ahead Look-ahead. -2,5 +2.5 @@ -20470,7 +20510,7 @@ rwx Strength Strength. -0,75 +0.75 @@ -20620,7 +20660,7 @@ rwx Frequency Frequency. -2990,7 +2990.7 @@ -20630,7 +20670,7 @@ rwx Inertia Inertia. -22,3607 +22.3607 @@ -20646,11 +20686,11 @@ ladspa-Filter::Resonance gfloat -[0,707,32] +[0.707,32] rwx Resonance Resonance. -0,707 +0.707 @@ -20666,11 +20706,11 @@ ladspa-Flanger::Feedback gfloat -[-0,99,0,99] +[-0.99,0.99] rwx Feedback Feedback. -0,99 +0.99 @@ -20736,31 +20776,31 @@ ladspa-Flanger::Min-delay gfloat -[0,1,10] +[0.1,10] rwx Min-delay Min-delay. -0,1 +0.1 ladspa-Flanger::Mod-depth gfloat -[0,1,10] +[0.1,10] rwx Mod-depth Mod-depth. -0,316228 +0.316228 ladspa-Flanger::Mod-rate gfloat -[0,01,20] +[0.01,20] rwx Mod-rate Mod-rate. -0,447214 +0.447214 @@ -20776,11 +20816,11 @@ ladspa-Reverb::Decay-time gfloat -[0,4,15] +[0.4,15] rwx Decay-time Decay-time. -0,989846 +0.989846 @@ -20790,7 +20830,7 @@ rwx Diffusion Diffusion. -0,5 +0.5 @@ -20800,7 +20840,7 @@ rwx High-Frq-Damp High-Frq-Damp. -6324,56 +6324.56 @@ -20820,7 +20860,7 @@ rwx Bass-Cut Bass-Cut. -632,456 +632.456 @@ -20850,7 +20890,7 @@ rwx Treble-Cut Treble-Cut. -3556,56 +3556.56 @@ -20860,7 +20900,7 @@ rwx Wet-Amount Wet-Amount. -0,5 +0.5 @@ -20910,7 +20950,7 @@ rwx Feedback Feedback. -0,5 +0.5 @@ -20926,7 +20966,7 @@ ladspa-VintageDelay::Mix-mode gint -[0,1] +[0,3] rwx Mix-mode Mix-mode. @@ -20950,7 +20990,7 @@ rwx Tempo Tempo. -97,5 +97.5 @@ -20984,6 +21024,16 @@ +ladspa-VintageDelay::Stereo-Width +gfloat +[-1,1] +rwx +Stereo-Width +Stereo-Width. +1 + + + ladspa-RotarySpeaker::Mod-Depth gfloat [0,1] @@ -21010,7 +21060,7 @@ rwx Tap-Offset Tap-Offset. -0,5 +0.5 @@ -21020,7 +21070,7 @@ rwx Tap-Spacing Tap-Spacing. -0,5 +0.5 @@ -21030,7 +21080,7 @@ rwx Bass-Motor Bass-Motor. -27,8316 +27.8316 @@ -21040,7 +21090,7 @@ rwx Mic-Distance Mic-Distance. -0,75 +0.75 @@ -21050,7 +21100,7 @@ rwx Reflection Reflection. -0,25 +0.25 @@ -21060,7 +21110,7 @@ rwx Treble-Motor Treble-Motor. -27,8316 +27.8316 @@ -21084,6 +21134,36 @@ +ladspa-RotarySpeaker::AM-Depth +gfloat +[0,1] +rwx +AM-Depth +AM-Depth. +0.5 + + + +ladspa-RotarySpeaker::FM-Depth +gfloat +[0,1] +rwx +FM-Depth +FM-Depth. +0.5 + + + +ladspa-RotarySpeaker::Test +gfloat +[0,1] +rwx +Test +Test. +0 + + + ladspa-Phaser::Amount gfloat [0,4] @@ -21100,13 +21180,13 @@ rwx Center-Freq Center-Freq. -632,456 +632.456 ladspa-Phaser::Feedback gfloat -[-0,99,0,99] +[-0.99,0.99] rwx Feedback Feedback. @@ -21186,11 +21266,11 @@ ladspa-Phaser::Mod-rate gfloat -[0,01,20] +[0.01,20] rwx Mod-rate Mod-rate. -0,447214 +0.447214 @@ -21300,7 +21380,7 @@ rwx bass bass. -0,5 +0.5 @@ -21310,7 +21390,7 @@ rwx mid mid. -0,5 +0.5 @@ -21330,7 +21410,7 @@ rwx treble treble. -0,5 +0.5 @@ -21340,7 +21420,7 @@ rwx bass bass. -0,5 +0.5 @@ -21350,7 +21430,7 @@ rwx mid mid. -0,5 +0.5 @@ -21360,7 +21440,7 @@ rwx treble treble. -0,5 +0.5 @@ -21370,17 +21450,17 @@ rwx bass bass. -0,5 +0.5 ladspa-AmpVTS::drive gfloat -[0,0001,1] +[0.0001,1] rwx drive drive. -0,250075 +0.250075 @@ -21390,7 +21470,7 @@ rwx gain gain. -2,25 +2.25 @@ -21400,7 +21480,7 @@ r latency latency. --3,40282e+38 +-3.40282e+38 @@ -21430,27 +21510,27 @@ rwx treble treble. -0,75 +0.75 ladspa-AmpVTS::watts gfloat -[0,0001,1] +[0.0001,1] rwx watts watts. -0,750025 +0.750025 ladspa-AutoWah::Q gfloat -[0,001,0,999] +[0.001,0.999] rwx Q Q. -0,2505 +0.2505 @@ -21460,7 +21540,7 @@ rwx depth depth. -0,5 +0.5 @@ -21470,7 +21550,7 @@ rwx f f. -92,8051 +92.8051 @@ -21976,7 +22056,7 @@ GstDCCPClientSrc::sockfd gint ->= G_MAXULONG +>= -1 rw Socket fd The socket file descriptor. @@ -22016,7 +22096,7 @@ GstDCCPServerSink::sockfd gint ->= G_MAXULONG +>= -1 rw Socket fd The client socket file descriptor. @@ -22076,7 +22156,7 @@ GstDCCPClientSink::sockfd gint ->= G_MAXULONG +>= -1 rw Socket fd The socket file descriptor. @@ -22136,7 +22216,7 @@ GstDCCPServerSrc::sockfd gint ->= G_MAXULONG +>= -1 rw Socket fd The client socket file descriptor. @@ -22196,7 +22276,7 @@ GstMpegTSDemux::program-number gint ->= G_MAXULONG +>= -1 rw Program Number Program number to demux for (-1 to ignore). @@ -22256,7 +22336,7 @@ GstPcapParse::dst-port gint -[G_MAXULONG,65535] +[-1,65535] rw Destination port Destination port to restrict to. @@ -22276,7 +22356,7 @@ GstPcapParse::src-port gint -[G_MAXULONG,65535] +[-1,65535] rw Source port Source port to restrict to. @@ -22294,6 +22374,16 @@ +GstPcapParse::ts-offset +gint64 +>= -1 +rw +Timestamp Offset +Relative timestamp offset (ns) to apply (-1 = use absolute packet time). +-1 + + + MpegTsMux::m2ts-mode gboolean @@ -22384,6 +22474,26 @@ +GstApExSink::generation +GstApExGeneration + +rw +Generation +AirPort device generation. +generation-one + + + +GstApExSink::transport-protocol +GstApExTransportProtocol + +rw +Transport Protocol +AirPort transport protocol. +tcp + + + GstMJ2Mux::faststart gboolean @@ -23100,7 +23210,7 @@ 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 +Enable source crop and scale|Enable colorspace conversion for viewfinder|Enable scale for viewfinder|Enable audio conversion for video capture|Enable colorspace conversion for still image|Enable colorspace conversion for video capture @@ -23214,6 +23324,16 @@ +GstCameraBin::image-formatter +GstElement* + +rw +Image formatter +Image formatter GStreamer element (default is jifmux). + + + + GstDTMFSrc::interval guint [10,50] @@ -23276,7 +23396,7 @@ GstRTPDTMFSrc::seqnum-offset gint ->= G_MAXULONG +>= -1 rw Sequence number Offset Offset to add to all outgoing seqnum (-1 = random). @@ -23306,7 +23426,7 @@ GstRTPDTMFSrc::timestamp-offset gint ->= G_MAXULONG +>= -1 rw Timestamp Offset Offset to add to all outgoing timestamps (-1 = random). @@ -23356,7 +23476,7 @@ GstRTPMux::seqnum-offset gint ->= G_MAXULONG +>= -1 rw Sequence number Offset Offset to add to all outgoing seqnum (-1 = random). @@ -23376,7 +23496,7 @@ GstRTPMux::timestamp-offset gint ->= G_MAXULONG +>= -1 rw Timestamp Offset Offset to add to all outgoing timestamps (-1 = random). @@ -23626,7 +23746,7 @@ ladspa-Filterclavier::Max--Resonance gfloat -[0,707,32] +[0.707,32] rwx Max--Resonance Max--Resonance. @@ -23650,7 +23770,7 @@ rwx Portamento-time Portamento-time. -44,7214 +44.7214 @@ -23690,7 +23810,7 @@ rwx Center-Frq-2 Center-Frq-2. -2990,7 +2990.7 @@ -23736,21 +23856,21 @@ ladspa-MultiChorus::Modulation-rate gfloat -[0,01,20] +[0.01,20] rwx Modulation-rate Modulation-rate. -0,447214 +0.447214 ladspa-MultiChorus::Q gfloat -[0,125,8] +[0.125,8] rwx Q Q. -0,125 +0.125 @@ -23786,17 +23906,17 @@ ladspa-MultiChorus::Min-delay gfloat -[0,1,10] +[0.1,10] rwx Min-delay Min-delay. -3,16228 +3.16228 ladspa-MultiChorus::Mod-depth gfloat -[0,1,10] +[0.1,10] rwx Mod-depth Mod-depth. @@ -23816,11 +23936,11 @@ ladspa-Compressor::Attack gfloat -[0,01,2000] +[0.01,2000] rwx Attack Attack. -4,47214 +4.47214 @@ -23860,7 +23980,7 @@ rwx Knee Knee. -2,75 +2.75 @@ -23896,11 +24016,11 @@ ladspa-Compressor::Release gfloat -[0,01,2000] +[0.01,2000] rwx Release Release. -94,5742 +94.5742 @@ -23916,11 +24036,11 @@ ladspa-Compressor::Threshold gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold Threshold. -0,250732 +0.250732 @@ -23976,11 +24096,11 @@ ladspa-Compressor::Reduction gfloat -[0,03125,1] +[0.03125,1] r Reduction Reduction. -0,03125 +0.03125 @@ -26590,7 +26710,7 @@ rw splash make a big splash in the center. -0 +4.77773e-299 @@ -26600,7 +26720,7 @@ rw splash make a big splash in the center. -4.77831e-299 +0 @@ -26630,7 +26750,7 @@ rw ratiox x-ratio. -1.87849e-316 +0 @@ -26640,7 +26760,7 @@ rw ratioy y-ratio. -8.52263e-321 +0 @@ -26700,7 +26820,7 @@ rw Color-R the color of the image. -1.44112e-37 +0 @@ -27030,7 +27150,7 @@ rw lredscale multiplier for downscaling non-edge brightness. -1.2957e-318 +6.28747e-311 @@ -27410,7 +27530,7 @@ rw HSync the hsync offset. -1 +0 @@ -27834,6 +27954,16 @@ +GstKateTiger::silent +gboolean + +rw +silent +Whether to render the stream. +FALSE + + + GstSchroEnc::au-distance gint >= 1 @@ -40780,7 +40910,7 @@ rwx Freq-1 Freq-1. -66,874 +66.874 @@ -40790,7 +40920,7 @@ rwx Freq-2 Freq-2. -66,874 +66.874 @@ -40800,7 +40930,7 @@ rwx Freq-3 Freq-3. -447,214 +447.214 @@ -40810,7 +40940,7 @@ rwx Freq-4 Freq-4. -447,214 +447.214 @@ -40820,7 +40950,7 @@ rwx Freq-5 Freq-5. -447,214 +447.214 @@ -40830,7 +40960,7 @@ rwx Freq-6 Freq-6. -2990,7 +2990.7 @@ -40840,7 +40970,7 @@ rwx Freq-7 Freq-7. -2990,7 +2990.7 @@ -40850,7 +40980,7 @@ rwx Freq-8 Freq-8. -2990,7 +2990.7 @@ -40860,7 +40990,7 @@ rwx Freq-H Freq-H. -2990,7 +2990.7 @@ -40870,7 +41000,7 @@ rwx Freq-L Freq-L. -447,214 +447.214 @@ -40890,7 +41020,7 @@ rwx HP-Freq HP-Freq. -66,874 +66.874 @@ -40966,7 +41096,7 @@ ladspa-Equalizer12Band::Level-1 gfloat -[0,015625,64] +[0.015625,64] rwx Level-1 Level-1. @@ -40976,7 +41106,7 @@ ladspa-Equalizer12Band::Level-2 gfloat -[0,015625,64] +[0.015625,64] rwx Level-2 Level-2. @@ -40986,7 +41116,7 @@ ladspa-Equalizer12Band::Level-3 gfloat -[0,015625,64] +[0.015625,64] rwx Level-3 Level-3. @@ -40996,7 +41126,7 @@ ladspa-Equalizer12Band::Level-4 gfloat -[0,015625,64] +[0.015625,64] rwx Level-4 Level-4. @@ -41006,7 +41136,7 @@ ladspa-Equalizer12Band::Level-5 gfloat -[0,015625,64] +[0.015625,64] rwx Level-5 Level-5. @@ -41016,7 +41146,7 @@ ladspa-Equalizer12Band::Level-6 gfloat -[0,015625,64] +[0.015625,64] rwx Level-6 Level-6. @@ -41026,7 +41156,7 @@ ladspa-Equalizer12Band::Level-7 gfloat -[0,015625,64] +[0.015625,64] rwx Level-7 Level-7. @@ -41036,7 +41166,7 @@ ladspa-Equalizer12Band::Level-8 gfloat -[0,015625,64] +[0.015625,64] rwx Level-8 Level-8. @@ -41046,7 +41176,7 @@ ladspa-Equalizer12Band::Level-H gfloat -[0,015625,64] +[0.015625,64] rwx Level-H Level-H. @@ -41056,7 +41186,7 @@ ladspa-Equalizer12Band::Level-L gfloat -[0,015625,64] +[0.015625,64] rwx Level-L Level-L. @@ -41116,7 +41246,7 @@ ladspa-Equalizer12Band::Q-1 gfloat -[0,1,100] +[0.1,100] rwx Q-1 Q-1. @@ -41126,7 +41256,7 @@ ladspa-Equalizer12Band::Q-2 gfloat -[0,1,100] +[0.1,100] rwx Q-2 Q-2. @@ -41136,7 +41266,7 @@ ladspa-Equalizer12Band::Q-3 gfloat -[0,1,100] +[0.1,100] rwx Q-3 Q-3. @@ -41146,7 +41276,7 @@ ladspa-Equalizer12Band::Q-4 gfloat -[0,1,100] +[0.1,100] rwx Q-4 Q-4. @@ -41156,7 +41286,7 @@ ladspa-Equalizer12Band::Q-5 gfloat -[0,1,100] +[0.1,100] rwx Q-5 Q-5. @@ -41166,7 +41296,7 @@ ladspa-Equalizer12Band::Q-6 gfloat -[0,1,100] +[0.1,100] rwx Q-6 Q-6. @@ -41176,7 +41306,7 @@ ladspa-Equalizer12Band::Q-7 gfloat -[0,1,100] +[0.1,100] rwx Q-7 Q-7. @@ -41186,7 +41316,7 @@ ladspa-Equalizer12Band::Q-8 gfloat -[0,1,100] +[0.1,100] rwx Q-8 Q-8. @@ -41290,7 +41420,7 @@ rwx Freq-1 Freq-1. -447,214 +447.214 @@ -41300,7 +41430,7 @@ rwx Freq-2 Freq-2. -447,214 +447.214 @@ -41310,7 +41440,7 @@ rwx Freq-3 Freq-3. -2990,7 +2990.7 @@ -41320,7 +41450,7 @@ rwx Freq-4 Freq-4. -2990,7 +2990.7 @@ -41330,7 +41460,7 @@ rwx Freq-H Freq-H. -2990,7 +2990.7 @@ -41340,7 +41470,7 @@ rwx Freq-L Freq-L. -447,214 +447.214 @@ -41360,7 +41490,7 @@ rwx HP-Freq HP-Freq. -66,874 +66.874 @@ -41436,7 +41566,7 @@ ladspa-Equalizer8Band::Level-1 gfloat -[0,015625,64] +[0.015625,64] rwx Level-1 Level-1. @@ -41446,7 +41576,7 @@ ladspa-Equalizer8Band::Level-2 gfloat -[0,015625,64] +[0.015625,64] rwx Level-2 Level-2. @@ -41456,7 +41586,7 @@ ladspa-Equalizer8Band::Level-3 gfloat -[0,015625,64] +[0.015625,64] rwx Level-3 Level-3. @@ -41466,7 +41596,7 @@ ladspa-Equalizer8Band::Level-4 gfloat -[0,015625,64] +[0.015625,64] rwx Level-4 Level-4. @@ -41476,7 +41606,7 @@ ladspa-Equalizer8Band::Level-H gfloat -[0,015625,64] +[0.015625,64] rwx Level-H Level-H. @@ -41486,7 +41616,7 @@ ladspa-Equalizer8Band::Level-L gfloat -[0,015625,64] +[0.015625,64] rwx Level-L Level-L. @@ -41546,7 +41676,7 @@ ladspa-Equalizer8Band::Q-1 gfloat -[0,1,100] +[0.1,100] rwx Q-1 Q-1. @@ -41556,7 +41686,7 @@ ladspa-Equalizer8Band::Q-2 gfloat -[0,1,100] +[0.1,100] rwx Q-2 Q-2. @@ -41566,7 +41696,7 @@ ladspa-Equalizer8Band::Q-3 gfloat -[0,1,100] +[0.1,100] rwx Q-3 Q-3. @@ -41576,7 +41706,7 @@ ladspa-Equalizer8Band::Q-4 gfloat -[0,1,100] +[0.1,100] rwx Q-4 Q-4. @@ -41670,7 +41800,7 @@ rwx Freq-1 Freq-1. -447,214 +447.214 @@ -41680,7 +41810,7 @@ rwx Freq-2 Freq-2. -447,214 +447.214 @@ -41690,7 +41820,7 @@ rwx Freq-3 Freq-3. -2990,7 +2990.7 @@ -41700,7 +41830,7 @@ rwx Freq-H Freq-H. -2990,7 +2990.7 @@ -41710,7 +41840,7 @@ rwx Freq-L Freq-L. -447,214 +447.214 @@ -41746,7 +41876,7 @@ ladspa-Equalizer5Band::Level-1 gfloat -[0,015625,64] +[0.015625,64] rwx Level-1 Level-1. @@ -41756,7 +41886,7 @@ ladspa-Equalizer5Band::Level-2 gfloat -[0,015625,64] +[0.015625,64] rwx Level-2 Level-2. @@ -41766,7 +41896,7 @@ ladspa-Equalizer5Band::Level-3 gfloat -[0,015625,64] +[0.015625,64] rwx Level-3 Level-3. @@ -41776,7 +41906,7 @@ ladspa-Equalizer5Band::Level-H gfloat -[0,015625,64] +[0.015625,64] rwx Level-H Level-H. @@ -41786,7 +41916,7 @@ ladspa-Equalizer5Band::Level-L gfloat -[0,015625,64] +[0.015625,64] rwx Level-L Level-L. @@ -41846,7 +41976,7 @@ ladspa-Equalizer5Band::Q-1 gfloat -[0,1,100] +[0.1,100] rwx Q-1 Q-1. @@ -41856,7 +41986,7 @@ ladspa-Equalizer5Band::Q-2 gfloat -[0,1,100] +[0.1,100] rwx Q-2 Q-2. @@ -41866,7 +41996,7 @@ ladspa-Equalizer5Band::Q-3 gfloat -[0,1,100] +[0.1,100] rwx Q-3 Q-3. @@ -41926,7 +42056,7 @@ ladspa-Pulsator::Frequency gfloat -[0,01,100] +[0.01,100] rwx Frequency Frequency. @@ -42020,7 +42150,7 @@ rwx Offset-L-R Offset-L-R. -0,5 +0.5 @@ -42126,7 +42256,7 @@ ladspa-Deesser::Gain gfloat -[0,0625,16] +[0.0625,16] rwx Gain Gain. @@ -42136,11 +42266,11 @@ ladspa-Deesser::Gain-Reduction gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction Gain-Reduction. -0,03125 +0.03125 @@ -42156,11 +42286,11 @@ ladspa-Deesser::Level gfloat -[0,0625,16] +[0.0625,16] rwx Level Level. -4,04688 +4.04688 @@ -42200,13 +42330,13 @@ rwx Peak Peak. -2763,47 +2763.47 ladspa-Deesser::Peak-Q gfloat -[0,1,100] +[0.1,100] rwx Peak-Q Peak-Q. @@ -42240,57 +42370,57 @@ rwx Split Split. -2763,47 +2763.47 ladspa-Deesser::Threshold gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold Threshold. -0,250732 +0.250732 ladspa-Multibandcompressor::Attack-1 gfloat -[0,01,2000] +[0.01,2000] rwx Attack-1 Attack-1. -94,5742 +94.5742 ladspa-Multibandcompressor::Attack-2 gfloat -[0,01,2000] +[0.01,2000] rwx Attack-2 Attack-2. -94,5742 +94.5742 ladspa-Multibandcompressor::Attack-3 gfloat -[0,01,2000] +[0.01,2000] rwx Attack-3 Attack-3. -4,47214 +4.47214 ladspa-Multibandcompressor::Attack-4 gfloat -[0,01,2000] +[0.01,2000] rwx Attack-4 Attack-4. -4,47214 +4.47214 @@ -42386,7 +42516,7 @@ ladspa-Multibandcompressor::Gain-Reduction-1 gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction-1 Gain-Reduction-1. @@ -42396,7 +42526,7 @@ ladspa-Multibandcompressor::Gain-Reduction-2 gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction-2 Gain-Reduction-2. @@ -42406,7 +42536,7 @@ ladspa-Multibandcompressor::Gain-Reduction-3 gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction-3 Gain-Reduction-3. @@ -42416,7 +42546,7 @@ ladspa-Multibandcompressor::Gain-Reduction-4 gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction-4 Gain-Reduction-4. @@ -42460,7 +42590,7 @@ rwx Knee-1 Knee-1. -2,75 +2.75 @@ -42470,7 +42600,7 @@ rwx Knee-2 Knee-2. -2,75 +2.75 @@ -42480,7 +42610,7 @@ rwx Knee-3 Knee-3. -2,75 +2.75 @@ -42490,7 +42620,7 @@ rwx Knee-4 Knee-4. -2,75 +2.75 @@ -42646,31 +42776,31 @@ ladspa-Multibandcompressor::Q1 gfloat -[0,25,4] +[0.25,4] rwx Q1 Q1. -1,1875 +1.1875 ladspa-Multibandcompressor::Q2 gfloat -[0,25,4] +[0.25,4] rwx Q2 Q2. -1,1875 +1.1875 ladspa-Multibandcompressor::Q3 gfloat -[0,25,4] +[0.25,4] rwx Q3 Q3. -1,1875 +1.1875 @@ -42716,7 +42846,7 @@ ladspa-Multibandcompressor::Release-1 gfloat -[0,01,2000] +[0.01,2000] rwx Release-1 Release-1. @@ -42726,61 +42856,61 @@ ladspa-Multibandcompressor::Release-2 gfloat -[0,01,2000] +[0.01,2000] rwx Release-2 Release-2. -94,5742 +94.5742 ladspa-Multibandcompressor::Release-3 gfloat -[0,01,2000] +[0.01,2000] rwx Release-3 Release-3. -94,5742 +94.5742 ladspa-Multibandcompressor::Release-4 gfloat -[0,01,2000] +[0.01,2000] rwx Release-4 Release-4. -4,47214 +4.47214 ladspa-Multibandcompressor::S1 gfloat -[-0,5,0,5] +[-0.5,0.5] rwx S1 S1. --0,25 +-0.25 ladspa-Multibandcompressor::S2 gfloat -[-0,5,0,5] +[-0.5,0.5] rwx S2 S2. --0,25 +-0.25 ladspa-Multibandcompressor::S3 gfloat -[-0,5,0,5] +[-0.5,0.5] rwx S3 S3. --0,25 +-0.25 @@ -42800,7 +42930,7 @@ rwx Split-2-3 Split-2-3. -447,214 +447.214 @@ -42810,47 +42940,47 @@ rwx Split-3-4 Split-3-4. -2990,7 +2990.7 ladspa-Multibandcompressor::Threshold-1 gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold-1 Threshold-1. -0,000976563 +0.000976563 ladspa-Multibandcompressor::Threshold-2 gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold-2 Threshold-2. -0,000976563 +0.000976563 ladspa-Multibandcompressor::Threshold-3 gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold-3 Threshold-3. -0,000976563 +0.000976563 ladspa-Multibandcompressor::Threshold-4 gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold-4 Threshold-4. -0,000976563 +0.000976563 @@ -42896,11 +43026,11 @@ ladspa-Sidechaincompressor::Attack gfloat -[0,01,2000] +[0.01,2000] rwx Attack Attack. -4,47214 +4.47214 @@ -42940,13 +43070,13 @@ rwx F1-Freq F1-Freq. -424,264 +424.264 ladspa-Sidechaincompressor::F1-Level gfloat -[0,0625,16] +[0.0625,16] rwx F1-Level F1-Level. @@ -42970,13 +43100,13 @@ rwx F2-Freq F2-Freq. -2763,47 +2763.47 ladspa-Sidechaincompressor::F2-Level gfloat -[0,0625,16] +[0.0625,16] rwx F2-Level F2-Level. @@ -42986,11 +43116,11 @@ ladspa-Sidechaincompressor::Gain-Reduction gfloat -[0,03125,1] +[0.03125,1] r Gain-Reduction Gain-Reduction. -0,03125 +0.03125 @@ -43020,7 +43150,7 @@ rwx Knee Knee. -2,75 +2.75 @@ -43056,11 +43186,11 @@ ladspa-Sidechaincompressor::Release gfloat -[0,01,2000] +[0.01,2000] rwx Release Release. -94,5742 +94.5742 @@ -43096,11 +43226,11 @@ ladspa-Sidechaincompressor::Threshold gfloat -[0,000976563,1] +[0.000976563,1] rwx Threshold Threshold. -0,250732 +0.250732 @@ -45599,14 +45729,14 @@ [0,10] rw Quality -Quality. +Quality. This parameter sets a constant quantizer. 5 GstVP8Enc::speed gint -[0,2] +[0,7] rw Speed Speed. @@ -45630,7 +45760,7 @@ rw Multipass Cache File Multipass cache file. -NULL +"multipass.cache" @@ -45654,6 +45784,126 @@ +GstVP8Enc::max-quantizer +gint +[0,63] +rw +Maximum quantizer +Maximum (worst) quantizer. +63 + + + +GstVP8Enc::min-quantizer +gint +[0,63] +rw +Minimum quantizer +Minimum (best) quantizer. +0 + + + +GstVP8Enc::drop-frame +gint +[0,100] +rw +Drop Frame +Drop Frame. +0 + + + +GstVP8Enc::lag-in-frames +guint +<= 64 +rw +Max number of frames to lag +If set, this value allows the encoder to consume a number of input frames before producing output frames. +0 + + + +GstVP8Enc::maxsection-pct +guint +[200,800] +rw +maximum percentage allocation per section +The numbers represent a percentage of the average allocation per section (frame). +800 + + + +GstVP8Enc::minsection-pct +guint +<= 20 +rw +minimum percentage allocation per section +The numbers represent a percentage of the average allocation per section (frame). +5 + + + +GstVP8Enc::noise-sensitivity +gint +[0,6] +rw +Noise Sensitivity +Noise Sensitivity. +0 + + + +GstVP8Enc::resize-allowed +gboolean + +rw +Resize Allowed +Resize Allowed. +TRUE + + + +GstVP8Enc::sharpness +gint +[0,7] +rw +Sharpness +Sharpness. +0 + + + +GstVP8Enc::static-threshold +gint +[0,1000] +rw +Static Threshold +Static Threshold. +0 + + + +GstVP8Enc::token-parts +gint +[0,3] +rw +Token Parts +Token Parts. +0 + + + +GstVP8Enc::tune +GstVP8EncTune + +rw +Tune +Tune. +Tune for PSNR + + + GstPhotography::aperture guint <= 255 @@ -46064,6 +46314,16 @@ +GstShmSink::buffer-time +guint64 + +rwx +Buffer Time of the shm buffer +Maximum Size of the shm buffer in nanoseconds (-1 to disable). +18446744073709551615 + + + GstRTMPSrc::location gchar* @@ -46756,7 +47016,7 @@ GstCvSobel::x-order gint ->= G_MAXULONG +>= -1 rw x order Order of the derivative x. @@ -46766,7 +47026,7 @@ GstCvSobel::y-order gint ->= G_MAXULONG +>= -1 rw y order Order of the derivative y. @@ -46846,7 +47106,7 @@ GstJP2kDecimator::max-decomposition-levels gint -[G_MAXULONG,32] +[-1,32] rw Maximum Number of Decomposition Levels Maximum number of decomposition levels to keep (-1 == all). @@ -47236,7 +47496,7 @@ GstTSDemux::program-number gint ->= G_MAXULONG +>= -1 rw Program number Program Number to demux for (-1 to ignore). @@ -47514,6 +47774,26 @@ +GstWrapperCameraBinSrc::video-source +GstElement* + +rw +Video source +The video source element to be used. + + + + +GstWrapperCameraBinSrc::video-source-filter +GstElement* + +rw +Video source filter +Optional video source filter element. + + + + GstViewfinderBin::video-sink GstElement* @@ -47524,6 +47804,16 @@ +GstViewfinderBin::disable-converters +gboolean + +rw +Disable conversion elements +If video converters should be disabled (must be set on NULL). +FALSE + + + GstImageCaptureBin::image-encoder GstElement* @@ -47579,7 +47869,7 @@ rw Audio source -The audio source element to be used on video recordings. +The audio source element to be used on video recordings. It is only taken into use on the next null to ready transition. @@ -47589,7 +47879,7 @@ rw Camera source -The camera source element to be used. +The camera source element to be used. It is only taken into use on the next null to ready transition. @@ -47659,8 +47949,8 @@ 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" +Location to save the captured files. A %d might be used on thefilename as a placeholder for a numeric index of the capture.Default is cap_%d. +"cap_%d" @@ -47700,7 +47990,7 @@ rw Post Previews If capture preview images should be posted to the bus. -TRUE +FALSE @@ -47789,7 +48079,7 @@ rw Viewfinder sink -The video sink of the viewfinder. +The video sink of the viewfinder. It is only taken into use on the next null to ready transition. @@ -47814,6 +48104,56 @@ +GstCameraBin2::image-profile +GstEncodingProfile* + +rw +Image Profile +The GstEncodingProfile to use for image captures. + + + + +GstCameraBin2::audio-source +GstElement* + +rw +Audio source +The audio source element to be used on video recordings. It is only taken into use on the next null to ready transition. + + + + +GstCameraBin2::camera-source +GstElement* + +rw +Camera source +The camera source element to be used. It is only taken into use on the next null to ready transition. + + + + +GstCameraBin2::audio-filter +GstElement* + +rw +Audio filter +The element that will process captured audio buffers when recording. (Should be set on NULL state). + + + + +GstCameraBin2::flags +GstCamFlags + +rw +Flags +Flags to control behaviour. + + + + GstZebraStripe::threshold gint [0,100] @@ -47933,3 +48273,9753 @@ "/dev/sditx0" + +GstVideo3DPresent::mode +GstVideo3DPresentMode + +rw +Mode +Presentation mode. +Left/Right + + + +GstVideo3DMerge::mode +GstVideo3DLayout + +rw +Mode +Interleaving mode. +Memory Consecutive (top-bottom) + + + +GstVideo3DConvert::mode +GstVideo3DConvertMode + +rw +Mode +Convertion mode. +Unknown + + + +calf-sourceforge-net-plugins-Wavetable::adsr-a +gfloat +[1,20000] +rwx +EG1 Attack +EG1 Attack. +1 + + + +calf-sourceforge-net-plugins-Wavetable::adsr-d +gfloat +[10,20000] +rwx +EG1 Decay +EG1 Decay. +350 + + + +calf-sourceforge-net-plugins-Wavetable::adsr-f +gfloat +[-10000,10000] +rwx +EG1 Fade +EG1 Fade. +0 + + + +calf-sourceforge-net-plugins-Wavetable::adsr-r +gfloat +[10,20000] +rwx +EG1 Release +EG1 Release. +50 + + + +calf-sourceforge-net-plugins-Wavetable::adsr-s +gfloat +[0,1] +rwx +EG1 Sustain +EG1 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Wavetable::adsr-v +gfloat +[0,1] +rwx +EG1 VelMod +EG1 VelMod. +1 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-a +gfloat +[1,20000] +rwx +EG2 Attack +EG2 Attack. +1 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-d +gfloat +[10,20000] +rwx +EG2 Decay +EG2 Decay. +350 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-f +gfloat +[-10000,10000] +rwx +EG2 Fade +EG2 Fade. +0 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-r +gfloat +[10,20000] +rwx +EG2 Release +EG2 Release. +50 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-s +gfloat +[0,1] +rwx +EG2 Sustain +EG2 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Wavetable::adsr2-v +gfloat +[0,1] +rwx +EG2 VelMod +EG2 VelMod. +1 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-a +gfloat +[1,20000] +rwx +EG3 Attack +EG3 Attack. +1 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-d +gfloat +[10,20000] +rwx +EG3 Decay +EG3 Decay. +350 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-f +gfloat +[-10000,10000] +rwx +EG3 Fade +EG3 Fade. +0 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-r +gfloat +[10,20000] +rwx +EG3 Release +EG3 Release. +50 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-s +gfloat +[0,1] +rwx +EG3 Sustain +EG3 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Wavetable::adsr3-v +gfloat +[0,1] +rwx +EG3 VelMod +EG3 VelMod. +0 + + + +calf-sourceforge-net-plugins-Wavetable::o1detune +gint +[-100,100] +rwx +Osc1 Detune +Osc1 Detune. +6 + + + +calf-sourceforge-net-plugins-Wavetable::o1level +gfloat +[0,1] +rwx +Osc1 Level +Osc1 Level. +0.1 + + + +calf-sourceforge-net-plugins-Wavetable::o1offset +gfloat +[-1,1] +rwx +Osc1 Ctl +Osc1 Ctl. +0.2 + + + +calf-sourceforge-net-plugins-Wavetable::o1trans +gint +[-48,48] +rwx +Osc1 Transpose +Osc1 Transpose. +0 + + + +calf-sourceforge-net-plugins-Wavetable::o1wave +gint +[0,28] +rwx +Osc1 Wave +Osc1 Wave. +28 + + + +calf-sourceforge-net-plugins-Wavetable::o2detune +gint +[-100,100] +rwx +Osc2 Detune +Osc2 Detune. +-6 + + + +calf-sourceforge-net-plugins-Wavetable::o2level +gfloat +[0,1] +rwx +Osc2 Level +Osc2 Level. +0 + + + +calf-sourceforge-net-plugins-Wavetable::o2offset +gfloat +[-1,1] +rwx +Osc2 Ctl +Osc2 Ctl. +0.4 + + + +calf-sourceforge-net-plugins-Wavetable::o2trans +gint +[-48,48] +rwx +Osc2 Transpose +Osc2 Transpose. +0 + + + +calf-sourceforge-net-plugins-Wavetable::o2wave +gint +[0,28] +rwx +Osc2 Wave +Osc2 Wave. +0 + + + +calf-sourceforge-net-plugins-Wavetable::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +calf-sourceforge-net-plugins-VintageDelay::amount +gfloat +[0,4] +rwx +Amount +Amount. +0.25 + + + +calf-sourceforge-net-plugins-VintageDelay::bpm +gfloat +[30,300] +rwx +Tempo +Tempo. +120 + + + +calf-sourceforge-net-plugins-VintageDelay::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +calf-sourceforge-net-plugins-VintageDelay::feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0.5 + + + +calf-sourceforge-net-plugins-VintageDelay::medium +gint +[0,2] +rwx +Medium +Medium. +1 + + + +calf-sourceforge-net-plugins-VintageDelay::mix-mode +gint +[0,3] +rwx +Mix mode +Mix mode. +1 + + + +calf-sourceforge-net-plugins-VintageDelay::subdiv +gint +[1,16] +rwx +Subdivide +Subdivide. +4 + + + +calf-sourceforge-net-plugins-VintageDelay::time-l +gint +[1,16] +rwx +Time L +Time L. +3 + + + +calf-sourceforge-net-plugins-VintageDelay::time-r +gint +[1,16] +rwx +Time R +Time R. +5 + + + +calf-sourceforge-net-plugins-VintageDelay::width +gfloat +[-1,1] +rwx +Stereo Width +Stereo Width. +1 + + + +calf-sourceforge-net-plugins-Sidechaingate::attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +20 + + + +calf-sourceforge-net-plugins-Sidechaingate::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::f1-active +gboolean + +r +F1 Active +F1 Active. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::f1-freq +gfloat +[10,18000] +rwx +F1 Freq +F1 Freq. +250 + + + +calf-sourceforge-net-plugins-Sidechaingate::f1-level +gfloat +[0.0625,16] +rwx +F1 Level +F1 Level. +1 + + + +calf-sourceforge-net-plugins-Sidechaingate::f2-active +gboolean + +r +F2 Active +F2 Active. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::f2-freq +gfloat +[10,18000] +rwx +F2 Freq +F2 Freq. +4500 + + + +calf-sourceforge-net-plugins-Sidechaingate::f2-level +gfloat +[0.0625,16] +rwx +F2 Level +F2 Level. +1 + + + +calf-sourceforge-net-plugins-Sidechaingate::gating +gfloat +[0,1] +r +Gating +Gating. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::knee +gfloat +[1,8] +rwx +Knee +Knee. +2.82843 + + + +calf-sourceforge-net-plugins-Sidechaingate::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Sidechaingate::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +1 + + + +calf-sourceforge-net-plugins-Sidechaingate::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::range +gfloat +[0,1] +rwx +Max Gain Reduction +Max Gain Reduction. +0.06125 + + + +calf-sourceforge-net-plugins-Sidechaingate::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +calf-sourceforge-net-plugins-Sidechaingate::release +gfloat +[0.01,2000] +rwx +Release +Release. +250 + + + +calf-sourceforge-net-plugins-Sidechaingate::sc-listen +gboolean + +rwx +S/C-Listen +S/C-Listen. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaingate::sc-mode +gint +[0,9] +rwx +Sidechain Mode +Sidechain Mode. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +calf-sourceforge-net-plugins-Sidechaingate::threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.125 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +20 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::compression +gfloat +[0,1] +r +Gain Reduction +Gain Reduction. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f1-active +gboolean + +r +F1 Active +F1 Active. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f1-freq +gfloat +[10,18000] +rwx +F1 Freq +F1 Freq. +250 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f1-level +gfloat +[0.0625,16] +rwx +F1 Level +F1 Level. +1 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f2-active +gboolean + +r +F2 Active +F2 Active. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f2-freq +gfloat +[10,18000] +rwx +F2 Freq +F2 Freq. +4500 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::f2-level +gfloat +[0.0625,16] +rwx +F2 Level +F2 Level. +1 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::knee +gfloat +[1,8] +rwx +Knee +Knee. +2.82843 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +2 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::release +gfloat +[0.01,2000] +rwx +Release +Release. +250 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::sc-listen +gboolean + +rwx +S/C-Listen +S/C-Listen. +FALSE + + + +calf-sourceforge-net-plugins-Sidechaincompressor::sc-mode +gint +[0,9] +rwx +Sidechain Mode +Sidechain Mode. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +calf-sourceforge-net-plugins-Sidechaincompressor::threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.125 + + + +calf-sourceforge-net-plugins-Saturator::blend +gfloat +[-10,10] +rwx +Blend +Blend. +10 + + + +calf-sourceforge-net-plugins-Saturator::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Saturator::clip-in +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-Saturator::clip-out +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-Saturator::drive +gfloat +[0.1,10] +rwx +Saturation +Saturation. +5 + + + +calf-sourceforge-net-plugins-Saturator::hp-post-freq +gfloat +[10,20000] +rwx +Highpass +Highpass. +10 + + + +calf-sourceforge-net-plugins-Saturator::hp-pre-freq +gfloat +[10,20000] +rwx +Highpass +Highpass. +10 + + + +calf-sourceforge-net-plugins-Saturator::level-in +gfloat +[1,64] +rwx +Activation +Activation. +1 + + + +calf-sourceforge-net-plugins-Saturator::level-out +gfloat +[0,64] +rwx +Master +Master. +1 + + + +calf-sourceforge-net-plugins-Saturator::lp-post-freq +gfloat +[10,20000] +rwx +Lowpass +Lowpass. +20000 + + + +calf-sourceforge-net-plugins-Saturator::lp-pre-freq +gfloat +[10,20000] +rwx +Lowpass +Lowpass. +20000 + + + +calf-sourceforge-net-plugins-Saturator::meter-drive +gfloat +[0,1] +r +Drive +Drive. +0 + + + +calf-sourceforge-net-plugins-Saturator::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Saturator::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Saturator::mix +gfloat +[0,1] +rwx +Mix +Mix. +1 + + + +calf-sourceforge-net-plugins-Saturator::p-freq +gfloat +[80,8000] +rwx +Tone +Tone. +2000 + + + +calf-sourceforge-net-plugins-Saturator::p-level +gfloat +[0.0625,16] +rwx +Amount +Amount. +1 + + + +calf-sourceforge-net-plugins-Saturator::p-q +gfloat +[0.1,10] +rwx +Gradient +Gradient. +1 + + + +calf-sourceforge-net-plugins-RotarySpeaker::bass-speed +gfloat +[10,600] +rwx +Bass Motor +Bass Motor. +30 + + + +calf-sourceforge-net-plugins-RotarySpeaker::meter-h +gfloat +[0,1] +r +High rotor +High rotor. +0 + + + +calf-sourceforge-net-plugins-RotarySpeaker::meter-l +gfloat +[0,1] +r +Low rotor +Low rotor. +0 + + + +calf-sourceforge-net-plugins-RotarySpeaker::mic-distance +gfloat +[0,1] +rwx +Mic Distance +Mic Distance. +0.7 + + + +calf-sourceforge-net-plugins-RotarySpeaker::mod-depth +gfloat +[0,1] +rwx +FM Depth +FM Depth. +0.45 + + + +calf-sourceforge-net-plugins-RotarySpeaker::reflection +gfloat +[0,1] +rwx +Reflection +Reflection. +0.3 + + + +calf-sourceforge-net-plugins-RotarySpeaker::shift +gfloat +[0,1] +rwx +Tap Offset +Tap Offset. +0.5 + + + +calf-sourceforge-net-plugins-RotarySpeaker::spacing +gfloat +[0,1] +rwx +Tap Spacing +Tap Spacing. +0.5 + + + +calf-sourceforge-net-plugins-RotarySpeaker::treble-speed +gfloat +[10,600] +rwx +Treble Motor +Treble Motor. +36 + + + +calf-sourceforge-net-plugins-RotarySpeaker::vib-speed +gint +[0,5] +rwx +Speed Mode +Speed Mode. +5 + + + +calf-sourceforge-net-plugins-RotarySpeaker::am-depth +gfloat +[0,1] +rwx +AM Depth +AM Depth. +0.45 + + + +calf-sourceforge-net-plugins-RotarySpeaker::test +gfloat +[0,1] +rwx +Test +Test. +0 + + + +calf-sourceforge-net-plugins-Reverb::amount +gfloat +[0,2] +rwx +Wet Amount +Wet Amount. +0.25 + + + +calf-sourceforge-net-plugins-Reverb::bass-cut +gfloat +[20,20000] +rwx +Bass Cut +Bass Cut. +300 + + + +calf-sourceforge-net-plugins-Reverb::clip +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-Reverb::decay-time +gfloat +[0.4,15] +rwx +Decay time +Decay time. +1.5 + + + +calf-sourceforge-net-plugins-Reverb::diffusion +gfloat +[0,1] +rwx +Diffusion +Diffusion. +0.5 + + + +calf-sourceforge-net-plugins-Reverb::dry +gfloat +[0,2] +rwx +Dry Amount +Dry Amount. +1 + + + +calf-sourceforge-net-plugins-Reverb::hf-damp +gfloat +[2000,20000] +rwx +High Frq Damp +High Frq Damp. +5000 + + + +calf-sourceforge-net-plugins-Reverb::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Reverb::meter-wet +gfloat +[0,1] +r +Wet amount +Wet amount. +0 + + + +calf-sourceforge-net-plugins-Reverb::predelay +gfloat +[0,50] +rwx +Pre Delay +Pre Delay. +0 + + + +calf-sourceforge-net-plugins-Reverb::room-size +gint +[0,5] +rwx +Room size +Room size. +2 + + + +calf-sourceforge-net-plugins-Reverb::treble-cut +gfloat +[20,20000] +rwx +Treble Cut +Treble Cut. +5000 + + + +calf-sourceforge-net-plugins-Pulsator::amount +gfloat +[0,1] +rwx +Modulation +Modulation. +1 + + + +calf-sourceforge-net-plugins-Pulsator::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Pulsator::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +calf-sourceforge-net-plugins-Pulsator::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +calf-sourceforge-net-plugins-Pulsator::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +calf-sourceforge-net-plugins-Pulsator::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +calf-sourceforge-net-plugins-Pulsator::freq +gfloat +[0.01,100] +rwx +Frequency +Frequency. +1 + + + +calf-sourceforge-net-plugins-Pulsator::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +calf-sourceforge-net-plugins-Pulsator::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +calf-sourceforge-net-plugins-Pulsator::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +calf-sourceforge-net-plugins-Pulsator::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +calf-sourceforge-net-plugins-Pulsator::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +calf-sourceforge-net-plugins-Pulsator::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +calf-sourceforge-net-plugins-Pulsator::mode +gint +[0,4] +rwx +Mode +Mode. +0 + + + +calf-sourceforge-net-plugins-Pulsator::mono +gboolean + +rwx +Mono-in +Mono-in. +FALSE + + + +calf-sourceforge-net-plugins-Pulsator::offset +gfloat +[0,1] +rwx +Offset L/R +Offset L/R. +0.5 + + + +calf-sourceforge-net-plugins-Pulsator::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +calf-sourceforge-net-plugins-Phaser::amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +calf-sourceforge-net-plugins-Phaser::base-freq +gfloat +[20,20000] +rwx +Center Freq +Center Freq. +1000 + + + +calf-sourceforge-net-plugins-Phaser::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +calf-sourceforge-net-plugins-Phaser::feedback +gfloat +[-0.99,0.99] +rwx +Feedback +Feedback. +0.25 + + + +calf-sourceforge-net-plugins-Phaser::mod-depth +gfloat +[0,10800] +rwx +Mod depth +Mod depth. +4000 + + + +calf-sourceforge-net-plugins-Phaser::mod-rate +gfloat +[0.01,20] +rwx +Mod rate +Mod rate. +0.25 + + + +calf-sourceforge-net-plugins-Phaser::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +calf-sourceforge-net-plugins-Phaser::stages +gint +[1,12] +rwx +# Stages +# Stages. +6 + + + +calf-sourceforge-net-plugins-Phaser::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +180 + + + +calf-sourceforge-net-plugins-Organ::adsr-a +gfloat +[1,20000] +rwx +EG1 Attack +EG1 Attack. +1 + + + +calf-sourceforge-net-plugins-Organ::adsr-d +gfloat +[10,20000] +rwx +EG1 Decay +EG1 Decay. +350 + + + +calf-sourceforge-net-plugins-Organ::adsr-r +gfloat +[10,20000] +rwx +EG1 Release +EG1 Release. +50 + + + +calf-sourceforge-net-plugins-Organ::adsr-s +gfloat +[0,1] +rwx +EG1 Sustain +EG1 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Organ::adsr-v +gfloat +[0,1] +rwx +EG1 VelMod +EG1 VelMod. +0 + + + +calf-sourceforge-net-plugins-Organ::adsr2-a +gfloat +[1,20000] +rwx +EG2 Attack +EG2 Attack. +1 + + + +calf-sourceforge-net-plugins-Organ::adsr2-d +gfloat +[10,20000] +rwx +EG2 Decay +EG2 Decay. +350 + + + +calf-sourceforge-net-plugins-Organ::adsr2-r +gfloat +[10,20000] +rwx +EG2 Release +EG2 Release. +50 + + + +calf-sourceforge-net-plugins-Organ::adsr2-s +gfloat +[0,1] +rwx +EG2 Sustain +EG2 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Organ::adsr2-v +gfloat +[0,1] +rwx +EG2 VelMod +EG2 VelMod. +0 + + + +calf-sourceforge-net-plugins-Organ::adsr3-a +gfloat +[1,20000] +rwx +EG3 Attack +EG3 Attack. +1 + + + +calf-sourceforge-net-plugins-Organ::adsr3-d +gfloat +[10,20000] +rwx +EG3 Decay +EG3 Decay. +350 + + + +calf-sourceforge-net-plugins-Organ::adsr3-r +gfloat +[10,20000] +rwx +EG3 Release +EG3 Release. +50 + + + +calf-sourceforge-net-plugins-Organ::adsr3-s +gfloat +[0,1] +rwx +EG3 Sustain +EG3 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Organ::adsr3-v +gfloat +[0,1] +rwx +EG3 VelMod +EG3 VelMod. +0 + + + +calf-sourceforge-net-plugins-Organ::bass-freq +gfloat +[20,20000] +rwx +Bass Freq +Bass Freq. +80 + + + +calf-sourceforge-net-plugins-Organ::bass-gain +gfloat +[0.1,10] +rwx +Bass Gain +Bass Gain. +1 + + + +calf-sourceforge-net-plugins-Organ::detune +gfloat +[-100,100] +rwx +Detune +Detune. +0 + + + +calf-sourceforge-net-plugins-Organ::detune1 +gfloat +[-100,100] +rwx +Detune 1 +Detune 1. +0 + + + +calf-sourceforge-net-plugins-Organ::detune2 +gfloat +[-100,100] +rwx +Detune 2 +Detune 2. +0 + + + +calf-sourceforge-net-plugins-Organ::detune3 +gfloat +[-100,100] +rwx +Detune 3 +Detune 3. +0 + + + +calf-sourceforge-net-plugins-Organ::detune4 +gfloat +[-100,100] +rwx +Detune 4 +Detune 4. +0 + + + +calf-sourceforge-net-plugins-Organ::detune5 +gfloat +[-100,100] +rwx +Detune 5 +Detune 5. +0 + + + +calf-sourceforge-net-plugins-Organ::detune6 +gfloat +[-100,100] +rwx +Detune 6 +Detune 6. +0 + + + +calf-sourceforge-net-plugins-Organ::detune7 +gfloat +[-100,100] +rwx +Detune 7 +Detune 7. +0 + + + +calf-sourceforge-net-plugins-Organ::detune8 +gfloat +[-100,100] +rwx +Detune 8 +Detune 8. +0 + + + +calf-sourceforge-net-plugins-Organ::detune9 +gfloat +[-100,100] +rwx +Detune 9 +Detune 9. +0 + + + +calf-sourceforge-net-plugins-Organ::eg1-amp-ctl +gint +[0,4] +rwx +EG1 To Amp +EG1 To Amp. +0 + + + +calf-sourceforge-net-plugins-Organ::eg2-amp-ctl +gint +[0,4] +rwx +EG2 To Amp +EG2 To Amp. +0 + + + +calf-sourceforge-net-plugins-Organ::eg3-amp-ctl +gint +[0,4] +rwx +EG3 To Amp +EG3 To Amp. +0 + + + +calf-sourceforge-net-plugins-Organ::f1 +gint +[1,32] +rwx +Freq 1 +Freq 1. +1 + + + +calf-sourceforge-net-plugins-Organ::f1-cutoff +gfloat +[20,20000] +rwx +F1 Cutoff +F1 Cutoff. +2000 + + + +calf-sourceforge-net-plugins-Organ::f1-env1 +gfloat +[-10800,10800] +rwx +F1 Env1 +F1 Env1. +8000 + + + +calf-sourceforge-net-plugins-Organ::f1-env2 +gfloat +[-10800,10800] +rwx +F1 Env2 +F1 Env2. +0 + + + +calf-sourceforge-net-plugins-Organ::f1-env3 +gfloat +[-10800,10800] +rwx +F1 Env3 +F1 Env3. +0 + + + +calf-sourceforge-net-plugins-Organ::f1-keyf +gfloat +[0,2] +rwx +F1 KeyFollow +F1 KeyFollow. +0 + + + +calf-sourceforge-net-plugins-Organ::f1-res +gfloat +[0.7,8] +rwx +F1 Res +F1 Res. +2 + + + +calf-sourceforge-net-plugins-Organ::f2 +gint +[1,32] +rwx +Freq 2 +Freq 2. +3 + + + +calf-sourceforge-net-plugins-Organ::f2-cutoff +gfloat +[20,20000] +rwx +F2 Cutoff +F2 Cutoff. +2000 + + + +calf-sourceforge-net-plugins-Organ::f2-env1 +gfloat +[-10800,10800] +rwx +F2 Env1 +F2 Env1. +0 + + + +calf-sourceforge-net-plugins-Organ::f2-env2 +gfloat +[-10800,10800] +rwx +F2 Env2 +F2 Env2. +8000 + + + +calf-sourceforge-net-plugins-Organ::f2-env3 +gfloat +[-10800,10800] +rwx +F2 Env3 +F2 Env3. +0 + + + +calf-sourceforge-net-plugins-Organ::f2-keyf +gfloat +[0,2] +rwx +F2 KeyFollow +F2 KeyFollow. +0 + + + +calf-sourceforge-net-plugins-Organ::f2-res +gfloat +[0.7,8] +rwx +F2 Res +F2 Res. +2 + + + +calf-sourceforge-net-plugins-Organ::f3 +gint +[1,32] +rwx +Freq 3 +Freq 3. +2 + + + +calf-sourceforge-net-plugins-Organ::f4 +gint +[1,32] +rwx +Freq 4 +Freq 4. +4 + + + +calf-sourceforge-net-plugins-Organ::f5 +gint +[1,32] +rwx +Freq 5 +Freq 5. +6 + + + +calf-sourceforge-net-plugins-Organ::f6 +gint +[1,32] +rwx +Freq 6 +Freq 6. +8 + + + +calf-sourceforge-net-plugins-Organ::f7 +gint +[1,32] +rwx +Freq 7 +Freq 7. +10 + + + +calf-sourceforge-net-plugins-Organ::f8 +gint +[1,32] +rwx +Freq 8 +Freq 8. +12 + + + +calf-sourceforge-net-plugins-Organ::f9 +gint +[1,32] +rwx +Freq 9 +Freq 9. +16 + + + +calf-sourceforge-net-plugins-Organ::filter-chain +gint +[0,1] +rwx +Filter 1 To +Filter 1 To. +0 + + + +calf-sourceforge-net-plugins-Organ::filter1-type +gint +[0,1] +rwx +Filter 1 Type +Filter 1 Type. +0 + + + +calf-sourceforge-net-plugins-Organ::foldnote +gint +[0,127] +rwx +Foldover +Foldover. +108 + + + +calf-sourceforge-net-plugins-Organ::l1 +gfloat +[0,8] +rwx +16' +16'. +8 + + + +calf-sourceforge-net-plugins-Organ::l2 +gfloat +[0,8] +rwx +5 1/3' +5 1/3'. +8 + + + +calf-sourceforge-net-plugins-Organ::l3 +gfloat +[0,8] +rwx +8' +8'. +8 + + + +calf-sourceforge-net-plugins-Organ::l4 +gfloat +[0,8] +rwx +4' +4'. +0 + + + +calf-sourceforge-net-plugins-Organ::l5 +gfloat +[0,8] +rwx +2 2/3' +2 2/3'. +0 + + + +calf-sourceforge-net-plugins-Organ::l6 +gfloat +[0,8] +rwx +2' +2'. +0 + + + +calf-sourceforge-net-plugins-Organ::l7 +gfloat +[0,8] +rwx +1 3/5' +1 3/5'. +0 + + + +calf-sourceforge-net-plugins-Organ::l8 +gfloat +[0,8] +rwx +1 1/3' +1 1/3'. +0 + + + +calf-sourceforge-net-plugins-Organ::l9 +gfloat +[0,8] +rwx +1' +1'. +8 + + + +calf-sourceforge-net-plugins-Organ::master +gfloat +[0,1] +rwx +Volume +Volume. +0.1 + + + +calf-sourceforge-net-plugins-Organ::pan1 +gfloat +[-1,1] +rwx +Pan 1 +Pan 1. +0 + + + +calf-sourceforge-net-plugins-Organ::pan2 +gfloat +[-1,1] +rwx +Pan 2 +Pan 2. +0 + + + +calf-sourceforge-net-plugins-Organ::pan3 +gfloat +[-1,1] +rwx +Pan 3 +Pan 3. +0 + + + +calf-sourceforge-net-plugins-Organ::pan4 +gfloat +[-1,1] +rwx +Pan 4 +Pan 4. +0 + + + +calf-sourceforge-net-plugins-Organ::pan5 +gfloat +[-1,1] +rwx +Pan 5 +Pan 5. +0 + + + +calf-sourceforge-net-plugins-Organ::pan6 +gfloat +[-1,1] +rwx +Pan 6 +Pan 6. +0 + + + +calf-sourceforge-net-plugins-Organ::pan7 +gfloat +[-1,1] +rwx +Pan 7 +Pan 7. +0 + + + +calf-sourceforge-net-plugins-Organ::pan8 +gfloat +[-1,1] +rwx +Pan 8 +Pan 8. +0 + + + +calf-sourceforge-net-plugins-Organ::pan9 +gfloat +[-1,1] +rwx +Pan 9 +Pan 9. +0 + + + +calf-sourceforge-net-plugins-Organ::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +calf-sourceforge-net-plugins-Organ::perc-decay +gfloat +[10,3000] +rwx +P: Carrier Decay +P: Carrier Decay. +200 + + + +calf-sourceforge-net-plugins-Organ::perc-fm-decay +gfloat +[10,3000] +rwx +P: Modulator Decay +P: Modulator Decay. +200 + + + +calf-sourceforge-net-plugins-Organ::perc-fm-depth +gfloat +[0,4] +rwx +P: FM Depth +P: FM Depth. +0 + + + +calf-sourceforge-net-plugins-Organ::perc-fm-harmonic +gint +[1,32] +rwx +P: Modulator Frq +P: Modulator Frq. +6 + + + +calf-sourceforge-net-plugins-Organ::perc-fm-waveform +gint +[0,27] +rwx +P: Modulator Wave +P: Modulator Wave. +0 + + + +calf-sourceforge-net-plugins-Organ::perc-harmonic +gint +[1,32] +rwx +P: Carrier Frq +P: Carrier Frq. +6 + + + +calf-sourceforge-net-plugins-Organ::perc-level +gfloat +[0,1] +rwx +P: Level +P: Level. +0.25 + + + +calf-sourceforge-net-plugins-Organ::perc-stereo +gfloat +[0,360] +rwx +P: Stereo Phase +P: Stereo Phase. +90 + + + +calf-sourceforge-net-plugins-Organ::perc-trigger +gint +[0,3] +rwx +P: Trigger +P: Trigger. +0 + + + +calf-sourceforge-net-plugins-Organ::perc-vel2amp +gfloat +[0,1] +rwx +P: Vel->Amp +P: Vel->Amp. +0 + + + +calf-sourceforge-net-plugins-Organ::perc-vel2fm +gfloat +[0,1] +rwx +P: Vel->FM +P: Vel->FM. +0 + + + +calf-sourceforge-net-plugins-Organ::perc-waveform +gint +[0,27] +rwx +P: Carrier Wave +P: Carrier Wave. +0 + + + +calf-sourceforge-net-plugins-Organ::phase1 +gfloat +[0,360] +rwx +Phase 1 +Phase 1. +0 + + + +calf-sourceforge-net-plugins-Organ::phase2 +gfloat +[0,360] +rwx +Phase 2 +Phase 2. +0 + + + +calf-sourceforge-net-plugins-Organ::phase3 +gfloat +[0,360] +rwx +Phase 3 +Phase 3. +0 + + + +calf-sourceforge-net-plugins-Organ::phase4 +gfloat +[0,360] +rwx +Phase 4 +Phase 4. +0 + + + +calf-sourceforge-net-plugins-Organ::phase5 +gfloat +[0,360] +rwx +Phase 5 +Phase 5. +0 + + + +calf-sourceforge-net-plugins-Organ::phase6 +gfloat +[0,360] +rwx +Phase 6 +Phase 6. +0 + + + +calf-sourceforge-net-plugins-Organ::phase7 +gfloat +[0,360] +rwx +Phase 7 +Phase 7. +0 + + + +calf-sourceforge-net-plugins-Organ::phase8 +gfloat +[0,360] +rwx +Phase 8 +Phase 8. +0 + + + +calf-sourceforge-net-plugins-Organ::phase9 +gfloat +[0,360] +rwx +Phase 9 +Phase 9. +0 + + + +calf-sourceforge-net-plugins-Organ::polyphony +gint +[1,32] +rwx +Polyphony +Polyphony. +16 + + + +calf-sourceforge-net-plugins-Organ::quad-env +gboolean + +rwx +Quadratic AmpEnv +Quadratic AmpEnv. +FALSE + + + +calf-sourceforge-net-plugins-Organ::routing1 +gint +[0,2] +rwx +Routing 1 +Routing 1. +0 + + + +calf-sourceforge-net-plugins-Organ::routing2 +gint +[0,2] +rwx +Routing 2 +Routing 2. +0 + + + +calf-sourceforge-net-plugins-Organ::routing3 +gint +[0,2] +rwx +Routing 3 +Routing 3. +0 + + + +calf-sourceforge-net-plugins-Organ::routing4 +gint +[0,2] +rwx +Routing 4 +Routing 4. +0 + + + +calf-sourceforge-net-plugins-Organ::routing5 +gint +[0,2] +rwx +Routing 5 +Routing 5. +0 + + + +calf-sourceforge-net-plugins-Organ::routing6 +gint +[0,2] +rwx +Routing 6 +Routing 6. +0 + + + +calf-sourceforge-net-plugins-Organ::routing7 +gint +[0,2] +rwx +Routing 7 +Routing 7. +0 + + + +calf-sourceforge-net-plugins-Organ::routing8 +gint +[0,2] +rwx +Routing 8 +Routing 8. +0 + + + +calf-sourceforge-net-plugins-Organ::routing9 +gint +[0,2] +rwx +Routing 9 +Routing 9. +0 + + + +calf-sourceforge-net-plugins-Organ::transpose +gint +[-24,24] +rwx +Transpose +Transpose. +-12 + + + +calf-sourceforge-net-plugins-Organ::treble-freq +gfloat +[20,20000] +rwx +Treble Freq +Treble Freq. +12000 + + + +calf-sourceforge-net-plugins-Organ::treble-gain +gfloat +[0.1,10] +rwx +Treble Gain +Treble Gain. +1 + + + +calf-sourceforge-net-plugins-Organ::vib-amt +gfloat +[0,1] +rwx +Vib Mod Amt +Vib Mod Amt. +1 + + + +calf-sourceforge-net-plugins-Organ::vib-mode +gint +[0,5] +rwx +Vib Mode +Vib Mode. +5 + + + +calf-sourceforge-net-plugins-Organ::vib-phase +gfloat +[0,360] +rwx +Vib Stereo +Vib Stereo. +180 + + + +calf-sourceforge-net-plugins-Organ::vib-rate +gfloat +[0.01,240] +rwx +Vib Rate +Vib Rate. +6.6 + + + +calf-sourceforge-net-plugins-Organ::vib-wet +gfloat +[0,1] +rwx +Vib Wet +Vib Wet. +0.5 + + + +calf-sourceforge-net-plugins-Organ::w1 +gint +[0,35] +rwx +Wave 1 +Wave 1. +0 + + + +calf-sourceforge-net-plugins-Organ::w2 +gint +[0,35] +rwx +Wave 2 +Wave 2. +0 + + + +calf-sourceforge-net-plugins-Organ::w3 +gint +[0,35] +rwx +Wave 3 +Wave 3. +0 + + + +calf-sourceforge-net-plugins-Organ::w4 +gint +[0,35] +rwx +Wave 4 +Wave 4. +0 + + + +calf-sourceforge-net-plugins-Organ::w5 +gint +[0,35] +rwx +Wave 5 +Wave 5. +0 + + + +calf-sourceforge-net-plugins-Organ::w6 +gint +[0,35] +rwx +Wave 6 +Wave 6. +0 + + + +calf-sourceforge-net-plugins-Organ::w7 +gint +[0,35] +rwx +Wave 7 +Wave 7. +0 + + + +calf-sourceforge-net-plugins-Organ::w8 +gint +[0,35] +rwx +Wave 8 +Wave 8. +0 + + + +calf-sourceforge-net-plugins-Organ::w9 +gint +[0,35] +rwx +Wave 9 +Wave 9. +0 + + + +calf-sourceforge-net-plugins-Organ::vib-type +gint +[0,4] +rwx +Vib Type +Vib Type. +3 + + + +calf-sourceforge-net-plugins-Multibandcompressor::attack0 +gfloat +[0.01,2000] +rwx +Attack 1 +Attack 1. +50 + + + +calf-sourceforge-net-plugins-Multibandcompressor::attack1 +gfloat +[0.01,2000] +rwx +Attack 2 +Attack 2. +25 + + + +calf-sourceforge-net-plugins-Multibandcompressor::attack2 +gfloat +[0.01,2000] +rwx +Attack 3 +Attack 3. +12.5 + + + +calf-sourceforge-net-plugins-Multibandcompressor::attack3 +gfloat +[0.01,2000] +rwx +Attack 4 +Attack 4. +6.25 + + + +calf-sourceforge-net-plugins-Multibandcompressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::bypass0 +gboolean + +rwx +Bypass 1 +Bypass 1. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::bypass1 +gboolean + +rwx +Bypass 2 +Bypass 2. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::bypass2 +gboolean + +rwx +Bypass 3 +Bypass 3. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::bypass3 +gboolean + +rwx +Bypass 4 +Bypass 4. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::compression0 +gfloat +[0,1] +r +Gain Reduction 1 +Gain Reduction 1. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::compression1 +gfloat +[0,1] +r +Gain Reduction 2 +Gain Reduction 2. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::compression2 +gfloat +[0,1] +r +Gain Reduction 3 +Gain Reduction 3. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::compression3 +gfloat +[0,1] +r +Gain Reduction 4 +Gain Reduction 4. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::detection0 +gint +[0,1] +rwx +Detection 1 +Detection 1. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::detection1 +gint +[0,1] +rwx +Detection 2 +Detection 2. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::detection2 +gint +[0,1] +rwx +Detection 3 +Detection 3. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::detection3 +gint +[0,1] +rwx +Detection 4 +Detection 4. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::freq0 +gfloat +[10,20000] +rwx +Split 1/2 +Split 1/2. +100 + + + +calf-sourceforge-net-plugins-Multibandcompressor::freq1 +gfloat +[10,20000] +rwx +Split 2/3 +Split 2/3. +1000 + + + +calf-sourceforge-net-plugins-Multibandcompressor::freq2 +gfloat +[10,20000] +rwx +Split 3/4 +Split 3/4. +6000 + + + +calf-sourceforge-net-plugins-Multibandcompressor::knee0 +gfloat +[1,8] +rwx +Knee 1 +Knee 1. +2.82843 + + + +calf-sourceforge-net-plugins-Multibandcompressor::knee1 +gfloat +[1,8] +rwx +Knee 2 +Knee 2. +2.82843 + + + +calf-sourceforge-net-plugins-Multibandcompressor::knee2 +gfloat +[1,8] +rwx +Knee 3 +Knee 3. +2.82843 + + + +calf-sourceforge-net-plugins-Multibandcompressor::knee3 +gfloat +[1,8] +rwx +Knee 4 +Knee 4. +2.82843 + + + +calf-sourceforge-net-plugins-Multibandcompressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::level-out +gfloat +[0,64] +rwx +Output +Output. +1 + + + +calf-sourceforge-net-plugins-Multibandcompressor::makeup0 +gfloat +[1,64] +rwx +Makeup 1 +Makeup 1. +2 + + + +calf-sourceforge-net-plugins-Multibandcompressor::makeup1 +gfloat +[1,64] +rwx +Makeup 2 +Makeup 2. +2 + + + +calf-sourceforge-net-plugins-Multibandcompressor::makeup2 +gfloat +[1,64] +rwx +Makeup 3 +Makeup 3. +2 + + + +calf-sourceforge-net-plugins-Multibandcompressor::makeup3 +gfloat +[1,64] +rwx +Makeup 4 +Makeup 4. +2 + + + +calf-sourceforge-net-plugins-Multibandcompressor::meter-inL +gfloat +[0,1] +r +Input L +Input L. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::meter-inR +gfloat +[0,1] +r +Input R +Input R. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::meter-outL +gfloat +[0,1] +r +Output L +Output L. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::meter-outR +gfloat +[0,1] +r +Output R +Output R. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::mute0 +gboolean + +rwx +Mute 1 +Mute 1. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::mute1 +gboolean + +rwx +Mute 2 +Mute 2. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::mute2 +gboolean + +rwx +Mute 3 +Mute 3. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::mute3 +gboolean + +rwx +Mute 4 +Mute 4. +FALSE + + + +calf-sourceforge-net-plugins-Multibandcompressor::output0 +gfloat +[0,1] +r +Output 1 +Output 1. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::output1 +gfloat +[0,1] +r +Output 2 +Output 2. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::output2 +gfloat +[0,1] +r +Output 3 +Output 3. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::output3 +gfloat +[0,1] +r +Output 4 +Output 4. +0 + + + +calf-sourceforge-net-plugins-Multibandcompressor::q0 +gfloat +[0.25,4] +rwx +Q1 +Q1. +0.895025 + + + +calf-sourceforge-net-plugins-Multibandcompressor::q1 +gfloat +[0.25,4] +rwx +Q2 +Q2. +0.895025 + + + +calf-sourceforge-net-plugins-Multibandcompressor::q2 +gfloat +[0.25,4] +rwx +Q3 +Q3. +0.895025 + + + +calf-sourceforge-net-plugins-Multibandcompressor::ratio0 +gfloat +[1,20] +rwx +Ratio 1 +Ratio 1. +3 + + + +calf-sourceforge-net-plugins-Multibandcompressor::ratio1 +gfloat +[1,20] +rwx +Ratio 2 +Ratio 2. +3 + + + +calf-sourceforge-net-plugins-Multibandcompressor::ratio2 +gfloat +[1,20] +rwx +Ratio 3 +Ratio 3. +3 + + + +calf-sourceforge-net-plugins-Multibandcompressor::ratio3 +gfloat +[1,20] +rwx +Ratio 4 +Ratio 4. +3 + + + +calf-sourceforge-net-plugins-Multibandcompressor::release0 +gfloat +[0.01,2000] +rwx +Release 1 +Release 1. +100 + + + +calf-sourceforge-net-plugins-Multibandcompressor::release1 +gfloat +[0.01,2000] +rwx +Release 2 +Release 2. +50 + + + +calf-sourceforge-net-plugins-Multibandcompressor::release2 +gfloat +[0.01,2000] +rwx +Release 3 +Release 3. +25 + + + +calf-sourceforge-net-plugins-Multibandcompressor::release3 +gfloat +[0.01,2000] +rwx +Release 4 +Release 4. +12.5 + + + +calf-sourceforge-net-plugins-Multibandcompressor::sep0 +gfloat +[-0.5,0.5] +rwx +S1 +S1. +-0.17 + + + +calf-sourceforge-net-plugins-Multibandcompressor::sep1 +gfloat +[-0.5,0.5] +rwx +S2 +S2. +-0.17 + + + +calf-sourceforge-net-plugins-Multibandcompressor::sep2 +gfloat +[-0.5,0.5] +rwx +S3 +S3. +-0.17 + + + +calf-sourceforge-net-plugins-Multibandcompressor::threshold0 +gfloat +[0.000976563,1] +rwx +Threshold 1 +Threshold 1. +0.0625 + + + +calf-sourceforge-net-plugins-Multibandcompressor::threshold1 +gfloat +[0.000976563,1] +rwx +Threshold 2 +Threshold 2. +0.03125 + + + +calf-sourceforge-net-plugins-Multibandcompressor::threshold2 +gfloat +[0.000976563,1] +rwx +Threshold 3 +Threshold 3. +0.015625 + + + +calf-sourceforge-net-plugins-Multibandcompressor::threshold3 +gfloat +[0.000976563,1] +rwx +Threshold 4 +Threshold 4. +0.0078125 + + + +calf-sourceforge-net-plugins-MultiChorus::amount +gfloat +[0,4] +rwx +Amount +Amount. +2 + + + +calf-sourceforge-net-plugins-MultiChorus::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +calf-sourceforge-net-plugins-MultiChorus::freq +gfloat +[10,20000] +rwx +Center Frq 1 +Center Frq 1. +100 + + + +calf-sourceforge-net-plugins-MultiChorus::freq2 +gfloat +[10,20000] +rwx +Center Frq 2 +Center Frq 2. +5000 + + + +calf-sourceforge-net-plugins-MultiChorus::min-delay +gfloat +[0.1,10] +rwx +Min delay +Min delay. +5 + + + +calf-sourceforge-net-plugins-MultiChorus::mod-depth +gfloat +[0.1,10] +rwx +Mod depth +Mod depth. +6 + + + +calf-sourceforge-net-plugins-MultiChorus::mod-rate +gfloat +[0.01,20] +rwx +Modulation rate +Modulation rate. +0.5 + + + +calf-sourceforge-net-plugins-MultiChorus::overlap +gfloat +[0,1] +rwx +Overlap +Overlap. +1 + + + +calf-sourceforge-net-plugins-MultiChorus::q +gfloat +[0.125,8] +rwx +Q +Q. +0.125 + + + +calf-sourceforge-net-plugins-MultiChorus::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +180 + + + +calf-sourceforge-net-plugins-MultiChorus::voices +gint +[1,8] +rwx +Voices +Voices. +4 + + + +calf-sourceforge-net-plugins-MultiChorus::vphase +gfloat +[0,360] +rwx +Inter-voice phase +Inter-voice phase. +64 + + + +calf-sourceforge-net-plugins-Monosynth::adsr-a +gfloat +[1,20000] +rwx +EG1 Attack +EG1 Attack. +1 + + + +calf-sourceforge-net-plugins-Monosynth::adsr-d +gfloat +[10,20000] +rwx +EG1 Decay +EG1 Decay. +350 + + + +calf-sourceforge-net-plugins-Monosynth::adsr-f +gfloat +[-10000,10000] +rwx +EG1 Fade +EG1 Fade. +0 + + + +calf-sourceforge-net-plugins-Monosynth::adsr-r +gfloat +[10,20000] +rwx +EG1 Release +EG1 Release. +100 + + + +calf-sourceforge-net-plugins-Monosynth::adsr-s +gfloat +[0,1] +rwx +EG1 Sustain +EG1 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-a +gfloat +[1,20000] +rwx +EG2 Attack +EG2 Attack. +1 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-amp +gboolean + +rwx +EG2->Amp +EG2->Amp. +FALSE + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-cutoff +gfloat +[-10800,10800] +rwx +EG2->Cutoff +EG2->Cutoff. +0 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-d +gfloat +[10,20000] +rwx +EG2 Decay +EG2 Decay. +100 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-f +gfloat +[-10000,10000] +rwx +EG2 Fade +EG2 Fade. +0 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-r +gfloat +[10,20000] +rwx +Release +Release. +50 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-res +gfloat +[0,1] +rwx +EG2->Res +EG2->Res. +0.3 + + + +calf-sourceforge-net-plugins-Monosynth::adsr2-s +gfloat +[0,1] +rwx +EG2 Sustain +EG2 Sustain. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::cutoff +gfloat +[10,16000] +rwx +Cutoff +Cutoff. +33 + + + +calf-sourceforge-net-plugins-Monosynth::env2amp +gboolean + +rwx +Env->Amp +Env->Amp. +FALSE + + + +calf-sourceforge-net-plugins-Monosynth::env2cutoff +gfloat +[-10800,10800] +rwx +Env->Cutoff +Env->Cutoff. +8000 + + + +calf-sourceforge-net-plugins-Monosynth::env2res +gfloat +[0,1] +rwx +Env->Res +Env->Res. +1 + + + +calf-sourceforge-net-plugins-Monosynth::filter +gint +[0,7] +rwx +Filter +Filter. +1 + + + +calf-sourceforge-net-plugins-Monosynth::filter-sep +gfloat +[-2400,2400] +rwx +Separation +Separation. +0 + + + +calf-sourceforge-net-plugins-Monosynth::key-follow +gfloat +[0,2] +rwx +Key Follow +Key Follow. +0 + + + +calf-sourceforge-net-plugins-Monosynth::legato +gint +[0,3] +rwx +Legato Mode +Legato Mode. +0 + + + +calf-sourceforge-net-plugins-Monosynth::lfo-delay +gfloat +[0,5] +rwx +LFO1 Delay +LFO1 Delay. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::lfo-rate +gfloat +[0.01,20] +rwx +LFO1 Rate +LFO1 Rate. +5 + + + +calf-sourceforge-net-plugins-Monosynth::lfo1-trig +gint +[0,1] +rwx +LFO1 Trigger Mode +LFO1 Trigger Mode. +0 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2-delay +gfloat +[0.1,5] +rwx +LFO1 Delay +LFO1 Delay. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2-rate +gfloat +[0.01,20] +rwx +LFO1 Rate +LFO1 Rate. +5 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2-trig +gint +[0,1] +rwx +LFO2 Trigger Mode +LFO2 Trigger Mode. +0 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2filter +gfloat +[-4800,4800] +rwx +LFO1->Filter +LFO1->Filter. +0 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2pitch +gfloat +[0,1200] +rwx +LFO1->Pitch +LFO1->Pitch. +100 + + + +calf-sourceforge-net-plugins-Monosynth::lfo2pw +gfloat +[0,1] +rwx +LFO1->PW +LFO1->PW. +0 + + + +calf-sourceforge-net-plugins-Monosynth::master +gfloat +[0,1] +rwx +Volume +Volume. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::mwhl2lfo +gfloat +[0,1] +rwx +ModWheel->LFO1 +ModWheel->LFO1. +1 + + + +calf-sourceforge-net-plugins-Monosynth::o1-pw +gfloat +[-1,1] +rwx +Osc1 PW +Osc1 PW. +0 + + + +calf-sourceforge-net-plugins-Monosynth::o1-stretch +gfloat +[1,16] +rwx +Osc1 Stretch +Osc1 Stretch. +1 + + + +calf-sourceforge-net-plugins-Monosynth::o1-wave +gint +[0,15] +rwx +Osc1 Wave +Osc1 Wave. +0 + + + +calf-sourceforge-net-plugins-Monosynth::o1-window +gfloat +[0,1] +rwx +Osc1 Window +Osc1 Window. +0 + + + +calf-sourceforge-net-plugins-Monosynth::o12-detune +gfloat +[0,100] +rwx +O1<>2 Detune +O1<>2 Detune. +10 + + + +calf-sourceforge-net-plugins-Monosynth::o12-mix +gfloat +[0,1] +rwx +O1<>2 Mix +O1<>2 Mix. +0.5 + + + +calf-sourceforge-net-plugins-Monosynth::o2-pw +gfloat +[-1,1] +rwx +Osc2 PW +Osc2 PW. +0 + + + +calf-sourceforge-net-plugins-Monosynth::o2-wave +gint +[0,15] +rwx +Osc2 Wave +Osc2 Wave. +1 + + + +calf-sourceforge-net-plugins-Monosynth::o2-xpose +gint +[-24,24] +rwx +Osc 2 transpose +Osc 2 transpose. +12 + + + +calf-sourceforge-net-plugins-Monosynth::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +calf-sourceforge-net-plugins-Monosynth::phase-mode +gint +[0,5] +rwx +Phase mode +Phase mode. +0 + + + +calf-sourceforge-net-plugins-Monosynth::portamento +gfloat +[1,2000] +rwx +Portamento +Portamento. +1 + + + +calf-sourceforge-net-plugins-Monosynth::res +gfloat +[0.7,8] +rwx +Resonance +Resonance. +3 + + + +calf-sourceforge-net-plugins-Monosynth::scale-detune +gfloat +[0,1] +rwx +Scale Detune +Scale Detune. +1 + + + +calf-sourceforge-net-plugins-Monosynth::vel2amp +gfloat +[0,1] +rwx +Vel->Amp +Vel->Amp. +0 + + + +calf-sourceforge-net-plugins-Monosynth::vel2filter +gfloat +[0,1] +rwx +Vel->Filter +Vel->Filter. +0.5 + + + +calf-sourceforge-net-plugins-Gate::attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +20 + + + +calf-sourceforge-net-plugins-Gate::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Gate::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +calf-sourceforge-net-plugins-Gate::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +calf-sourceforge-net-plugins-Gate::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +calf-sourceforge-net-plugins-Gate::gating +gfloat +[0,1] +r +Gating +Gating. +0 + + + +calf-sourceforge-net-plugins-Gate::knee +gfloat +[1,8] +rwx +Knee +Knee. +2.82843 + + + +calf-sourceforge-net-plugins-Gate::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Gate::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +1 + + + +calf-sourceforge-net-plugins-Gate::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Gate::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Gate::range +gfloat +[0,1] +rwx +Max Gain Reduction +Max Gain Reduction. +0.06125 + + + +calf-sourceforge-net-plugins-Gate::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +calf-sourceforge-net-plugins-Gate::release +gfloat +[0.01,2000] +rwx +Release +Release. +250 + + + +calf-sourceforge-net-plugins-Gate::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +calf-sourceforge-net-plugins-Gate::threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.125 + + + +calf-sourceforge-net-plugins-Fluidsynth::chorus +gboolean + +rwx +Chorus +Chorus. +FALSE + + + +calf-sourceforge-net-plugins-Fluidsynth::interpolation +gint +[0,3] +rwx +Interpolation +Interpolation. +2 + + + +calf-sourceforge-net-plugins-Fluidsynth::master +gfloat +[0,1] +rwx +Volume +Volume. +0.5 + + + +calf-sourceforge-net-plugins-Fluidsynth::o1offset +gfloat +[-1,1] +rwx +Osc1 Ctl +Osc1 Ctl. +0.2 + + + +calf-sourceforge-net-plugins-Fluidsynth::o1wave +gint +[0,28] +rwx +Osc1 Wave +Osc1 Wave. +28 + + + +calf-sourceforge-net-plugins-Fluidsynth::reverb +gboolean + +rwx +Reverb +Reverb. +FALSE + + + +calf-sourceforge-net-plugins-Flanger::amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +calf-sourceforge-net-plugins-Flanger::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +calf-sourceforge-net-plugins-Flanger::feedback +gfloat +[-0.99,0.99] +rwx +Feedback +Feedback. +0.9 + + + +calf-sourceforge-net-plugins-Flanger::min-delay +gfloat +[0.1,10] +rwx +Min delay +Min delay. +0.1 + + + +calf-sourceforge-net-plugins-Flanger::mod-depth +gfloat +[0.1,10] +rwx +Mod depth +Mod depth. +0.5 + + + +calf-sourceforge-net-plugins-Flanger::mod-rate +gfloat +[0.01,20] +rwx +Mod rate +Mod rate. +0.25 + + + +calf-sourceforge-net-plugins-Flanger::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +calf-sourceforge-net-plugins-Flanger::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +0 + + + +calf-sourceforge-net-plugins-Filterclavier::detune +gint +[-100,100] +rwx +Detune +Detune. +0 + + + +calf-sourceforge-net-plugins-Filterclavier::inertia +gfloat +[1,2000] +rwx +Portamento time +Portamento time. +20 + + + +calf-sourceforge-net-plugins-Filterclavier::maxres +gfloat +[0.707,32] +rwx +Max. Resonance +Max. Resonance. +32 + + + +calf-sourceforge-net-plugins-Filterclavier::mode +gint +[0,11] +rwx +Mode +Mode. +6 + + + +calf-sourceforge-net-plugins-Filterclavier::transpose +gint +[-48,48] +rwx +Transpose +Transpose. +0 + + + +calf-sourceforge-net-plugins-Filter::freq +gfloat +[10,20000] +rwx +Frequency +Frequency. +2000 + + + +calf-sourceforge-net-plugins-Filter::inertia +gfloat +[5,100] +rwx +Inertia +Inertia. +20 + + + +calf-sourceforge-net-plugins-Filter::mode +gint +[0,11] +rwx +Mode +Mode. +0 + + + +calf-sourceforge-net-plugins-Filter::res +gfloat +[0.707,32] +rwx +Resonance +Resonance. +0.707 + + + +calf-sourceforge-net-plugins-Exciter::amount +gfloat +[0,64] +rwx +Amount +Amount. +1 + + + +calf-sourceforge-net-plugins-Exciter::blend +gfloat +[-10,10] +rwx +Blend harmonics +Blend harmonics. +0 + + + +calf-sourceforge-net-plugins-Exciter::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Exciter::clip-in +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-Exciter::clip-out +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-Exciter::drive +gfloat +[0.1,10] +rwx +Harmonics +Harmonics. +8.5 + + + +calf-sourceforge-net-plugins-Exciter::freq +gfloat +[2000,12000] +rwx +Scope +Scope. +6000 + + + +calf-sourceforge-net-plugins-Exciter::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Exciter::level-out +gfloat +[0,64] +rwx +Output +Output. +1 + + + +calf-sourceforge-net-plugins-Exciter::listen +gboolean + +rwx +Listen +Listen. +FALSE + + + +calf-sourceforge-net-plugins-Exciter::meter-drive +gfloat +[0,1] +r +Harmonics level +Harmonics level. +0 + + + +calf-sourceforge-net-plugins-Exciter::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Exciter::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::hp-active +gboolean + +rwx +HP Active +HP Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::hp-freq +gfloat +[10,20000] +rwx +HP Freq +HP Freq. +30 + + + +calf-sourceforge-net-plugins-Equalizer8Band::hp-mode +gint +[0,2] +rwx +HP Mode +HP Mode. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +calf-sourceforge-net-plugins-Equalizer8Band::hs-level +gfloat +[0.015625,64] +rwx +Level H +Level H. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::lp-active +gboolean + +rwx +LP Active +LP Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::lp-freq +gfloat +[10,20000] +rwx +LP Freq +LP Freq. +18000 + + + +calf-sourceforge-net-plugins-Equalizer8Band::lp-mode +gint +[0,2] +rwx +LP Mode +LP Mode. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +calf-sourceforge-net-plugins-Equalizer8Band::ls-level +gfloat +[0.015625,64] +rwx +Level L +Level L. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +250 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p1-level +gfloat +[0.015625,64] +rwx +Level 1 +Level 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p1-q +gfloat +[0.1,100] +rwx +Q 1 +Q 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +1000 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p2-level +gfloat +[0.015625,64] +rwx +Level 2 +Level 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p2-q +gfloat +[0.1,100] +rwx +Q 2 +Q 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +2500 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p3-level +gfloat +[0.015625,64] +rwx +Level 3 +Level 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p3-q +gfloat +[0.1,100] +rwx +Q 3 +Q 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p4-active +gboolean + +rwx +F4 Active +F4 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer8Band::p4-freq +gfloat +[10,20000] +rwx +Freq 4 +Freq 4. +5000 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p4-level +gfloat +[0.015625,64] +rwx +Level 4 +Level 4. +1 + + + +calf-sourceforge-net-plugins-Equalizer8Band::p4-q +gfloat +[0.1,100] +rwx +Q 4 +Q 4. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +calf-sourceforge-net-plugins-Equalizer5Band::hs-level +gfloat +[0.015625,64] +rwx +Level H +Level H. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +calf-sourceforge-net-plugins-Equalizer5Band::ls-level +gfloat +[0.015625,64] +rwx +Level L +Level L. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +250 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p1-level +gfloat +[0.015625,64] +rwx +Level 1 +Level 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p1-q +gfloat +[0.1,100] +rwx +Q 1 +Q 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +1000 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p2-level +gfloat +[0.015625,64] +rwx +Level 2 +Level 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p2-q +gfloat +[0.1,100] +rwx +Q 2 +Q 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer5Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +2500 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p3-level +gfloat +[0.015625,64] +rwx +Level 3 +Level 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer5Band::p3-q +gfloat +[0.1,100] +rwx +Q 3 +Q 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::hp-active +gboolean + +rwx +HP Active +HP Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::hp-freq +gfloat +[10,20000] +rwx +HP Freq +HP Freq. +30 + + + +calf-sourceforge-net-plugins-Equalizer12Band::hp-mode +gint +[0,2] +rwx +HP Mode +HP Mode. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +calf-sourceforge-net-plugins-Equalizer12Band::hs-level +gfloat +[0.015625,64] +rwx +Level H +Level H. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::lp-active +gboolean + +rwx +LP Active +LP Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::lp-freq +gfloat +[10,20000] +rwx +LP Freq +LP Freq. +18000 + + + +calf-sourceforge-net-plugins-Equalizer12Band::lp-mode +gint +[0,2] +rwx +LP Mode +LP Mode. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +calf-sourceforge-net-plugins-Equalizer12Band::ls-level +gfloat +[0.015625,64] +rwx +Level L +Level L. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +60 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p1-level +gfloat +[0.015625,64] +rwx +Level 1 +Level 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p1-q +gfloat +[0.1,100] +rwx +Q 1 +Q 1. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +120 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p2-level +gfloat +[0.015625,64] +rwx +Level 2 +Level 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p2-q +gfloat +[0.1,100] +rwx +Q 2 +Q 2. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +250 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p3-level +gfloat +[0.015625,64] +rwx +Level 3 +Level 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p3-q +gfloat +[0.1,100] +rwx +Q 3 +Q 3. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p4-active +gboolean + +rwx +F4 Active +F4 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p4-freq +gfloat +[10,20000] +rwx +Freq 4 +Freq 4. +500 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p4-level +gfloat +[0.015625,64] +rwx +Level 4 +Level 4. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p4-q +gfloat +[0.1,100] +rwx +Q 4 +Q 4. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p5-active +gboolean + +rwx +F5 Active +F5 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p5-freq +gfloat +[10,20000] +rwx +Freq 5 +Freq 5. +1000 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p5-level +gfloat +[0.015625,64] +rwx +Level 5 +Level 5. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p5-q +gfloat +[0.1,100] +rwx +Q 5 +Q 5. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p6-active +gboolean + +rwx +F6 Active +F6 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p6-freq +gfloat +[10,20000] +rwx +Freq 6 +Freq 6. +2500 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p6-level +gfloat +[0.015625,64] +rwx +Level 6 +Level 6. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p6-q +gfloat +[0.1,100] +rwx +Q 6 +Q 6. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p7-active +gboolean + +rwx +F7 Active +F7 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p7-freq +gfloat +[10,20000] +rwx +Freq 7 +Freq 7. +4000 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p7-level +gfloat +[0.015625,64] +rwx +Level 7 +Level 7. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p7-q +gfloat +[0.1,100] +rwx +Q 7 +Q 7. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p8-active +gboolean + +rwx +F8 Active +F8 Active. +FALSE + + + +calf-sourceforge-net-plugins-Equalizer12Band::p8-freq +gfloat +[10,20000] +rwx +Freq 8 +Freq 8. +6000 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p8-level +gfloat +[0.015625,64] +rwx +Level 8 +Level 8. +1 + + + +calf-sourceforge-net-plugins-Equalizer12Band::p8-q +gfloat +[0.1,100] +rwx +Q 8 +Q 8. +1 + + + +calf-sourceforge-net-plugins-Deesser::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Deesser::clip-out +gboolean + +r +Out +Out. +FALSE + + + +calf-sourceforge-net-plugins-Deesser::compression +gfloat +[0,1] +r +Gain Reduction +Gain Reduction. +0 + + + +calf-sourceforge-net-plugins-Deesser::detected +gfloat +[0,1] +r +Detected +Detected. +0 + + + +calf-sourceforge-net-plugins-Deesser::detected-led +gboolean + +r +Active +Active. +FALSE + + + +calf-sourceforge-net-plugins-Deesser::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +calf-sourceforge-net-plugins-Deesser::f1-freq +gfloat +[10,18000] +rwx +Split +Split. +6000 + + + +calf-sourceforge-net-plugins-Deesser::f1-level +gfloat +[0.0625,16] +rwx +Gain +Gain. +1 + + + +calf-sourceforge-net-plugins-Deesser::f2-freq +gfloat +[10,18000] +rwx +Peak +Peak. +4500 + + + +calf-sourceforge-net-plugins-Deesser::f2-level +gfloat +[0.0625,16] +rwx +Level +Level. +4 + + + +calf-sourceforge-net-plugins-Deesser::f2-q +gfloat +[0.1,100] +rwx +Peak Q +Peak Q. +1 + + + +calf-sourceforge-net-plugins-Deesser::laxity +gint +[1,100] +rwx +Laxity +Laxity. +15 + + + +calf-sourceforge-net-plugins-Deesser::makeup +gfloat +[1,64] +rwx +Makeup +Makeup. +1 + + + +calf-sourceforge-net-plugins-Deesser::mode +gint +[0,1] +rwx +Mode +Mode. +0 + + + +calf-sourceforge-net-plugins-Deesser::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +3 + + + +calf-sourceforge-net-plugins-Deesser::sc-listen +gboolean + +rwx +S/C-Listen +S/C-Listen. +FALSE + + + +calf-sourceforge-net-plugins-Deesser::threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.125 + + + +calf-sourceforge-net-plugins-Compressor::attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +20 + + + +calf-sourceforge-net-plugins-Compressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-Compressor::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +calf-sourceforge-net-plugins-Compressor::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +calf-sourceforge-net-plugins-Compressor::compression +gfloat +[0,1] +r +Reduction +Reduction. +0 + + + +calf-sourceforge-net-plugins-Compressor::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +calf-sourceforge-net-plugins-Compressor::knee +gfloat +[1,8] +rwx +Knee +Knee. +2.82843 + + + +calf-sourceforge-net-plugins-Compressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-Compressor::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +2 + + + +calf-sourceforge-net-plugins-Compressor::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-Compressor::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +calf-sourceforge-net-plugins-Compressor::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +calf-sourceforge-net-plugins-Compressor::release +gfloat +[0.01,2000] +rwx +Release +Release. +250 + + + +calf-sourceforge-net-plugins-Compressor::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +calf-sourceforge-net-plugins-Compressor::threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.125 + + + +calf-sourceforge-net-plugins-BassEnhancer::amount +gfloat +[0,64] +rwx +Amount +Amount. +1 + + + +calf-sourceforge-net-plugins-BassEnhancer::blend +gfloat +[-10,10] +rwx +Blend harmonics +Blend harmonics. +0 + + + +calf-sourceforge-net-plugins-BassEnhancer::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +calf-sourceforge-net-plugins-BassEnhancer::clip-in +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-BassEnhancer::clip-out +gfloat +[0,1] +r +0dB +0dB. +0 + + + +calf-sourceforge-net-plugins-BassEnhancer::drive +gfloat +[0.1,10] +rwx +Harmonics +Harmonics. +8.5 + + + +calf-sourceforge-net-plugins-BassEnhancer::freq +gfloat +[10,250] +rwx +Scope +Scope. +120 + + + +calf-sourceforge-net-plugins-BassEnhancer::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +calf-sourceforge-net-plugins-BassEnhancer::level-out +gfloat +[0,64] +rwx +Output +Output. +1 + + + +calf-sourceforge-net-plugins-BassEnhancer::listen +gboolean + +rwx +Listen +Listen. +FALSE + + + +calf-sourceforge-net-plugins-BassEnhancer::meter-drive +gfloat +[0,1] +r +Harmonics level +Harmonics level. +0 + + + +calf-sourceforge-net-plugins-BassEnhancer::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +calf-sourceforge-net-plugins-BassEnhancer::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-trigger::Mode +gint +[1,3] +rwx +Mode +Mode. +1 + + + +ladspa-trigger::Output-Gain +gfloat +>= 0 +rwx +Output-Gain +Output-Gain. +1 + + + +ladspa-trigger::Resolution +gfloat +[1,1000] +rwx +Resolution +Resolution. +1 + + + +ladspa-trigger::Sample +gint +[1,5] +rwx +Sample +Sample. +1 + + + +ladspa-trigger::Threshold +gfloat +[0,2] +rwx +Threshold +Threshold. +1 + + + +ladspa-rubberband-pitchshifter-stereo::Cents +gfloat +[-100,100] +rwx +Cents +Cents. +0 + + + +ladspa-rubberband-pitchshifter-stereo::Crispness +gint +[0,3] +rwx +Crispness +Crispness. +3 + + + +ladspa-rubberband-pitchshifter-stereo::Faster +gboolean + +rwx +Faster +Faster. +FALSE + + + +ladspa-rubberband-pitchshifter-stereo::Formant-Preserving +gboolean + +rwx +Formant-Preserving +Formant-Preserving. +FALSE + + + +ladspa-rubberband-pitchshifter-stereo::Octaves +gint +[-3,3] +rwx +Octaves +Octaves. +0 + + + +ladspa-rubberband-pitchshifter-stereo::Semitones +gint +[-12,12] +rwx +Semitones +Semitones. +0 + + + +ladspa-rubberband-pitchshifter-stereo::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-rubberband-pitchshifter-mono::Cents +gfloat +[-100,100] +rwx +Cents +Cents. +0 + + + +ladspa-rubberband-pitchshifter-mono::Crispness +gint +[0,3] +rwx +Crispness +Crispness. +3 + + + +ladspa-rubberband-pitchshifter-mono::Faster +gboolean + +rwx +Faster +Faster. +FALSE + + + +ladspa-rubberband-pitchshifter-mono::Formant-Preserving +gboolean + +rwx +Formant-Preserving +Formant-Preserving. +FALSE + + + +ladspa-rubberband-pitchshifter-mono::Octaves +gint +[-3,3] +rwx +Octaves +Octaves. +0 + + + +ladspa-rubberband-pitchshifter-mono::Semitones +gint +[-12,12] +rwx +Semitones +Semitones. +0 + + + +ladspa-rubberband-pitchshifter-mono::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-rissetScales::Core-Frequency +gfloat +[88.2,2205] +rwx +Core-Frequency +Core-Frequency. +1146.6 + + + +ladspa-rissetScales::Gain +gfloat +[-90,6] +rwx +Gain +Gain. +0 + + + +ladspa-rissetScales::Speed +gfloat +[-6,12] +rwx +Speed +Speed. +7.5 + + + +ladspa-leet-equalizer-bw2x2-1::Band-1-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-1-Bandwidth--octaves- +Band-1-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2-1::Band-1-Freq--Hz- +gfloat +[20,22000] +rwx +Band-1-Freq--Hz- +Band-1-Freq--Hz-. +5515 + + + +ladspa-leet-equalizer-bw2x2-1::Band-1-Gain--dB- +gfloat +[-50,20] +rwx +Band-1-Gain--dB- +Band-1-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-1-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-1-Bandwidth--octaves- +Band-1-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-1-Freq--Hz- +gfloat +[40,280] +rwx +Band-1-Freq--Hz- +Band-1-Freq--Hz-. +100 + + + +ladspa-leet-equalizer-bw2x2::Band-1-Gain--dB- +gfloat +[-50,20] +rwx +Band-1-Gain--dB- +Band-1-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-2-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-2-Bandwidth--octaves- +Band-2-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-2-Freq--Hz- +gfloat +[100,500] +rwx +Band-2-Freq--Hz- +Band-2-Freq--Hz-. +200 + + + +ladspa-leet-equalizer-bw2x2::Band-2-Gain--dB- +gfloat +[-50,20] +rwx +Band-2-Gain--dB- +Band-2-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-3-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-3-Bandwidth--octaves- +Band-3-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-3-Freq--Hz- +gfloat +[200,1000] +rwx +Band-3-Freq--Hz- +Band-3-Freq--Hz-. +400 + + + +ladspa-leet-equalizer-bw2x2::Band-3-Gain--dB- +gfloat +[-50,20] +rwx +Band-3-Gain--dB- +Band-3-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-4-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-4-Bandwidth--octaves- +Band-4-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-4-Freq--Hz- +gfloat +[400,2800] +rwx +Band-4-Freq--Hz- +Band-4-Freq--Hz-. +1000 + + + +ladspa-leet-equalizer-bw2x2::Band-4-Gain--dB- +gfloat +[-50,20] +rwx +Band-4-Gain--dB- +Band-4-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-5-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-5-Bandwidth--octaves- +Band-5-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-5-Freq--Hz- +gfloat +[1000,5000] +rwx +Band-5-Freq--Hz- +Band-5-Freq--Hz-. +3000 + + + +ladspa-leet-equalizer-bw2x2::Band-5-Gain--dB- +gfloat +[-50,20] +rwx +Band-5-Gain--dB- +Band-5-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-6-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-6-Bandwidth--octaves- +Band-6-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-6-Freq--Hz- +gfloat +[3000,9000] +rwx +Band-6-Freq--Hz- +Band-6-Freq--Hz-. +6000 + + + +ladspa-leet-equalizer-bw2x2::Band-6-Gain--dB- +gfloat +[-50,20] +rwx +Band-6-Gain--dB- +Band-6-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-7-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-7-Bandwidth--octaves- +Band-7-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-7-Freq--Hz- +gfloat +[6000,18000] +rwx +Band-7-Freq--Hz- +Band-7-Freq--Hz-. +12000 + + + +ladspa-leet-equalizer-bw2x2::Band-7-Gain--dB- +gfloat +[-50,20] +rwx +Band-7-Gain--dB- +Band-7-Gain--dB-. +0 + + + +ladspa-leet-equalizer-bw2x2::Band-8-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-8-Bandwidth--octaves- +Band-8-Bandwidth--octaves-. +1 + + + +ladspa-leet-equalizer-bw2x2::Band-8-Freq--Hz- +gfloat +[10000,20000] +rwx +Band-8-Freq--Hz- +Band-8-Freq--Hz-. +15000 + + + +ladspa-leet-equalizer-bw2x2::Band-8-Gain--dB- +gfloat +[-50,20] +rwx +Band-8-Gain--dB- +Band-8-Gain--dB-. +0 + + + +ladspa-intNoise::Bits +gfloat +[1,24] +rwx +Bits +Bits. +24 + + + +ladspa-foo-transients-mono::Attack-gain +gfloat +[-30,30] +rwx +Attack-gain +Attack-gain. +0 + + + +ladspa-foo-transients-mono::Averaging-difference +gfloat +[0.01,0.1] +rwx +Averaging-difference +Averaging-difference. +0.0775 + + + +ladspa-foo-transients-mono::Current-attack-gain +gfloat +[-30,30] +r +Current-attack-gain +Current-attack-gain. +-30 + + + +ladspa-foo-transients-mono::Current-release-gain +gfloat +[-30,30] +r +Current-release-gain +Current-release-gain. +-30 + + + +ladspa-foo-transients-mono::Release-gain +gfloat +[-30,30] +rwx +Release-gain +Release-gain. +0 + + + +ladspa-foo-transients-mono::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-transients::Attack-gain +gfloat +[-30,30] +rwx +Attack-gain +Attack-gain. +0 + + + +ladspa-foo-transients::Averaging-difference +gfloat +[0.01,0.1] +rwx +Averaging-difference +Averaging-difference. +0.0775 + + + +ladspa-foo-transients::Current-attack-gain +gfloat +[-30,30] +r +Current-attack-gain +Current-attack-gain. +-30 + + + +ladspa-foo-transients::Current-release-gain +gfloat +[-30,30] +r +Current-release-gain +Current-release-gain. +-30 + + + +ladspa-foo-transients::Release-gain +gfloat +[-30,30] +rwx +Release-gain +Release-gain. +0 + + + +ladspa-foo-transients::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-saturator::Drive +gfloat +[1,6] +rwx +Drive +Drive. +1 + + + +ladspa-foo-saturator::Input-gain +gfloat +[-20,20] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-foo-saturator::Max-level +gfloat +[-60,0] +rwx +Max-level +Max-level. +0 + + + +ladspa-foo-saturator::Square-waveness +gfloat +[0,1] +rwx +Square-waveness +Square-waveness. +0.5 + + + +ladspa-foo-saturator::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-limiter-v2::Attack-time +gfloat +[1,10] +rwx +Attack-time +Attack-time. +5.5 + + + +ladspa-foo-limiter-v2::Attenuation +gfloat +[0,70] +r +Attenuation +Attenuation. +0 + + + +ladspa-foo-limiter-v2::Input-gain +gfloat +[-20,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-foo-limiter-v2::Linear-log-release +gfloat +[0,1] +rwx +Linear-log-release +Linear-log-release. +0.75 + + + +ladspa-foo-limiter-v2::Max-level +gfloat +[-30,0] +rwx +Max-level +Max-level. +0 + + + +ladspa-foo-limiter-v2::Release-time +gfloat +[0.01,2] +rwx +Release-time +Release-time. +0.5075 + + + +ladspa-foo-limiter-v2::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-limiter::Attenuation +gfloat +[0,70] +r +Attenuation +Attenuation. +0 + + + +ladspa-foo-limiter::Input-gain +gfloat +[-20,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-foo-limiter::Linear-log-release +gfloat +[0,1] +rwx +Linear-log-release +Linear-log-release. +0.75 + + + +ladspa-foo-limiter::Max-level +gfloat +[-30,0] +rwx +Max-level +Max-level. +0 + + + +ladspa-foo-limiter::Release-time +gfloat +[0.01,2] +rwx +Release-time +Release-time. +0.5075 + + + +ladspa-foo-limiter::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-driver::Drive +gfloat +[1,10] +rwx +Drive +Drive. +3.25 + + + +ladspa-foo-driver::Drive-offset +gfloat +[-2,2] +rwx +Drive-offset +Drive-offset. +0 + + + +ladspa-foo-driver::Input-gain +gfloat +[-30,30] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-foo-driver::Web-dry-balance +gfloat +[0,1] +rwx +Web-dry-balance +Web-dry-balance. +0 + + + +ladspa-foo-driver::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-foo-chop-liver::Chop-window +gint +[2,32] +rwx +Chop-window +Chop-window. +2 + + + +ladspa-foo-chop-liver::Dry-signal +gfloat +[0,1] +rwx +Dry-signal +Dry-signal. +0 + + + +ladspa-foo-chop-liver::Wet-signal +gfloat +[0,1] +rwx +Wet-signal +Wet-signal. +1 + + + +ladspa-foo-chop-liver::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-eir::Exponent +gint +[1,8] +rwx +Exponent +Exponent. +8 + + + +ladspa-eir::Mantissa +gint +[0,23] +rwx +Mantissa +Mantissa. +23 + + + +ladspa-XShaperS::Amount +gfloat +[0,1] +rwx +Amount +Amount. +1 + + + +ladspa-XShaperS::Curve +gfloat +[0,1] +rwx +Curve +Curve. +0 + + + +ladspa-XShaperS::Gain +gfloat +[0,1] +rwx +Gain +Gain. +1 + + + +ladspa-XShaperS::LFO1-Form +gint +[1,5] +rwx +LFO1-Form +LFO1-Form. +1 + + + +ladspa-XShaperS::LFO1-Gain-Depth +gfloat +[-1,1] +rwx +LFO1-Gain-Depth +LFO1-Gain-Depth. +0 + + + +ladspa-XShaperS::LFO1-Rate +gfloat +[0,10] +rwx +LFO1-Rate +LFO1-Rate. +1 + + + +ladspa-XShaperS::LFO2-Curve-Depth +gfloat +[-1,1] +rwx +LFO2-Curve-Depth +LFO2-Curve-Depth. +0 + + + +ladspa-XShaperS::LFO2-Form +gint +[1,5] +rwx +LFO2-Form +LFO2-Form. +1 + + + +ladspa-XShaperS::LFO2-Rate +gfloat +[0,10] +rwx +LFO2-Rate +LFO2-Rate. +1 + + + +ladspa-XShaperS::Type +gint +[1,9] +rwx +Type +Type. +1 + + + +ladspa-XShaperM::Amount +gfloat +[0,1] +rwx +Amount +Amount. +1 + + + +ladspa-XShaperM::Curve +gfloat +[0,1] +rwx +Curve +Curve. +0 + + + +ladspa-XShaperM::Gain +gfloat +[0,1] +rwx +Gain +Gain. +1 + + + +ladspa-XShaperM::LFO1-Form +gint +[1,5] +rwx +LFO1-Form +LFO1-Form. +1 + + + +ladspa-XShaperM::LFO1-Gain-Depth +gfloat +[-1,1] +rwx +LFO1-Gain-Depth +LFO1-Gain-Depth. +0 + + + +ladspa-XShaperM::LFO1-Rate +gfloat +[0,10] +rwx +LFO1-Rate +LFO1-Rate. +1 + + + +ladspa-XShaperM::LFO2-Curve-Depth +gfloat +[-1,1] +rwx +LFO2-Curve-Depth +LFO2-Curve-Depth. +0 + + + +ladspa-XShaperM::LFO2-Form +gint +[1,5] +rwx +LFO2-Form +LFO2-Form. +1 + + + +ladspa-XShaperM::LFO2-Rate +gfloat +[0,10] +rwx +LFO2-Rate +LFO2-Rate. +1 + + + +ladspa-XShaperM::Type +gint +[1,9] +rwx +Type +Type. +1 + + + +ladspa-VariNoiseS::Density +gfloat +[0,1] +rwx +Density +Density. +1 + + + +ladspa-VariNoiseS::Noise-Type +gint +[1,2] +rwx +Noise-Type +Noise-Type. +1 + + + +ladspa-VariNoiseM::Density +gfloat +[0,1] +rwx +Density +Density. +1 + + + +ladspa-VariNoiseM::Noise-Type +gint +[1,2] +rwx +Noise-Type +Noise-Type. +1 + + + +ladspa-Sidechaingate::Attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +4.47214 + + + +ladspa-Sidechaingate::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Sidechaingate::Detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +ladspa-Sidechaingate::F1-Active +gboolean + +r +F1-Active +F1-Active. +FALSE + + + +ladspa-Sidechaingate::F1-Freq +gfloat +[10,18000] +rwx +F1-Freq +F1-Freq. +424.264 + + + +ladspa-Sidechaingate::F1-Level +gfloat +[0.0625,16] +rwx +F1-Level +F1-Level. +1 + + + +ladspa-Sidechaingate::F2-Active +gboolean + +r +F2-Active +F2-Active. +FALSE + + + +ladspa-Sidechaingate::F2-Freq +gfloat +[10,18000] +rwx +F2-Freq +F2-Freq. +2763.47 + + + +ladspa-Sidechaingate::F2-Level +gfloat +[0.0625,16] +rwx +F2-Level +F2-Level. +1 + + + +ladspa-Sidechaingate::Gating +gfloat +[0.03125,1] +r +Gating +Gating. +0.03125 + + + +ladspa-Sidechaingate::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Sidechaingate::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-Sidechaingate::Knee +gfloat +[1,8] +rwx +Knee +Knee. +2.75 + + + +ladspa-Sidechaingate::Makeup-Gain +gfloat +[1,64] +rwx +Makeup-Gain +Makeup-Gain. +1 + + + +ladspa-Sidechaingate::Max-Gain-Reduction +gfloat +[1.5849e-05,1] +rwx +Max-Gain-Reduction +Max-Gain-Reduction. +1.5849e-05 + + + +ladspa-Sidechaingate::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Sidechaingate::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-Sidechaingate::Release +gfloat +[0.01,2000] +rwx +Release +Release. +94.5742 + + + +ladspa-Sidechaingate::S-C-Listen +gboolean + +rwx +S-C-Listen +S-C-Listen. +FALSE + + + +ladspa-Sidechaingate::Sidechain-Mode +gint +[0,9] +rwx +Sidechain-Mode +Sidechain-Mode. +0 + + + +ladspa-Sidechaingate::Stereo-Link +gint +[0,1] +rwx +Stereo-Link +Stereo-Link. +0 + + + +ladspa-Sidechaingate::Threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.250732 + + + +ladspa-Sidechaingate::param-0dB-In +gboolean + +r +param-0dB-In +param-0dB-In. +FALSE + + + +ladspa-Sidechaingate::param-0dB-Out +gboolean + +r +param-0dB-Out +param-0dB-Out. +FALSE + + + +ladspa-Saturator::Activation +gfloat +[1,64] +rwx +Activation +Activation. +1 + + + +ladspa-Saturator::Amount +gfloat +[0.0625,16] +rwx +Amount +Amount. +1 + + + +ladspa-Saturator::Blend +gfloat +[-10,10] +rwx +Blend +Blend. +10 + + + +ladspa-Saturator::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Saturator::Drive +gfloat +[0,1] +r +Drive +Drive. +0 + + + +ladspa-Saturator::Gradient +gfloat +[0.1,10] +rwx +Gradient +Gradient. +1 + + + +ladspa-Saturator::Highpass +gfloat +[10,20000] +rwx +Highpass +Highpass. +10 + + + +ladspa-Saturator::Highpass-1 +gfloat +[10,20000] +rwx +Highpass-1 +Highpass-1. +10 + + + +ladspa-Saturator::Input +gfloat +[0,1] +r +Input +Input. +0 + + + +ladspa-Saturator::Lowpass +gfloat +[10,20000] +rwx +Lowpass +Lowpass. +20000 + + + +ladspa-Saturator::Lowpass-1 +gfloat +[10,20000] +rwx +Lowpass-1 +Lowpass-1. +20000 + + + +ladspa-Saturator::Master +gfloat +[0,64] +rwx +Master +Master. +1 + + + +ladspa-Saturator::Mix +gfloat +[0,1] +rwx +Mix +Mix. +1 + + + +ladspa-Saturator::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Saturator::Saturation +gfloat +[0.1,10] +rwx +Saturation +Saturation. +5.05 + + + +ladspa-Saturator::Tone +gfloat +[80,8000] +rwx +Tone +Tone. +2529.82 + + + +ladspa-Saturator::param-0dB +gfloat +[0,1] +r +param-0dB +param-0dB. +0 + + + +ladspa-Saturator::param-0dB-1 +gfloat +[0,1] +r +param-0dB-1 +param-0dB-1. +0 + + + +ladspa-SID::Amplitude +gfloat +[0,15] +rwx +Amplitude +Amplitude. +0 + + + +ladspa-SID::ENV-A-1 +gfloat +[0,15] +rwx +ENV-A-1 +ENV-A-1. +0 + + + +ladspa-SID::ENV-A-2 +gfloat +[0,15] +rwx +ENV-A-2 +ENV-A-2. +0 + + + +ladspa-SID::ENV-A-3 +gfloat +[0,15] +rwx +ENV-A-3 +ENV-A-3. +0 + + + +ladspa-SID::ENV-D-1 +gfloat +[0,15] +rwx +ENV-D-1 +ENV-D-1. +0 + + + +ladspa-SID::ENV-D-2 +gfloat +[0,15] +rwx +ENV-D-2 +ENV-D-2. +0 + + + +ladspa-SID::ENV-D-3 +gfloat +[0,15] +rwx +ENV-D-3 +ENV-D-3. +0 + + + +ladspa-SID::ENV-R-1 +gfloat +[0,15] +rwx +ENV-R-1 +ENV-R-1. +0 + + + +ladspa-SID::ENV-R-2 +gfloat +[0,15] +rwx +ENV-R-2 +ENV-R-2. +0 + + + +ladspa-SID::ENV-R-3 +gfloat +[0,15] +rwx +ENV-R-3 +ENV-R-3. +0 + + + +ladspa-SID::ENV-S-1 +gfloat +[0,15] +rwx +ENV-S-1 +ENV-S-1. +0 + + + +ladspa-SID::ENV-S-2 +gfloat +[0,15] +rwx +ENV-S-2 +ENV-S-2. +0 + + + +ladspa-SID::ENV-S-3 +gfloat +[0,15] +rwx +ENV-S-3 +ENV-S-3. +0 + + + +ladspa-SID::Filter-BP +gboolean + +rwx +Filter-BP +Filter-BP. +FALSE + + + +ladspa-SID::Filter-Cutoff-Freq +gfloat +[0,2047] +rwx +Filter-Cutoff-Freq +Filter-Cutoff-Freq. +0 + + + +ladspa-SID::Filter-External-On +gboolean + +rwx +Filter-External-On +Filter-External-On. +FALSE + + + +ladspa-SID::Filter-HP +gboolean + +rwx +Filter-HP +Filter-HP. +FALSE + + + +ladspa-SID::Filter-LP +gboolean + +rwx +Filter-LP +Filter-LP. +FALSE + + + +ladspa-SID::Filter-On +gboolean + +rwx +Filter-On +Filter-On. +FALSE + + + +ladspa-SID::Filter-On-1 +gboolean + +rwx +Filter-On-1 +Filter-On-1. +FALSE + + + +ladspa-SID::Filter-On-2 +gboolean + +rwx +Filter-On-2 +Filter-On-2. +FALSE + + + +ladspa-SID::Filter-On-3 +gboolean + +rwx +Filter-On-3 +Filter-On-3. +FALSE + + + +ladspa-SID::Filter-Resonance +gfloat +[0,15] +rwx +Filter-Resonance +Filter-Resonance. +0 + + + +ladspa-SID::MOS8580 +gboolean + +rwx +MOS8580 +MOS8580. +FALSE + + + +ladspa-SID::Noise-1 +gboolean + +rwx +Noise-1 +Noise-1. +FALSE + + + +ladspa-SID::Noise-2 +gboolean + +rwx +Noise-2 +Noise-2. +FALSE + + + +ladspa-SID::Noise-3 +gboolean + +rwx +Noise-3 +Noise-3. +FALSE + + + +ladspa-SID::Pulse-1 +gboolean + +rwx +Pulse-1 +Pulse-1. +FALSE + + + +ladspa-SID::Pulse-2 +gboolean + +rwx +Pulse-2 +Pulse-2. +FALSE + + + +ladspa-SID::Pulse-3 +gboolean + +rwx +Pulse-3 +Pulse-3. +FALSE + + + +ladspa-SID::Pulse-Width-1 +gfloat +[0,4095] +rwx +Pulse-Width-1 +Pulse-Width-1. +0 + + + +ladspa-SID::Pulse-Width-2 +gfloat +[0,4095] +rwx +Pulse-Width-2 +Pulse-Width-2. +0 + + + +ladspa-SID::Pulse-Width-3 +gfloat +[0,4095] +rwx +Pulse-Width-3 +Pulse-Width-3. +0 + + + +ladspa-SID::Ringmod-1 +gboolean + +rwx +Ringmod-1 +Ringmod-1. +FALSE + + + +ladspa-SID::Ringmod-2 +gboolean + +rwx +Ringmod-2 +Ringmod-2. +FALSE + + + +ladspa-SID::Ringmod-3 +gboolean + +rwx +Ringmod-3 +Ringmod-3. +FALSE + + + +ladspa-SID::Saw-1 +gboolean + +rwx +Saw-1 +Saw-1. +FALSE + + + +ladspa-SID::Saw-2 +gboolean + +rwx +Saw-2 +Saw-2. +FALSE + + + +ladspa-SID::Saw-3 +gboolean + +rwx +Saw-3 +Saw-3. +FALSE + + + +ladspa-SID::Sync-1 +gboolean + +rwx +Sync-1 +Sync-1. +FALSE + + + +ladspa-SID::Sync-2 +gboolean + +rwx +Sync-2 +Sync-2. +FALSE + + + +ladspa-SID::Sync-3 +gboolean + +rwx +Sync-3 +Sync-3. +FALSE + + + +ladspa-SID::Tri-1 +gboolean + +rwx +Tri-1 +Tri-1. +FALSE + + + +ladspa-SID::Tri-2 +gboolean + +rwx +Tri-2 +Tri-2. +FALSE + + + +ladspa-SID::Tri-3 +gboolean + +rwx +Tri-3 +Tri-3. +FALSE + + + +ladspa-SID::param-3-Off +gboolean + +rwx +param-3-Off +param-3-Off. +FALSE + + + +ladspa-SCC::Amplitude +gfloat +>= 0 +rwx +Amplitude +Amplitude. +1 + + + +ladspa-SCC::Preset +gint +[0,341] +rwx +Preset +Preset. +0 + + + +ladspa-PSG::AM-Env-ALT +gboolean + +rwx +AM-Env-ALT +AM-Env-ALT. +FALSE + + + +ladspa-PSG::AM-Env-ATT +gboolean + +rwx +AM-Env-ATT +AM-Env-ATT. +FALSE + + + +ladspa-PSG::AM-Env-CONT +gboolean + +rwx +AM-Env-CONT +AM-Env-CONT. +FALSE + + + +ladspa-PSG::AM-Env-HOLD +gboolean + +rwx +AM-Env-HOLD +AM-Env-HOLD. +FALSE + + + +ladspa-PSG::AM-Freq +gfloat +[0.213361,13982.6] +rwx +AM-Freq +AM-Freq. +1 + + + +ladspa-PSG::AM-On +gboolean + +rwx +AM-On +AM-On. +FALSE + + + +ladspa-PSG::Amplitude +gfloat +[0,15] +rwx +Amplitude +Amplitude. +0 + + + +ladspa-PSG::Audio-On +gboolean + +rwx +Audio-On +Audio-On. +FALSE + + + +ladspa-PSG::Noise-Control +gfloat +[0,1] +rwx +Noise-Control +Noise-Control. +0 + + + +ladspa-PSG::Noise-On +gboolean + +rwx +Noise-On +Noise-On. +FALSE + + + +ladspa-NoisifierS::Balance +gfloat +[0,1] +rwx +Balance +Balance. +0 + + + +ladspa-NoisifierS::Noise-Density +gfloat +[0,1] +rwx +Noise-Density +Noise-Density. +1 + + + +ladspa-NoisifierS::Noise-Type +gint +[1,2] +rwx +Noise-Type +Noise-Type. +1 + + + +ladspa-NoisifierM::Balance +gfloat +[0,1] +rwx +Balance +Balance. +0 + + + +ladspa-NoisifierM::Noise-Density +gfloat +[0,1] +rwx +Noise-Density +Noise-Density. +1 + + + +ladspa-NoisifierM::Noise-Type +gint +[1,2] +rwx +Noise-Type +Noise-Type. +1 + + + +ladspa-MUSICDrum::Amplitude-BD +gfloat +[0,15] +rwx +Amplitude-BD +Amplitude-BD. +0 + + + +ladspa-MUSICDrum::Amplitude-SD-T-CY-HH +gfloat +[0,15] +rwx +Amplitude-SD-T-CY-HH +Amplitude-SD-T-CY-HH. +0 + + + +ladspa-MUSICDrum::Amplitude-TOM-T-CY-HH +gfloat +[0,15] +rwx +Amplitude-TOM-T-CY-HH +Amplitude-TOM-T-CY-HH. +0 + + + +ladspa-MUSICDrum::Freq +gfloat +[0,22050] +rwx +Freq +Freq. +440 + + + +ladspa-MUSICDrum::Freq-1 +gfloat +[0,22050] +rwx +Freq-1 +Freq-1. +440 + + + +ladspa-MUSICDrum::Freq-2 +gfloat +[0,22050] +rwx +Freq-2 +Freq-2. +440 + + + +ladspa-MUSIC::Amplitude +gint +[0,15] +rwx +Amplitude +Amplitude. +0 + + + +ladspa-MUSIC::Carrier-AM +gboolean + +rwx +Carrier-AM +Carrier-AM. +FALSE + + + +ladspa-MUSIC::Carrier-Distortion-Waveform +gboolean + +rwx +Carrier-Distortion-Waveform +Carrier-Distortion-Waveform. +FALSE + + + +ladspa-MUSIC::Carrier-Env-A +gint +[0,15] +rwx +Carrier-Env-A +Carrier-Env-A. +0 + + + +ladspa-MUSIC::Carrier-Env-D +gint +[0,15] +rwx +Carrier-Env-D +Carrier-Env-D. +0 + + + +ladspa-MUSIC::Carrier-Env-R +gint +[0,15] +rwx +Carrier-Env-R +Carrier-Env-R. +0 + + + +ladspa-MUSIC::Carrier-Env-S +gint +[0,15] +rwx +Carrier-Env-S +Carrier-Env-S. +0 + + + +ladspa-MUSIC::Carrier-Key-Scale-Level +gint +[0,3] +rwx +Carrier-Key-Scale-Level +Carrier-Key-Scale-Level. +0 + + + +ladspa-MUSIC::Carrier-Percussive +gboolean + +rwx +Carrier-Percussive +Carrier-Percussive. +FALSE + + + +ladspa-MUSIC::Carrier-Rate-Key-Scale +gboolean + +rwx +Carrier-Rate-Key-Scale +Carrier-Rate-Key-Scale. +FALSE + + + +ladspa-MUSIC::Carrier-Vibrato +gboolean + +rwx +Carrier-Vibrato +Carrier-Vibrato. +FALSE + + + +ladspa-MUSIC::Carrier-Wave-Multiply +gint +[0,15] +rwx +Carrier-Wave-Multiply +Carrier-Wave-Multiply. +0 + + + +ladspa-MUSIC::Modulator-AM +gboolean + +rwx +Modulator-AM +Modulator-AM. +FALSE + + + +ladspa-MUSIC::Modulator-Distortion-Waveform +gboolean + +rwx +Modulator-Distortion-Waveform +Modulator-Distortion-Waveform. +FALSE + + + +ladspa-MUSIC::Modulator-Env-A +gint +[0,15] +rwx +Modulator-Env-A +Modulator-Env-A. +0 + + + +ladspa-MUSIC::Modulator-Env-D +gint +[0,15] +rwx +Modulator-Env-D +Modulator-Env-D. +0 + + + +ladspa-MUSIC::Modulator-Env-R +gint +[0,15] +rwx +Modulator-Env-R +Modulator-Env-R. +0 + + + +ladspa-MUSIC::Modulator-Env-S +gint +[0,15] +rwx +Modulator-Env-S +Modulator-Env-S. +0 + + + +ladspa-MUSIC::Modulator-FM-feedback +gint +[0,7] +rwx +Modulator-FM-feedback +Modulator-FM-feedback. +0 + + + +ladspa-MUSIC::Modulator-Key-Scale-Level +gint +[0,3] +rwx +Modulator-Key-Scale-Level +Modulator-Key-Scale-Level. +0 + + + +ladspa-MUSIC::Modulator-Percussive +gboolean + +rwx +Modulator-Percussive +Modulator-Percussive. +FALSE + + + +ladspa-MUSIC::Modulator-Rate-Key-Scale +gboolean + +rwx +Modulator-Rate-Key-Scale +Modulator-Rate-Key-Scale. +FALSE + + + +ladspa-MUSIC::Modulator-Total-Level +gint +[0,63] +rwx +Modulator-Total-Level +Modulator-Total-Level. +0 + + + +ladspa-MUSIC::Modulator-Vibrato +gboolean + +rwx +Modulator-Vibrato +Modulator-Vibrato. +FALSE + + + +ladspa-MUSIC::Modulator-Wave-Multiply +gint +[0,15] +rwx +Modulator-Wave-Multiply +Modulator-Wave-Multiply. +0 + + + +ladspa-MUSIC::Preset +gint +[0,15] +rwx +Preset +Preset. +0 + + + +ladspa-MUSIC::Sustain +gboolean + +rwx +Sustain +Sustain. +FALSE + + + +ladspa-Gate::Attack +gfloat +[0.01,2000] +rwx +Attack +Attack. +4.47214 + + + +ladspa-Gate::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Gate::Detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +ladspa-Gate::Gating +gfloat +[0.03125,1] +r +Gating +Gating. +0.03125 + + + +ladspa-Gate::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Gate::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-Gate::Knee +gfloat +[1,8] +rwx +Knee +Knee. +2.75 + + + +ladspa-Gate::Makeup-Gain +gfloat +[1,64] +rwx +Makeup-Gain +Makeup-Gain. +1 + + + +ladspa-Gate::Max-Gain-Reduction +gfloat +[1.5849e-05,1] +rwx +Max-Gain-Reduction +Max-Gain-Reduction. +1.5849e-05 + + + +ladspa-Gate::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Gate::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-Gate::Release +gfloat +[0.01,2000] +rwx +Release +Release. +94.5742 + + + +ladspa-Gate::Stereo-Link +gint +[0,1] +rwx +Stereo-Link +Stereo-Link. +0 + + + +ladspa-Gate::Threshold +gfloat +[0.000976563,1] +rwx +Threshold +Threshold. +0.250732 + + + +ladspa-Gate::param-0dB-In +gboolean + +r +param-0dB-In +param-0dB-In. +FALSE + + + +ladspa-Gate::param-0dB-Out +gboolean + +r +param-0dB-Out +param-0dB-Out. +FALSE + + + +ladspa-Exciter::Amount +gfloat +[0,64] +rwx +Amount +Amount. +1 + + + +ladspa-Exciter::Blend-harmonics +gfloat +[-10,10] +rwx +Blend-harmonics +Blend-harmonics. +0 + + + +ladspa-Exciter::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Exciter::Harmonics +gfloat +[0.1,10] +rwx +Harmonics +Harmonics. +7.525 + + + +ladspa-Exciter::Harmonics-level +gfloat +[0,1] +r +Harmonics-level +Harmonics-level. +0 + + + +ladspa-Exciter::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Exciter::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-Exciter::Listen +gboolean + +rwx +Listen +Listen. +FALSE + + + +ladspa-Exciter::Output +gfloat +[0,64] +rwx +Output +Output. +1 + + + +ladspa-Exciter::Output-1 +gfloat +[0,1] +r +Output-1 +Output-1. +0 + + + +ladspa-Exciter::Scope +gfloat +[2000,12000] +rwx +Scope +Scope. +4898.98 + + + +ladspa-Exciter::param-0dB +gfloat +[0,1] +r +param-0dB +param-0dB. +0 + + + +ladspa-Exciter::param-0dB-1 +gfloat +[0,1] +r +param-0dB-1 +param-0dB-1. +0 + + + +ladspa-Chorus1-2x2::Delay +gfloat +[0,30] +rwx +Delay +Delay. +0 + + + +ladspa-Chorus1-2x2::Mod-Amplitude-1 +gfloat +[0,10] +rwx +Mod-Amplitude-1 +Mod-Amplitude-1. +0 + + + +ladspa-Chorus1-2x2::Mod-Amplitude-2 +gfloat +[0,3] +rwx +Mod-Amplitude-2 +Mod-Amplitude-2. +0 + + + +ladspa-Chorus1-2x2::Mod-Frequency-1 +gfloat +[0.003,10] +rwx +Mod-Frequency-1 +Mod-Frequency-1. +0.003 + + + +ladspa-Chorus1-2x2::Mod-Frequency-2 +gfloat +[0.01,30] +rwx +Mod-Frequency-2 +Mod-Frequency-2. +0.01 + + + +ladspa-BoosterS::Clip +gfloat +[0,1] +rwx +Clip +Clip. +1 + + + +ladspa-BoosterS::Curve +gfloat +[0,1] +rwx +Curve +Curve. +0 + + + +ladspa-BoosterS::Gain +gint +[0,36] +rwx +Gain +Gain. +0 + + + +ladspa-BoosterM::Clip +gfloat +[0,1] +rwx +Clip +Clip. +1 + + + +ladspa-BoosterM::Curve +gfloat +[0,1] +rwx +Curve +Curve. +0 + + + +ladspa-BoosterM::Gain +gint +[0,36] +rwx +Gain +Gain. +0 + + + +ladspa-BassEnhancer::Amount +gfloat +[0,64] +rwx +Amount +Amount. +1 + + + +ladspa-BassEnhancer::Blend-harmonics +gfloat +[-10,10] +rwx +Blend-harmonics +Blend-harmonics. +0 + + + +ladspa-BassEnhancer::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-BassEnhancer::Harmonics +gfloat +[0.1,10] +rwx +Harmonics +Harmonics. +7.525 + + + +ladspa-BassEnhancer::Harmonics-level +gfloat +[0,1] +r +Harmonics-level +Harmonics-level. +0 + + + +ladspa-BassEnhancer::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-BassEnhancer::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-BassEnhancer::Listen +gboolean + +rwx +Listen +Listen. +FALSE + + + +ladspa-BassEnhancer::Output +gfloat +[0,64] +rwx +Output +Output. +1 + + + +ladspa-BassEnhancer::Output-1 +gfloat +[0,1] +r +Output-1 +Output-1. +0 + + + +ladspa-BassEnhancer::Scope +gfloat +[10,250] +rwx +Scope +Scope. +111.803 + + + +ladspa-BassEnhancer::param-0dB +gfloat +[0,1] +r +param-0dB +param-0dB. +0 + + + +ladspa-BassEnhancer::param-0dB-1 +gfloat +[0,1] +r +param-0dB-1 +param-0dB-1. +0 + + + +GstMpegvParse::drop +gboolean + +rwx +drop +Drop data untill valid configuration data is received either in the stream or through caps. +TRUE + + + +GstMpegvParse::gop-split +gboolean + +rwx +gop-split +Split frame when encountering GOP. +FALSE + + + +GstFaceOverlay::h +gfloat +>= 0 +rw +face height percent +Specify image height relative to face height. +1 + + + +GstFaceOverlay::location +gchar* + +rw +Location +Location of SVG file to use for face overlay. +"" + + + +GstFaceOverlay::w +gfloat +>= 0 +rw +face width percent +Specify image width relative to face width. +1 + + + +GstFaceOverlay::x +gfloat + +rw +face x offset +Specify image x relative to detected face x. +0 + + + +GstFaceOverlay::y +gfloat + +rw +face y offset +Specify image y relative to detected face y. +0 + + + +GstDebugSpy::checksum-type +GChecksumType + +rw +Checksum TYpe +Checksum algorithm to use. +Use the SHA-1 hashing algorithm + + + +GstDebugSpy::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstCompare::meta +GstBufferCopyFlags + +rw +Compare Meta +Indicates which metadata should be compared. +GST_BUFFER_COPY_FLAGS|GST_BUFFER_COPY_TIMESTAMPS|GST_BUFFER_COPY_CAPS|GST_BUFFER_COPY_QDATA + + + +GstCompare::method +GstCompareMethod + +rw +Content Compare Method +Method to compare buffer content. +Memory + + + +GstCompare::offset-ts +gboolean + +rw +Offsets Timestamps +Consider OFFSET and OFFSET_END part of timestamp metadata. +FALSE + + + +GstCompare::threshold +gdouble +>= 0 +rw +Content Threshold +Threshold beyond which to consider content different as determined by content-method. +0 + + + +GstCompare::upper +gboolean + +rw +Threshold Upper Bound +Whether threshold value is upper bound or lower bound for difference measure. +TRUE + + + +GstOpenalSrc::device +gchar* + +rw +Device +Specific capture device to open, NULL indicate default device. +NULL + + + +GstOpenalSrc::device-name +gchar* + +r +Device name +Readable name of device. +NULL + + + +GstOpenALSink::context-handle +gpointer + +rw +ALCcontext +Custom playback context. + + + + +GstOpenALSink::device +gchar* + +rw +Device +OpenAL device string. +NULL + + + +GstOpenALSink::device-handle +gpointer + +rw +ALCdevice +Custom playback device. + + + + +GstOpenALSink::device-name +gchar* + +r +Device name +Opened OpenAL device name. +"" + + + +GstOpenALSink::source-id +guint + +rw +Source ID +Custom playback sID. +0 + + + +GstRTMPSink::location +gchar* + +rw +File Location +Location of the file to read. +NULL + + + +GstDecklinkSrc::connection +GstDecklinkConnection + +rwx +Connection +Connection. +sdi + + + +GstDecklinkSrc::mode +GstDecklinkModes + +rwx +Mode +Mode. +ntsc + + + +GstDecklinkSrc::audio-input +GstDecklinkAudioConnection + +rwx +Audio Input +Audio Input Connection. +auto + + + +GstDecklinkSrc::subdevice +gint +[0,3] +rwx +Subdevice +Subdevice. +0 + + + +GstDecklinkSink::mode +GstDecklinkModes + +rwx +Mode +Mode. +ntsc + + + +GstWebvttEnc::duration +gint64 + +rw +Offset for the duration +Offset for the duration of the subtitles. +0 + + + +GstWebvttEnc::timestamp +gint64 + +rw +Offset for the starttime +Offset for the starttime for the subtitles. +0 + + + +MpegPsMux::aggregate-gops +gboolean + +rw +Aggregate GOPs +Whether to aggregate GOPs and push them out as buffer lists. +FALSE + + + +GstFreeverb::damping +gfloat +[0,1] +rwx +Damping +Damping of high frequencies. +0.2 + + + +GstFreeverb::level +gfloat +[0,1] +rwx +Level +dry/wet level. +0.5 + + + +GstFreeverb::room-size +gfloat +[0,1] +rwx +Room size +Size of the simulated room. +0.5 + + + +GstFreeverb::width +gfloat +[0,1] +rwx +Width +Stereo panorama width. +1 + + + +GstSmooth::active +gboolean + +rw +active +process video. +TRUE + + + +GstSmooth::filter-size +gint + +rw +filter-size +size of media filter. +0 + + + +GstSmooth::luma-only +gboolean + +rw +luma-only +only filter luma part. +TRUE + + + +GstSmooth::tolerance +gint + +rw +tolerance +contrast tolerance for smoothing. +0 + + + +GstIRTSPParse::channel-id +gint +[0,255] +rw +channel-id +Channel Identifier. +0 + + + +GstWaveScope::style +GstWaveScopeStyle + +rwx +drawing style +Drawing styles for the wave form display. +draw dots (default) + + + +GstSpaceScope::style +GstSpaceScopeStyle + +rwx +drawing style +Drawing styles for the space scope display. +draw dots (default) + + + +GstRemoveSilence::hysteresis +guint64 +>= 1 +rw +Hysteresis +Set the hysteresis (on samples) used on the internal VAD. +480 + + + +GstRemoveSilence::remove +gboolean + +rw +Remove +Set to true to remove silence from the stream, false otherwhise. +FALSE + + diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy new file mode 100644 index 0000000..ebd6684 --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy @@ -0,0 +1,526 @@ +GObject + GstAdapter + GstColorBalanceChannel + GstMixerTrack + GstMixerOptions + GstObject + GstBus + GstClock + GstSystemClock + GstAudioClock + GstElement + ADPCMDec + ADPCMEnc + GstAiffMux + GstAiffParse + GstAsfMux + GstAsfParse + GstAssRender + GstAudioDecoder + GstCeltDec + GstDtsDec + GstFaad + GstAudioEncoder + GstCeltEnc + GstFaac + GstBaseAudioVisualizer + GstSpaceScope + GstSpectraScope + GstSynaeScope + GstWaveScope + GstBaseParse + GstDiracParse + GstH263Parse + GstH264Parse + GstIRTSPParse + GstMpeg4VParse + GstMpegvParse + GstBaseRTPDepayload + GstRtpDTMFDepay + GstRtpVP8Depay + GstBaseRTPPayload + GstRtpAsfPay + GstRtpVP8Pay + GstBaseSink + GstBaseAudioSink + GstAudioSink + GstApExSink + GstChecksumSink + GstCurlSink + GstDCCPClientSink + GstDCCPServerSink + GstFBDEVSink + GstInterAudioSink + GstInterVideoSink + GstLinsysSdiSink + GstRTMPSink + GstSFSink + GstShmSink + GstVideoSink + GstDfbVideoSink + VdpSink + GstBaseSrc + GstDTMFSrc + GstDataURISrc + GstInterAudioSrc + GstInterVideoSrc + GstLinsysSdiSrc + GstPushSrc + GstDCCPClientSrc + GstDCCPServerSrc + GstDc1394 + GstDvbSrc + GstMMS + GstMythtvSrc + GstNeonhttpSrc + GstRTMPSrc + GstRfbSrc + GstShmSrc + GstVCDSrc + frei0r-src-ising0r + frei0r-src-lissajous0r + frei0r-src-nois0r + frei0r-src-onecol0r + frei0r-src-partik0l + frei0r-src-plasma + GstRTPDTMFSrc + GstSFSrc + GstBaseTransform + GstAudioFilter + GstBPMDetect + GstOFA + GstStereo + GstBayer2RGB + GstCogScale + GstCogcolorspace + GstCogdownsample + GstColorconvert + GstDebugSpy + GstDtmfDetect + GstFreeverb + GstHDVParse + GstLegacyresample + GstLogoinsert + GstMeasureCollector + GstPatchdetect + GstRGB2Bayer + GstRemoveSilence + GstScaletempo + GstVideoFilter + GaussBlur + GstBurn + GstChromaHold + GstChromium + GstColorEffects + GstCsp + GstDilate + GstDodge + GstExclusion + GstGeometricTransform + GstCircleGeometricTransform + GstBulge + GstCircle + GstKaleidoscope + GstPinch + GstSphere + GstStretch + GstTunnel + GstTwirl + GstWaterRipple + GstDiffuse + GstFisheye + GstMarble + GstMirror + GstRotate + GstSquare + GstRsvgOverlay + GstSmooth + GstSolarize + GstVideoAnalyse + GstVideoDetect + GstVideoMark + frei0r-filter-3-point-color-balance + frei0r-filter-3dflippo + frei0r-filter-b + frei0r-filter-baltan + frei0r-filter-bluescreen0r + frei0r-filter-brightness + frei0r-filter-bw0r + frei0r-filter-cartoon + frei0r-filter-color-distance + frei0r-filter-contrast0r + frei0r-filter-curves + frei0r-filter-dealygrab + frei0r-filter-delay0r + frei0r-filter-distort0r + frei0r-filter-edgeglow + frei0r-filter-equaliz0r + frei0r-filter-flippo + frei0r-filter-g + frei0r-filter-gamma + frei0r-filter-glow + frei0r-filter-hueshift0r + frei0r-filter-invert0r + frei0r-filter-k-means-clustering + frei0r-filter-lens-correction + frei0r-filter-letterb0xed + frei0r-filter-levels + frei0r-filter-luminance + frei0r-filter-mask0mate + frei0r-filter-nervous + frei0r-filter-nosync0r + frei0r-filter-opencvfacedetect + frei0r-filter-perspective + frei0r-filter-pixeliz0r + frei0r-filter-primaries + frei0r-filter-r + frei0r-filter-rgb-parade + frei0r-filter-saturat0r + frei0r-filter-scale0tilt + frei0r-filter-scanline0r + frei0r-filter-sobel + frei0r-filter-squareblur + frei0r-filter-tehroxx0r + frei0r-filter-threelay0r + frei0r-filter-threshold0r + frei0r-filter-tint0r + frei0r-filter-transparency + frei0r-filter-twolay0r + frei0r-filter-vectorscope + frei0r-filter-vertigo + frei0r-filter-water + frei0r-filter-white-balance + GstVideoFilter2 + GstSceneChange + GstZebraStripe + GstVideoMaxRate + GstBaseVideoCodec + GstBaseVideoDecoder + GstSchroDec + GstVP8Dec + GstBaseVideoEncoder + GstDiracEnc + GstSchroEnc + GstVP8Enc + GstBin + DvbBaseBin + GstAutoConvert + GstAutoVideoConvert + GstBaseCameraSrc + GstWrapperCameraBinSrc + GstFPSDisplaySink + GstFaceOverlay + GstGSettingsSwitchSink + GstGSettingsAudioSink + GstGSettingsVideoSink + GstGSettingsSwitchSrc + GstGSettingsAudioSrc + GstGSettingsVideoSrc + GstPipeline + GstCameraBin + GstCameraBin2 + GstSDPDemux + GstViewfinderBin + RsnDvdBin + GstBz2dec + GstBz2enc + GstCDAudio + GstCDXAParse + GstChopMyData + GstCompare + GstDVBSubOverlay + GstDVDSpu + GstDecklinkSink + GstDecklinkSrc + GstFestival + GstFieldAnalysis + GstFreeze + GstGSMDec + GstGSMEnc + GstHLSDemux + GstInterlace + GstIvfParse + GstJP2kDecimator + GstJifMux + GstJpegParse + GstKateDec + GstKateEnc + GstKateParse + GstKateTag + GstKateTiger + GstLegacyH264Parse + GstLiveAdder + GstMSE + GstMXFDemux + GstMXFMux + GstMimDec + GstMimEnc + GstModPlug + GstMpeg2enc + GstMpegPSDemux + GstMpegTSDemux + GstMplex + GstMusepackDec + GstMveDemux + GstMveMux + GstNsfDec + GstNuvDemux + GstPcapParse + GstPitch + GstPnmdec + GstPnmenc + GstRTPMux + GstRTPDTMFMux + GstRawParse + GstAudioParse + GstVideoParse + GstRealAudioDec + GstRealVideoDec + GstRsvgDec + GstSSim + GstSdiDemux + GstSdiMux + GstSegmentClip + GstAudioSegmentClip + GstVideoSegmentClip + GstSignalProcessor + ladspa-Chorus1 + ladspa-Chorus2 + ladspa-G2reverb + ladspa-Mvchpf-1 + ladspa-Mvclpf-1 + ladspa-Mvclpf-2 + ladspa-Mvclpf-3 + ladspa-Mvclpf-4 + ladspa-Phaser1 + ladspa-Phaser1+LFO + ladspa-TripleChorus + ladspa-alias + ladspa-allpass-c + ladspa-allpass-l + ladspa-allpass-n + ladspa-amPitchshift + ladspa-amp + ladspa-amp-mono + ladspa-amp-stereo + ladspa-analogueOsc + ladspa-artificialLatency + ladspa-autoPhaser + ladspa-bandpass-a-iir + ladspa-bandpass-iir + ladspa-bodeShifter + ladspa-bodeShifterCV + ladspa-butthigh-iir + ladspa-buttlow-iir + ladspa-bwxover-iir + ladspa-chebstortion + ladspa-comb + ladspa-comb-c + ladspa-comb-l + ladspa-comb-n + ladspa-combSplitter + ladspa-const + ladspa-crossoverDist + ladspa-dcRemove + ladspa-decay + ladspa-decimator + ladspa-declip + ladspa-delay-5s + ladspa-delay-c + ladspa-delay-l + ladspa-delay-n + ladspa-delayorama + ladspa-diode + ladspa-divider + ladspa-dj-eq + ladspa-dj-eq-mono + ladspa-djFlanger + ladspa-dysonCompress + ladspa-fadDelay + ladspa-fastLookaheadLimiter + ladspa-flanger + ladspa-fmOsc + ladspa-foldover + ladspa-fourByFourPole + ladspa-foverdrive + ladspa-freqTracker + ladspa-gate + ladspa-giantFlange + ladspa-gong + ladspa-gongBeater + ladspa-gsm + ladspa-gverb + ladspa-hardLimiter + ladspa-harmonicGen + ladspa-hermesFilter + ladspa-highpass-iir + ladspa-hilbert + ladspa-hpf + ladspa-imp + ladspa-impulse-fc + ladspa-inv + ladspa-karaoke + ladspa-lcrDelay + ladspa-lfoPhaser + ladspa-lowpass-iir + ladspa-lpf + ladspa-lsFilter + ladspa-matrixMSSt + ladspa-matrixSpatialiser + ladspa-matrixStMS + ladspa-mbeq + ladspa-modDelay + ladspa-multivoiceChorus + ladspa-noise-white + ladspa-notch-iir + ladspa-pitchScale + ladspa-pitchScaleHQ + ladspa-plate + ladspa-pointerCastDistortion + ladspa-rateShifter + ladspa-retroFlange + ladspa-revdelay + ladspa-ringmod-1i1o1l + ladspa-ringmod-2i1o + ladspa-satanMaximiser + ladspa-sc1 + ladspa-sc2 + ladspa-sc3 + ladspa-sc4 + ladspa-sc4m + ladspa-se4 + ladspa-shaper + ladspa-sifter + ladspa-sinCos + ladspa-sine-faaa + ladspa-sine-faac + ladspa-sine-fcaa + ladspa-sine-fcac + ladspa-singlePara + ladspa-sinusWavewrapper + ladspa-smoothDecimate + ladspa-split + ladspa-stepMuxer + ladspa-surroundEncoder + ladspa-svf + ladspa-tap-autopan + ladspa-tap-chorusflanger + ladspa-tap-deesser + ladspa-tap-doubler + ladspa-tap-dynamics-m + ladspa-tap-dynamics-st + ladspa-tap-equalizer + ladspa-tap-equalizer-bw + ladspa-tap-limiter + ladspa-tap-pinknoise + ladspa-tap-pitch + ladspa-tap-reflector + ladspa-tap-reverb + ladspa-tap-rotspeak + ladspa-tap-sigmoid + ladspa-tap-stereo-echo + ladspa-tap-tremolo + ladspa-tap-tubewarmth + ladspa-tap-vibrato + ladspa-tapeDelay + ladspa-transient + ladspa-triplePara + ladspa-valve + ladspa-valveRect + ladspa-vynil + ladspa-waveTerrain + ladspa-xfade + ladspa-xfade4 + ladspa-zm1 + GstSirenDec + GstSirenEnc + GstSpeed + GstSrtEnc + GstTRM + GstTagMux + GstId3Mux + GstTtaDec + GstTtaParse + GstVMncDec + GstVcdParse + GstVdpVideoPostProcess + GstWebvttEnc + GstWildmidi + GstXvidDec + GstXvidEnc + GstY4mDec + MpegPsMux + MpegTSBase + GstTSDemux + MpegTSParse2 + MpegTSParse + MpegTsMux + MpegVideoParse + SatBaseVideoDecoder + GstVdpDecoder + GstVdpH264Dec + GstVdpMpeg4Dec + GstVdpMpegDec + frei0r-mixer-addition + frei0r-mixer-alpha-injection + frei0r-mixer-alphaatop + frei0r-mixer-alphain + frei0r-mixer-alphaout + frei0r-mixer-alphaover + frei0r-mixer-alphaxor + frei0r-mixer-blend + frei0r-mixer-burn + frei0r-mixer-color-only + frei0r-mixer-composition + frei0r-mixer-darken + frei0r-mixer-difference + frei0r-mixer-divide + frei0r-mixer-dodge + frei0r-mixer-grain-extract + frei0r-mixer-grain-merge + frei0r-mixer-hardlight + frei0r-mixer-hue + frei0r-mixer-lighten + frei0r-mixer-multiply + frei0r-mixer-overlay + frei0r-mixer-rgb + frei0r-mixer-saturation + frei0r-mixer-screen + frei0r-mixer-softlight + frei0r-mixer-subtract + frei0r-mixer-uv-map + frei0r-mixer-value + frei0r-mixer-xfade0r + GstPad + GstVdpOutputSrcPad + GstVdpVideoSrcPad + GstPadTemplate + GstSignalProcessorPadTemplate + GstPlugin + GstPluginFeature + GstElementFactory + GstIndexFactory + GstTypeFindFactory + GstRegistry + GstRingBuffer + GstAudioSinkRingBuffer + GstTask + GstTaskPool + GstSignalObject + GstVdpDevice + MpegTsPatInfo + MpegTsPmtInfo +GInterface + GTypePlugin + GstChildProxy + GstColorBalance + GstImplementsInterface + GstMixer + GstNavigation + GstPhotography + GstPreset + GstTagSetter + GstTagXmpWriter + GstURIHandler + GstXOverlay + MXFDescriptiveMetadataFrameworkInterface diff --git a/docs/plugins/gst-plugins-bad-plugins.interfaces b/docs/plugins/gst-plugins-bad-plugins.interfaces index d5ab04b..0420c8b 100644 --- a/docs/plugins/gst-plugins-bad-plugins.interfaces +++ b/docs/plugins/gst-plugins-bad-plugins.interfaces @@ -1,38 +1,52 @@ +DvbBaseBin GstChildProxy GstURIHandler +GstAmrWbEnc GstPreset +GstApExSink GstImplementsInterface GstMixer +GstAsfMux GstTagSetter +GstAudioEncoder GstPreset +GstAutoConvert GstChildProxy +GstAutoVideoConvert GstChildProxy +GstBaseCameraSrc GstChildProxy +GstBaseVideoEncoder GstPreset GstBin GstChildProxy -GstPipeline GstChildProxy +GstCDAudio GstURIHandler GstCameraBin GstChildProxy GstImplementsInterface GstColorBalance GstTagSetter -GstGSettingsSwitchSink GstChildProxy +GstCameraBin2 GstChildProxy GstTagSetter +GstCeltEnc GstPreset GstTagSetter +GstCeltEnc GstTagSetter GstPreset +GstDataURISrc GstURIHandler +GstDfbVideoSink GstImplementsInterface GstNavigation GstColorBalance +GstDiracEnc GstPreset +GstFPSDisplaySink GstChildProxy +GstFaac GstPreset +GstFaceOverlay GstChildProxy +GstFreeverb GstPreset GstGSettingsAudioSink GstChildProxy -GstGSettingsVideoSink GstChildProxy -GstGSettingsSwitchSrc GstChildProxy GstGSettingsAudioSrc GstChildProxy +GstGSettingsSwitchSink GstChildProxy +GstGSettingsSwitchSrc GstChildProxy +GstGSettingsVideoSink GstChildProxy GstGSettingsVideoSrc GstChildProxy -RsnDvdBin GstChildProxy GstURIHandler -DvbBaseBin GstChildProxy GstURIHandler -GstAutoConvert GstChildProxy -GstAutoVideoConvert GstChildProxy -GstSDPDemux GstChildProxy -GstFPSDisplaySink GstChildProxy +GstId3BaseMux GstTagSetter +GstId3Mux GstTagSetter +GstJifMux GstTagSetter GstTagXmpWriter +GstKateEnc GstTagSetter +GstKateTag GstTagSetter +GstMMS GstURIHandler 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 +GstPipeline GstChildProxy +GstRTMPSink GstURIHandler +GstRTMPSrc GstURIHandler +GstSDLVideoSink GstImplementsInterface GstXOverlay GstNavigation +GstSDPDemux GstChildProxy +GstSchroEnc GstPreset +GstTagMux GstTagSetter GstVCDSrc GstURIHandler -GstDataURISrc GstURIHandler -GstAmrWbEnc GstPreset -GstFaac GstPreset -GstXvidEnc GstPreset -GstDiracEnc GstPreset +GstVP8Enc GstPreset GstTagSetter GstVP8Enc GstTagSetter GstPreset -GstKateEnc GstTagSetter -GstKateTag GstTagSetter -GstJifMux GstTagSetter GstTagXmpWriter -GstId3BaseMux GstTagSetter -GstId3Mux GstTagSetter -GstAsfMux GstTagSetter +GstViewfinderBin GstChildProxy +GstWrapperCameraBinSrc GstChildProxy +GstXvidEnc GstPreset +RsnDvdBin GstChildProxy GstURIHandler +VdpSink GstImplementsInterface GstNavigation GstXOverlay diff --git a/docs/plugins/gst-plugins-bad-plugins.prerequisites b/docs/plugins/gst-plugins-bad-plugins.prerequisites index 79b8f0d..2fbd90b 100644 --- a/docs/plugins/gst-plugins-bad-plugins.prerequisites +++ b/docs/plugins/gst-plugins-bad-plugins.prerequisites @@ -1,8 +1,9 @@ GstChildProxy GstObject +GstColorBalance GstImplementsInterface GstElement GstImplementsInterface GstElement -GstXOverlay GstImplementsInterface GstElement +GstMixer GstImplementsInterface GstElement +GstPhotography GstImplementsInterface GstElement GstTagSetter GstElement -GstColorBalance GstImplementsInterface GstElement GstTagXmpWriter GstElement +GstXOverlay GstImplementsInterface GstElement MXFDescriptiveMetadataFrameworkInterface MXFDescriptiveMetadata -GstPhotography GstImplementsInterface GstElement diff --git a/docs/plugins/html/GstPhotography.html b/docs/plugins/html/GstPhotography.html index e2acf27..60bd6cb 100644 --- a/docs/plugins/html/GstPhotography.html +++ b/docs/plugins/html/GstPhotography.html @@ -3,11 +3,11 @@ GstPhotography - + - + @@ -36,7 +36,7 @@

GstPhotography

-

GstPhotography — Interface for digital image capture elements

+

GstPhotography

@@ -62,7 +62,7 @@ enum gboolean gst_photography_get_aperture (GstPhotography *photo, guint *aperture); gboolean gst_photography_get_exposure (GstPhotography *photo, - guint32 *exposure); + guint32 *exposure); gboolean gst_photography_get_white_balance_mode (GstPhotography *photo, GstWhiteBalanceMode *wb_mode); @@ -148,16 +148,6 @@ GstPhotography requires

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. -
-

@@ -166,14 +156,12 @@ The interface allows access to some common digital image capture parameters.

GstPhotography

typedef struct _GstPhotography GstPhotography;

-Opaque GstPhotography data structure.



enum GstWhiteBalanceMode

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_WB_MODE_AUTO = 0,
   GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT,
   GST_PHOTOGRAPHY_WB_MODE_CLOUDY,
@@ -240,8 +190,7 @@ remaining noise.
 

enum GstColourToneMode

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL = 0,
   GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SEPIA,
   GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NEGATIVE,
@@ -262,8 +211,7 @@ remaining noise.
 

enum GstSceneMode

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_SCENE_MODE_MANUAL = 0,
   GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP,
   GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT,
@@ -279,8 +227,7 @@ remaining noise.
 

enum GstFlashMode

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_FLASH_MODE_AUTO = 0,
   GST_PHOTOGRAPHY_FLASH_MODE_OFF,
   GST_PHOTOGRAPHY_FLASH_MODE_ON,
@@ -294,8 +241,7 @@ remaining noise.
 

enum GstFlickerReductionMode

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0,
   GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ,
   GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ,
@@ -325,8 +271,7 @@ remaining noise.
 

enum GstFocusStatus

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0,
   GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING,
   GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL,
@@ -339,8 +284,7 @@ remaining noise.
 

enum GstPhotoCaps

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_CAPS_NONE = (0 << 0),
   GST_PHOTOGRAPHY_CAPS_EV_COMP = (1 << 0),
   GST_PHOTOGRAPHY_CAPS_ISO_SPEED = (1 << 1),
@@ -353,7 +297,9 @@ remaining noise.
   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)
+  GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION = (1 << 11),
+  GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION = (1 << 12),
+  GST_PHOTOGRAPHY_CAPS_ALL = (~0)
 } GstPhotoCaps;
 

@@ -362,8 +308,7 @@ remaining noise.


enum GstPhotoShakeRisk

-
typedef enum
-{
+
typedef enum {
   GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0,
   GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM,
   GST_PHOTOGRAPHY_SHAKE_RISK_HIGH,
@@ -378,24 +323,7 @@ remaining noise.
 
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.

@@ -403,28 +331,7 @@ Ownership of these caps stays in the element.
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

@@ -432,28 +339,7 @@ Get the ev compensation value for the 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

@@ -461,57 +347,15 @@ Get the ISO value (light sensivity) for the 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);
+ 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

@@ -520,29 +364,7 @@ Get the fixed exposure time (in us) for the 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

@@ -551,29 +373,7 @@ Get the white balance mode for the 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

@@ -581,29 +381,7 @@ Get the colour tone mode for the 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

@@ -611,29 +389,7 @@ Get the scene mode for the 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

@@ -641,30 +397,7 @@ Get the flash mode for the 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


@@ -672,28 +405,7 @@ Get the noise reduction mode for the 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

@@ -701,28 +413,7 @@ Get the zoom value for the 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

@@ -730,28 +421,7 @@ Set the ev compensation value for the 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

@@ -759,28 +429,7 @@ Set the ISO value (light sensivity) for the 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

@@ -788,28 +437,7 @@ Set the aperture value for the 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

@@ -818,29 +446,7 @@ Set the fixed exposure time (in us) for the 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

@@ -849,29 +455,7 @@ Set the white balance mode for the 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

@@ -879,29 +463,7 @@ Set the colour tone mode for the 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

@@ -909,29 +471,7 @@ Set the scene mode for the 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

@@ -939,30 +479,7 @@ Set the flash mode for the 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


@@ -970,54 +487,14 @@ Set the noise reduction mode for the 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

@@ -1027,33 +504,7 @@ interface features the 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.

@@ -1061,25 +512,7 @@ preparations are done.
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

@@ -1087,28 +520,7 @@ message is posted to bus when autofocusing has finished.
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.

@@ -1116,28 +528,7 @@ Set all configuration settings at once.
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.
@@ -1250,6 +641,6 @@ Get all configuration settings at once.
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html index a1025d6..29583ff 100644 --- a/docs/plugins/html/ch01.html +++ b/docs/plugins/html/ch01.html @@ -3,12 +3,12 @@ gst-plugins-bad Elements - + - + @@ -30,9 +30,6 @@ aiffmux — Multiplex raw audio into AIFF
-amrwbenc — Adaptive Multi-Rate Wideband audio encoder -
-
assrender — Renders ASS/SSA subtitles with libass
@@ -48,6 +45,9 @@ camerabin — Handle lot of features present in DSC
+camerabin2 — CameraBin2 +
+
celtdec — decode celt streams to audio
@@ -63,7 +63,7 @@ coloreffects — Color Look-up Table filter
-curlsink — sink that uploads data to a server using libcurl +curlsink — Upload data over the network to a server using libcurl
cvdilate — Applies cvDilate OpenCV function to the image @@ -177,13 +177,13 @@ katedec — Decodes Kate text streams
-kateparse — parses kate streams +kateparse — parse raw kate streams
-katetag — retags kate streams +katetag — Retags kate streams
-ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API) +ladspa
legacyresample — Resample audio @@ -240,7 +240,13 @@ rsvgoverlay — Overlays SVG graphics over a video stream
-rtpdtmfdepay — Generates DTMF Sound from telephone-event RTP packets +rtmpsink — Sends FLV content to a server via RTMP +
+
+rtmpsrc — Read RTMP streams +
+
+rtpmux — multiplex N rtp streams into one
rtpdtmfsrc — Generates RTP DTMF packets @@ -273,6 +279,15 @@ solarize — Solarize tunable inverse in the video signal.
+spacescope — Simple stereo visualizer +
+
+spectrascope — Simple frequency spectrum scope +
+
+synaescope — Creates video visualizations of audio input, using stereo and pitch information +
+
speed — Set speed/pitch on audio/raw streams (resampler)
@@ -333,15 +348,24 @@ zbar — Detect bar codes in the video streams
+voaacenc — AAC audio encoder +
+
+voamrwbenc +
+
vp8dec — Decode VP8 video streams
vp8enc — Encode VP8 video streams
+
+wavescope — Simple waveform oscilloscope +
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html index 814432b..e382216 100644 --- a/docs/plugins/html/ch02.html +++ b/docs/plugins/html/ch02.html @@ -3,17 +3,17 @@ gst-plugins-bad Plugins - + - + - + - + @@ -21,19 +21,19 @@

-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 +audiovisualizers — Creates video visualizations of audio input
-legacyresample — Resamples audio +autoconvert — Selects convertor element based on caps
-amrwbenc — Adaptive Multi-Rate Wide-Band Encoder +legacyresample — Resamples audio
assrender — ASS/SSA subtitle renderer @@ -48,6 +48,9 @@ camerabin — High level api for DC (Digital Camera) application
+camerabin2 — camerabin2 +
+
cdaudio — Play CD audio through the CD Drive
@@ -216,6 +219,9 @@ rsvg — RSVG plugin library
+rtmp — RTMP source and sink +
+
rtpmux — RTP Muxer plugins
@@ -273,15 +279,19 @@ xvid — XviD plugin library
+voaacenc — AAC audio encoder +
+
vp8 — VP8 plugin
zbar — zbar barcode scanner
+<xi:include></xi:include> + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html index 4f3e27a..6664b05 100644 --- a/docs/plugins/html/ch03.html +++ b/docs/plugins/html/ch03.html @@ -3,12 +3,12 @@ gst-plugins-bad Interfaces - + - + @@ -21,13 +21,13 @@

-gst-plugins-bad Interfaces

+gst-plugins-bad Interfaces
-GstPhotography — Interface for digital image capture elements +GstPhotography
+ Generated by GTK-Doc V1.18 \ 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 index cc7ffc1..cf86009 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html @@ -3,12 +3,12 @@ aiffmux - + - - + + @@ -18,7 +18,7 @@ Up Home GStreamer Bad Plugins 0.10 Plugins Reference Manual -Next +Next Top @@ -59,7 +59,7 @@ Format an audio stream into the Audio Interchange File Format

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +82,7 @@ Format an audio stream into the Audio Interchange File Format
-

Element Pads

+

Element Pads

@@ -155,6 +155,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ 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 index 2837467..9c2355e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html @@ -3,12 +3,12 @@ aiffparse - + - + @@ -56,7 +56,7 @@

-

Example launch line

+

Example launch line

Parse a .aiff file into raw or compressed audio.

@@ -87,7 +87,7 @@ Stream data from a network url.

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +110,7 @@ Stream data from a network url.
-

Element Pads

+

Element Pads

@@ -175,6 +175,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ 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 deleted file mode 100644 index 16a2a56..0000000 --- a/docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - -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 index 84ed213..8bbead9 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-assrender.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-assrender.html @@ -3,18 +3,18 @@ assrender - + - + - + - + @@ -62,31 +62,10 @@

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

+

Element Information

@@ -109,7 +88,7 @@ Renders timestamped SSA/ASS subtitles on top of a video stream.
-

Element Pads

+

Element Pads

@@ -258,6 +237,6 @@ Renders timestamped SSA/ASS subtitles on top of a video stream. + Generated by GTK-Doc V1.18 \ 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 index 0016737..0729804 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html @@ -3,12 +3,12 @@ autoconvert - + - + @@ -86,7 +86,7 @@ elements.

Synopsis

-

Element Information

+

Element Information

@@ -109,7 +109,7 @@ elements.
-

Element Pads

+

Element Pads

@@ -184,6 +184,6 @@ elements. + Generated by GTK-Doc V1.18 \ 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 index d9fc263..a6fcd9c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-bulge.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-bulge.html @@ -3,12 +3,12 @@ bulge - + - + @@ -68,7 +68,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -91,7 +91,7 @@
-

Element Pads

+

Element Pads

@@ -265,6 +265,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9c7949c..1633d9c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-burn.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-burn.html @@ -3,12 +3,12 @@ burn - + - + @@ -70,7 +70,7 @@ Burn adjusts the colors of a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -88,7 +88,7 @@ Burn adjusts the colors of a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +111,7 @@ Burn adjusts the colors of a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -196,6 +196,6 @@ Burn adjusts the colors of a video stream in realtime. + Generated by GTK-Doc V1.18 \ 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 index cc21416..241e45c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-camerabin.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-camerabin.html @@ -3,12 +3,12 @@ camerabin - + - - + + @@ -18,7 +18,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
Top @@ -107,6 +107,7 @@ GstCameraBin implements "idle" gboolean : Read "preview-source-filter" GstElement* : Read / Write "ready-for-capture" gboolean : Read + "image-formatter" GstElement* : Read / Write
@@ -143,7 +144,7 @@ three main data paths: view-finder, image capture and video capture.

-

Example launch line

+

Example launch line

@@ -160,7 +161,7 @@ three main data paths: view-finder, image capture and video capture.


-

Image capture

+

Image capture

Image capture is selected by switching "mode" to MODE_IMAGE. Taking still images is initiated with the "capture-start" action @@ -188,7 +189,7 @@ functions and properties for setting photography parameters. One can use


-

Video capture

+

Video capture

Video capture is selected by switching "mode" to MODE_VIDEO. The capture is started with the "capture-start" action signal @@ -206,7 +207,7 @@ frame rate and resolution for the video recording and view finder as well.


-

States

+

States

Elements within GstCameraBin are created and destroyed when switching between NULL and READY states. Therefore element properties should be set @@ -214,13 +215,15 @@ 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. +GstCameraBin must be in the PLAYING state before "capture-start" +is called.


-

Video and image previews

+

Video and image previews

GstCameraBin contains "preview-caps" property, which is used to determine whether the application wants a preview image of the captured @@ -241,7 +244,7 @@ mode.


-
+

Note

Since the muxers tested so far have problems with discontinous buffers, QoS @@ -258,7 +261,7 @@ colorspace (i.e. rgb or yuv i420 or whatelse).

Synopsis

-

Element Information

+

Element Information

@@ -281,7 +284,7 @@ colorspace (i.e. rgb or yuv i420 or whatelse).
-

Element Pads

+

Element Pads

@@ -299,8 +302,7 @@ The opaque

enum GstCameraBinMode

-
typedef enum
-{
+
typedef enum {
   MODE_IMAGE = 0,
   MODE_VIDEO
 } GstCameraBinMode;
@@ -561,7 +563,7 @@ The ownership of the element will be taken by 
@@ -685,6 +687,16 @@ and starting a new capture immediately is not possible.
 

Default value: TRUE

+
+
+

The "image-formatter" property

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

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

+

Signal Details

@@ -1015,6 +1027,6 @@ already updates the caps to force use this resolution and framerate.
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-camerabin2.html b/docs/plugins/html/gst-plugins-bad-plugins-camerabin2.html new file mode 100644 index 0000000..33c95da --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-camerabin2.html @@ -0,0 +1,551 @@ + + + + +camerabin2 + + + + + + + + + +
+ + + + + + + + + +
+
+
+ + +
+

camerabin2

+

camerabin2 — CameraBin2

+
+
+

Synopsis

+
struct              GstCameraBin2;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBin
+                     +----GstPipeline
+                           +----GstCameraBin2
+
+
+
+

Implemented Interfaces

+

+GstCameraBin2 implements + GstChildProxy and GstTagSetter.

+
+
+

Properties

+
+  "audio-capture-caps"       GstCaps*              : Read / Write
+  "audio-capture-supported-caps" GstCaps*              : Read
+  "audio-src"                GstElement*           : Read / Write
+  "camera-src"               GstElement*           : Read / Write
+  "idle"                     gboolean              : Read
+  "image-capture-caps"       GstCaps*              : Read / Write
+  "image-capture-encoder"    GstElement*           : Read / Write
+  "image-capture-muxer"      GstElement*           : Read / Write
+  "image-capture-supported-caps" GstCaps*              : Read
+  "image-filter"             GstElement*           : Read / Write
+  "location"                 gchar*                : Read / Write
+  "max-zoom"                 gfloat                : Read
+  "mode"                     GstCameraBin2Mode     : Read / Write
+  "mute"                     gboolean              : Read / Write
+  "post-previews"            gboolean              : Read / Write
+  "preview-caps"             GstCaps*              : Read / Write
+  "preview-filter"           GstElement*           : Read / Write
+  "video-capture-caps"       GstCaps*              : Read / Write
+  "video-capture-supported-caps" GstCaps*              : Read
+  "video-filter"             GstElement*           : Read / Write
+  "video-profile"            GstEncodingProfile*   : Read / Write
+  "viewfinder-caps"          GstCaps*              : Read / Write
+  "viewfinder-filter"        GstElement*           : Read / Write
+  "viewfinder-sink"          GstElement*           : Read / Write
+  "viewfinder-supported-caps" GstCaps*              : Read
+  "zoom"                     gfloat                : Read / Write
+  "image-profile"            GstEncodingProfile*   : Read / Write
+  "audio-source"             GstElement*           : Read / Write
+  "camera-source"            GstElement*           : Read / Write
+  "audio-filter"             GstElement*           : Read / Write
+  "flags"                    GstCamFlags           : Read / Write
+
+
+
+

Signals

+
+  "start-capture"                                  : Action
+  "stop-capture"                                   : Action
+
+
+
+

Description

+

+CameraBin2 is a high-level camera object that encapsulates gstreamer +elements, providing an API for controlling a digital camera. +

+

+

+
+

Note

+Note that camerabin2 is still UNSTABLE and under +development. +
+

+

+

+CameraBin2 has the following main features: +

+
    +
  • +Record videos +
  • +
  • +Capture pictures +
  • +
  • +Display a viewfinder +
  • +
  • +Post preview images for each capture (video and image) +
  • +
+

+

+

+

+
+

Usage

+

+Camerabin2 can be created using gst_element_factory_make() just like +any other element. Video or image capture mode can be selected using +the "mode" property and the file to save the capture is +selected using "location" property. +

+

+After creating camerabin2, applications might want to do some +customization (there's a section about this below), then select +the desired mode and start capturing. +

+

+In image capture mode, just send a "start-capture" and a +picture will be captured. When the picture is stored on the selected +location, a GST_MESSAGE_ELEMENT named 'image-done' will be posted on +the GstBus. +

+

+In video capture mode, send a "start-capture" to start +recording, then send a "stop-capture" to stop recording. +Note that both signals are asynchronous, so, calling +"stop-capture" doesn't guarantee that the video has been +properly finished yet. Applications should wait for the 'video-done' +message to be posted on the bus. +

+

+In both modes, if "post-previews" is TRUE, a GstBuffer +will be post to the GstBus in a field named 'buffer', in a +'preview-image' message of type GST_MESSAGE_ELEMENT. +

+
+

+

+

+

+
+

Customization

+

+Camerabin2 provides various customization properties, allowing the user +to set custom filters, selecting the viewfinder sink and formats to +use to encode the captured images/videos. +

+

+GstEncodingProfiles are used to tell camerabin2 which formats it +should encode the captures to, those should be set to +"image-profile" and "video-profile". Default is +jpeg for images, and ogg (theora and vorbis) for video. If a profile without +an audio stream is set for video, audio will be disabled on recordings. +

+

+"preview-caps" can be used to select which format preview +images should be posted on the GstBus. It has to be a raw video format. +

+

+Camerabin2 has a "camera-source" property so applications can +set their source that will provide buffers for the viewfinder and for +captures. This camera source is a special type of source that has 3 pads. +To use a 'regular' source with a single pad you should use +GstWrapperCameraBinSource, it will adapt your source and provide 3 pads. +

+

+Applications can also select the desired viewfinder sink using +"viewfinder-sink", it is also possible to select the audio +source using "audio-source". +

+

+The viewfinder resolution can be configured using +"viewfinder-caps", these GstCaps should be a subset of +"viewfinder-supported-caps". +

+

+To select the desired resolution for captures, camerabin2 provides +"image-capture-caps" and "video-capture-caps", +these caps must be a subset of what the source can produce. The allowed +caps can be probed using "image-capture-supported-caps" and +"video-capture-supported-caps". In an analogous way, there +are "audio-capture-caps" and +"audio-capture-supported-caps". +

+

+Camerabin2 also allows applications to insert custom GstElements on any +of its branches: video capture, image capture, viewfinder and preview. +Check "video-filter", "image-filter", +"viewfinder-filter" and "preview-filter". +

+
+

+

+

+

+
+

Example launch line

+

+Unfortunatelly, camerabin2 can't be really used from gst-launch, as you need +to send signals to control it. The following pipeline might be able +to show the viewfinder using all the default elements. +

+
+ + + + + + + +
1
gst-launch -v -m camerabin2
+
+ +

+

+
+

+

+
+

Synopsis

+
+

Element Information

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

plugin

+ camerabin2 +

author

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

class

Generic/Bin/Camera
+
+
+
+

Element Pads

+
+
+

+

+
+
+

Details

+
+

struct GstCameraBin2

+
struct GstCameraBin2;
+

+

+
+
+
+

Property Details

+
+

The "audio-capture-caps" property

+
  "audio-capture-caps"       GstCaps*              : Read / Write
+

Format to capture audio for video recording represented as GstCaps.

+
+
+
+

The "audio-capture-supported-caps" property

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

Formats supported for capturing audio represented as GstCaps.

+
+
+
+

The "audio-src" property

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

The audio source element to be used on video recordings. It is only taken into use on the next null to ready transition.

+
+
+
+

The "camera-src" property

+
  "camera-src"               GstElement*           : Read / Write
+

The camera source element to be used. It is only taken into use on the next null to ready transition.

+
+
+
+

The "idle" property

+
  "idle"                     gboolean              : Read
+

If camerabin2 is idle (not doing captures).

+

Default value: TRUE

+
+
+
+

The "image-capture-caps" property

+
  "image-capture-caps"       GstCaps*              : Read / Write
+

Caps for image capture.

+
+
+
+

The "image-capture-encoder" property

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

The image encoder element to be used on image captures.

+
+
+
+

The "image-capture-muxer" property

+
  "image-capture-muxer"      GstElement*           : Read / Write
+

The image encoder element to be used on image captures.

+
+
+
+

The "image-capture-supported-caps" property

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

Formats supported for capturing images represented as GstCaps.

+
+
+
+

The "image-filter" property

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

The element that will process captured image frames. (Should be set on NULL state).

+
+
+
+

The "location" property

+
  "location"                 gchar*                : Read / Write
+

Location to save the captured files. A %d might be used on thefilename as a placeholder for a numeric index of the capture.Default is cap_%d.

+

Default value: "cap_%d"

+
+
+
+

The "max-zoom" property

+
  "max-zoom"                 gfloat                : Read
+

Digital zoom factor (e.g. 1.5 means 1.5x).

+

Allowed values: >= 1

+

Default value: 10

+
+
+
+

The "mode" property

+
  "mode"                     GstCameraBin2Mode     : Read / Write
+

+Set the mode of operation: still image capturing or video recording. +

+

Default value: Still image capture (default)

+
+
+
+

The "mute" property

+
  "mute"                     gboolean              : Read / Write
+

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.

+

Default value: FALSE

+
+
+
+

The "post-previews" property

+
  "post-previews"            gboolean              : Read / Write
+

If capture preview images should be posted to the bus.

+

Default value: FALSE

+
+
+
+

The "preview-caps" property

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

The caps of the preview image to be posted.

+
+
+
+

The "preview-filter" property

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

The element that will process preview buffers. (Should be set on NULL state).

+
+
+
+

The "video-capture-caps" property

+
  "video-capture-caps"       GstCaps*              : Read / Write
+

Caps for video capture.

+
+
+
+

The "video-capture-supported-caps" property

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

Formats supported for capturing videos represented as GstCaps.

+
+
+
+

The "video-filter" property

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

The element that will process captured video frames. (Should be set on NULL state).

+
+
+
+

The "video-profile" property

+
  "video-profile"            GstEncodingProfile*   : Read / Write
+

The GstEncodingProfile to use for video recording. Audio is enabled when this profile supports audio.

+
+
+
+

The "viewfinder-caps" property

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

Restricts the caps that can be used on the viewfinder.

+
+
+
+

The "viewfinder-filter" property

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

The element that will process frames going to the viewfinder. (Should be set on NULL state).

+
+
+
+

The "viewfinder-sink" property

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

The video sink of the viewfinder. It is only taken into use on the next null to ready transition.

+
+
+
+

The "viewfinder-supported-caps" property

+
  "viewfinder-supported-caps" GstCaps*              : Read
+

The caps that the camera source can produce on the viewfinder pad.

+
+
+
+

The "zoom" property

+
  "zoom"                     gfloat                : Read / Write
+

Digital zoom factor (e.g. 1.5 means 1.5x).

+

Allowed values: [1,10]

+

Default value: 1

+
+
+
+

The "image-profile" property

+
  "image-profile"            GstEncodingProfile*   : Read / Write
+

The GstEncodingProfile to use for image captures.

+
+
+
+

The "audio-source" property

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

The audio source element to be used on video recordings. It is only taken into use on the next null to ready transition.

+
+
+
+

The "camera-source" property

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

The camera source element to be used. It is only taken into use on the next null to ready transition.

+
+
+
+

The "audio-filter" property

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

The element that will process captured audio buffers when recording. (Should be set on NULL state).

+
+
+
+

The "flags" property

+
  "flags"                    GstCamFlags           : Read / Write
+

Flags to control behaviour.

+
+
+
+

Signal Details

+
+

The "start-capture" signal

+
void                user_function                      (GstCameraBin2 *gstcamerabin2,
+                                                        gpointer       user_data)          : Action
+

+

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

gstcamerabin2 :

the object which received the signal.

user_data :

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

The "stop-capture" signal

+
void                user_function                      (GstCameraBin2 *gstcamerabin2,
+                                                        gpointer       user_data)          : Action
+

+

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

gstcamerabin2 :

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-celtdec.html b/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html index f844297..f371831 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html @@ -3,18 +3,18 @@ celtdec - + - + - + - + @@ -48,36 +48,16 @@ GObject +----GstObject +----GstElement - +----GstCeltDec + +----GstAudioDecoder + +----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

+

Element Information

@@ -100,7 +80,7 @@ This element decodes a CELT stream to raw integer audio.
-

Element Pads

+

Element Pads

@@ -157,13 +137,9 @@ This element decodes a CELT stream to raw integer audio.

-
-

See Also

-celtenc, oggdemux -
+ Generated by GTK-Doc V1.18 \ 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 index 28bb324..2708e2c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-celtenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-celtenc.html @@ -3,12 +3,12 @@ celtenc - + - + @@ -52,7 +52,8 @@ GObject +----GstObject +----GstElement - +----GstCeltEnc + +----GstAudioEncoder + +----GstCeltEnc
@@ -75,31 +76,10 @@ GstCeltEnc implements

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

+

Element Information

@@ -122,7 +102,7 @@ This element raw audio to CELT.
-

Element Pads

+

Element Pads

@@ -235,13 +215,9 @@ This element raw audio to CELT.

Default value: 0

-
-

See Also

-celtdec, oggmux -
+ Generated by GTK-Doc V1.18 \ 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 index e75934f..c885f79 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-chromium.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-chromium.html @@ -3,12 +3,12 @@ chromium - + - + @@ -71,7 +71,7 @@ Chromium breaks the colors of a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -89,7 +89,7 @@ Chromium breaks the colors of a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -112,7 +112,7 @@ Chromium breaks the colors of a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -206,6 +206,6 @@ Chromium breaks the colors of a video stream in realtime. + Generated by GTK-Doc V1.18 \ 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 index 2c9be83..0614b32 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-circle.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-circle.html @@ -3,12 +3,12 @@ circle - + - + @@ -70,7 +70,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -93,7 +93,7 @@
-

Element Pads

+

Element Pads

@@ -281,6 +281,6 @@ + Generated by GTK-Doc V1.18 \ 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 index cccba55..83232f1 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html @@ -3,12 +3,12 @@ coloreffects - + - + @@ -69,13 +69,15 @@ Map colors of the video input to a lookup table

-

Example launch line

+

Example launch line

- - + +
1
gst-launch -v videotestsrc ! coloreffects preset=heat ! ffmpegcolorspace ! autovideosink
1
+2
gst-launch -v videotestsrc ! coloreffects preset=heat ! ffmpegcolorspace !
+    autovideosink
@@ -87,7 +89,7 @@ Map colors of the video input to a lookup table

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +112,7 @@ Map colors of the video input to a lookup table
-

Element Pads

+

Element Pads

@@ -260,6 +262,6 @@ Opaque datastructure. + Generated by GTK-Doc V1.18 \ 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 index 5b3faf2..ddfee8e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-curlsink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-curlsink.html @@ -3,12 +3,12 @@ curlsink - + - + @@ -35,7 +35,7 @@

curlsink

-

curlsink — sink that uploads data to a server using libcurl

+

curlsink — Upload data over the network to a server using libcurl

@@ -74,42 +74,10 @@

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

+

Element Information

@@ -132,7 +100,7 @@ a server (e.g. a HTTP/FTP server).
-

Element Pads

+

Element Pads

@@ -267,6 +235,6 @@ a server (e.g. a HTTP/FTP server). + Generated by GTK-Doc V1.18 \ 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 index 8c912ae..9b07a72 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html @@ -3,12 +3,12 @@ cvdilate - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Object Hierarchy
@@ -39,20 +37,7 @@

Synopsis

-
struct              GstCvDilate;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvDilateErode
-                                       +----GstCvDilate
+
struct              GstCvDilate;
 
@@ -60,7 +45,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -83,7 +68,7 @@
-

Element Pads

+

Element Pads

@@ -230,8 +215,11 @@

Details

-

struct GstCvDilate

-
struct GstCvDilate;
+

struct GstCvDilate

+
struct GstCvDilate {
+  GstCvDilateErode element;
+};
+

@@ -239,6 +227,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index 7cb47a5..95f8cfd 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html @@ -3,12 +3,12 @@ cvequalizehist - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Object Hierarchy
@@ -39,19 +37,7 @@

Synopsis

-
struct              GstCvEqualizeHist;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvEqualizeHist
+
struct              GstCvEqualizeHist;
 
@@ -59,7 +45,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +68,7 @@
-

Element Pads

+

Element Pads

@@ -133,8 +119,11 @@

Details

-

struct GstCvEqualizeHist

-
struct GstCvEqualizeHist;
+

struct GstCvEqualizeHist

+
struct GstCvEqualizeHist {
+  GstOpencvVideoFilter element;
+};
+

@@ -142,6 +131,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index 80ce819..6b26ab7 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cverode.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cverode.html @@ -3,12 +3,12 @@ cverode - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Object Hierarchy
@@ -39,20 +37,7 @@

Synopsis

-
struct              GstCvErode;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvDilateErode
-                                       +----GstCvErode
+
struct              GstCvErode;
 
@@ -60,7 +45,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -83,7 +68,7 @@
-

Element Pads

+

Element Pads

@@ -230,8 +215,11 @@

Details

-

struct GstCvErode

-
struct GstCvErode;
+

struct GstCvErode

+
struct GstCvErode {
+  GstCvDilateErode element;
+};
+

@@ -239,6 +227,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index 5406bcb..33427e3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html @@ -3,12 +3,12 @@ cvlaplace - + - + @@ -25,8 +25,6 @@  |  Description  |  - Object Hierarchy -  |  Properties
@@ -41,19 +39,7 @@

Synopsis

-
struct              GstCvLaplace;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvLaplace
+
struct              GstCvLaplace;
 
@@ -67,7 +53,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -90,7 +76,7 @@
-

Element Pads

+

Element Pads

@@ -141,8 +127,15 @@

Details

-

struct GstCvLaplace

-
struct GstCvLaplace;
+

struct GstCvLaplace

+
struct GstCvLaplace {
+  GstOpencvVideoFilter element;
+
+  gint aperture_size;
+
+  IplImage *intermediary_img;
+};
+

@@ -160,6 +153,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index bc0c700..9c14692 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html @@ -3,12 +3,12 @@ cvsmooth - + - + @@ -25,8 +25,6 @@  |  Description  |  - Object Hierarchy -  |  Properties
@@ -41,19 +39,7 @@

Synopsis

-
struct              GstCvSmooth;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvSmooth
+
struct              GstCvSmooth;
 
@@ -71,7 +57,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -94,7 +80,7 @@
-

Element Pads

+

Element Pads

@@ -161,8 +147,18 @@

Details

-

struct GstCvSmooth

-
struct GstCvSmooth;
+

struct GstCvSmooth

+
struct GstCvSmooth {
+  GstOpencvVideoFilter element;
+
+  gint type;
+
+  gint param1;
+  gint param2;
+  gdouble param3;
+  gdouble param4;
+};
+

@@ -211,6 +207,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index 6bbee51..dc4eb80 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html @@ -3,12 +3,12 @@ cvsobel - + - + @@ -25,8 +25,6 @@  |  Description  |  - Object Hierarchy -  |  Properties
@@ -41,19 +39,7 @@

Synopsis

-
struct              GstCvSobel;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseTransform
-                     +----GstVideoFilter
-                           +----GstOpencvVideoFilter
-                                 +----GstCvSobel
+
struct              GstCvSobel;
 
@@ -69,7 +55,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -92,7 +78,7 @@
-

Element Pads

+

Element Pads

@@ -143,8 +129,15 @@

Details

-

struct GstCvSobel

-
struct GstCvSobel;
+

struct GstCvSobel

+
struct GstCvSobel {
+  GstOpencvVideoFilter element;
+
+  gint x_order;
+  gint y_order;
+  gint aperture_size;
+};
+

@@ -163,7 +156,7 @@

The "x-order" property

  "x-order"                  gint                  : Read / Write

Order of the derivative x.

-

Allowed values: >= G_MAXULONG

+

Allowed values: >= -1

Default value: 1


@@ -171,13 +164,13 @@

The "y-order" property

  "y-order"                  gint                  : Read / Write

Order of the derivative y.

-

Allowed values: >= G_MAXULONG

+

Allowed values: >= -1

Default value: 0

+ Generated by GTK-Doc V1.18 \ 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 index 22cfda9..84b34ab 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html @@ -3,12 +3,12 @@ dataurisrc - + - + @@ -76,7 +76,7 @@ dataurisrc handles data: URIs, see -

Example launch line

+

Example launch line

@@ -94,7 +94,7 @@ dataurisrc handles data: URIs, see

Synopsis

-

Element Information

+

Element Information

@@ -117,7 +117,7 @@ dataurisrc handles data: URIs, see -

Element Pads

+

Element Pads

@@ -165,6 +165,6 @@ dataurisrc handles data: URIs, see
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ 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 index e2027aa..de10487 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html @@ -3,12 +3,12 @@ dccpclientsink - + - + @@ -83,7 +83,7 @@ TCP and UDP.

-

Example pipeline

+

Example pipeline

@@ -123,7 +123,7 @@ Run the server pipeline first than the client pipeline.

Synopsis

-

Element Information

+

Element Information

@@ -146,7 +146,7 @@ Run the server pipeline first than the client pipeline.
-

Element Pads

+

Element Pads

@@ -254,6 +254,6 @@ dccpserversrc, dccpclientsrc, dccpserversink + Generated by GTK-Doc V1.18 \ 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 index 2bd81d2..b96aee3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html @@ -3,12 +3,12 @@ dccpclientsrc - + - + @@ -85,7 +85,7 @@ TCP and UDP.

-

Example pipeline

+

Example pipeline

@@ -126,7 +126,7 @@ to connect to the same server (see wait-connections property at dccpserversink).

Synopsis

-

Element Information

+

Element Information

@@ -149,7 +149,7 @@ to connect to the same server (see wait-connections property at dccpserversink).
-

Element Pads

+

Element Pads

@@ -262,6 +262,6 @@ dccpclientsink, dccpserversink, dccpserversrc + Generated by GTK-Doc V1.18 \ 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 index ca41eba..9c1f5a1 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html @@ -3,12 +3,12 @@ dccpserversink - + - + @@ -83,7 +83,7 @@ TCP and UDP.

-

Example pipeline

+

Example pipeline

@@ -124,7 +124,7 @@ to connect to the same server (see wait-connections property at dccpserversink).

Synopsis

-

Element Information

+

Element Information

@@ -147,7 +147,7 @@ to connect to the same server (see wait-connections property at dccpserversink).
-

Element Pads

+

Element Pads

@@ -254,6 +254,6 @@ dccpclientsink, dccpclientsrc, dccpserversrc + Generated by GTK-Doc V1.18 \ 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 index f29fbb6..c58f0ea 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html @@ -3,12 +3,12 @@ dccpserversrc - + - + @@ -85,7 +85,7 @@ TCP and UDP.

-

Example pipeline

+

Example pipeline

@@ -125,7 +125,7 @@ Run the server pipeline first than the client pipeline.

Synopsis

-

Element Information

+

Element Information

@@ -148,7 +148,7 @@ Run the server pipeline first than the client pipeline.
-

Element Pads

+

Element Pads

@@ -261,6 +261,6 @@ dccpclientsink, dccpclientsrc, dccpserversink + Generated by GTK-Doc V1.18 \ 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 index fc07f79..02a56e1 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html @@ -3,12 +3,12 @@ dfbvideosink - + - + @@ -77,174 +77,10 @@ GstDfbVideoSink implements

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

+

Element Information

@@ -267,7 +103,7 @@ main (int argc, char *argv[])
-

Element Pads

+

Element Pads

@@ -304,7 +140,6 @@ main (int argc, char *argv[])

struct GstDfbVideoSink

struct GstDfbVideoSink;

-The opaque GstDfbVideoSink structure.

@@ -365,6 +200,6 @@ The opaque
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ 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 index 0dc69df..d00f354 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-diffuse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-diffuse.html @@ -3,12 +3,12 @@ diffuse - + - + @@ -67,7 +67,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -90,7 +90,7 @@
-

Element Pads

+

Element Pads

@@ -264,6 +264,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 5ec0119..0185925 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dilate.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dilate.html @@ -3,12 +3,12 @@ dilate - + - + @@ -70,7 +70,7 @@ Dilate adjusts the colors of a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -88,7 +88,7 @@ Dilate adjusts the colors of a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +111,7 @@ Dilate adjusts the colors of a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -195,6 +195,6 @@ Dilate adjusts the colors of a video stream in realtime. + Generated by GTK-Doc V1.18 \ 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 index 53b21b8..814e40a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html @@ -3,12 +3,12 @@ directdrawsink - + - + @@ -42,35 +42,10 @@

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

+

Element Information

@@ -93,7 +68,7 @@ own internal window and render into it.
-

Element Pads

+

Element Pads

@@ -162,6 +137,6 @@ own internal window and render into it.

+ Generated by GTK-Doc V1.18 \ 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 index 1696985..08890ed 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dodge.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dodge.html @@ -3,12 +3,12 @@ dodge - + - + @@ -69,7 +69,7 @@ Dodge saturates the colors of a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -87,7 +87,7 @@ Dodge saturates the colors of a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +110,7 @@ Dodge saturates the colors of a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -187,6 +187,6 @@ Dodge saturates the colors of a video stream in realtime. + Generated by GTK-Doc V1.18 \ 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 index c3b4a43..3012710 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html @@ -3,12 +3,12 @@ dtmfdetect - + - + @@ -84,7 +84,7 @@ the following fields:

Synopsis

-

Element Information

+

Element Information

@@ -107,7 +107,7 @@ the following fields:
-

Element Pads

+

Element Pads

@@ -167,6 +167,6 @@ the following fields: + Generated by GTK-Doc V1.18 \ 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 index 9788f47..38dde38 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html @@ -3,12 +3,12 @@ dtmfsrc - + - + @@ -74,10 +74,10 @@ table:

----++++ @@ -100,7 +100,7 @@ with "method" which specified the output. - + @@ -149,10 +149,18 @@ gst_element_send_event (pipeline, event);

+

+When a DTMF tone actually starts or stop, a "dtmf-event-processed" +element GstMessage with the same fields as the "dtmf-event" +GstEvent that was used to request the event. Also, if any event +has not been processed when the element goes from the PAUSED to the +READY state, then a "dtmf-event-dropped" message is posted on the +GstBus in the order that they were received. +

Synopsis

-

Element Information

+

Element Information

Name
number G_TYPE_INT0-160-15 The event number.
@@ -175,7 +183,7 @@ gst_element_send_event (pipeline, event);
-

Element Pads

+

Element Pads

@@ -233,6 +241,6 @@ rtpdtmsrc, rtpdtmfmuxx + Generated by GTK-Doc V1.18 \ 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 index ad6faba..ec39dca 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html @@ -3,12 +3,12 @@ dtsdec - + - + @@ -50,7 +50,8 @@ GObject +----GstObject +----GstElement - +----GstDtsDec + +----GstAudioDecoder + +----GstDtsDec
@@ -61,42 +62,10 @@

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

+

Element Information

@@ -119,7 +88,7 @@ Digital Theatre System (DTS) audio decoder
-

Element Pads

+

Element Pads

@@ -192,6 +161,6 @@ Digital Theatre System (DTS) audio decoder + Generated by GTK-Doc V1.18 \ 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 index ecdf928..c3a035c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html @@ -3,12 +3,12 @@ dvbsrc - + - + @@ -41,7 +41,7 @@

Synopsis

-
struct              GstDvbSrc;
+
                    GstDvbSrc;
 
@@ -80,57 +80,15 @@ "polarity" gchar* : Read / Write / Construct "symbol-rate" guint : Read / Write "stats-reporting-interval" guint : Read / Write + "timeout" guint64 : 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

+

Element Information

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

Element Pads

+

Element Pads

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

Details

-

struct GstDvbSrc

-
struct GstDvbSrc;
+

GstDvbSrc

+
typedef struct _GstDvbSrc GstDvbSrc;

@@ -349,10 +307,17 @@ dvbsrc can be used to capture video from DVB cards, DVB-T, DVB-S or DVB-T.

The number of reads before reporting frontend stats.

Default value: 100

+
+
+

The "timeout" property

+
  "timeout"                  guint64               : Read / Write
+

Post a message after timeout microseconds (0 = disabled).

+

Default value: 1000000

+
+ Generated by GTK-Doc V1.18 \ 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 index 2afb521..bb9bb3a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html @@ -3,12 +3,12 @@ dvdspu - + - + @@ -59,7 +59,7 @@ DVD sub picture overlay element.

-

Example launch line

+

Example launch line

@@ -77,7 +77,7 @@ DVD sub picture overlay element.

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +100,7 @@ DVD sub picture overlay element.
-

Element Pads

+

Element Pads

@@ -185,6 +185,6 @@ DVD sub picture overlay element. + Generated by GTK-Doc V1.18 \ 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 index d10c5f5..f3959c7 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html @@ -3,12 +3,12 @@ edgedetect - + - + @@ -24,10 +24,6 @@ Top  |  Description -  |  - Object Hierarchy -  |  - Properties
@@ -41,54 +37,14 @@

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

+

Element Information

@@ -111,7 +67,7 @@ FIXME:Describe edgedetect here.
-

Element Pads

+

Element Pads

@@ -161,49 +117,10 @@ FIXME:Describe edgedetect here.

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

-
+ Generated by GTK-Doc V1.18 \ 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 index 62e9c33..f12e80d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-exclusion.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-exclusion.html @@ -3,12 +3,12 @@ exclusion - + - + @@ -70,7 +70,7 @@ Exclusion saturates the colors of a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -88,7 +88,7 @@ Exclusion saturates the colors of a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +111,7 @@ Exclusion saturates the colors of a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -196,6 +196,6 @@ Exclusion saturates the colors of a video stream in realtime. + Generated by GTK-Doc V1.18 \ 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 index 120efb3..32f3f00 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-faac.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-faac.html @@ -3,12 +3,12 @@ faac - + - + @@ -52,7 +52,8 @@ GObject +----GstObject +----GstElement - +----GstFaac + +----GstAudioEncoder + +----GstFaac
@@ -64,53 +65,22 @@ GstFaac implements

Properties

-  "bitrate"                  gint                  : Read / Write
-  "midside"                  gboolean              : Read / Write
+  "bitrate"                  gint                  : Read / Write / Construct
+  "midside"                  gboolean              : Read / Write / Construct
   "outputformat"             GstFaacOutputFormat   : Read / Write
   "profile"                  GstFaacProfile        : Read / Write
-  "shortctl"                 GstFaacShortCtl       : Read / Write
-  "tns"                      gboolean              : Read / Write
+  "shortctl"                 GstFaacShortCtl       : Read / Write / Construct
+  "tns"                      gboolean              : Read / Write / Construct
+  "quality"                  gint                  : Read / Write / Construct
+  "rate-control"             GstFaacBrtype         : Read / Write / Construct
 

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

+

Element Information

@@ -133,7 +103,7 @@ general use. The other profiles are very rarely used and often not supported.
-

Element Pads

+

Element Pads

@@ -151,7 +121,7 @@ general use. The other profiles are very rarely used and often not supported. - +

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 ]audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)[ 1, 6 ]
@@ -172,7 +142,11 @@ general use. The other profiles are very rarely used and often not supported.

details

-audio/mpeg, mpegversion=(int){ 4, 2 }, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 96000 ], stream-format=(string){ adts, raw } +audio/mpeg, mpegversion=(int)4, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, base-profile=(string){ main, lc, ssr, ltp } + + +

+ audio/mpeg, mpegversion=(int)2, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, profile=(string){ main, lc }
@@ -194,15 +168,15 @@ general use. The other profiles are very rarely used and often not supported.

Property Details

The "bitrate" property

-
  "bitrate"                  gint                  : Read / Write
-

Bitrate in bits/sec.

+
  "bitrate"                  gint                  : Read / Write / Construct
+

Average Bitrate (ABR) in bits/sec.

Allowed values: [8000,320000]

Default value: 128000


The "midside" property

-
  "midside"                  gboolean              : Read / Write
+
  "midside"                  gboolean              : Read / Write / Construct

Allow mid/side encoding.

Default value: TRUE

@@ -223,25 +197,36 @@ general use. The other profiles are very rarely used and often not supported.

The "shortctl" property

-
  "shortctl"                 GstFaacShortCtl       : Read / Write
+
  "shortctl"                 GstFaacShortCtl       : Read / Write / Construct

Block type encorcing.

Default value: SHORTCTL_NORMAL


The "tns" property

-
  "tns"                      gboolean              : Read / Write
+
  "tns"                      gboolean              : Read / Write / Construct

Use temporal noise shaping.

Default value: FALSE

+
+
+

The "quality" property

+
  "quality"                  gint                  : Read / Write / Construct
+

Variable bitrate (VBR) quantizer quality in %.

+

Allowed values: [1,1000]

+

Default value: 100

+
+
+
+

The "rate-control" property

+
  "rate-control"             GstFaacBrtype         : Read / Write / Construct
+

Encoding bitrate type (VBR/ABR).

+

Default value: VBR

-
-

See Also

-faad
+ Generated by GTK-Doc V1.18
\ 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 index 0aa7bc2..7b94063 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-faad.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-faad.html @@ -3,12 +3,12 @@ faad - + - + @@ -48,47 +48,16 @@ GObject +----GstObject +----GstElement - +----GstFaad + +----GstAudioDecoder + +----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

+

Element Information

@@ -111,7 +80,7 @@ faad decodes AAC (MPEG-4 part 3) stream.
-

Element Pads

+

Element Pads

@@ -129,7 +98,11 @@ faad decodes AAC (MPEG-4 part 3) stream. - + + + + +

details

audio/mpeg, mpegversion=(int){ 2, 4 }audio/mpeg, mpegversion=(int)2

audio/mpeg, mpegversion=(int)4, stream-format=(string){ raw, adts }
@@ -171,6 +144,6 @@ faad decodes AAC (MPEG-4 part 3) stream.
+ Generated by GTK-Doc V1.18
\ 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 index 3d85a3d..46d9101 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-faceblur.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-faceblur.html @@ -3,12 +3,12 @@ faceblur - + - + @@ -24,10 +24,6 @@ Top  |  Description -  |  - Object Hierarchy -  |  - Properties
@@ -41,51 +37,14 @@

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

+

Element Information

@@ -108,7 +67,7 @@ FIXME:Describe faceblur here.
-

Element Pads

+

Element Pads

@@ -158,25 +117,10 @@ FIXME:Describe faceblur here.

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"

-
+ Generated by GTK-Doc V1.18 \ 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 index 83e2de0..bfd10be 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-facedetect.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-facedetect.html @@ -3,12 +3,12 @@ facedetect - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Properties
@@ -39,49 +37,14 @@

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

+

Element Information

@@ -104,7 +67,7 @@ FIXME:Describe facedetect here.
-

Element Pads

+

Element Pads

@@ -154,93 +117,10 @@ FIXME:Describe facedetect here.

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

-
+ Generated by GTK-Doc V1.18 \ 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 index 0c45a44..7379de2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-festival.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-festival.html @@ -3,12 +3,12 @@ festival - + - + @@ -64,7 +64,7 @@ in server mode, started as

-

Example pipeline

+

Example pipeline

@@ -82,7 +82,7 @@ in server mode, started as

Synopsis

-

Element Information

+

Element Information

@@ -105,7 +105,7 @@ in server mode, started as


-

Element Pads

+

Element Pads

@@ -165,6 +165,6 @@ in server mode, started as

+ Generated by GTK-Doc V1.18 \ 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 index 9b1d4ce..232ebdc 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-fisheye.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-fisheye.html @@ -3,12 +3,12 @@ fisheye - + - + @@ -59,7 +59,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -71,7 +71,7 @@ - + @@ -82,7 +82,7 @@
-

Element Pads

+

Element Pads

author

Filippo Argiolas <filippo.argiolas@gmail.comFilippo Argiolas <filippo.argiolas@gmail.com>

class

@@ -246,6 +246,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b7d5ec0..bf764f2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html @@ -3,12 +3,12 @@ fpsdisplaysink - + - + @@ -94,7 +94,7 @@ Can display the current and average framerate as a testoverlay or on stdout.

-

Example launch lines

+

Example launch lines

@@ -118,7 +118,7 @@ gst-launch playbin2 uri

Synopsis

-

Element Information

+

Element Information

@@ -141,7 +141,7 @@ gst-launch playbin2 uri
-

Element Pads

+

Element Pads

@@ -302,6 +302,6 @@ Signals the application about the measured fps + Generated by GTK-Doc V1.18 \ 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 index 86006ce..cc4be87 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-freeze.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-freeze.html @@ -3,12 +3,12 @@ freeze - + - + @@ -67,7 +67,7 @@ Makes a stream from buffers of data.

-

Example launch line

+

Example launch line

@@ -89,7 +89,7 @@ Makes a stream from buffers of data.

Synopsis

-

Element Information

+

Element Information

@@ -112,7 +112,7 @@ Makes a stream from buffers of data.
-

Element Pads

+

Element Pads

@@ -181,6 +181,6 @@ Makes a stream from buffers of data. + Generated by GTK-Doc V1.18 \ 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 index e111f3a..886df87 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html @@ -3,12 +3,12 @@ gaussianblur - + - + @@ -66,7 +66,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -89,7 +89,7 @@
-

Element Pads

+

Element Pads

@@ -160,6 +160,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 5954ae5..4da0662 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html @@ -3,12 +3,12 @@ ivfparse - + - + @@ -56,7 +56,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -79,7 +79,7 @@
-

Element Pads

+

Element Pads

@@ -139,6 +139,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 5031fbc..4271180 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html @@ -3,12 +3,12 @@ jpegparse - + - + @@ -70,7 +70,7 @@ among others. Jpegparse can also extract metadata (e.g. xmp).

-

Example launch line

+

Example launch line

@@ -90,7 +90,7 @@ HTTP and stores it in a matroska file.

Synopsis

-

Element Information

+

Element Information

@@ -113,7 +113,7 @@ HTTP and stores it in a matroska file.
-

Element Pads

+

Element Pads

@@ -225,6 +225,6 @@ HTTP and stores it in a matroska file. + Generated by GTK-Doc V1.18 \ 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 index 2cbe98b..0037be9 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html @@ -3,12 +3,12 @@ kaleidoscope - + - + @@ -70,7 +70,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -93,7 +93,7 @@
-

Element Pads

+

Element Pads

@@ -281,6 +281,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 8d55b52..483aca8 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-katedec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-katedec.html @@ -3,12 +3,12 @@ katedec - + - + @@ -65,43 +65,10 @@

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

+

Element Information

@@ -124,7 +91,7 @@ gst-launch playbin uri=file:///tmp/test.ogg
-

Element Pads

+

Element Pads

@@ -228,13 +195,9 @@ gst-launch playbin uri=file:///tmp/test.ogg

Default value: FALSE

-
-

See Also

-oggdemux -
+ Generated by GTK-Doc V1.18 \ 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 index d9ebae6..ee31053 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-kateenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-kateenc.html @@ -3,12 +3,12 @@ kateenc - + - + @@ -77,34 +77,10 @@ GstKateEnc implements

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

+

Element Information

@@ -127,7 +103,7 @@ gst-launch dvdreadsrc ! dvddemux ! dvdsubparse ! kateenc category=spu-subtitles
-

Element Pads

+

Element Pads

@@ -268,13 +244,9 @@ gst-launch dvdreadsrc ! dvddemux ! dvdsubparse ! kateenc category=spu-subtitles

Default value: 0

-
-

See Also

-oggmux -
+ Generated by GTK-Doc V1.18 \ 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 index a7d228f..d7c0ebb 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-kateparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-kateparse.html @@ -3,12 +3,12 @@ kateparse - + - + @@ -33,7 +33,7 @@

kateparse

-

kateparse — parses kate streams

+

kateparse — parse raw kate streams

@@ -54,49 +54,10 @@

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

+

Element Information

@@ -119,7 +80,7 @@ as kate.ogg, but they should produce exactly the same decoded data.
-

Element Pads

+

Element Pads

@@ -181,17 +142,12 @@ as kate.ogg, but they should produce exactly the same decoded data.

struct GstKateParse

struct GstKateParse;

-Opaque data structure.

-
-

See Also

-katedec, vorbisparse, oggdemux, theoraparse -
+ Generated by GTK-Doc V1.18 \ 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 index 76ab82b..e7c8dc4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-katetag.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-katetag.html @@ -3,12 +3,12 @@ katetag - + - + @@ -37,7 +37,7 @@

katetag

-

katetag — retags kate streams

+

katetag — Retags kate streams

@@ -73,55 +73,10 @@ GstKateTag implements

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

+

Element Information

@@ -144,7 +99,7 @@ gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag language=pt_BR categ
-

Element Pads

+

Element Pads

@@ -206,7 +161,6 @@ gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag language=pt_BR categ

struct GstKateTag

struct GstKateTag;

-Opaque data structure.

@@ -242,13 +196,9 @@ Opaque data structure.

Default value: 0

-
-

See Also

-oggdemux, oggmux, kateparse, GstTagSetter -
+ Generated by GTK-Doc V1.18 \ 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 index c81a07e..00ef5ec 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-ladspa.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-ladspa.html @@ -3,12 +3,12 @@ ladspa - + - + @@ -31,7 +31,7 @@

ladspa

-

ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API)

+

ladspa

@@ -43,13 +43,6 @@

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. -

-

@@ -73,6 +66,6 @@ element classification.
+ Generated by GTK-Doc V1.18
\ 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 index 1dd18fd..914441f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html @@ -3,12 +3,12 @@ legacyresample - + - + @@ -69,7 +69,7 @@ a configurable windowing function to enhance quality.

-

Example launch line

+

Example launch line

@@ -91,7 +91,7 @@ Last reviewed on 2006-03-02 (0.10.4)

Synopsis

-

Element Information

+

Element Information

@@ -114,7 +114,7 @@ Last reviewed on 2006-03-02 (0.10.4)
-

Element Pads

+

Element Pads

@@ -209,6 +209,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ 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 index 55cc34e..4b5fbca 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-liveadder.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-liveadder.html @@ -3,12 +3,12 @@ liveadder - + - + @@ -75,7 +75,7 @@ Last reviewed on 2008-02-10 (0.10.11)

Synopsis

-

Element Information

+

Element Information

@@ -98,7 +98,7 @@ Last reviewed on 2008-02-10 (0.10.11)
-

Element Pads

+

Element Pads

@@ -180,6 +180,6 @@ adder + Generated by GTK-Doc V1.18 \ 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 index 969a595..a5083df 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-marble.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-marble.html @@ -3,12 +3,12 @@ marble - + - + @@ -70,7 +70,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -93,7 +93,7 @@
-

Element Pads

+

Element Pads

@@ -291,6 +291,6 @@ + Generated by GTK-Doc V1.18 \ 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 index d52a818..9f5dc7f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mimdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mimdec.html @@ -3,12 +3,12 @@ mimdec - + - + @@ -53,17 +53,10 @@

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

+

Element Information

@@ -86,7 +79,7 @@ Its fourcc is ML20.
-

Element Pads

+

Element Pads

@@ -147,13 +140,9 @@ Its fourcc is ML20.

-
-

See Also

-mimenc -
+ Generated by GTK-Doc V1.18 \ 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 index 35d962a..302acde 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mimenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mimenc.html @@ -3,12 +3,12 @@ mimenc - + - + @@ -61,25 +61,10 @@

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

+

Element Information

@@ -102,7 +87,7 @@ Its fourcc is ML20.
-

Element Pads

+

Element Pads

@@ -172,13 +157,9 @@ Its fourcc is ML20.

Default value: FALSE

-
-

See Also

-mimdec -
+ Generated by GTK-Doc V1.18 \ 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 index 8a4cba8..b76a5fc 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mirror.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mirror.html @@ -3,12 +3,12 @@ mirror - + - + @@ -67,7 +67,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -79,7 +79,7 @@ - + @@ -90,7 +90,7 @@
-

Element Pads

+

Element Pads

author

Filippo Argiolas <filippo.argiolas@gmail.comFilippo Argiolas <filippo.argiolas@gmail.com>

class

@@ -263,6 +263,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 48f5380..45e3e2d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-modplug.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-modplug.html @@ -3,12 +3,12 @@ modplug - + - + @@ -72,32 +72,10 @@

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

+

Element Information

@@ -120,7 +98,7 @@ library to decode tracked music in the MOD/S3M/XM/IT and related formats.
-

Element Pads

+

Element Pads

@@ -296,6 +274,6 @@ library to decode tracked music in the MOD/S3M/XM/IT and related formats. + Generated by GTK-Doc V1.18 \ 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 index de1bf3f..e4c7877 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html @@ -3,12 +3,12 @@ mpeg2enc - + - + @@ -102,58 +102,10 @@ GstMpeg2enc implements

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

+

Element Information

@@ -177,7 +129,7 @@ Ronald Bultje <rbultje@ronald.bitfreak.net>
-

Element Pads

+

Element Pads

@@ -491,13 +443,9 @@ Ronald Bultje <rbultje@ronald.bitfreak.net>

Default value: 0

-
-

See Also

-mpeg2dec -
+ Generated by GTK-Doc V1.18 \ 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 index 7158664..ce0c815 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mplex.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mplex.html @@ -3,12 +3,12 @@ mplex - + - + @@ -67,44 +67,10 @@

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

+

Element Information

@@ -118,7 +84,7 @@ pipeline stalling. +Mark Nauwelaerts <mnauw@users.sourceforge.net> @@ -129,7 +95,7 @@ Mark Nauwelaerts <mnauw@users.sourceforge.net
-

Element Pads

+

Element Pads

author

Andrew Stevens <andrew.stevens@nexgo.de> Ronald Bultje <rbultje@ronald.bitfreak.net> -Mark Nauwelaerts <mnauw@users.sourceforge.net

class

@@ -274,13 +240,9 @@ Mark Nauwelaerts <mnauw@users.sourceforge.net

Default value: FALSE

-
-

See Also

-mpeg2enc -
+ Generated by GTK-Doc V1.18 \ 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 index 1945d6c..66c2f18 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html @@ -3,12 +3,12 @@ mxfdemux - + - + @@ -57,7 +57,7 @@

Properties

   "package"                  gchar*                : Read / Write
-  "max-drift"                guint64               : Read / Write
+  "max-drift"                guint64               : Read / Write
   "structure"                GstStructure*         : Read
 
@@ -69,7 +69,7 @@ mxfdemux demuxes an MXF file into the different contained streams.

-

Example launch line

+

Example launch line

@@ -87,7 +87,7 @@ mxfdemux demuxes an MXF file into the different contained streams.

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +110,7 @@ mxfdemux demuxes an MXF file into the different contained streams.
-

Element Pads

+

Element Pads

@@ -178,7 +178,7 @@ mxfdemux demuxes an MXF file into the different contained streams.

The "max-drift" property

-
  "max-drift"                guint64               : Read / Write
+
  "max-drift"                guint64               : Read / Write

Maximum number of nanoseconds by which tracks can differ.

Allowed values: >= 100000000

Default value: 500000000

@@ -193,6 +193,6 @@ mxfdemux demuxes an MXF file into the different contained streams.
+ Generated by GTK-Doc V1.18 \ 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 index 2213765..2598003 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html @@ -3,12 +3,12 @@ mxfmux - + - + @@ -59,7 +59,7 @@ mxfmux muxes different streams into an MXF file.

-

Example launch line

+

Example launch line

@@ -77,7 +77,7 @@ mxfmux muxes different streams into an MXF file.

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +100,7 @@ mxfmux muxes different streams into an MXF file.
-

Element Pads

+

Element Pads

@@ -383,6 +383,6 @@ mxfmux muxes different streams into an MXF file. + Generated by GTK-Doc V1.18 \ 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 index e1de10d..fe9d13a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html @@ -3,12 +3,12 @@ mythtvsrc - + - + @@ -77,63 +77,10 @@ GstMythtvSrc implements

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

+

Element Information

@@ -156,7 +103,7 @@ and the last field is the database name (mythconverg).
-

Element Pads

+

Element Pads

@@ -245,13 +192,9 @@ and the last field is the database name (mythconverg).

Default value: 26

-
-

See Also

-nuvdemux -
+ Generated by GTK-Doc V1.18 \ 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 index f5910dc..855d85f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html @@ -3,12 +3,12 @@ nuvdemux - + - + @@ -63,7 +63,7 @@ This element currently only supports pull-based scheduling.

-

Example launch line

+

Example launch line

@@ -84,7 +84,7 @@ right decoder elements/plugins installed.

Synopsis

-

Element Information

+

Element Information

@@ -107,7 +107,7 @@ right decoder elements/plugins installed.
-

Element Pads

+

Element Pads

@@ -192,6 +192,6 @@ mythtvsrc + Generated by GTK-Doc V1.18 \ 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 index 9deaeea..b54683b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html @@ -3,12 +3,12 @@ opencvtextoverlay - + - + @@ -59,31 +59,10 @@ struct

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

+

Element Information

@@ -106,7 +85,7 @@ opencvtextoverlay renders the text on top of the video frames
-

Element Pads

+

Element Pads

@@ -263,6 +242,6 @@ opencvtextoverlay renders the text on top of the video frames + Generated by GTK-Doc V1.18 \ 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 index 52d5f6d..3286c10 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html @@ -3,12 +3,12 @@ pcapparse - + - + @@ -61,20 +61,21 @@ "src-ip" gchar* : Read / Write "src-port" gint : Read / Write "caps" GstCaps* : Read / Write + "ts-offset" gint64 : Read / Write

Description

-Extracts payloads from Ethernet-encapsulated IP packets, currently limited -to UDP. Use "src-ip", "dst-ip", +Extracts payloads from Ethernet-encapsulated IP packets. +Use "src-ip", "dst-ip", "src-port" and "dst-port" to restrict which packets should be included.

-

Example pipelines

+

Example pipelines

@@ -95,7 +96,7 @@ depayload and decode them.

Synopsis

-

Element Information

+

Element Information

@@ -118,7 +119,7 @@ depayload and decode them.
-

Element Pads

+

Element Pads

@@ -213,10 +214,18 @@ GstPcapParse element.
  "caps"                     GstCaps*              : Read / Write

The caps of the source pad.

+
+
+

The "ts-offset" property

+
  "ts-offset"                gint64                : Read / Write
+

Relative timestamp offset (ns) to apply (-1 = use absolute packet time).

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+ Generated by GTK-Doc V1.18 \ 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 index 4cbdade..770bc2b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-pinch.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-pinch.html @@ -3,12 +3,12 @@ pinch - + - + @@ -68,7 +68,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -91,7 +91,7 @@
-

Element Pads

+

Element Pads

@@ -265,6 +265,6 @@ + Generated by GTK-Doc V1.18 \ 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 index ef14384..acb4e37 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html @@ -3,12 +3,12 @@ aiff - + - - + + @@ -17,7 +17,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
@@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index aaa459d..35cb47d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html @@ -3,17 +3,17 @@ assrender - + - + - +
- + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html new file mode 100644 index 0000000..7855fba --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html @@ -0,0 +1,88 @@ + + + + +audiovisualizers + + + + + + + + + +
+ + + + + + +
+
+
+ + +
+

audiovisualizers

+

audiovisualizers — Creates video visualizations of audio input

+
+
+

Plugin Information

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

filename

libgstaudiovisualizers.so

version

0.10.23

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

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

spacescope

Simple stereo visualizer

spectrascope

Simple frequency spectrum scope

synaescope

Creates video visualizations of audio input, using stereo and pitch information

wavescope

Simple waveform oscilloscope
+
+
+ + + \ 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 index 66e26ff..46d6387 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html @@ -3,17 +3,17 @@ autoconvert - + - + - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 7e1348c..2508c07 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html @@ -3,12 +3,12 @@ bayer - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 43e89be..bf5d269 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html @@ -3,12 +3,12 @@ bz2 - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index d5059e3..8411ebf 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html @@ -3,12 +3,12 @@ camerabin - + - - + + @@ -17,7 +17,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
@@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin2.html new file mode 100644 index 0000000..2d611b7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin2.html @@ -0,0 +1,84 @@ + + + + +camerabin2 + + + + + + + + + +
+ + + + + + +
+
+
+ + +
+

camerabin2

+

camerabin2 — camerabin2

+
+
+

Plugin Information

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

filename

libgstcamerabin2.so

version

0.10.23

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

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

camerabin2

CameraBin2

viewfinderbin

Viewfinder Bin used in camerabin2

wrappercamerabinsrc

V4l2 camera src element for camerabin
+
+
+ + + \ 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 index 66dbe36..ffaa784 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html @@ -3,17 +3,17 @@ cdaudio - + - + - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6e5cd9c..c39a1c5 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html @@ -3,12 +3,12 @@ cdxaparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index fa07568..8b36923 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html @@ -3,12 +3,12 @@ celt - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9a4debb..e104124 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html @@ -3,12 +3,12 @@ coloreffects - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 84df30e..0cc3ddb 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html @@ -3,12 +3,12 @@ curl - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index e673492..92b6a44 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html @@ -3,12 +3,12 @@ dataurisrc - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 5ae6382..afdb39c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html @@ -3,12 +3,12 @@ dccp - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 1ecfe06..cceba63 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html @@ -3,12 +3,12 @@ debugutilsbad - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -70,6 +70,14 @@ + + + + + + + + @@ -79,6 +87,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 3b004b3..dbf99d4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html @@ -3,12 +3,12 @@ dfbvideosink - + - + @@ -29,7 +29,7 @@
FIXME

compare

Compares incoming buffers

debugspy

DebugSpy provides information on buffers with bus messages

fpsdisplaysink

Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 81a1d88..3577454 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html @@ -3,12 +3,12 @@ dirac - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 2437299..a1ccb8d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html @@ -3,12 +3,12 @@ directdraw - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -57,7 +57,7 @@
-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 861d069..1074149 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html @@ -3,12 +3,12 @@ dtmf - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -70,7 +70,7 @@ - + @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 848a837..9957e32 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html @@ -3,12 +3,12 @@ dtsdec - + - + @@ -29,7 +29,7 @@
Generates DTMF tones

rtpdtmfdepay

rtpdtmfdepay

Generates DTMF Sound from telephone-event RTP packets
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 68a5445..ed7e513 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html @@ -3,12 +3,12 @@ dvb - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index be8da43..a66e08b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html @@ -3,12 +3,12 @@ dvdspu - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b2bd5c0..071c845 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html @@ -3,12 +3,12 @@ faac - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index db4fa54..93cf1ac 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html @@ -3,12 +3,12 @@ faad - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 885ec20..4a7a00e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html @@ -3,12 +3,12 @@ fbdevsink - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index f8fc617..6a21f75 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html @@ -3,12 +3,12 @@ festival - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 44fb37c..c5902c4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html @@ -3,12 +3,12 @@ filter - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -57,7 +57,7 @@
-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 3fd6819..12e3d11 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html @@ -3,12 +3,12 @@ freeze - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b1db996..9b8e42e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html @@ -3,12 +3,12 @@ frei0r - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -182,6 +182,10 @@ + + + + @@ -415,6 +419,6 @@ D = 255 - (255 - A) * (255 - B) + Generated by GTK-Doc V1.18 \ 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 index bb8298f..1746df4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html @@ -3,12 +3,12 @@ gaudieffects - + - + @@ -29,7 +29,7 @@
broken tv

frei0r-filter-opencvfacedetect

detect faces

frei0r-filter-perspective

Distorts the image for a pseudo perspective
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -95,6 +95,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 15ea720..aea260d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html @@ -3,12 +3,12 @@ geometrictransform - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -95,7 +95,7 @@ - + @@ -127,6 +127,6 @@ + Generated by GTK-Doc V1.18 \ 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 index bbebf63..07996a1 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html @@ -3,12 +3,12 @@ gsm - + - + @@ -29,7 +29,7 @@

rotate

Warps the picture into an arc shaped formRotates the picture by an arbitrary angle

sphere

-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index e6171af..2935086 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html @@ -3,12 +3,12 @@ h264parse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6d76b9a..c3a1fe8 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html @@ -3,12 +3,12 @@ ivfparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 1d9784e..d2d8858 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html @@ -3,12 +3,12 @@ jpegformat - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a1dca29..d92fd82 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html @@ -3,12 +3,12 @@ kate - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -87,6 +87,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6c782d5..0833d67 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html @@ -3,12 +3,12 @@ ladspa - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -659,6 +659,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 0252f57..d910c81 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html @@ -3,12 +3,12 @@ legacyresample - + - - + + @@ -17,7 +17,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
@@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 7efff03..f2d7a9e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html @@ -3,12 +3,12 @@ liveadder - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index c12dec7..4b28604 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html @@ -3,12 +3,12 @@ lv2 - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,11 +57,111 @@

version

0.10.19.10.10.22.1

run-time license

-

Elements

+

Elements

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -139,6 +239,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9519611..c2be3a0 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html @@ -3,12 +3,12 @@ mimic - + - + @@ -29,7 +29,7 @@

calf-sourceforge-net-plugins-BassEnhancer

Calf Bass Enhancer

calf-sourceforge-net-plugins-Compressor

Calf Compressor

calf-sourceforge-net-plugins-Deesser

Calf Deesser

calf-sourceforge-net-plugins-Equalizer12Band

Calf Equalizer 12 Band

calf-sourceforge-net-plugins-Equalizer5Band

Calf Equalizer 5 Band

calf-sourceforge-net-plugins-Equalizer8Band

Calf Equalizer 8 Band

calf-sourceforge-net-plugins-Exciter

Calf Exciter

calf-sourceforge-net-plugins-Filter

Calf Filter

calf-sourceforge-net-plugins-Filterclavier

Calf Filterclavier

calf-sourceforge-net-plugins-Flanger

Calf Flanger

calf-sourceforge-net-plugins-Fluidsynth

Calf Fluidsynth

calf-sourceforge-net-plugins-Gate

Calf Gate

calf-sourceforge-net-plugins-Monosynth

Calf Monosynth

calf-sourceforge-net-plugins-MultiChorus

Calf MultiChorus

calf-sourceforge-net-plugins-Multibandcompressor

Calf Multiband Compressor

calf-sourceforge-net-plugins-Organ

Calf Organ

calf-sourceforge-net-plugins-Phaser

Calf Phaser

calf-sourceforge-net-plugins-Pulsator

Calf Pulsator

calf-sourceforge-net-plugins-Reverb

Calf Reverb

calf-sourceforge-net-plugins-RotarySpeaker

Calf Rotary Speaker

calf-sourceforge-net-plugins-Saturator

Calf Saturator

calf-sourceforge-net-plugins-Sidechaincompressor

Calf Sidechain Compressor

calf-sourceforge-net-plugins-Sidechaingate

Calf Sidechain Gate

calf-sourceforge-net-plugins-VintageDelay

Calf Vintage Delay

calf-sourceforge-net-plugins-Wavetable

Calf Wavetable

invadarecords-com-plugins-lv2-compressor-mono

Invada Compressor (mono)
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 154c1f7..0da865b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html @@ -3,12 +3,12 @@ mms - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 8ef7a93..264a846 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html @@ -3,12 +3,12 @@ modplug - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 89ebea1..80935d7 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html @@ -3,12 +3,12 @@ mpeg2enc - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index eff9b11..10bea74 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html @@ -3,12 +3,12 @@ mpeg4videoparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.22.1

run-time license

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins git

origin

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index d0d8461..5da172f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html @@ -3,12 +3,12 @@ mpegdemux2 - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 32009dd..e6567ea 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html @@ -3,12 +3,12 @@ mpegpsmux - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 7dd050c..0e08065 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html @@ -3,12 +3,12 @@ mpegtsmux - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 60f02d7..525ba80 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html @@ -3,12 +3,12 @@ mpegvideoparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,11 +57,11 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

- +

mpegvideoparse

legacympegvideoparse

Parses and frames MPEG-1 and MPEG-2 elementary video streams
@@ -69,6 +69,6 @@
+ Generated by GTK-Doc V1.18
\ 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 index c8676ad..3ee3674 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html @@ -3,12 +3,12 @@ mplex - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 330557d..452b296 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html @@ -3,12 +3,12 @@ musepack - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 97af081..9c90968 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html @@ -3,12 +3,12 @@ musicbrainz - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index ad4aa79..75f778c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html @@ -3,12 +3,12 @@ mve - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6449818..79d2516 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html @@ -3,12 +3,12 @@ mxf - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a2145f1..68edc73 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html @@ -3,12 +3,12 @@ nas - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.22.1

run-time license

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins git

origin

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index ea47b45..1a9a784 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html @@ -3,12 +3,12 @@ neon - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index d53651d..6bb4a2f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html @@ -3,12 +3,12 @@ nsf - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index c0c6f6a..3f31fab 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html @@ -3,12 +3,12 @@ nuvdemux - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index cd5687b..0b283ba 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html @@ -3,12 +3,12 @@ opencv - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.22.1

run-time license

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins git

origin

-

Elements

+

Elements

@@ -115,6 +115,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 747a8a1..57920d0 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html @@ -3,12 +3,12 @@ pcapparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,18 +57,24 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

- + + + + + + - + +

irtspparse

Parses a raw interleaved RTSP stream

pcapparse

Parses a raw pcap stream
+ Generated by GTK-Doc V1.18
\ 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 index 8ec8388..f0a619c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html @@ -3,12 +3,12 @@ rawparse - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b09dd0d..db7762f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html @@ -3,12 +3,12 @@ real - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6965716..ee4162a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html @@ -3,12 +3,12 @@ rfbsrc - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 40262b2..8ed8560 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html @@ -3,12 +3,12 @@ rsvg - + - - + + @@ -17,7 +17,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
@@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html new file mode 100644 index 0000000..83cacd1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html @@ -0,0 +1,80 @@ + + + + +rtmp + + + + + + + + + +
+ + + + + + +
+
+
+ + +
+

rtmp

+

rtmp — RTMP source and sink

+
+
+

Plugin Information

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

filename

libgstrtmp.so

version

0.10.23

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

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

rtmpsink

Sends FLV content to a server via RTMP

rtmpsrc

Read RTMP streams
+
+
+ + + \ 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 index 79df05f..aeb23d2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html @@ -3,17 +3,17 @@ rtpmux - + - + - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index f4b015a..130cee7 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html @@ -3,12 +3,12 @@ scaletempo - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9f562ab..26b55ee 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html @@ -3,12 +3,12 @@ sdl - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.22.1

run-time license

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins git

origin

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 40ddbe7..2c7bcad 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html @@ -3,12 +3,12 @@ sdp - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index ac56efb..29a7b6a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html @@ -3,12 +3,12 @@ shm - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a5e5f59..08556f5 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html @@ -3,12 +3,12 @@ sndfile - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a4c9a5d..cd92dc8 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html @@ -3,12 +3,12 @@ soundtouch - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a4599e4..3894198 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html @@ -3,12 +3,12 @@ spcdec - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -57,7 +57,7 @@
-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index c18096c..4d4a052 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html @@ -3,12 +3,12 @@ speed - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 40210ee..c63b105 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html @@ -3,12 +3,12 @@ stereo - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 1bec8c3..115a4d2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html @@ -3,12 +3,12 @@ swfdec - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -57,7 +57,7 @@
-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index fd47f31..eab9747 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html @@ -3,12 +3,12 @@ timidity - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,17 +47,17 @@ - + - +

version

0.10.14.10.10.22.1

run-time license

package

GStreamer Bad Plug-ins git/prereleaseGStreamer Bad Plug-ins git

origin

http://gstreamer.freedesktop.orgUnknown package origin
-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index ab82d6e..754979a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html @@ -3,12 +3,12 @@ tta - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 6e0d20e..49c3989 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html @@ -3,12 +3,12 @@ vcdsrc - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 64b2ab7..d461fc8 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html @@ -3,12 +3,12 @@ videomaxrate - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index c77945a..8b3b6a2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html @@ -3,12 +3,12 @@ videosignal - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9c45f47..145bf3c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html @@ -3,12 +3,12 @@ vmnc - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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-voaacenc.html similarity index 60% rename from docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html rename to docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html index 249a270..fd59b58 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html @@ -2,52 +2,52 @@ -amrwbenc - +voaacenc + - - - + + +
- + - +
-
+
-

amrwbenc

-

amrwbenc — Adaptive Multi-Rate Wide-Band Encoder

+

voaacenc

+

voaacenc — AAC audio encoder

-

Plugin Information

+

Plugin Information

- + - + - + - + @@ -57,18 +57,18 @@

filename

libgstamrwbenc.solibgstvoaacenc.so

version

0.10.220.10.21.2

run-time license

unknownLGPL

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins prerelease

origin

-

Elements

+

Elements

- - + +

amrwbenc

Adaptive Multi-Rate Wideband audio encoder

voaacenc

AAC audio encoder
+ Generated by GTK-Doc V1.18
\ 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 index 733791e..c920c2f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html @@ -3,17 +3,17 @@ vp8 - + - + - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 1c9ae56..2c10eab 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html @@ -3,12 +3,12 @@ wildmidi - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 66a53a0..1a325f8 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html @@ -3,12 +3,12 @@ xvid - + - - + + @@ -17,7 +17,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
@@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.23

run-time license

-

Elements

+

Elements

@@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b03f64e..817bb7d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html @@ -3,12 +3,12 @@ zbar - + - + @@ -29,7 +29,7 @@
-

Plugin Information

+

Plugin Information

@@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

version

0.10.220.10.22.1

run-time license

package

GStreamer Bad Plug-ins source releaseGStreamer Bad Plug-ins git

origin

-

Elements

+

Elements

@@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 5d84cc8..c5e5c5f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html @@ -3,12 +3,12 @@ pyramidsegment - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Properties
@@ -40,45 +38,14 @@

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

+

Element Information

@@ -101,7 +68,7 @@ FIXME:Describe pyramidsegment here.
-

Element Pads

+

Element Pads

@@ -157,67 +124,10 @@ FIXME:Describe pyramidsegment here.

-
-
-

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

-
+ Generated by GTK-Doc V1.18 \ 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 index 6adeee7..13a2503 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html @@ -3,12 +3,12 @@ rsvgdec - + - + @@ -53,31 +53,10 @@

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

+

Element Information

@@ -100,7 +79,7 @@ This elements renders SVG graphics.
-

Element Pads

+

Element Pads

@@ -164,6 +143,6 @@ This elements renders SVG graphics. + Generated by GTK-Doc V1.18 \ 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 index ecb79d5..aae73b2 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html @@ -3,12 +3,12 @@ rsvgoverlay - + - - + + @@ -18,7 +18,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
Top @@ -73,77 +73,10 @@

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

+

Element Information

@@ -166,7 +99,7 @@ height-/width-relative to 1.0. and all other attributes to 0.
-

Element Pads

+

Element Pads

@@ -249,7 +182,6 @@ height-/width-relative to 1.0. and all other attributes to 0.

struct GstRsvgOverlay

struct GstRsvgOverlay;

-Opaque object data structure.

@@ -339,6 +271,6 @@ Opaque object data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html new file mode 100644 index 0000000..3e994ea --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html @@ -0,0 +1,149 @@ + + + + +rtmpsink + + + + + + + + + +
+ + + + + + + + + +
+
+
+ + +
+

rtmpsink

+

rtmpsink — Sends FLV content to a server via RTMP

+
+
+

Synopsis

+
struct              GstRTMPSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstRTMPSink
+
+
+
+

Implemented Interfaces

+

+GstRTMPSink implements + GstURIHandler.

+
+
+

Properties

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

Description

+
+

Synopsis

+
+

Element Information

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

plugin

+ rtmp +

author

Jan Schmidt <thaytan@noraisin.net>

class

Sink/Network
+
+
+
+

Element Pads

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

name

sink

direction

sink

presence

always

details

video/x-flv
+
+
+

+

+
+
+

Details

+
+

struct GstRTMPSink

+
struct GstRTMPSink;
+

+

+
+
+
+

Property Details

+
+

The "location" property

+
  "location"                 gchar*                : Read / Write
+

Location of the file to read.

+

Default value: NULL

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

rtmpsrc

+

rtmpsrc — Read RTMP streams

+
+
+

Synopsis

+
struct              GstRTMPSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstRTMPSrc
+
+
+
+

Implemented Interfaces

+

+GstRTMPSrc implements + GstURIHandler.

+
+
+

Properties

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

Description

+
+

Synopsis

+
+

Element Information

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

plugin

+ rtmp +

author

Bastien Nocera <hadess@hadess.net>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Source/File
+
+
+
+

Element Pads

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

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstRTMPSrc

+
struct GstRTMPSrc;
+

+

+
+
+
+

Property Details

+
+

The "location" property

+
  "location"                 gchar*                : Read / Write
+

Location of the file to read.

+

Default value: NULL

+
+
+
+ + + \ 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 deleted file mode 100644 index 4743b5e..0000000 --- a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - -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 index 6a7fad6..9090736 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html @@ -3,12 +3,12 @@ rtpdtmfmux - + - + @@ -77,7 +77,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +100,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.
-

Element Pads

+

Element Pads

@@ -232,6 +232,6 @@ rtpdtmfsrc, dtmfsrc, rtpmux + Generated by GTK-Doc V1.18 \ 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 index a5516fd..67cdf69 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html @@ -3,18 +3,18 @@ rtpdtmfsrc - + - + - +
- + @@ -82,10 +82,10 @@ table:

----++++ @@ -108,7 +108,7 @@ with "method" which specified the output. - + @@ -157,10 +157,18 @@ gst_element_send_event (pipeline, event);

+

+When a DTMF tone actually starts or stop, a "dtmf-event-processed" +element GstMessage with the same fields as the "dtmf-event" +GstEvent that was used to request the event. Also, if any event +has not been processed when the element goes from the PAUSED to the +READY state, then a "dtmf-event-dropped" message is posted on the +GstBus in the order that they were received. +

Synopsis

-

Element Information

+

Element Information

Name
number G_TYPE_INT0-160-15 The event number.
@@ -183,7 +191,7 @@ gst_element_send_event (pipeline, event);
-

Element Pads

+

Element Pads

@@ -301,6 +309,6 @@ dtmfsrc, rtpdtmfdepay, rtpdtmfmux + Generated by GTK-Doc V1.18 \ 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 index bb43e86..3e4bc08 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html @@ -3,12 +3,12 @@ rtpmux - + - + @@ -72,7 +72,7 @@ muxes into a single stream with a single SSRC.

-

Example pipelines

+

Example pipelines

@@ -106,7 +106,7 @@ Last reviewed on 2010-09-30 (0.10.21)

Synopsis

-

Element Information

+

Element Information

@@ -129,7 +129,7 @@ Last reviewed on 2010-09-30 (0.10.21)
-

Element Pads

+

Element Pads

@@ -226,6 +226,6 @@ rtpdtmfmux + Generated by GTK-Doc V1.18 \ 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 index 8a6299e..544c9f3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html @@ -3,12 +3,12 @@ scaletempo - + - + @@ -66,10 +66,6 @@

Description

-

-
-

Example pipelines

-

Scale tempo while maintaining pitch (WSOLA-like technique with cross correlation) Inspired by SoundTouch library by Olli Parviainen @@ -79,33 +75,58 @@ 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
-
+
+

Example pipelines

+

+

+
+
+ + + + + + +
1
+2
+3
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"
-
+
+ + + + + + + +
1
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 works by producing audio in constant sized chunks +("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"). +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. +for the best overlap position. Scaletempo uses a statistical cross +correlation (roughly a dot-product). Scaletempo consumes most of its CPU +cycles here. One can use the "search" propery to tune how far +the algoritm looks.

@@ -113,7 +134,7 @@ for the best overlap position. Scaletempo uses a statistical cross correlation

Synopsis

-

Element Information

+

Element Information

@@ -136,7 +157,7 @@ for the best overlap position. Scaletempo uses a statistical cross correlation
-

Element Pads

+

Element Pads

@@ -238,6 +259,6 @@ for the best overlap position. Scaletempo uses a statistical cross correlation + Generated by GTK-Doc V1.18 \ 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 index defb455..d9d3a31 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html @@ -3,12 +3,12 @@ sdlaudiosink - + - + @@ -24,8 +24,6 @@ Top  |  Description -  |  - Object Hierarchy
@@ -39,19 +37,7 @@

Synopsis

-
struct              GstSDLAudioSink;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseSink
-                     +----GstBaseAudioSink
-                           +----GstAudioSink
-                                 +----GstSDLAudioSink
+
struct              GstSDLAudioSink;
 
@@ -59,7 +45,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +68,7 @@
-

Element Pads

+

Element Pads

@@ -116,8 +102,20 @@

Details

-

struct GstSDLAudioSink

-
struct GstSDLAudioSink;
+

struct GstSDLAudioSink

+
struct GstSDLAudioSink {
+  GstAudioSink    sink;
+
+  SDL_AudioSpec fmt;
+  guint8 *buffer;
+
+  gstsdl_semaphore semA;
+
+  gstsdl_semaphore semB;
+
+  gboolean eos;
+};
+

@@ -125,6 +123,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index 0e13f12..603db97 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html @@ -3,12 +3,12 @@ sdlvideosink - + - + @@ -25,8 +25,6 @@  |  Description  |  - Object Hierarchy -  |  Implemented Interfaces  |  Properties @@ -43,18 +41,7 @@

Synopsis

-
struct              GstSDLVideoSink;
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GstObject
-         +----GstElement
-               +----GstBaseSink
-                     +----GstVideoSink
-                           +----GstSDLVideoSink
+
struct              GstSDLVideoSink;
 
@@ -74,7 +61,7 @@ GstSDLVideoSink implements

Synopsis

-

Element Information

+

Element Information

@@ -97,7 +84,7 @@ GstSDLVideoSink implements
-

Element Pads

+

Element Pads

@@ -143,8 +130,31 @@ GstSDLVideoSink implements

Details

-

struct GstSDLVideoSink

-
struct GstSDLVideoSink;
+

struct GstSDLVideoSink

+
struct GstSDLVideoSink {
+  GstVideoSink videosink;
+
+  guint32 format;       /* the SDL format                      */
+  guint32 fourcc;       /* our fourcc from the caps            */
+
+  gint width, height;   /* the size of the incoming YUV stream */
+  unsigned long xwindow_id;
+  gboolean is_xwindows;
+  
+  gint framerate_n;
+  gint framerate_d;
+
+  gboolean full_screen;
+  gboolean init;
+  gboolean running;
+  GThread *event_thread;
+  SDL_Surface *screen;
+  SDL_Overlay *overlay;
+  SDL_Rect rect;
+
+  GMutex *lock;
+};
+

@@ -161,6 +171,6 @@ GstSDLVideoSink implements
+ Generated by GTK-Doc V1.18 \ 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 index 8023316..f8e1c41 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html @@ -3,12 +3,12 @@ sdpdemux - + - + @@ -67,7 +67,7 @@ GstSDPDemux implements
   "debug"                    gboolean              : Read / Write / Construct
   "latency"                  guint                 : Read / Write / Construct
-  "timeout"                  guint64               : Read / Write / Construct
+  "timeout"                  guint64               : Read / Write / Construct
   "redirect"                 gboolean              : Read / Write / Construct
 
@@ -92,7 +92,7 @@ PLAYING state.

-

Example launch line

+

Example launch line

@@ -114,7 +114,7 @@ Last reviewed on 2007-10-01 (0.10.6)

Synopsis

-

Element Information

+

Element Information

@@ -137,7 +137,7 @@ Last reviewed on 2007-10-01 (0.10.6)
-

Element Pads

+

Element Pads

@@ -212,7 +212,7 @@ Last reviewed on 2007-10-01 (0.10.6)

The "timeout" property

-
  "timeout"                  guint64               : Read / Write / Construct
+
  "timeout"                  guint64               : Read / Write / Construct

Fail transport after UDP timeout microseconds (0 = disabled).

Default value: 10000000

@@ -227,6 +227,6 @@ Last reviewed on 2007-10-01 (0.10.6) + Generated by GTK-Doc V1.18 \ 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 index 5a9de6c..4e19a1b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-shmsink.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-shmsink.html @@ -3,12 +3,12 @@ shmsink - + - + @@ -63,6 +63,7 @@ "shm-size" guint : Read / Write "socket-path" gchar* : Read / Write "wait-for-connection" gboolean : Read / Write + "buffer-time" guint64 : Read / Write / Construct
@@ -77,7 +78,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +101,7 @@
-

Element Pads

+

Element Pads

@@ -166,6 +167,13 @@

Block the stream until the shm pipe is connected.

Default value: TRUE

+
+
+

The "buffer-time" property

+
  "buffer-time"              guint64               : Read / Write / Construct
+

Maximum Size of the shm buffer in nanoseconds (-1 to disable).

+

Default value: 18446744073709551615

+

Signal Details

@@ -216,6 +224,6 @@
+ Generated by GTK-Doc V1.18 \ 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 index f61a89a..6b7d1a7 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html @@ -3,12 +3,12 @@ shmsrc - + - + @@ -67,7 +67,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -79,7 +79,7 @@ - + @@ -90,7 +90,7 @@
-

Element Pads

+

Element Pads

author

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

class

@@ -145,6 +145,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 935e73c..8fdd761 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-solarize.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-solarize.html @@ -3,12 +3,12 @@ solarize - + - - + + @@ -18,7 +18,7 @@ - +
Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
Top @@ -72,7 +72,7 @@ Solarize does a smart inverse in a video stream in realtime.

-

Example launch line

+

Example launch line

@@ -90,7 +90,7 @@ Solarize does a smart inverse in a video stream in realtime.

Synopsis

-

Element Information

+

Element Information

@@ -113,7 +113,7 @@ Solarize does a smart inverse in a video stream in realtime.
-

Element Pads

+

Element Pads

@@ -214,6 +214,6 @@ Solarize does a smart inverse in a video stream in realtime. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-spacescope.html b/docs/plugins/html/gst-plugins-bad-plugins-spacescope.html new file mode 100644 index 0000000..834a326 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-spacescope.html @@ -0,0 +1,188 @@ + + + + +spacescope + + + + + + + + + +
+ + + + + + + + + +
+
+
+ + +
+

spacescope

+

spacescope — Simple stereo visualizer

+
+
+

Synopsis

+
struct              GstSpaceScope;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseAudioVisualizer
+                     +----GstSpaceScope
+
+
+
+

Properties

+
+  "style"                    GstSpaceScopeStyle    : Read / Write / Construct
+
+
+
+

Description

+

+Spacescope is a simple audio visualisation element. It maps the left and +right channel to x and y coordinates. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch audiotestsrc ! audioconvert ! spacescope ! ximagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

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

plugin

+ audiovisualizers +

author

Stefan Kost <ensonic@users.sf.net>

class

Visualization
+
+
+
+

Element Pads

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

name

sink

direction

sink

presence

always

details

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

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 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSpaceScope

+
struct GstSpaceScope;
+

+

+
+
+
+

Property Details

+
+

The "style" property

+
  "style"                    GstSpaceScopeStyle    : Read / Write / Construct
+

Drawing styles for the space scope display.

+

Default value: draw dots (default)

+
+
+
+

See Also

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

spectrascope

+

spectrascope — Simple frequency spectrum scope

+
+
+

Synopsis

+
struct              GstSpectraScope;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseAudioVisualizer
+                     +----GstSpectraScope
+
+
+
+

Description

+

+Spectrascope is a simple spectrum visualisation element. It renders the +frequency spectrum as a series of bars. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch audiotestsrc ! audioconvert ! spectrascope ! ximagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

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

plugin

+ audiovisualizers +

author

Stefan Kost <ensonic@users.sf.net>

class

Visualization
+
+
+
+

Element Pads

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

name

sink

direction

sink

presence

always

details

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

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 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSpectraScope

+
struct GstSpectraScope;
+

+

+
+
+
+

See Also

+goom +
+
+ + + \ 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 index 8eed5cc..c5b5de3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-speed.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-speed.html @@ -3,18 +3,18 @@ speed - + - + - + - + @@ -62,7 +62,7 @@

Description

-Plays an audio stream at a different speed. +Plays an audio stream at a different speed (by resampling the audio).

Do not use this element. Either use the 'pitch' element, or do a seek with @@ -73,7 +73,7 @@ requires a fairly up-to-date gst-plugins-base, as of February 2007).

-

Example launch line

+

Example launch line

@@ -94,7 +94,7 @@ Last reviewed on 2007-02-26 (0.10.4.1)

Synopsis

-

Element Information

+

Element Information

@@ -117,7 +117,7 @@ Last reviewed on 2007-02-26 (0.10.4.1)
-

Element Pads

+

Element Pads

@@ -195,6 +195,6 @@ Last reviewed on 2007-02-26 (0.10.4.1) + Generated by GTK-Doc V1.18 \ 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 index 33c5fe9..020b2d4 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-sphere.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-sphere.html @@ -3,12 +3,12 @@ sphere - + - + @@ -68,7 +68,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -91,7 +91,7 @@
-

Element Pads

+

Element Pads

@@ -264,6 +264,6 @@ + Generated by GTK-Doc V1.18 \ 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 index b9953c6..c829f18 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-square.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-square.html @@ -3,12 +3,12 @@ square - + - + @@ -69,7 +69,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -81,7 +81,7 @@ - + @@ -92,7 +92,7 @@
-

Element Pads

+

Element Pads

author

Filippo Argiolas <filippo.argiolas@gmail.comFilippo Argiolas <filippo.argiolas@gmail.com>

class

@@ -282,6 +282,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 9232fbf..1da3f12 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-stereo.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-stereo.html @@ -3,12 +3,12 @@ stereo - + - + @@ -70,7 +70,7 @@ Create a wide stereo effect.

-

Example pipelines

+

Example pipelines

@@ -88,7 +88,7 @@ Create a wide stereo effect.

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +111,7 @@ Create a wide stereo effect.
-

Element Pads

+

Element Pads

@@ -188,6 +188,6 @@ Create a wide stereo effect. + Generated by GTK-Doc V1.18 \ 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 index fecf8a0..d317194 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-stretch.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-stretch.html @@ -3,12 +3,12 @@ stretch - + - + @@ -68,7 +68,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -91,7 +91,7 @@
-

Element Pads

+

Element Pads

@@ -265,6 +265,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-synaescope.html b/docs/plugins/html/gst-plugins-bad-plugins-synaescope.html new file mode 100644 index 0000000..432c7a9 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-synaescope.html @@ -0,0 +1,171 @@ + + + + +synaescope + + + + + + + + + +
+ + + + + + + + + +
+
+
+ + +
+

synaescope

+

synaescope — Creates video visualizations of audio input, using stereo and pitch information

+
+
+

Synopsis

+
struct              GstSynaeScope;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseAudioVisualizer
+                     +----GstSynaeScope
+
+
+
+

Description

+

+Synaescope is an audio visualisation element. It analyzes frequencies and +out-of phase properties of audio and draws this as clouds of stars. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch audiotestsrc ! audioconvert ! synaescope ! ximagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

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

plugin

+ audiovisualizers +

author

Stefan Kost <ensonic@users.sf.net>

class

Visualization
+
+
+
+

Element Pads

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

name

sink

direction

sink

presence

always

details

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

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 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSynaeScope

+
struct GstSynaeScope;
+

+

+
+
+
+

See Also

+goom +
+
+ + + \ 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 index 2420a9a..65f7c0a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html @@ -3,12 +3,12 @@ templatematch - + - + @@ -39,7 +39,7 @@

Synopsis

-
struct              GstStretch;
+
struct              GstSynaeScope;
 struct              GstTemplateMatch;
 
@@ -53,31 +53,10 @@ struct

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

+

Element Information

@@ -100,7 +79,7 @@ FIXME:Describe templatematch here.
-

Element Pads

+

Element Pads

@@ -151,8 +130,8 @@ FIXME:Describe templatematch here.

Details

-

struct GstStretch

-
struct GstStretch;
+

struct GstSynaeScope

+
struct GstSynaeScope;

@@ -203,6 +182,6 @@ FIXME:Describe templatematch here.
+ Generated by GTK-Doc V1.18 \ 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 index 20c0560..27c0e4b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-tiger.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-tiger.html @@ -3,12 +3,12 @@ tiger - + - + @@ -72,44 +72,15 @@ "original-canvas-height" gint : Read "original-canvas-width" gint : Read "quality" gdouble : Read / Write + "silent" gboolean : 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

+

Element Information

@@ -132,7 +103,7 @@ gst-launch \
-

Element Pads

+

Element Pads

@@ -175,12 +146,16 @@ gst-launch \ - + + + + +

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)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-yuv, format=(fourcc){ AYUV, I420, YV12, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
@@ -200,12 +175,16 @@ gst-launch \ - + + + + +

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)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-yuv, format=(fourcc){ AYUV, I420, YV12, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
@@ -347,14 +326,17 @@ gst-launch \

Allowed values: [0,1]

Default value: 1

+
+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Whether to render the stream.

+

Default value: FALSE

-
-

See Also

-katedec
+ Generated by GTK-Doc V1.18
\ 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 index 6b66afa..1c8ed4d 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-timidity.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-timidity.html @@ -3,12 +3,12 @@ timidity - + - + @@ -42,33 +42,10 @@

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

+

Element Information

@@ -91,7 +68,7 @@ played via alsa.
-

Element Pads

+

Element Pads

@@ -178,13 +155,9 @@ played via alsa.

-
-

See Also

-wildmidi -
+ Generated by GTK-Doc V1.18 \ 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 index 9edffdb..fa79f95 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-trm.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-trm.html @@ -3,12 +3,12 @@ trm - + - + @@ -62,48 +62,10 @@

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

+

Element Information

@@ -126,7 +88,7 @@ with that information downstream).
-

Element Pads

+

Element Pads

@@ -180,7 +142,6 @@ with that information downstream).

struct GstTRM

struct GstTRM;

-GStreamer TRM element. This structure is opaque (private).

@@ -204,6 +165,6 @@ GStreamer TRM element. This structure is opaque (private). + Generated by GTK-Doc V1.18 \ 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 index 741c71d..48dccde 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-tunnel.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-tunnel.html @@ -3,12 +3,12 @@ tunnel - + - + @@ -60,7 +60,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -83,7 +83,7 @@
-

Element Pads

+

Element Pads

@@ -247,6 +247,6 @@ + Generated by GTK-Doc V1.18 \ 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 index 22895ce..b78cf54 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-twirl.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-twirl.html @@ -3,12 +3,12 @@ twirl - + - + @@ -68,7 +68,7 @@

Synopsis

-

Element Information

+

Element Information

@@ -91,7 +91,7 @@
-

Element Pads

+

Element Pads

@@ -264,6 +264,6 @@ + Generated by GTK-Doc V1.18 \ 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 index a026c35..a4b66f6 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html @@ -3,12 +3,12 @@ videoanalyse - + - + @@ -108,7 +108,7 @@ The message's structure contains these fields:

-

Example launch line

+

Example launch line

@@ -129,7 +129,7 @@ Last reviewed on 2007-05-30 (0.10.5)

Synopsis

-

Element Information

+

Element Information

@@ -152,7 +152,7 @@ Last reviewed on 2007-05-30 (0.10.5)
-

Element Pads

+

Element Pads

@@ -222,6 +222,6 @@ Opaque datastructure. + Generated by GTK-Doc V1.18 \ 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 index 71a49cd..ed5d49f 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-videodetect.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-videodetect.html @@ -3,12 +3,12 @@ videodetect - + - + @@ -122,7 +122,7 @@ The message's structure contains these fields: the duration of the buffer.

  • - guint64 + guint64 "data-uint64": the data-pattern found after the pattern or 0 when have-signal is FALSE.

  • @@ -137,7 +137,7 @@ The message's structure contains these fields:

    -

    Example launch line

    +

    Example launch line

    @@ -158,7 +158,7 @@ Last reviewed on 2007-05-30 (0.10.5)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -181,7 +181,7 @@ Last reviewed on 2007-05-30 (0.10.5)
    -

    Element Pads

    +

    Element Pads

    @@ -319,6 +319,6 @@ Opaque datastructure. + Generated by GTK-Doc V1.18 \ 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 index 04db1b6..e029e2a 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-videomark.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-videomark.html @@ -3,12 +3,12 @@ videomark - + - + @@ -66,7 +66,7 @@ "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 + "pattern-data-uint64" guint64 : Read / Write / Construct
    @@ -90,7 +90,7 @@ mostly used together with the -

    Example launch line

    +

    Example launch line

    @@ -111,7 +111,7 @@ Last reviewed on 2007-06-01 (0.10.6)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -134,7 +134,7 @@ Last reviewed on 2007-06-01 (0.10.6)
    -

    Element Pads

    +

    Element Pads

    @@ -259,7 +259,7 @@ Opaque datastructure.

    The "pattern-data-uint64" property

    -
      "pattern-data-uint64"      guint64               : Read / Write / Construct
    +
      "pattern-data-uint64"      guint64               : Read / Write / Construct

    The extra data pattern markers.

    Default value: 10

    @@ -271,6 +271,6 @@ Opaque datastructure. + Generated by GTK-Doc V1.18 \ 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 index 997f068..f143d09 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html @@ -3,12 +3,12 @@ videomaxrate - + - + @@ -57,7 +57,7 @@

    Properties

    -  "average-period"           guint64               : Read / Write
    +  "average-period"           guint64               : Read / Write
     
    @@ -75,7 +75,7 @@ average is computed is configurable using the "average-period" property.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -98,7 +98,7 @@ average is computed is configurable using the "average-period" property.
    -

    Element Pads

    +

    Element Pads

    @@ -191,7 +191,7 @@ average is computed is configurable using the "average-period" property.

    Property Details

    The "average-period" property

    -
      "average-period"           guint64               : Read / Write
    +
      "average-period"           guint64               : Read / Write

    Period over which to average the framerate (in ns).

    Allowed values: [1,G_MAXLONG]

    Default value: 1000000000

    @@ -204,6 +204,6 @@ videorate
    + Generated by GTK-Doc V1.18 \ 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 index e22326a..2e396dd 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-videoparse.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-videoparse.html @@ -3,12 +3,12 @@ videoparse - + - + @@ -81,7 +81,7 @@ Converts a byte stream into video frames.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -104,7 +104,7 @@ Converts a byte stream into video frames.
    -

    Element Pads

    +

    Element Pads

    @@ -278,6 +278,6 @@ Converts a byte stream into video frames. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html b/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html new file mode 100644 index 0000000..7fc2275 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html @@ -0,0 +1,153 @@ + + + + +voaacenc + + + + + + + + + +
    + + + + + + + + + +
    +
    +
    + + +
    +

    voaacenc

    +

    voaacenc — AAC audio encoder

    +
    +
    +

    Synopsis

    +
    struct              GstVoAacEnc;
    +
    +
    +
    +

    Description

    +
    +

    Synopsis

    +
    +

    Element Information

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

    plugin

    + voaacenc +

    author

    Kan Hu <kan.hu@linaro.org>

    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)[ 8000, 96000 ], channels=(int)[ 1, 6 ]
    +
    ++ + + + + + + + + + + + + + + + + + +

    name

    src

    direction

    source

    presence

    always

    details

    audio/mpeg, mpegversion=(int)4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ], stream-format=(string){ adts, raw }
    +
    +
    +

    +

    +
    +
    +

    Details

    +
    +

    struct GstVoAacEnc

    +
    struct GstVoAacEnc {
    +  GstAudioEncoder element;
    +
    +  gboolean discont;
    +
    +  /* desired bitrate */
    +  gint bitrate;
    +
    +  /* caps */
    +  gint channels;
    +  gint rate;
    +  gint output_format;
    +
    +  gint inbuf_size;
    +
    +  /* library handle */
    +  VO_AUDIO_CODECAPI codec_api;
    +  VO_HANDLE handle;
    +  VO_MEM_OPERATOR mem_operator;
    +};
    +
    +

    +

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

    voamrwbenc

    +

    voamrwbenc

    +
    +
    +

    Synopsis

    +
    
    +
    +
    +

    Description

    +

    +

    +
    +
    +

    Details

    +
    +
    + + + \ 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 index e829c34..581217b 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html @@ -3,18 +3,18 @@ vp8dec - + - + - + - + @@ -66,35 +66,10 @@

    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

    +

    Element Information

    @@ -117,7 +92,7 @@ Theora video codec.
    -

    Element Pads

    +

    Element Pads

    @@ -206,13 +181,9 @@ Theora video codec.

    Default value: Deblock|Demacroblock

    -
    -

    See Also

    -vp8enc, matroskademux -
    + Generated by GTK-Doc V1.18 \ 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 index 1799011..64c1476 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html @@ -3,12 +3,12 @@ vp8enc - + - - + + @@ -18,7 +18,7 @@ - +
    Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
    Top @@ -77,47 +77,26 @@ GstVP8Enc implements "multipass-cache-file" gchar* : Read / Write "multipass-mode" GstVP8EncMultipassMode : Read / Write "auto-alt-ref-frames" gboolean : Read / Write + "max-quantizer" gint : Read / Write + "min-quantizer" gint : Read / Write + "drop-frame" gint : Read / Write + "lag-in-frames" guint : Read / Write + "maxsection-pct" guint : Read / Write + "minsection-pct" guint : Read / Write + "noise-sensitivity" gint : Read / Write + "resize-allowed" gboolean : Read / Write + "sharpness" gint : Read / Write + "static-threshold" gint : Read / Write + "token-parts" gint : Read / Write + "tune" GstVP8EncTune : 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

    +

    Element Information

    @@ -140,7 +119,7 @@ WebM container.
    -

    Element Pads

    +

    Element Pads

    @@ -240,7 +219,7 @@ WebM container.

    The "quality" property

      "quality"                  gdouble               : Read / Write
    -

    Quality.

    +

    Quality. This parameter sets a constant quantizer.

    Allowed values: [0,10]

    Default value: 5

    @@ -249,7 +228,7 @@ WebM container.

    The "speed" property

      "speed"                    gint                  : Read / Write

    Speed.

    -

    Allowed values: [0,2]

    +

    Allowed values: [0,7]

    Default value: 0


    @@ -265,7 +244,7 @@ WebM container.

    The "multipass-cache-file" property

      "multipass-cache-file"     gchar*                : Read / Write

    Multipass cache file.

    -

    Default value: NULL

    +

    Default value: "multipass.cache"


    @@ -281,14 +260,104 @@ WebM container.

    Automatically create alternative reference frames.

    Default value: FALSE

    +
    +
    +

    The "max-quantizer" property

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

    Maximum (worst) quantizer.

    +

    Allowed values: [0,63]

    +

    Default value: 63

    +
    +
    +
    +

    The "min-quantizer" property

    +
      "min-quantizer"            gint                  : Read / Write
    +

    Minimum (best) quantizer.

    +

    Allowed values: [0,63]

    +

    Default value: 0

    +
    +
    +
    +

    The "drop-frame" property

    +
      "drop-frame"               gint                  : Read / Write
    +

    Drop Frame.

    +

    Allowed values: [0,100]

    +

    Default value: 0

    +
    +
    +
    +

    The "lag-in-frames" property

    +
      "lag-in-frames"            guint                 : Read / Write
    +

    If set, this value allows the encoder to consume a number of input frames before producing output frames.

    +

    Allowed values: <= 64

    +

    Default value: 0

    +
    +
    +
    +

    The "maxsection-pct" property

    +
      "maxsection-pct"           guint                 : Read / Write
    +

    The numbers represent a percentage of the average allocation per section (frame).

    +

    Allowed values: [200,800]

    +

    Default value: 800

    +
    +
    +
    +

    The "minsection-pct" property

    +
      "minsection-pct"           guint                 : Read / Write
    +

    The numbers represent a percentage of the average allocation per section (frame).

    +

    Allowed values: <= 20

    +

    Default value: 5

    +
    +
    +
    +

    The "noise-sensitivity" property

    +
      "noise-sensitivity"        gint                  : Read / Write
    +

    Noise Sensitivity.

    +

    Allowed values: [0,6]

    +

    Default value: 0

    +
    +
    +
    +

    The "resize-allowed" property

    +
      "resize-allowed"           gboolean              : Read / Write
    +

    Resize Allowed.

    +

    Default value: TRUE

    +
    +
    +
    +

    The "sharpness" property

    +
      "sharpness"                gint                  : Read / Write
    +

    Sharpness.

    +

    Allowed values: [0,7]

    +

    Default value: 0

    +
    +
    +
    +

    The "static-threshold" property

    +
      "static-threshold"         gint                  : Read / Write
    +

    Static Threshold.

    +

    Allowed values: [0,1000]

    +

    Default value: 0

    +
    +
    +
    +

    The "token-parts" property

    +
      "token-parts"              gint                  : Read / Write
    +

    Token Parts.

    +

    Allowed values: [0,3]

    +

    Default value: 0

    +
    +
    +
    +

    The "tune" property

    +
      "tune"                     GstVP8EncTune         : Read / Write
    +

    Tune.

    +

    Default value: Tune for PSNR

    -
    -

    See Also

    -vp8dec, webmmux, oggmux
    + Generated by GTK-Doc V1.18 \ 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 index 9766d5b..5e33894 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-waterripple.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-waterripple.html @@ -3,12 +3,12 @@ waterripple - + - + @@ -70,7 +70,7 @@

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -93,7 +93,7 @@
    -

    Element Pads

    +

    Element Pads

    @@ -280,6 +280,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-wavescope.html b/docs/plugins/html/gst-plugins-bad-plugins-wavescope.html new file mode 100644 index 0000000..5f546f8 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-wavescope.html @@ -0,0 +1,188 @@ + + + + +wavescope + + + + + + + + + +
    + + + + + + + + + +
    +
    +
    + + +
    +

    wavescope

    +

    wavescope — Simple waveform oscilloscope

    +
    +
    +

    Synopsis

    +
    struct              GstWaveScope;
    +
    +
    +
    +

    Object Hierarchy

    +
    +  GObject
    +   +----GstObject
    +         +----GstElement
    +               +----GstBaseAudioVisualizer
    +                     +----GstWaveScope
    +
    +
    +
    +

    Properties

    +
    +  "style"                    GstWaveScopeStyle     : Read / Write / Construct
    +
    +
    +
    +

    Description

    +

    +Wavescope is a simple audio visualisation element. It renders the waveforms +like on an oscilloscope. +

    +

    +

    +
    +

    Example launch line

    +
    + + + + + + + +
    1
    gst-launch audiotestsrc ! audioconvert ! wavescope ! ximagesink
    +
    + +
    +

    +

    +
    +

    Synopsis

    +
    +

    Element Information

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

    plugin

    + audiovisualizers +

    author

    Stefan Kost <ensonic@users.sf.net>

    class

    Visualization
    +
    +
    +
    +

    Element Pads

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

    name

    sink

    direction

    sink

    presence

    always

    details

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

    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 ]
    +
    +
    +

    +

    +
    +
    +

    Details

    +
    +

    struct GstWaveScope

    +
    struct GstWaveScope;
    +

    +

    +
    +
    +
    +

    Property Details

    +
    +

    The "style" property

    +
      "style"                    GstWaveScopeStyle     : Read / Write / Construct
    +

    Drawing styles for the wave form display.

    +

    Default value: draw dots (default)

    +
    +
    +
    +

    See Also

    +goom +
    +
    + + + \ 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 index 8c33e91..22a8d9c 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html @@ -3,12 +3,12 @@ wildmidi - + - + @@ -62,36 +62,10 @@

    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

    +

    Element Information

    @@ -114,7 +88,7 @@ played via alsa.
    -

    Element Pads

    +

    Element Pads

    @@ -191,13 +165,9 @@ played via alsa.

    Default value: TRUE

    -
    -

    See Also

    -timidity -
    + Generated by GTK-Doc V1.18 \ 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 index 8c02bc2..ebb5cc3 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins-zbar.html +++ b/docs/plugins/html/gst-plugins-bad-plugins-zbar.html @@ -3,12 +3,12 @@ zbar - + - - + + @@ -18,15 +18,13 @@ - +
    Up Home GStreamer Bad Plugins 0.10 Plugins Reference ManualNextNext
    Top  |  Description  |  - Object Hierarchy -  |  Properties
    @@ -41,18 +39,7 @@

    Synopsis

    -
    struct              GstZBar;
    -
    -
    -
    -

    Object Hierarchy

    -
    -  GObject
    -   +----GstObject
    -         +----GstElement
    -               +----GstBaseTransform
    -                     +----GstVideoFilter
    -                           +----GstZBar
    +
    struct              GstZBar;
     
    @@ -64,73 +51,10 @@

    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

    +

    Element Information

    @@ -153,7 +77,7 @@ fields:
    -

    Element Pads

    +

    Element Pads

    @@ -204,10 +128,11 @@ fields:

    Details

    -

    struct GstZBar

    -
    struct GstZBar;
    +

    struct GstZBar

    +
    struct GstZBar {
    +};
    +

    -Opaque data structure.

    @@ -230,6 +155,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ 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 deleted file mode 100644 index 6386eec..0000000 --- a/docs/plugins/html/gst-plugins-bad-plugins.devhelp +++ /dev/null @@ -1,1090 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 b/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 index f840268..0c2bf5e 100644 --- a/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 +++ b/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 @@ -5,12 +5,12 @@ - + @@ -75,7 +75,9 @@ - + + + @@ -86,6 +88,9 @@ + + + @@ -106,18 +111,22 @@ + + + + - + @@ -174,6 +183,7 @@ + @@ -193,6 +203,7 @@ + @@ -201,47 +212,41 @@ - - - + + + - - + + - - - - - - - - + + - - + + - - + + - - - + + + - - - - - - - - + + + + + + + + @@ -282,6 +287,7 @@ + @@ -294,13 +300,50 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + @@ -309,27 +352,26 @@ - - - + + + - - + + - - - + + + - - - + + @@ -344,41 +386,41 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -386,9 +428,9 @@ - - - + + + @@ -397,9 +439,9 @@ - - - + + + @@ -407,9 +449,9 @@ - - - + + + @@ -418,10 +460,8 @@ - - - - + + @@ -430,41 +470,38 @@ - - + + - - - + + + - - - + + - - - + + + - - + + - - + + - - - + + - - - - + + + @@ -487,27 +524,21 @@ - - - + + + + - - - + + + - - - - - - - - - - - + + + + @@ -515,37 +546,25 @@ - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + - - - + + + @@ -559,21 +578,21 @@ - - - + + + - - + + - - + + - - - + + + @@ -582,15 +601,14 @@ - - + + - - - + + @@ -601,58 +619,54 @@ - - - + + - - - + + - - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + @@ -666,9 +680,8 @@ - - - + + @@ -704,9 +717,8 @@ - - - + + @@ -715,9 +727,8 @@ - - - + + @@ -726,50 +737,43 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - + + + - - - + + - - - - - - - - + + - - - + + @@ -782,13 +786,24 @@ - - - - - - - + + + + + + + + + + + + + + + + + + @@ -799,100 +814,112 @@ - - + + - - - + + + - - - + + + - - - - - - + + + + + + - - + + + - - + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - + + - - - - + + + - - - + + @@ -904,9 +931,8 @@ - - - + + @@ -924,31 +950,30 @@ - - - + + + - - - + + - - + + - - + + - - - + + + - - - + + + @@ -959,9 +984,9 @@ - - - + + + @@ -972,12 +997,12 @@ - - + + - - + + @@ -993,35 +1018,34 @@ - - + + - - - + + - - - - + + + - - - + + + + + - - - + + @@ -1034,8 +1058,25 @@ + + + + + + + + + + + + + + + + + - + @@ -1054,7 +1095,7 @@ - + @@ -1064,7 +1105,7 @@ - + @@ -1088,10 +1129,5 @@ - - - - - diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html index 567b88d..bede951 100644 --- a/docs/plugins/html/index.html +++ b/docs/plugins/html/index.html @@ -3,10 +3,10 @@ GStreamer Bad Plugins 0.10 Plugins Reference Manual - + - + @@ -15,7 +15,7 @@

    - for GStreamer Bad Plugins 0.10 (0.10.22) + for GStreamer Bad Plugins 0.10 (0.10.23) The latest version of this documentation can be found on-line at http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/.

    @@ -32,9 +32,6 @@ aiffmux — Multiplex raw audio into AIFF
    -amrwbenc — Adaptive Multi-Rate Wideband audio encoder -
    -
    assrender — Renders ASS/SSA subtitles with libass
    @@ -50,6 +47,9 @@ camerabin — Handle lot of features present in DSC
    +camerabin2 — CameraBin2 +
    +
    celtdec — decode celt streams to audio
    @@ -65,7 +65,7 @@ coloreffects — Color Look-up Table filter
    -curlsink — sink that uploads data to a server using libcurl +curlsink — Upload data over the network to a server using libcurl
    cvdilate — Applies cvDilate OpenCV function to the image @@ -179,13 +179,13 @@ katedec — Decodes Kate text streams
    -kateparse — parses kate streams +kateparse — parse raw kate streams
    -katetag — retags kate streams +katetag — Retags kate streams
    -ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API) +ladspa
    legacyresample — Resample audio @@ -242,7 +242,13 @@ rsvgoverlay — Overlays SVG graphics over a video stream
    -rtpdtmfdepay — Generates DTMF Sound from telephone-event RTP packets +rtmpsink — Sends FLV content to a server via RTMP +
    +
    +rtmpsrc — Read RTMP streams +
    +
    +rtpmux — multiplex N rtp streams into one
    rtpdtmfsrc — Generates RTP DTMF packets @@ -275,6 +281,15 @@ solarize — Solarize tunable inverse in the video signal.
    +spacescope — Simple stereo visualizer +
    +
    +spectrascope — Simple frequency spectrum scope +
    +
    +synaescope — Creates video visualizations of audio input, using stereo and pitch information +
    +
    speed — Set speed/pitch on audio/raw streams (resampler)
    @@ -335,11 +350,20 @@ zbar — Detect bar codes in the video streams
    +voaacenc — AAC audio encoder +
    +
    +voamrwbenc +
    +
    vp8dec — Decode VP8 video streams
    vp8enc — Encode VP8 video streams
    +
    +wavescope — Simple waveform oscilloscope +
    gst-plugins-bad Plugins
    @@ -347,13 +371,13 @@ aiff — Create and parse Audio Interchange File Format (AIFF) files
    -autoconvert — Selects convertor element based on caps +audiovisualizers — Creates video visualizations of audio input
    -legacyresample — Resamples audio +autoconvert — Selects convertor element based on caps
    -amrwbenc — Adaptive Multi-Rate Wide-Band Encoder +legacyresample — Resamples audio
    assrender — ASS/SSA subtitle renderer @@ -368,6 +392,9 @@ camerabin — High level api for DC (Digital Camera) application
    +camerabin2 — camerabin2 +
    +
    cdaudio — Play CD audio through the CD Drive
    @@ -536,6 +563,9 @@ rsvg — RSVG plugin library
    +rtmp — RTMP source and sink +
    +
    rtpmux — RTP Muxer plugins
    @@ -593,6 +623,9 @@ xvid — XviD plugin library
    +voaacenc — AAC audio encoder +
    +
    vp8 — VP8 plugin
    @@ -601,12 +634,12 @@
    gst-plugins-bad Interfaces
    -GstPhotography — Interface for digital image capture elements +GstPhotography
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml index ecadf80..ee9e802 100644 --- a/docs/plugins/html/index.sgml +++ b/docs/plugins/html/index.sgml @@ -13,15 +13,6 @@ - - - - - - - - - @@ -118,6 +109,7 @@ + @@ -131,6 +123,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138,7 +175,6 @@ - @@ -156,7 +192,6 @@ - @@ -215,43 +250,33 @@ - - - + - - - + - - - + - - - + - - - + @@ -260,12 +285,10 @@ - - - + @@ -467,6 +490,7 @@ + @@ -487,17 +511,8 @@ - - - - - - - - - @@ -514,7 +529,8 @@ - + + @@ -524,30 +540,12 @@ - - - - - - - - - - - - - - - - - - @@ -658,7 +656,6 @@ - @@ -673,7 +670,6 @@ - @@ -681,7 +677,6 @@ - @@ -696,7 +691,6 @@ - @@ -746,7 +740,6 @@ - @@ -754,7 +747,6 @@ - @@ -830,7 +822,6 @@ - @@ -847,7 +838,6 @@ - @@ -865,7 +855,6 @@ - @@ -907,6 +896,7 @@ + @@ -920,16 +910,9 @@ - - - - - - - @@ -957,18 +940,42 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1029,20 +1036,16 @@ - - - + - - - + @@ -1059,6 +1062,7 @@ + @@ -1100,6 +1104,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1155,11 +1186,11 @@ - + - + @@ -1208,13 +1239,12 @@ - + - @@ -1348,18 +1378,24 @@ - - - - + + + + + + + + + + @@ -1373,7 +1409,6 @@ - @@ -1395,15 +1430,37 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + - - @@ -1412,6 +1469,8 @@ + + @@ -1524,6 +1583,8 @@ + + @@ -1562,6 +1623,8 @@ + + @@ -1575,11 +1638,6 @@ - - - - - diff --git a/docs/plugins/inspect/plugin-adpcmdec.xml b/docs/plugins/inspect/plugin-adpcmdec.xml index 5a66410..088b0ce 100644 --- a/docs/plugins/inspect/plugin-adpcmdec.xml +++ b/docs/plugins/inspect/plugin-adpcmdec.xml @@ -3,7 +3,7 @@ ADPCM decoder ../../gst/adpcmdec/.libs/libgstadpcmdec.so libgstadpcmdec.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -14,7 +14,7 @@ ADPCM decoder Codec/Decoder/Audio Decode MS and IMA ADPCM audio - Pioneers of the Inevitable <songbird@songbirdnest.com + Pioneers of the Inevitable <songbird@songbirdnest.com> sink diff --git a/docs/plugins/inspect/plugin-adpcmenc.xml b/docs/plugins/inspect/plugin-adpcmenc.xml index eb32208..7b4356b 100644 --- a/docs/plugins/inspect/plugin-adpcmenc.xml +++ b/docs/plugins/inspect/plugin-adpcmenc.xml @@ -3,7 +3,7 @@ ADPCM encoder ../../gst/adpcmenc/.libs/libgstadpcmenc.so libgstadpcmenc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -14,7 +14,7 @@ ADPCM encoder Codec/Encoder/Audio Encode ADPCM audio - Pioneers of the Inevitable <songbird@songbirdnest.com + Pioneers of the Inevitable <songbird@songbirdnest.com> sink diff --git a/docs/plugins/inspect/plugin-aiff.xml b/docs/plugins/inspect/plugin-aiff.xml index 47c7bea..894b171 100644 --- a/docs/plugins/inspect/plugin-aiff.xml +++ b/docs/plugins/inspect/plugin-aiff.xml @@ -3,7 +3,7 @@ Create and parse Audio Interchange File Format (AIFF) files ../../gst/aiff/.libs/libgstaiff.so libgstaiff.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-amrwbenc.xml b/docs/plugins/inspect/plugin-amrwbenc.xml deleted file mode 100644 index 3fb7e4c..0000000 --- a/docs/plugins/inspect/plugin-amrwbenc.xml +++ /dev/null @@ -1,34 +0,0 @@ - - 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 index 95dcedc..d3b56fd 100644 --- a/docs/plugins/inspect/plugin-apexsink.xml +++ b/docs/plugins/inspect/plugin-apexsink.xml @@ -3,10 +3,10 @@ Apple AirPort Express Plugin ../../ext/apexsink/.libs/libgstapexsink.so libgstapexsink.so - 0.10.21.1 + 0.10.23 LGPL gst-plugins-bad - GStreamer Bad Plug-ins git + GStreamer Bad Plug-ins source release Unknown package origin diff --git a/docs/plugins/inspect/plugin-asfmux.xml b/docs/plugins/inspect/plugin-asfmux.xml index e68e442..70d557b 100644 --- a/docs/plugins/inspect/plugin-asfmux.xml +++ b/docs/plugins/inspect/plugin-asfmux.xml @@ -3,7 +3,7 @@ ASF Muxer Plugin ../../gst/asfmux/.libs/libgstasfmux.so libgstasfmux.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-assrender.xml b/docs/plugins/inspect/plugin-assrender.xml index 0f91fd2..1e8830a 100644 --- a/docs/plugins/inspect/plugin-assrender.xml +++ b/docs/plugins/inspect/plugin-assrender.xml @@ -3,7 +3,7 @@ ASS/SSA subtitle renderer ../../ext/assrender/.libs/libgstassrender.so libgstassrender.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-audiovisualizers.xml b/docs/plugins/inspect/plugin-audiovisualizers.xml new file mode 100644 index 0000000..2c7431d --- /dev/null +++ b/docs/plugins/inspect/plugin-audiovisualizers.xml @@ -0,0 +1,97 @@ + + audiovisualizers + Creates video visualizations of audio input + ../../gst/audiovisualizers/.libs/libgstaudiovisualizers.so + libgstaudiovisualizers.so + 0.10.23 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + spacescope + Stereo visualizer + Visualization + Simple stereo visualizer + Stefan Kost <ensonic@users.sf.net> + + + sink + sink + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
    +
    + + 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 ]
    +
    +
    +
    + + spectrascope + Frequency spectrum scope + Visualization + Simple frequency spectrum scope + Stefan Kost <ensonic@users.sf.net> + + + sink + sink + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
    +
    + + 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 ]
    +
    +
    +
    + + synaescope + Synaescope + Visualization + Creates video visualizations of audio input, using stereo and pitch information + Stefan Kost <ensonic@users.sf.net> + + + sink + sink + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
    +
    + + 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 ]
    +
    +
    +
    + + wavescope + Waveform oscilloscope + Visualization + Simple waveform oscilloscope + Stefan Kost <ensonic@users.sf.net> + + + sink + sink + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
    +
    + + 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 ]
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-autoconvert.xml b/docs/plugins/inspect/plugin-autoconvert.xml index 3171fd2..b26bef2 100644 --- a/docs/plugins/inspect/plugin-autoconvert.xml +++ b/docs/plugins/inspect/plugin-autoconvert.xml @@ -3,7 +3,7 @@ Selects convertor element based on caps ../../gst/autoconvert/.libs/libgstautoconvert.so libgstautoconvert.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-bayer.xml b/docs/plugins/inspect/plugin-bayer.xml index 1de4ddd..59de637 100644 --- a/docs/plugins/inspect/plugin-bayer.xml +++ b/docs/plugins/inspect/plugin-bayer.xml @@ -3,7 +3,7 @@ Elements to convert Bayer images ../../gst/bayer/.libs/libgstbayer.so libgstbayer.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -26,7 +26,7 @@ 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 ]
    +
    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 ]
    diff --git a/docs/plugins/inspect/plugin-bz2.xml b/docs/plugins/inspect/plugin-bz2.xml index 84cd7ae..41ccb5c 100644 --- a/docs/plugins/inspect/plugin-bz2.xml +++ b/docs/plugins/inspect/plugin-bz2.xml @@ -3,7 +3,7 @@ Compress or decompress streams ../../ext/bz2/.libs/libgstbz2.so libgstbz2.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-camerabin.xml b/docs/plugins/inspect/plugin-camerabin.xml index e0dedde..4a45cab 100644 --- a/docs/plugins/inspect/plugin-camerabin.xml +++ b/docs/plugins/inspect/plugin-camerabin.xml @@ -3,7 +3,7 @@ High level api for DC (Digital Camera) application ../../gst/camerabin/.libs/libgstcamerabin.so libgstcamerabin.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-camerabin2.xml b/docs/plugins/inspect/plugin-camerabin2.xml new file mode 100644 index 0000000..e556420 --- /dev/null +++ b/docs/plugins/inspect/plugin-camerabin2.xml @@ -0,0 +1,64 @@ + + camerabin2 + camerabin2 + ../../gst/camerabin2/.libs/libgstcamerabin2.so + libgstcamerabin2.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + camerabin2 + CameraBin2 + Generic/Bin/Camera + CameraBin2 + Thiago Santos <thiago.sousa.santos@collabora.co.uk> + + + + + viewfinderbin + Viewfinder Bin + Sink/Video + Viewfinder Bin used in camerabin2 + Thiago Santos <thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
    video/x-raw-yuv; video/x-raw-rgb
    +
    +
    +
    + + wrappercamerabinsrc + V4l2 camera src element for camerabin + Source/Video + V4l2 camera src element for camerabin + Rob Clark <rob@ti.com> + + + imgsrc + source + always +
    ANY
    +
    + + vfsrc + source + always +
    ANY
    +
    + + vidsrc + source + always +
    ANY
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-cdaudio.xml b/docs/plugins/inspect/plugin-cdaudio.xml index f38433a..625af0b 100644 --- a/docs/plugins/inspect/plugin-cdaudio.xml +++ b/docs/plugins/inspect/plugin-cdaudio.xml @@ -3,7 +3,7 @@ Play CD audio through the CD Drive ../../ext/cdaudio/.libs/libgstcdaudio.so libgstcdaudio.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-cdxaparse.xml b/docs/plugins/inspect/plugin-cdxaparse.xml index e2ebac9..d210405 100644 --- a/docs/plugins/inspect/plugin-cdxaparse.xml +++ b/docs/plugins/inspect/plugin-cdxaparse.xml @@ -3,7 +3,7 @@ Parse a .dat file (VCD) into raw mpeg1 ../../gst/cdxaparse/.libs/libgstcdxaparse.so libgstcdxaparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-celt.xml b/docs/plugins/inspect/plugin-celt.xml index d7bb3ee..4df3e44 100644 --- a/docs/plugins/inspect/plugin-celt.xml +++ b/docs/plugins/inspect/plugin-celt.xml @@ -3,7 +3,7 @@ CELT plugin library ../../ext/celt/.libs/libgstcelt.so libgstcelt.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-cog.xml b/docs/plugins/inspect/plugin-cog.xml index d042cd6..6e1152a 100644 --- a/docs/plugins/inspect/plugin-cog.xml +++ b/docs/plugins/inspect/plugin-cog.xml @@ -3,7 +3,7 @@ Cog plugin ../../ext/cog/.libs/libgstcog.so libgstcog.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-coloreffects.xml b/docs/plugins/inspect/plugin-coloreffects.xml index 1a35ae4..4ad7c73 100644 --- a/docs/plugins/inspect/plugin-coloreffects.xml +++ b/docs/plugins/inspect/plugin-coloreffects.xml @@ -3,7 +3,7 @@ Color Look-up Table filters ../../gst/coloreffects/.libs/libgstcoloreffects.so libgstcoloreffects.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-colorspace.xml b/docs/plugins/inspect/plugin-colorspace.xml index 90ef7c2..004d402 100644 --- a/docs/plugins/inspect/plugin-colorspace.xml +++ b/docs/plugins/inspect/plugin-colorspace.xml @@ -3,7 +3,7 @@ Colorspace conversion ../../gst/colorspace/.libs/libgstcolorspace.so libgstcolorspace.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad diff --git a/docs/plugins/inspect/plugin-curl.xml b/docs/plugins/inspect/plugin-curl.xml index ce1524c..e0c62e7 100644 --- a/docs/plugins/inspect/plugin-curl.xml +++ b/docs/plugins/inspect/plugin-curl.xml @@ -3,7 +3,7 @@ libcurl-based elements ../../ext/curl/.libs/libgstcurl.so libgstcurl.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dataurisrc.xml b/docs/plugins/inspect/plugin-dataurisrc.xml index becc63d..46ede6a 100644 --- a/docs/plugins/inspect/plugin-dataurisrc.xml +++ b/docs/plugins/inspect/plugin-dataurisrc.xml @@ -3,7 +3,7 @@ data: URI source ../../gst/dataurisrc/.libs/libgstdataurisrc.so libgstdataurisrc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dc1394.xml b/docs/plugins/inspect/plugin-dc1394.xml index ffdeeb3..5d85847 100644 --- a/docs/plugins/inspect/plugin-dc1394.xml +++ b/docs/plugins/inspect/plugin-dc1394.xml @@ -3,7 +3,7 @@ 1394 IIDC Video Source ../../ext/dc1394/.libs/libgstdc1394.so libgstdc1394.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dccp.xml b/docs/plugins/inspect/plugin-dccp.xml index a2f6712..7b0ae3e 100644 --- a/docs/plugins/inspect/plugin-dccp.xml +++ b/docs/plugins/inspect/plugin-dccp.xml @@ -3,7 +3,7 @@ transfer data over the network via DCCP. ../../gst/dccp/.libs/libgstdccp.so libgstdccp.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad DCCP diff --git a/docs/plugins/inspect/plugin-debugutilsbad.xml b/docs/plugins/inspect/plugin-debugutilsbad.xml index 911dc0d..5c9c5c8 100644 --- a/docs/plugins/inspect/plugin-debugutilsbad.xml +++ b/docs/plugins/inspect/plugin-debugutilsbad.xml @@ -3,7 +3,7 @@ Collection of elements that may or may not be useful for debugging ../../gst/debugutils/.libs/libgstdebugutilsbad.so libgstdebugutilsbad.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -52,6 +52,54 @@
    + compare + Compare buffers + Filter/Debug + Compares incoming buffers + Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + + check + sink + always +
    ANY
    +
    + + sink + sink + always +
    ANY
    +
    + + src + source + always +
    ANY
    +
    +
    +
    + + debugspy + DebugSpy + Filter/Analyzer/Debug + DebugSpy provides information on buffers with bus messages + Guillaume Emont <gemont@igalia.com> + + + sink + sink + always +
    ANY
    +
    + + src + source + always +
    ANY
    +
    +
    +
    + fpsdisplaysink Measure and show framerate on videosink Sink/Video diff --git a/docs/plugins/inspect/plugin-decklink.xml b/docs/plugins/inspect/plugin-decklink.xml index 6d1e6d1..3bc551c 100644 --- a/docs/plugins/inspect/plugin-decklink.xml +++ b/docs/plugins/inspect/plugin-decklink.xml @@ -3,7 +3,7 @@ Blackmagic Decklink plugin ../../sys/decklink/.libs/libgstdecklink.so libgstdecklink.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins @@ -26,7 +26,7 @@ videosink sink 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)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)720, height=(int)486, framerate=(fraction)30000/1001, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576, framerate=(fraction)25/1, interlaced=(boolean)false; 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)1920, height=(int)1080, framerate=(fraction)50/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)60000/1001, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)60/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)50/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60000/1001, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60/1, interlaced=(boolean)false
    @@ -47,7 +47,7 @@ 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
    +
    video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)30000/1001, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)10/11, color-matrix=(string)sdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)24000/1001, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)10/11, color-matrix=(string)sdtv, chroma-site=(string)mpeg2; 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, color-matrix=(string)sdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)30000/1001, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)10/11, color-matrix=(string)sdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576, framerate=(fraction)25/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)12/11, color-matrix=(string)sdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)24000/1001, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)24/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30000/1001, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30000/1001, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)50/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30000/1001, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)60/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)50/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60000/1001, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60/1, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, color-matrix=(string)hdtv, chroma-site=(string)mpeg2
    diff --git a/docs/plugins/inspect/plugin-dfbvideosink.xml b/docs/plugins/inspect/plugin-dfbvideosink.xml index ca19c66..7227fce 100644 --- a/docs/plugins/inspect/plugin-dfbvideosink.xml +++ b/docs/plugins/inspect/plugin-dfbvideosink.xml @@ -3,7 +3,7 @@ DirectFB video output plugin ../../ext/directfb/.libs/libgstdfbvideosink.so libgstdfbvideosink.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dirac.xml b/docs/plugins/inspect/plugin-dirac.xml index e6758e0..96d7f24 100644 --- a/docs/plugins/inspect/plugin-dirac.xml +++ b/docs/plugins/inspect/plugin-dirac.xml @@ -3,7 +3,7 @@ Dirac plugin ../../ext/dirac/.libs/libgstdirac.so libgstdirac.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-divxdec.xml b/docs/plugins/inspect/plugin-divxdec.xml new file mode 100644 index 0000000..d4aa087 --- /dev/null +++ b/docs/plugins/inspect/plugin-divxdec.xml @@ -0,0 +1,34 @@ + + divxdec + DivX decoder + ../../ext/divx/.libs/libgstdivxdec.so + libgstdivxdec.so + 5.03 + unknown + gst-plugins-bad + divx4linux + http://www.divx.com/ + + + divxdec + Divx4linux video decoder + Codec/Decoder/Video + Divx decoder based on divxdecore + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
    video/x-divx, divxversion=(int)[ 3, 5 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    + + src + source + always +
    video/x-raw-yuv, format=(fourcc){ I420, YUY2, YV12, UYVY }, 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-divxenc.xml b/docs/plugins/inspect/plugin-divxenc.xml new file mode 100644 index 0000000..839fd1b --- /dev/null +++ b/docs/plugins/inspect/plugin-divxenc.xml @@ -0,0 +1,34 @@ + + divxenc + DivX encoder + ../../ext/divx/.libs/libgstdivxenc.so + libgstdivxenc.so + 5.03 + unknown + gst-plugins-bad + divx4linux + http://www.divx.com/ + + + divxenc + Divx4linux video encoder + Codec/Encoder/Video + Divx encoder based on divxencore + 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 ]
    +
    + + src + source + always +
    video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml index fb3fdd7..8f421c4 100644 --- a/docs/plugins/inspect/plugin-dtmf.xml +++ b/docs/plugins/inspect/plugin-dtmf.xml @@ -3,7 +3,7 @@ DTMF plugins ../../gst/dtmf/.libs/libgstdtmf.so libgstdtmf.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dtsdec.xml b/docs/plugins/inspect/plugin-dtsdec.xml index a22b43f..a2badb7 100644 --- a/docs/plugins/inspect/plugin-dtsdec.xml +++ b/docs/plugins/inspect/plugin-dtsdec.xml @@ -3,7 +3,7 @@ Decodes DTS audio streams ../../ext/dts/.libs/libgstdtsdec.so libgstdtsdec.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dvb.xml b/docs/plugins/inspect/plugin-dvb.xml index a09e421..2b04eba 100644 --- a/docs/plugins/inspect/plugin-dvb.xml +++ b/docs/plugins/inspect/plugin-dvb.xml @@ -3,7 +3,7 @@ DVB elements ../../sys/dvb/.libs/libgstdvb.so libgstdvb.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dvbsuboverlay.xml b/docs/plugins/inspect/plugin-dvbsuboverlay.xml index 51ec1ee..7ab7755 100644 --- a/docs/plugins/inspect/plugin-dvbsuboverlay.xml +++ b/docs/plugins/inspect/plugin-dvbsuboverlay.xml @@ -3,7 +3,7 @@ DVB subtitle renderer ../../gst/dvbsuboverlay/.libs/libgstdvbsuboverlay.so libgstdvbsuboverlay.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dvdspu.xml b/docs/plugins/inspect/plugin-dvdspu.xml index cfc1b58..0670475 100644 --- a/docs/plugins/inspect/plugin-dvdspu.xml +++ b/docs/plugins/inspect/plugin-dvdspu.xml @@ -3,7 +3,7 @@ DVD Sub-picture Overlay element ../../gst/dvdspu/.libs/libgstdvdspu.so libgstdvdspu.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-faac.xml b/docs/plugins/inspect/plugin-faac.xml index 0812bb8..fbe3531 100644 --- a/docs/plugins/inspect/plugin-faac.xml +++ b/docs/plugins/inspect/plugin-faac.xml @@ -3,7 +3,7 @@ Free AAC Encoder (FAAC) ../../ext/faac/.libs/libgstfaac.so libgstfaac.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,13 +20,13 @@ 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 ]
    +
    audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 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 }
    +
    audio/mpeg, mpegversion=(int)4, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, base-profile=(string){ main, lc, ssr, ltp }; audio/mpeg, mpegversion=(int)2, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, profile=(string){ main, lc }
    diff --git a/docs/plugins/inspect/plugin-faad.xml b/docs/plugins/inspect/plugin-faad.xml index 6c4805f..82610b1 100644 --- a/docs/plugins/inspect/plugin-faad.xml +++ b/docs/plugins/inspect/plugin-faad.xml @@ -3,7 +3,7 @@ Free AAC Decoder (FAAD) ../../ext/faad/.libs/libgstfaad.so libgstfaad.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,7 +20,7 @@ sink sink always -
    audio/mpeg, mpegversion=(int){ 2, 4 }
    +
    audio/mpeg, mpegversion=(int)2; audio/mpeg, mpegversion=(int)4, stream-format=(string){ raw, adts }
    src diff --git a/docs/plugins/inspect/plugin-faceoverlay.xml b/docs/plugins/inspect/plugin-faceoverlay.xml new file mode 100644 index 0000000..7116b79 --- /dev/null +++ b/docs/plugins/inspect/plugin-faceoverlay.xml @@ -0,0 +1,34 @@ + + faceoverlay + SVG Face Overlay + ../../gst/faceoverlay/.libs/libgstfaceoverlay.so + libgstfaceoverlay.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + faceoverlay + faceoverlay + Filter/Editor/Video + Overlays SVG graphics over a detected face in a video stream + Laura Lucas Alday <lauralucas@gmail.com> + + + 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-fbdevsink.xml b/docs/plugins/inspect/plugin-fbdevsink.xml index 1ee9556..8d551c5 100644 --- a/docs/plugins/inspect/plugin-fbdevsink.xml +++ b/docs/plugins/inspect/plugin-fbdevsink.xml @@ -3,7 +3,7 @@ linux framebuffer video sink ../../sys/fbdev/.libs/libgstfbdevsink.so libgstfbdevsink.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-festival.xml b/docs/plugins/inspect/plugin-festival.xml index a1f1ea8..2ff9191 100644 --- a/docs/plugins/inspect/plugin-festival.xml +++ b/docs/plugins/inspect/plugin-festival.xml @@ -3,7 +3,7 @@ Synthesizes plain text into audio ../../gst/festival/.libs/libgstfestival.so libgstfestival.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-fieldanalysis.xml b/docs/plugins/inspect/plugin-fieldanalysis.xml index 3044050..de7b096 100644 --- a/docs/plugins/inspect/plugin-fieldanalysis.xml +++ b/docs/plugins/inspect/plugin-fieldanalysis.xml @@ -3,7 +3,7 @@ Video field analysis ../../gst/fieldanalysis/.libs/libgstfieldanalysis.so libgstfieldanalysis.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-flite.xml b/docs/plugins/inspect/plugin-flite.xml new file mode 100644 index 0000000..bf1c4d8 --- /dev/null +++ b/docs/plugins/inspect/plugin-flite.xml @@ -0,0 +1,28 @@ + + flite + Flite speech synthesizer plugin + ../../ext/flite/.libs/libgstflite.so + libgstflite.so + 0.10.22.1 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins git + Unknown package origin + + + flitetestsrc + Flite speech test source + Source/Audio + Creates audio test signals identifying channels + David Schleef <ds@schleef.org> + + + src + source + always +
    audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)[ 1, 8 ]
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-fragmented.xml b/docs/plugins/inspect/plugin-fragmented.xml index c21052a..6ef8d2f 100644 --- a/docs/plugins/inspect/plugin-fragmented.xml +++ b/docs/plugins/inspect/plugin-fragmented.xml @@ -3,7 +3,7 @@ Fragmented streaming plugins ../../gst/hls/.libs/libgstfragmented.so libgstfragmented.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins @@ -24,9 +24,9 @@ Andoni Morales Alastruey <ylatuya@gmail.com>
    application/x-hls
    - src + src%d source - always + sometimes
    ANY
    diff --git a/docs/plugins/inspect/plugin-freeverb.xml b/docs/plugins/inspect/plugin-freeverb.xml new file mode 100644 index 0000000..f249107 --- /dev/null +++ b/docs/plugins/inspect/plugin-freeverb.xml @@ -0,0 +1,34 @@ + + freeverb + Reverberation/room effect + ../../gst/freeverb/.libs/libgstfreeverb.so + libgstfreeverb.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + freeverb + Stereo positioning + Filter/Effect/Audio + Reverberation/room effect + Stefan Sauer <ensonic@users.sf.net> + + + sink + sink + always +
    audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], 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)2, endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], 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-freeze.xml b/docs/plugins/inspect/plugin-freeze.xml index c486b74..8f21e8c 100644 --- a/docs/plugins/inspect/plugin-freeze.xml +++ b/docs/plugins/inspect/plugin-freeze.xml @@ -3,7 +3,7 @@ Stream freezer ../../gst/freeze/.libs/libgstfreeze.so libgstfreeze.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-frei0r.xml b/docs/plugins/inspect/plugin-frei0r.xml index 060f64c..5c0edc4 100644 --- a/docs/plugins/inspect/plugin-frei0r.xml +++ b/docs/plugins/inspect/plugin-frei0r.xml @@ -3,7 +3,7 @@ frei0r plugin library ../../gst/frei0r/.libs/libgstfrei0r.so libgstfrei0r.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -640,6 +640,27 @@ + frei0r-filter-opencvfacedetect + opencvfacedetect + Filter/Effect/Video + detect faces + 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-perspective Perspective Filter/Effect/Video diff --git a/docs/plugins/inspect/plugin-gaudieffects.xml b/docs/plugins/inspect/plugin-gaudieffects.xml index 5602dff..116ec8e 100644 --- a/docs/plugins/inspect/plugin-gaudieffects.xml +++ b/docs/plugins/inspect/plugin-gaudieffects.xml @@ -3,7 +3,7 @@ Gaudi video effects. ../../gst/gaudieffects/.libs/libgstgaudieffects.so libgstgaudieffects.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-geometrictransform.xml b/docs/plugins/inspect/plugin-geometrictransform.xml index 76dc1dc..2717c5d 100644 --- a/docs/plugins/inspect/plugin-geometrictransform.xml +++ b/docs/plugins/inspect/plugin-geometrictransform.xml @@ -3,7 +3,7 @@ Various geometric image transform elements ../../gst/geometrictransform/.libs/libgstgeometrictransform.so libgstgeometrictransform.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -77,7 +77,7 @@ fisheye Transform/Effect/Video Split the image into two halves and reflect one over each other - Filippo Argiolas <filippo.argiolas@gmail.com + Filippo Argiolas <filippo.argiolas@gmail.com> sink @@ -140,7 +140,7 @@ mirror Transform/Effect/Video Split the image into two halves and reflect one over each other - Filippo Argiolas <filippo.argiolas@gmail.com + Filippo Argiolas <filippo.argiolas@gmail.com> sink @@ -181,7 +181,7 @@ rotate rotate Transform/Effect/Video - Warps the picture into an arc shaped form + Rotates the picture by an arbitrary angle Thiago Santos<thiago.sousa.santos@collabora.co.uk> @@ -224,7 +224,7 @@ square Transform/Effect/Video Distort center part of the image into a square - Filippo Argiolas <filippo.argiolas@gmail.com + Filippo Argiolas <filippo.argiolas@gmail.com> sink diff --git a/docs/plugins/inspect/plugin-gmedec.xml b/docs/plugins/inspect/plugin-gmedec.xml index 2d280c8..38397e5 100644 --- a/docs/plugins/inspect/plugin-gmedec.xml +++ b/docs/plugins/inspect/plugin-gmedec.xml @@ -3,7 +3,7 @@ GME Audio Decoder ../../ext/gme/.libs/libgstgme.so libgstgme.so - 0.10.19.1 + 0.10.22.1 LGPL gst-plugins-bad GStreamer Bad Plug-ins git diff --git a/docs/plugins/inspect/plugin-gsettings.xml b/docs/plugins/inspect/plugin-gsettings.xml index 231c9c8..2a5ac70 100644 --- a/docs/plugins/inspect/plugin-gsettings.xml +++ b/docs/plugins/inspect/plugin-gsettings.xml @@ -3,7 +3,7 @@ GSettings plugin ../../ext/gsettings/.libs/libgstgsettingselements.so libgstgsettingselements.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-gsm.xml b/docs/plugins/inspect/plugin-gsm.xml index 9273958..bd26d45 100644 --- a/docs/plugins/inspect/plugin-gsm.xml +++ b/docs/plugins/inspect/plugin-gsm.xml @@ -3,7 +3,7 @@ GSM encoder/decoder ../../ext/gsm/.libs/libgstgsm.so libgstgsm.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-gstsiren.xml b/docs/plugins/inspect/plugin-gstsiren.xml index c52f98c..7fbd1de 100644 --- a/docs/plugins/inspect/plugin-gstsiren.xml +++ b/docs/plugins/inspect/plugin-gstsiren.xml @@ -3,7 +3,7 @@ Siren encoder/decoder/payloader/depayloader plugins ../../gst/siren/.libs/libgstsiren.so libgstsiren.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-h264parse.xml b/docs/plugins/inspect/plugin-h264parse.xml index fcc63aa..c8b34a2 100644 --- a/docs/plugins/inspect/plugin-h264parse.xml +++ b/docs/plugins/inspect/plugin-h264parse.xml @@ -3,7 +3,7 @@ Element parsing raw h264 streams ../../gst/h264parse/.libs/libgsth264parse.so libgsth264parse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-hdvparse.xml b/docs/plugins/inspect/plugin-hdvparse.xml index fa817ca..9a668fc 100644 --- a/docs/plugins/inspect/plugin-hdvparse.xml +++ b/docs/plugins/inspect/plugin-hdvparse.xml @@ -3,7 +3,7 @@ HDV private stream parser ../../gst/hdvparse/.libs/libgsthdvparse.so libgsthdvparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-id3tag.xml b/docs/plugins/inspect/plugin-id3tag.xml index e8957b2..2034f4c 100644 --- a/docs/plugins/inspect/plugin-id3tag.xml +++ b/docs/plugins/inspect/plugin-id3tag.xml @@ -3,7 +3,7 @@ ID3 v1 and v2 muxing plugin ../../gst/id3tag/.libs/libgstid3tag.so libgstid3tag.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-inter.xml b/docs/plugins/inspect/plugin-inter.xml new file mode 100644 index 0000000..efbdd39 --- /dev/null +++ b/docs/plugins/inspect/plugin-inter.xml @@ -0,0 +1,73 @@ + + inter + plugin for inter-pipeline communication + ../../gst/inter/.libs/libgstinter.so + libgstinter.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + interaudiosink + FIXME Long name + Generic + FIXME Description + FIXME <fixme@example.com> + + + sink + sink + always +
    audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]
    +
    +
    +
    + + interaudiosrc + FIXME Long name + Generic + FIXME Description + FIXME <fixme@example.com> + + + 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, 2 ]
    +
    +
    +
    + + intervideosink + FIXME Long name + Generic + FIXME Description + FIXME <fixme@example.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 ]
    +
    +
    +
    + + intervideosrc + FIXME Long name + Generic + FIXME Description + FIXME <fixme@example.com> + + + 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-interlace.xml b/docs/plugins/inspect/plugin-interlace.xml index 4f7fd8d..f84c6fe 100644 --- a/docs/plugins/inspect/plugin-interlace.xml +++ b/docs/plugins/inspect/plugin-interlace.xml @@ -3,7 +3,7 @@ Create an interlaced video stream ../../gst/interlace/.libs/libgstinterlace.so libgstinterlace.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-invtelecine.xml b/docs/plugins/inspect/plugin-invtelecine.xml index 12d41d3..7443b48 100644 --- a/docs/plugins/inspect/plugin-invtelecine.xml +++ b/docs/plugins/inspect/plugin-invtelecine.xml @@ -3,10 +3,10 @@ Inverse Telecine ../../gst/invtelecine/.libs/libgstinvtelecine.so libgstinvtelecine.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-ivfparse.xml b/docs/plugins/inspect/plugin-ivfparse.xml index 05e7706..b724818 100644 --- a/docs/plugins/inspect/plugin-ivfparse.xml +++ b/docs/plugins/inspect/plugin-ivfparse.xml @@ -3,7 +3,7 @@ IVF parser ../../gst/ivfparse/.libs/libgstivfparse.so libgstivfparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-jp2kdecimator.xml b/docs/plugins/inspect/plugin-jp2kdecimator.xml index 1306a4e..308ca79 100644 --- a/docs/plugins/inspect/plugin-jp2kdecimator.xml +++ b/docs/plugins/inspect/plugin-jp2kdecimator.xml @@ -3,7 +3,7 @@ JPEG2000 decimator ../../gst/jp2kdecimator/.libs/libgstjp2kdecimator.so libgstjp2kdecimator.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-jpegformat.xml b/docs/plugins/inspect/plugin-jpegformat.xml index 5a52140..f80015e 100644 --- a/docs/plugins/inspect/plugin-jpegformat.xml +++ b/docs/plugins/inspect/plugin-jpegformat.xml @@ -3,7 +3,7 @@ JPEG interchange format plugin ../../gst/jpegformat/.libs/libgstjpegformat.so libgstjpegformat.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -12,7 +12,7 @@ jifmux JPEG stream muxer - Video/Muxer + Video/Formatter Remuxes JPEG images with markers and tags Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> diff --git a/docs/plugins/inspect/plugin-kate.xml b/docs/plugins/inspect/plugin-kate.xml index 2e53429..c8ef18d 100644 --- a/docs/plugins/inspect/plugin-kate.xml +++ b/docs/plugins/inspect/plugin-kate.xml @@ -3,7 +3,7 @@ Kate plugin ../../ext/kate/.libs/libgstkate.so libgstkate.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -110,13 +110,13 @@ 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 ]
    +
    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-yuv, format=(fourcc){ AYUV, I420, YV12, UYVY, NV12, NV21 }, 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 ]
    +
    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-yuv, format=(fourcc){ AYUV, I420, YV12, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    diff --git a/docs/plugins/inspect/plugin-ladspa.xml b/docs/plugins/inspect/plugin-ladspa.xml index f9cf918..6d7d163 100644 --- a/docs/plugins/inspect/plugin-ladspa.xml +++ b/docs/plugins/inspect/plugin-ladspa.xml @@ -3,7 +3,7 @@ All LADSPA plugins ../../ext/ladspa/.libs/libgstladspa.so libgstladspa.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-legacyresample.xml b/docs/plugins/inspect/plugin-legacyresample.xml index 3aac738..077654c 100644 --- a/docs/plugins/inspect/plugin-legacyresample.xml +++ b/docs/plugins/inspect/plugin-legacyresample.xml @@ -3,7 +3,7 @@ Resamples audio ../../gst/legacyresample/.libs/libgstlegacyresample.so libgstlegacyresample.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-linsys.xml b/docs/plugins/inspect/plugin-linsys.xml index fddd936..9ce7b6f 100644 --- a/docs/plugins/inspect/plugin-linsys.xml +++ b/docs/plugins/inspect/plugin-linsys.xml @@ -3,7 +3,7 @@ FIXME ../../sys/linsys/.libs/libgstlinsys.so libgstlinsys.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins diff --git a/docs/plugins/inspect/plugin-liveadder.xml b/docs/plugins/inspect/plugin-liveadder.xml index d7e1542..1088d04 100644 --- a/docs/plugins/inspect/plugin-liveadder.xml +++ b/docs/plugins/inspect/plugin-liveadder.xml @@ -3,7 +3,7 @@ Adds multiple live discontinuous streams ../../gst/liveadder/.libs/libgstliveadder.so libgstliveadder.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-lv2.xml b/docs/plugins/inspect/plugin-lv2.xml index ff9a727..ddfd1d8 100644 --- a/docs/plugins/inspect/plugin-lv2.xml +++ b/docs/plugins/inspect/plugin-lv2.xml @@ -3,13 +3,790 @@ All LV2 plugins ../../ext/lv2/.libs/libgstlv2.so libgstlv2.so - 0.10.19.1 + 0.10.22.1 LGPL gst-plugins-bad GStreamer Bad Plug-ins git Unknown package origin + calf-sourceforge-net-plugins-BassEnhancer + Calf Bass Enhancer + Filter/Effect/Audio/LV2 + Calf Bass Enhancer + Markus Schmidt / Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Compressor + Calf Compressor + Filter/Effect/Audio/LV2 + Calf Compressor + Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Deesser + Calf Deesser + Filter/Effect/Audio/LV2 + Calf Deesser + Markus Schmidt / Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Equalizer12Band + Calf Equalizer 12 Band + Filter/Effect/Audio/LV2 + Calf Equalizer 12 Band + Markus Schmidt + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Equalizer5Band + Calf Equalizer 5 Band + Filter/Effect/Audio/LV2 + Calf Equalizer 5 Band + Markus Schmidt + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Equalizer8Band + Calf Equalizer 8 Band + Filter/Effect/Audio/LV2 + Calf Equalizer 8 Band + Markus Schmidt + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Exciter + Calf Exciter + Filter/Effect/Audio/LV2 + Calf Exciter + Markus Schmidt / Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Filter + Calf Filter + Filter/Effect/Audio/LV2 + Calf Filter + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Filterclavier + Calf Filterclavier + Filter/Effect/Audio/LV2 + Calf Filterclavier + Krzysztof Foltman / Hans Baier + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Flanger + Calf Flanger + Filter/Effect/Audio/LV2 + Calf Flanger + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Fluidsynth + Calf Fluidsynth + Source/Audio/LV2 + Calf Fluidsynth + FluidSynth Team / Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Gate + Calf Gate + Filter/Effect/Audio/LV2 + Calf Gate + Damien Zammit / Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Monosynth + Calf Monosynth + Source/Audio/LV2 + Calf Monosynth + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-MultiChorus + Calf MultiChorus + Filter/Effect/Audio/LV2 + Calf MultiChorus + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Multibandcompressor + Calf Multiband Compressor + Filter/Effect/Audio/LV2 + Calf Multiband Compressor + Markus Schmidt / Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Organ + Calf Organ + Source/Audio/LV2 + Calf Organ + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Phaser + Calf Phaser + Filter/Effect/Audio/LV2 + Calf Phaser + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Pulsator + Calf Pulsator + Filter/Effect/Audio/LV2 + Calf Pulsator + Markus Schmidt + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Reverb + Calf Reverb + Filter/Effect/Audio/LV2 + Calf Reverb + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-RotarySpeaker + Calf Rotary Speaker + Filter/Effect/Audio/LV2 + Calf Rotary Speaker + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Saturator + Calf Saturator + Filter/Effect/Audio/LV2 + Calf Saturator + Markus Schmidt / Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Sidechaincompressor + Calf Sidechain Compressor + Filter/Effect/Audio/LV2 + Calf Sidechain Compressor + Markus Schmidt / Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Sidechaingate + Calf Sidechain Gate + Filter/Effect/Audio/LV2 + Calf Sidechain Gate + Markus Schmidt / Damien Zammit / Thor Harald Johansen + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-VintageDelay + Calf Vintage Delay + Filter/Effect/Audio/LV2 + Calf Vintage Delay + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + + calf-sourceforge-net-plugins-Wavetable + Calf Wavetable + Source/Audio/LV2 + Calf Wavetable + Krzysztof Foltman + + + 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 ]
    +
    +
    +
    + invadarecords-com-plugins-lv2-compressor-mono Invada Compressor (mono) Filter/Effect/Audio/LV2 @@ -33,28 +810,40 @@ invadarecords-com-plugins-lv2-compressor-stereo Invada Compressor (stereo) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Compressor (stereo) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-delay-mono Invada Delay Munge (mono in) - Sink/Analyzer/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Delay Munge (mono in) Invada @@ -65,38 +854,56 @@
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-delay-sum Invada Delay Munge (sum L+R in) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Delay Munge (sum L+R in) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-erreverb-mono Invada Early Reflection Reverb (mono in) - Sink/Analyzer/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Early Reflection Reverb (mono in) Invada @@ -107,31 +914,49 @@
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-erreverb-sum Invada Early Reflection Reverb (sum L+R in) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Early Reflection Reverb (sum L+R in) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -159,21 +984,33 @@ invadarecords-com-plugins-lv2-filter-hpf-stereo Invada High Pass Filter (stereo) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada High Pass Filter (stereo) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -201,42 +1038,66 @@ invadarecords-com-plugins-lv2-filter-lpf-stereo Invada Low Pass Filter (stereo) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Low Pass Filter (stereo) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-input Invada Input Module - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Input Module Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -276,7 +1137,7 @@ invadarecords-com-plugins-lv2-phaser-mono Invada Stereo Phaser (mono in) - Sink/Analyzer/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Stereo Phaser (mono in) Invada @@ -287,17 +1148,23 @@
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-phaser-stereo Invada Stereo Phaser (stereo in) - Sink/Analyzer/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Stereo Phaser (stereo in) Invada @@ -314,31 +1181,49 @@
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    invadarecords-com-plugins-lv2-phaser-sum Invada Stereo Phaser (sum L+R in) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Stereo Phaser (sum L+R in) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -381,21 +1266,33 @@ invadarecords-com-plugins-lv2-tube-stereo Invada Tube Distortion (stereo) - Source/Audio/LV2 + Filter/Effect/Audio/LV2 Invada Tube Distortion (stereo) Invada - in + inL sink always -
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    - out + 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)2, rate=(int)[ 1, 2147483647 ]
    +
    audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    diff --git a/docs/plugins/inspect/plugin-mimic.xml b/docs/plugins/inspect/plugin-mimic.xml index 2e14804..6e4569c 100644 --- a/docs/plugins/inspect/plugin-mimic.xml +++ b/docs/plugins/inspect/plugin-mimic.xml @@ -3,7 +3,7 @@ Mimic codec ../../ext/mimic/.libs/libgstmimic.so libgstmimic.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mms.xml b/docs/plugins/inspect/plugin-mms.xml index 0367e48..acbe053 100644 --- a/docs/plugins/inspect/plugin-mms.xml +++ b/docs/plugins/inspect/plugin-mms.xml @@ -3,7 +3,7 @@ Microsoft Multi Media Server streaming protocol support ../../ext/libmms/.libs/libgstmms.so libgstmms.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-modplug.xml b/docs/plugins/inspect/plugin-modplug.xml index 4566d7d..b1582e1 100644 --- a/docs/plugins/inspect/plugin-modplug.xml +++ b/docs/plugins/inspect/plugin-modplug.xml @@ -3,7 +3,7 @@ .MOD audio decoding ../../ext/modplug/.libs/libgstmodplug.so libgstmodplug.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mpeg2enc.xml b/docs/plugins/inspect/plugin-mpeg2enc.xml index 29b5046..51d90ee 100644 --- a/docs/plugins/inspect/plugin-mpeg2enc.xml +++ b/docs/plugins/inspect/plugin-mpeg2enc.xml @@ -3,7 +3,7 @@ High-quality MPEG-1/2 video encoder ../../ext/mpeg2enc/.libs/libgstmpeg2enc.so libgstmpeg2enc.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mpeg4videoparse.xml b/docs/plugins/inspect/plugin-mpeg4videoparse.xml index 21ebf36..3557a44 100644 --- a/docs/plugins/inspect/plugin-mpeg4videoparse.xml +++ b/docs/plugins/inspect/plugin-mpeg4videoparse.xml @@ -3,10 +3,10 @@ MPEG-4 video parser ../../gst/mpeg4videoparse/.libs/libgstmpeg4videoparse.so libgstmpeg4videoparse.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-mpegdemux2.xml b/docs/plugins/inspect/plugin-mpegdemux2.xml index b887040..bd5a9d5 100644 --- a/docs/plugins/inspect/plugin-mpegdemux2.xml +++ b/docs/plugins/inspect/plugin-mpegdemux2.xml @@ -3,7 +3,7 @@ MPEG demuxers ../../gst/mpegdemux/.libs/libgstmpegdemux.so libgstmpegdemux.so - 0.10.22 + 0.10.23 unknown gst-plugins-bad GStreamer Bad Plug-ins source release @@ -26,7 +26,7 @@ audio_%02x source sometimes -
    audio/mpeg, mpegversion=(int){ 1, 4 }; audio/x-private1-lpcm; audio/x-private1-ac3; audio/x-private1-dts; audio/ac3
    +
    audio/mpeg, mpegversion=(int)1; audio/mpeg, mpegversion=(int)4, stream-format=(string){ adts, loas }; audio/x-private1-lpcm; audio/x-private1-ac3; audio/x-private1-dts; audio/ac3
    private_%d @@ -65,7 +65,7 @@ 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
    +
    audio/mpeg, mpegversion=(int)1; audio/mpeg, mpegversion=(int)4, stream-format=(string){ adts, loas }; 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 diff --git a/docs/plugins/inspect/plugin-mpegpsmux.xml b/docs/plugins/inspect/plugin-mpegpsmux.xml index 95c0809..51bb99e 100644 --- a/docs/plugins/inspect/plugin-mpegpsmux.xml +++ b/docs/plugins/inspect/plugin-mpegpsmux.xml @@ -3,7 +3,7 @@ MPEG-PS muxer ../../gst/mpegpsmux/.libs/libgstmpegpsmux.so libgstmpegpsmux.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,7 +20,7 @@ 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 }
    +
    video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-dirac; video/x-h264; audio/mpeg, mpegversion=(int){ 1, 2 }; audio/mpeg, mpegversion=(int)4, stream-format=(string){ raw, adts }; 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 diff --git a/docs/plugins/inspect/plugin-mpegtsdemux.xml b/docs/plugins/inspect/plugin-mpegtsdemux.xml index e41ca44..04c408e 100644 --- a/docs/plugins/inspect/plugin-mpegtsdemux.xml +++ b/docs/plugins/inspect/plugin-mpegtsdemux.xml @@ -3,7 +3,7 @@ MPEG TS demuxer ../../gst/mpegtsdemux/.libs/libgstmpegtsdemux.so libgstmpegtsdemux.so - 0.10.22 + 0.10.23 unknown gst-plugins-bad GStreamer Bad Plug-ins source release @@ -14,7 +14,8 @@ 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> + Zaheer Abbas Merali <zaheerabbas at merali dot org> +Edward Hervey <edward.hervey@collabora.co.uk> sink @@ -26,7 +27,7 @@ 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
    +
    audio/mpeg, mpegversion=(int)1; audio/mpeg, mpegversion=(int)4, stream-format=(string)adts; 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 diff --git a/docs/plugins/inspect/plugin-mpegtsmux.xml b/docs/plugins/inspect/plugin-mpegtsmux.xml index a83cc83..621dcd0 100644 --- a/docs/plugins/inspect/plugin-mpegtsmux.xml +++ b/docs/plugins/inspect/plugin-mpegtsmux.xml @@ -3,7 +3,7 @@ MPEG-TS muxer ../../gst/mpegtsmux/.libs/libgstmpegtsmux.so libgstmpegtsmux.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,7 +20,7 @@ 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
    +
    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 }; audio/mpeg, mpegversion=(int)4, stream-format=(string){ raw, adts }; 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 diff --git a/docs/plugins/inspect/plugin-mpegvideoparse.xml b/docs/plugins/inspect/plugin-mpegvideoparse.xml index e75848d..10f45a2 100644 --- a/docs/plugins/inspect/plugin-mpegvideoparse.xml +++ b/docs/plugins/inspect/plugin-mpegvideoparse.xml @@ -3,14 +3,14 @@ MPEG-1 and MPEG-2 video parser ../../gst/mpegvideoparse/.libs/libgstmpegvideoparse.so libgstmpegvideoparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release Unknown package origin - mpegvideoparse + legacympegvideoparse MPEG video elementary stream parser Codec/Parser/Video Parses and frames MPEG-1 and MPEG-2 elementary video streams diff --git a/docs/plugins/inspect/plugin-mplex.xml b/docs/plugins/inspect/plugin-mplex.xml index 2380b86..1a5cc81 100644 --- a/docs/plugins/inspect/plugin-mplex.xml +++ b/docs/plugins/inspect/plugin-mplex.xml @@ -3,7 +3,7 @@ High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer ../../ext/mplex/.libs/libgstmplex.so libgstmplex.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -16,7 +16,7 @@ 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 +Mark Nauwelaerts <mnauw@users.sourceforge.net> audio_%d diff --git a/docs/plugins/inspect/plugin-musepack.xml b/docs/plugins/inspect/plugin-musepack.xml index 8e0a30b..abb804a 100644 --- a/docs/plugins/inspect/plugin-musepack.xml +++ b/docs/plugins/inspect/plugin-musepack.xml @@ -3,7 +3,7 @@ Musepack decoder ../../ext/musepack/.libs/libgstmusepack.so libgstmusepack.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-musicbrainz.xml b/docs/plugins/inspect/plugin-musicbrainz.xml index f7bf1a4..b494d33 100644 --- a/docs/plugins/inspect/plugin-musicbrainz.xml +++ b/docs/plugins/inspect/plugin-musicbrainz.xml @@ -3,7 +3,7 @@ A TRM signature producer based on libmusicbrainz ../../ext/musicbrainz/.libs/libgsttrm.so libgsttrm.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mve.xml b/docs/plugins/inspect/plugin-mve.xml index d695d35..1a0bfc6 100644 --- a/docs/plugins/inspect/plugin-mve.xml +++ b/docs/plugins/inspect/plugin-mve.xml @@ -3,7 +3,7 @@ Interplay MVE movie format manipulation ../../gst/mve/.libs/libgstmve.so libgstmve.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mxf.xml b/docs/plugins/inspect/plugin-mxf.xml index e651a56..6be7427 100644 --- a/docs/plugins/inspect/plugin-mxf.xml +++ b/docs/plugins/inspect/plugin-mxf.xml @@ -3,7 +3,7 @@ MXF plugin library ../../gst/mxf/.libs/libgstmxf.so libgstmxf.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-mythtv.xml b/docs/plugins/inspect/plugin-mythtv.xml index e96d6dd..99b33f4 100644 --- a/docs/plugins/inspect/plugin-mythtv.xml +++ b/docs/plugins/inspect/plugin-mythtv.xml @@ -3,7 +3,7 @@ lib MythTV src ../../ext/mythtv/.libs/libgstmythtvsrc.so libgstmythtvsrc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-nas.xml b/docs/plugins/inspect/plugin-nas.xml index 5e3ff0a..babcc17 100644 --- a/docs/plugins/inspect/plugin-nas.xml +++ b/docs/plugins/inspect/plugin-nas.xml @@ -3,10 +3,10 @@ NAS (Network Audio System) support for GStreamer ../../ext/nas/.libs/libgstnassink.so libgstnassink.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-neon.xml b/docs/plugins/inspect/plugin-neon.xml index b1c14b8..3bc1f14 100644 --- a/docs/plugins/inspect/plugin-neon.xml +++ b/docs/plugins/inspect/plugin-neon.xml @@ -3,7 +3,7 @@ lib neon http client src ../../ext/neon/.libs/libgstneonhttpsrc.so libgstneonhttpsrc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-nsf.xml b/docs/plugins/inspect/plugin-nsf.xml index f828566..e9b9cad 100644 --- a/docs/plugins/inspect/plugin-nsf.xml +++ b/docs/plugins/inspect/plugin-nsf.xml @@ -3,7 +3,7 @@ Uses nosefart to decode .nsf files ../../gst/nsf/.libs/libgstnsf.so libgstnsf.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-nuvdemux.xml b/docs/plugins/inspect/plugin-nuvdemux.xml index 94eb4e9..eaf0c4b 100644 --- a/docs/plugins/inspect/plugin-nuvdemux.xml +++ b/docs/plugins/inspect/plugin-nuvdemux.xml @@ -3,7 +3,7 @@ Demuxes MythTV NuppelVideo files ../../gst/nuvdemux/.libs/libgstnuvdemux.so libgstnuvdemux.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-ofa.xml b/docs/plugins/inspect/plugin-ofa.xml index 455cb6f..8519340 100644 --- a/docs/plugins/inspect/plugin-ofa.xml +++ b/docs/plugins/inspect/plugin-ofa.xml @@ -3,7 +3,7 @@ Calculate MusicIP fingerprint from audio files ../../ext/ofa/.libs/libgstofa.so libgstofa.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-opencv.xml b/docs/plugins/inspect/plugin-opencv.xml index 598546c..f5a7b42 100644 --- a/docs/plugins/inspect/plugin-opencv.xml +++ b/docs/plugins/inspect/plugin-opencv.xml @@ -3,10 +3,10 @@ GStreamer OpenCV Plugins ../../ext/opencv/.libs/libgstopencv.so libgstopencv.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-patchdetect.xml b/docs/plugins/inspect/plugin-patchdetect.xml index 0f78894..baf5ac7 100644 --- a/docs/plugins/inspect/plugin-patchdetect.xml +++ b/docs/plugins/inspect/plugin-patchdetect.xml @@ -3,7 +3,7 @@ patchdetect element ../../gst/patchdetect/.libs/libgstpatchdetect.so libgstpatchdetect.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins diff --git a/docs/plugins/inspect/plugin-pcapparse.xml b/docs/plugins/inspect/plugin-pcapparse.xml index bfcc239..9cff580 100644 --- a/docs/plugins/inspect/plugin-pcapparse.xml +++ b/docs/plugins/inspect/plugin-pcapparse.xml @@ -3,13 +3,34 @@ Element parsing raw pcap streams ../../gst/pcapparse/.libs/libgstpcapparse.so libgstpcapparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer http://gstreamer.net/ + irtspparse + IRTSPParse + Raw/Parser + Parses a raw interleaved RTSP stream + Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + + sink + sink + always +
    ANY
    +
    + + src + source + always +
    application/x-rtp; application/x-rtcp
    +
    +
    +
    + pcapparse PCapParse Raw/Parser diff --git a/docs/plugins/inspect/plugin-pnm.xml b/docs/plugins/inspect/plugin-pnm.xml index a0480c8..b48e8f7 100644 --- a/docs/plugins/inspect/plugin-pnm.xml +++ b/docs/plugins/inspect/plugin-pnm.xml @@ -3,7 +3,7 @@ PNM plugin ../../gst/pnm/.libs/libgstpnm.so libgstpnm.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-rawparse.xml b/docs/plugins/inspect/plugin-rawparse.xml index 9c0b9c1..d9ce953 100644 --- a/docs/plugins/inspect/plugin-rawparse.xml +++ b/docs/plugins/inspect/plugin-rawparse.xml @@ -3,7 +3,7 @@ Parses byte streams into raw frames ../../gst/rawparse/.libs/libgstrawparse.so libgstrawparse.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-real.xml b/docs/plugins/inspect/plugin-real.xml index 13ee561..d781465 100644 --- a/docs/plugins/inspect/plugin-real.xml +++ b/docs/plugins/inspect/plugin-real.xml @@ -3,7 +3,7 @@ Decode REAL streams ../../gst/real/.libs/libgstreal.so libgstreal.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-removesilence.xml b/docs/plugins/inspect/plugin-removesilence.xml new file mode 100644 index 0000000..3003873 --- /dev/null +++ b/docs/plugins/inspect/plugin-removesilence.xml @@ -0,0 +1,35 @@ + + removesilence + Removes silence from an audio stream + ../../gst/removesilence/.libs/libgstremovesilence.so + libgstremovesilence.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + removesilence + RemoveSilence + Filter/Effect/Audio + Removes all the silence periods from the audio stream. + Tiago Katcipis <tiagokatcipis@gmail.com> + Paulo Pizarro <paulo.pizarro@gmail.com> + + + sink + sink + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)1, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
    +
    + + src + source + always +
    audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)1, 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-resindvd.xml b/docs/plugins/inspect/plugin-resindvd.xml index ddcc18b..13efc61 100644 --- a/docs/plugins/inspect/plugin-resindvd.xml +++ b/docs/plugins/inspect/plugin-resindvd.xml @@ -3,7 +3,7 @@ Resin DVD playback elements ../../ext/resindvd/.libs/libresindvd.so libresindvd.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-rfbsrc.xml b/docs/plugins/inspect/plugin-rfbsrc.xml index a72a64a..2068035 100644 --- a/docs/plugins/inspect/plugin-rfbsrc.xml +++ b/docs/plugins/inspect/plugin-rfbsrc.xml @@ -3,7 +3,7 @@ Connects to a VNC server and decodes RFB stream ../../gst/librfb/.libs/libgstrfbsrc.so libgstrfbsrc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-rsvg.xml b/docs/plugins/inspect/plugin-rsvg.xml index 45b0152..8c9e329 100644 --- a/docs/plugins/inspect/plugin-rsvg.xml +++ b/docs/plugins/inspect/plugin-rsvg.xml @@ -3,7 +3,7 @@ RSVG plugin library ../../ext/rsvg/.libs/libgstrsvg.so libgstrsvg.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-rtmpsrc.xml b/docs/plugins/inspect/plugin-rtmp.xml similarity index 57% rename from docs/plugins/inspect/plugin-rtmpsrc.xml rename to docs/plugins/inspect/plugin-rtmp.xml index a51ac7a..ca6c8e4 100644 --- a/docs/plugins/inspect/plugin-rtmpsrc.xml +++ b/docs/plugins/inspect/plugin-rtmp.xml @@ -1,15 +1,30 @@ - rtmpsrc - RTMP source + rtmp + RTMP source and sink ../../ext/rtmp/.libs/libgstrtmp.so libgstrtmp.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release Unknown package origin + rtmpsink + RTMP output sink + Sink/Network + Sends FLV content to a server via RTMP + Jan Schmidt <thaytan@noraisin.net> + + + sink + sink + always +
    video/x-flv
    +
    +
    +
    + rtmpsrc RTMP Source Source/File diff --git a/docs/plugins/inspect/plugin-rtpmux.xml b/docs/plugins/inspect/plugin-rtpmux.xml index 4129c0f..b6b295d 100644 --- a/docs/plugins/inspect/plugin-rtpmux.xml +++ b/docs/plugins/inspect/plugin-rtpmux.xml @@ -3,7 +3,7 @@ RTP Muxer plugins ../../gst/rtpmux/.libs/libgstrtpmux.so libgstrtpmux.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-rtpvp8.xml b/docs/plugins/inspect/plugin-rtpvp8.xml index bf236a5..94a7d35 100644 --- a/docs/plugins/inspect/plugin-rtpvp8.xml +++ b/docs/plugins/inspect/plugin-rtpvp8.xml @@ -3,7 +3,7 @@ rtpvp8 ../../gst/rtpvp8/.libs/libgstrtpvp8.so libgstrtpvp8.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,7 +20,7 @@ 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
    +
    application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-IETF-01
    src @@ -47,7 +47,7 @@ src source always -
    application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-0-3-2
    +
    application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01
    diff --git a/docs/plugins/inspect/plugin-scaletempo.xml b/docs/plugins/inspect/plugin-scaletempo.xml index 91b283e..55437ce 100644 --- a/docs/plugins/inspect/plugin-scaletempo.xml +++ b/docs/plugins/inspect/plugin-scaletempo.xml @@ -3,7 +3,7 @@ Scale audio tempo in sync with playback rate ../../gst/scaletempo/.libs/libgstscaletempoplugin.so libgstscaletempoplugin.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-schro.xml b/docs/plugins/inspect/plugin-schro.xml index 8772bcb..c2425b6 100644 --- a/docs/plugins/inspect/plugin-schro.xml +++ b/docs/plugins/inspect/plugin-schro.xml @@ -3,7 +3,7 @@ Schroedinger plugin ../../ext/schroedinger/.libs/libgstschro.so libgstschro.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-sdi.xml b/docs/plugins/inspect/plugin-sdi.xml index d725e43..8b941fe 100644 --- a/docs/plugins/inspect/plugin-sdi.xml +++ b/docs/plugins/inspect/plugin-sdi.xml @@ -3,7 +3,7 @@ SDI elements ../../gst/sdi/.libs/libgstsdi.so libgstsdi.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins diff --git a/docs/plugins/inspect/plugin-sdl.xml b/docs/plugins/inspect/plugin-sdl.xml index 85923d8..0693f8a 100644 --- a/docs/plugins/inspect/plugin-sdl.xml +++ b/docs/plugins/inspect/plugin-sdl.xml @@ -3,10 +3,10 @@ SDL (Simple DirectMedia Layer) support for GStreamer ../../ext/sdl/.libs/libgstsdl.so libgstsdl.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-sdp.xml b/docs/plugins/inspect/plugin-sdp.xml index 88ea6bd..832c160 100644 --- a/docs/plugins/inspect/plugin-sdp.xml +++ b/docs/plugins/inspect/plugin-sdp.xml @@ -3,7 +3,7 @@ configure streaming sessions using SDP ../../gst/sdp/.libs/libgstsdpelem.so libgstsdpelem.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-segmentclip.xml b/docs/plugins/inspect/plugin-segmentclip.xml index fb4e49f..d8d7e06 100644 --- a/docs/plugins/inspect/plugin-segmentclip.xml +++ b/docs/plugins/inspect/plugin-segmentclip.xml @@ -3,7 +3,7 @@ Segment clip elements ../../gst/segmentclip/.libs/libgstsegmentclip.so libgstsegmentclip.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-shm.xml b/docs/plugins/inspect/plugin-shm.xml index c65cbd8..c7fa7b4 100644 --- a/docs/plugins/inspect/plugin-shm.xml +++ b/docs/plugins/inspect/plugin-shm.xml @@ -3,7 +3,7 @@ shared memory sink source ../../sys/shm/.libs/libgstshm.so libgstshm.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -29,7 +29,7 @@ Shared Memory Source Source Receive data from the sharem memory sink - Olivier Crete <olivier.crete@collabora.co.uk + Olivier Crete <olivier.crete@collabora.co.uk> src diff --git a/docs/plugins/inspect/plugin-smooth.xml b/docs/plugins/inspect/plugin-smooth.xml new file mode 100644 index 0000000..81586c7 --- /dev/null +++ b/docs/plugins/inspect/plugin-smooth.xml @@ -0,0 +1,34 @@ + + smooth + Apply a smooth filter to an image + ../../gst/smooth/.libs/libgstsmooth.so + libgstsmooth.so + 0.10.23 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + smooth + Smooth effect + Filter/Effect/Video + Apply a smooth filter to an image + Wim Taymans <wim.taymans@chello.be> + + + 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-sndfile.xml b/docs/plugins/inspect/plugin-sndfile.xml index cd6d281..36d3076 100644 --- a/docs/plugins/inspect/plugin-sndfile.xml +++ b/docs/plugins/inspect/plugin-sndfile.xml @@ -3,7 +3,7 @@ use libsndfile to read and write audio from and to files ../../ext/sndfile/.libs/libgstsndfile.so libgstsndfile.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-soundtouch.xml b/docs/plugins/inspect/plugin-soundtouch.xml index 36409a1..60c9c87 100644 --- a/docs/plugins/inspect/plugin-soundtouch.xml +++ b/docs/plugins/inspect/plugin-soundtouch.xml @@ -3,7 +3,7 @@ Audio Pitch Controller & BPM Detection ../../ext/soundtouch/.libs/libgstsoundtouch.so libgstsoundtouch.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-speed.xml b/docs/plugins/inspect/plugin-speed.xml index ca337fe..f680f0e 100644 --- a/docs/plugins/inspect/plugin-speed.xml +++ b/docs/plugins/inspect/plugin-speed.xml @@ -3,7 +3,7 @@ Set speed/pitch on audio/raw streams (resampler) ../../gst/speed/.libs/libgstspeed.so libgstspeed.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-stereo.xml b/docs/plugins/inspect/plugin-stereo.xml index 01807d6..ebde5c5 100644 --- a/docs/plugins/inspect/plugin-stereo.xml +++ b/docs/plugins/inspect/plugin-stereo.xml @@ -3,7 +3,7 @@ Muck with the stereo signal, enhance it's 'stereo-ness' ../../gst/stereo/.libs/libgststereo.so libgststereo.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-subenc.xml b/docs/plugins/inspect/plugin-subenc.xml index 5f7f3ad..0bcc413 100644 --- a/docs/plugins/inspect/plugin-subenc.xml +++ b/docs/plugins/inspect/plugin-subenc.xml @@ -3,7 +3,7 @@ subtitle encoders ../../gst/subenc/.libs/libgstsubenc.so libgstsubenc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -30,5 +30,26 @@
    + + webvttenc + WebVTT encoder + Codec/Encoder/Subtitle + WebVTT subtitle encoder + David Schleef <ds@schleef.org> + + + sink + sink + always +
    text/plain; text/x-pango-markup
    +
    + + src + source + always +
    text/webvtt
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-timidity.xml b/docs/plugins/inspect/plugin-timidity.xml index cfc6c12..7b9b454 100644 --- a/docs/plugins/inspect/plugin-timidity.xml +++ b/docs/plugins/inspect/plugin-timidity.xml @@ -3,11 +3,11 @@ Timidity Plugin ../../ext/timidity/.libs/libgsttimidity.so libgsttimidity.so - 0.10.14.1 + 0.10.22.1 GPL gst-plugins-bad - GStreamer Bad Plug-ins git/prerelease - http://gstreamer.freedesktop.org + GStreamer Bad Plug-ins git + Unknown package origin timidity diff --git a/docs/plugins/inspect/plugin-tta.xml b/docs/plugins/inspect/plugin-tta.xml index e5ff84f..98fdd3a 100644 --- a/docs/plugins/inspect/plugin-tta.xml +++ b/docs/plugins/inspect/plugin-tta.xml @@ -3,7 +3,7 @@ TTA lossless audio format handling ../../gst/tta/.libs/libgsttta.so libgsttta.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-vcdsrc.xml b/docs/plugins/inspect/plugin-vcdsrc.xml index a8941eb..23e05f3 100644 --- a/docs/plugins/inspect/plugin-vcdsrc.xml +++ b/docs/plugins/inspect/plugin-vcdsrc.xml @@ -3,7 +3,7 @@ Asynchronous read from VCD disk ../../sys/vcd/.libs/libgstvcdsrc.so libgstvcdsrc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-vdpau.xml b/docs/plugins/inspect/plugin-vdpau.xml index a65ed34..f32c0d6 100644 --- a/docs/plugins/inspect/plugin-vdpau.xml +++ b/docs/plugins/inspect/plugin-vdpau.xml @@ -3,7 +3,7 @@ Various elements utilizing VDPAU ../../sys/vdpau/.libs/libgstvdpau.so libgstvdpau.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer diff --git a/docs/plugins/inspect/plugin-video3d.xml b/docs/plugins/inspect/plugin-video3d.xml new file mode 100644 index 0000000..ec7fdd7 --- /dev/null +++ b/docs/plugins/inspect/plugin-video3d.xml @@ -0,0 +1,82 @@ + + video3d + Video 3D handling + ../../gst/video3d/.libs/libgstvideo3d.so + libgstvideo3d.so + 0.10.19.1 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + video3dconvert + Video3DConvert + Generic/Video + Convert normal streams in 3D streams + Martin Bisson <martin.bisson@gmail.com> + + + sink + sink + 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)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)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)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-yuv, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, 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){ 1234, 4321 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    + + src + source + always +
    video/x-raw-rgb-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-yuv-stereo, layout=(int){ 1122, 1212 }, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)16, depth=(int)16, endianness=(int){ 1234, 4321 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    +
    +
    + + video3dmerge + Video3DMerge + Generic/Video + Merges left and right video stream into a 3D stream + Martin Bisson <martin.bisson@gmail.com> + + + left_sink + sink + 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)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)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)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-yuv, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, 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){ 1234, 4321 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    + + right_sink + sink + 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)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)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)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-yuv, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, 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){ 1234, 4321 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    + + src + source + always +
    video/x-raw-rgb-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-yuv-stereo, layout=(int){ 1122, 1212 }, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)16, depth=(int)16, endianness=(int){ 1234, 4321 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    +
    +
    + + video3dpresent + Video3DPresent + Generic/Video + Presents 3D stream in various layouts and modes + Martin Bisson <martin.bisson@gmail.com> + + + sink + sink + always +
    video/x-raw-rgb-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-stereo, layout=(int){ 1122, 1212 }, 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-yuv-stereo, layout=(int){ 1122, 1212 }, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray-stereo, bpp=(int)16, depth=(int)16, endianness=(int){ 1234, 4321 }, 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)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)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)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-yuv, format=(fourcc){ YUY2, YVYU, UYVY, Y800, GREY, Y8 , Y16 }, 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){ 1234, 4321 }, 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-videofiltersbad.xml b/docs/plugins/inspect/plugin-videofiltersbad.xml index 82e24f5..bafc8f9 100644 --- a/docs/plugins/inspect/plugin-videofiltersbad.xml +++ b/docs/plugins/inspect/plugin-videofiltersbad.xml @@ -3,7 +3,7 @@ Video filters in gst-plugins-bad ../../gst/videofilters/.libs/libgstvideofiltersbad.so libgstvideofiltersbad.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins diff --git a/docs/plugins/inspect/plugin-videomaxrate.xml b/docs/plugins/inspect/plugin-videomaxrate.xml index b18601c..7d532d0 100644 --- a/docs/plugins/inspect/plugin-videomaxrate.xml +++ b/docs/plugins/inspect/plugin-videomaxrate.xml @@ -3,7 +3,7 @@ Drop extra frames ../../gst/videomaxrate/.libs/libgstvideomaxrate.so libgstvideomaxrate.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-videomeasure.xml b/docs/plugins/inspect/plugin-videomeasure.xml index 17c6b20..c2751e4 100644 --- a/docs/plugins/inspect/plugin-videomeasure.xml +++ b/docs/plugins/inspect/plugin-videomeasure.xml @@ -3,7 +3,7 @@ Various video measurers ../../gst/videomeasure/.libs/libgstvideomeasure.so libgstvideomeasure.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-videoparsersbad.xml b/docs/plugins/inspect/plugin-videoparsersbad.xml index 5244dde..e4cf6e8 100644 --- a/docs/plugins/inspect/plugin-videoparsersbad.xml +++ b/docs/plugins/inspect/plugin-videoparsersbad.xml @@ -3,7 +3,7 @@ videoparsers ../../gst/videoparsers/.libs/libgstvideoparsersbad.so libgstvideoparsersbad.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,13 +20,13 @@ sink sink always -
    video/x-dirac, parsed=(boolean)false
    +
    video/x-dirac
    src source always -
    video/x-dirac, parsed=(boolean)true
    +
    video/x-dirac, parsed=(boolean)true, 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 }, profile=(int)[ 0, 2147483647 ], level=(int)[ 0, 2147483647 ]
    @@ -41,20 +41,20 @@ sink sink always -
    video/x-h263, variant=(string)itu, parsed=(boolean)false
    +
    video/x-h263, variant=(string)itu
    src source always -
    video/x-h263, variant=(string)itu, parsed=(boolean)true
    +
    video/x-h263, variant=(string)itu, parsed=(boolean)true, framerate=(fraction)[ 0/1, 2147483647/1 ]
    h264parse H.264 parser - Codec/Parser/Video + Codec/Parser/Converter/Video Parses H.264 streams Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> @@ -62,13 +62,55 @@ sink sink always -
    video/x-h264, parsed=(boolean)false
    +
    video/x-h264
    + + + src + source + always +
    video/x-h264, parsed=(boolean)true, stream-format=(string){ avc, byte-stream }, alignment=(string){ au, nal }
    +
    +
    +
    + + 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, systemstream=(boolean)false
    +
    + + src + source + always +
    video/mpeg, mpegversion=(int)4, parsed=(boolean)true, systemstream=(boolean)false
    +
    +
    +
    + + mpegvideoparse + MPEG video elementary stream parser + Codec/Parser/Video + Parses and frames MPEG-1 and MPEG-2 elementary video streams + Wim Taymans <wim.taymans@ccollabora.co.uk>, Jan Schmidt <thaytan@mad.scientist.com>, Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + + sink + sink + always +
    video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false
    src source always -
    video/x-h264, parsed=(boolean)true
    +
    video/mpeg, mpegversion=(int)[ 1, 2 ], parsed=(boolean)true, systemstream=(boolean)false
    diff --git a/docs/plugins/inspect/plugin-videosignal.xml b/docs/plugins/inspect/plugin-videosignal.xml index e87dc3b..f105c2b 100644 --- a/docs/plugins/inspect/plugin-videosignal.xml +++ b/docs/plugins/inspect/plugin-videosignal.xml @@ -3,7 +3,7 @@ Various video signal analysers ../../gst/videosignal/.libs/libgstvideosignal.so libgstvideosignal.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-vmnc.xml b/docs/plugins/inspect/plugin-vmnc.xml index 9205de3..be3caf9 100644 --- a/docs/plugins/inspect/plugin-vmnc.xml +++ b/docs/plugins/inspect/plugin-vmnc.xml @@ -3,7 +3,7 @@ VmWare Video Codec plugins ../../gst/vmnc/.libs/libgstvmnc.so libgstvmnc.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-voaacenc.xml b/docs/plugins/inspect/plugin-voaacenc.xml new file mode 100644 index 0000000..2f6baa3 --- /dev/null +++ b/docs/plugins/inspect/plugin-voaacenc.xml @@ -0,0 +1,34 @@ + + voaacenc + AAC audio encoder + ../../ext/voaacenc/.libs/libgstvoaacenc.so + libgstvoaacenc.so + 0.10.21.2 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins prerelease + Unknown package origin + + + voaacenc + AAC audio encoder + Codec/Encoder/Audio + AAC audio encoder + Kan Hu <kan.hu@linaro.org> + + + sink + sink + always +
    audio/x-raw-int, width=(int)16, depth=(int)16, signed=(boolean)true, endianness=(int)1234, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ]
    +
    + + src + source + always +
    audio/mpeg, mpegversion=(int)4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ], stream-format=(string){ adts, raw }
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-vp8.xml b/docs/plugins/inspect/plugin-vp8.xml index f49d0bf..4aa642a 100644 --- a/docs/plugins/inspect/plugin-vp8.xml +++ b/docs/plugins/inspect/plugin-vp8.xml @@ -3,7 +3,7 @@ VP8 plugin ../../ext/vp8/.libs/libgstvp8.so libgstvp8.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-wildmidi.xml b/docs/plugins/inspect/plugin-wildmidi.xml index 26840c3..27fc4a0 100644 --- a/docs/plugins/inspect/plugin-wildmidi.xml +++ b/docs/plugins/inspect/plugin-wildmidi.xml @@ -3,7 +3,7 @@ Wildmidi Plugin ../../ext/timidity/.libs/libgstwildmidi.so libgstwildmidi.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release diff --git a/docs/plugins/inspect/plugin-xvid.xml b/docs/plugins/inspect/plugin-xvid.xml index c38ba48..00ba1f8 100644 --- a/docs/plugins/inspect/plugin-xvid.xml +++ b/docs/plugins/inspect/plugin-xvid.xml @@ -3,7 +3,7 @@ XviD plugin library ../../ext/xvid/.libs/libgstxvid.so libgstxvid.so - 0.10.22 + 0.10.23 GPL gst-plugins-bad GStreamer Bad Plug-ins source release @@ -20,7 +20,7 @@ sink sink always -
    video/x-xvid, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    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 ]
    src @@ -47,7 +47,7 @@ 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 ]
    +
    video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], profile=(string)simple, level=(string){ 0, 1, 2, 3, 4a, 5, 6 }; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], profile=(string)advanced-real-time-simple, level=(string){ 1, 2, 3, 4 }; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], profile=(string)advanced-simple, level=(string){ 0, 1, 2, 3, 4 }; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ]; video/x-xvid, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    diff --git a/docs/plugins/inspect/plugin-y4mdec.xml b/docs/plugins/inspect/plugin-y4mdec.xml index 826dffa..14907e3 100644 --- a/docs/plugins/inspect/plugin-y4mdec.xml +++ b/docs/plugins/inspect/plugin-y4mdec.xml @@ -3,7 +3,7 @@ Demuxes/decodes YUV4MPEG streams ../../gst/y4m/.libs/libgsty4mdec.so libgsty4mdec.so - 0.10.22 + 0.10.23 LGPL gst-plugins-bad GStreamer Bad Plug-ins diff --git a/docs/plugins/inspect/plugin-zbar.xml b/docs/plugins/inspect/plugin-zbar.xml index 4ac2096..3e4abd6 100644 --- a/docs/plugins/inspect/plugin-zbar.xml +++ b/docs/plugins/inspect/plugin-zbar.xml @@ -3,10 +3,10 @@ zbar barcode scanner ../../ext/zbar/.libs/libgstzbar.so libgstzbar.so - 0.10.22 + 0.10.22.1 LGPL gst-plugins-bad - GStreamer Bad Plug-ins source release + GStreamer Bad Plug-ins git Unknown package origin diff --git a/docs/plugins/scanobj-build.stamp b/docs/plugins/scanobj-build.stamp new file mode 100644 index 0000000..e69de29 diff --git a/ext/Makefile.am b/ext/Makefile.am index d6638d0..dc62386 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -4,10 +4,10 @@ else ASSRENDER_DIR = endif -if USE_AMRWB -AMRWB_DIR = amrwbenc +if USE_VOAMRWBENC +VOAMRWBENC_DIR = voamrwbenc else -AMRWB_DIR = +VOAMRWBENC_DIR = endif if USE_APEXSINK @@ -118,6 +118,12 @@ else FAAD_DIR= endif +if USE_VOAACENC + VOAACENC_DIR=voaacenc +else + VOAACENC_DIR= +endif + if USE_FLITE FLITE_DIR=flite else @@ -244,12 +250,24 @@ else OFA_DIR= endif +if USE_OPENAL +OPENAL_DIR=openal +else +OPENAL_DIR= +endif + if USE_OPENCV OPENCV_DIR=opencv else OPENCV_DIR= endif +if USE_OPUS +OPUS_DIR=opus +else +OPUS_DIR= +endif + if USE_RSVG RSVG_DIR=rsvg else @@ -306,6 +324,12 @@ else SOUNDTOUCH_DIR= endif +if USE_SPANDSP +SPANDSP_DIR = spandsp +else +SPANDSP_DIR = +endif + if USE_SPC SPC_DIR=spc else @@ -324,6 +348,12 @@ else SWFDEC_DIR= endif +if USE_TELETEXTDEC +TELETEXTDEC_DIR=teletextdec +else +TELETEXTDEC_DIR= +endif + if USE_VP8 VP8_DIR=vp8 else @@ -356,8 +386,9 @@ endif SUBDIRS=\ + $(VOAACENC_DIR) \ $(ASSRENDER_DIR) \ - $(AMRWB_DIR) \ + $(VOAMRWBENC_DIR) \ $(APEXSINK_DIR) \ $(ARTS_DIR) \ $(ARTSC_DIR) \ @@ -398,7 +429,9 @@ SUBDIRS=\ $(NAS_DIR) \ $(NEON_DIR) \ $(OFA_DIR) \ + $(OPENAL_DIR) \ $(OPENCV_DIR) \ + $(OPUS_DIR) \ $(RSVG_DIR) \ $(SCHRO_DIR) \ $(SDL_DIR) \ @@ -406,9 +439,11 @@ SUBDIRS=\ $(SMOOTHWAVE_DIR) \ $(SNDFILE_DIR) \ $(SOUNDTOUCH_DIR) \ + $(SPANDSP_DIR) \ $(GME_DIR) \ $(SPC_DIR) \ $(SWFDEC_DIR) \ + $(TELETEXTDEC_DIR) \ $(TIMIDITY_DIR) \ $(VP8_DIR) \ $(XVID_DIR) \ @@ -416,7 +451,6 @@ SUBDIRS=\ $(RTMP_DIR) DIST_SUBDIRS = \ - amrwbenc \ assrender \ apexsink \ bz2 \ @@ -449,17 +483,23 @@ DIST_SUBDIRS = \ nas \ neon \ ofa \ + openal \ opencv \ + opus \ rsvg \ resindvd \ schroedinger \ sdl \ sndfile \ soundtouch \ + spandsp \ spc \ gme \ swfdec \ + teletextdec \ timidity \ + voaacenc \ + voamrwbenc \ vp8 \ xvid \ zbar \ diff --git a/ext/Makefile.in b/ext/Makefile.in index 46f1bfa..a375111 100644 --- a/ext/Makefile.in +++ b/ext/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -45,6 +45,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -82,11 +83,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -134,7 +135,6 @@ 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@ @@ -152,7 +152,6 @@ 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@ @@ -187,6 +186,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -226,6 +226,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -243,6 +244,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -251,13 +253,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -282,13 +287,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -336,6 +342,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -367,8 +374,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -392,6 +403,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -416,10 +429,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -431,6 +448,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -455,6 +476,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -490,7 +512,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -513,8 +534,8 @@ 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_VOAMRWBENC_FALSE@VOAMRWBENC_DIR = +@USE_VOAMRWBENC_TRUE@VOAMRWBENC_DIR = voamrwbenc @USE_APEXSINK_FALSE@APEXSINK_DIR = @USE_APEXSINK_TRUE@APEXSINK_DIR = apexsink @@ -567,6 +588,8 @@ AUDIORESAMPLE_DIR = @USE_FAAC_TRUE@FAAC_DIR = faac @USE_FAAD_FALSE@FAAD_DIR = @USE_FAAD_TRUE@FAAD_DIR = faad +@USE_VOAACENC_FALSE@VOAACENC_DIR = +@USE_VOAACENC_TRUE@VOAACENC_DIR = voaacenc @USE_FLITE_FALSE@FLITE_DIR = @USE_FLITE_TRUE@FLITE_DIR = flite @@ -625,8 +648,12 @@ LIBFAME_DIR = @USE_NEON_TRUE@NEON_DIR = neon @USE_OFA_FALSE@OFA_DIR = @USE_OFA_TRUE@OFA_DIR = ofa +@USE_OPENAL_FALSE@OPENAL_DIR = +@USE_OPENAL_TRUE@OPENAL_DIR = openal @USE_OPENCV_FALSE@OPENCV_DIR = @USE_OPENCV_TRUE@OPENCV_DIR = opencv +@USE_OPUS_FALSE@OPUS_DIR = +@USE_OPUS_TRUE@OPUS_DIR = opus @USE_RSVG_FALSE@RSVG_DIR = @USE_RSVG_TRUE@RSVG_DIR = rsvg @USE_TIMIDITY_FALSE@@USE_WILDMIDI_FALSE@TIMIDITY_DIR = @@ -652,6 +679,8 @@ SMOOTHWAVE_DIR = @USE_SNDFILE_TRUE@SNDFILE_DIR = sndfile @USE_SOUNDTOUCH_FALSE@SOUNDTOUCH_DIR = @USE_SOUNDTOUCH_TRUE@SOUNDTOUCH_DIR = soundtouch +@USE_SPANDSP_FALSE@SPANDSP_DIR = +@USE_SPANDSP_TRUE@SPANDSP_DIR = spandsp @USE_SPC_FALSE@SPC_DIR = @USE_SPC_TRUE@SPC_DIR = spc @USE_GME_FALSE@GME_DIR = @@ -659,6 +688,8 @@ SMOOTHWAVE_DIR = #SWFDEC_DIR=swfdec @USE_SWFDEC_FALSE@SWFDEC_DIR = +@USE_TELETEXTDEC_FALSE@TELETEXTDEC_DIR = +@USE_TELETEXTDEC_TRUE@TELETEXTDEC_DIR = teletextdec @USE_VP8_FALSE@VP8_DIR = @USE_VP8_TRUE@VP8_DIR = vp8 @USE_GSETTINGS_FALSE@GSETTINGS_DIR = @@ -670,8 +701,9 @@ SMOOTHWAVE_DIR = @USE_RTMP_FALSE@RTMP_DIR = @USE_RTMP_TRUE@RTMP_DIR = rtmp SUBDIRS = \ + $(VOAACENC_DIR) \ $(ASSRENDER_DIR) \ - $(AMRWB_DIR) \ + $(VOAMRWBENC_DIR) \ $(APEXSINK_DIR) \ $(ARTS_DIR) \ $(ARTSC_DIR) \ @@ -712,7 +744,9 @@ SUBDIRS = \ $(NAS_DIR) \ $(NEON_DIR) \ $(OFA_DIR) \ + $(OPENAL_DIR) \ $(OPENCV_DIR) \ + $(OPUS_DIR) \ $(RSVG_DIR) \ $(SCHRO_DIR) \ $(SDL_DIR) \ @@ -720,9 +754,11 @@ SUBDIRS = \ $(SMOOTHWAVE_DIR) \ $(SNDFILE_DIR) \ $(SOUNDTOUCH_DIR) \ + $(SPANDSP_DIR) \ $(GME_DIR) \ $(SPC_DIR) \ $(SWFDEC_DIR) \ + $(TELETEXTDEC_DIR) \ $(TIMIDITY_DIR) \ $(VP8_DIR) \ $(XVID_DIR) \ @@ -730,7 +766,6 @@ SUBDIRS = \ $(RTMP_DIR) DIST_SUBDIRS = \ - amrwbenc \ assrender \ apexsink \ bz2 \ @@ -763,17 +798,23 @@ DIST_SUBDIRS = \ nas \ neon \ ofa \ + openal \ opencv \ + opus \ rsvg \ resindvd \ schroedinger \ sdl \ sndfile \ soundtouch \ + spandsp \ spc \ gme \ swfdec \ + teletextdec \ timidity \ + voaacenc \ + voamrwbenc \ vp8 \ xvid \ zbar \ @@ -803,6 +844,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -1027,10 +1069,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/amrwbenc/Makefile.am b/ext/amrwbenc/Makefile.am deleted file mode 100644 index 4c4ea3b..0000000 --- a/ext/amrwbenc/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -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/README b/ext/amrwbenc/README deleted file mode 100644 index 9d15872..0000000 --- a/ext/amrwbenc/README +++ /dev/null @@ -1,12 +0,0 @@ -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/gstamrwbenc.c b/ext/amrwbenc/gstamrwbenc.c deleted file mode 100644 index 990445f..0000000 --- a/ext/amrwbenc/gstamrwbenc.c +++ /dev/null @@ -1,388 +0,0 @@ -/* 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/apexsink/Makefile.in b/ext/apexsink/Makefile.in index 7524115..33be67d 100644 --- a/ext/apexsink/Makefile.in +++ b/ext/apexsink/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstapexsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstapexsink_la_SOURCES) DIST_SOURCES = $(libgstapexsink_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstapexsink.la: $(libgstapexsink_la_OBJECTS) $(libgstapexsink_la_DEPENDENCIES) +libgstapexsink.la: $(libgstapexsink_la_OBJECTS) $(libgstapexsink_la_DEPENDENCIES) $(EXTRA_libgstapexsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstapexsink_la_LINK) -rpath $(plugindir) $(libgstapexsink_la_OBJECTS) $(libgstapexsink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,50 +650,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -773,10 +794,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/apexsink/gstapexraop.c b/ext/apexsink/gstapexraop.c index 4d07674..04c49a2 100644 --- a/ext/apexsink/gstapexraop.c +++ b/ext/apexsink/gstapexraop.c @@ -52,14 +52,15 @@ 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[] = { +const static guchar GST_APEX_RAOP_FRAME_HEADER[] = { // Used by gen. 1 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_FRAME_HEADER_SIZE = 16; // Used by gen. 1 +const static int GST_APEX_RTP_FRAME_HEADER_SIZE = 12; // Used by gen. 2 const static int GST_APEX_RAOP_ALAC_HEADER_SIZE = 3; @@ -121,6 +122,9 @@ typedef struct GstApExJackType jack_type; /* APEX connected jack type, once ANNOUNCE performed */ GstApExJackStatus jack_status; /* APEX connected jack status, once ANNOUNCE performed */ + GstApExGeneration generation; /* Different devices accept different audio streams */ + GstApExTransportProtocol transport_protocol; /* For media stream, not RAOP/RTSP */ + gchar *host; /* APEX target ip */ guint ctrl_port; /* APEX target control port */ guint data_port; /* APEX negotiated data port, once SETUP performed */ @@ -130,12 +134,18 @@ typedef struct int data_sd; /* data socket */ struct sockaddr_in data_sd_in; + + short rtp_seq_num; /* RTP sequence number, used by gen. 2 */ + int rtp_timestamp; /* RTP timestamp, used by gen. 2 */ } _GstApExRAOP; /* raop apex struct allocation */ GstApExRAOP * -gst_apexraop_new (const gchar * host, const guint16 port) +gst_apexraop_new (const gchar * host, + const guint16 port, + const GstApExGeneration generation, + const GstApExTransportProtocol transport_protocol) { _GstApExRAOP *apexraop; @@ -146,6 +156,10 @@ gst_apexraop_new (const gchar * host, const guint16 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; + apexraop->generation = generation; + apexraop->transport_protocol = transport_protocol; + apexraop->rtp_seq_num = 0; + apexraop->rtp_timestamp = 0; return (GstApExRAOP *) apexraop; } @@ -311,7 +325,9 @@ gst_apexraop_connect (GstApExRAOP * con) conn->url_abspath, inaddr, conn->host, - GST_APEX_RAOP_SAMPLES_PER_FRAME, + conn->generation == GST_APEX_GENERATION_ONE + ? GST_APEX_RAOP_V1_SAMPLES_PER_FRAME + : GST_APEX_RAOP_V2_SAMPLES_PER_FRAME, GST_APEX_RAOP_BYTES_PER_CHANNEL * 8, GST_APEX_RAOP_CHANNELS, GST_APEX_RAOP_BITRATE, ky, iv); @@ -451,8 +467,14 @@ gst_apexraop_connect (GstApExRAOP * con) 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; + if (conn->transport_protocol == GST_APEX_TCP) { + if ((conn->data_sd = socket (AF_INET, SOCK_STREAM, 0)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + } else if (conn->transport_protocol == GST_APEX_UDP) { + if ((conn->data_sd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + } else + return GST_RTSP_STS_METHOD_NOT_ALLOWED; conn->data_sd_in.sin_family = AF_INET; conn->data_sd_in.sin_port = htons (conn->data_port); @@ -495,6 +517,34 @@ gst_apexraop_get_jackstatus (GstApExRAOP * con) return conn->jack_status; } +/* raop apex generation access */ +GstApExGeneration +gst_apexraop_get_generation (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + if (!conn) + return GST_APEX_GENERATION_ONE; + + return conn->generation; +} + +/* raop apex transport protocol access */ +GstApExTransportProtocol +gst_apexraop_get_transport_protocol (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + if (!conn) + return GST_APEX_TCP; + + return conn->transport_protocol; +} + /* raop apex sockets close */ void gst_apexraop_close (GstApExRAOP * con) @@ -628,25 +678,49 @@ gst_apexraop_write (GstApExRAOP * con, gpointer rawdata, guint length) gushort len; gint bit_offset, byte_offset, i, out_len, res; EVP_CIPHER_CTX aes_ctx; - _GstApExRAOP *conn; - - conn = (_GstApExRAOP *) con; + _GstApExRAOP *conn = (_GstApExRAOP *) con; + const int frame_header_size = conn->generation == GST_APEX_GENERATION_ONE + ? GST_APEX_RAOP_FRAME_HEADER_SIZE : GST_APEX_RTP_FRAME_HEADER_SIZE; buffer = - (guchar *) g_malloc0 (GST_APEX_RAOP_FRAME_HEADER_SIZE + + (guchar *) g_malloc0 (frame_header_size + GST_APEX_RAOP_ALAC_HEADER_SIZE + length); - memcpy (buffer, GST_APEX_RAOP_FRAME_HEADER, GST_APEX_RAOP_FRAME_HEADER_SIZE); + if (conn->generation == GST_APEX_GENERATION_ONE) { + g_assert (frame_header_size == GST_APEX_RAOP_FRAME_HEADER_SIZE); + memcpy (buffer, GST_APEX_RAOP_FRAME_HEADER, 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; + len = length + frame_header_size + GST_APEX_RAOP_ALAC_HEADER_SIZE - 4; + + buffer[2] = len >> 8; + buffer[3] = len & 0xff; + } else { + /* Gen. 2 uses RTP-like header (RFC 3550). */ + short network_seq_num; + int network_timestamp, unknown_const; + static gboolean first = TRUE; + + buffer[0] = 0x80; + if (first) { + buffer[1] = 0xe0; + first = FALSE; + } else + buffer[1] = 0x60; + + network_seq_num = htons (conn->rtp_seq_num++); + memcpy (buffer + 2, &network_seq_num, 2); + + network_timestamp = htons (conn->rtp_timestamp); + memcpy (buffer + 4, &network_timestamp, 4); + conn->rtp_timestamp += GST_APEX_RAOP_V2_SAMPLES_PER_FRAME; + + unknown_const = 0xdeadbeef; + memcpy (buffer + 8, &unknown_const, 4); + } bit_offset = 0; byte_offset = 0; - frame_data = buffer + GST_APEX_RAOP_FRAME_HEADER_SIZE; + frame_data = buffer + 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 */ @@ -673,16 +747,14 @@ gst_apexraop_write (GstApExRAOP * con, gpointer rawdata, guint length) res = gst_apexraop_send (conn->data_sd, buffer, - GST_APEX_RAOP_FRAME_HEADER_SIZE + GST_APEX_RAOP_ALAC_HEADER_SIZE + - length); + frame_header_size + GST_APEX_RAOP_ALAC_HEADER_SIZE + length); g_free (buffer); return (guint) ((res >= - (GST_APEX_RAOP_FRAME_HEADER_SIZE + + (frame_header_size + GST_APEX_RAOP_ALAC_HEADER_SIZE)) ? (res - - GST_APEX_RAOP_FRAME_HEADER_SIZE - - GST_APEX_RAOP_ALAC_HEADER_SIZE) : 0); + frame_header_size - GST_APEX_RAOP_ALAC_HEADER_SIZE) : 0); } /* raop apex buffer flush */ @@ -701,10 +773,13 @@ gst_apexraop_flush (GstApExRAOP * con) "Client-Instance: %s\r\n" "User-Agent: %s\r\n" "Session: %s\r\n" - "RTP-Info: seq=0;rtptime=0\r\n" + "RTP-Info: seq=%d;rtptime=%d\r\n" "\r\n", conn->host, - conn->url_abspath, ++conn->cseq, conn->cid, conn->ua, conn->session); + conn->url_abspath, + ++conn->cseq, + conn->cid, + conn->ua, conn->session, conn->rtp_seq_num, conn->rtp_timestamp); if (gst_apexraop_send (conn->ctrl_sd, hreq, strlen (hreq)) <= 0) return GST_RTSP_STS_GONE; diff --git a/ext/apexsink/gstapexraop.h b/ext/apexsink/gstapexraop.h index fe1ba41..462118e 100644 --- a/ext/apexsink/gstapexraop.h +++ b/ext/apexsink/gstapexraop.h @@ -48,7 +48,8 @@ G_BEGIN_DECLS /* raop fixed parameters */ #define GST_APEX_RAOP_BITRATE 44100 -#define GST_APEX_RAOP_SAMPLES_PER_FRAME 4096 +#define GST_APEX_RAOP_V1_SAMPLES_PER_FRAME 4096 +#define GST_APEX_RAOP_V2_SAMPLES_PER_FRAME 352 #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) @@ -78,13 +79,30 @@ typedef enum } GstApExJackStatus; +typedef enum +{ + GST_APEX_GENERATION_ONE = 1, + GST_APEX_GENERATION_TWO, +} +GstApExGeneration; + +typedef enum +{ + GST_APEX_TCP = 0, + GST_APEX_UDP, +} +GstApExTransportProtocol; + /* 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); +GstApExRAOP *gst_apexraop_new (const gchar * host, + const guint16 port, + const GstApExGeneration generation, + const GstApExTransportProtocol transport_protocol); void gst_apexraop_free (GstApExRAOP * conn); /* must not be connected yet while setting the host target */ @@ -118,6 +136,12 @@ GstRTSPStatusCode gst_apexraop_flush (GstApExRAOP * conn); GstApExJackType gst_apexraop_get_jacktype (GstApExRAOP * conn); GstApExJackStatus gst_apexraop_get_jackstatus (GstApExRAOP * conn); +/* retrieve the generation */ +GstApExGeneration gst_apexraop_get_generation (GstApExRAOP * conn); + +/* retrieve the transport protocol */ +GstApExTransportProtocol gst_apexraop_get_transport_protocol (GstApExRAOP * conn); + G_END_DECLS #endif diff --git a/ext/apexsink/gstapexsink.c b/ext/apexsink/gstapexsink.c index 8daaa23..5b3af3d 100644 --- a/ext/apexsink/gstapexsink.c +++ b/ext/apexsink/gstapexsink.c @@ -59,6 +59,8 @@ enum APEX_PROP_VOLUME, APEX_PROP_JACK_TYPE, APEX_PROP_JACK_STATUS, + APEX_PROP_GENERATION, + APEX_PROP_TRANSPORT_PROTOCOL, }; #define DEFAULT_APEX_HOST "" @@ -66,6 +68,8 @@ enum #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 +#define DEFAULT_APEX_GENERATION GST_APEX_GENERATION_ONE +#define DEFAULT_APEX_TRANSPORT_PROTOCOL GST_APEX_TCP /* genum apex jack resolution */ GType @@ -108,6 +112,43 @@ gst_apexsink_jacktype_get_type (void) return jacktype_type; } +GType +gst_apexsink_generation_get_type (void) +{ + static GType generation_type = 0; + static GEnumValue generation[] = { + {GST_APEX_GENERATION_ONE, "generation-one", + "First generation (e.g., original AirPort Express)"}, + {GST_APEX_GENERATION_TWO, "generation-two", + "Second generation (e.g., Apple TV v2)"}, + {0, NULL, NULL}, + }; + + if (!generation_type) { + generation_type = g_enum_register_static ("GstApExGeneration", generation); + } + + return generation_type; +} + +GType +gst_apexsink_transport_protocol_get_type (void) +{ + static GType transport_protocol_type = 0; + static GEnumValue transport_protocol[] = { + {GST_APEX_TCP, "tcp", "TCP"}, + {GST_APEX_UDP, "udp", "UDP"}, + {0, NULL, NULL}, + }; + + if (!transport_protocol_type) { + transport_protocol_type = + g_enum_register_static ("GstApExTransportProtocol", transport_protocol); + } + + return transport_protocol_type; +} + static void gst_apexsink_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -124,6 +165,8 @@ 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); +static GstStateChangeReturn gst_apexsink_change_state (GstElement * element, + GstStateChange transition); /* mixer interface standard api */ static void gst_apexsink_interfaces_init (GType type); @@ -222,8 +265,8 @@ gst_apexsink_base_init (gpointer g_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)); + gst_element_class_add_static_pad_template (element_class, + &gst_apexsink_sink_factory); } /* sink class init */ @@ -252,6 +295,9 @@ gst_apexsink_class_init (GstApExSinkClass * klass) ((GstAudioSinkClass *) klass)->reset = GST_DEBUG_FUNCPTR (gst_apexsink_reset); ((GstAudioSinkClass *) klass)->close = GST_DEBUG_FUNCPTR (gst_apexsink_close); + ((GstElementClass *) klass)->change_state = + GST_DEBUG_FUNCPTR (gst_apexsink_change_state); + 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)); @@ -275,6 +321,17 @@ gst_apexsink_class_init (GstApExSinkClass * klass) "AirPort Express jack connection status", GST_APEX_SINK_JACKSTATUS_TYPE, DEFAULT_APEX_JACK_STATUS, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property ((GObjectClass *) klass, + APEX_PROP_GENERATION, g_param_spec_enum ("generation", "Generation", + "AirPort device generation", + GST_APEX_SINK_GENERATION_TYPE, DEFAULT_APEX_GENERATION, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property ((GObjectClass *) klass, + APEX_PROP_TRANSPORT_PROTOCOL, g_param_spec_enum ("transport-protocol", + "Transport Protocol", "AirPort transport protocol", + GST_APEX_SINK_TRANSPORT_PROTOCOL_TYPE, + DEFAULT_APEX_TRANSPORT_PROTOCOL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } /* sink plugin instance init */ @@ -295,6 +352,8 @@ gst_apexsink_init (GstApExSink * apexsink, GstApExSinkClass * g_class) apexsink->volume = CLAMP (DEFAULT_APEX_VOLUME * 75, 0, 100); apexsink->gst_apexraop = NULL; apexsink->tracks = g_list_append (apexsink->tracks, track); + apexsink->clock = gst_system_clock_obtain (); + apexsink->clock_id = NULL; GST_INFO_OBJECT (apexsink, "ApEx sink default initialization, target=\"%s\", port=\"%d\", volume=\"%d%%\"", @@ -343,6 +402,28 @@ gst_apexsink_set_property (GObject * object, guint prop_id, GST_INFO_OBJECT (sink, "ApEx volume set to \"%d%%\"", sink->volume); break; } + case APEX_PROP_GENERATION: + if (sink->gst_apexraop == NULL) { + sink->generation = g_value_get_enum (value); + + GST_INFO_OBJECT (sink, "ApEx generation set to \"%d\"", + sink->generation); + } else { + GST_WARNING_OBJECT (sink, + "SET-PROPERTY : generation property may not be set when apexsink opened !"); + } + break; + case APEX_PROP_TRANSPORT_PROTOCOL: + if (sink->gst_apexraop == NULL) { + sink->transport_protocol = g_value_get_enum (value); + + GST_INFO_OBJECT (sink, "ApEx transport protocol set to \"%d\"", + sink->transport_protocol); + } else { + GST_WARNING_OBJECT (sink, + "SET-PROPERTY : transport protocol property may not be set when apexsink opened !"); + } + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -373,6 +454,14 @@ gst_apexsink_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_enum (value, gst_apexraop_get_jackstatus (sink->gst_apexraop)); break; + case APEX_PROP_GENERATION: + g_value_set_enum (value, + gst_apexraop_get_generation (sink->gst_apexraop)); + break; + case APEX_PROP_TRANSPORT_PROTOCOL: + g_value_set_enum (value, + gst_apexraop_get_transport_protocol (sink->gst_apexraop)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -391,6 +480,8 @@ gst_apexsink_finalise (GObject * object) sink->tracks = NULL; } + gst_object_unref (sink->clock); + g_free (sink->host); G_OBJECT_CLASS (parent_class)->finalize (object); @@ -403,7 +494,8 @@ gst_apexsink_open (GstAudioSink * asink) int res; GstApExSink *apexsink = (GstApExSink *) asink; - apexsink->gst_apexraop = gst_apexraop_new (apexsink->host, apexsink->port); + apexsink->gst_apexraop = gst_apexraop_new (apexsink->host, + apexsink->port, apexsink->generation, apexsink->transport_protocol); if ((res = gst_apexraop_connect (apexsink->gst_apexraop)) != GST_RTSP_STS_OK) { GST_ERROR_OBJECT (apexsink, @@ -460,12 +552,14 @@ static gboolean gst_apexsink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) { GstApExSink *apexsink = (GstApExSink *) asink; + GstApExGeneration gen = gst_apexraop_get_generation (apexsink->gst_apexraop); apexsink->latency_time = spec->latency_time; - spec->segsize = - GST_APEX_RAOP_SAMPLES_PER_FRAME * GST_APEX_RAOP_BYTES_PER_SAMPLE; - spec->segtotal = 1; + spec->segsize = gen == GST_APEX_GENERATION_ONE + ? GST_APEX_RAOP_V1_SAMPLES_PER_FRAME * GST_APEX_RAOP_BYTES_PER_SAMPLE + : GST_APEX_RAOP_V2_SAMPLES_PER_FRAME * GST_APEX_RAOP_BYTES_PER_SAMPLE; + spec->segtotal = 2; memset (spec->silence_sample, 0, sizeof (spec->silence_sample)); @@ -481,17 +575,28 @@ gst_apexsink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) static guint gst_apexsink_write (GstAudioSink * asink, gpointer data, guint length) { + guint written; GstApExSink *apexsink = (GstApExSink *) asink; - if (gst_apexraop_write (apexsink->gst_apexraop, data, length) != length) { + if ((written = + gst_apexraop_write (apexsink->gst_apexraop, data, + length)) != length) { GST_INFO_OBJECT (apexsink, - "WRITE : %d bytes not fully sended, skipping frame samples...", length); + "WRITE : %d of %d bytes sent, skipping frame samples...", written, + 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)); + /* NOTE, previous calculation subtracted apexsink->latency_time from this; + * however, the value below is less than apexsink->latency_time for generation 2. + * In this case, the number went negative (actualy wrapped around into a big number). + */ + apexsink->clock_id = gst_clock_new_single_shot_id (apexsink->clock, + (GstClockTime) (gst_clock_get_time (apexsink->clock) + + ((length * 1000000000.) + / (GST_APEX_RAOP_BITRATE * GST_APEX_RAOP_BYTES_PER_SAMPLE)))); + gst_clock_id_wait (apexsink->clock_id, NULL); + gst_clock_id_unref (apexsink->clock_id); + apexsink->clock_id = NULL; } return length; @@ -545,3 +650,16 @@ gst_apexsink_close (GstAudioSink * asink) return TRUE; } + +static GstStateChangeReturn +gst_apexsink_change_state (GstElement * element, GstStateChange transition) +{ + GstApExSink *apexsink = (GstApExSink *) element; + + if (apexsink->clock_id && transition == GST_STATE_CHANGE_PAUSED_TO_READY) { + gst_clock_id_unschedule (apexsink->clock_id); + gst_clock_id_unref (apexsink->clock_id); + apexsink->clock_id = NULL; + } + return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); +} diff --git a/ext/apexsink/gstapexsink.h b/ext/apexsink/gstapexsink.h index 11d2f1e..ad2b299 100644 --- a/ext/apexsink/gstapexsink.h +++ b/ext/apexsink/gstapexsink.h @@ -46,6 +46,8 @@ G_BEGIN_DECLS #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()) +#define GST_APEX_SINK_GENERATION_TYPE (gst_apexsink_generation_get_type()) +#define GST_APEX_SINK_TRANSPORT_PROTOCOL_TYPE (gst_apexsink_transport_protocol_get_type()) /* ApEx classes declaration */ typedef struct _GstApExSink GstApExSink; typedef struct _GstApExSinkClass GstApExSinkClass; @@ -59,10 +61,19 @@ struct _GstApExSink gchar *host; guint port; guint volume; + GstApExGeneration generation; + GstApExTransportProtocol transport_protocol; - /* private attributes : latency time local copy, tracks list of the mixer interface */ + /* private attributes : + * latency time local copy + * tracks list of the mixer interface + * clock for sleeping + * clock ID for sleeping / canceling sleep + */ guint64 latency_time; GList *tracks; + GstClock *clock; + GstClockID clock_id; /* private apex client */ GstApExRAOP *gst_apexraop; @@ -73,9 +84,11 @@ struct _GstApExSinkClass GstAudioSinkClass parent_class; }; -/* genum jack access */ +/* genums */ GType gst_apexsink_jackstatus_get_type (void); GType gst_apexsink_jacktype_get_type (void); +GType gst_apexsink_generation_get_type (void); +GType gst_apexsink_transport_protocol_get_type (void); /* audio sink standard api */ GType gst_apexsink_get_type (void); diff --git a/ext/assrender/Makefile.in b/ext/assrender/Makefile.in index 7b8a70b..052f268 100644 --- a/ext/assrender/Makefile.in +++ b/ext/assrender/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstassrender_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstassrender_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstassrender_la_SOURCES) DIST_SOURCES = $(libgstassrender_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstassrender.la: $(libgstassrender_la_OBJECTS) $(libgstassrender_la_DEPENDENCIES) +libgstassrender.la: $(libgstassrender_la_OBJECTS) $(libgstassrender_la_DEPENDENCIES) $(EXTRA_libgstassrender_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstassrender_la_LINK) -rpath $(plugindir) $(libgstassrender_la_OBJECTS) $(libgstassrender_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/assrender/gstassrender.c b/ext/assrender/gstassrender.c index c5a8e1b..b71e8e4 100644 --- a/ext/assrender/gstassrender.c +++ b/ext/assrender/gstassrender.c @@ -117,12 +117,11 @@ 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &text_sink_factory); gst_element_class_set_details_simple (element_class, "ASS/SSA Render", "Mixer/Video/Overlay/Subtitle", @@ -570,10 +569,13 @@ blit_i420 (GstAssRender * render, ASS_Image * ass_image, GstBuffer * buffer) const guint8 *src; guint8 *dst_y, *dst_u, *dst_v; gint x, y, w, h; +/* FIXME ignoring source image stride might be wrong here */ +#if 0 gint w2; + gint src_stride; +#endif 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; @@ -609,9 +611,11 @@ blit_i420 (GstAssRender * render, ASS_Image * ass_image, GstBuffer * buffer) w = MIN (ass_image->w, width - ass_image->dst_x); h = MIN (ass_image->h, height - ass_image->dst_y); +#if 0 w2 = (w + 1) / 2; src_stride = ass_image->stride; +#endif src = ass_image->bitmap; dst_y = @@ -1135,7 +1139,7 @@ gst_ass_render_chain_text (GstPad * pad, GstBuffer * buffer) g_mutex_lock (render->subtitle_mutex); if (G_UNLIKELY (render->subtitle_flushing)) { GST_DEBUG_OBJECT (render, "Text pad flushing"); - gst_object_unref (buffer); + gst_buffer_unref (buffer); g_mutex_unlock (render->subtitle_mutex); return GST_FLOW_WRONG_STATE; } diff --git a/ext/bz2/Makefile.in b/ext/bz2/Makefile.in index 7d2f93f..0cc98fa 100644 --- a/ext/bz2/Makefile.in +++ b/ext/bz2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstbz2_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstbz2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstbz2_la_SOURCES) DIST_SOURCES = $(libgstbz2_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -604,7 +631,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstbz2.la: $(libgstbz2_la_OBJECTS) $(libgstbz2_la_DEPENDENCIES) +libgstbz2.la: $(libgstbz2_la_OBJECTS) $(libgstbz2_la_DEPENDENCIES) $(EXTRA_libgstbz2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstbz2_la_LINK) -rpath $(plugindir) $(libgstbz2_la_OBJECTS) $(libgstbz2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -620,50 +647,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -770,10 +791,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/bz2/gstbz2dec.c b/ext/bz2/gstbz2dec.c index ac53f60..48bca48 100644 --- a/ext/bz2/gstbz2dec.c +++ b/ext/bz2/gstbz2dec.c @@ -212,10 +212,8 @@ 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_add_static_pad_template (ec, &sink_template); + gst_element_class_add_static_pad_template (ec, &src_template); gst_element_class_set_details_simple (ec, "BZ2 decoder", "Codec/Decoder", "Decodes compressed streams", "Lutz Mueller "); diff --git a/ext/bz2/gstbz2enc.c b/ext/bz2/gstbz2enc.c index 83a6b2e..1b9feba 100644 --- a/ext/bz2/gstbz2enc.c +++ b/ext/bz2/gstbz2enc.c @@ -262,10 +262,8 @@ 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_add_static_pad_template (ec, &sink_template); + gst_element_class_add_static_pad_template (ec, &src_template); gst_element_class_set_details_simple (ec, "BZ2 encoder", "Codec/Encoder", "Compresses streams", "Lutz Mueller "); diff --git a/ext/cdaudio/Makefile.in b/ext/cdaudio/Makefile.in index bc439df..f444a6d 100644 --- a/ext/cdaudio/Makefile.in +++ b/ext/cdaudio/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,14 +99,20 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcdaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcdaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -121,21 +128,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcdaudio_la_SOURCES) DIST_SOURCES = $(libgstcdaudio_la_SOURCES) @@ -146,7 +153,6 @@ 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@ @@ -164,7 +170,6 @@ 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@ @@ -199,6 +204,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -238,6 +244,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -255,6 +262,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -263,13 +271,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -294,13 +305,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -348,6 +360,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -379,8 +392,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -404,6 +421,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -428,10 +447,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -443,6 +466,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -467,6 +494,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -502,7 +530,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -594,7 +621,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcdaudio.la: $(libgstcdaudio_la_OBJECTS) $(libgstcdaudio_la_DEPENDENCIES) +libgstcdaudio.la: $(libgstcdaudio_la_OBJECTS) $(libgstcdaudio_la_DEPENDENCIES) $(EXTRA_libgstcdaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcdaudio_la_LINK) -rpath $(plugindir) $(libgstcdaudio_la_OBJECTS) $(libgstcdaudio_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -608,34 +635,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -742,10 +765,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/celt/Makefile.am b/ext/celt/Makefile.am index 38119d8..01153b1 100644 --- a/ext/celt/Makefile.am +++ b/ext/celt/Makefile.am @@ -1,12 +1,13 @@ plugin_LTLIBRARIES = libgstcelt.la libgstcelt_la_SOURCES = gstcelt.c gstceltdec.c gstceltenc.c -libgstcelt_la_CFLAGS = \ +libgstcelt_la_CFLAGS = -DGST_USE_UNSTABLE_API \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(CELT_CFLAGS) libgstcelt_la_LIBADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) -lgsttag-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(CELT_LIBS) diff --git a/ext/celt/Makefile.in b/ext/celt/Makefile.in index a3a3859..9e340bb 100644 --- a/ext/celt/Makefile.in +++ b/ext/celt/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ libgstcelt_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcelt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcelt_la_SOURCES) DIST_SOURCES = $(libgstcelt_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -531,13 +558,14 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstcelt.la libgstcelt_la_SOURCES = gstcelt.c gstceltdec.c gstceltenc.c -libgstcelt_la_CFLAGS = \ +libgstcelt_la_CFLAGS = -DGST_USE_UNSTABLE_API \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(CELT_CFLAGS) libgstcelt_la_LIBADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) -lgsttag-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(CELT_LIBS) @@ -610,7 +638,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcelt.la: $(libgstcelt_la_OBJECTS) $(libgstcelt_la_DEPENDENCIES) +libgstcelt.la: $(libgstcelt_la_OBJECTS) $(libgstcelt_la_DEPENDENCIES) $(EXTRA_libgstcelt_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcelt_la_LINK) -rpath $(plugindir) $(libgstcelt_la_OBJECTS) $(libgstcelt_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -626,50 +654,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -776,10 +798,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/celt/gstceltdec.c b/ext/celt/gstceltdec.c index e27c6a5..84b2d20 100644 --- a/ext/celt/gstceltdec.c +++ b/ext/celt/gstceltdec.c @@ -68,39 +68,25 @@ GST_STATIC_PAD_TEMPLATE ("sink", 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); +GST_BOILERPLATE (GstCeltDec, gst_celt_dec, GstAudioDecoder, + GST_TYPE_AUDIO_DECODER); + +static gboolean gst_celt_dec_start (GstAudioDecoder * dec); +static gboolean gst_celt_dec_stop (GstAudioDecoder * dec); +static gboolean gst_celt_dec_set_format (GstAudioDecoder * bdec, + GstCaps * caps); +static GstFlowReturn gst_celt_dec_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); 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_add_static_pad_template (element_class, + &celt_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &celt_dec_sink_factory); gst_element_class_set_details_simple (element_class, "Celt audio decoder", "Codec/Decoder/Audio", "decode celt streams to audio", @@ -110,11 +96,14 @@ gst_celt_dec_base_init (gpointer g_class) static void gst_celt_dec_class_init (GstCeltDecClass * klass) { - GstElementClass *gstelement_class; + GstAudioDecoderClass *gstbase_class; - gstelement_class = (GstElementClass *) klass; + gstbase_class = (GstAudioDecoderClass *) klass; - gstelement_class->change_state = GST_DEBUG_FUNCPTR (celt_dec_change_state); + gstbase_class->start = GST_DEBUG_FUNCPTR (gst_celt_dec_start); + gstbase_class->stop = GST_DEBUG_FUNCPTR (gst_celt_dec_stop); + gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_celt_dec_set_format); + gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_celt_dec_handle_frame); GST_DEBUG_CATEGORY_INIT (celtdec_debug, "celtdec", 0, "celt decoding element"); @@ -123,11 +112,8 @@ gst_celt_dec_class_init (GstCeltDecClass * klass) 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; @@ -150,418 +136,46 @@ gst_celt_dec_reset (GstCeltDec * dec) 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) +gst_celt_dec_start (GstAudioDecoder * dec) { - 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; - } + GstCeltDec *cd = GST_CELT_DEC (dec); - 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; -} + GST_DEBUG_OBJECT (dec, "start"); + gst_celt_dec_reset (cd); -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; - } + /* we know about concealment */ + gst_audio_decoder_set_plc_aware (dec, TRUE); - gst_object_unref (dec); - return res; + return TRUE; } static gboolean -celt_dec_sink_event (GstPad * pad, GstEvent * event) +gst_celt_dec_stop (GstAudioDecoder * dec) { - 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; + GstCeltDec *cd = GST_CELT_DEC (dec); - 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; + GST_DEBUG_OBJECT (dec, "stop"); + gst_celt_dec_reset (cd); - /* 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; - } + return TRUE; } static GstFlowReturn -celt_dec_chain_parse_header (GstCeltDec * dec, GstBuffer * buf) +gst_celt_dec_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), + error = + celt_header_from_packet ((const unsigned char *) GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), &dec->header); + if (error < 0) + goto invalid_header; if (memcmp (dec->header.codec_id, "CELT ", 8) != 0) goto invalid_header; @@ -598,9 +212,6 @@ celt_dec_chain_parse_header (GstCeltDec * dec, GstBuffer * buf) 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, @@ -612,7 +223,7 @@ celt_dec_chain_parse_header (GstCeltDec * dec, GstBuffer * buf) 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)) + if (!gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), caps)) goto nego_failed; gst_caps_unref (caps); @@ -652,7 +263,7 @@ nego_failed: } static GstFlowReturn -celt_dec_chain_parse_comments (GstCeltDec * dec, GstBuffer * buf) +gst_celt_dec_parse_comments (GstCeltDec * dec, GstBuffer * buf) { GstTagList *list; gchar *ver, *encoder = NULL; @@ -687,7 +298,8 @@ celt_dec_chain_parse_comments (GstCeltDec * dec, GstBuffer * buf) GST_INFO_OBJECT (dec, "tags: %" GST_PTR_FORMAT, list); - gst_element_found_tags_for_pad (GST_ELEMENT (dec), dec->srcpad, list); + gst_element_found_tags_for_pad (GST_ELEMENT (dec), + GST_AUDIO_DECODER_SRC_PAD (dec), list); g_free (encoder); g_free (ver); @@ -696,8 +308,7 @@ celt_dec_chain_parse_comments (GstCeltDec * dec, GstBuffer * buf) } static GstFlowReturn -celt_dec_chain_parse_data (GstCeltDec * dec, GstBuffer * buf, - GstClockTime timestamp, GstClockTime duration) +gst_celt_dec_parse_data (GstCeltDec * dec, GstBuffer * buf) { GstFlowReturn res = GST_FLOW_OK; gint size; @@ -707,39 +318,34 @@ celt_dec_chain_parse_data (GstCeltDec * dec, GstBuffer * buf, gint error = CELT_OK; int skip = 0; - if (timestamp != -1) { - dec->segment.last_stop = timestamp; - dec->granulepos = -1; - } + if (!dec->frame_size) + goto not_negotiated; - if (buf) { + if (G_LIKELY (GST_BUFFER_SIZE (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 { + /* FIXME ? actually consider how much concealment is needed */ /* concealment data, pass NULL as the bits parameters */ GST_DEBUG_OBJECT (dec, "creating concealment data"); data = NULL; size = 0; } - if (dec->discont) { + /* FIXME really needed ?; this might lead to skipping samples below + * which kind of messes with subsequent timestamping */ + if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT))) { +#ifdef CELT_GET_LOOKAHEAD_REQUEST + /* what will be 0.11.5, I guess, but no versioning yet in git */ + celt_decoder_ctl (dec->state, CELT_GET_LOOKAHEAD_REQUEST, &skip); +#else celt_mode_info (dec->mode, CELT_GET_LOOKAHEAD, &skip); +#endif } - res = gst_pad_alloc_buffer_and_set_caps (dec->srcpad, + res = gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), GST_BUFFER_OFFSET_NONE, dec->frame_size * dec->header.nb_channels * 2, - GST_PAD_CAPS (dec->srcpad), &outbuf); + GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (dec)), &outbuf); if (res != GST_FLOW_OK) { GST_DEBUG_OBJECT (dec, "buf alloc flow: %s", gst_flow_get_name (res)); @@ -755,7 +361,11 @@ celt_dec_chain_parse_data (GstCeltDec * dec, GstBuffer * buf, #else error = celt_decode (dec->state, data, size, out_data); #endif +#ifdef HAVE_CELT_0_11 + if (error < 0) { +#else if (error != CELT_OK) { +#endif GST_WARNING_OBJECT (dec, "Decoding error: %d", error); return GST_FLOW_ERROR; } @@ -768,59 +378,88 @@ celt_dec_chain_parse_data (GstCeltDec * dec, GstBuffer * buf, 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); - } + res = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), outbuf, 1); - if (!GST_CLOCK_TIME_IS_VALID (timestamp)) - timestamp = gst_util_uint64_scale_int (dec->granulepos - dec->frame_size, - GST_SECOND, dec->header.sample_rate); + if (res != GST_FLOW_OK) + GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); - GST_DEBUG_OBJECT (dec, "timestamp=%" GST_TIME_FORMAT, - GST_TIME_ARGS (timestamp)); + return res; - 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; + /* ERRORS */ +not_negotiated: + { + GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL), + ("decoder not initialized")); + return GST_FLOW_NOT_NEGOTIATED; } +} + +static gboolean +gst_celt_dec_set_format (GstAudioDecoder * bdec, GstCaps * caps) +{ + GstCeltDec *dec = GST_CELT_DEC (bdec); + gboolean ret = TRUE; + GstStructure *s; + const GValue *streamheader; - dec->granulepos += dec->frame_size; - dec->segment.last_stop += dec->frame_duration; + 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; - 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)); + header = gst_value_array_get_value (streamheader, 0); + if (header && G_VALUE_HOLDS (header, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (header); + res = gst_celt_dec_parse_header (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->streamheader, buf); + } - res = gst_pad_push (dec->srcpad, outbuf); + vorbiscomment = gst_value_array_get_value (streamheader, 1); + if (vorbiscomment && G_VALUE_HOLDS (vorbiscomment, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (vorbiscomment); + res = gst_celt_dec_parse_comments (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->vorbiscomment, buf); + } - if (res != GST_FLOW_OK) - GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); + g_list_foreach (dec->extra_headers, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->extra_headers); + dec->extra_headers = NULL; - return res; + 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: + return ret; } static GstFlowReturn -celt_dec_chain (GstPad * pad, GstBuffer * buf) +gst_celt_dec_handle_frame (GstAudioDecoder * bdec, GstBuffer * buf) { GstFlowReturn res; GstCeltDec *dec; - dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + dec = GST_CELT_DEC (bdec); - if (GST_BUFFER_IS_DISCONT (buf)) { - dec->discont = TRUE; - } + /* no fancy draining */ + if (G_UNLIKELY (!buf)) + return GST_FLOW_OK; /* If we have the streamheader and vorbiscomment from the caps already * ignore them here */ @@ -828,10 +467,14 @@ celt_dec_chain (GstPad * pad, GstBuffer * buf) 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) { + GST_DEBUG_OBJECT (dec, "found streamheader"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); 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) { + GST_DEBUG_OBJECT (dec, "found vorbiscomments"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); res = GST_FLOW_OK; } else { GList *l; @@ -841,66 +484,36 @@ celt_dec_chain (GstPad * pad, GstBuffer * buf) if (GST_BUFFER_SIZE (header) == GST_BUFFER_SIZE (buf) && memcmp (GST_BUFFER_DATA (header), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)) == 0) { + GST_DEBUG_OBJECT (dec, "found extra header buffer"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); res = GST_FLOW_OK; goto done; } } - res = - celt_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), - GST_BUFFER_DURATION (buf)); + res = gst_celt_dec_parse_data (dec, 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) + if (dec->packetno == 0) { + GST_DEBUG_OBJECT (dec, "counted streamheader"); + res = gst_celt_dec_parse_header (dec, buf); + gst_audio_decoder_finish_frame (bdec, NULL, 1); + } else if (dec->packetno == 1) { + GST_DEBUG_OBJECT (dec, "counted vorbiscomments"); + res = gst_celt_dec_parse_comments (dec, buf); + gst_audio_decoder_finish_frame (bdec, NULL, 1); + } else if (dec->packetno <= 1 + dec->header.extra_headers) { + GST_DEBUG_OBJECT (dec, "counted extra header"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); res = GST_FLOW_OK; - else - res = celt_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), - GST_BUFFER_DURATION (buf)); + } else { + res = gst_celt_dec_parse_data (dec, 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 index b6b4960..12f2c54 100644 --- a/ext/celt/gstceltdec.h +++ b/ext/celt/gstceltdec.h @@ -22,6 +22,7 @@ #define __GST_CELT_DEC_H__ #include +#include #include #include @@ -42,31 +43,22 @@ typedef struct _GstCeltDec GstCeltDec; typedef struct _GstCeltDecClass GstCeltDecClass; struct _GstCeltDec { - GstElement element; - - /* pads */ - GstPad *sinkpad; - GstPad *srcpad; + GstAudioDecoder element; 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; + GstAudioDecoderClass parent_class; }; GType gst_celt_dec_get_type (void); diff --git a/ext/celt/gstceltenc.c b/ext/celt/gstceltenc.c index 7481579..befb9ac 100644 --- a/ext/celt/gstceltenc.c +++ b/ext/celt/gstceltenc.c @@ -19,7 +19,7 @@ */ /* - * Based on the speexenc element + * Based on the celtenc element */ /** @@ -115,51 +115,43 @@ enum 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 gboolean gst_celt_enc_start (GstAudioEncoder * enc); +static gboolean gst_celt_enc_stop (GstAudioEncoder * enc); +static gboolean gst_celt_enc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_celt_enc_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); +static gboolean gst_celt_enc_sink_event (GstAudioEncoder * enc, + GstEvent * event); +static GstFlowReturn gst_celt_enc_pre_push (GstAudioEncoder * benc, + GstBuffer ** buffer); 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); +GST_BOILERPLATE_FULL (GstCeltEnc, gst_celt_enc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER, 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Celt audio encoder", "Codec/Encoder/Audio", "Encodes audio in Celt format", @@ -170,14 +162,21 @@ static void gst_celt_enc_class_init (GstCeltEncClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + GstAudioEncoderClass *gstbase_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + gstbase_class = (GstAudioEncoderClass *) klass; gobject_class->set_property = gst_celt_enc_set_property; gobject_class->get_property = gst_celt_enc_get_property; + gstbase_class->start = GST_DEBUG_FUNCPTR (gst_celt_enc_start); + gstbase_class->stop = GST_DEBUG_FUNCPTR (gst_celt_enc_stop); + gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_celt_enc_set_format); + gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_celt_enc_handle_frame); + gstbase_class->event = GST_DEBUG_FUNCPTR (gst_celt_enc_sink_event); + gstbase_class->pre_push = GST_DEBUG_FUNCPTR (gst_celt_enc_pre_push); + 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).", @@ -210,407 +209,55 @@ gst_celt_enc_class_init (GstCeltEncClass * klass) "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; +static gboolean +gst_celt_enc_start (GstAudioEncoder * benc) +{ + GstCeltEnc *enc = GST_CELT_ENC (benc); + + GST_DEBUG_OBJECT (enc, "start"); + enc->channels = -1; + enc->rate = -1; enc->header_sent = FALSE; - enc->adapter = gst_adapter_new (); + return TRUE; } -static GstBuffer * -gst_celt_enc_create_metadata_buffer (GstCeltEnc * enc) +static gboolean +gst_celt_enc_stop (GstAudioEncoder * benc) { - const GstTagList *tags; - GstTagList *empty_tags = NULL; - GstBuffer *comments = NULL; + GstCeltEnc *enc = GST_CELT_ENC (benc); - 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; + GST_DEBUG_OBJECT (enc, "stop"); + enc->header_sent = FALSE; + if (enc->state) { + celt_encoder_destroy (enc->state); + enc->state = NULL; } - comments = gst_tag_list_to_vorbiscomment_buffer (tags, NULL, - 0, "Encoded with GStreamer Celtenc"); + if (enc->mode) { + celt_mode_destroy (enc->mode); + enc->mode = NULL; + } + memset (&enc->header, 0, sizeof (enc->header)); - GST_BUFFER_OFFSET (comments) = enc->bytes_out; - GST_BUFFER_OFFSET_END (comments) = 0; + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + enc->headers = NULL; - if (empty_tags) - gst_tag_list_free (empty_tags); + gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); - return comments; + return TRUE; } static gboolean @@ -618,8 +265,6 @@ 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 @@ -675,8 +320,6 @@ gst_celt_enc_setup (GstCeltEnc * enc) GST_LOG_OBJECT (enc, "we have frame size %d", enc->frame_size); - enc->setup = TRUE; - return TRUE; mode_initialization_failed: @@ -692,91 +335,70 @@ encoder_creation_failed: return FALSE; } -/* prepare a buffer for transmission */ -static GstBuffer * -gst_celt_enc_buffer_from_data (GstCeltEnc * enc, guchar * data, - gint data_len, guint64 granulepos) +static gint64 +gst_celt_enc_get_latency (GstCeltEnc * enc) { - 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; + return gst_util_uint64_scale (enc->frame_size, GST_SECOND, enc->rate); } - -/* push out the buffer and do internal bookkeeping */ -static GstFlowReturn -gst_celt_enc_push_buffer (GstCeltEnc * enc, GstBuffer * buffer) +static gboolean +gst_celt_enc_set_format (GstAudioEncoder * benc, GstAudioInfo * info) { - guint size; - - size = GST_BUFFER_SIZE (buffer); + GstCeltEnc *enc; + GstCaps *otherpadcaps; - enc->bytes_out += size; + enc = GST_CELT_ENC (benc); - GST_DEBUG_OBJECT (enc, "pushing output buffer of size %u", size); + enc->channels = GST_AUDIO_INFO_CHANNELS (info); + enc->rate = GST_AUDIO_INFO_RATE (info); - return gst_pad_push (enc->srcpad, buffer); -} + /* handle reconfigure */ + 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)); -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 }; + otherpadcaps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (enc)); + 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); + } - caps = gst_caps_make_writable (caps); - structure = gst_caps_get_structure (caps, 0); + if (enc->requested_frame_size > 0) + enc->frame_size = enc->requested_frame_size; - g_assert (gst_buffer_is_metadata_writable (buf1)); - g_assert (gst_buffer_is_metadata_writable (buf2)); + GST_DEBUG_OBJECT (enc, "channels=%d rate=%d frame-size=%d", + enc->channels, enc->rate, enc->frame_size); - /* mark buffers */ - GST_BUFFER_FLAG_SET (buf1, GST_BUFFER_FLAG_IN_CAPS); - GST_BUFFER_FLAG_SET (buf2, GST_BUFFER_FLAG_IN_CAPS); + if (!gst_celt_enc_setup (enc)) + return FALSE; - /* 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); + /* feedback to base class */ + gst_audio_encoder_set_latency (benc, + gst_celt_enc_get_latency (enc), gst_celt_enc_get_latency (enc)); + gst_audio_encoder_set_frame_samples_min (benc, enc->frame_size); + gst_audio_encoder_set_frame_samples_max (benc, enc->frame_size); + gst_audio_encoder_set_frame_max (benc, 1); - return caps; + return TRUE; } - static gboolean -gst_celt_enc_sinkevent (GstPad * pad, GstEvent * event) +gst_celt_enc_sink_event (GstAudioEncoder * benc, GstEvent * event) { - gboolean res = TRUE; GstCeltEnc *enc; - enc = GST_CELT_ENC (gst_pad_get_parent (pad)); + enc = GST_CELT_ENC (benc); 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; @@ -785,114 +407,178 @@ gst_celt_enc_sinkevent (GstPad * pad, GstEvent * event) 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); + /* we only peeked, let base class handle it */ + return FALSE; +} - return res; +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) = 0; + GST_BUFFER_OFFSET_END (comments) = 0; + + if (empty_tags) + gst_tag_list_free (empty_tags); + + return comments; } static GstFlowReturn -gst_celt_enc_encode (GstCeltEnc * enc, gboolean flush) +gst_celt_enc_encode (GstCeltEnc * enc, GstBuffer * buf) { - GstFlowReturn ret = GST_FLOW_OK; gint frame_size = enc->frame_size; gint bytes = frame_size * 2 * enc->channels; gint bytes_per_packet; + gint16 *data, *data0 = NULL; + gint outsize, size; + GstBuffer *outbuf; + if (G_LIKELY (buf)) { + data = (gint16 *) GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + + if (G_UNLIKELY (size % bytes)) { + GST_DEBUG_OBJECT (enc, "draining; adding silence samples"); + size = ((size / bytes) + 1) * bytes; + data0 = data = g_malloc0 (size); + memcpy (data, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + } + } else { + GST_DEBUG_OBJECT (enc, "nothing to drain"); + goto done; + } + + frame_size = size / (2 * enc->channels); if (enc->cbr) { - bytes_per_packet = (enc->bitrate * enc->frame_size / enc->rate + 4) / 8; + bytes_per_packet = (enc->bitrate * frame_size / enc->rate + 4) / 8; } else { - bytes_per_packet = (enc->max_bitrate * enc->frame_size / enc->rate + 4) / 8; + bytes_per_packet = (enc->max_bitrate * 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); + ret = gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), + GST_BUFFER_OFFSET_NONE, bytes_per_packet, + GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (enc)), &outbuf); + + if (GST_FLOW_OK != ret) + goto done; - memset (GST_BUFFER_DATA (buf), 0, diff); - gst_adapter_push (enc->adapter, buf); + 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 + + if (outsize < 0) { + GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL), + ("encoding failed: %d", outsize)); + ret = GST_FLOW_ERROR; + goto done; } + GST_DEBUG_OBJECT (enc, "encoding %d bytes", bytes); - while (gst_adapter_available (enc->adapter) >= bytes) { - gint16 *data; - gint outsize; - GstBuffer *outbuf; + ret = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (enc), + outbuf, frame_size); - ret = gst_pad_alloc_buffer_and_set_caps (enc->srcpad, - GST_BUFFER_OFFSET_NONE, bytes_per_packet, GST_PAD_CAPS (enc->srcpad), - &outbuf); +done: + g_free (data0); + return ret; +} - if (GST_FLOW_OK != ret) - goto done; +/* + * (really really) FIXME: move into core (dixit tpm) + */ +/** + * _gst_caps_set_buffer_array: + * @caps: a #GstCaps + * @field: field in caps to set + * @buf: header buffers + * + * Adds given buffers to an array of buffers set as the given @field + * on the given @caps. List of buffer arguments must be NULL-terminated. + * + * Returns: input caps with a streamheader field added, or NULL if some error + */ +static GstCaps * +_gst_caps_set_buffer_array (GstCaps * caps, const gchar * field, + GstBuffer * buf, ...) +{ + GstStructure *structure = NULL; + va_list va; + GValue array = { 0 }; + GValue value = { 0 }; + + g_return_val_if_fail (caps != NULL, NULL); + g_return_val_if_fail (gst_caps_is_fixed (caps), NULL); + g_return_val_if_fail (field != NULL, NULL); - data = (gint16 *) gst_adapter_take (enc->adapter, bytes); - enc->samples_in += frame_size; + caps = gst_caps_make_writable (caps); + structure = gst_caps_get_structure (caps, 0); - GST_DEBUG_OBJECT (enc, "encoding %d samples (%d bytes)", frame_size, bytes); + g_value_init (&array, GST_TYPE_ARRAY); -#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 + va_start (va, buf); + /* put buffers in a fixed list */ + while (buf) { + g_assert (gst_buffer_is_metadata_writable (buf)); - g_free (data); + /* mark buffer */ + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); - if (outsize < 0) { - GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize); - ret = GST_FLOW_ERROR; - goto done; - } + g_value_init (&value, GST_TYPE_BUFFER); + buf = gst_buffer_copy (buf); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); - 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; + buf = va_arg (va, GstBuffer *); } -done: + gst_structure_set_value (structure, field, &array); + g_value_unset (&array); - return ret; + return caps; } static GstFlowReturn -gst_celt_enc_chain (GstPad * pad, GstBuffer * buf) +gst_celt_enc_handle_frame (GstAudioEncoder * benc, GstBuffer * buf) { GstCeltEnc *enc; GstFlowReturn ret = GST_FLOW_OK; - enc = GST_CELT_ENC (GST_PAD_PARENT (pad)); - - if (!enc->setup) - goto not_setup; + enc = GST_CELT_ENC (benc); if (!enc->header_sent) { /* Celt streams begin with two headers; the initial header (with @@ -903,144 +589,115 @@ gst_celt_enc_chain (GstPad * pad, GstBuffer * buf) constraints */ GstBuffer *buf1, *buf2; GstCaps *caps; - guchar data[100]; + /* libcelt has a bug which underestimates header size by 4... */ + unsigned int header_size = enc->header.header_size + 4; + unsigned char *data = g_malloc (header_size); /* create header buffer */ - celt_header_to_packet (&enc->header, data, 100); - buf1 = gst_celt_enc_buffer_from_data (enc, data, 100, 0); + int error = celt_header_to_packet (&enc->header, data, header_size); + if (error < 0) { + g_free (data); + goto no_header; + } + buf1 = gst_buffer_new (); + GST_BUFFER_DATA (buf1) = GST_BUFFER_MALLOCDATA (buf1) = data; + GST_BUFFER_SIZE (buf1) = header_size; + GST_BUFFER_OFFSET_END (buf1) = 0; + GST_BUFFER_OFFSET (buf1) = 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); - + caps = gst_pad_get_caps (GST_AUDIO_ENCODER_SRC_PAD (enc)); 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); + caps = _gst_caps_set_buffer_array (caps, "streamheader", buf1, buf2, 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_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), 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; + /* store buffers for later pre_push sending */ + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + enc->headers = NULL; + GST_DEBUG_OBJECT (enc, "storing header buffers"); + enc->headers = g_slist_prepend (enc->headers, buf2); + enc->headers = g_slist_prepend (enc->headers, buf1); 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; - } - } + GST_DEBUG_OBJECT (enc, "received buffer %p of %u bytes", buf, + buf ? GST_BUFFER_SIZE (buf) : 0); + ret = gst_celt_enc_encode (enc, buf); - /* 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); +done: + return ret; - 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); - } + /* ERRORS */ +no_header: + { + GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL), + ("Failed to encode header")); + ret = GST_FLOW_ERROR; + goto done; } +} - 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; +/* push out the buffer */ +static GstFlowReturn +gst_celt_enc_push_buffer (GstCeltEnc * enc, GstBuffer * buffer) +{ + guint size; - ret = gst_celt_enc_encode (enc, FALSE); + size = GST_BUFFER_SIZE (buffer); + GST_DEBUG_OBJECT (enc, "pushing output buffer of size %u", size); -done: + gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (enc))); + return gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (enc), buffer); +} - if (buf) - gst_buffer_unref (buf); +static GstFlowReturn +gst_celt_enc_pre_push (GstAudioEncoder * benc, GstBuffer ** buffer) +{ + GstCeltEnc *enc; + GstFlowReturn ret = GST_FLOW_OK; - return ret; + enc = GST_CELT_ENC (benc); + + /* FIXME 0.11 ? get rid of this special ogg stuff and have it + * put and use 'codec data' in caps like anything else, + * with all the usual out-of-band advantage etc */ + if (G_UNLIKELY (enc->headers)) { + GSList *header = enc->headers; + + /* try to push all of these, if we lose one, might as well lose all */ + while (header) { + if (ret == GST_FLOW_OK) + ret = gst_celt_enc_push_buffer (enc, header->data); + else + gst_celt_enc_push_buffer (enc, header->data); + header = g_slist_next (header); + } - /* ERRORS */ -not_setup: - { - GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), - ("encoder not initialized (input is not audio?)")); - ret = GST_FLOW_NOT_NEGOTIATED; - goto done; + g_slist_free (enc->headers); + enc->headers = NULL; } + return ret; } - static void gst_celt_enc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) @@ -1090,7 +747,8 @@ gst_celt_enc_set_property (GObject * object, guint prop_id, enc->bitrate = g_value_get_int (value); break; case PROP_FRAMESIZE: - enc->frame_size = g_value_get_int (value); + enc->requested_frame_size = g_value_get_int (value); + enc->frame_size = enc->requested_frame_size; break; case PROP_CBR: enc->cbr = g_value_get_boolean (value); @@ -1112,55 +770,3 @@ gst_celt_enc_set_property (GObject * object, guint prop_id, 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 index ec8a283..d0174ff 100644 --- a/ext/celt/gstceltenc.h +++ b/ext/celt/gstceltenc.h @@ -24,7 +24,7 @@ #include -#include +#include #include #include @@ -49,19 +49,15 @@ typedef struct _GstCeltEnc GstCeltEnc; typedef struct _GstCeltEncClass GstCeltEncClass; struct _GstCeltEnc { - GstElement element; - - /* pads */ - GstPad *sinkpad; - GstPad *srcpad; + GstAudioEncoder element; CELTHeader header; CELTMode *mode; CELTEncoder *state; - GstAdapter *adapter; gint bitrate; gint frame_size; + gint requested_frame_size; gboolean cbr; gint complexity; gint max_bitrate; @@ -71,26 +67,12 @@ struct _GstCeltEnc { 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; + GSList *headers; }; struct _GstCeltEncClass { - GstElementClass parent_class; - - /* signals */ - void (*frame_encoded) (GstElement *element); + GstAudioEncoderClass parent_class; }; GType gst_celt_enc_get_type (void); diff --git a/ext/cog/Makefile.in b/ext/cog/Makefile.in index 7d65dee..148332b 100644 --- a/ext/cog/Makefile.in +++ b/ext/cog/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -65,6 +65,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -123,6 +124,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -140,8 +147,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcog_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -168,21 +175,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcog_la_SOURCES) $(nodist_libgstcog_la_SOURCES) \ $(generate_tables_SOURCES) @@ -194,7 +201,6 @@ 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@ @@ -212,7 +218,6 @@ 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@ @@ -247,6 +252,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -286,6 +292,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,6 +310,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -311,13 +319,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -342,13 +353,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -396,6 +408,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -427,8 +440,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -452,6 +469,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -476,10 +495,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -491,6 +514,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -515,6 +542,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -550,7 +578,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -649,6 +676,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -689,7 +717,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcog.la: $(libgstcog_la_OBJECTS) $(libgstcog_la_DEPENDENCIES) +libgstcog.la: $(libgstcog_la_OBJECTS) $(libgstcog_la_DEPENDENCIES) $(EXTRA_libgstcog_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcog_la_LINK) -rpath $(plugindir) $(libgstcog_la_OBJECTS) $(libgstcog_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @@ -700,7 +728,7 @@ clean-noinstPROGRAMS: 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) +generate_tables$(EXEEXT): $(generate_tables_OBJECTS) $(generate_tables_DEPENDENCIES) $(EXTRA_generate_tables_DEPENDENCIES) @rm -f generate_tables$(EXEEXT) $(AM_V_CCLD)$(generate_tables_LINK) $(generate_tables_OBJECTS) $(generate_tables_LDADD) $(LIBS) @@ -729,162 +757,142 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -996,10 +1004,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/cog/cogvirtframe.c b/ext/cog/cogvirtframe.c index 0fc0ad1..e6d08e5 100644 --- a/ext/cog/cogvirtframe.c +++ b/ext/cog/cogvirtframe.c @@ -520,12 +520,11 @@ cog_virt_frame_render_resample_vert_1tap (CogFrame * frame, void *_dest, int n_src; int scale = frame->param1; int acc; - int x; int src_i; acc = scale * i; src_i = acc >> 8; - x = acc & 0xff; + /* x = acc & 0xff; */ n_src = frame->virt_frame1->components[component].height; src1 = cog_virt_frame_get_line (frame->virt_frame1, component, @@ -634,10 +633,9 @@ cog_virt_frame_render_resample_horiz_1tap (CogFrame * frame, void *_dest, { uint8_t *dest = _dest; uint8_t *src; - int n_src; int scale = frame->param1; - n_src = frame->virt_frame1->components[component].width; + /* 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, @@ -650,10 +648,9 @@ cog_virt_frame_render_resample_horiz_2tap (CogFrame * frame, void *_dest, { uint8_t *dest = _dest; uint8_t *src; - int n_src; int scale = frame->param1; - n_src = frame->virt_frame1->components[component].width; + /* 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, diff --git a/ext/cog/gstcogcolorspace.c b/ext/cog/gstcogcolorspace.c index 4a96e5c..3c84c32 100644 --- a/ext/cog/gstcogcolorspace.c +++ b/ext/cog/gstcogcolorspace.c @@ -126,10 +126,10 @@ 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_add_static_pad_template (element_class, + &gst_cogcolorspace_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_cogcolorspace_sink_template); gst_element_class_set_details_simple (element_class, "YCbCr/RGB format conversion", "Filter/Converter/Video", diff --git a/ext/cog/gstcogdownsample.c b/ext/cog/gstcogdownsample.c index 8bec086..5122f4a 100644 --- a/ext/cog/gstcogdownsample.c +++ b/ext/cog/gstcogdownsample.c @@ -132,10 +132,10 @@ 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_add_static_pad_template (element_class, + &gst_cogdownsample_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_cogdownsample_sink_template); gst_element_class_set_details_simple (element_class, "Scale down video by factor of 2", "Filter/Effect/Video", @@ -170,10 +170,7 @@ 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) { @@ -186,10 +183,7 @@ 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: @@ -308,14 +302,12 @@ 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); diff --git a/ext/cog/gstcogmse.c b/ext/cog/gstcogmse.c index 8eb63be..f85c873 100644 --- a/ext/cog/gstcogmse.c +++ b/ext/cog/gstcogmse.c @@ -135,12 +135,12 @@ 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_add_static_pad_template (element_class, + &gst_framestore_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_framestore_sink_ref_template); + gst_element_class_add_static_pad_template (element_class, + &gst_framestore_sink_test_template); gst_element_class_set_details_simple (element_class, "Calculate MSE", "Filter/Effect", @@ -203,8 +203,14 @@ gst_mse_finalize (GObject * object) { GstMSE *fs = GST_MSE (object); + gst_object_unref (fs->srcpad); + gst_object_unref (fs->sinkpad_ref); + gst_object_unref (fs->sinkpad_test); g_mutex_free (fs->lock); g_cond_free (fs->cond); + gst_buffer_replace (&fs->buffer_ref, NULL); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); } static GstCaps * @@ -240,7 +246,7 @@ gst_mse_getcaps (GstPad * pad) } if (pad != fs->sinkpad_test) { - peercaps = gst_pad_peer_get_caps (fs->sinkpad_ref); + peercaps = gst_pad_peer_get_caps (fs->sinkpad_test); if (peercaps) { icaps = gst_caps_intersect (caps, peercaps); gst_caps_unref (caps); @@ -307,6 +313,7 @@ gst_mse_reset (GstMSE * fs) fs->luma_mse_sum = 0; fs->chroma_mse_sum = 0; fs->n_frames = 0; + fs->cancel = FALSE; if (fs->buffer_ref) { gst_buffer_unref (fs->buffer_ref); @@ -432,9 +439,11 @@ gst_mse_sink_event (GstPad * pad, GstEvent * event) break; case GST_EVENT_FLUSH_START: GST_DEBUG ("flush start"); + fs->cancel = TRUE; break; case GST_EVENT_FLUSH_STOP: GST_DEBUG ("flush stop"); + fs->cancel = FALSE; break; default: break; diff --git a/ext/cog/gstcogorc-dist.c b/ext/cog/gstcogorc-dist.c index e752c55..d4daee6 100644 --- a/ext/cog/gstcogorc-dist.c +++ b/ext/cog/gstcogorc-dist.c @@ -406,7 +406,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -510,7 +510,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -723,7 +723,7 @@ cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -941,7 +941,7 @@ cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1066,7 +1066,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1243,7 +1243,7 @@ cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1476,7 +1476,7 @@ cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1620,7 +1620,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1748,7 +1748,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1858,7 +1858,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1960,7 +1960,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2074,7 +2074,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2191,7 +2191,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2382,7 +2382,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2501,7 +2501,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2615,7 +2615,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2732,7 +2732,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2923,7 +2923,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3046,7 +3046,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3154,7 +3154,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3244,7 +3244,7 @@ void orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3330,7 +3330,7 @@ void orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3492,7 +3492,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3715,7 +3715,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3954,7 +3954,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4189,7 +4189,7 @@ orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int p4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4464,7 +4464,7 @@ orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4714,7 +4714,7 @@ orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4951,7 +4951,7 @@ orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int p4, int p5, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5149,7 +5149,7 @@ orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5323,7 +5323,7 @@ orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5487,7 +5487,7 @@ cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1, int p1, int p2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5742,7 +5742,7 @@ cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1, int p1, int p2, int p3, int p4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5900,7 +5900,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6017,7 +6017,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6134,7 +6134,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6251,7 +6251,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6340,7 +6340,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6440,7 +6440,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6644,7 +6644,7 @@ cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6857,7 +6857,7 @@ cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7090,7 +7090,7 @@ cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7325,7 +7325,7 @@ cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7447,7 +7447,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7572,7 +7572,7 @@ cogorc_planar_chroma_420_422 (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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7690,7 +7690,7 @@ cogorc_planar_chroma_420_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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7801,7 +7801,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7925,7 +7925,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8074,7 +8074,7 @@ cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8199,7 +8199,7 @@ cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8409,7 +8409,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8627,7 +8627,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8803,7 +8803,7 @@ cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8977,7 +8977,7 @@ cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9163,7 +9163,7 @@ cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9355,7 +9355,7 @@ cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9584,7 +9584,7 @@ cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9944,7 +9944,7 @@ cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10191,7 +10191,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10413,7 +10413,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10645,7 +10645,7 @@ cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10830,7 +10830,7 @@ cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11007,7 +11007,7 @@ cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11181,7 +11181,7 @@ cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11407,7 +11407,7 @@ cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11631,7 +11631,7 @@ cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11854,7 +11854,7 @@ cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -12045,7 +12045,7 @@ cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -12491,7 +12491,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -13013,7 +13013,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -13535,7 +13535,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14057,7 +14057,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14566,7 +14566,7 @@ cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15117,7 +15117,7 @@ cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s5, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); diff --git a/ext/cog/gstcogscale.c b/ext/cog/gstcogscale.c index 570f367..10587f5 100644 --- a/ext/cog/gstcogscale.c +++ b/ext/cog/gstcogscale.c @@ -207,10 +207,10 @@ gst_cog_scale_base_init (gpointer g_class) "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)); + gst_element_class_add_static_pad_template (element_class, + &gst_cog_scale_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_cog_scale_sink_template); } static void @@ -296,7 +296,6 @@ static GstCaps * gst_cog_scale_transform_caps (GstBaseTransform * trans, GstPadDirection direction, GstCaps * caps) { - GstCogScale *videoscale; GstCaps *ret; GstStructure *structure; const GValue *par; @@ -304,8 +303,6 @@ gst_cog_scale_transform_caps (GstBaseTransform * trans, /* 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); @@ -371,14 +368,11 @@ 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; diff --git a/ext/cog/gstcolorconvert.c b/ext/cog/gstcolorconvert.c index 560ca68..4a043cd 100644 --- a/ext/cog/gstcolorconvert.c +++ b/ext/cog/gstcolorconvert.c @@ -132,10 +132,10 @@ 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_add_static_pad_template (element_class, + &gst_colorconvert_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_colorconvert_sink_template); gst_element_class_set_details_simple (element_class, "Convert colorspace", "Filter/Effect/Video", @@ -148,11 +148,9 @@ 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; @@ -172,10 +170,7 @@ 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) { @@ -188,10 +183,7 @@ 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: diff --git a/ext/cog/gstlogoinsert.c b/ext/cog/gstlogoinsert.c index a49d854..99e5447 100644 --- a/ext/cog/gstlogoinsert.c +++ b/ext/cog/gstlogoinsert.c @@ -130,10 +130,10 @@ 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_add_static_pad_template (element_class, + &gst_logoinsert_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_logoinsert_sink_template); gst_element_class_set_details_simple (element_class, "Overlay image onto video", "Filter/Effect/Video", @@ -223,10 +223,7 @@ gst_logoinsert_get_property (GObject * object, guint prop_id, GValue * value, 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 */ @@ -426,7 +423,6 @@ cog_frame_new_from_png (void *data, int size) png_bytep *rows; CogFrame *frame; guchar *frame_data; - int rowbytes; int j; int width, height; int color_type; @@ -458,7 +454,6 @@ cog_frame_new_from_png (void *data, int size) 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++) { diff --git a/ext/curl/Makefile.in b/ext/curl/Makefile.in index 2858c50..1b6665a 100644 --- a/ext/curl/Makefile.in +++ b/ext/curl/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstcurl_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcurl_la_SOURCES) DIST_SOURCES = $(libgstcurl_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcurl.la: $(libgstcurl_la_OBJECTS) $(libgstcurl_la_DEPENDENCIES) +libgstcurl.la: $(libgstcurl_la_OBJECTS) $(libgstcurl_la_DEPENDENCIES) $(EXTRA_libgstcurl_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcurl_la_LINK) -rpath $(plugindir) $(libgstcurl_la_OBJECTS) $(libgstcurl_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,42 +650,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -765,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/curl/gstcurlsink.c b/ext/curl/gstcurlsink.c index 2a448f4..75b459c 100644 --- a/ext/curl/gstcurlsink.c +++ b/ext/curl/gstcurlsink.c @@ -155,8 +155,7 @@ 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_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Curl sink", "Sink/Network", diff --git a/ext/dc1394/Makefile.in b/ext/dc1394/Makefile.in index 90c74e3..5511549 100644 --- a/ext/dc1394/Makefile.in +++ b/ext/dc1394/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdc1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdc1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdc1394_la_SOURCES) DIST_SOURCES = $(libgstdc1394_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdc1394.la: $(libgstdc1394_la_OBJECTS) $(libgstdc1394_la_DEPENDENCIES) +libgstdc1394.la: $(libgstdc1394_la_OBJECTS) $(libgstdc1394_la_DEPENDENCIES) $(EXTRA_libgstdc1394_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdc1394_la_LINK) -rpath $(plugindir) $(libgstdc1394_la_OBJECTS) $(libgstdc1394_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +644,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -751,10 +774,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/dc1394/gstdc1394.c b/ext/dc1394/gstdc1394.c index 94fcffb..dfb4cad 100644 --- a/ext/dc1394/gstdc1394.c +++ b/ext/dc1394/gstdc1394.c @@ -98,21 +98,24 @@ static void gst_dc1394_framerate_const_to_frac (gint framerateconst, GValue * framefrac); static gboolean gst_dc1394_change_camera_transmission (GstDc1394 * src, gboolean on); +static gboolean gst_dc1394_query (GstBaseSrc * bsrc, GstQuery * query); static void gst_dc1394_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + GstPadTemplate *pad_template; 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, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - gst_dc1394_get_all_dc1394_caps ())); - + gst_dc1394_get_all_dc1394_caps ()); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); } static void @@ -157,12 +160,12 @@ gst_dc1394_class_init (GstDc1394Class * klass) gstbasesrc_class->get_caps = gst_dc1394_getcaps; gstbasesrc_class->set_caps = gst_dc1394_setcaps; + gstbasesrc_class->query = gst_dc1394_query; 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 @@ -182,7 +185,6 @@ gst_dc1394_init (GstDc1394 * src, GstDc1394Class * g_class) gst_dc1394_src_fixate); gst_base_src_set_live (GST_BASE_SRC (src), TRUE); - } static void @@ -205,6 +207,59 @@ gst_dc1394_src_fixate (GstPad * pad, GstCaps * caps) gst_object_unref (GST_OBJECT (src)); } +static gboolean +gst_dc1394_query (GstBaseSrc * bsrc, GstQuery * query) +{ + gboolean res = TRUE; + GstDc1394 *src = GST_DC1394 (bsrc); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_LATENCY: + { + GstClockTime min_latency, max_latency; + + if (!src->camera) { + GST_WARNING_OBJECT (src, + "Can't give latency since device isn't open !"); + res = FALSE; + goto done; + } + + if (src->rate_denominator <= 0 || src->rate_numerator <= 0) { + GST_WARNING_OBJECT (bsrc, + "Can't give latency since framerate isn't fixated !"); + res = FALSE; + goto done; + } + + /* min latency is the time to capture one frame */ + min_latency = gst_util_uint64_scale (GST_SECOND, + src->rate_denominator, src->rate_numerator); + + /* max latency is total duration of the frame buffer */ + max_latency = gst_util_uint64_scale (src->bufsize, + GST_SECOND * src->rate_denominator, src->rate_numerator); + + GST_DEBUG_OBJECT (bsrc, + "report latency min %" GST_TIME_FORMAT " max %" GST_TIME_FORMAT, + GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency)); + + /* we are always live, the min latency is 1 frame and the max latency is + * the complete buffer of frames. */ + gst_query_set_latency (query, TRUE, min_latency, max_latency); + + res = TRUE; + break; + } + default: + res = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query); + break; + } + +done: + return res; +} + static void gst_dc1394_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) @@ -280,11 +335,9 @@ gst_dc1394_getcaps (GstBaseSrc * bsrc) 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; diff --git a/ext/dirac/Makefile.in b/ext/dirac/Makefile.in index 8a03e70..6d763e0 100644 --- a/ext/dirac/Makefile.in +++ b/ext/dirac/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ libgstdirac_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstbasevideo 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdirac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +134,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdirac_la_SOURCES) DIST_SOURCES = $(libgstdirac_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -618,7 +645,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdirac.la: $(libgstdirac_la_OBJECTS) $(libgstdirac_la_DEPENDENCIES) +libgstdirac.la: $(libgstdirac_la_OBJECTS) $(libgstdirac_la_DEPENDENCIES) $(EXTRA_libgstdirac_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstdirac_la_LINK) -rpath $(plugindir) $(libgstdirac_la_OBJECTS) $(libgstdirac_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -633,42 +660,37 @@ distclean-compile: .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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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 @@ -775,10 +797,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/dirac/gstdiracenc.cc b/ext/dirac/gstdiracenc.cc index 6e3129a..f9595e1 100644 --- a/ext/dirac/gstdiracenc.cc +++ b/ext/dirac/gstdiracenc.cc @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -45,15 +46,6 @@ GST_DEBUG_CATEGORY_EXTERN (dirac_debug); 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; @@ -90,7 +82,6 @@ struct _GstDiracEnc dirac_encoder_t *encoder; dirac_sourceparams_t *src_params; GstBuffer *seq_header_buffer; - GstDiracEncOutputType output_format; guint64 last_granulepos; guint64 granule_offset; @@ -149,13 +140,11 @@ 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 * +static GstFlowReturn gst_dirac_enc_finish (GstBaseVideoEncoder * base_video_encoder); +static GstFlowReturn 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); @@ -208,10 +197,10 @@ 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_add_static_pad_template (element_class, + &gst_dirac_enc_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_dirac_enc_sink_template); gst_element_class_set_details_simple (element_class, "Dirac Encoder", "Codec/Encoder/Video", @@ -223,13 +212,11 @@ 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; @@ -325,7 +312,6 @@ gst_dirac_enc_class_init (GstDiracEncClass * klass) 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 @@ -342,41 +328,10 @@ gst_dirac_enc_set_format (GstBaseVideoEncoder * base_video_encoder, { GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); GstCaps *caps; - GstStructure *structure; + gboolean ret; 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) { @@ -421,7 +376,22 @@ gst_dirac_enc_set_format (GstBaseVideoEncoder * base_video_encoder, dirac_enc->enc_ctx.decode_flag = 0; dirac_enc->enc_ctx.instr_flag = 0; - return TRUE; + dirac_enc->granule_offset = ~0; + + dirac_enc->encoder = dirac_encoder_init (&dirac_enc->enc_ctx, FALSE); + + 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, NULL); + + ret = gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (dirac_enc), caps); + gst_caps_unref (caps); + + return ret; } static void @@ -821,12 +791,6 @@ error: 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; } @@ -845,7 +809,7 @@ gst_dirac_enc_stop (GstBaseVideoEncoder * base_video_encoder) return TRUE; } -static gboolean +static GstFlowReturn gst_dirac_enc_finish (GstBaseVideoEncoder * base_video_encoder) { GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); @@ -854,15 +818,15 @@ gst_dirac_enc_finish (GstBaseVideoEncoder * base_video_encoder) gst_dirac_enc_process (dirac_enc, TRUE); - return TRUE; + return GST_FLOW_OK; } -static gboolean +static GstFlowReturn gst_dirac_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) { GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); - gboolean ret; + GstFlowReturn ret; int r; const GstVideoState *state; uint8_t *data; @@ -965,7 +929,7 @@ gst_dirac_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, } if (r != (int) GST_BUFFER_SIZE (frame->sink_buffer)) { GST_ERROR ("failed to push picture"); - return FALSE; + return GST_FLOW_ERROR; } GST_DEBUG ("handle frame"); @@ -978,7 +942,7 @@ gst_dirac_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, ret = gst_dirac_enc_process (dirac_enc, FALSE); - return (ret == GST_FLOW_OK); + return ret; } #if 0 @@ -1137,8 +1101,7 @@ static GstFlowReturn gst_dirac_enc_process (GstDiracEnc * dirac_enc, gboolean end_sequence) { GstBuffer *outbuf; - GstFlowReturn ret; - int presentation_frame; + GstFlowReturn ret = GST_FLOW_OK; int parse_code; int state; GstVideoFrame *frame; @@ -1194,15 +1157,34 @@ gst_dirac_enc_process (GstDiracEnc * dirac_enc, gboolean end_sequence) 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) { + GstCaps *caps; + const GstVideoState *state = gst_base_video_encoder_get_state (GST_BASE_VIDEO_ENCODER (dirac_enc)); + gst_dirac_enc_create_codec_data (dirac_enc, outbuf); + + 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); + if (!gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (dirac_enc), caps)) + ret = GST_FLOW_NOT_NEGOTIATED; + gst_caps_unref (caps); + + if (ret != GST_FLOW_OK) { + GST_ERROR ("Failed to set srcpad caps"); + gst_buffer_unref (outbuf); + return ret; + } } frame->src_buffer = outbuf; @@ -1232,7 +1214,6 @@ gst_dirac_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) { GstDiracEnc *dirac_enc; - int dpn; int delay; int dist; int pt; @@ -1243,8 +1224,6 @@ gst_dirac_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, 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; @@ -1266,74 +1245,8 @@ gst_dirac_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, 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); + gst_buffer_set_caps (buf, + GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); } @@ -1342,21 +1255,7 @@ 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; - } + gst_dirac_enc_shape_output_ogg (base_video_encoder, frame); return GST_FLOW_ERROR; } @@ -1393,65 +1292,4 @@ gst_dirac_enc_create_codec_data (GstDiracEnc * dirac_enc, 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.in b/ext/directfb/Makefile.in index 69a6794..ebe04c6 100644 --- a/ext/directfb/Makefile.in +++ b/ext/directfb/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ libgstdfbvideosink_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdfbvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdfbvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -134,21 +141,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdfbvideosink_la_SOURCES) dfb-example.c DIST_SOURCES = $(libgstdfbvideosink_la_SOURCES) dfb-example.c @@ -160,7 +167,6 @@ 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@ @@ -178,7 +184,6 @@ 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@ @@ -213,6 +218,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -252,6 +258,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -269,6 +276,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -277,13 +285,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -308,13 +319,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -362,6 +374,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -393,8 +406,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -418,6 +435,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -442,10 +461,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -457,6 +480,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -481,6 +508,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -516,7 +544,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -617,7 +644,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdfbvideosink.la: $(libgstdfbvideosink_la_OBJECTS) $(libgstdfbvideosink_la_DEPENDENCIES) +libgstdfbvideosink.la: $(libgstdfbvideosink_la_OBJECTS) $(libgstdfbvideosink_la_DEPENDENCIES) $(EXTRA_libgstdfbvideosink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdfbvideosink_la_LINK) -rpath $(plugindir) $(libgstdfbvideosink_la_OBJECTS) $(libgstdfbvideosink_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @@ -628,7 +655,7 @@ clean-noinstPROGRAMS: 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) +dfb-example$(EXEEXT): $(dfb_example_OBJECTS) $(dfb_example_DEPENDENCIES) $(EXTRA_dfb_example_DEPENDENCIES) @rm -f dfb-example$(EXEEXT) $(AM_V_CCLD)$(dfb_example_LINK) $(dfb_example_OBJECTS) $(dfb_example_LDADD) $(LIBS) @@ -644,50 +671,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -794,10 +815,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/directfb/dfbvideosink.c b/ext/directfb/dfbvideosink.c index d8bb6d9..c3417a5 100644 --- a/ext/directfb/dfbvideosink.c +++ b/ext/directfb/dfbvideosink.c @@ -998,7 +998,7 @@ beach: static gboolean gst_dfbvideosink_can_blit_from_format (GstDfbVideoSink * dfbvideosink, - DFBSurfacePixelFormat format) + DFBSurfacePixelFormat format, gboolean accelerated) { gboolean res = FALSE; DFBResult ret; @@ -1058,14 +1058,14 @@ gst_dfbvideosink_can_blit_from_format (GstDfbVideoSink * dfbvideosink, } /* Blitting from this format to our primary is accelerated */ - if (mask & DFXL_BLIT) { + if ((mask & DFXL_BLIT) && accelerated) { GST_DEBUG_OBJECT (dfbvideosink, "blitting from format %s to our primary " "is accelerated", gst_dfbvideosink_get_format_name (format)); res = TRUE; - } else { + } else if (!accelerated) { GST_DEBUG_OBJECT (dfbvideosink, "blitting from format %s to our primary " "is not accelerated", gst_dfbvideosink_get_format_name (format)); - res = FALSE; + res = TRUE; } /* Restore original layer configuration */ @@ -1165,41 +1165,52 @@ gst_dfbvideosink_getcaps (GstBaseSink * bsink) caps = gst_dfbvideosink_get_caps_from_format (dfbvideosink->pixel_format); } else { /* Try some formats */ + gboolean accelerated = TRUE; 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)); - } + do { + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB16, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB16)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB24, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB24)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB32, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB32)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_ARGB, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_ARGB)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_YUY2, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_YUY2)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_UYVY, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_UYVY)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_I420, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_I420)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_YV12, + accelerated)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_YV12)); + } + accelerated = !accelerated; + } while (accelerated == FALSE); } } @@ -2231,8 +2242,8 @@ 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->video_height = dfbvideosink->out_height = 0; + dfbvideosink->video_width = dfbvideosink->out_width = 0; dfbvideosink->fps_d = 0; dfbvideosink->fps_n = 0; @@ -2272,8 +2283,8 @@ gst_dfbvideosink_base_init (gpointer g_class) "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)); + gst_element_class_add_static_pad_template (element_class, + &gst_dfbvideosink_sink_template_factory); } static void diff --git a/ext/divx/Makefile.in b/ext/divx/Makefile.in index 483f56d..25321da 100644 --- a/ext/divx/Makefile.in +++ b/ext/divx/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdivxdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdivxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +139,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdivxdec_la_SOURCES) $(libgstdivxenc_la_SOURCES) DIST_SOURCES = $(libgstdivxdec_la_SOURCES) $(libgstdivxenc_la_SOURCES) @@ -158,7 +165,6 @@ 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@ @@ -176,7 +182,6 @@ 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@ @@ -211,6 +216,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +256,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +274,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +283,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +317,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +372,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +404,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +433,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +459,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +478,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +506,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +542,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -611,9 +638,9 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdivxdec.la: $(libgstdivxdec_la_OBJECTS) $(libgstdivxdec_la_DEPENDENCIES) +libgstdivxdec.la: $(libgstdivxdec_la_OBJECTS) $(libgstdivxdec_la_DEPENDENCIES) $(EXTRA_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) +libgstdivxenc.la: $(libgstdivxenc_la_OBJECTS) $(libgstdivxenc_la_DEPENDENCIES) $(EXTRA_libgstdivxenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdivxenc_la_LINK) -rpath $(plugindir) $(libgstdivxenc_la_OBJECTS) $(libgstdivxenc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -628,42 +655,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -770,10 +792,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/divx/gstdivxdec.c b/ext/divx/gstdivxdec.c index 2b66256..9f2feec 100644 --- a/ext/divx/gstdivxdec.c +++ b/ext/divx/gstdivxdec.c @@ -130,10 +130,9 @@ 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_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Divx4linux video decoder", "Codec/Decoder/Video", diff --git a/ext/divx/gstdivxenc.c b/ext/divx/gstdivxenc.c index 924f674..144d23b 100644 --- a/ext/divx/gstdivxenc.c +++ b/ext/divx/gstdivxenc.c @@ -141,10 +141,9 @@ 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_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Divx4linux video encoder", "Codec/Encoder/Video", diff --git a/ext/dts/Makefile.am b/ext/dts/Makefile.am index f93e87d..97a8385 100644 --- a/ext/dts/Makefile.am +++ b/ext/dts/Makefile.am @@ -1,9 +1,11 @@ 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_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) +libgstdtsdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ \ + $(DTS_LIBS) $(ORC_LIBS) libgstdtsdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstdtsdec_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/ext/dts/Makefile.in b/ext/dts/Makefile.in index fc6f96f..458a0fe 100644 --- a/ext/dts/Makefile.in +++ b/ext/dts/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,15 +101,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstdtsdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdtsdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdtsdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdtsdec_la_SOURCES) DIST_SOURCES = $(libgstdtsdec_la_SOURCES) @@ -150,7 +158,6 @@ 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@ @@ -168,7 +175,6 @@ 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@ @@ -203,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -529,9 +557,12 @@ 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_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) + +libgstdtsdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ \ + $(DTS_LIBS) $(ORC_LIBS) libgstdtsdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstdtsdec_la_LIBTOOLFLAGS = --tag=disable-static @@ -601,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdtsdec.la: $(libgstdtsdec_la_OBJECTS) $(libgstdtsdec_la_DEPENDENCIES) +libgstdtsdec.la: $(libgstdtsdec_la_OBJECTS) $(libgstdtsdec_la_DEPENDENCIES) $(EXTRA_libgstdtsdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdtsdec_la_LINK) -rpath $(plugindir) $(libgstdtsdec_la_OBJECTS) $(libgstdtsdec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -615,34 +646,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -749,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c index 2039c58..4a304f8 100644 --- a/ext/dts/gstdtsdec.c +++ b/ext/dts/gstdtsdec.c @@ -127,14 +127,20 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", "rate = (int) [ 4000, 96000 ], " "channels = (int) [ 1, 6 ]") ); -GST_BOILERPLATE (GstDtsDec, gst_dtsdec, GstElement, GST_TYPE_ELEMENT); +GST_BOILERPLATE (GstDtsDec, gst_dtsdec, GstAudioDecoder, + GST_TYPE_AUDIO_DECODER); + +static gboolean gst_dtsdec_start (GstAudioDecoder * dec); +static gboolean gst_dtsdec_stop (GstAudioDecoder * dec); +static gboolean gst_dtsdec_set_format (GstAudioDecoder * bdec, GstCaps * caps); +static gboolean gst_dtsdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, + gint * offset, gint * length); +static GstFlowReturn gst_dtsdec_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); +static GstFlowReturn gst_dtsdec_pre_push (GstAudioDecoder * bdec, + GstBuffer ** buffer); -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); @@ -147,10 +153,8 @@ 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_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "DTS audio decoder", "Codec/Decoder/Audio", "Decodes DTS audio streams", @@ -164,16 +168,21 @@ static void gst_dtsdec_class_init (GstDtsDecClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + GstAudioDecoderClass *gstbase_class; guint cpuflags; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + gstbase_class = (GstAudioDecoderClass *) 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; + gstbase_class->start = GST_DEBUG_FUNCPTR (gst_dtsdec_start); + gstbase_class->stop = GST_DEBUG_FUNCPTR (gst_dtsdec_stop); + gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_dtsdec_set_format); + gstbase_class->parse = GST_DEBUG_FUNCPTR (gst_dtsdec_parse); + gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dtsdec_handle_frame); + gstbase_class->pre_push = GST_DEBUG_FUNCPTR (gst_dtsdec_pre_push); /** * GstDtsDec::drc @@ -209,23 +218,104 @@ gst_dtsdec_class_init (GstDtsDecClass * klass) 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, + dtsdec->request_channels = DCA_CHANNEL; + dtsdec->dynamic_range_compression = FALSE; + + /* retrieve and intercept base class chain. + * Quite HACKish, but that's dvd specs for you, + * since one buffer needs to be split into 2 frames */ + dtsdec->base_chain = GST_PAD_CHAINFUNC (GST_AUDIO_DECODER_SINK_PAD (dtsdec)); + gst_pad_set_chain_function (GST_AUDIO_DECODER_SINK_PAD (dtsdec), 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); +static gboolean +gst_dtsdec_start (GstAudioDecoder * dec) +{ + GstDtsDec *dts = GST_DTSDEC (dec); + GstDtsDecClass *klass; + + GST_DEBUG_OBJECT (dec, "start"); + + klass = GST_DTSDEC_CLASS (G_OBJECT_GET_CLASS (dts)); + dts->state = dca_init (klass->dts_cpuflags); + 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->flag_update = TRUE; - dtsdec->request_channels = DCA_CHANNEL; - dtsdec->dynamic_range_compression = FALSE; + /* call upon legacy upstream byte support (e.g. seeking) */ + gst_audio_decoder_set_byte_time (dec, TRUE); + + return TRUE; +} + +static gboolean +gst_dtsdec_stop (GstAudioDecoder * dec) +{ + GstDtsDec *dts = GST_DTSDEC (dec); - gst_segment_init (&dtsdec->segment, GST_FORMAT_UNDEFINED); + GST_DEBUG_OBJECT (dec, "stop"); + + dts->samples = NULL; + if (dts->state) { + dca_free (dts->state); + dts->state = NULL; + } + if (dts->pending_tags) { + gst_tag_list_free (dts->pending_tags); + dts->pending_tags = NULL; + } + + return TRUE; +} + +static GstFlowReturn +gst_dtsdec_parse (GstAudioDecoder * bdec, GstAdapter * adapter, + gint * _offset, gint * len) +{ + GstDtsDec *dts; + guint8 *data; + gint av, size; + gint length = 0, flags, sample_rate, bit_rate, frame_length; + GstFlowReturn result = GST_FLOW_UNEXPECTED; + + dts = GST_DTSDEC (bdec); + + size = av = gst_adapter_available (adapter); + data = (guint8 *) gst_adapter_peek (adapter, av); + + /* find and read header */ + bit_rate = dts->bit_rate; + sample_rate = dts->sample_rate; + flags = 0; + while (av >= 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_LOG_OBJECT (dts, "Sync: frame size %d", length); + result = GST_FLOW_OK; + break; + } else { + GST_LOG_OBJECT (dts, "Not enough data available (needed %d had %d)", + length, size); + break; + } + } + + *_offset = av - size; + *len = length; + + return result; } static gint @@ -327,105 +417,6 @@ gst_dtsdec_channels (uint32_t flags, GstAudioChannelPosition ** pos) 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) { @@ -446,7 +437,7 @@ gst_dtsdec_renegotiate (GstDtsDec * dts) gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos); g_free (pos); - if (!gst_pad_set_caps (dts->srcpad, caps)) + if (!gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dts), caps)) goto done; result = TRUE; @@ -458,100 +449,74 @@ done: 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) { + taglist = gst_tag_list_new (); /* 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); + + if (dts->pending_tags) { + gst_tag_list_free (dts->pending_tags); + dts->pending_tags = NULL; + } + + dts->pending_tags = taglist; + } +} + +static GstFlowReturn +gst_dtsdec_pre_push (GstAudioDecoder * bdec, GstBuffer ** buffer) +{ + GstDtsDec *dts = GST_DTSDEC (bdec); + + if (G_UNLIKELY (dts->pending_tags)) { + gst_element_found_tags_for_pad (GST_ELEMENT (dts), + GST_AUDIO_DECODER_SRC_PAD (dts), dts->pending_tags); + dts->pending_tags = NULL; } - gst_element_found_tags_for_pad (GST_ELEMENT (dts), dts->srcpad, taglist); + return GST_FLOW_OK; } static GstFlowReturn -gst_dtsdec_handle_frame (GstDtsDec * dts, guint8 * data, - guint length, gint flags, gint sample_rate, gint bit_rate) +gst_dtsdec_handle_frame (GstAudioDecoder * bdec, GstBuffer * buffer) { + GstDtsDec *dts; gint channels, i, num_blocks; gboolean need_renegotiation = FALSE; + guint8 *data; + gint size, chans; + gint length = 0, flags, sample_rate, bit_rate, frame_length; + GstFlowReturn result = GST_FLOW_OK; + GstBuffer *outbuf; + + dts = GST_DTSDEC (bdec); + + /* no fancy draining */ + if (G_UNLIKELY (!buffer)) + return GST_FLOW_OK; + + /* parsed stuff already, so this should work out fine */ + data = GST_BUFFER_DATA (buffer); + size = GST_BUFFER_SIZE (buffer); + g_assert (size >= 7); + + bit_rate = dts->bit_rate; + sample_rate = dts->sample_rate; + flags = 0; + length = dca_syncinfo (dts->state, data, &flags, &sample_rate, &bit_rate, + &frame_length); + g_assert (length == size); + + if (flags != dts->prev_flags) { + dts->prev_flags = flags; + dts->flag_update = TRUE; + } /* go over stream properties, renegotiate or update streaminfo if needed */ if (dts->sample_rate != sample_rate) { @@ -581,7 +546,7 @@ gst_dtsdec_handle_frame (GstDtsDec * dts, guint8 * data, dts->flag_update = FALSE; - caps = gst_pad_get_allowed_caps (dts->srcpad); + caps = gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (dts)); if (caps && gst_caps_get_size (caps) > 0) { GstCaps *copy = gst_caps_copy_nth (caps, 0); GstStructure *structure = gst_caps_get_structure (copy, 0); @@ -618,14 +583,16 @@ gst_dtsdec_handle_frame (GstDtsDec * dts, guint8 * data, } 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; + GST_AUDIO_DECODER_ERROR (dts, 1, STREAM, DECODE, (NULL), + ("dts_frame error"), result); + goto exit; } + channels = flags & (DCA_CHANNEL_MASK | DCA_LFE); if (dts->using_channels != channels) { need_renegotiation = TRUE; @@ -634,44 +601,74 @@ gst_dtsdec_handle_frame (GstDtsDec * dts, guint8 * data, /* negotiate if required */ if (need_renegotiation) { - GST_DEBUG ("dtsdec: sample_rate:%d stream_chans:0x%x using_chans:0x%x", + GST_DEBUG_OBJECT (dts, + "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 (!gst_dtsdec_renegotiate (dts)) + goto failed_negotiation; } if (dts->dynamic_range_compression == FALSE) { dca_dynrng (dts->state, NULL, NULL); } + flags &= (DCA_CHANNEL_MASK | DCA_LFE); + chans = gst_dtsdec_channels (flags, NULL); + if (!chans) + goto invalid_flags; + /* handle decoded data, one block is 256 samples */ num_blocks = dca_blocks_num (dts->state); + result = + gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (dts), 0, + 256 * chans * (SAMPLE_WIDTH / 8) * num_blocks, + GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (dts)), &outbuf); + if (result != GST_FLOW_OK) + goto exit; + + data = GST_BUFFER_DATA (outbuf); 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; + /* also marks discont */ + GST_AUDIO_DECODER_ERROR (dts, 1, STREAM, DECODE, (NULL), + ("error decoding block %d", i), result); + if (result != GST_FLOW_OK) + goto exit; } else { - GstFlowReturn ret; + gint n, c; - /* push on */ - ret = gst_dtsdec_push (dts, dts->srcpad, dts->using_channels, - dts->samples, dts->time); - if (ret != GST_FLOW_OK) - return ret; + for (n = 0; n < 256; n++) { + for (c = 0; c < chans; c++) { + ((sample_t *) data)[n * chans + c] = dts->samples[c * 256 + n]; + } + } } - dts->time += GST_SECOND * 256 / dts->sample_rate; + data += 256 * chans * (SAMPLE_WIDTH / 8); } - return GST_FLOW_OK; + result = gst_audio_decoder_finish_frame (bdec, outbuf, 1); + +exit: + return result; + + /* ERRORS */ +failed_negotiation: + { + GST_ELEMENT_ERROR (dts, CORE, NEGOTIATION, (NULL), (NULL)); + return GST_FLOW_ERROR; + } +invalid_flags: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dts), STREAM, DECODE, (NULL), + ("Invalid channel flags: %d", flags)); + return GST_FLOW_ERROR; + } } static gboolean -gst_dtsdec_sink_setcaps (GstPad * pad, GstCaps * caps) +gst_dtsdec_set_format (GstAudioDecoder * bdec, GstCaps * caps) { - GstDtsDec *dts = GST_DTSDEC (gst_pad_get_parent (pad)); + GstDtsDec *dts = GST_DTSDEC (bdec); GstStructure *structure; structure = gst_caps_get_structure (caps, 0); @@ -681,8 +678,6 @@ gst_dtsdec_sink_setcaps (GstPad * pad, GstCaps * caps) else dts->dvdmode = FALSE; - gst_object_unref (dts); - return TRUE; } @@ -693,17 +688,6 @@ gst_dtsdec_chain (GstPad * pad, GstBuffer * buf) 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); @@ -726,33 +710,38 @@ gst_dtsdec_chain (GstPad * pad, GstBuffer * buf) goto bad_first_access_parameter; subbuf = gst_buffer_create_sub (buf, offset, len); + gst_buffer_copy_metadata (subbuf, buf, GST_BUFFER_COPY_ALL); GST_BUFFER_TIMESTAMP (subbuf) = GST_CLOCK_TIME_NONE; - ret = gst_dtsdec_chain_raw (pad, subbuf); - if (ret != GST_FLOW_OK) + ret = dts->base_chain (pad, subbuf); + if (ret != GST_FLOW_OK) { + gst_buffer_unref (buf); goto done; + } offset += len; len = size - offset; if (len > 0) { subbuf = gst_buffer_create_sub (buf, offset, len); + gst_buffer_copy_metadata (subbuf, buf, GST_BUFFER_COPY_ALL); GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf); - ret = gst_dtsdec_chain_raw (pad, subbuf); + ret = dts->base_chain (pad, subbuf); } + gst_buffer_unref (buf); } 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_copy_metadata (subbuf, buf, GST_BUFFER_COPY_ALL); GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf); - ret = gst_dtsdec_chain_raw (pad, subbuf); + ret = dts->base_chain (pad, subbuf); + gst_buffer_unref (buf); } } else { - gst_buffer_ref (buf); - ret = gst_dtsdec_chain_raw (pad, buf); + ret = dts->base_chain (pad, buf); } done: - gst_buffer_unref (buf); return ret; /* ERRORS */ @@ -772,154 +761,6 @@ bad_first_access_parameter: } } -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) diff --git a/ext/dts/gstdtsdec.h b/ext/dts/gstdtsdec.h index a7c8f71..be6005a 100644 --- a/ext/dts/gstdtsdec.h +++ b/ext/dts/gstdtsdec.h @@ -22,6 +22,7 @@ #define __GST_DTSDEC_H__ #include +#include G_BEGIN_DECLS @@ -40,16 +41,11 @@ typedef struct _GstDtsDec GstDtsDec; typedef struct _GstDtsDecClass GstDtsDecClass; struct _GstDtsDec { - GstElement element; + GstAudioDecoder element; - /* pads */ - GstPad *sinkpad; - GstPad *srcpad; - GstSegment segment; + GstPadChainFunction base_chain; gboolean dvdmode; - gboolean sent_segment; - gboolean discont; gboolean flag_update; gboolean prev_flags; @@ -71,17 +67,11 @@ struct _GstDtsDec { dts_state_t *state; #endif - - /* Data left over from the previous buffer */ - GstBuffer *cache; - GstClockTime time; - - /* reverse playback */ - GList *queued; + GstTagList *pending_tags; }; struct _GstDtsDecClass { - GstElementClass parent_class; + GstAudioDecoderClass parent_class; guint32 dts_cpuflags; }; diff --git a/ext/faac/Makefile.am b/ext/faac/Makefile.am index b4ec10a..2aafa02 100644 --- a/ext/faac/Makefile.am +++ b/ext/faac/Makefile.am @@ -1,10 +1,12 @@ 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_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) $(FAAC_CFLAGS) +libgstfaac_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ -lgstpbutils-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(FAAC_LIBS) libgstfaac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstfaac_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/ext/faac/Makefile.in b/ext/faac/Makefile.in index bd4774b..763539b 100644 --- a/ext/faac/Makefile.in +++ b/ext/faac/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfaac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfaac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfaac_la_SOURCES) DIST_SOURCES = $(libgstfaac_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -529,11 +556,13 @@ 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_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) $(FAAC_CFLAGS) -libgstfaac_la_LIBADD = $(FAAC_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ - -lgstaudio-@GST_MAJORMINOR@ +libgstfaac_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ -lgstpbutils-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(FAAC_LIBS) libgstfaac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstfaac_la_LIBTOOLFLAGS = --tag=disable-static @@ -603,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfaac.la: $(libgstfaac_la_OBJECTS) $(libgstfaac_la_DEPENDENCIES) +libgstfaac.la: $(libgstfaac_la_OBJECTS) $(libgstfaac_la_DEPENDENCIES) $(EXTRA_libgstfaac_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfaac_la_LINK) -rpath $(plugindir) $(libgstfaac_la_OBJECTS) $(libgstfaac_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +646,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -751,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/faac/gstfaac.c b/ext/faac/gstfaac.c index f308603..f811cd1 100644 --- a/ext/faac/gstfaac.c +++ b/ext/faac/gstfaac.c @@ -24,16 +24,6 @@ * * 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 * |[ @@ -49,16 +39,29 @@ #include #include +#include #include "gstfaac.h" +#define SAMPLE_RATES " 8000, " \ + "11025, " \ + "12000, " \ + "16000, " \ + "22050, " \ + "24000, " \ + "32000, " \ + "44100, " \ + "48000, " \ + "64000, " \ + "88200, " \ + "96000" #define SINK_CAPS \ "audio/x-raw-int, " \ "endianness = (int) BYTE_ORDER, " \ "signed = (boolean) true, " \ "width = (int) 16, " \ "depth = (int) 16, " \ - "rate = (int) [ 8000, 96000 ], " \ + "rate = (int) {" SAMPLE_RATES "}, " \ "channels = (int) [ 1, 6 ] " /* these don't seem to work? */ @@ -77,10 +80,17 @@ #endif #define SRC_CAPS \ "audio/mpeg, " \ - "mpegversion = (int) { 4, 2 }, " \ + "mpegversion = (int) 4, " \ + "channels = (int) [ 1, 6 ], " \ + "rate = (int) {" SAMPLE_RATES "}, " \ + "stream-format = (string) { adts, raw }, " \ + "base-profile = (string) { main, lc, ssr, ltp }; " \ + "audio/mpeg, " \ + "mpegversion = (int) 2, " \ "channels = (int) [ 1, 6 ], " \ - "rate = (int) [ 8000, 96000 ], " \ - "stream-format = (string) { adts, raw } " + "rate = (int) {" SAMPLE_RATES "}, " \ + "stream-format = (string) { adts, raw }, " \ + "profile = (string) { main, lc }" static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, @@ -93,90 +103,57 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", enum { - ARG_0, - ARG_OUTPUTFORMAT, - ARG_BITRATE, - ARG_PROFILE, - ARG_TNS, - ARG_MIDSIDE, - ARG_SHORTCTL + PROP_0, + PROP_QUALITY, + PROP_BITRATE, + PROP_RATE_CONTROL, + PROP_PROFILE, + PROP_TNS, + PROP_MIDSIDE, + PROP_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); +enum +{ + VBR = 1, + ABR +}; 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 GstCaps *gst_faac_getcaps (GstAudioEncoder * enc); -static GstElementClass *parent_class = NULL; +static gboolean gst_faac_start (GstAudioEncoder * enc); +static gboolean gst_faac_stop (GstAudioEncoder * enc); +static gboolean gst_faac_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_faac_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); 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_QUALITY 100 #define FAAC_DEFAULT_BITRATE 128 * 1000 -#define FAAC_DEFAULT_PROFILE LOW +#define FAAC_DEFAULT_RATE_CONTROL VBR #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; -} +GST_BOILERPLATE (GstFaac, gst_faac, GstAudioEncoder, GST_TYPE_AUDIO_ENCODER); static void -gst_faac_base_init (GstFaacClass * klass) +gst_faac_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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "AAC audio encoder", "Codec/Encoder/Audio", @@ -186,26 +163,24 @@ gst_faac_base_init (GstFaacClass * klass) GST_DEBUG_CATEGORY_INIT (faac_debug, "faac", 0, "AAC encoding"); } -#define GST_TYPE_FAAC_PROFILE (gst_faac_profile_get_type ()) +#define GST_TYPE_FAAC_RATE_CONTROL (gst_faac_brtype_get_type ()) static GType -gst_faac_profile_get_type (void) +gst_faac_brtype_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"}, + static GType gst_faac_brtype_type = 0; + + if (!gst_faac_brtype_type) { + static GEnumValue gst_faac_brtype[] = { + {VBR, "VBR", "VBR encoding"}, + {ABR, "ABR", "ABR encoding"}, {0, NULL, NULL}, }; - gst_faac_profile_type = g_enum_register_static ("GstFaacProfile", - gst_faac_profile); + gst_faac_brtype_type = g_enum_register_static ("GstFaacBrtype", + gst_faac_brtype); } - return gst_faac_profile_type; + return gst_faac_brtype_type; } #define GST_TYPE_FAAC_SHORTCTL (gst_faac_shortctl_get_type ()) @@ -229,127 +204,84 @@ gst_faac_shortctl_get_type (void) 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); + GstAudioEncoderClass *base_class = GST_AUDIO_ENCODER_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); + + base_class->start = GST_DEBUG_FUNCPTR (gst_faac_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_faac_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_faac_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_faac_handle_frame); + base_class->getcaps = GST_DEBUG_FUNCPTR (gst_faac_getcaps); /* 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_object_class_install_property (gobject_class, PROP_QUALITY, + g_param_spec_int ("quality", "Quality (%)", + "Variable bitrate (VBR) quantizer quality in %", 1, 1000, + FAAC_DEFAULT_QUALITY, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BITRATE, + g_param_spec_int ("bitrate", "Bitrate (bps)", + "Average Bitrate (ABR) in bits/sec", 8 * 1000, 320 * 1000, + FAAC_DEFAULT_BITRATE, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_RATE_CONTROL, + g_param_spec_enum ("rate-control", "Rate Control (ABR/VBR)", + "Encoding bitrate type (VBR/ABR)", GST_TYPE_FAAC_RATE_CONTROL, + FAAC_DEFAULT_RATE_CONTROL, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_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, + FAAC_DEFAULT_TNS, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_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, + FAAC_DEFAULT_MIDSIDE, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_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); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } static void -gst_faac_init (GstFaac * faac) +gst_faac_init (GstFaac * faac, GstFaacClass * klass) { - 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) +gst_faac_close_encoder (GstFaac * faac) { + if (faac->handle) + faacEncClose (faac->handle); faac->handle = NULL; - faac->samplerate = -1; - faac->channels = -1; - faac->offset = 0; - gst_adapter_clear (faac->adapter); } -static void -gst_faac_finalize (GObject * object) +static gboolean +gst_faac_start (GstAudioEncoder * enc) { - GstFaac *faac = (GstFaac *) object; - - g_object_unref (faac->adapter); + GstFaac *faac = GST_FAAC (enc); - G_OBJECT_CLASS (parent_class)->finalize (object); + GST_DEBUG_OBJECT (faac, "start"); + return TRUE; } -static void -gst_faac_close_encoder (GstFaac * faac) +static gboolean +gst_faac_stop (GstAudioEncoder * enc) { - if (faac->handle) - faacEncClose (faac->handle); - faac->handle = NULL; - gst_adapter_clear (faac->adapter); - faac->offset = 0; + GstFaac *faac = GST_FAAC (enc); + + GST_DEBUG_OBJECT (faac, "stop"); + gst_faac_close_encoder (faac); + return TRUE; } static const GstAudioChannelPosition aac_channel_positions[][8] = { @@ -382,7 +314,7 @@ static const GstAudioChannelPosition aac_channel_positions[][8] = { }; static GstCaps * -gst_faac_sink_getcaps (GstPad * pad) +gst_faac_getcaps (GstAudioEncoder * enc) { static volatile gsize sinkcaps = 0; @@ -390,12 +322,26 @@ gst_faac_sink_getcaps (GstPad * pad) GstCaps *tmp = gst_caps_new_empty (); GstStructure *s, *t; gint i, c; + static const int rates[] = { + 8000, 11025, 12000, 16000, 22050, 24000, + 32000, 44100, 48000, 64000, 88200, 96000 + }; + GValue rates_arr = { 0, }; + GValue tmp_v = { 0, }; + + g_value_init (&rates_arr, GST_TYPE_LIST); + g_value_init (&tmp_v, G_TYPE_INT); + for (i = 0; i < G_N_ELEMENTS (rates); i++) { + g_value_set_int (&tmp_v, rates[i]); + gst_value_list_append_value (&rates_arr, &tmp_v); + } + g_value_unset (&tmp_v); 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); + "width", G_TYPE_INT, 16, "depth", G_TYPE_INT, 16, NULL); + gst_structure_set_value (s, "rate", &rates_arr); for (i = 1; i <= 6; i++) { GValue chanpos = { 0 }; @@ -419,35 +365,31 @@ gst_faac_sink_getcaps (GstPad * pad) gst_caps_append_structure (tmp, t); } gst_structure_free (s); + g_value_unset (&rates_arr); - GST_DEBUG_OBJECT (pad, "Generated sinkcaps: %" GST_PTR_FORMAT, tmp); + GST_DEBUG_OBJECT (enc, "Generated sinkcaps: %" GST_PTR_FORMAT, tmp); g_once_init_leave (&sinkcaps, (gsize) tmp); } - return gst_caps_ref ((GstCaps *) sinkcaps); + return gst_audio_encoder_proxy_getcaps (enc, (GstCaps *) sinkcaps); } static gboolean -gst_faac_sink_setcaps (GstPad * pad, GstCaps * caps) +gst_faac_set_format (GstAudioEncoder * enc, GstAudioInfo * info) { - GstFaac *faac = GST_FAAC (gst_pad_get_parent (pad)); - GstStructure *structure = gst_caps_get_structure (caps, 0); + GstFaac *faac = GST_FAAC (enc); 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; - } + /* base class takes care */ + channels = GST_AUDIO_INFO_CHANNELS (info); + samplerate = GST_AUDIO_INFO_RATE (info); + width = GST_AUDIO_INFO_WIDTH (info); - if (gst_structure_has_name (structure, "audio/x-raw-int")) { - gst_structure_get_int (structure, "width", &width); + if (GST_AUDIO_INFO_IS_INTEGER (info)) { switch (width) { case 16: fmt = FAAC_INPUT_16BIT; @@ -461,30 +403,20 @@ gst_faac_sink_setcaps (GstPad * pad, GstCaps * caps) default: g_return_val_if_reached (FALSE); } - } else if (gst_structure_has_name (structure, "audio/x-raw-float")) { + } else { 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); - } + /* clean up in case of re-configure */ + gst_faac_close_encoder (faac); if (!(handle = faacEncOpen (samplerate, channels, &samples, &bytes))) goto setup_failed; + /* mind channel count */ + samples /= channels; + /* ok, record and set up */ faac->format = fmt; faac->bps = bps; @@ -497,8 +429,12 @@ gst_faac_sink_setcaps (GstPad * pad, GstCaps * caps) /* finish up */ result = gst_faac_configure_source_pad (faac); + /* report needs to base class */ + gst_audio_encoder_set_frame_samples_min (enc, samples); + gst_audio_encoder_set_frame_samples_max (enc, samples); + gst_audio_encoder_set_frame_max (enc, 1); + done: - gst_object_unref (faac); return result; /* ERRORS */ @@ -507,54 +443,91 @@ 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; +} + +/* check downstream caps to configure format */ +static void +gst_faac_negotiate (GstFaac * faac) +{ + GstCaps *caps; + + /* default setup */ + faac->profile = LOW; + faac->mpegversion = 4; + faac->outputformat = 0; + + caps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (faac)); + + GST_DEBUG_OBJECT (faac, "allowed caps: %" GST_PTR_FORMAT, caps); + + if (caps && gst_caps_get_size (caps) > 0) { + GstStructure *s = gst_caps_get_structure (caps, 0); + const gchar *str = NULL; + gint i = 4; + + if ((str = gst_structure_get_string (s, "stream-format"))) { + if (strcmp (str, "adts") == 0) { + GST_DEBUG_OBJECT (faac, "use ADTS format for output"); + faac->outputformat = 1; + } else if (strcmp (str, "raw") == 0) { + GST_DEBUG_OBJECT (faac, "use RAW format for output"); + faac->outputformat = 0; + } else { + GST_DEBUG_OBJECT (faac, "unknown stream-format: %s", str); + faac->outputformat = 0; + } + } + + if ((str = gst_structure_get_string (s, "profile"))) { + if (strcmp (str, "main") == 0) { + faac->profile = MAIN; + } else if (strcmp (str, "lc") == 0) { + faac->profile = LOW; + } else if (strcmp (str, "ssr") == 0) { + faac->profile = SSR; + } else if (strcmp (str, "ltp") == 0) { + faac->profile = LTP; + } else { + faac->profile = LOW; + } + } + + if (!gst_structure_get_int (s, "mpegversion", &i) || i == 4) { + faac->mpegversion = 4; + } else { + faac->mpegversion = 2; + } } + + if (caps) + gst_caps_unref (caps); } 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); - } + /* negotiate stream format */ + gst_faac_negotiate (faac); /* we negotiated caps update current configuration */ conf = faacEncGetCurrentConfiguration (faac->handle); - conf->mpegVersion = (mpegversion == 4) ? MPEG4 : MPEG2; + conf->mpegVersion = (faac->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; + + if (faac->brtype == VBR) { + conf->quantqual = faac->quality; + } else if (faac->brtype == ABR) { + conf->bitRate = faac->bitrate / faac->channels; + } + conf->inputFormat = faac->format; conf->outputFormat = faac->outputformat; conf->shortctl = faac->shortctl; @@ -587,14 +560,14 @@ gst_faac_configure_source_pad (GstFaac * faac) /* now create a caps for it all */ srccaps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, mpegversion, + "mpegversion", G_TYPE_INT, faac->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; + /* DecoderSpecificInfo is only available for mpegversion=4 */ + if (faac->mpegversion == 4) { guint8 *config = NULL; gulong config_len = 0; @@ -602,160 +575,101 @@ gst_faac_configure_source_pad (GstFaac * faac) 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); + if (!gst_codec_utils_aac_caps_set_level_and_profile (srccaps, config, + config_len)) { + free (config); + gst_caps_unref (srccaps); + goto invalid_codec_data; + } + + if (!faac->outputformat) { + GstBuffer *codec_data; + + /* copy it into a buffer */ + codec_data = gst_buffer_new_and_alloc (config_len); + memcpy (GST_BUFFER_DATA (codec_data), config, config_len); + + /* add to caps */ + gst_caps_set_simple (srccaps, + "codec_data", GST_TYPE_BUFFER, codec_data, NULL); + + gst_buffer_unref (codec_data); + } - /* add to caps */ - gst_caps_set_simple (srccaps, - "codec_data", GST_TYPE_BUFFER, codec_data, NULL); + free (config); + } else { + const gchar *profile; - gst_buffer_unref (codec_data); + /* Add least add the profile to the caps */ + switch (faac->profile) { + case MAIN: + profile = "main"; + break; + case LTP: + profile = "ltp"; + break; + case SSR: + profile = "ssr"; + break; + case LOW: + default: + profile = "lc"; + break; + } + gst_caps_set_simple (srccaps, "profile", G_TYPE_STRING, profile, NULL); + /* FIXME: How to get the profile for mpegversion==2? */ } GST_DEBUG_OBJECT (faac, "src pad caps: %" GST_PTR_FORMAT, srccaps); - ret = gst_pad_set_caps (faac->srcpad, srccaps); + ret = gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (faac), srccaps); gst_caps_unref (srccaps); return ret; /* ERROR */ -empty_caps: +set_failed: { - gst_caps_unref (allowed_caps); + GST_WARNING_OBJECT (faac, "Faac doesn't support the current configuration"); return FALSE; } -set_failed: +invalid_codec_data: { - GST_WARNING_OBJECT (faac, "Faac doesn't support the current configuration"); + GST_ERROR_OBJECT (faac, "Invalid codec data"); return FALSE; } } static GstFlowReturn -gst_faac_push_buffers (GstFaac * faac, gboolean force) +gst_faac_handle_frame (GstAudioEncoder * enc, GstBuffer * in_buf) { + GstFaac *faac = GST_FAAC (enc); GstFlowReturn ret = GST_FLOW_OK; - gint av, frame_size, size, ret_size; - GstBuffer *outbuf; - guint64 timestamp, distance; + GstBuffer *out_buf; + gint size, ret_size; 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) */ + out_buf = gst_buffer_new_and_alloc (faac->bytes); - /* 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); + if (G_LIKELY (in_buf)) { + data = GST_BUFFER_DATA (in_buf); + size = GST_BUFFER_SIZE (in_buf); + } else { + data = NULL; + size = 0; } - /* 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; + if (G_UNLIKELY ((ret_size = faacEncEncode (faac->handle, (gint32 *) data, + size / faac->bps, GST_BUFFER_DATA (out_buf), + GST_BUFFER_SIZE (out_buf))) < 0)) + goto encode_failed; + + GST_LOG_OBJECT (faac, "encoder return: %d", ret_size); + if (G_LIKELY (ret_size > 0)) { + GST_BUFFER_SIZE (out_buf) = ret_size; + ret = gst_audio_encoder_finish_frame (enc, out_buf, faac->samples); + } else { + gst_buffer_unref (out_buf); } return ret; @@ -763,77 +677,12 @@ gst_faac_push_buffers (GstFaac * faac, gboolean force) /* ERRORS */ encode_failed: { + gst_buffer_unref (out_buf); 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) @@ -843,24 +692,24 @@ gst_faac_set_property (GObject * object, GST_OBJECT_LOCK (faac); switch (prop_id) { - case ARG_BITRATE: + case PROP_QUALITY: + faac->quality = g_value_get_int (value); + break; + case PROP_BITRATE: faac->bitrate = g_value_get_int (value); break; - case ARG_PROFILE: - faac->profile = g_value_get_enum (value); + case PROP_RATE_CONTROL: + faac->brtype = g_value_get_enum (value); break; - case ARG_TNS: + case PROP_TNS: faac->tns = g_value_get_boolean (value); break; - case ARG_MIDSIDE: + case PROP_MIDSIDE: faac->midside = g_value_get_boolean (value); break; - case ARG_SHORTCTL: + case PROP_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; @@ -878,24 +727,24 @@ gst_faac_get_property (GObject * object, GST_OBJECT_LOCK (faac); switch (prop_id) { - case ARG_BITRATE: + case PROP_QUALITY: + g_value_set_int (value, faac->quality); + break; + case PROP_BITRATE: g_value_set_int (value, faac->bitrate); break; - case ARG_PROFILE: - g_value_set_enum (value, faac->profile); + case PROP_RATE_CONTROL: + g_value_set_enum (value, faac->brtype); break; - case ARG_TNS: + case PROP_TNS: g_value_set_boolean (value, faac->tns); break; - case ARG_MIDSIDE: + case PROP_MIDSIDE: g_value_set_boolean (value, faac->midside); break; - case ARG_SHORTCTL: + case PROP_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; @@ -904,35 +753,6 @@ gst_faac_get_property (GObject * object, 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) { diff --git a/ext/faac/gstfaac.h b/ext/faac/gstfaac.h index 7a282ec..5bd0574 100644 --- a/ext/faac/gstfaac.h +++ b/ext/faac/gstfaac.h @@ -21,8 +21,8 @@ #define __GST_FAAC_H__ #include -#include -#include +#include + #include G_BEGIN_DECLS @@ -42,38 +42,37 @@ typedef struct _GstFaac GstFaac; typedef struct _GstFaacClass GstFaacClass; struct _GstFaac { - GstElement element; - - /* pads */ - GstPad *srcpad, *sinkpad; + GstAudioEncoder element; /* stream properties */ gint samplerate, channels, format, - bps, - bitrate, + bps; + + /* input frame size */ + gulong samples; + /* required output buffer size */ + gulong bytes; + + /* negotiated */ + gint mpegversion, outputformat; + + /* properties */ + gint bitrate, profile, - shortctl, - outputformat; + quality, + brtype, + shortctl; 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; + GstAudioEncoderClass parent_class; }; GType gst_faac_get_type (void); diff --git a/ext/faad/Makefile.am b/ext/faad/Makefile.am index 957ad78..cc7636d 100644 --- a/ext/faad/Makefile.am +++ b/ext/faad/Makefile.am @@ -1,7 +1,8 @@ plugin_LTLIBRARIES = libgstfaad.la libgstfaad_la_SOURCES = gstfaad.c -libgstfaad_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ +libgstfaad_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(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) diff --git a/ext/faad/Makefile.in b/ext/faad/Makefile.in index 5ee49fe..3a8dfef 100644 --- a/ext/faad/Makefile.in +++ b/ext/faad/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstfaad_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfaad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfaad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfaad_la_SOURCES) DIST_SOURCES = $(libgstfaad_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -530,7 +557,8 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstfaad.la libgstfaad_la_SOURCES = gstfaad.c -libgstfaad_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ +libgstfaad_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FAAD_CFLAGS) libgstfaad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ @@ -604,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfaad.la: $(libgstfaad_la_OBJECTS) $(libgstfaad_la_DEPENDENCIES) +libgstfaad.la: $(libgstfaad_la_OBJECTS) $(libgstfaad_la_DEPENDENCIES) $(EXTRA_libgstfaad_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfaad_la_LINK) -rpath $(plugindir) $(libgstfaad_la_OBJECTS) $(libgstfaad_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -618,34 +646,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -752,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c index 1f9c3d2..4dd73eb 100644 --- a/ext/faad/gstfaad.c +++ b/ext/faad/gstfaad.c @@ -92,7 +92,8 @@ GST_DEBUG_CATEGORY_STATIC (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 }") + GST_STATIC_CAPS ("audio/mpeg, " "mpegversion = (int) 2; " + "audio/mpeg, mpegversion = (int) 4, stream-format = (string) { raw, adts }") ); #define STATIC_INT_CAPS(bpp) \ @@ -140,62 +141,30 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", 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 */ +static gboolean gst_faad_start (GstAudioDecoder * dec); +static gboolean gst_faad_stop (GstAudioDecoder * dec); +static gboolean gst_faad_set_format (GstAudioDecoder * dec, GstCaps * caps); +static gboolean gst_faad_parse (GstAudioDecoder * dec, GstAdapter * adapter, + gint * offset, gint * length); +static GstFlowReturn gst_faad_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); +static void gst_faad_flush (GstAudioDecoder * dec, gboolean hard); -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); - } +static gboolean gst_faad_open_decoder (GstFaad * faad); +static void gst_faad_close_decoder (GstFaad * faad); - return gst_faad_type; -} +GST_BOILERPLATE (GstFaad, gst_faad, GstAudioDecoder, GST_TYPE_AUDIO_DECODER); static void -gst_faad_base_init (GstFaadClass * klass) +gst_faad_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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "AAC audio decoder", "Codec/Decoder/Audio", @@ -208,47 +177,27 @@ gst_faad_base_init (GstFaadClass * klass) static void gst_faad_class_init (GstFaadClass * klass) { - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_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); + base_class->start = GST_DEBUG_FUNCPTR (gst_faad_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_faad_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_faad_set_format); + base_class->parse = GST_DEBUG_FUNCPTR (gst_faad_parse); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_faad_handle_frame); + base_class->flush = GST_DEBUG_FUNCPTR (gst_faad_flush); } static void -gst_faad_init (GstFaad * faad) +gst_faad_init (GstFaad * faad, GstFaadClass * klass) { - 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); } @@ -256,45 +205,43 @@ gst_faad_reset_stream_state (GstFaad * faad) 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) +static gboolean +gst_faad_start (GstAudioDecoder * dec) { - GstFaad *faad = GST_FAAD (object); + GstFaad *faad = GST_FAAD (dec); - g_object_unref (faad->adapter); + GST_DEBUG_OBJECT (dec, "start"); + gst_faad_reset (faad); + + /* call upon legacy upstream byte support (e.g. seeking) */ + gst_audio_decoder_set_byte_time (dec, TRUE); + /* never mind a few errors */ + gst_audio_decoder_set_max_errors (dec, 10); - G_OBJECT_CLASS (parent_class)->finalize (object); + return TRUE; } -static void -gst_faad_send_tags (GstFaad * faad) +static gboolean +gst_faad_stop (GstAudioDecoder * dec) { - GstTagList *tags; + GstFaad *faad = GST_FAAD (dec); - tags = gst_tag_list_new (); - - gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, - GST_TAG_AUDIO_CODEC, "MPEG-4 AAC audio", NULL); + GST_DEBUG_OBJECT (dec, "stop"); + gst_faad_reset (faad); + gst_faad_close_decoder (faad); - gst_element_found_tags (GST_ELEMENT (faad), tags); + return TRUE; } static gint @@ -327,9 +274,9 @@ aac_rate_idx (gint rate) } static gboolean -gst_faad_setcaps (GstPad * pad, GstCaps * caps) +gst_faad_set_format (GstAudioDecoder * dec, GstCaps * caps) { - GstFaad *faad = GST_FAAD (gst_pad_get_parent (pad)); + GstFaad *faad = GST_FAAD (dec); GstStructure *str = gst_caps_get_structure (caps, 0); GstBuffer *buf; const GValue *value; @@ -352,8 +299,8 @@ gst_faad_setcaps (GstPad * pad, GstCaps * caps) /* We have codec data, means packetised stream */ faad->packetised = TRUE; - buf = gst_value_get_buffer (value); + buf = gst_value_get_buffer (value); g_return_val_if_fail (buf != NULL, FALSE); cdata = GST_BUFFER_DATA (buf); @@ -391,9 +338,6 @@ gst_faad_setcaps (GstPad * pad, GstCaps * caps) 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; @@ -424,7 +368,6 @@ gst_faad_setcaps (GstPad * pad, GstCaps * caps) } } - gst_object_unref (faad); return TRUE; /* ERRORS */ @@ -535,349 +478,6 @@ gst_faad_chanpos_to_gst (GstFaad * faad, guchar * fpos, guint num, 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) { @@ -935,7 +535,7 @@ gst_faad_update_caps (GstFaad * faad, faacDecFrameInfo * info) GST_DEBUG_OBJECT (faad, "New output caps: %" GST_PTR_FORMAT, caps); - ret = gst_pad_set_caps (faad->srcpad, caps); + ret = gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (faad), caps); gst_caps_unref (caps); return ret; @@ -950,12 +550,13 @@ gst_faad_update_caps (GstFaad * faad, faacDecFrameInfo * info) * 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) +gst_faad_sync (GstFaad * faad, const guint8 * data, guint size, gboolean next, + gint * off, gint * length) { guint n = 0; gint snc; gboolean ret = FALSE; + guint len = 0; GST_LOG_OBJECT (faad, "Finding syncpoint"); @@ -968,8 +569,6 @@ gst_faad_sync (GstFaad * faad, guint8 * data, guint size, gboolean next, 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); @@ -1012,10 +611,14 @@ gst_faad_sync (GstFaad * faad, guint8 * data, guint size, gboolean next, } exit: + *off = n; - if (!ret) + if (ret) { + *length = len; + } else { GST_LOG_OBJECT (faad, "Found no syncpoint"); + } return ret; } @@ -1038,78 +641,52 @@ looks_like_valid_header (guint8 * input_data, guint input_size) return FALSE; } -#define FAAD_MAX_ERROR 10 -#define FAAD_MAX_SYNC 10 * 8 * 1024 +static GstFlowReturn +gst_faad_parse (GstAudioDecoder * dec, GstAdapter * adapter, + gint * offset, gint * length) +{ + GstFaad *faad; + const guint8 *data; + guint size; + gboolean sync, eos; + + faad = GST_FAAD (dec); + + size = gst_adapter_available (adapter); + g_return_val_if_fail (size > 0, GST_FLOW_ERROR); + + gst_audio_decoder_get_parse_state (dec, &sync, &eos); + + if (faad->packetised) { + *offset = 0; + *length = size; + return GST_FLOW_OK; + } else { + data = gst_adapter_peek (adapter, size); + return gst_faad_sync (faad, data, size, !eos, offset, length) ? + GST_FLOW_OK : GST_FLOW_UNEXPECTED; + } +} static GstFlowReturn -gst_faad_chain (GstPad * pad, GstBuffer * buffer) +gst_faad_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer) { + GstFaad *faad; 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; + faad = GST_FAAD (dec); - 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; - } + /* no fancy draining */ + if (G_UNLIKELY (!buffer)) + return GST_FLOW_OK; - 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; - } - } + input_data = GST_BUFFER_DATA (buffer); + input_size = GST_BUFFER_SIZE (buffer); init: /* init if not already done during capsnego */ @@ -1143,7 +720,6 @@ init: } faad->init = TRUE; - gst_faad_send_tags (faad); /* make sure we create new caps below */ faad->samplerate = 0; @@ -1151,18 +727,11 @@ init: } /* decode cycle */ - info.bytesconsumed = input_size; info.error = 0; - while ((input_size > 0) && run_loop) { + do { - 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; - } + if (!faad->packetised) { /* 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) { @@ -1178,33 +747,14 @@ 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; - } + /* give up on frame and bail out */ + gst_audio_decoder_finish_frame (dec, NULL, 1); + goto decode_failed; } - /* 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; @@ -1213,82 +763,21 @@ init: 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); - } - } + /* note: info.samples is total samples, not per channel */ + ret = + gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD + (faad), 0, info.samples * faad->bps, + GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (faad)), &outbuf); + if (ret != GST_FLOW_OK) + goto out; + + memcpy (GST_BUFFER_DATA (outbuf), out, GST_BUFFER_SIZE (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; + ret = gst_audio_decoder_finish_frame (dec, outbuf, 1); } - } + } while (FALSE); 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 */ @@ -1315,9 +804,8 @@ init2_failed: } decode_failed: { - GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), - ("decoding error: %s", faacDecGetErrorMessage (info.error))); - ret = GST_FLOW_ERROR; + GST_AUDIO_DECODER_ERROR (faad, 1, STREAM, DECODE, (NULL), + ("decoding error: %s", faacDecGetErrorMessage (info.error)), ret); goto out; } negotiation_failed: @@ -1334,13 +822,12 @@ sample_overflow: 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 void +gst_faad_flush (GstAudioDecoder * dec, gboolean hard) +{ + gst_faad_reset_stream_state (GST_FAAD (dec)); } static gboolean @@ -1377,38 +864,6 @@ gst_faad_close_decoder (GstFaad * faad) } } -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) { diff --git a/ext/faad/gstfaad.h b/ext/faad/gstfaad.h index 4552250..deb98b8 100644 --- a/ext/faad/gstfaad.h +++ b/ext/faad/gstfaad.h @@ -21,7 +21,8 @@ #define __GST_FAAD_H__ #include -#include +#include + #ifdef FAAD_IS_NEAAC #include #else @@ -42,10 +43,7 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FAAD)) typedef struct _GstFaad { - GstElement element; - - GstPad *srcpad; - GstPad *sinkpad; + GstAudioDecoder element; guint samplerate; /* sample rate of the last MPEG frame */ guint channels; /* number of channels of the last frame */ @@ -55,34 +53,16 @@ typedef struct _GstFaad { 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; + GstAudioDecoderClass parent_class; } GstFaadClass; GType gst_faad_get_type (void); diff --git a/ext/flite/Makefile.in b/ext/flite/Makefile.in index 782151f..0b69cad 100644 --- a/ext/flite/Makefile.in +++ b/ext/flite/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstflite_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstflite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstflite_la_SOURCES) DIST_SOURCES = $(libgstflite_la_SOURCES) @@ -149,7 +156,6 @@ 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@ @@ -167,7 +173,6 @@ 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@ @@ -202,6 +207,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -241,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -258,6 +265,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -266,13 +274,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -297,13 +308,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -351,6 +363,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -382,8 +395,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -407,6 +424,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -431,10 +450,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -446,6 +469,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -470,6 +497,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -505,7 +533,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstflite.la: $(libgstflite_la_OBJECTS) $(libgstflite_la_DEPENDENCIES) +libgstflite.la: $(libgstflite_la_OBJECTS) $(libgstflite_la_DEPENDENCIES) $(EXTRA_libgstflite_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflite_la_LINK) -rpath $(plugindir) $(libgstflite_la_OBJECTS) $(libgstflite_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,42 +649,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -764,10 +786,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/flite/gstflitetestsrc.c b/ext/flite/gstflitetestsrc.c index ea7da1d..a8e595c 100644 --- a/ext/flite/gstflitetestsrc.c +++ b/ext/flite/gstflitetestsrc.c @@ -118,8 +118,8 @@ gst_flite_test_src_base_init (gpointer 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_add_static_pad_template (element_class, + &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", diff --git a/ext/gme/Makefile.in b/ext/gme/Makefile.in index 5cf6dbe..eadddc6 100644 --- a/ext/gme/Makefile.in +++ b/ext/gme/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgme_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgme_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgme_la_SOURCES) DIST_SOURCES = $(libgstgme_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgme.la: $(libgstgme_la_OBJECTS) $(libgstgme_la_DEPENDENCIES) +libgstgme.la: $(libgstgme_la_OBJECTS) $(libgstgme_la_DEPENDENCIES) $(EXTRA_libgstgme_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgme_la_LINK) -rpath $(plugindir) $(libgstgme_la_OBJECTS) $(libgstgme_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/gme/gstgme.c b/ext/gme/gstgme.c index ae49c64..f8a387d 100644 --- a/ext/gme/gstgme.c +++ b/ext/gme/gstgme.c @@ -114,10 +114,8 @@ gst_gme_dec_base_init (gpointer g_class) "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)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); } static void @@ -174,6 +172,8 @@ gst_gme_dec_dispose (GObject * object) g_object_unref (gme->adapter); gme->adapter = NULL; } + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); } static GstFlowReturn @@ -375,7 +375,7 @@ gst_gme_play (GstPad * pad) 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_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), ("%s", gme_err)); gst_pad_pause_task (pad); gst_pad_push_event (pad, gst_event_new_eos ()); gst_object_unref (gme); @@ -445,7 +445,7 @@ gme_setup (GstGmeDec * gme) gme->player = NULL; } - GST_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), (gme_err)); + GST_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), ("%s", gme_err)); return FALSE; } diff --git a/ext/gsettings/Makefile.in b/ext/gsettings/Makefile.in index 04d05e1..cf697a5 100644 --- a/ext/gsettings/Makefile.in +++ b/ext/gsettings/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -117,8 +124,8 @@ am_libgstgsettingselements_la_OBJECTS = \ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgsettingselements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -135,21 +142,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgsettingselements_la_SOURCES) DIST_SOURCES = $(libgstgsettingselements_la_SOURCES) @@ -161,7 +168,6 @@ 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@ @@ -179,7 +185,6 @@ 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@ @@ -214,6 +219,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -253,6 +259,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -270,6 +277,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -278,13 +286,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -309,13 +320,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -363,6 +375,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -394,8 +407,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -419,6 +436,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -443,10 +462,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -458,6 +481,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -482,6 +509,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -517,7 +545,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -636,7 +663,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgsettingselements.la: $(libgstgsettingselements_la_OBJECTS) $(libgstgsettingselements_la_DEPENDENCIES) +libgstgsettingselements.la: $(libgstgsettingselements_la_OBJECTS) $(libgstgsettingselements_la_DEPENDENCIES) $(EXTRA_libgstgsettingselements_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgsettingselements_la_LINK) -rpath $(plugindir) $(libgstgsettingselements_la_OBJECTS) $(libgstgsettingselements_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -656,82 +683,72 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -838,10 +855,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/gsettings/gstswitchsink.c b/ext/gsettings/gstswitchsink.c index 1fccf68..da31df2 100644 --- a/ext/gsettings/gstswitchsink.c +++ b/ext/gsettings/gstswitchsink.c @@ -64,8 +64,7 @@ gst_switch_sink_class_init (GstSwitchSinkClass * klass) /* 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)); + gst_element_class_add_static_pad_template (eklass, &sink_template); } } diff --git a/ext/gsettings/gstswitchsrc.c b/ext/gsettings/gstswitchsrc.c index 0136e4a..664e0bd 100644 --- a/ext/gsettings/gstswitchsrc.c +++ b/ext/gsettings/gstswitchsrc.c @@ -60,8 +60,7 @@ gst_switch_src_class_init (GstSwitchSrcClass * klass) /* 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)); + gst_element_class_add_static_pad_template (eklass, &src_template); } } diff --git a/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml b/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml new file mode 100644 index 0000000..cce0308 --- /dev/null +++ b/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml @@ -0,0 +1,94 @@ + + + + "autoaudiosink" + 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. + + + "autoaudiosink" + 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. + + + "autoaudiosink" + 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. + + + "autovideosink" + 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. + + + "alsasrc" + 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. + + + "v4l2src" + 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. + + + "goom" + 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/gsm/Makefile.in b/ext/gsm/Makefile.in index f5c5625..7048668 100644 --- a/ext/gsm/Makefile.in +++ b/ext/gsm/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstgsm_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgsm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgsm_la_SOURCES) DIST_SOURCES = $(libgstgsm_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgsm.la: $(libgstgsm_la_OBJECTS) $(libgstgsm_la_DEPENDENCIES) +libgstgsm.la: $(libgstgsm_la_OBJECTS) $(libgstgsm_la_DEPENDENCIES) $(EXTRA_libgstgsm_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgsm_la_LINK) -rpath $(plugindir) $(libgstgsm_la_OBJECTS) $(libgstgsm_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -624,50 +651,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -774,10 +795,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/gsm/gstgsmdec.c b/ext/gsm/gstgsmdec.c index 3318bdc..65d3275 100644 --- a/ext/gsm/gstgsmdec.c +++ b/ext/gsm/gstgsmdec.c @@ -106,10 +106,10 @@ 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_add_static_pad_template (element_class, + &gsmdec_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gsmdec_src_template); gst_element_class_set_details_simple (element_class, "GSM audio decoder", "Codec/Decoder/Audio", "Decodes GSM encoded audio", "Philippe Khalaf "); diff --git a/ext/gsm/gstgsmenc.c b/ext/gsm/gstgsmenc.c index 434c4b1..52d0b55 100644 --- a/ext/gsm/gstgsmenc.c +++ b/ext/gsm/gstgsmenc.c @@ -100,10 +100,10 @@ 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_add_static_pad_template (element_class, + &gsmenc_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gsmenc_src_template); gst_element_class_set_details_simple (element_class, "GSM audio encoder", "Codec/Encoder/Audio", "Encodes GSM audio", "Philippe Khalaf "); diff --git a/ext/jp2k/Makefile.in b/ext/jp2k/Makefile.in index cb7f567..56b9e8f 100644 --- a/ext/jp2k/Makefile.in +++ b/ext/jp2k/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstjp2k_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstjp2k_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstjp2k_la_SOURCES) DIST_SOURCES = $(libgstjp2k_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstjp2k.la: $(libgstjp2k_la_OBJECTS) $(libgstjp2k_la_DEPENDENCIES) +libgstjp2k.la: $(libgstjp2k_la_OBJECTS) $(libgstjp2k_la_DEPENDENCIES) $(EXTRA_libgstjp2k_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjp2k_la_LINK) -rpath $(plugindir) $(libgstjp2k_la_OBJECTS) $(libgstjp2k_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -624,50 +651,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -774,10 +795,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/jp2k/gstjasperdec.c b/ext/jp2k/gstjasperdec.c index 159eb95..7cde2fd 100644 --- a/ext/jp2k/gstjasperdec.c +++ b/ext/jp2k/gstjasperdec.c @@ -68,11 +68,6 @@ static GstStaticPadTemplate gst_jasper_dec_src_template = 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); @@ -100,10 +95,10 @@ 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_add_static_pad_template (element_class, + &gst_jasper_dec_src_template); + gst_element_class_add_static_pad_template (element_class, + &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", @@ -114,18 +109,13 @@ gst_jasper_dec_base_init (gpointer g_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); } @@ -819,36 +809,6 @@ invalid_bytes_segment: } } -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) { diff --git a/ext/jp2k/gstjasperenc.c b/ext/jp2k/gstjasperenc.c index 27073e2..a43bb36 100644 --- a/ext/jp2k/gstjasperenc.c +++ b/ext/jp2k/gstjasperenc.c @@ -65,11 +65,6 @@ static GstStaticPadTemplate gst_jasper_enc_src_template = "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); @@ -104,10 +99,10 @@ 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_add_static_pad_template (element_class, + &gst_jasper_enc_src_template); + gst_element_class_add_static_pad_template (element_class, + &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", @@ -118,18 +113,13 @@ gst_jasper_enc_base_init (gpointer g_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 = @@ -299,8 +289,6 @@ 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; @@ -308,8 +296,6 @@ gst_jasper_enc_sink_setcaps (GstPad * pad, GstCaps * caps) 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)) @@ -539,36 +525,6 @@ not_negotiated: } } -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) { diff --git a/ext/kate/Makefile.in b/ext/kate/Makefile.in index dc25c66..0d6f618 100644 --- a/ext/kate/Makefile.in +++ b/ext/kate/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -45,6 +45,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -119,8 +126,8 @@ am_libgstkate_la_OBJECTS = libgstkate_la-gstkate.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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstkate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -136,21 +143,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstkate_la_SOURCES) DIST_SOURCES = $(am__libgstkate_la_SOURCES_DIST) @@ -162,7 +169,6 @@ 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@ @@ -180,7 +186,6 @@ 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@ @@ -215,6 +220,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -254,6 +260,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -271,6 +278,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -279,13 +287,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -310,13 +321,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -364,6 +376,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -395,8 +408,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -420,6 +437,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -444,10 +463,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -459,6 +482,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -483,6 +510,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -518,7 +546,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -620,7 +647,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstkate.la: $(libgstkate_la_OBJECTS) $(libgstkate_la_DEPENDENCIES) +libgstkate.la: $(libgstkate_la_OBJECTS) $(libgstkate_la_DEPENDENCIES) $(EXTRA_libgstkate_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstkate_la_LINK) -rpath $(plugindir) $(libgstkate_la_OBJECTS) $(libgstkate_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -641,90 +668,79 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -831,10 +847,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/kate/gstkatedec.c b/ext/kate/gstkatedec.c index df36070..76c918e 100644 --- a/ext/kate/gstkatedec.c +++ b/ext/kate/gstkatedec.c @@ -138,10 +138,8 @@ 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Kate stream text decoder", "Codec/Decoder/Subtitle", "Decodes Kate text streams", diff --git a/ext/kate/gstkateenc.c b/ext/kate/gstkateenc.c index 428e518..ff7aff2 100644 --- a/ext/kate/gstkateenc.c +++ b/ext/kate/gstkateenc.c @@ -153,10 +153,8 @@ 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Kate stream encoder", "Codec/Encoder/Subtitle", "Encodes Kate streams from text or subpictures", @@ -407,6 +405,9 @@ gst_kate_enc_create_buffer (GstKateEnc * ke, kate_packet * kp, { GstBuffer *buffer; + g_return_val_if_fail (kp != NULL, NULL); + g_return_val_if_fail (kp->data != NULL, NULL); + buffer = gst_buffer_try_new_and_alloc (kp->nbytes); if (G_UNLIKELY (!buffer)) { GST_WARNING_OBJECT (ke, "Failed to allocate buffer for %u bytes", @@ -425,10 +426,6 @@ gst_kate_enc_create_buffer (GstKateEnc * ke, kate_packet * kp, 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; } @@ -444,9 +441,6 @@ gst_kate_enc_push_buffer (GstKateEnc * ke, GstBuffer * buffer) 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)); @@ -624,7 +618,8 @@ gst_kate_enc_send_headers (GstKateEnc * ke) break; } else { GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), - ("kate_encode_headers: %d", ret)); + ("Failed encoding headers: %s", + gst_kate_util_get_error_message (ret))); rflow = GST_FLOW_ERROR; break; } @@ -682,7 +677,8 @@ gst_kate_enc_flush_headers (GstKateEnc * ke) ke->headers_sent = TRUE; GST_INFO_OBJECT (ke, "headers flushed"); } else { - GST_WARNING_OBJECT (ke, "Failed to flush headers: %d", rflow); + GST_WARNING_OBJECT (ke, "Failed to flush headers: %s", + gst_flow_get_name (rflow)); } } return rflow; @@ -720,7 +716,8 @@ gst_kate_enc_generate_keepalive (GstKateEnc * ke, GstClockTime timestamp) 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); + GST_WARNING_OBJECT (ke, "Failed to encode keepalive packet: %s", + gst_kate_util_get_error_message (ret)); } else { kate_int64_t granpos = kate_encode_get_granule (&ke->k); GST_LOG_OBJECT (ke, "Keepalive packet encoded"); @@ -750,7 +747,8 @@ gst_kate_enc_flush_waiting (GstKateEnc * ke, GstClockTime now) 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)); + ("Failed to encode text packet: %s", + gst_kate_util_get_error_message (ret))); rflow = GST_FLOW_ERROR; } else { rflow = @@ -761,7 +759,8 @@ gst_kate_enc_flush_waiting (GstKateEnc * ke, GstClockTime now) 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); + GST_WARNING_OBJECT (ke, "Failed to flush delayed SPU packet: %s", + gst_flow_get_name (rflow)); } /* forget it even if we couldn't flush it */ @@ -871,19 +870,21 @@ gst_kate_enc_chain_spu (GstKateEnc * ke, GstBuffer * buf) 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)); + ("Failed to set region: %s", gst_kate_util_get_error_message (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)); + ("Failed to set palette: %s", + gst_kate_util_get_error_message (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)); + ("Failed to set bitmap: %s", + gst_kate_util_get_error_message (ret))); rflow = GST_FLOW_ERROR; } else { /* Some SPUs have no hide time - so I'm going to delay the encoding of the packet @@ -905,7 +906,8 @@ gst_kate_enc_chain_spu (GstKateEnc * ke, GstBuffer * buf) 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)); + ("Failed to encode empty text for SPU buffer: %s", + gst_kate_util_get_error_message (ret))); rflow = GST_FLOW_ERROR; } else { rflow = @@ -933,7 +935,7 @@ static GstFlowReturn gst_kate_enc_chain_text (GstKateEnc * ke, GstBuffer * buf, const char *mime_type) { - kate_packet kp; + kate_packet kp = { 0 }; int ret = 0; GstFlowReturn rflow; GstClockTime start = GST_BUFFER_TIMESTAMP (buf); @@ -947,31 +949,30 @@ gst_kate_enc_chain_text (GstKateEnc * ke, GstBuffer * buf, if (G_UNLIKELY (ret < 0)) { GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), - ("kate_encode_set_markup_type: %d", ret)); + ("Failed to set markup type: %s", + gst_kate_util_get_error_message (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 */ + size_t text_len = GST_BUFFER_SIZE (buf); + kate_float t0 = start / (double) GST_SECOND; + kate_float t1 = stop / (double) GST_SECOND; + + if (text == NULL) { + text = ""; + text_len = 0; + } + + 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), - ("no text in text packet")); + ("Failed to encode text: %s", gst_kate_util_get_error_message (ret))); rflow = GST_FLOW_ERROR; + } else { + rflow = gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1); } } @@ -1052,21 +1053,23 @@ gst_kate_enc_change_state (GstElement * element, GstStateChange transition) 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); + GST_WARNING_OBJECT (ke, "failed to initialize kate info structure: %s", + gst_kate_util_get_error_message (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); + GST_WARNING_OBJECT (ke, "failed to set stream language: %s", + gst_kate_util_get_error_message (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); + GST_WARNING_OBJECT (ke, "failed to set stream category: %s", + gst_kate_util_get_error_message (ret)); break; } } @@ -1074,18 +1077,21 @@ gst_kate_enc_change_state (GstElement * element, GstStateChange transition) 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); + GST_WARNING_OBJECT (ke, "failed to set original canvas size: %s", + gst_kate_util_get_error_message (ret)); break; } ret = kate_comment_init (&ke->kc); if (ret < 0) { GST_WARNING_OBJECT (ke, - "failed to initialize kate comment structure: %d", ret); + "failed to initialize kate comment structure: %s", + gst_kate_util_get_error_message (ret)); break; } ret = kate_encode_init (&ke->k, &ke->ki); if (ret < 0) { - GST_WARNING_OBJECT (ke, "failed to initialize kate state: %d", ret); + GST_WARNING_OBJECT (ke, "failed to initialize kate state: %s", + gst_kate_util_get_error_message (ret)); break; } ke->headers_sent = FALSE; @@ -1389,7 +1395,8 @@ gst_kate_enc_sink_event (GstPad * pad, GstEvent * event) ret = kate_encode_finish (&ke->k, -1, &kp); if (ret < 0) { - GST_WARNING_OBJECT (ke, "Failed to encode EOS packet: %d", ret); + GST_WARNING_OBJECT (ke, "Failed to encode EOS packet: %s", + gst_kate_util_get_error_message (ret)); } else { kate_int64_t granpos = kate_encode_get_granule (&ke->k); GST_LOG_OBJECT (ke, "EOS packet encoded"); diff --git a/ext/kate/gstkateparse.c b/ext/kate/gstkateparse.c index 6a72ede..dfb3f31 100644 --- a/ext/kate/gstkateparse.c +++ b/ext/kate/gstkateparse.c @@ -103,10 +103,10 @@ 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_add_static_pad_template (element_class, + &gst_kate_parse_src_factory); + gst_element_class_add_static_pad_template (element_class, + &gst_kate_parse_sink_factory); gst_element_class_set_details_simple (element_class, "Kate stream parser", "Codec/Parser/Subtitle", "parse raw kate streams", @@ -189,7 +189,8 @@ gst_kate_parse_push_headers (GstKateParse * parse) 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); + GST_WARNING_OBJECT (parse, "Failed to decode header: %s", + gst_kate_util_get_error_message (ret)); } /* takes ownership of outbuf, which was previously in parse->streamheader */ outbuf_list = g_list_append (outbuf_list, outbuf); diff --git a/ext/kate/gstkateparse.h b/ext/kate/gstkateparse.h index 509f6c4..f9dd041 100644 --- a/ext/kate/gstkateparse.h +++ b/ext/kate/gstkateparse.h @@ -36,7 +36,7 @@ G_BEGIN_DECLS (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) \ +#define GST_IS_KATE_PARSE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_PARSE)) typedef struct _GstKateParse GstKateParse; typedef struct _GstKateParseClass GstKateParseClass; diff --git a/ext/kate/gstkatespu.c b/ext/kate/gstkatespu.c index 13f5619..4392916 100644 --- a/ext/kate/gstkatespu.c +++ b/ext/kate/gstkatespu.c @@ -62,10 +62,10 @@ gst_kate_spu_decode_alpha (GstKateEnc * ke, const guint8 * ptr) 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]; + ke->spu_left = ((((guint16) ptr[0]) & 0xff) << 4) | (ptr[1] >> 4); + ke->spu_top = ((((guint16) ptr[3]) & 0xff) << 4) | (ptr[4] >> 4); + ke->spu_right = ((((guint16) ptr[1]) & 0x0f) << 8) | ptr[2]; + ke->spu_bottom = ((((guint16) ptr[4]) & 0x0f) << 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); } @@ -494,9 +494,14 @@ gst_kate_spu_decode_spu (GstKateEnc * ke, GstBuffer * buf, kate_region * kr, 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; + GST_DEBUG_OBJECT (ke, + "left %d, right %d, top %d, bottom %d, pix data %d %d", ke->spu_left, + ke->spu_right, ke->spu_top, ke->spu_bottom, ke->spu_pix_data[0], + ke->spu_pix_data[1]); + GST_WARNING_OBJECT (ke, "SPU area is empty, nothing to encode"); + kate_bitmap_init (kb); + kb->width = kb->height = 0; + return GST_FLOW_OK; } /* create the palette */ diff --git a/ext/kate/gstkatetiger.c b/ext/kate/gstkatetiger.c index 81ac6f7..be21bb8 100644 --- a/ext/kate/gstkatetiger.c +++ b/ext/kate/gstkatetiger.c @@ -3,6 +3,7 @@ * Copyright 2005 Thomas Vander Stichele * Copyright 2005 Ronald S. Bultje * Copyright 2008 Vincent Penquerc'h + * Copyright (C) <2009> Young-Ho Cha * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -121,9 +122,61 @@ enum ARG_DEFAULT_BACKGROUND_RED, ARG_DEFAULT_BACKGROUND_GREEN, ARG_DEFAULT_BACKGROUND_BLUE, - ARG_DEFAULT_BACKGROUND_ALPHA + ARG_DEFAULT_BACKGROUND_ALPHA, + ARG_SILENT }; +/* RGB -> YUV blitting routines taken from textoverlay, + original code from Young-Ho Cha */ + +#define COMP_Y(ret, r, g, b) \ +{ \ + ret = (int) (((19595 * r) >> 16) + ((38470 * g) >> 16) + ((7471 * b) >> 16)); \ + ret = CLAMP (ret, 0, 255); \ +} + +#define COMP_U(ret, r, g, b) \ +{ \ + ret = (int) (-((11059 * r) >> 16) - ((21709 * g) >> 16) + ((32768 * b) >> 16) + 128); \ + ret = CLAMP (ret, 0, 255); \ +} + +#define COMP_V(ret, r, g, b) \ +{ \ + ret = (int) (((32768 * r) >> 16) - ((27439 * g) >> 16) - ((5329 * b) >> 16) + 128); \ + ret = CLAMP (ret, 0, 255); \ +} + +#define BLEND(ret, alpha, v0, v1) \ +{ \ + ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \ +} + +#define OVER(ret, alphaA, Ca, alphaB, Cb, alphaNew) \ +{ \ + gint _tmp; \ + _tmp = (Ca * alphaA + Cb * alphaB * (255 - alphaA) / 255) / alphaNew; \ + ret = CLAMP (_tmp, 0, 255); \ +} + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +# define TIGER_ARGB_A 3 +# define TIGER_ARGB_R 2 +# define TIGER_ARGB_G 1 +# define TIGER_ARGB_B 0 +#else +# define TIGER_ARGB_A 0 +# define TIGER_ARGB_R 1 +# define TIGER_ARGB_G 2 +# define TIGER_ARGB_B 3 +#endif + +#define TIGER_UNPREMULTIPLY(a,r,g,b) G_STMT_START { \ + b = (a > 0) ? MIN ((b * 255 + a / 2) / a, 255) : 0; \ + g = (a > 0) ? MIN ((g * 255 + a / 2) / a, 255) : 0; \ + r = (a > 0) ? MIN ((r * 255 + a / 2) / a, 255) : 0; \ +} G_STMT_END + static GstStaticPadTemplate kate_sink_factory = GST_STATIC_PAD_TEMPLATE ("subtitle_sink", GST_PAD_SINK, @@ -133,12 +186,12 @@ static GstStaticPadTemplate kate_sink_factory = #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" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_BGRx ";" \ + GST_VIDEO_CAPS_YUV ("{AYUV, I420, YV12, UYVY, NV12, NV21}") #else #define TIGER_VIDEO_CAPS \ - GST_VIDEO_CAPS_BGRx ", endianness = (int)4321; " \ - GST_VIDEO_CAPS_xRGB ", endianness = (int)1234" + GST_VIDEO_CAPS_BGRx ";" GST_VIDEO_CAPS_xRGB ";" \ + GST_VIDEO_CAPS_YUV ("{AYUV, I420, YV12, UYVY, NV12, NV21}") #endif static GstStaticPadTemplate video_sink_factory = @@ -194,12 +247,10 @@ 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &kate_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &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", @@ -294,6 +345,12 @@ gst_kate_tiger_class_init (GstKateTigerClass * klass) "Default background color (alpha component, between 0 and 255) to render text with", 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /* FIXME 0.11: rename to "visible" or "text-visible" or "render-text" */ + g_object_class_install_property (gobject_class, ARG_SILENT, + g_param_spec_boolean ("silent", "silent", + "Whether to render the stream", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_kate_tiger_change_state); } @@ -353,6 +410,7 @@ gst_kate_tiger_init (GstKateTiger * tiger, GstKateTigerClass * gclass) tiger->default_background_g = 0; tiger->default_background_b = 0; tiger->default_background_a = 0; + tiger->silent = FALSE; tiger->video_width = 0; tiger->video_height = 0; @@ -372,6 +430,9 @@ gst_kate_tiger_dispose (GObject * object) tiger->default_font_desc = NULL; } + g_free (tiger->render_buffer); + tiger->render_buffer = NULL; + g_cond_free (tiger->cond); tiger->cond = NULL; @@ -488,6 +549,9 @@ gst_kate_tiger_set_property (GObject * object, guint prop_id, tiger->default_background_a = g_value_get_int (value); gst_kate_tiger_update_default_background_color (tiger); break; + case ARG_SILENT: + tiger->silent = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -542,6 +606,9 @@ gst_kate_tiger_get_property (GObject * object, guint prop_id, case ARG_DEFAULT_BACKGROUND_ALPHA: g_value_set_int (value, tiger->default_background_a); break; + case ARG_SILENT: + g_value_set_boolean (value, tiger->silent); + break; default: if (!gst_kate_util_decoder_base_get_property (&tiger->decoder, object, prop_id, value, pspec)) { @@ -571,6 +638,12 @@ gst_kate_tiger_kate_chain (GstPad * pad, GstBuffer * buf) GST_LOG_OBJECT (tiger, "Got kate buffer, caps %" GST_PTR_FORMAT, GST_BUFFER_CAPS (buf)); + /* Now that we have the lock, check if we're flushing */ + if (tiger->decoder.kate_flushing) { + GST_DEBUG_OBJECT (tiger, "Flushing, disregarding buffer"); + goto done; + } + /* 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 @@ -628,7 +701,8 @@ gst_kate_tiger_kate_chain (GstPad * pad, GstBuffer * buf) 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); + "failed to add Kate event to Tiger renderer: %s", + gst_kate_util_get_error_message (ret)); } } } @@ -663,6 +737,7 @@ gst_kate_tiger_kate_chain (GstPad * pad, GstBuffer * buf) } } +done: GST_KATE_TIGER_MUTEX_UNLOCK (tiger); gst_object_unref (tiger); @@ -677,6 +752,7 @@ 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; + gboolean ret; GST_KATE_TIGER_MUTEX_LOCK (tiger); @@ -686,16 +762,17 @@ gst_kate_tiger_video_set_caps (GstPad * pad, GstCaps * caps) tiger->swap_rgb = FALSE; if (gst_video_format_parse_caps (caps, &format, &w, &h)) { + tiger->video_format = format; tiger->video_width = w; tiger->video_height = h; } GST_KATE_TIGER_MUTEX_UNLOCK (tiger); - gst_pad_set_caps (tiger->srcpad, caps); + ret = gst_pad_set_caps (tiger->srcpad, caps); gst_object_unref (tiger); - return TRUE; + return ret; } static gdouble @@ -710,6 +787,401 @@ gst_kate_tiger_get_time (GstKateTiger * tiger) return pos / (gdouble) GST_SECOND; } +static inline void +gst_kate_tiger_blit_1 (GstKateTiger * tiger, guchar * dest, gint xpos, + gint ypos, const guint8 * image, gint image_width, gint image_height, + guint dest_stride) +{ + gint i, j = 0; + gint x, y; + guchar r, g, b, a; + const guint8 *pimage; + guchar *py; + gint width = image_width; + gint height = image_height; + + if (xpos < 0) { + xpos = 0; + } + + if (xpos + width > tiger->video_width) { + width = tiger->video_width - xpos; + } + + if (ypos + height > tiger->video_height) { + height = tiger->video_height - ypos; + } + + dest += (ypos / 1) * dest_stride; + + for (i = 0; i < height; i++) { + pimage = image + 4 * (i * image_width); + py = dest + i * dest_stride + xpos; + for (j = 0; j < width; j++) { + b = pimage[TIGER_ARGB_B]; + g = pimage[TIGER_ARGB_G]; + r = pimage[TIGER_ARGB_R]; + a = pimage[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a, r, g, b); + + pimage += 4; + if (a == 0) { + py++; + continue; + } + COMP_Y (y, r, g, b); + x = *py; + BLEND (*py++, a, y, x); + } + } +} + +static inline void +gst_kate_tiger_blit_sub2x2cbcr (GstKateTiger * tiger, + guchar * destcb, guchar * destcr, gint xpos, gint ypos, + const guint8 * image, gint image_width, gint image_height, + guint destcb_stride, guint destcr_stride, guint pix_stride) +{ + gint i, j; + gint x, cb, cr; + gushort r, g, b, a; + gushort r1, g1, b1, a1; + const guint8 *pimage1, *pimage2; + guchar *pcb, *pcr; + gint width = image_width - 2; + gint height = image_height - 2; + + xpos *= pix_stride; + + if (xpos < 0) { + xpos = 0; + } + + if (xpos + width > tiger->video_width) { + width = tiger->video_width - xpos; + } + + if (ypos + height > tiger->video_height) { + height = tiger->video_height - ypos; + } + + destcb += (ypos / 2) * destcb_stride; + destcr += (ypos / 2) * destcr_stride; + + for (i = 0; i < height; i += 2) { + pimage1 = image + 4 * (i * image_width); + pimage2 = pimage1 + 4 * image_width; + pcb = destcb + (i / 2) * destcb_stride + xpos / 2; + pcr = destcr + (i / 2) * destcr_stride + xpos / 2; + for (j = 0; j < width; j += 2) { + b = pimage1[TIGER_ARGB_B]; + g = pimage1[TIGER_ARGB_G]; + r = pimage1[TIGER_ARGB_R]; + a = pimage1[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a, r, g, b); + pimage1 += 4; + + b1 = pimage1[TIGER_ARGB_B]; + g1 = pimage1[TIGER_ARGB_G]; + r1 = pimage1[TIGER_ARGB_R]; + a1 = pimage1[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a1, r1, g1, b1); + b += b1; + g += g1; + r += r1; + a += a1; + pimage1 += 4; + + b1 = pimage2[TIGER_ARGB_B]; + g1 = pimage2[TIGER_ARGB_G]; + r1 = pimage2[TIGER_ARGB_R]; + a1 = pimage2[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a1, r1, g1, b1); + b += b1; + g += g1; + r += r1; + a += a1; + pimage2 += 4; + + /* + 2 for rounding */ + b1 = pimage2[TIGER_ARGB_B]; + g1 = pimage2[TIGER_ARGB_G]; + r1 = pimage2[TIGER_ARGB_R]; + a1 = pimage2[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a1, r1, g1, b1); + b += b1 + 2; + g += g1 + 2; + r += r1 + 2; + a += a1 + 2; + pimage2 += 4; + + b /= 4; + g /= 4; + r /= 4; + a /= 4; + + if (a == 0) { + pcb += pix_stride; + pcr += pix_stride; + continue; + } + COMP_U (cb, r, g, b); + COMP_V (cr, r, g, b); + + x = *pcb; + BLEND (*pcb, a, cb, x); + x = *pcr; + BLEND (*pcr, a, cr, x); + + pcb += pix_stride; + pcr += pix_stride; + } + } +} + +/* FIXME: + * - use proper strides and offset for I420 + */ + +static inline void +gst_kate_tiger_blit_NV12_NV21 (GstKateTiger * tiger, + guint8 * yuv_pixels, gint xpos, gint ypos, const guint8 * image, + gint image_width, gint image_height) +{ + int y_stride, uv_stride; + int u_offset, v_offset; + int h, w; + + /* because U/V is 2x2 subsampled, we need to round, either up or down, + * to a boundary of integer number of U/V pixels: + */ + xpos = GST_ROUND_UP_2 (xpos); + ypos = GST_ROUND_UP_2 (ypos); + + w = tiger->video_width; + h = tiger->video_height; + + y_stride = gst_video_format_get_row_stride (tiger->video_format, 0, w); + uv_stride = gst_video_format_get_row_stride (tiger->video_format, 1, w); + u_offset = + gst_video_format_get_component_offset (tiger->video_format, 1, w, h); + v_offset = + gst_video_format_get_component_offset (tiger->video_format, 2, w, h); + + gst_kate_tiger_blit_1 (tiger, yuv_pixels, xpos, ypos, image, image_width, + image_height, y_stride); + gst_kate_tiger_blit_sub2x2cbcr (tiger, yuv_pixels + u_offset, + yuv_pixels + v_offset, xpos, ypos, image, image_width, image_height, + uv_stride, uv_stride, 2); +} + +static inline void +gst_kate_tiger_blit_I420_YV12 (GstKateTiger * tiger, + guint8 * yuv_pixels, gint xpos, gint ypos, const guint8 * image, + gint image_width, gint image_height) +{ + int y_stride, u_stride, v_stride; + int u_offset, v_offset; + int h, w; + + /* because U/V is 2x2 subsampled, we need to round, either up or down, + * to a boundary of integer number of U/V pixels: + */ + xpos = GST_ROUND_UP_2 (xpos); + ypos = GST_ROUND_UP_2 (ypos); + + w = tiger->video_width; + h = tiger->video_height; + + y_stride = gst_video_format_get_row_stride (tiger->video_format, 0, w); + u_stride = gst_video_format_get_row_stride (tiger->video_format, 1, w); + v_stride = gst_video_format_get_row_stride (tiger->video_format, 2, w); + u_offset = + gst_video_format_get_component_offset (tiger->video_format, 1, w, h); + v_offset = + gst_video_format_get_component_offset (tiger->video_format, 2, w, h); + + gst_kate_tiger_blit_1 (tiger, yuv_pixels, xpos, ypos, image, image_width, + image_height, y_stride); + gst_kate_tiger_blit_sub2x2cbcr (tiger, yuv_pixels + u_offset, + yuv_pixels + v_offset, xpos, ypos, image, image_width, image_height, + u_stride, v_stride, 1); +} + +static inline void +gst_kate_tiger_blit_UYVY (GstKateTiger * tiger, + guint8 * yuv_pixels, gint xpos, gint ypos, const guint8 * image, + gint image_width, gint image_height) +{ + int a0, r0, g0, b0; + int a1, r1, g1, b1; + int y0, y1, u, v; + int i, j; + int h, w; + const guint8 *pimage; + guchar *dest; + + /* because U/V is 2x horizontally subsampled, we need to round to a + * boundary of integer number of U/V pixels in x dimension: + */ + xpos = GST_ROUND_UP_2 (xpos); + + w = image_width - 2; + h = image_height - 2; + + if (xpos < 0) { + xpos = 0; + } + + if (xpos + w > tiger->video_width) { + w = tiger->video_width - xpos; + } + + if (ypos + h > tiger->video_height) { + h = tiger->video_height - ypos; + } + + for (i = 0; i < h; i++) { + pimage = image + i * image_width * 4; + dest = yuv_pixels + (i + ypos) * tiger->video_width * 2 + xpos * 2; + for (j = 0; j < w; j += 2) { + b0 = pimage[TIGER_ARGB_B]; + g0 = pimage[TIGER_ARGB_G]; + r0 = pimage[TIGER_ARGB_R]; + a0 = pimage[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a0, r0, g0, b0); + pimage += 4; + + b1 = pimage[TIGER_ARGB_B]; + g1 = pimage[TIGER_ARGB_G]; + r1 = pimage[TIGER_ARGB_R]; + a1 = pimage[TIGER_ARGB_A]; + TIGER_UNPREMULTIPLY (a1, r1, g1, b1); + pimage += 4; + + a0 += a1 + 2; + a0 /= 2; + if (a0 == 0) { + dest += 4; + continue; + } + + COMP_Y (y0, r0, g0, b0); + COMP_Y (y1, r1, g1, b1); + + b0 += b1 + 2; + g0 += g1 + 2; + r0 += r1 + 2; + + b0 /= 2; + g0 /= 2; + r0 /= 2; + + COMP_U (u, r0, g0, b0); + COMP_V (v, r0, g0, b0); + + BLEND (*dest, a0, u, *dest); + dest++; + BLEND (*dest, a0, y0, *dest); + dest++; + BLEND (*dest, a0, v, *dest); + dest++; + BLEND (*dest, a0, y1, *dest); + dest++; + } + } +} + +static inline void +gst_kate_tiger_blit_AYUV (GstKateTiger * tiger, + guint8 * rgb_pixels, gint xpos, gint ypos, const guint8 * image, + gint image_width, gint image_height) +{ + int a, r, g, b, a1; + int y, u, v; + int i, j; + int h, w; + const guint8 *pimage; + guchar *dest; + + w = image_width; + h = image_height; + + if (xpos < 0) { + xpos = 0; + } + + if (xpos + w > tiger->video_width) { + w = tiger->video_width - xpos; + } + + if (ypos + h > tiger->video_height) { + h = tiger->video_height - ypos; + } + + for (i = 0; i < h; i++) { + pimage = image + i * image_width * 4; + dest = rgb_pixels + (i + ypos) * 4 * tiger->video_width + xpos * 4; + for (j = 0; j < w; j++) { + a = pimage[TIGER_ARGB_A]; + b = pimage[TIGER_ARGB_B]; + g = pimage[TIGER_ARGB_G]; + r = pimage[TIGER_ARGB_R]; + + TIGER_UNPREMULTIPLY (a, r, g, b); + + // convert background to yuv + COMP_Y (y, r, g, b); + COMP_U (u, r, g, b); + COMP_V (v, r, g, b); + + // preform text "OVER" background alpha compositing + a1 = a + (dest[0] * (255 - a)) / 255 + 1; // add 1 to prevent divide by 0 + OVER (dest[1], a, y, dest[0], dest[1], a1); + OVER (dest[2], a, u, dest[0], dest[2], a1); + OVER (dest[3], a, v, dest[0], dest[3], a1); + dest[0] = a1 - 1; // remove the temporary 1 we added + + pimage += 4; + dest += 4; + } + } +} + +static void +gst_kate_tiger_blend_yuv (GstKateTiger * tiger, GstBuffer * video_frame, + const guint8 * image, gint image_width, gint image_height) +{ + gint xpos = 0, ypos = 0; + + switch (tiger->video_format) { + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + gst_kate_tiger_blit_I420_YV12 (tiger, + GST_BUFFER_DATA (video_frame), xpos, ypos, image, image_width, + image_height); + break; + case GST_VIDEO_FORMAT_NV12: + case GST_VIDEO_FORMAT_NV21: + gst_kate_tiger_blit_NV12_NV21 (tiger, + GST_BUFFER_DATA (video_frame), xpos, ypos, image, image_width, + image_height); + break; + case GST_VIDEO_FORMAT_UYVY: + gst_kate_tiger_blit_UYVY (tiger, + GST_BUFFER_DATA (video_frame), xpos, ypos, image, image_width, + image_height); + break; + case GST_VIDEO_FORMAT_AYUV: + gst_kate_tiger_blit_AYUV (tiger, + GST_BUFFER_DATA (video_frame), xpos, ypos, image, image_width, + image_height); + break; + default: + g_assert_not_reached (); + } +} + static GstFlowReturn gst_kate_tiger_video_chain (GstPad * pad, GstBuffer * buf) { @@ -717,6 +1189,7 @@ gst_kate_tiger_video_chain (GstPad * pad, GstBuffer * buf) GstFlowReturn rflow = GST_FLOW_OK; unsigned char *ptr; int ret; + kate_float t; GST_KATE_TIGER_MUTEX_LOCK (tiger); @@ -735,45 +1208,80 @@ gst_kate_tiger_video_chain (GstPad * pad, GstBuffer * buf) g_cond_broadcast (tiger->cond); } - /* draw on it */ + /* Update first with a dummy buffer pointer we cannot write to, but with the + right dimensions. If there is nothing to draw, we will not have to make + it writeable. */ + ptr = GST_BUFFER_DATA (buf); + 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: %s", + gst_kate_util_get_error_message (ret)); + goto pass; + } + + /* update the renderer at the time of the video frame */ + 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: %s", + gst_kate_util_get_error_message (ret)); + goto pass; + } + + /* if there nothing to draw, we can just push the video buffer as is */ + if (ret > 0 || tiger->silent) + goto pass; + + /* there is something to draw, so first make the buffer writable */ buf = gst_buffer_make_writable (buf); if (G_UNLIKELY (!buf)) { GST_WARNING_OBJECT (tiger, "Failed to make video buffer writable"); + goto pass; + } + + /* and setup that buffer before rendering */ + if (gst_video_format_is_yuv (tiger->video_format)) { + guint8 *tmp = g_realloc (tiger->render_buffer, + tiger->video_width * tiger->video_height * 4); + if (!tmp) { + GST_WARNING_OBJECT (tiger, "Failed to allocate render buffer"); + goto pass; + } + tiger->render_buffer = tmp; + ptr = tiger->render_buffer; + tiger_renderer_set_surface_clear_color (tiger->tr, 1, 0.0, 0.0, 0.0, 0.0); } 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_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: %s", + gst_kate_util_get_error_message (ret)); + goto pass; + } + ret = tiger_renderer_render (tiger->tr); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (tiger, + "Tiger renderer failed to render to video frame: %s", + gst_kate_util_get_error_message (ret)); + } else { + GST_LOG_OBJECT (tiger, "Tiger renderer rendered on video frame at %f", 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); - } - } - } - } + if (gst_video_format_is_yuv (tiger->video_format)) { + gst_kate_tiger_blend_yuv (tiger, buf, tiger->render_buffer, + tiger->video_width, tiger->video_height); } +pass: GST_KATE_TIGER_MUTEX_UNLOCK (tiger); rflow = gst_pad_push (tiger->srcpad, buf); @@ -818,15 +1326,16 @@ gst_kate_tiger_change_state (GstElement * element, GstStateChange transition) 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); + GST_WARNING_OBJECT (tiger, "failed to create tiger renderer: %s", + gst_kate_util_get_error_message (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); + "failed to set tiger default font description: %s", + gst_kate_util_get_error_message (ret)); } gst_kate_tiger_update_default_font_color (tiger); gst_kate_tiger_update_default_background_color (tiger); @@ -858,9 +1367,13 @@ gst_kate_tiger_seek (GstKateTiger * tiger, GstPad * pad, GstEvent * event) gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); + if (flags & GST_SEEK_FLAG_FLUSH) + gst_pad_push_event (tiger->srcpad, gst_event_new_flush_start ()); + GST_KATE_TIGER_MUTEX_LOCK (tiger); tiger->video_flushing = TRUE; gst_kate_util_decoder_base_set_flushing (&tiger->decoder, TRUE); + g_cond_broadcast (tiger->cond); GST_KATE_TIGER_MUTEX_UNLOCK (tiger); if (format == GST_FORMAT_TIME) { diff --git a/ext/kate/gstkatetiger.h b/ext/kate/gstkatetiger.h index d3880b3..f966cbf 100644 --- a/ext/kate/gstkatetiger.h +++ b/ext/kate/gstkatetiger.h @@ -49,6 +49,7 @@ #include #include #include +#include #include "gstkateutil.h" G_BEGIN_DECLS @@ -88,10 +89,13 @@ struct _GstKateTiger guchar default_background_g; guchar default_background_b; guchar default_background_a; + gboolean silent; + GstVideoFormat video_format; gint video_width; gint video_height; gboolean swap_rgb; + guint8 *render_buffer; GMutex *mutex; GCond *cond; diff --git a/ext/kate/gstkateutil.c b/ext/kate/gstkateutil.c index 46ae19b..d369205 100644 --- a/ext/kate/gstkateutil.c +++ b/ext/kate/gstkateutil.c @@ -24,6 +24,9 @@ #endif #include +#ifdef HAVE_TIGER +#include +#endif #include #include "gstkate.h" #include "gstkateutil.h" @@ -226,6 +229,18 @@ gst_kate_util_decoder_base_get_property (GstKateDecoderBase * decoder, return res; } +static inline gboolean +gst_kate_util_is_utf8_string (const char *value, size_t len) +{ + if (len == 0) + return FALSE; + if (memchr (value, 0, len - 1)) + return FALSE; + if (value[len - 1]) + return FALSE; + return (kate_text_validate (kate_utf8, value, len) >= 0); +} + GstFlowReturn gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder, GstElement * element, GstPad * pad, GstBuffer * buf, GstPad * srcpad, @@ -254,7 +269,8 @@ gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder, 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)); + ("Failed to decode Kate packet: %s", + gst_kate_util_get_error_message (ret))); return GST_FLOW_ERROR; } @@ -371,6 +387,40 @@ gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder, break; } } +#if ((KATE_VERSION_MAJOR<<16)|(KATE_VERSION_MINOR<<8)|KATE_VERSION_PATCH) >= 0x000400 + else if (*ev && (*ev)->meta) { + int count = kate_meta_query_count ((*ev)->meta); + if (count > 0) { + GstTagList *evtags = gst_tag_list_new (); + int idx; + GST_DEBUG_OBJECT (decoder, "Kate event has %d attached metadata", count); + for (idx = 0; idx < count; ++idx) { + const char *tag, *value; + size_t len; + if (kate_meta_query ((*ev)->meta, idx, &tag, &value, &len) < 0) { + GST_WARNING_OBJECT (decoder, "Failed to retrieve metadata %d", idx); + } else { + if (gst_kate_util_is_utf8_string (value, len)) { + gchar *compound = g_strdup_printf ("%s=%s", tag, value); + GST_DEBUG_OBJECT (decoder, "Metadata %d: %s=%s (%zu bytes)", idx, + tag, value, len); + gst_tag_list_add (evtags, GST_TAG_MERGE_APPEND, + GST_TAG_EXTENDED_COMMENT, compound, NULL); + g_free (compound); + } else { + GST_INFO_OBJECT (decoder, + "Metadata %d, (%s, %zu bytes) is binary, ignored", idx, tag, + len); + } + } + } + if (gst_tag_list_is_empty (evtags)) + gst_tag_list_free (evtags); + else + gst_element_found_tags_for_pad (element, tagpad, evtags); + } + } +#endif return rflow; } @@ -390,8 +440,8 @@ gst_kate_decoder_base_change_state (GstKateDecoderBase * decoder, 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_WARNING_OBJECT (element, "failed to initialize kate state: %s", + gst_kate_util_get_error_message (ret)); } gst_segment_init (&decoder->kate_segment, GST_FORMAT_UNDEFINED); decoder->kate_flushing = FALSE; @@ -589,3 +639,50 @@ gst_kate_decoder_base_sink_query (GstKateDecoderBase * decoder, return gst_pad_query_default (pad, query); } } + +const char * +gst_kate_util_get_error_message (int ret) +{ + switch (ret) { + case KATE_E_NOT_FOUND: + return "value not found"; + case KATE_E_INVALID_PARAMETER: + return "invalid parameter"; + case KATE_E_OUT_OF_MEMORY: + return "out of memory"; + case KATE_E_BAD_GRANULE: + return "bad granule"; + case KATE_E_INIT: + return "initialization error"; + case KATE_E_BAD_PACKET: + return "bad packet"; + case KATE_E_TEXT: + return "invalid/truncated text"; + case KATE_E_LIMIT: + return "a limit was exceeded"; + case KATE_E_VERSION: + return "unsupported bitstream version"; + case KATE_E_NOT_KATE: + return "not a kate bitstream"; + case KATE_E_BAD_TAG: + return "bad tag"; + case KATE_E_IMPL: + return "not implemented"; + +#ifdef HAVE_TIGER + case TIGER_E_NOT_FOUND: + return "value not found"; + case TIGER_E_INVALID_PARAMETER: + return "invalid parameter"; + case TIGER_E_OUT_OF_MEMORY: + return "out of memory"; + case TIGER_E_CAIRO_ERROR: + return "Cairo error"; + case TIGER_E_BAD_SURFACE_TYPE: + return "bad surface type"; +#endif + + default: + return "unknown error"; + } +} diff --git a/ext/kate/gstkateutil.h b/ext/kate/gstkateutil.h index 27b6f70..ffa49b4 100644 --- a/ext/kate/gstkateutil.h +++ b/ext/kate/gstkateutil.h @@ -98,6 +98,8 @@ 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); +extern const char * +gst_kate_util_get_error_message (int ret); G_END_DECLS #endif /* __GST_KATE_UTIL_H__ */ diff --git a/ext/ladspa/Makefile.in b/ext/ladspa/Makefile.in index d6513d4..78d875e 100644 --- a/ext/ladspa/Makefile.in +++ b/ext/ladspa/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstladspa_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/signalprocessor/libg $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstladspa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstladspa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstladspa_la_SOURCES) DIST_SOURCES = $(libgstladspa_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstladspa.la: $(libgstladspa_la_OBJECTS) $(libgstladspa_la_DEPENDENCIES) +libgstladspa.la: $(libgstladspa_la_OBJECTS) $(libgstladspa_la_DEPENDENCIES) $(EXTRA_libgstladspa_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstladspa_la_LINK) -rpath $(plugindir) $(libgstladspa_la_OBJECTS) $(libgstladspa_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,34 +649,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -756,10 +779,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/libmms/Makefile.in b/ext/libmms/Makefile.in index 8fc8d00..a4b5b4b 100644 --- a/ext/libmms/Makefile.in +++ b/ext/libmms/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstmms_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmms_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmms_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmms_la_SOURCES) DIST_SOURCES = $(libgstmms_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmms.la: $(libgstmms_la_OBJECTS) $(libgstmms_la_DEPENDENCIES) +libgstmms.la: $(libgstmms_la_OBJECTS) $(libgstmms_la_DEPENDENCIES) $(EXTRA_libgstmms_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmms_la_LINK) -rpath $(plugindir) $(libgstmms_la_OBJECTS) $(libgstmms_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,34 +641,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -748,10 +771,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/libmms/gstmms.c b/ext/libmms/gstmms.c index 23a5226..28a82da 100644 --- a/ext/libmms/gstmms.c +++ b/ext/libmms/gstmms.c @@ -91,8 +91,7 @@ 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_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "MMS streaming source", "Source/Network", "Receive data streamed via MSFT Multi Media Server protocol", @@ -273,7 +272,7 @@ gst_mms_prepare_seek_segment (GstBaseSrc * src, GstEvent * event, static gboolean gst_mms_do_seek (GstBaseSrc * src, GstSegment * segment) { - mms_off_t start; + gint64 start; GstMMS *mmssrc = GST_MMS (src); if (segment->format == GST_FORMAT_TIME) { diff --git a/ext/lv2/Makefile.in b/ext/lv2/Makefile.in index 9e0e8da..121e889 100644 --- a/ext/lv2/Makefile.in +++ b/ext/lv2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstlv2_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/signalprocessor/libgsts $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstlv2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstlv2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstlv2_la_SOURCES) DIST_SOURCES = $(libgstlv2_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstlv2.la: $(libgstlv2_la_OBJECTS) $(libgstlv2_la_DEPENDENCIES) +libgstlv2.la: $(libgstlv2_la_OBJECTS) $(libgstlv2_la_DEPENDENCIES) $(EXTRA_libgstlv2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstlv2_la_LINK) -rpath $(plugindir) $(libgstlv2_la_OBJECTS) $(libgstlv2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,34 +649,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -756,10 +779,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/lv2/gstlv2.c b/ext/lv2/gstlv2.c index caa82b7..f31050f 100644 --- a/ext/lv2/gstlv2.c +++ b/ext/lv2/gstlv2.c @@ -382,9 +382,38 @@ static gchar * gst_lv2_class_get_param_name (GstLV2Class * klass, SLV2Port port) { SLV2Plugin lv2plugin = klass->plugin; + gchar *ret; - return g_strdup (slv2_value_as_string (slv2_port_get_symbol (lv2plugin, + ret = g_strdup (slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port))); + + /* 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, + slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port))); + + return ret; } static gchar * @@ -408,14 +437,6 @@ gst_lv2_class_get_param_spec (GstLV2Class * klass, gint portnum) 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); @@ -601,7 +622,6 @@ gst_lv2_setup (GstSignalProcessor * gsp, GstCaps * caps) GstLV2Group *group = NULL; GstAudioChannelPosition *positions = NULL; GstPad *pad; - GstCaps *pad_caps; gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (gsp); lv2 = (GstLV2 *) gsp; @@ -634,7 +654,6 @@ gst_lv2_setup (GstSignalProcessor * gsp, GstCaps * caps) 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); @@ -653,7 +672,6 @@ gst_lv2_setup (GstSignalProcessor * gsp, GstCaps * caps) 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); diff --git a/ext/mimic/Makefile.am b/ext/mimic/Makefile.am index 7cf08e4..b167414 100644 --- a/ext/mimic/Makefile.am +++ b/ext/mimic/Makefile.am @@ -5,5 +5,6 @@ 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) +libgstmimic_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gstmimdec.h gstmimenc.h diff --git a/ext/mimic/Makefile.in b/ext/mimic/Makefile.in index d560b4f..2b9a512 100644 --- a/ext/mimic/Makefile.in +++ b/ext/mimic/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,13 +115,13 @@ libgstmimic_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 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 $@ + $(libgstmimic_la_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 @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmimic_la_SOURCES) DIST_SOURCES = $(libgstmimic_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -533,6 +560,7 @@ 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) +libgstmimic_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gstmimdec.h gstmimenc.h all: all-am @@ -599,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmimic.la: $(libgstmimic_la_OBJECTS) $(libgstmimic_la_DEPENDENCIES) +libgstmimic.la: $(libgstmimic_la_OBJECTS) $(libgstmimic_la_DEPENDENCIES) $(EXTRA_libgstmimic_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmimic_la_LINK) -rpath $(plugindir) $(libgstmimic_la_OBJECTS) $(libgstmimic_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -615,50 +643,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmimic_la_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 @@ -765,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/mimic/gstmimdec.c b/ext/mimic/gstmimdec.c index 623f749..a712c21 100644 --- a/ext/mimic/gstmimdec.c +++ b/ext/mimic/gstmimdec.c @@ -87,10 +87,8 @@ 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Mimic Decoder", diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c index f4957cc..a867787 100644 --- a/ext/mimic/gstmimenc.c +++ b/ext/mimic/gstmimenc.c @@ -125,10 +125,8 @@ gst_mim_enc_base_init (gpointer klass) " 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Mimic Encoder", "Codec/Encoder/Video", diff --git a/ext/modplug/Makefile.in b/ext/modplug/Makefile.in index bb6e4bd..319d7cb 100644 --- a/ext/modplug/Makefile.in +++ b/ext/modplug/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmodplug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstmodplug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmodplug_la_SOURCES) DIST_SOURCES = $(libgstmodplug_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmodplug.la: $(libgstmodplug_la_OBJECTS) $(libgstmodplug_la_DEPENDENCIES) +libgstmodplug.la: $(libgstmodplug_la_OBJECTS) $(libgstmodplug_la_DEPENDENCIES) $(EXTRA_libgstmodplug_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstmodplug_la_LINK) -rpath $(plugindir) $(libgstmodplug_la_OBJECTS) $(libgstmodplug_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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 @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc index b6b59eb..09836a9 100644 --- a/ext/modplug/gstmodplug.cc +++ b/ext/modplug/gstmodplug.cc @@ -149,10 +149,10 @@ 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_add_static_pad_template (element_class, + &modplug_sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &modplug_src_template_factory); gst_element_class_set_details_simple (element_class, "ModPlug", "Codec/Decoder/Audio", "Module decoder based on modplug engine", @@ -370,15 +370,19 @@ gst_modplug_src_event (GstPad * pad, GstEvent * event) GstSeekType cur_type, stop_type; gboolean flush; gint64 cur, stop; +/* FIXME timestamp is set but not used */ +#if 0 guint64 timestamp; +#endif if (modplug->frequency == 0) { GST_DEBUG_OBJECT (modplug, "no song loaded yet"); break; } - +#if 0 timestamp = gst_util_uint64_scale_int (modplug->offset, GST_SECOND, modplug->frequency); +#endif gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); @@ -461,10 +465,10 @@ 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; + if (!gst_structure_fixate_field_nearest_int (structure, "rate", 44100)) + GST_WARNING_OBJECT (pad, "Failed to fixate rate to 44100"); + if (!gst_structure_fixate_field_nearest_int (structure, "channels", 2)) + GST_WARNING_OBJECT (pad, "Failed to fixate number of channels to stereo"); } static gboolean @@ -486,7 +490,6 @@ gst_modplug_load_song (GstModPlug * modplug) 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); @@ -494,6 +497,9 @@ gst_modplug_load_song (GstModPlug * modplug) gst_structure_get_int (structure, "channels", &modplug->channel); gst_structure_get_int (structure, "rate", &modplug->frequency); + gst_pad_set_caps (modplug->srcpad, newcaps); + gst_caps_unref (newcaps); + modplug->read_samples = 1152; modplug->read_bytes = modplug->read_samples * modplug->channel * modplug->bits / 8; diff --git a/ext/mpeg2enc/Makefile.in b/ext/mpeg2enc/Makefile.in index 879fd42..4baf95f 100644 --- a/ext/mpeg2enc/Makefile.in +++ b/ext/mpeg2enc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstmpeg2enc_la_OBJECTS = libgstmpeg2enc_la-gstmpeg2enc.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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpeg2enc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpeg2enc_la_SOURCES) DIST_SOURCES = $(libgstmpeg2enc_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -619,7 +646,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpeg2enc.la: $(libgstmpeg2enc_la_OBJECTS) $(libgstmpeg2enc_la_DEPENDENCIES) +libgstmpeg2enc.la: $(libgstmpeg2enc_la_OBJECTS) $(libgstmpeg2enc_la_DEPENDENCIES) $(EXTRA_libgstmpeg2enc_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstmpeg2enc_la_LINK) -rpath $(plugindir) $(libgstmpeg2enc_la_OBJECTS) $(libgstmpeg2enc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -637,66 +664,58 @@ distclean-compile: .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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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 @@ -803,10 +822,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/mpeg2enc/gstmpeg2enc.cc b/ext/mpeg2enc/gstmpeg2enc.cc index 5c0b426..1987103 100644 --- a/ext/mpeg2enc/gstmpeg2enc.cc +++ b/ext/mpeg2enc/gstmpeg2enc.cc @@ -126,10 +126,9 @@ gst_mpeg2enc_base_init (gpointer klass) "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)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } static void diff --git a/ext/mpeg2enc/gstmpeg2encoder.cc b/ext/mpeg2enc/gstmpeg2encoder.cc index acfda50..776602c 100644 --- a/ext/mpeg2enc/gstmpeg2encoder.cc +++ b/ext/mpeg2enc/gstmpeg2encoder.cc @@ -26,7 +26,10 @@ #include #include -#if GST_MJPEGTOOLS_API >= 10900 +#if GST_MJPEGTOOLS_API >= 20000 +#include +#include +#elif GST_MJPEGTOOLS_API >= 10900 #include #include #include diff --git a/ext/mplex/Makefile.in b/ext/mplex/Makefile.in index ff0c5bc..c98f3e3 100644 --- a/ext/mplex/Makefile.in +++ b/ext/mplex/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstmplex_la_OBJECTS = libgstmplex_la-gstmplex.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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmplex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmplex_la_SOURCES) DIST_SOURCES = $(libgstmplex_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -617,7 +644,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmplex.la: $(libgstmplex_la_OBJECTS) $(libgstmplex_la_DEPENDENCIES) +libgstmplex.la: $(libgstmplex_la_OBJECTS) $(libgstmplex_la_DEPENDENCIES) $(EXTRA_libgstmplex_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstmplex_la_LINK) -rpath $(plugindir) $(libgstmplex_la_OBJECTS) $(libgstmplex_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -634,58 +661,51 @@ distclean-compile: .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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)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 +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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 @@ -792,10 +812,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/mplex/gstmplex.cc b/ext/mplex/gstmplex.cc index 04eae2e..ac94e7c 100644 --- a/ext/mplex/gstmplex.cc +++ b/ext/mplex/gstmplex.cc @@ -129,14 +129,13 @@ gst_mplex_base_init (gpointer klass) "High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer", "Andrew Stevens \n" "Ronald Bultje \n" - "Mark Nauwelaerts "); + + gst_element_class_add_static_pad_template (element_class, &src_templ); + gst_element_class_add_static_pad_template (element_class, + &video_sink_templ); + gst_element_class_add_static_pad_template (element_class, + &audio_sink_templ); } static void diff --git a/ext/musepack/Makefile.in b/ext/musepack/Makefile.in index ee8d75c..674f49e 100644 --- a/ext/musepack/Makefile.in +++ b/ext/musepack/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstmusepack_la_DEPENDENCIES = $(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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmusepack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmusepack_la_SOURCES) DIST_SOURCES = $(libgstmusepack_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -606,7 +633,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmusepack.la: $(libgstmusepack_la_OBJECTS) $(libgstmusepack_la_DEPENDENCIES) +libgstmusepack.la: $(libgstmusepack_la_OBJECTS) $(libgstmusepack_la_DEPENDENCIES) $(EXTRA_libgstmusepack_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmusepack_la_LINK) -rpath $(plugindir) $(libgstmusepack_la_OBJECTS) $(libgstmusepack_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -621,42 +648,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -763,10 +785,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/musepack/gstmusepackdec.c b/ext/musepack/gstmusepackdec.c index 30a34bf..1d6380c 100644 --- a/ext/musepack/gstmusepackdec.c +++ b/ext/musepack/gstmusepackdec.c @@ -79,10 +79,9 @@ 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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Musepack decoder", "Codec/Decoder/Audio", diff --git a/ext/musicbrainz/Makefile.in b/ext/musicbrainz/Makefile.in index 861c58e..650bdaa 100644 --- a/ext/musicbrainz/Makefile.in +++ b/ext/musicbrainz/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsttrm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsttrm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsttrm_la_SOURCES) DIST_SOURCES = $(libgsttrm_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -601,7 +628,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsttrm.la: $(libgsttrm_la_OBJECTS) $(libgsttrm_la_DEPENDENCIES) +libgsttrm.la: $(libgsttrm_la_OBJECTS) $(libgsttrm_la_DEPENDENCIES) $(EXTRA_libgsttrm_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsttrm_la_LINK) -rpath $(plugindir) $(libgsttrm_la_OBJECTS) $(libgsttrm_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -615,34 +642,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -749,10 +772,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/musicbrainz/gsttrm.c b/ext/musicbrainz/gsttrm.c index 7e53cc0..173c1f1 100644 --- a/ext/musicbrainz/gsttrm.c +++ b/ext/musicbrainz/gsttrm.c @@ -112,10 +112,9 @@ 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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "MusicBrainz TRM generator", "Filter/Analyzer/Audio", diff --git a/ext/mythtv/Makefile.in b/ext/mythtv/Makefile.in index 17a98f3..584648d 100644 --- a/ext/mythtv/Makefile.in +++ b/ext/mythtv/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmythtvsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmythtvsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmythtvsrc_la_SOURCES) DIST_SOURCES = $(libgstmythtvsrc_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -611,7 +638,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmythtvsrc.la: $(libgstmythtvsrc_la_OBJECTS) $(libgstmythtvsrc_la_DEPENDENCIES) +libgstmythtvsrc.la: $(libgstmythtvsrc_la_OBJECTS) $(libgstmythtvsrc_la_DEPENDENCIES) $(EXTRA_libgstmythtvsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmythtvsrc_la_LINK) -rpath $(plugindir) $(libgstmythtvsrc_la_OBJECTS) $(libgstmythtvsrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -625,34 +652,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -759,10 +782,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/mythtv/gstmythtvsrc.c b/ext/mythtv/gstmythtvsrc.c index ca9865e..71c9092 100644 --- a/ext/mythtv/gstmythtvsrc.c +++ b/ext/mythtv/gstmythtvsrc.c @@ -156,8 +156,7 @@ GST_BOILERPLATE_FULL (GstMythtvSrc, gst_mythtv_src, GstPushSrc, { 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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "MythTV client source", "Source/Network", diff --git a/ext/nas/Makefile.in b/ext/nas/Makefile.in index 868452b..36f78a1 100644 --- a/ext/nas/Makefile.in +++ b/ext/nas/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ 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 = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstnassink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstnassink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstnassink_la_SOURCES) DIST_SOURCES = $(libgstnassink_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstnassink.la: $(libgstnassink_la_OBJECTS) $(libgstnassink_la_DEPENDENCIES) +libgstnassink.la: $(libgstnassink_la_OBJECTS) $(libgstnassink_la_DEPENDENCIES) $(EXTRA_libgstnassink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstnassink_la_LINK) -rpath $(plugindir) $(libgstnassink_la_OBJECTS) $(libgstnassink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +644,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 @@ -751,10 +774,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/nas/nassink.c b/ext/nas/nassink.c index 4b53595..dac158d 100644 --- a/ext/nas/nassink.c +++ b/ext/nas/nassink.c @@ -95,8 +95,7 @@ gst_nas_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 (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "NAS audio sink", "Sink/Audio", "Plays audio to a Network Audio Server", diff --git a/ext/neon/Makefile.in b/ext/neon/Makefile.in index a38e38a..fcf23dd 100644 --- a/ext/neon/Makefile.in +++ b/ext/neon/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstneonhttpsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstneonhttpsrc_la_OBJECTS = \ libgstneonhttpsrc_la-gstneonhttpsrc.lo libgstneonhttpsrc_la_OBJECTS = $(am_libgstneonhttpsrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstneonhttpsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstneonhttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstneonhttpsrc_la_SOURCES) DIST_SOURCES = $(libgstneonhttpsrc_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstneonhttpsrc.la: $(libgstneonhttpsrc_la_OBJECTS) $(libgstneonhttpsrc_la_DEPENDENCIES) +libgstneonhttpsrc.la: $(libgstneonhttpsrc_la_OBJECTS) $(libgstneonhttpsrc_la_DEPENDENCIES) $(EXTRA_libgstneonhttpsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstneonhttpsrc_la_LINK) -rpath $(plugindir) $(libgstneonhttpsrc_la_OBJECTS) $(libgstneonhttpsrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,34 +641,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstneonhttpsrc_la-gstneonhttpsrc.lo: gstneonhttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstneonhttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstneonhttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstneonhttpsrc_la-gstneonhttpsrc.lo -MD -MP -MF $(DEPDIR)/libgstneonhttpsrc_la-gstneonhttpsrc.Tpo -c -o libgstneonhttpsrc_la-gstneonhttpsrc.lo `test -f 'gstneonhttpsrc.c' || echo '$(srcdir)/'`gstneonhttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstneonhttpsrc_la-gstneonhttpsrc.Tpo $(DEPDIR)/libgstneonhttpsrc_la-gstneonhttpsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstneonhttpsrc.c' object='libgstneonhttpsrc_la-gstneonhttpsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstneonhttpsrc.c' object='libgstneonhttpsrc_la-gstneonhttpsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstneonhttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstneonhttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstneonhttpsrc_la-gstneonhttpsrc.lo `test -f 'gstneonhttpsrc.c' || echo '$(srcdir)/'`gstneonhttpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstneonhttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstneonhttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstneonhttpsrc_la-gstneonhttpsrc.lo `test -f 'gstneonhttpsrc.c' || echo '$(srcdir)/'`gstneonhttpsrc.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +771,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/neon/gstneonhttpsrc.c b/ext/neon/gstneonhttpsrc.c index 2844dcd..20adf05 100644 --- a/ext/neon/gstneonhttpsrc.c +++ b/ext/neon/gstneonhttpsrc.c @@ -98,6 +98,7 @@ static gboolean gst_neonhttp_src_get_size (GstBaseSrc * bsrc, guint64 * size); static gboolean gst_neonhttp_src_is_seekable (GstBaseSrc * bsrc); static gboolean gst_neonhttp_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment); +static gboolean gst_neonhttp_src_query (GstBaseSrc * bsrc, GstQuery * query); static gboolean gst_neonhttp_src_set_proxy (GstNeonhttpSrc * src, const gchar * uri); @@ -134,8 +135,7 @@ gst_neonhttp_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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "HTTP client source", "Source/Network", @@ -268,6 +268,7 @@ gst_neonhttp_src_class_init (GstNeonhttpSrcClass * klass) gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_neonhttp_src_is_seekable); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_neonhttp_src_do_seek); + gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_neonhttp_src_query); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_neonhttp_src_create); @@ -778,6 +779,28 @@ gst_neonhttp_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) } static gboolean +gst_neonhttp_src_query (GstBaseSrc * bsrc, GstQuery * query) +{ + GstNeonhttpSrc *src = GST_NEONHTTP_SRC (bsrc); + gboolean ret; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_URI: + gst_query_set_uri (query, src->location); + ret = TRUE; + break; + default: + ret = FALSE; + break; + } + + if (!ret) + ret = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query); + + return ret; +} + +static gboolean gst_neonhttp_src_set_location (GstNeonhttpSrc * src, const gchar * uri) { ne_uri_free (&src->uri); diff --git a/ext/ofa/Makefile.in b/ext/ofa/Makefile.in index d0c32d5..6fbbe59 100644 --- a/ext/ofa/Makefile.in +++ b/ext/ofa/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstofa_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstofa_la_OBJECTS = libgstofa_la-gstofa.lo libgstofa_la_OBJECTS = $(am_libgstofa_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstofa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstofa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstofa_la_SOURCES) DIST_SOURCES = $(libgstofa_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -609,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstofa.la: $(libgstofa_la_OBJECTS) $(libgstofa_la_DEPENDENCIES) +libgstofa.la: $(libgstofa_la_OBJECTS) $(libgstofa_la_DEPENDENCIES) $(EXTRA_libgstofa_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstofa_la_LINK) -rpath $(plugindir) $(libgstofa_la_OBJECTS) $(libgstofa_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,34 +650,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstofa_la-gstofa.lo: gstofa.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstofa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstofa_la_CFLAGS) $(CFLAGS) -MT libgstofa_la-gstofa.lo -MD -MP -MF $(DEPDIR)/libgstofa_la-gstofa.Tpo -c -o libgstofa_la-gstofa.lo `test -f 'gstofa.c' || echo '$(srcdir)/'`gstofa.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstofa_la-gstofa.Tpo $(DEPDIR)/libgstofa_la-gstofa.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstofa.c' object='libgstofa_la-gstofa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstofa.c' object='libgstofa_la-gstofa.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstofa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstofa_la_CFLAGS) $(CFLAGS) -c -o libgstofa_la-gstofa.lo `test -f 'gstofa.c' || echo '$(srcdir)/'`gstofa.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstofa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstofa_la_CFLAGS) $(CFLAGS) -c -o libgstofa_la-gstofa.lo `test -f 'gstofa.c' || echo '$(srcdir)/'`gstofa.c mostlyclean-libtool: -rm -f *.lo @@ -757,10 +780,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/ofa/gstofa.c b/ext/ofa/gstofa.c index d1be486..6081fdb 100644 --- a/ext/ofa/gstofa.c +++ b/ext/ofa/gstofa.c @@ -115,33 +115,53 @@ static void create_fingerprint (GstOFA * ofa) { GstBuffer *buf; - gint rate = GST_AUDIO_FILTER (ofa)->format.rate; - gint channels = GST_AUDIO_FILTER (ofa)->format.channels; + GstAudioFilter *ofa_filter = GST_AUDIO_FILTER (ofa); + gint rate = ofa_filter->format.rate; + gint channels = ofa_filter->format.channels; gint endianness = - (GST_AUDIO_FILTER (ofa)->format. - bigend) ? OFA_BIG_ENDIAN : OFA_LITTLE_ENDIAN; + ofa_filter->format.bigend ? OFA_BIG_ENDIAN : OFA_LITTLE_ENDIAN; GstTagList *tags; + guint available; - GST_DEBUG ("Generating fingerprint"); + available = gst_adapter_available (ofa->adapter); - buf = - gst_adapter_take_buffer (ofa->adapter, - gst_adapter_available (ofa->adapter)); + if (available == 0) { + GST_WARNING_OBJECT (ofa, "No data to take fingerprint from"); + ofa->record = FALSE; + return; + } + + if (GST_AUDIO_FILTER (ofa)->format.bigend) + endianness = OFA_BIG_ENDIAN; + else + endianness = OFA_LITTLE_ENDIAN; + + + GST_DEBUG_OBJECT (ofa, "Generating fingerprint for %u samples", + available / 2); + + buf = gst_adapter_take_buffer (ofa->adapter, available); ofa->fingerprint = g_strdup (ofa_create_print (GST_BUFFER_DATA (buf), endianness, GST_BUFFER_SIZE (buf) / 2, rate, (channels == 2) ? 1 : 0)); - GST_DEBUG ("Generated fingerprint"); + if (ofa->fingerprint) { + GST_INFO_OBJECT (ofa, "Generated fingerprint: %s", ofa->fingerprint); + } else { + GST_WARNING_OBJECT (ofa, "Failed to generate fingerprint"); + } gst_buffer_unref (buf); - tags = gst_tag_list_new (); - gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, - GST_TAG_OFA_FINGERPRINT, ofa->fingerprint, NULL); - gst_element_found_tags (GST_ELEMENT (ofa), tags); + if (ofa->fingerprint) { + tags = gst_tag_list_new (); + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_OFA_FINGERPRINT, ofa->fingerprint, NULL); + gst_element_found_tags (GST_ELEMENT (ofa), tags); - g_object_notify (G_OBJECT (ofa), "fingerprint"); + g_object_notify (G_OBJECT (ofa), "fingerprint"); + } ofa->record = FALSE; } @@ -154,7 +174,8 @@ gst_ofa_event (GstBaseTransform * trans, GstEvent * event) switch (GST_EVENT_TYPE (event)) { case GST_EVENT_FLUSH_STOP: case GST_EVENT_NEWSEGMENT: - GST_DEBUG ("Got %s event, clearing buffer", GST_EVENT_TYPE_NAME (event)); + GST_DEBUG_OBJECT (ofa, "Got %s event, clearing buffer", + GST_EVENT_TYPE_NAME (event)); gst_adapter_clear (ofa->adapter); ofa->record = TRUE; g_free (ofa->fingerprint); @@ -164,7 +185,7 @@ gst_ofa_event (GstBaseTransform * trans, GstEvent * event) /* we got to the end of the stream but never generated a fingerprint * (probably under 135 seconds) */ - if (!ofa->fingerprint) + if (!ofa->fingerprint && ofa->record) create_fingerprint (ofa); break; default: @@ -189,10 +210,11 @@ static GstFlowReturn gst_ofa_transform_ip (GstBaseTransform * trans, GstBuffer * buf) { GstOFA *ofa = GST_OFA (trans); + GstAudioFilter *ofa_filter = GST_AUDIO_FILTER (ofa); guint64 nframes; GstClockTime duration; - gint rate = GST_AUDIO_FILTER (ofa)->format.rate; - gint channels = GST_AUDIO_FILTER (ofa)->format.channels; + gint rate = ofa_filter->format.rate; + gint channels = ofa_filter->format.channels; g_return_val_if_fail (rate > 0 && channels > 0, GST_FLOW_NOT_NEGOTIATED); diff --git a/ext/openal/Makefile.am b/ext/openal/Makefile.am new file mode 100644 index 0000000..b5e4e5b --- /dev/null +++ b/ext/openal/Makefile.am @@ -0,0 +1,15 @@ +# Note: plugindir is set in configure + +plugin_LTLIBRARIES = libgstopenal.la + +# sources used to compile this plug-in +libgstopenal_la_SOURCES = gstopenal.c gstopenalsink.c gstopenalsrc.c + +# compiler and linker flags used to compile this plugin, set in configure.ac +libgstopenal_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OPENAL_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +libgstopenal_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) $(OPENAL_LIBS) +libgstopenal_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstopenal_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstopenalsink.h gstopenalsrc.h diff --git a/ext/openal/Makefile.in b/ext/openal/Makefile.in new file mode 100644 index 0000000..88b4a70 --- /dev/null +++ b/ext/openal/Makefile.in @@ -0,0 +1,910 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ + +# Note: 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@ +subdir = ext/openal +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstopenal_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstopenal_la_OBJECTS = libgstopenal_la-gstopenal.lo \ + libgstopenal_la-gstopenalsink.lo \ + libgstopenal_la-gstopenalsrc.lo +libgstopenal_la_OBJECTS = $(am_libgstopenal_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstopenal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstopenal_la_CFLAGS) $(CFLAGS) \ + $(libgstopenal_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstopenal_la_SOURCES) +DIST_SOURCES = $(libgstopenal_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstopenal.la + +# sources used to compile this plug-in +libgstopenal_la_SOURCES = gstopenal.c gstopenalsink.c gstopenalsrc.c + +# compiler and linker flags used to compile this plugin, set in configure.ac +libgstopenal_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OPENAL_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) +libgstopenal_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) $(OPENAL_LIBS) +libgstopenal_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstopenal_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstopenalsink.h gstopenalsrc.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/openal/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/openal/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 +libgstopenal.la: $(libgstopenal_la_OBJECTS) $(libgstopenal_la_DEPENDENCIES) $(EXTRA_libgstopenal_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstopenal_la_LINK) -rpath $(plugindir) $(libgstopenal_la_OBJECTS) $(libgstopenal_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopenal_la-gstopenal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopenal_la-gstopenalsink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopenal_la-gstopenalsrc.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstopenal_la-gstopenal.lo: gstopenal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -MT libgstopenal_la-gstopenal.lo -MD -MP -MF $(DEPDIR)/libgstopenal_la-gstopenal.Tpo -c -o libgstopenal_la-gstopenal.lo `test -f 'gstopenal.c' || echo '$(srcdir)/'`gstopenal.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopenal_la-gstopenal.Tpo $(DEPDIR)/libgstopenal_la-gstopenal.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopenal.c' object='libgstopenal_la-gstopenal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -c -o libgstopenal_la-gstopenal.lo `test -f 'gstopenal.c' || echo '$(srcdir)/'`gstopenal.c + +libgstopenal_la-gstopenalsink.lo: gstopenalsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -MT libgstopenal_la-gstopenalsink.lo -MD -MP -MF $(DEPDIR)/libgstopenal_la-gstopenalsink.Tpo -c -o libgstopenal_la-gstopenalsink.lo `test -f 'gstopenalsink.c' || echo '$(srcdir)/'`gstopenalsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopenal_la-gstopenalsink.Tpo $(DEPDIR)/libgstopenal_la-gstopenalsink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopenalsink.c' object='libgstopenal_la-gstopenalsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -c -o libgstopenal_la-gstopenalsink.lo `test -f 'gstopenalsink.c' || echo '$(srcdir)/'`gstopenalsink.c + +libgstopenal_la-gstopenalsrc.lo: gstopenalsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -MT libgstopenal_la-gstopenalsrc.lo -MD -MP -MF $(DEPDIR)/libgstopenal_la-gstopenalsrc.Tpo -c -o libgstopenal_la-gstopenalsrc.lo `test -f 'gstopenalsrc.c' || echo '$(srcdir)/'`gstopenalsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopenal_la-gstopenalsrc.Tpo $(DEPDIR)/libgstopenal_la-gstopenalsrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopenalsrc.c' object='libgstopenal_la-gstopenalsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopenal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopenal_la_CFLAGS) $(CFLAGS) -c -o libgstopenal_la-gstopenalsrc.lo `test -f 'gstopenalsrc.c' || echo '$(srcdir)/'`gstopenalsrc.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/openal/gstopenal.c b/ext/openal/gstopenal.c new file mode 100644 index 0000000..7022441 --- /dev/null +++ b/ext/openal/gstopenal.c @@ -0,0 +1,55 @@ +/* + * GStreamer + * Copyright (C) 2005 Wim Taymans + * Copyright (C) 2006 Tim-Philipp Müller + * Copyright (C) 2009-2010 Chris Robinson + * + * 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 "gstopenalsink.h" +#include "gstopenalsrc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "openalsink", GST_RANK_SECONDARY, + GST_TYPE_OPENAL_SINK) || + !gst_element_register (plugin, "openalsrc", GST_RANK_SECONDARY, + GST_TYPE_OPENAL_SRC)) + return FALSE; + +#ifdef ENABLE_NLS + GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE, + LOCALEDIR); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); +#endif /* ENABLE_NLS */ + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, + "openal", + "OpenAL support for GStreamer", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/openal/gstopenalsink.c b/ext/openal/gstopenalsink.c new file mode 100644 index 0000000..a169d9e --- /dev/null +++ b/ext/openal/gstopenalsink.c @@ -0,0 +1,951 @@ +/* + * GStreamer + * Copyright (C) 2005 Wim Taymans + * Copyright (C) 2006 Tim-Philipp Müller + * Copyright (C) 2009-2010 Chris Robinson + * + * 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-openalsink + * + * This element renders raw audio samples using the OpenAL API + * + * + * Example pipelines + * |[ + * gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.1 ! openalsink + * ]| will output a sine wave (continuous beep sound) to your sound card (with + * a very low volume as precaution). + * |[ + * gst-launch -v filesrc location=music.ogg ! decodebin ! audioconvert ! audioresample ! openalsink + * ]| will play an Ogg/Vorbis audio file and output it using OpenAL. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstopenalsink.h" + +GST_DEBUG_CATEGORY (openalsink_debug); + +static void gst_openal_sink_dispose (GObject * object); +static void gst_openal_sink_finalize (GObject * object); + +static void gst_openal_sink_get_property (GObject * object, guint prop_id, + GValue * val, GParamSpec * pspec); +static void gst_openal_sink_set_property (GObject * object, guint prop_id, + const GValue * val, GParamSpec * pspec); + +static GstCaps *gst_openal_sink_getcaps (GstBaseSink * bsink); + +static gboolean gst_openal_sink_open (GstAudioSink * asink); +static gboolean gst_openal_sink_close (GstAudioSink * asink); +static gboolean gst_openal_sink_prepare (GstAudioSink * asink, + GstRingBufferSpec * spec); +static gboolean gst_openal_sink_unprepare (GstAudioSink * asink); +static guint gst_openal_sink_write (GstAudioSink * asink, gpointer data, + guint length); +static guint gst_openal_sink_delay (GstAudioSink * asink); +static void gst_openal_sink_reset (GstAudioSink * asink); + +#define DEFAULT_DEVICE NULL + +enum +{ + PROP_0, + + PROP_DEVICE, + PROP_DEVICE_NAME, + + PROP_DEVICE_HDL, + PROP_CONTEXT_HDL, + PROP_SOURCE_ID +}; + +static GstStaticPadTemplate openalsink_sink_factory = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-float, " + "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", " + "width = (int) 32, " + "rate = (int) [ 1, MAX ], " + "channels = (int) [ 1, MAX ]; " + "audio/x-raw-int, " + "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", " + "signed = (boolean) TRUE, " + "width = (int) 16, " + "depth = (int) 16, " + "rate = (int) [ 1, MAX ], " + "channels = (int) [ 1, MAX ]; " + "audio/x-raw-int, " + "signed = (boolean) FALSE, " + "width = (int) 8, " + "depth = (int) 8, " + "rate = (int) [ 1, MAX ], " + "channels = (int) [ 1, MAX ]; " + "audio/x-mulaw, " + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]") + ); + +static PFNALCSETTHREADCONTEXTPROC palcSetThreadContext; +static PFNALCGETTHREADCONTEXTPROC palcGetThreadContext; + +static inline ALCcontext * +pushContext (ALCcontext * ctx) +{ + ALCcontext *old; + if (!palcGetThreadContext || !palcSetThreadContext) + return NULL; + + old = palcGetThreadContext (); + if (old != ctx) + palcSetThreadContext (ctx); + return old; +} + +static inline void +popContext (ALCcontext * old, ALCcontext * ctx) +{ + if (!palcGetThreadContext || !palcSetThreadContext) + return; + + if (old != ctx) + palcSetThreadContext (old); +} + +static inline ALenum +checkALError (const char *fname, unsigned int fline) +{ + ALenum err = alGetError (); + if (err != AL_NO_ERROR) + g_warning ("%s:%u: context error: %s", fname, fline, alGetString (err)); + return err; +} + +#define checkALError() checkALError(__FILE__, __LINE__) + +GST_BOILERPLATE (GstOpenALSink, gst_openal_sink, GstAudioSink, + GST_TYPE_AUDIO_SINK); + +static void +gst_openal_sink_dispose (GObject * object) +{ + GstOpenALSink *sink = GST_OPENAL_SINK (object); + + if (sink->probed_caps) + gst_caps_unref (sink->probed_caps); + sink->probed_caps = NULL; + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +/* GObject vmethod implementations */ +static void +gst_openal_sink_base_init (gpointer gclass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_set_details_simple (element_class, "Audio sink (OpenAL)", + "Sink/Audio", + "Output to a sound device via OpenAL", + "Chris Robinson "); + + gst_element_class_add_static_pad_template (element_class, + &openalsink_sink_factory); +} + +/* initialize the plugin's class */ +static void +gst_openal_sink_class_init (GstOpenALSinkClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstBaseSinkClass *gstbasesink_class = (GstBaseSinkClass *) klass; + GstAudioSinkClass *gstaudiosink_class = (GstAudioSinkClass *) klass; + GParamSpec *spec; + + if (alcIsExtensionPresent (NULL, "ALC_EXT_thread_local_context")) { + palcSetThreadContext = alcGetProcAddress (NULL, "alcSetThreadContext"); + palcGetThreadContext = alcGetProcAddress (NULL, "alcGetThreadContext"); + } + + GST_DEBUG_CATEGORY_INIT (openalsink_debug, "openalsink", 0, "OpenAL sink"); + + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_openal_sink_dispose); + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_openal_sink_finalize); + gobject_class->set_property = + GST_DEBUG_FUNCPTR (gst_openal_sink_set_property); + gobject_class->get_property = + GST_DEBUG_FUNCPTR (gst_openal_sink_get_property); + + spec = g_param_spec_string ("device-name", "Device name", + "Opened OpenAL device name", "", G_PARAM_READABLE); + g_object_class_install_property (gobject_class, PROP_DEVICE_NAME, spec); + + spec = g_param_spec_string ("device", "Device", "OpenAL device string", + DEFAULT_DEVICE, G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, PROP_DEVICE, spec); + + spec = g_param_spec_pointer ("device-handle", "ALCdevice", + "Custom playback device", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (gobject_class, PROP_DEVICE_HDL, spec); + + spec = g_param_spec_pointer ("context-handle", "ALCcontext", + "Custom playback context", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (gobject_class, PROP_CONTEXT_HDL, spec); + + spec = g_param_spec_uint ("source-id", "Source ID", "Custom playback sID", + 0, UINT_MAX, 0, G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, PROP_SOURCE_ID, spec); + + parent_class = g_type_class_peek_parent (klass); + + gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_openal_sink_getcaps); + + gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_openal_sink_open); + gstaudiosink_class->close = GST_DEBUG_FUNCPTR (gst_openal_sink_close); + gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_openal_sink_prepare); + gstaudiosink_class->unprepare = GST_DEBUG_FUNCPTR (gst_openal_sink_unprepare); + gstaudiosink_class->write = GST_DEBUG_FUNCPTR (gst_openal_sink_write); + gstaudiosink_class->delay = GST_DEBUG_FUNCPTR (gst_openal_sink_delay); + gstaudiosink_class->reset = GST_DEBUG_FUNCPTR (gst_openal_sink_reset); +} + +static void +gst_openal_sink_init (GstOpenALSink * sink, GstOpenALSinkClass * klass) +{ + GST_DEBUG_OBJECT (sink, "initializing openalsink"); + + sink->devname = g_strdup (DEFAULT_DEVICE); + + sink->custom_dev = NULL; + sink->custom_ctx = NULL; + sink->custom_sID = 0; + + sink->device = NULL; + sink->context = NULL; + sink->sID = 0; + + sink->bID_idx = 0; + sink->bID_count = 0; + sink->bIDs = NULL; + sink->bID_length = 0; + + sink->write_reset = AL_FALSE; + sink->probed_caps = NULL; + + sink->openal_lock = g_mutex_new (); +} + +static void +gst_openal_sink_finalize (GObject * object) +{ + GstOpenALSink *sink = GST_OPENAL_SINK (object); + + g_free (sink->devname); + sink->devname = NULL; + g_mutex_free (sink->openal_lock); + sink->openal_lock = NULL; + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_openal_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstOpenALSink *sink = GST_OPENAL_SINK (object); + + switch (prop_id) { + case PROP_DEVICE: + g_free (sink->devname); + sink->devname = g_value_dup_string (value); + if (sink->probed_caps) + gst_caps_unref (sink->probed_caps); + sink->probed_caps = NULL; + break; + case PROP_DEVICE_HDL: + if (!sink->device) + sink->custom_dev = g_value_get_pointer (value); + break; + case PROP_CONTEXT_HDL: + if (!sink->device) + sink->custom_ctx = g_value_get_pointer (value); + break; + case PROP_SOURCE_ID: + if (!sink->device) + sink->custom_sID = g_value_get_uint (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_openal_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstOpenALSink *sink = GST_OPENAL_SINK (object); + const ALCchar *name = sink->devname; + ALCdevice *device = sink->device; + ALCcontext *context = sink->context; + ALuint sourceID = sink->sID; + + switch (prop_id) { + case PROP_DEVICE_NAME: + name = ""; + if (device) + name = alcGetString (device, ALC_DEVICE_SPECIFIER); + /* fall-through */ + case PROP_DEVICE: + g_value_set_string (value, name); + break; + case PROP_DEVICE_HDL: + if (!device) + device = sink->custom_dev; + g_value_set_pointer (value, device); + break; + case PROP_CONTEXT_HDL: + if (!context) + context = sink->custom_ctx; + g_value_set_pointer (value, context); + break; + case PROP_SOURCE_ID: + if (!sourceID) + sourceID = sink->custom_sID; + g_value_set_uint (value, sourceID); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstCaps * +gst_openal_helper_probe_caps (ALCcontext * ctx) +{ + static const struct + { + gint count; + GstAudioChannelPosition pos[8]; + } chans[] = { + { + 1, { + GST_AUDIO_CHANNEL_POSITION_FRONT_MONO}}, { + 2, { + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}}, { + 4, { + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}}, { + 6, { + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_LFE, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}}, { + 7, { + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_LFE, + GST_AUDIO_CHANNEL_POSITION_REAR_CENTER, + GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, + GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}}, { + 8, { + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_LFE, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, + GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}},}; + GstStructure *structure; + ALCcontext *old; + GstCaps *caps; + + old = pushContext (ctx); + + caps = gst_caps_new_empty (); + if (alIsExtensionPresent ("AL_EXT_MCFORMATS")) { + const char *fmt32[] = { + "AL_FORMAT_MONO_FLOAT32", "AL_FORMAT_STEREO_FLOAT32", + "AL_FORMAT_QUAD32", "AL_FORMAT_51CHN32", "AL_FORMAT_61CHN32", + "AL_FORMAT_71CHN32", NULL + }, *fmt16[] = { + "AL_FORMAT_MONO16", "AL_FORMAT_STEREO16", "AL_FORMAT_QUAD16", + "AL_FORMAT_51CHN16", "AL_FORMAT_61CHN16", "AL_FORMAT_71CHN16", NULL}, + *fmt8[] = { + "AL_FORMAT_MONO8", "AL_FORMAT_STEREO8", "AL_FORMAT_QUAD8", + "AL_FORMAT_51CHN8", "AL_FORMAT_61CHN8", "AL_FORMAT_71CHN8", NULL}; + int i; + + if (alIsExtensionPresent ("AL_EXT_FLOAT32")) { + for (i = 0; fmt32[i]; i++) { + ALenum val = alGetEnumValue (fmt32[i]); + if (checkALError () != AL_NO_ERROR || val == 0 || val == -1) + continue; + + structure = gst_structure_new ("audio/x-raw-float", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, + OPENAL_MAX_RATE, "width", G_TYPE_INT, 32, NULL); + gst_structure_set (structure, "channels", G_TYPE_INT, + chans[i].count, NULL); + if (chans[i].count > 2) + gst_audio_set_channel_positions (structure, chans[i].pos); + gst_caps_append_structure (caps, structure); + } + } + for (i = 0; fmt16[i]; i++) { + ALenum val = alGetEnumValue (fmt16[i]); + if (checkALError () != AL_NO_ERROR || val == 0 || val == -1) + continue; + + structure = gst_structure_new ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, "signed", G_TYPE_BOOLEAN, TRUE, NULL); + gst_structure_set (structure, "channels", G_TYPE_INT, + chans[i].count, NULL); + if (chans[i].count > 2) + gst_audio_set_channel_positions (structure, chans[i].pos); + gst_caps_append_structure (caps, structure); + } + for (i = 0; fmt8[i]; i++) { + ALenum val = alGetEnumValue (fmt8[i]); + if (checkALError () != AL_NO_ERROR || val == 0 || val == -1) + continue; + + structure = gst_structure_new ("audio/x-raw-int", + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "width", G_TYPE_INT, 8, + "depth", G_TYPE_INT, 8, "signed", G_TYPE_BOOLEAN, FALSE, NULL); + gst_structure_set (structure, "channels", G_TYPE_INT, + chans[i].count, NULL); + if (chans[i].count > 2) + gst_audio_set_channel_positions (structure, chans[i].pos); + gst_caps_append_structure (caps, structure); + } + } else { + if (alIsExtensionPresent ("AL_EXT_FLOAT32")) { + structure = gst_structure_new ("audio/x-raw-float", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "width", G_TYPE_INT, 32, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + gst_caps_append_structure (caps, structure); + } + + structure = gst_structure_new ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, + "signed", G_TYPE_BOOLEAN, TRUE, + "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + gst_caps_append_structure (caps, structure); + + structure = gst_structure_new ("audio/x-raw-int", + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "width", G_TYPE_INT, 8, + "depth", G_TYPE_INT, 8, + "signed", G_TYPE_BOOLEAN, FALSE, + "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + gst_caps_append_structure (caps, structure); + } + + if (alIsExtensionPresent ("AL_EXT_MULAW_MCFORMATS")) { + const char *fmtmulaw[] = { + "AL_FORMAT_MONO_MULAW", "AL_FORMAT_STEREO_MULAW", + "AL_FORMAT_QUAD_MULAW", "AL_FORMAT_51CHN_MULAW", + "AL_FORMAT_61CHN_MULAW", "AL_FORMAT_71CHN_MULAW", NULL + }; + int i; + + for (i = 0; fmtmulaw[i]; i++) { + ALenum val = alGetEnumValue (fmtmulaw[i]); + if (checkALError () != AL_NO_ERROR || val == 0 || val == -1) + continue; + + structure = gst_structure_new ("audio/x-mulaw", + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, NULL); + gst_structure_set (structure, "channels", G_TYPE_INT, + chans[i].count, NULL); + if (chans[i].count > 2) + gst_audio_set_channel_positions (structure, chans[i].pos); + gst_caps_append_structure (caps, structure); + } + } else if (alIsExtensionPresent ("AL_EXT_MULAW")) { + structure = gst_structure_new ("audio/x-mulaw", + "rate", GST_TYPE_INT_RANGE, OPENAL_MIN_RATE, OPENAL_MAX_RATE, + "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + gst_caps_append_structure (caps, structure); + } + + popContext (old, ctx); + return caps; +} + +static GstCaps * +gst_openal_sink_getcaps (GstBaseSink * bsink) +{ + GstOpenALSink *sink = GST_OPENAL_SINK (bsink); + GstCaps *caps; + + if (sink->device == NULL) { + GstPad *pad = GST_BASE_SINK_PAD (bsink); + caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + } else if (sink->probed_caps) + caps = gst_caps_copy (sink->probed_caps); + else { + if (sink->context) + caps = gst_openal_helper_probe_caps (sink->context); + else if (sink->custom_ctx) + caps = gst_openal_helper_probe_caps (sink->custom_ctx); + else { + ALCcontext *ctx = alcCreateContext (sink->device, NULL); + if (ctx) { + caps = gst_openal_helper_probe_caps (ctx); + alcDestroyContext (ctx); + } else { + GST_ELEMENT_WARNING (sink, RESOURCE, FAILED, + ("Could not create temporary context."), + GST_ALC_ERROR (sink->device)); + caps = NULL; + } + } + + if (caps && !gst_caps_is_empty (caps)) + sink->probed_caps = gst_caps_copy (caps); + } + + return caps; +} + +static gboolean +gst_openal_sink_open (GstAudioSink * asink) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + + if (openal->custom_dev) { + ALCint val = -1; + alcGetIntegerv (openal->custom_dev, ALC_ATTRIBUTES_SIZE, 1, &val); + if (val > 0) { + if (!openal->custom_ctx || + alcGetContextsDevice (openal->custom_ctx) == openal->custom_dev) + openal->device = openal->custom_dev; + } + } else if (openal->custom_ctx) + openal->device = alcGetContextsDevice (openal->custom_ctx); + else + openal->device = alcOpenDevice (openal->devname); + if (!openal->device) { + GST_ELEMENT_ERROR (openal, RESOURCE, OPEN_WRITE, + ("Could not open audio device for playback."), + GST_ALC_ERROR (openal->device)); + return FALSE; + } + + return TRUE; +} + +static gboolean +gst_openal_sink_close (GstAudioSink * asink) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + + if (!openal->custom_dev && !openal->custom_ctx) { + if (alcCloseDevice (openal->device) == ALC_FALSE) { + GST_ELEMENT_ERROR (openal, RESOURCE, CLOSE, + ("Could not close audio device."), GST_ALC_ERROR (openal->device)); + return FALSE; + } + } + openal->device = NULL; + + if (openal->probed_caps) + gst_caps_unref (openal->probed_caps); + openal->probed_caps = NULL; + + return TRUE; +} + +static void +gst_openal_sink_parse_spec (GstOpenALSink * openal, + const GstRingBufferSpec * spec) +{ + ALuint format = AL_NONE; + + GST_DEBUG_OBJECT (openal, "Looking up format for type %d, gst-format %d, " + "and %d channels", spec->type, spec->format, spec->channels); + + /* Don't need to verify supported formats, since the probed caps will only + * report what was detected and we shouldn't get anything different */ + switch (spec->type) { + case GST_BUFTYPE_LINEAR: + switch (spec->format) { + case GST_U8: + if (spec->channels == 1) + format = AL_FORMAT_MONO8; + if (spec->channels == 2) + format = AL_FORMAT_STEREO8; + if (spec->channels == 4) + format = AL_FORMAT_QUAD8; + if (spec->channels == 6) + format = AL_FORMAT_51CHN8; + if (spec->channels == 7) + format = AL_FORMAT_61CHN8; + if (spec->channels == 8) + format = AL_FORMAT_71CHN8; + break; + + case GST_S16_NE: + if (spec->channels == 1) + format = AL_FORMAT_MONO16; + if (spec->channels == 2) + format = AL_FORMAT_STEREO16; + if (spec->channels == 4) + format = AL_FORMAT_QUAD16; + if (spec->channels == 6) + format = AL_FORMAT_51CHN16; + if (spec->channels == 7) + format = AL_FORMAT_61CHN16; + if (spec->channels == 8) + format = AL_FORMAT_71CHN16; + break; + + default: + break; + } + break; + + case GST_BUFTYPE_FLOAT: + switch (spec->format) { + case GST_FLOAT32_NE: + if (spec->channels == 1) + format = AL_FORMAT_MONO_FLOAT32; + if (spec->channels == 2) + format = AL_FORMAT_STEREO_FLOAT32; + if (spec->channels == 4) + format = AL_FORMAT_QUAD32; + if (spec->channels == 6) + format = AL_FORMAT_51CHN32; + if (spec->channels == 7) + format = AL_FORMAT_61CHN32; + if (spec->channels == 8) + format = AL_FORMAT_71CHN32; + break; + + default: + break; + } + break; + + case GST_BUFTYPE_MU_LAW: + switch (spec->format) { + case GST_MU_LAW: + if (spec->channels == 1) + format = AL_FORMAT_MONO_MULAW; + if (spec->channels == 2) + format = AL_FORMAT_STEREO_MULAW; + if (spec->channels == 4) + format = AL_FORMAT_QUAD_MULAW; + if (spec->channels == 6) + format = AL_FORMAT_51CHN_MULAW; + if (spec->channels == 7) + format = AL_FORMAT_61CHN_MULAW; + if (spec->channels == 8) + format = AL_FORMAT_71CHN_MULAW; + break; + + default: + break; + } + break; + + default: + break; + } + + openal->bytes_per_sample = spec->bytes_per_sample; + openal->srate = spec->rate; + openal->bID_count = spec->segtotal; + openal->bID_length = spec->segsize; + openal->format = format; +} + +static gboolean +gst_openal_sink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + ALCcontext *ctx, *old; + + if (openal->context && !gst_openal_sink_unprepare (asink)) + return FALSE; + + if (openal->custom_ctx) + ctx = openal->custom_ctx; + else { + ALCint attribs[3] = { 0, 0, 0 }; + + /* Don't try to change the playback frequency of an app's device */ + if (!openal->custom_dev) { + attribs[0] = ALC_FREQUENCY; + attribs[1] = spec->rate; + attribs[2] = 0; + } + + ctx = alcCreateContext (openal->device, attribs); + if (!ctx) { + GST_ELEMENT_ERROR (openal, RESOURCE, FAILED, + ("Unable to prepare device."), GST_ALC_ERROR (openal->device)); + return FALSE; + } + } + + old = pushContext (ctx); + + if (openal->custom_sID) { + if (!openal->custom_ctx || !alIsSource (openal->custom_sID)) { + GST_ELEMENT_ERROR (openal, RESOURCE, NOT_FOUND, (NULL), + ("Invalid source ID specified for context")); + goto fail; + } + openal->sID = openal->custom_sID; + } else { + ALuint sourceID; + + alGenSources (1, &sourceID); + if (checkALError () != AL_NO_ERROR) { + GST_ELEMENT_ERROR (openal, RESOURCE, NO_SPACE_LEFT, (NULL), + ("Unable to generate source")); + goto fail; + } + openal->sID = sourceID; + } + + gst_openal_sink_parse_spec (openal, spec); + if (openal->format == AL_NONE) { + GST_ELEMENT_ERROR (openal, RESOURCE, SETTINGS, (NULL), + ("Unable to get type %d, format %d, and %d channels", + spec->type, spec->format, spec->channels)); + goto fail; + } + + openal->bIDs = g_malloc (openal->bID_count * sizeof (*openal->bIDs)); + if (!openal->bIDs) { + GST_ELEMENT_ERROR (openal, RESOURCE, FAILED, ("Out of memory."), + ("Unable to allocate buffer IDs")); + goto fail; + } + + alGenBuffers (openal->bID_count, openal->bIDs); + if (checkALError () != AL_NO_ERROR) { + GST_ELEMENT_ERROR (openal, RESOURCE, NO_SPACE_LEFT, (NULL), + ("Unable to generate %d buffers", openal->bID_count)); + goto fail; + } + openal->bID_idx = 0; + + popContext (old, ctx); + openal->context = ctx; + return TRUE; + +fail: + if (!openal->custom_sID && openal->sID) + alDeleteSources (1, &openal->sID); + openal->sID = 0; + + g_free (openal->bIDs); + openal->bIDs = NULL; + openal->bID_count = 0; + openal->bID_length = 0; + + popContext (old, ctx); + if (!openal->custom_ctx) + alcDestroyContext (ctx); + return FALSE; +} + +static gboolean +gst_openal_sink_unprepare (GstAudioSink * asink) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + ALCcontext *old; + + if (!openal->context) + return TRUE; + + old = pushContext (openal->context); + + alSourceStop (openal->sID); + alSourcei (openal->sID, AL_BUFFER, 0); + + if (!openal->custom_sID) + alDeleteSources (1, &openal->sID); + openal->sID = 0; + + alDeleteBuffers (openal->bID_count, openal->bIDs); + g_free (openal->bIDs); + openal->bIDs = NULL; + openal->bID_idx = 0; + openal->bID_count = 0; + openal->bID_length = 0; + + checkALError (); + popContext (old, openal->context); + if (!openal->custom_ctx) + alcDestroyContext (openal->context); + openal->context = NULL; + + return TRUE; +} + +static guint +gst_openal_sink_write (GstAudioSink * asink, gpointer data, guint length) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + ALint processed, queued, state; + ALCcontext *old; + gulong rest_us; + + g_assert (length == openal->bID_length); + + old = pushContext (openal->context); + + rest_us = (guint64) (openal->bID_length / openal->bytes_per_sample) * + G_USEC_PER_SEC / openal->srate / 2; + do { + alGetSourcei (openal->sID, AL_SOURCE_STATE, &state); + alGetSourcei (openal->sID, AL_BUFFERS_QUEUED, &queued); + alGetSourcei (openal->sID, AL_BUFFERS_PROCESSED, &processed); + if (checkALError () != AL_NO_ERROR) { + GST_ELEMENT_ERROR (openal, RESOURCE, WRITE, (NULL), + ("Source state error detected")); + length = 0; + goto out_nolock; + } + + if (processed > 0 || queued < openal->bID_count) + break; + if (state != AL_PLAYING) + alSourcePlay (openal->sID); + g_usleep (rest_us); + } while (1); + + GST_OPENAL_SINK_LOCK (openal); + if (openal->write_reset != AL_FALSE) { + openal->write_reset = AL_FALSE; + length = 0; + goto out; + } + + queued -= processed; + while (processed-- > 0) { + ALuint bid; + alSourceUnqueueBuffers (openal->sID, 1, &bid); + } + if (state == AL_STOPPED) { + /* "Restore" from underruns (not actually needed, but it keeps delay + * calculations correct while rebuffering) */ + alSourceRewind (openal->sID); + } + + alBufferData (openal->bIDs[openal->bID_idx], openal->format, + data, openal->bID_length, openal->srate); + alSourceQueueBuffers (openal->sID, 1, &openal->bIDs[openal->bID_idx]); + openal->bID_idx = (openal->bID_idx + 1) % openal->bID_count; + queued++; + + if (state != AL_PLAYING && queued == openal->bID_count) + alSourcePlay (openal->sID); + + if (checkALError () != ALC_NO_ERROR) { + GST_ELEMENT_ERROR (openal, RESOURCE, WRITE, (NULL), + ("Source queue error detected")); + goto out; + } + +out: + GST_OPENAL_SINK_UNLOCK (openal); +out_nolock: + popContext (old, openal->context); + return length; +} + +static guint +gst_openal_sink_delay (GstAudioSink * asink) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + ALint queued, state, offset, delay; + ALCcontext *old; + + if (!openal->context) + return 0; + + GST_OPENAL_SINK_LOCK (openal); + old = pushContext (openal->context); + + delay = 0; + alGetSourcei (openal->sID, AL_BUFFERS_QUEUED, &queued); + /* Order here is important. If the offset is queried after the state and an + * underrun occurs in between the two calls, it can end up with a 0 offset + * in a playing state, incorrectly reporting a len*queued/bps delay. */ + alGetSourcei (openal->sID, AL_BYTE_OFFSET, &offset); + alGetSourcei (openal->sID, AL_SOURCE_STATE, &state); + + /* Note: state=stopped is an underrun, meaning all buffers are processed + * and there's no delay when writing the next buffer. Pre-buffering is + * state=initial, which will introduce a delay while writing. */ + if (checkALError () == AL_NO_ERROR && state != AL_STOPPED) + delay = ((queued * openal->bID_length) - offset) / openal->bytes_per_sample; + + popContext (old, openal->context); + GST_OPENAL_SINK_UNLOCK (openal); + + return delay; +} + +static void +gst_openal_sink_reset (GstAudioSink * asink) +{ + GstOpenALSink *openal = GST_OPENAL_SINK (asink); + ALCcontext *old; + + GST_OPENAL_SINK_LOCK (openal); + old = pushContext (openal->context); + + openal->write_reset = AL_TRUE; + alSourceStop (openal->sID); + alSourceRewind (openal->sID); + alSourcei (openal->sID, AL_BUFFER, 0); + checkALError (); + + popContext (old, openal->context); + GST_OPENAL_SINK_UNLOCK (openal); +} diff --git a/ext/openal/gstopenalsink.h b/ext/openal/gstopenalsink.h new file mode 100644 index 0000000..f83b1cf --- /dev/null +++ b/ext/openal/gstopenalsink.h @@ -0,0 +1,123 @@ +/* + * GStreamer + * Copyright (C) 2005 Thomas Vander Stichele + * Copyright (C) 2005 Ronald S. Bultje + * Copyright (C) 2009-2010 Chris Robinson + * + * 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_OPENALSINK_H__ +#define __GST_OPENALSINK_H__ + +#include +#include +#include + +#ifdef _WIN32 +#include +#include +#include +#elif defined(__APPLE__) +#include +#include +#include +#else +#include +#include +#include +#endif + +G_BEGIN_DECLS + +#define GST_TYPE_OPENAL_SINK (gst_openal_sink_get_type()) +#define GST_OPENAL_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPENAL_SINK,GstOpenALSink)) +#define GST_OPENAL_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPENAL_SINK,GstOpenALSinkClass)) +#define GST_IS_OPENAL_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPENAL_SINK)) +#define GST_IS_OPENAL_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPENAL_SINK)) + +#if 1 +#define GST_ALC_ERROR(Device) ("ALC error: %s", alcGetString((Device), alcGetError((Device)))) +#else +#define GST_ALC_ERROR(Device) ("ALC error: 0x%x", alcGetError((Device))) +#endif + +typedef struct _GstOpenALSink GstOpenALSink; +typedef struct _GstOpenALSinkClass GstOpenALSinkClass; + +#define GST_OPENAL_SINK_CAST(obj) ((GstOpenALSink*)obj) +#define GST_OPENAL_SINK_GET_LOCK(obj) (GST_OPENAL_SINK_CAST(obj)->openal_lock) +#define GST_OPENAL_SINK_LOCK(obj) (g_mutex_lock(GST_OPENAL_SINK_GET_LOCK(obj))) +#define GST_OPENAL_SINK_UNLOCK(obj) (g_mutex_unlock(GST_OPENAL_SINK_GET_LOCK(obj))) + +struct _GstOpenALSink { + GstAudioSink sink; + + gchar *devname; + + /* When set, we don't own device */ + ALCdevice *custom_dev; + /* When set, we don't own device or context */ + ALCcontext *custom_ctx; + /* When set, we don't own sID */ + ALuint custom_sID; + + ALCdevice *device; + ALCcontext *context; + ALuint sID; + + ALuint bID_idx; + ALuint bID_count; + ALuint *bIDs; + ALuint bID_length; + + ALenum format; + ALuint srate; + ALuint bytes_per_sample; + + ALboolean write_reset; + + GstCaps *probed_caps; + + GMutex *openal_lock; +}; + +struct _GstOpenALSinkClass { + GstAudioSinkClass parent_class; +}; + +GType gst_openal_sink_get_type(void); + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +#define GST_S16_NE GST_S16_LE +#define GST_FLOAT32_NE GST_FLOAT32_LE +#define GST_FLOAT64_NE GST_FLOAT64_LE +#else +#define GST_S16_NE GST_S16_BE +#define GST_FLOAT32_NE GST_FLOAT32_BE +#define GST_FLOAT64_NE GST_FLOAT64_BE +#endif + +#define OPENAL_MIN_RATE 8000 +#define OPENAL_MAX_RATE 192000 + +G_END_DECLS + +#endif /* __GST_OPENALSINK_H__ */ diff --git a/ext/openal/gstopenalsrc.c b/ext/openal/gstopenalsrc.c new file mode 100644 index 0000000..1837913 --- /dev/null +++ b/ext/openal/gstopenalsrc.c @@ -0,0 +1,357 @@ +/* + * GStreamer + * Copyright (C) 2005 Thomas Vander Stichele + * Copyright (C) 2005 Ronald S. Bultje + * Copyright (C) 2008 Victor Lin + * + * 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-openalsrc + * @short_description: record sound from your sound card using OpenAL + * + * + * + * This element lets you record sound using the OpenAL + * + * Example pipelines + * + * + * gst-launch -v openalsrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=mymusic.ogg + * + * will record sound from your sound card using OpenAL and encode it to an Ogg/Vorbis file + * + * + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include "gstopenalsrc.h" + +GST_DEBUG_CATEGORY_STATIC (openalsrc_debug); + +#define GST_CAT_DEFAULT openalsrc_debug + +#define DEFAULT_DEVICE NULL +#define DEFAULT_DEVICE_NAME NULL + +/** + Filter signals and args +**/ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + + +/** + Properties +**/ +enum +{ + PROP_0, + PROP_DEVICE, + PROP_DEVICE_NAME +}; + +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) [ 1, MAX ], " "channels = (int) [ 1, 2 ]; " + "audio/x-raw-int, " + "signed = (boolean) TRUE, " + "width = (int) 8, " + "depth = (int) 8, " + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ]") + ); + +GST_BOILERPLATE (GstOpenalSrc, gst_openal_src, GstAudioSrc, GST_TYPE_AUDIO_SRC); + +static void gst_openal_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_openal_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static gboolean gst_openal_src_open (GstAudioSrc * src); +static gboolean +gst_openal_src_prepare (GstAudioSrc * src, GstRingBufferSpec * spec); +static gboolean gst_openal_src_unprepare (GstAudioSrc * src); +static gboolean gst_openal_src_close (GstAudioSrc * src); +static guint +gst_openal_src_read (GstAudioSrc * src, gpointer data, guint length); +static guint gst_openal_src_delay (GstAudioSrc * src); +static void gst_openal_src_reset (GstAudioSrc * src); + +static void gst_openal_src_finalize (GObject * object); + +static void +gst_openal_src_base_init (gpointer gclass) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_set_details_simple (element_class, "OpenAL src", + "Source/Audio", + "OpenAL source capture audio from device", + "Victor Lin "); + + gst_element_class_add_static_pad_template (element_class, &src_factory); +} + +static void +gst_openal_src_class_init (GstOpenalSrcClass * klass) +{ + GObjectClass *gobject_class; + GstAudioSrcClass *gstaudio_src_class; + + gobject_class = G_OBJECT_CLASS (klass); + gstaudio_src_class = GST_AUDIO_SRC_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (openalsrc_debug, "openalsrc", + 0, "OpenAL source capture audio from device"); + + gobject_class->set_property = gst_openal_src_set_property; + gobject_class->get_property = gst_openal_src_get_property; + gobject_class->finalize = gst_openal_src_finalize; + + gstaudio_src_class->open = GST_DEBUG_FUNCPTR (gst_openal_src_open); + gstaudio_src_class->prepare = GST_DEBUG_FUNCPTR (gst_openal_src_prepare); + gstaudio_src_class->unprepare = GST_DEBUG_FUNCPTR (gst_openal_src_unprepare); + gstaudio_src_class->close = GST_DEBUG_FUNCPTR (gst_openal_src_close); + gstaudio_src_class->read = GST_DEBUG_FUNCPTR (gst_openal_src_read); + gstaudio_src_class->delay = GST_DEBUG_FUNCPTR (gst_openal_src_delay); + gstaudio_src_class->reset = GST_DEBUG_FUNCPTR (gst_openal_src_reset); + + g_object_class_install_property (gobject_class, + PROP_DEVICE, + g_param_spec_string ("device", + "Device", + "Specific capture device to open, NULL indicate default device", + DEFAULT_DEVICE, G_PARAM_READWRITE) + ); + + g_object_class_install_property (gobject_class, + PROP_DEVICE_NAME, + g_param_spec_string ("device-name", + "Device name", + "Readable name of device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE) + ); +} + +static void +gst_openal_src_init (GstOpenalSrc * osrc, GstOpenalSrcClass * gclass) +{ + osrc->deviceName = g_strdup (DEFAULT_DEVICE_NAME); + osrc->device = DEFAULT_DEVICE; + osrc->deviceHandle = NULL; +} + +static void +gst_openal_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstOpenalSrc *osrc = GST_OPENAL_SRC (object); + + switch (prop_id) { + case PROP_DEVICE: + osrc->device = g_value_dup_string (value); + break; + case PROP_DEVICE_NAME: + osrc->deviceName = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_openal_src_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstOpenalSrc *osrc = GST_OPENAL_SRC (object); + + switch (prop_id) { + case PROP_DEVICE: + g_value_set_string (value, osrc->device); + break; + case PROP_DEVICE_NAME: + g_value_set_string (value, osrc->deviceName); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_openal_src_open (GstAudioSrc * asrc) +{ + /* We don't do anything here */ + return TRUE; +} + +static gboolean +gst_openal_src_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec) +{ + + GstOpenalSrc *osrc = GST_OPENAL_SRC (asrc); + ALenum format; + guint64 bufferSize; + + switch (spec->width) { + case 8: + format = AL_FORMAT_STEREO8; + break; + case 16: + format = AL_FORMAT_STEREO16; + break; + default: + g_assert_not_reached (); + } + + bufferSize = + spec->buffer_time * spec->rate * spec->bytes_per_sample / 1000000; + + GST_INFO_OBJECT (osrc, "Open device : %s", osrc->deviceName); + osrc->deviceHandle = + alcCaptureOpenDevice (osrc->device, spec->rate, format, bufferSize); + + if (!osrc->deviceHandle) { + GST_ELEMENT_ERROR (osrc, + RESOURCE, + FAILED, + ("Can't open device \"%s\"", osrc->device), + ("Can't open device \"%s\"", osrc->device) + ); + return FALSE; + } + + osrc->deviceName = + g_strdup (alcGetString (osrc->deviceHandle, ALC_DEVICE_SPECIFIER)); + osrc->bytes_per_sample = spec->bytes_per_sample; + + GST_INFO_OBJECT (osrc, "Start capture"); + alcCaptureStart (osrc->deviceHandle); + + return TRUE; +} + +static gboolean +gst_openal_src_unprepare (GstAudioSrc * asrc) +{ + + GstOpenalSrc *osrc = GST_OPENAL_SRC (asrc); + + GST_INFO_OBJECT (osrc, "Close device : %s", osrc->deviceName); + if (osrc->deviceHandle) { + alcCaptureStop (osrc->deviceHandle); + alcCaptureCloseDevice (osrc->deviceHandle); + } + + return TRUE; +} + +static gboolean +gst_openal_src_close (GstAudioSrc * asrc) +{ + /* We don't do anything here */ + return TRUE; +} + +static guint +gst_openal_src_read (GstAudioSrc * asrc, gpointer data, guint length) +{ + GstOpenalSrc *osrc = GST_OPENAL_SRC (asrc); + gint samples; + + alcGetIntegerv (osrc->deviceHandle, ALC_CAPTURE_SAMPLES, sizeof (samples), + &samples); + + if (samples * osrc->bytes_per_sample > length) { + samples = length / osrc->bytes_per_sample; + } + + if (samples) { + GST_DEBUG_OBJECT (osrc, "Read samples : %d", samples); + alcCaptureSamples (osrc->deviceHandle, data, samples); + } + + return samples * osrc->bytes_per_sample; +} + +static guint +gst_openal_src_delay (GstAudioSrc * asrc) +{ + GstOpenalSrc *osrc = GST_OPENAL_SRC (asrc); + gint samples; + + alcGetIntegerv (osrc->deviceHandle, ALC_CAPTURE_SAMPLES, sizeof (samples), + &samples); + + return samples; +} + +static void +gst_openal_src_reset (GstAudioSrc * asrc) +{ + /* We don't do anything here */ +} + +static void +gst_openal_src_finalize (GObject * object) +{ + GstOpenalSrc *osrc = GST_OPENAL_SRC (object); + + g_free (osrc->deviceName); + g_free (osrc->device); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} diff --git a/ext/openal/gstopenalsrc.h b/ext/openal/gstopenalsrc.h new file mode 100644 index 0000000..d8cde4d --- /dev/null +++ b/ext/openal/gstopenalsrc.h @@ -0,0 +1,105 @@ +/* + * GStreamer + * Copyright (C) 2005 Thomas Vander Stichele + * Copyright (C) 2005 Ronald S. Bultje + * Copyright (C) 2008 Victor Lin + * + * 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_OPENAL_SRC_H__ +#define __GST_OPENAL_SRC_H__ + +#include +#include + +#ifdef _WIN32 +#include +#include +#include +#elif defined(__APPLE__) +#include +#include +#include +#else +#include +#include +#include +#endif + +G_BEGIN_DECLS + +#define GST_TYPE_OPENAL_SRC \ + (gst_openal_src_get_type()) +#define GST_OPENAL_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPENAL_SRC,GstOpenalSrc)) +#define GST_OPENAL_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPENAL_SRC,GstOpenalSrcClass)) +#define GST_IS_OPENAL_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPENAL_SRC)) +#define GST_IS_OPENAL_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPENAL_SRC)) + +typedef struct _GstOpenalSrc GstOpenalSrc; +typedef struct _GstOpenalSrcClass GstOpenalSrcClass; + +struct _GstOpenalSrc { + GstAudioSrc element; + GstPad *srcpad; + gboolean silent; + + /* readable name of device */ + gchar *deviceName; + /* name of device to open, default is a NULL pointer to get default device */ + gchar *device; + /* OpenAL device handle */ + ALCdevice *deviceHandle; + + guint bytes_per_sample; +}; + +struct _GstOpenalSrcClass { + GstAudioSrcClass parent_class; +}; + +GType gst_openal_src_get_type (void); + +G_END_DECLS + +#endif /* __GST_OPENAL_SRC_H__ */ diff --git a/ext/opencv/Makefile.am b/ext/opencv/Makefile.am index d5a70ed..d466bbb 100644 --- a/ext/opencv/Makefile.am +++ b/ext/opencv/Makefile.am @@ -16,7 +16,12 @@ libgstopencv_la_SOURCES = gstopencv.c \ gstfacedetect.c \ gstpyramidsegment.c \ gsttemplatematch.c \ - gsttextoverlay.c + gsttextoverlay.c \ + gstmotioncells.c \ + motioncells_wrapper.cpp \ + MotionCells.cpp + +libgstopencv_la_CXXFLAGS = $(GST_CXXFLAGS) $(OPENCV_CFLAGS) # flags used to compile this facedetect # add other _CFLAGS and _LIBS as needed @@ -31,6 +36,7 @@ libgstopencv_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(OPENCV_LIBS) \ $(GSTPB_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) libgstopencv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstopencv_la_LIBTOOLFLAGS = --tag=disable-static # headers we need but don't want installed noinst_HEADERS = gstopencvvideofilter.h gstopencvutils.h \ @@ -46,4 +52,7 @@ noinst_HEADERS = gstopencvvideofilter.h gstopencvutils.h \ gstfacedetect.h \ gstpyramidsegment.h \ gsttemplatematch.h \ - gsttextoverlay.h + gsttextoverlay.h \ + gstmotioncells.h \ + motioncells_wrapper.h \ + MotionCells.h diff --git a/ext/opencv/Makefile.in b/ext/opencv/Makefile.in index d9fd38b..9d0e7a3 100644 --- a/ext/opencv/Makefile.in +++ b/ext/opencv/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -118,15 +125,18 @@ am_libgstopencv_la_OBJECTS = libgstopencv_la-gstopencv.lo \ libgstopencv_la-gstfacedetect.lo \ libgstopencv_la-gstpyramidsegment.lo \ libgstopencv_la-gsttemplatematch.lo \ - libgstopencv_la-gsttextoverlay.lo + libgstopencv_la-gsttextoverlay.lo \ + libgstopencv_la-gstmotioncells.lo \ + libgstopencv_la-motioncells_wrapper.lo \ + libgstopencv_la-MotionCells.lo libgstopencv_la_OBJECTS = $(am_libgstopencv_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -libgstopencv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(libgstopencv_la_CFLAGS) $(CFLAGS) $(libgstopencv_la_LDFLAGS) \ - $(LDFLAGS) -o $@ +libgstopencv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) \ + $(libgstopencv_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -137,21 +147,37 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +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_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +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_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstopencv_la_SOURCES) DIST_SOURCES = $(libgstopencv_la_SOURCES) @@ -163,7 +189,6 @@ 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@ @@ -181,7 +206,6 @@ 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@ @@ -216,6 +240,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -255,6 +280,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -272,6 +298,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -280,13 +307,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -311,13 +341,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -365,6 +396,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -396,8 +428,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -421,6 +457,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -445,10 +483,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -460,6 +502,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -484,6 +530,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -519,7 +566,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -558,8 +604,12 @@ libgstopencv_la_SOURCES = gstopencv.c \ gstfacedetect.c \ gstpyramidsegment.c \ gsttemplatematch.c \ - gsttextoverlay.c + gsttextoverlay.c \ + gstmotioncells.c \ + motioncells_wrapper.cpp \ + MotionCells.cpp +libgstopencv_la_CXXFLAGS = $(GST_CXXFLAGS) $(OPENCV_CFLAGS) # flags used to compile this facedetect # add other _CFLAGS and _LIBS as needed @@ -574,6 +624,7 @@ libgstopencv_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(OPENCV_LIBS) \ $(GSTPB_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) libgstopencv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstopencv_la_LIBTOOLFLAGS = --tag=disable-static # headers we need but don't want installed noinst_HEADERS = gstopencvvideofilter.h gstopencvutils.h \ @@ -589,12 +640,15 @@ noinst_HEADERS = gstopencvvideofilter.h gstopencvutils.h \ gstfacedetect.h \ gstpyramidsegment.h \ gsttemplatematch.h \ - gsttextoverlay.h + gsttextoverlay.h \ + gstmotioncells.h \ + motioncells_wrapper.h \ + MotionCells.h all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .cpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -656,8 +710,8 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstopencv.la: $(libgstopencv_la_OBJECTS) $(libgstopencv_la_DEPENDENCIES) - $(AM_V_CCLD)$(libgstopencv_la_LINK) -rpath $(plugindir) $(libgstopencv_la_OBJECTS) $(libgstopencv_la_LIBADD) $(LIBS) +libgstopencv.la: $(libgstopencv_la_OBJECTS) $(libgstopencv_la_DEPENDENCIES) $(EXTRA_libgstopencv_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstopencv_la_LINK) -rpath $(plugindir) $(libgstopencv_la_OBJECTS) $(libgstopencv_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -665,6 +719,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-MotionCells.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstcvdilate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstcvdilateerode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstcvequalizehist.Plo@am__quote@ @@ -675,164 +730,189 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstedgedetect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstfaceblur.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstfacedetect.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstmotioncells.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstopencv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstopencvutils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gstpyramidsegment.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gsttemplatematch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-gsttextoverlay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopencv_la-motioncells_wrapper.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstopencv_la-gstopencv.lo: gstopencv.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencv.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencv.Tpo -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencv.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencv.Tpo -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencv.Tpo $(DEPDIR)/libgstopencv_la-gstopencv.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstopencv.c' object='libgstopencv_la-gstopencv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopencv.c' object='libgstopencv_la-gstopencv.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c libgstopencv_la-gstopencvvideofilter.lo: gstopencvvideofilter.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencvvideofilter.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Tpo -c -o libgstopencv_la-gstopencvvideofilter.lo `test -f 'gstopencvvideofilter.c' || echo '$(srcdir)/'`gstopencvvideofilter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencvvideofilter.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Tpo -c -o libgstopencv_la-gstopencvvideofilter.lo `test -f 'gstopencvvideofilter.c' || echo '$(srcdir)/'`gstopencvvideofilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Tpo $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstopencvvideofilter.c' object='libgstopencv_la-gstopencvvideofilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopencvvideofilter.c' object='libgstopencv_la-gstopencvvideofilter.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencvvideofilter.lo `test -f 'gstopencvvideofilter.c' || echo '$(srcdir)/'`gstopencvvideofilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencvvideofilter.lo `test -f 'gstopencvvideofilter.c' || echo '$(srcdir)/'`gstopencvvideofilter.c libgstopencv_la-gstopencvutils.lo: gstopencvutils.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencvutils.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencvutils.Tpo -c -o libgstopencv_la-gstopencvutils.lo `test -f 'gstopencvutils.c' || echo '$(srcdir)/'`gstopencvutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencvutils.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencvutils.Tpo -c -o libgstopencv_la-gstopencvutils.lo `test -f 'gstopencvutils.c' || echo '$(srcdir)/'`gstopencvutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencvutils.Tpo $(DEPDIR)/libgstopencv_la-gstopencvutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstopencvutils.c' object='libgstopencv_la-gstopencvutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopencvutils.c' object='libgstopencv_la-gstopencvutils.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencvutils.lo `test -f 'gstopencvutils.c' || echo '$(srcdir)/'`gstopencvutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencvutils.lo `test -f 'gstopencvutils.c' || echo '$(srcdir)/'`gstopencvutils.c libgstopencv_la-gstcvdilate.lo: gstcvdilate.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvdilate.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvdilate.Tpo -c -o libgstopencv_la-gstcvdilate.lo `test -f 'gstcvdilate.c' || echo '$(srcdir)/'`gstcvdilate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvdilate.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvdilate.Tpo -c -o libgstopencv_la-gstcvdilate.lo `test -f 'gstcvdilate.c' || echo '$(srcdir)/'`gstcvdilate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvdilate.Tpo $(DEPDIR)/libgstopencv_la-gstcvdilate.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvdilate.c' object='libgstopencv_la-gstcvdilate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvdilate.c' object='libgstopencv_la-gstcvdilate.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvdilate.lo `test -f 'gstcvdilate.c' || echo '$(srcdir)/'`gstcvdilate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvdilate.lo `test -f 'gstcvdilate.c' || echo '$(srcdir)/'`gstcvdilate.c libgstopencv_la-gstcvdilateerode.lo: gstcvdilateerode.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvdilateerode.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvdilateerode.Tpo -c -o libgstopencv_la-gstcvdilateerode.lo `test -f 'gstcvdilateerode.c' || echo '$(srcdir)/'`gstcvdilateerode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvdilateerode.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvdilateerode.Tpo -c -o libgstopencv_la-gstcvdilateerode.lo `test -f 'gstcvdilateerode.c' || echo '$(srcdir)/'`gstcvdilateerode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvdilateerode.Tpo $(DEPDIR)/libgstopencv_la-gstcvdilateerode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvdilateerode.c' object='libgstopencv_la-gstcvdilateerode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvdilateerode.c' object='libgstopencv_la-gstcvdilateerode.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvdilateerode.lo `test -f 'gstcvdilateerode.c' || echo '$(srcdir)/'`gstcvdilateerode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvdilateerode.lo `test -f 'gstcvdilateerode.c' || echo '$(srcdir)/'`gstcvdilateerode.c libgstopencv_la-gstcvequalizehist.lo: gstcvequalizehist.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvequalizehist.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvequalizehist.Tpo -c -o libgstopencv_la-gstcvequalizehist.lo `test -f 'gstcvequalizehist.c' || echo '$(srcdir)/'`gstcvequalizehist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvequalizehist.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvequalizehist.Tpo -c -o libgstopencv_la-gstcvequalizehist.lo `test -f 'gstcvequalizehist.c' || echo '$(srcdir)/'`gstcvequalizehist.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvequalizehist.Tpo $(DEPDIR)/libgstopencv_la-gstcvequalizehist.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvequalizehist.c' object='libgstopencv_la-gstcvequalizehist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvequalizehist.c' object='libgstopencv_la-gstcvequalizehist.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvequalizehist.lo `test -f 'gstcvequalizehist.c' || echo '$(srcdir)/'`gstcvequalizehist.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvequalizehist.lo `test -f 'gstcvequalizehist.c' || echo '$(srcdir)/'`gstcvequalizehist.c libgstopencv_la-gstcverode.lo: gstcverode.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcverode.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcverode.Tpo -c -o libgstopencv_la-gstcverode.lo `test -f 'gstcverode.c' || echo '$(srcdir)/'`gstcverode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcverode.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcverode.Tpo -c -o libgstopencv_la-gstcverode.lo `test -f 'gstcverode.c' || echo '$(srcdir)/'`gstcverode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcverode.Tpo $(DEPDIR)/libgstopencv_la-gstcverode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcverode.c' object='libgstopencv_la-gstcverode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcverode.c' object='libgstopencv_la-gstcverode.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcverode.lo `test -f 'gstcverode.c' || echo '$(srcdir)/'`gstcverode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcverode.lo `test -f 'gstcverode.c' || echo '$(srcdir)/'`gstcverode.c libgstopencv_la-gstcvlaplace.lo: gstcvlaplace.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvlaplace.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvlaplace.Tpo -c -o libgstopencv_la-gstcvlaplace.lo `test -f 'gstcvlaplace.c' || echo '$(srcdir)/'`gstcvlaplace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvlaplace.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvlaplace.Tpo -c -o libgstopencv_la-gstcvlaplace.lo `test -f 'gstcvlaplace.c' || echo '$(srcdir)/'`gstcvlaplace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvlaplace.Tpo $(DEPDIR)/libgstopencv_la-gstcvlaplace.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvlaplace.c' object='libgstopencv_la-gstcvlaplace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvlaplace.c' object='libgstopencv_la-gstcvlaplace.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvlaplace.lo `test -f 'gstcvlaplace.c' || echo '$(srcdir)/'`gstcvlaplace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvlaplace.lo `test -f 'gstcvlaplace.c' || echo '$(srcdir)/'`gstcvlaplace.c libgstopencv_la-gstcvsmooth.lo: gstcvsmooth.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvsmooth.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvsmooth.Tpo -c -o libgstopencv_la-gstcvsmooth.lo `test -f 'gstcvsmooth.c' || echo '$(srcdir)/'`gstcvsmooth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvsmooth.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvsmooth.Tpo -c -o libgstopencv_la-gstcvsmooth.lo `test -f 'gstcvsmooth.c' || echo '$(srcdir)/'`gstcvsmooth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvsmooth.Tpo $(DEPDIR)/libgstopencv_la-gstcvsmooth.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvsmooth.c' object='libgstopencv_la-gstcvsmooth.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvsmooth.c' object='libgstopencv_la-gstcvsmooth.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvsmooth.lo `test -f 'gstcvsmooth.c' || echo '$(srcdir)/'`gstcvsmooth.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvsmooth.lo `test -f 'gstcvsmooth.c' || echo '$(srcdir)/'`gstcvsmooth.c libgstopencv_la-gstcvsobel.lo: gstcvsobel.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvsobel.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvsobel.Tpo -c -o libgstopencv_la-gstcvsobel.lo `test -f 'gstcvsobel.c' || echo '$(srcdir)/'`gstcvsobel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstcvsobel.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstcvsobel.Tpo -c -o libgstopencv_la-gstcvsobel.lo `test -f 'gstcvsobel.c' || echo '$(srcdir)/'`gstcvsobel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstcvsobel.Tpo $(DEPDIR)/libgstopencv_la-gstcvsobel.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcvsobel.c' object='libgstopencv_la-gstcvsobel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcvsobel.c' object='libgstopencv_la-gstcvsobel.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvsobel.lo `test -f 'gstcvsobel.c' || echo '$(srcdir)/'`gstcvsobel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstcvsobel.lo `test -f 'gstcvsobel.c' || echo '$(srcdir)/'`gstcvsobel.c libgstopencv_la-gstedgedetect.lo: gstedgedetect.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstedgedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstedgedetect.Tpo -c -o libgstopencv_la-gstedgedetect.lo `test -f 'gstedgedetect.c' || echo '$(srcdir)/'`gstedgedetect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstedgedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstedgedetect.Tpo -c -o libgstopencv_la-gstedgedetect.lo `test -f 'gstedgedetect.c' || echo '$(srcdir)/'`gstedgedetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstedgedetect.Tpo $(DEPDIR)/libgstopencv_la-gstedgedetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstedgedetect.c' object='libgstopencv_la-gstedgedetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstedgedetect.c' object='libgstopencv_la-gstedgedetect.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstedgedetect.lo `test -f 'gstedgedetect.c' || echo '$(srcdir)/'`gstedgedetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstedgedetect.lo `test -f 'gstedgedetect.c' || echo '$(srcdir)/'`gstedgedetect.c libgstopencv_la-gstfaceblur.lo: gstfaceblur.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstfaceblur.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfaceblur.Tpo -c -o libgstopencv_la-gstfaceblur.lo `test -f 'gstfaceblur.c' || echo '$(srcdir)/'`gstfaceblur.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstfaceblur.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfaceblur.Tpo -c -o libgstopencv_la-gstfaceblur.lo `test -f 'gstfaceblur.c' || echo '$(srcdir)/'`gstfaceblur.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstfaceblur.Tpo $(DEPDIR)/libgstopencv_la-gstfaceblur.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfaceblur.c' object='libgstopencv_la-gstfaceblur.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfaceblur.c' object='libgstopencv_la-gstfaceblur.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfaceblur.lo `test -f 'gstfaceblur.c' || echo '$(srcdir)/'`gstfaceblur.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfaceblur.lo `test -f 'gstfaceblur.c' || echo '$(srcdir)/'`gstfaceblur.c libgstopencv_la-gstfacedetect.lo: gstfacedetect.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstfacedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstfacedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo $(DEPDIR)/libgstopencv_la-gstfacedetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfacedetect.c' object='libgstopencv_la-gstfacedetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfacedetect.c' object='libgstopencv_la-gstfacedetect.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c libgstopencv_la-gstpyramidsegment.lo: gstpyramidsegment.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstpyramidsegment.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstpyramidsegment.Tpo -c -o libgstopencv_la-gstpyramidsegment.lo `test -f 'gstpyramidsegment.c' || echo '$(srcdir)/'`gstpyramidsegment.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstpyramidsegment.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstpyramidsegment.Tpo -c -o libgstopencv_la-gstpyramidsegment.lo `test -f 'gstpyramidsegment.c' || echo '$(srcdir)/'`gstpyramidsegment.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstpyramidsegment.Tpo $(DEPDIR)/libgstopencv_la-gstpyramidsegment.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpyramidsegment.c' object='libgstopencv_la-gstpyramidsegment.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpyramidsegment.c' object='libgstopencv_la-gstpyramidsegment.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstpyramidsegment.lo `test -f 'gstpyramidsegment.c' || echo '$(srcdir)/'`gstpyramidsegment.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstpyramidsegment.lo `test -f 'gstpyramidsegment.c' || echo '$(srcdir)/'`gstpyramidsegment.c libgstopencv_la-gsttemplatematch.lo: gsttemplatematch.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gsttemplatematch.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gsttemplatematch.Tpo -c -o libgstopencv_la-gsttemplatematch.lo `test -f 'gsttemplatematch.c' || echo '$(srcdir)/'`gsttemplatematch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gsttemplatematch.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gsttemplatematch.Tpo -c -o libgstopencv_la-gsttemplatematch.lo `test -f 'gsttemplatematch.c' || echo '$(srcdir)/'`gsttemplatematch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gsttemplatematch.Tpo $(DEPDIR)/libgstopencv_la-gsttemplatematch.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttemplatematch.c' object='libgstopencv_la-gsttemplatematch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttemplatematch.c' object='libgstopencv_la-gsttemplatematch.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gsttemplatematch.lo `test -f 'gsttemplatematch.c' || echo '$(srcdir)/'`gsttemplatematch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gsttemplatematch.lo `test -f 'gsttemplatematch.c' || echo '$(srcdir)/'`gsttemplatematch.c libgstopencv_la-gsttextoverlay.lo: gsttextoverlay.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gsttextoverlay.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gsttextoverlay.Tpo -c -o libgstopencv_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gsttextoverlay.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gsttextoverlay.Tpo -c -o libgstopencv_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gsttextoverlay.Tpo $(DEPDIR)/libgstopencv_la-gsttextoverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttextoverlay.c' object='libgstopencv_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttextoverlay.c' object='libgstopencv_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c + +libgstopencv_la-gstmotioncells.lo: gstmotioncells.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstmotioncells.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstmotioncells.Tpo -c -o libgstopencv_la-gstmotioncells.lo `test -f 'gstmotioncells.c' || echo '$(srcdir)/'`gstmotioncells.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstmotioncells.Tpo $(DEPDIR)/libgstopencv_la-gstmotioncells.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmotioncells.c' object='libgstopencv_la-gstmotioncells.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) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstmotioncells.lo `test -f 'gstmotioncells.c' || echo '$(srcdir)/'`gstmotioncells.c + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +libgstopencv_la-motioncells_wrapper.lo: motioncells_wrapper.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -MT libgstopencv_la-motioncells_wrapper.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-motioncells_wrapper.Tpo -c -o libgstopencv_la-motioncells_wrapper.lo `test -f 'motioncells_wrapper.cpp' || echo '$(srcdir)/'`motioncells_wrapper.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-motioncells_wrapper.Tpo $(DEPDIR)/libgstopencv_la-motioncells_wrapper.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='motioncells_wrapper.cpp' object='libgstopencv_la-motioncells_wrapper.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstopencv_la-motioncells_wrapper.lo `test -f 'motioncells_wrapper.cpp' || echo '$(srcdir)/'`motioncells_wrapper.cpp + +libgstopencv_la-MotionCells.lo: MotionCells.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -MT libgstopencv_la-MotionCells.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-MotionCells.Tpo -c -o libgstopencv_la-MotionCells.lo `test -f 'MotionCells.cpp' || echo '$(srcdir)/'`MotionCells.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-MotionCells.Tpo $(DEPDIR)/libgstopencv_la-MotionCells.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MotionCells.cpp' object='libgstopencv_la-MotionCells.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstopencv_la-MotionCells.lo `test -f 'MotionCells.cpp' || echo '$(srcdir)/'`MotionCells.cpp mostlyclean-libtool: -rm -f *.lo @@ -939,10 +1019,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/opencv/MotionCells.cpp b/ext/opencv/MotionCells.cpp new file mode 100644 index 0000000..5223bc7 --- /dev/null +++ b/ext/opencv/MotionCells.cpp @@ -0,0 +1,595 @@ +/* + * GStreamer + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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. + */ + +#include +#include +#include +#include +#include +#include "MotionCells.h" + +uint64_t ntohl64 (uint64_t val); +uint64_t htonl64 (uint64_t val); + +uint64_t +ntohl64 (uint64_t val) +{ + uint64_t res64; + uint32_t low = (uint32_t) (val & 0x00000000FFFFFFFFLL); + uint32_t high = (uint32_t) ((val & 0xFFFFFFFF00000000LL) >> 32); + low = ntohl (low); + high = ntohl (high); + res64 = (uint64_t) high + (((uint64_t) low) << 32); + return res64; +} + + +uint64_t +htonl64 (uint64_t val) +{ + uint64_t res64; + uint32_t low = (uint32_t) (val & 0x00000000FFFFFFFFLL); + uint32_t high = (uint32_t) ((val & 0xFFFFFFFF00000000LL) >> 32); + low = htonl (low); + high = htonl (high); + res64 = (uint64_t) high + (((uint64_t) low) << 32); + return res64; +} + +MotionCells::MotionCells () +{ + m_framecnt = 0; + m_motioncells_idx_count = 0; + m_motioncellsidxcstr = NULL; + m_saveInDatafile = false; + mc_savefile = NULL; + m_pcurFrame = NULL; + m_pprevFrame = NULL; + transparencyimg = NULL; + m_pdifferenceImage = NULL; + m_pbwImage = NULL; + m_initdatafilefailed = new char[BUSMSGLEN]; + m_savedatafilefailed = new char[BUSMSGLEN]; + m_initerrorcode = 0; + m_saveerrorcode = 0; + m_alpha = 0.5; + m_beta = 0.5; + m_useAlpha = false; + m_isVisible = false; + +} + +MotionCells::~MotionCells () +{ + if (mc_savefile) { + fclose (mc_savefile); + mc_savefile = NULL; + } + delete[]m_initdatafilefailed; + delete[]m_savedatafilefailed; + if (m_motioncellsidxcstr) + delete[]m_motioncellsidxcstr; + if (m_pcurFrame) + cvReleaseImage (&m_pcurFrame); + if (m_pprevFrame) + cvReleaseImage (&m_pprevFrame); + if (transparencyimg) + cvReleaseImage (&transparencyimg); + if (m_pdifferenceImage) + cvReleaseImage (&m_pdifferenceImage); + if (m_pbwImage) + cvReleaseImage (&m_pbwImage); +} + +int +MotionCells::performDetectionMotionCells (IplImage * p_frame, + double p_sensitivity, double p_framerate, int p_gridx, int p_gridy, + gint64 timestamp_millisec, bool p_isVisible, bool p_useAlpha, + int motionmaskcoord_count, motionmaskcoordrect * motionmaskcoords, + int motionmaskcells_count, motioncellidx * motionmaskcellsidx, + cellscolor motioncellscolor, int motioncells_count, + motioncellidx * motioncellsidx, gint64 starttime, char *p_datafile, + bool p_changed_datafile, int p_thickness) +{ + + int sumframecnt = 0; + int ret = 0; + p_framerate >= 1 ? p_framerate <= 5 ? sumframecnt = 1 + : p_framerate <= 10 ? sumframecnt = 2 + : p_framerate <= 15 ? sumframecnt = 3 + : p_framerate <= 20 ? sumframecnt = 4 + : p_framerate <= 25 ? sumframecnt = 5 : sumframecnt = 0 : sumframecnt = 0; + + m_framecnt++; + m_changed_datafile = p_changed_datafile; + if (m_framecnt >= sumframecnt) { + m_useAlpha = p_useAlpha; + m_gridx = p_gridx; + m_gridy = p_gridy; + if (m_changed_datafile) { + ret = initDataFile (p_datafile, starttime); + if (ret != 0) + return ret; + } + + m_frameSize = cvGetSize (p_frame); + m_frameSize.width /= 2; + m_frameSize.height /= 2; + setMotionCells (m_frameSize.width, m_frameSize.height); + m_sensitivity = 1 - p_sensitivity; + m_isVisible = p_isVisible; + m_pcurFrame = cvCloneImage (p_frame); + IplImage *m_pcurgreyImage = cvCreateImage (m_frameSize, IPL_DEPTH_8U, 1); + IplImage *m_pprevgreyImage = cvCreateImage (m_frameSize, IPL_DEPTH_8U, 1); + IplImage *m_pgreyImage = cvCreateImage (m_frameSize, IPL_DEPTH_8U, 1); + IplImage *m_pcurDown = + cvCreateImage (m_frameSize, m_pcurFrame->depth, m_pcurFrame->nChannels); + IplImage *m_pprevDown = cvCreateImage (m_frameSize, m_pprevFrame->depth, + m_pprevFrame->nChannels); + m_pbwImage = cvCreateImage (m_frameSize, IPL_DEPTH_8U, 1); + cvPyrDown (m_pprevFrame, m_pprevDown); + cvCvtColor (m_pprevDown, m_pprevgreyImage, CV_RGB2GRAY); + cvPyrDown (m_pcurFrame, m_pcurDown); + cvCvtColor (m_pcurDown, m_pcurgreyImage, CV_RGB2GRAY); + m_pdifferenceImage = cvCloneImage (m_pcurgreyImage); + //cvSmooth(m_pcurgreyImage, m_pcurgreyImage, CV_GAUSSIAN, 3, 0);//TODO camera noise reduce,something smoothing, and rethink runningavg weights + + //Minus the current gray frame from the 8U moving average. + cvAbsDiff (m_pprevgreyImage, m_pcurgreyImage, m_pdifferenceImage); + + //Convert the image to black and white. + cvAdaptiveThreshold (m_pdifferenceImage, m_pbwImage, 255, + CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY_INV, 7); + + // Dilate and erode to get object blobs + cvDilate (m_pbwImage, m_pbwImage, NULL, 2); + cvErode (m_pbwImage, m_pbwImage, NULL, 2); + + //mask-out the overlay on difference image + if (motionmaskcoord_count > 0) + performMotionMaskCoords (motionmaskcoords, motionmaskcoord_count); + if (motionmaskcells_count > 0) + performMotionMask (motionmaskcellsidx, motionmaskcells_count); + if (getIsNonZero (m_pbwImage)) { //detect Motion + GST_DEBUG ("DETECT MOTION \n"); + if (m_MotionCells.size () > 0) //it contains previous motioncells what we used when frames dropped + m_MotionCells.clear (); + if (transparencyimg) + cvReleaseImage (&transparencyimg); + (motioncells_count > 0) ? + calculateMotionPercentInMotionCells (motioncellsidx, + motioncells_count) + : calculateMotionPercentInMotionCells (motionmaskcellsidx, 0); + + transparencyimg = cvCreateImage (cvGetSize (p_frame), p_frame->depth, 3); + cvSetZero (transparencyimg); + if (m_motioncellsidxcstr) + delete[]m_motioncellsidxcstr; + m_motioncells_idx_count = m_MotionCells.size () * MSGLEN; //one motion cell idx: (lin idx : col idx,) it's 4 character except last motion cell idx + m_motioncellsidxcstr = new char[m_motioncells_idx_count]; + char *tmpstr = new char[MSGLEN]; + for (int i = 0; i < MSGLEN; i++) + tmpstr[i] = ' '; + for (unsigned int i = 0; i < m_MotionCells.size (); i++) { + CvPoint pt1, pt2; + pt1.x = m_MotionCells.at (i).cell_pt1.x * 2; + pt1.y = m_MotionCells.at (i).cell_pt1.y * 2; + pt2.x = m_MotionCells.at (i).cell_pt2.x * 2; + pt2.y = m_MotionCells.at (i).cell_pt2.y * 2; + if (m_useAlpha && m_isVisible) { + cvRectangle (transparencyimg, + pt1, + pt2, + CV_RGB (motioncellscolor.B_channel_value, + motioncellscolor.G_channel_value, + motioncellscolor.R_channel_value), CV_FILLED); + } else if (m_isVisible) { + cvRectangle (p_frame, + pt1, + pt2, + CV_RGB (motioncellscolor.B_channel_value, + motioncellscolor.G_channel_value, + motioncellscolor.R_channel_value), p_thickness); + } + + if (i < m_MotionCells.size () - 1) { + snprintf (tmpstr, MSGLEN, "%d:%d,", m_MotionCells.at (i).lineidx, + m_MotionCells.at (i).colidx); + } else { + snprintf (tmpstr, MSGLEN, "%d:%d", m_MotionCells.at (i).lineidx, + m_MotionCells.at (i).colidx); + } + if (i == 0) + strncpy (m_motioncellsidxcstr, tmpstr, m_motioncells_idx_count); + else + strcat (m_motioncellsidxcstr, tmpstr); + } + if (m_MotionCells.size () == 0) + strncpy (m_motioncellsidxcstr, " ", m_motioncells_idx_count); + + if (m_useAlpha && m_isVisible) { + if (m_MotionCells.size () > 0) + blendImages (p_frame, transparencyimg, m_alpha, m_beta); + } + + delete[]tmpstr; + + if (mc_savefile && m_saveInDatafile) { + ret = saveMotionCells (timestamp_millisec); + if (ret != 0) + return ret; + } + } else { + m_motioncells_idx_count = 0; + if (m_MotionCells.size () > 0) + m_MotionCells.clear (); + if (transparencyimg) + cvReleaseImage (&transparencyimg); + } + + if (m_pprevFrame) + cvReleaseImage (&m_pprevFrame); + m_pprevFrame = cvCloneImage (m_pcurFrame); + m_framecnt = 0; + if (m_pcurFrame) + cvReleaseImage (&m_pcurFrame); + if (m_pdifferenceImage) + cvReleaseImage (&m_pdifferenceImage); + if (m_pcurgreyImage) + cvReleaseImage (&m_pcurgreyImage); + if (m_pprevgreyImage) + cvReleaseImage (&m_pprevgreyImage); + if (m_pgreyImage) + cvReleaseImage (&m_pgreyImage); + if (m_pbwImage) + cvReleaseImage (&m_pbwImage); + if (m_pprevDown) + cvReleaseImage (&m_pprevDown); + if (m_pcurDown) + cvReleaseImage (&m_pcurDown); + if (m_pCells) { + for (int i = 0; i < m_gridy; ++i) { + delete[]m_pCells[i]; + } + delete[]m_pCells; + } + + if (p_framerate <= 5) { + if (m_MotionCells.size () > 0) + m_MotionCells.clear (); + if (transparencyimg) + cvReleaseImage (&transparencyimg); + } + } else { //we do frame drop + m_motioncells_idx_count = 0; + ret = -2; + for (unsigned int i = 0; i < m_MotionCells.size (); i++) { + CvPoint pt1, pt2; + pt1.x = m_MotionCells.at (i).cell_pt1.x * 2; + pt1.y = m_MotionCells.at (i).cell_pt1.y * 2; + pt2.x = m_MotionCells.at (i).cell_pt2.x * 2; + pt2.y = m_MotionCells.at (i).cell_pt2.y * 2; + if (m_useAlpha && m_isVisible) { + cvRectangle (transparencyimg, + pt1, + pt2, + CV_RGB (motioncellscolor.B_channel_value, + motioncellscolor.G_channel_value, + motioncellscolor.R_channel_value), CV_FILLED); + } else if (m_isVisible) { + cvRectangle (p_frame, + pt1, + pt2, + CV_RGB (motioncellscolor.B_channel_value, + motioncellscolor.G_channel_value, + motioncellscolor.R_channel_value), p_thickness); + } + + } + if (m_useAlpha && m_isVisible) { + if (m_MotionCells.size () > 0) + blendImages (p_frame, transparencyimg, m_alpha, m_beta); + } + } + return ret; +} + +int +MotionCells::initDataFile (char *p_datafile, gint64 starttime) //p_date is increased with difference between current and previous buffer ts +{ + MotionCellData mcd; + if (strncmp (p_datafile, " ", 1)) { + mc_savefile = fopen (p_datafile, "w"); + if (mc_savefile == NULL) { + //fprintf(stderr, "%s %d:initDataFile:fopen:%d (%s)\n", __FILE__, __LINE__, errno, + //strerror(errno)); + strncpy (m_initdatafilefailed, strerror (errno), BUSMSGLEN - 1); + m_initerrorcode = errno; + return 1; + } else { + m_saveInDatafile = true; + } + } else + mc_savefile = NULL; + bzero (&m_header, sizeof (MotionCellHeader)); + m_header.headersize = htonl (MC_HEADER); + m_header.type = htonl (MC_TYPE); + m_header.version = htonl (MC_VERSION); + //it needs these bytes + m_header.itemsize = + htonl ((int) ceil (ceil (m_gridx * m_gridy / 8.0) / 4.0) * 4 + + sizeof (mcd.timestamp)); + m_header.gridx = htonl (m_gridx); + m_header.gridy = htonl (m_gridy); + m_header.starttime = htonl64 (starttime); + + snprintf (m_header.name, sizeof (m_header.name), "%s %dx%d", MC_VERSIONTEXT, + ntohl (m_header.gridx), ntohl (m_header.gridy)); + m_changed_datafile = false; + return 0; +} + +int +MotionCells::saveMotionCells (gint64 timestamp_millisec) +{ + + MotionCellData mc_data; + mc_data.timestamp = htonl (timestamp_millisec); + mc_data.data = NULL; + //There is no datafile + if (mc_savefile == NULL) + return 0; + + if (ftello (mc_savefile) == 0) { + //cerr << "Writing out file header"<< m_header.headersize <<":" << sizeof(MotionCellHeader) << " itemsize:" + //<< m_header.itemsize << endl; + if (fwrite (&m_header, sizeof (MotionCellHeader), 1, mc_savefile) != 1) { + //fprintf(stderr, "%s %d:saveMotionCells:fwrite:%d (%s)\n", __FILE__, __LINE__, errno, + //strerror(errno)); + strncpy (m_savedatafilefailed, strerror (errno), BUSMSGLEN - 1); + m_saveerrorcode = errno; + return -1; + } + } + + mc_data.data = + (char *) calloc (1, + ntohl (m_header.itemsize) - sizeof (mc_data.timestamp)); + if (mc_data.data == NULL) { + //fprintf(stderr, "%s %d:saveMotionCells:calloc:%d (%s)\n", __FILE__, __LINE__, errno, + //strerror(errno)); + strncpy (m_savedatafilefailed, strerror (errno), BUSMSGLEN - 1); + m_saveerrorcode = errno; + return -1; + } + + for (unsigned int i = 0; i < m_MotionCells.size (); i++) { + int bitnum = + m_MotionCells.at (i).lineidx * ntohl (m_header.gridx) + + m_MotionCells.at (i).colidx; + int bytenum = (int) floor (bitnum / 8.0); + int shift = bitnum - bytenum * 8; + mc_data.data[bytenum] = mc_data.data[bytenum] | (1 << shift); + //cerr << "Motion Detected " << "line:" << m_MotionCells.at(i).lineidx << " col:" << m_MotionCells.at(i).colidx; + //cerr << " bitnum " << bitnum << " bytenum " << bytenum << " shift " << shift << " value " << (int)mc_data.data[bytenum] << endl; + } + + if (fwrite (&mc_data.timestamp, sizeof (mc_data.timestamp), 1, + mc_savefile) != 1) { + //fprintf(stderr, "%s %d:saveMotionCells:fwrite:%d (%s)\n", __FILE__, __LINE__, errno, + //strerror(errno)); + strncpy (m_savedatafilefailed, strerror (errno), BUSMSGLEN - 1); + m_saveerrorcode = errno; + return -1; + } + + if (fwrite (mc_data.data, + ntohl (m_header.itemsize) - sizeof (mc_data.timestamp), 1, + mc_savefile) != 1) { + //fprintf(stderr, "%s %d:saveMotionCells:fwrite:%d (%s)\n", __FILE__, __LINE__, errno, + //strerror(errno)); + strncpy (m_savedatafilefailed, strerror (errno), BUSMSGLEN - 1); + m_saveerrorcode = errno; + return -1; + } + + free (mc_data.data); + return 0; +} + +double +MotionCells::calculateMotionPercentInCell (int p_row, int p_col, + double *p_cellarea, double *p_motionarea) +{ + double cntpixelsnum = 0; + double cntmotionpixelnum = 0; + + int ybegin = floor ((double) p_row * m_cellheight); + int yend = floor ((double) (p_row + 1) * m_cellheight); + int xbegin = floor ((double) (p_col) * m_cellwidth); + int xend = floor ((double) (p_col + 1) * m_cellwidth); + int cellw = xend - xbegin; + int cellh = yend - ybegin; + int cellarea = cellw * cellh; + *p_cellarea = cellarea; + int thresholdmotionpixelnum = floor ((double) cellarea * m_sensitivity); + + for (int i = ybegin; i < yend; i++) { + for (int j = xbegin; j < xend; j++) { + cntpixelsnum++; + if ((((uchar *) (m_pbwImage->imageData + m_pbwImage->widthStep * i))[j]) > + 0) { + cntmotionpixelnum++; + if (cntmotionpixelnum >= thresholdmotionpixelnum) { //we dont needs calculate anymore + *p_motionarea = cntmotionpixelnum; + return (cntmotionpixelnum / cntpixelsnum); + } + } + int remainingpixelsnum = cellarea - cntpixelsnum; + if ((cntmotionpixelnum + remainingpixelsnum) < thresholdmotionpixelnum) { //moving pixels number will be less than threshold + *p_motionarea = 0; + return 0; + } + } + } + + return (cntmotionpixelnum / cntpixelsnum); +} + +void +MotionCells::calculateMotionPercentInMotionCells (motioncellidx * + p_motioncellsidx, int p_motioncells_count) +{ + if (p_motioncells_count == 0) { + for (int i = 0; i < m_gridy; i++) { + for (int j = 0; j < m_gridx; j++) { + m_pCells[i][j].MotionPercent = calculateMotionPercentInCell (i, j, + &m_pCells[i][j].CellArea, &m_pCells[i][j].MotionArea); + m_pCells[i][j].hasMotion = + m_sensitivity < m_pCells[i][j].MotionPercent ? true : false; + if (m_pCells[i][j].hasMotion) { + MotionCellsIdx mci; + mci.lineidx = i; + mci.colidx = j; + mci.cell_pt1.x = floor ((double) j * m_cellwidth); + mci.cell_pt1.y = floor ((double) i * m_cellheight); + mci.cell_pt2.x = floor ((double) (j + 1) * m_cellwidth); + mci.cell_pt2.y = floor ((double) (i + 1) * m_cellheight); + int w = mci.cell_pt2.x - mci.cell_pt1.x; + int h = mci.cell_pt2.y - mci.cell_pt1.y; + mci.motioncell = cvRect (mci.cell_pt1.x, mci.cell_pt1.y, w, h); + m_MotionCells.push_back (mci); + } + } + } + } else { + for (int k = 0; k < p_motioncells_count; ++k) { + + int i = p_motioncellsidx[k].lineidx; + int j = p_motioncellsidx[k].columnidx; + m_pCells[i][j].MotionPercent = + calculateMotionPercentInCell (i, j, + &m_pCells[i][j].CellArea, &m_pCells[i][j].MotionArea); + m_pCells[i][j].hasMotion = + m_pCells[i][j].MotionPercent > m_sensitivity ? true : false; + if (m_pCells[i][j].hasMotion) { + MotionCellsIdx mci; + mci.lineidx = p_motioncellsidx[k].lineidx; + mci.colidx = p_motioncellsidx[k].columnidx; + mci.cell_pt1.x = floor ((double) j * m_cellwidth); + mci.cell_pt1.y = floor ((double) i * m_cellheight); + mci.cell_pt2.x = floor ((double) (j + 1) * m_cellwidth); + mci.cell_pt2.y = floor ((double) (i + 1) * m_cellheight); + int w = mci.cell_pt2.x - mci.cell_pt1.x; + int h = mci.cell_pt2.y - mci.cell_pt1.y; + mci.motioncell = cvRect (mci.cell_pt1.x, mci.cell_pt1.y, w, h); + m_MotionCells.push_back (mci); + } + } + } +} + +void +MotionCells::performMotionMaskCoords (motionmaskcoordrect * p_motionmaskcoords, + int p_motionmaskcoords_count) +{ + CvPoint upperleft; + upperleft.x = 0; + upperleft.y = 0; + CvPoint lowerright; + lowerright.x = 0; + lowerright.y = 0; + for (int i = 0; i < p_motionmaskcoords_count; i++) { + upperleft.x = p_motionmaskcoords[i].upper_left_x; + upperleft.y = p_motionmaskcoords[i].upper_left_y; + lowerright.x = p_motionmaskcoords[i].lower_right_x; + lowerright.y = p_motionmaskcoords[i].lower_right_y; + cvRectangle (m_pbwImage, upperleft, lowerright, CV_RGB (0, 0, 0), + CV_FILLED); + } +} + +void +MotionCells::performMotionMask (motioncellidx * p_motionmaskcellsidx, + int p_motionmaskcells_count) +{ + for (int k = 0; k < p_motionmaskcells_count; k++) { + int beginy = p_motionmaskcellsidx[k].lineidx * m_cellheight; + int beginx = p_motionmaskcellsidx[k].columnidx * m_cellwidth; + int endx = + (double) p_motionmaskcellsidx[k].columnidx * m_cellwidth + m_cellwidth; + int endy = + (double) p_motionmaskcellsidx[k].lineidx * m_cellheight + m_cellheight; + for (int i = beginy; i < endy; i++) + for (int j = beginx; j < endx; j++) { + ((uchar *) (m_pbwImage->imageData + m_pbwImage->widthStep * i))[j] = 0; + } + } +} + +///BGR if we use only OpenCV +//RGB if we use gst+OpenCV +void +MotionCells::blendImages (IplImage * p_actFrame, IplImage * p_cellsFrame, + float p_alpha, float p_beta) +{ + + int height = p_actFrame->height; + int width = p_actFrame->width; + int step = p_actFrame->widthStep / sizeof (uchar); + int channels = p_actFrame->nChannels; + int cellstep = p_cellsFrame->widthStep / sizeof (uchar); + uchar *curImageData = (uchar *) p_actFrame->imageData; + uchar *cellImageData = (uchar *) p_cellsFrame->imageData; + + for (int i = 0; i < height; i++) + for (int j = 0; j < width; j++) + for (int k = 0; k < channels; k++) + if (cellImageData[i * cellstep + j * channels + k] > 0) { + curImageData[i * step + j * channels + k] = + round ((double) curImageData[i * step + j * channels + + k] * p_alpha + ((double) cellImageData[i * cellstep + + j * channels + k] * p_beta)); + } +} diff --git a/ext/opencv/MotionCells.h b/ext/opencv/MotionCells.h new file mode 100644 index 0000000..ee84fd6 --- /dev/null +++ b/ext/opencv/MotionCells.h @@ -0,0 +1,259 @@ +/* + * GStreamer + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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 MOTIONCELLS_H_ +#define MOTIONCELLS_H_ + +#include // includes OpenCV definitions +#include // includes highGUI definitions +#include +#include +#include +#include +#include +#include + +//MotionCells defines +#define MC_HEADER 64 +#define MC_TYPE 1 +#define MC_VERSION 1 +#define MC_VERSIONTEXT "MotionCells-1" +#define MSGLEN 6 +#define BUSMSGLEN 20 + +using namespace std; + +struct MotionCellHeader{ + gint32 headersize; + gint32 type; + gint32 version; + gint32 itemsize; + gint32 gridx; + gint32 gridy; + gint64 starttime; + char name[MC_HEADER - 32]; +}; + +struct MotionCellData{ + gint32 timestamp; + char *data; +}; + +typedef struct { + int upper_left_x; + int upper_left_y; + int lower_right_x; + int lower_right_y; +} motionmaskcoordrect; + +typedef struct { + int R_channel_value; + int G_channel_value; + int B_channel_value; +} cellscolor; + +typedef struct { + int lineidx; + int columnidx; +} motioncellidx; + +struct Cell +{ + double MotionArea; + double CellArea; + double MotionPercent; + bool hasMotion; +}; + +struct MotionCellsIdx +{ + CvRect motioncell; + //Points for the edges of the rectangle. + CvPoint cell_pt1; + CvPoint cell_pt2; + int lineidx; + int colidx; +}; + +struct OverlayRegions +{ + CvPoint upperleft; + CvPoint lowerright; +}; + +class MotionCells +{ +public: + + MotionCells (); + virtual ~ MotionCells (); + + int performDetectionMotionCells (IplImage * p_frame, double p_sensitivity, + double p_framerate, int p_gridx, int p_gridy, gint64 timestamp_millisec, + bool p_isVisble, bool p_useAlpha, int motionmaskcoord_count, + motionmaskcoordrect * motionmaskcoords, int motionmaskcells_count, + motioncellidx * motionmaskcellsidx, cellscolor motioncellscolor, + int motioncells_count, motioncellidx * motioncellsidx, gint64 starttime, + char *datafile, bool p_changed_datafile, int p_thickness); + + void setPrevFrame (IplImage * p_prevframe) + { + m_pprevFrame = cvCloneImage (p_prevframe); + } + char *getMotionCellsIdx () + { + return m_motioncellsidxcstr; + } + + int getMotionCellsIdxCount () + { + return m_motioncells_idx_count; + } + + bool getChangedDataFile () + { + return m_changed_datafile; + } + + char *getDatafileInitFailed () + { + return m_initdatafilefailed; + } + + char *getDatafileSaveFailed () + { + return m_savedatafilefailed; + } + + int getInitErrorCode () + { + return m_initerrorcode; + } + + int getSaveErrorCode () + { + return m_saveerrorcode; + } + + void freeDataFile () + { + if (mc_savefile) { + fclose (mc_savefile); + mc_savefile = NULL; + m_saveInDatafile = false; + } + } + +private: + + double calculateMotionPercentInCell (int p_row, int p_col, double *p_cellarea, + double *p_motionarea); + void performMotionMaskCoords (motionmaskcoordrect * p_motionmaskcoords, + int p_motionmaskcoords_count); + void performMotionMask (motioncellidx * p_motionmaskcellsidx, + int p_motionmaskcells_count); + void calculateMotionPercentInMotionCells (motioncellidx * + p_motionmaskcellsidx, int p_motionmaskcells_count = 0); + int saveMotionCells (gint64 timestamp_millisec); + int initDataFile (char *p_datafile, gint64 starttime); + void blendImages (IplImage * p_actFrame, IplImage * p_cellsFrame, + float p_alpha, float p_beta); + + void setData (IplImage * img, int lin, int col, uchar valor) + { + ((uchar *) (img->imageData + img->widthStep * lin))[col] = valor; + } + + uchar getData (IplImage * img, int lin, int col) + { + return ((uchar *) (img->imageData + img->widthStep * lin))[col]; + } + + bool getIsNonZero (IplImage * img) + { + for (int lin = 0; lin < img->height; lin++) + for (int col = 0; col < img->width; col++) { + if ((((uchar *) (img->imageData + img->widthStep * lin))[col]) > 0) + return true; + } + return false; + } + + void setMotionCells (int p_frameWidth, int p_frameHeight) + { + m_cellwidth = (double) p_frameWidth / (double) m_gridx; + m_cellheight = (double) p_frameHeight / (double) m_gridy; + m_pCells = new Cell *[m_gridy]; + for (int i = 0; i < m_gridy; i++) + m_pCells[i] = new Cell[m_gridx]; + + //init cells + for (int i = 0; i < m_gridy; i++) + for (int j = 0; j < m_gridx; j++) { + m_pCells[i][j].MotionArea = 0; + m_pCells[i][j].CellArea = 0; + m_pCells[i][j].MotionPercent = 0; + m_pCells[i][j].hasMotion = false; + } + } + + IplImage *m_pcurFrame, *m_pprevFrame, *m_pdifferenceImage, + *m_pbwImage,*transparencyimg; + CvSize m_frameSize; + bool m_isVisible, m_changed_datafile, m_useAlpha, m_saveInDatafile; + Cell **m_pCells; + vector < MotionCellsIdx > m_MotionCells; + vector < OverlayRegions > m_OverlayRegions; + int m_gridx, m_gridy; + double m_cellwidth, m_cellheight; + double m_alpha, m_beta; + double m_thresholdBoundingboxArea, m_cellArea, m_sensitivity; + int m_framecnt, m_motioncells_idx_count, m_initerrorcode, m_saveerrorcode; + char *m_motioncellsidxcstr, *m_initdatafilefailed, *m_savedatafilefailed; + FILE *mc_savefile; + MotionCellHeader m_header; + +}; + +#endif /* MOTIONCELLS_H_ */ diff --git a/ext/opencv/gstcvdilateerode.c b/ext/opencv/gstcvdilateerode.c index 446c08d..193f69e 100644 --- a/ext/opencv/gstcvdilateerode.c +++ b/ext/opencv/gstcvdilateerode.c @@ -117,14 +117,6 @@ gst_cv_dilate_erode_get_type (void) return opencv_dilate_erode_type; } -/* Clean up */ -static void -gst_cv_dilate_erode_finalize (GObject * obj) -{ - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - - /* GObject vmethod implementations */ static void @@ -158,7 +150,6 @@ gst_cv_dilate_erode_class_init (GstCvDilateErodeClass * klass) parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_dilate_erode_finalize); gobject_class->set_property = gst_cv_dilate_erode_set_property; gobject_class->get_property = gst_cv_dilate_erode_get_property; diff --git a/ext/opencv/gstcvequalizehist.c b/ext/opencv/gstcvequalizehist.c index 9f2ebf2..4d0521f 100644 --- a/ext/opencv/gstcvequalizehist.c +++ b/ext/opencv/gstcvequalizehist.c @@ -70,13 +70,6 @@ static GstFlowReturn gst_cv_equalize_hist_transform (GstOpencvVideoFilter * filter, GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg); -/* Clean up */ -static void -gst_cv_equalize_hist_finalize (GObject * obj) -{ - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - /* GObject vmethod implementations */ static void @@ -84,10 +77,8 @@ gst_cv_equalize_hist_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "cvequalizehist", @@ -99,14 +90,11 @@ gst_cv_equalize_hist_base_init (gpointer gclass) static void gst_cv_equalize_hist_class_init (GstCvEqualizeHistClass * klass) { - GObjectClass *gobject_class; GstOpencvVideoFilterClass *gstopencvbasefilter_class; - gobject_class = (GObjectClass *) klass; gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass; parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_equalize_hist_finalize); gstopencvbasefilter_class->cv_trans_func = gst_cv_equalize_hist_transform; } diff --git a/ext/opencv/gstcvlaplace.c b/ext/opencv/gstcvlaplace.c index de8649c..39453e6 100644 --- a/ext/opencv/gstcvlaplace.c +++ b/ext/opencv/gstcvlaplace.c @@ -122,10 +122,8 @@ gst_cv_laplace_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "cvlaplace", diff --git a/ext/opencv/gstcvsmooth.c b/ext/opencv/gstcvsmooth.c index a40ad35..8cf08b8 100644 --- a/ext/opencv/gstcvsmooth.c +++ b/ext/opencv/gstcvsmooth.c @@ -119,14 +119,6 @@ static GstFlowReturn gst_cv_smooth_transform_ip (GstOpencvVideoFilter * static GstFlowReturn gst_cv_smooth_transform (GstOpencvVideoFilter * filter, GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg); -/* Clean up */ -static void -gst_cv_smooth_finalize (GObject * obj) -{ - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - - /* GObject vmethod implementations */ static void @@ -166,7 +158,6 @@ gst_cv_smooth_class_init (GstCvSmoothClass * klass) parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_smooth_finalize); gobject_class->set_property = gst_cv_smooth_set_property; gobject_class->get_property = gst_cv_smooth_get_property; diff --git a/ext/opencv/gstcvsobel.c b/ext/opencv/gstcvsobel.c index 0e1b33b..1e7b63e 100644 --- a/ext/opencv/gstcvsobel.c +++ b/ext/opencv/gstcvsobel.c @@ -103,13 +103,6 @@ static GstCaps *gst_cv_sobel_transform_caps (GstBaseTransform * trans, static GstFlowReturn gst_cv_sobel_transform (GstOpencvVideoFilter * filter, GstBuffer * buf, IplImage * img, GstBuffer * outbuf, IplImage * outimg); -/* Clean up */ -static void -gst_cv_sobel_finalize (GObject * obj) -{ - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - /* GObject vmethod implementations */ static void @@ -117,10 +110,8 @@ gst_cv_sobel_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "cvsobel", @@ -143,7 +134,6 @@ gst_cv_sobel_class_init (GstCvSobelClass * klass) parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_sobel_finalize); gobject_class->set_property = gst_cv_sobel_set_property; gobject_class->get_property = gst_cv_sobel_get_property; diff --git a/ext/opencv/gstedgedetect.c b/ext/opencv/gstedgedetect.c index dbe86cf..199435d 100644 --- a/ext/opencv/gstedgedetect.c +++ b/ext/opencv/gstedgedetect.c @@ -46,7 +46,7 @@ /** * SECTION:element-edgedetect * - * FIXME:Describe edgedetect here. + * Performs canny edge detection on videos and images * * * Example launch line @@ -65,8 +65,8 @@ #include "gstopencvutils.h" #include "gstedgedetect.h" -GST_DEBUG_CATEGORY_STATIC (gst_edgedetect_debug); -#define GST_CAT_DEFAULT gst_edgedetect_debug +GST_DEBUG_CATEGORY_STATIC (gst_edge_detect_debug); +#define GST_CAT_DEFAULT gst_edge_detect_debug /* Filter signals and args */ enum @@ -100,21 +100,21 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); -GST_BOILERPLATE (Gstedgedetect, gst_edgedetect, GstElement, GST_TYPE_ELEMENT); +GST_BOILERPLATE (GstEdgeDetect, gst_edge_detect, GstElement, GST_TYPE_ELEMENT); -static void gst_edgedetect_set_property (GObject * object, guint prop_id, +static void gst_edge_detect_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_edgedetect_get_property (GObject * object, guint prop_id, +static void gst_edge_detect_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_edgedetect_set_caps (GstPad * pad, GstCaps * caps); -static GstFlowReturn gst_edgedetect_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_edge_detect_set_caps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_edge_detect_chain (GstPad * pad, GstBuffer * buf); /* Clean up */ static void -gst_edgedetect_finalize (GObject * obj) +gst_edge_detect_finalize (GObject * obj) { - Gstedgedetect *filter = GST_EDGEDETECT (obj); + GstEdgeDetect *filter = GST_EDGE_DETECT (obj); if (filter->cvImage != NULL) { cvReleaseImage (&filter->cvImage); @@ -128,7 +128,7 @@ gst_edgedetect_finalize (GObject * obj) /* GObject vmethod implementations */ static void -gst_edgedetect_base_init (gpointer gclass) +gst_edge_detect_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); @@ -138,24 +138,21 @@ gst_edgedetect_base_init (gpointer gclass) "Performs canny edge detection on videos and images.", "Michael Sheldon "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the edgedetect's class */ static void -gst_edgedetect_class_init (GstedgedetectClass * klass) +gst_edge_detect_class_init (GstEdgeDetectClass * klass) { GObjectClass *gobject_class; gobject_class = (GObjectClass *) klass; - parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_edgedetect_finalize); - gobject_class->set_property = gst_edgedetect_set_property; - gobject_class->get_property = gst_edgedetect_get_property; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_edge_detect_finalize); + gobject_class->set_property = gst_edge_detect_set_property; + gobject_class->get_property = gst_edge_detect_get_property; g_object_class_install_property (gobject_class, PROP_MASK, g_param_spec_boolean ("mask", "Mask", @@ -181,15 +178,15 @@ gst_edgedetect_class_init (GstedgedetectClass * klass) * initialize instance structure */ static void -gst_edgedetect_init (Gstedgedetect * filter, GstedgedetectClass * gclass) +gst_edge_detect_init (GstEdgeDetect * filter, GstEdgeDetectClass * gclass) { filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_setcaps_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_edgedetect_set_caps)); + GST_DEBUG_FUNCPTR (gst_edge_detect_set_caps)); gst_pad_set_getcaps_function (filter->sinkpad, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_pad_set_chain_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_edgedetect_chain)); + GST_DEBUG_FUNCPTR (gst_edge_detect_chain)); filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_getcaps_function (filter->srcpad, @@ -204,10 +201,10 @@ gst_edgedetect_init (Gstedgedetect * filter, GstedgedetectClass * gclass) } static void -gst_edgedetect_set_property (GObject * object, guint prop_id, +gst_edge_detect_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - Gstedgedetect *filter = GST_EDGEDETECT (object); + GstEdgeDetect *filter = GST_EDGE_DETECT (object); switch (prop_id) { case PROP_MASK: @@ -229,10 +226,10 @@ gst_edgedetect_set_property (GObject * object, guint prop_id, } static void -gst_edgedetect_get_property (GObject * object, guint prop_id, +gst_edge_detect_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - Gstedgedetect *filter = GST_EDGEDETECT (object); + GstEdgeDetect *filter = GST_EDGE_DETECT (object); switch (prop_id) { case PROP_MASK: @@ -257,14 +254,14 @@ gst_edgedetect_get_property (GObject * object, guint prop_id, /* this function handles the link with other elements */ static gboolean -gst_edgedetect_set_caps (GstPad * pad, GstCaps * caps) +gst_edge_detect_set_caps (GstPad * pad, GstCaps * caps) { - Gstedgedetect *filter; + GstEdgeDetect *filter; GstPad *otherpad; gint width, height; GstStructure *structure; - filter = GST_EDGEDETECT (gst_pad_get_parent (pad)); + filter = GST_EDGE_DETECT (gst_pad_get_parent (pad)); structure = gst_caps_get_structure (caps, 0); gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); @@ -284,12 +281,12 @@ gst_edgedetect_set_caps (GstPad * pad, GstCaps * caps) * this function does the actual processing */ static GstFlowReturn -gst_edgedetect_chain (GstPad * pad, GstBuffer * buf) +gst_edge_detect_chain (GstPad * pad, GstBuffer * buf) { - Gstedgedetect *filter; + GstEdgeDetect *filter; GstBuffer *outbuf; - filter = GST_EDGEDETECT (GST_OBJECT_PARENT (pad)); + filter = GST_EDGE_DETECT (GST_OBJECT_PARENT (pad)); filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf); @@ -320,15 +317,14 @@ gst_edgedetect_chain (GstPad * pad, GstBuffer * buf) * register the element factories and other features */ gboolean -gst_edgedetect_plugin_init (GstPlugin * plugin) +gst_edge_detect_plugin_init (GstPlugin * plugin) { /* debug category for fltering log messages * - * exchange the string 'Template edgedetect' with your description */ - GST_DEBUG_CATEGORY_INIT (gst_edgedetect_debug, "edgedetect", + GST_DEBUG_CATEGORY_INIT (gst_edge_detect_debug, "edgedetect", 0, "Performs canny edge detection on videos and images"); return gst_element_register (plugin, "edgedetect", GST_RANK_NONE, - GST_TYPE_EDGEDETECT); + GST_TYPE_EDGE_DETECT); } diff --git a/ext/opencv/gstedgedetect.h b/ext/opencv/gstedgedetect.h index eaaa3c0..c6dbeb2 100644 --- a/ext/opencv/gstedgedetect.h +++ b/ext/opencv/gstedgedetect.h @@ -43,28 +43,28 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_EDGEDETECT_H__ -#define __GST_EDGEDETECT_H__ +#ifndef __GST_EDGE_DETECT_H__ +#define __GST_EDGE_DETECT_H__ #include #include G_BEGIN_DECLS /* #defines don't like whitespacey bits */ -#define GST_TYPE_EDGEDETECT \ - (gst_edgedetect_get_type()) -#define GST_EDGEDETECT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_EDGEDETECT,Gstedgedetect)) -#define GST_EDGEDETECT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_EDGEDETECT,GstedgedetectClass)) -#define GST_IS_EDGEDETECT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_EDGEDETECT)) -#define GST_IS_EDGEDETECT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_EDGEDETECT)) -typedef struct _Gstedgedetect Gstedgedetect; -typedef struct _GstedgedetectClass GstedgedetectClass; +#define GST_TYPE_EDGE_DETECT \ + (gst_edge_detect_get_type()) +#define GST_EDGE_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_EDGE_DETECT,GstEdgeDetect)) +#define GST_EDGE_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_EDGE_DETECT,GstEdgeDetectClass)) +#define GST_IS_EDGE_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_EDGE_DETECT)) +#define GST_IS_EDGE_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_EDGE_DETECT)) +typedef struct _GstEdgeDetect GstEdgeDetect; +typedef struct _GstEdgeDetectClass GstEdgeDetectClass; -struct _Gstedgedetect +struct _GstEdgeDetect { GstElement element; @@ -77,14 +77,14 @@ struct _Gstedgedetect IplImage *cvEdge, *cvGray, *cvImage, *cvCEdge; }; -struct _GstedgedetectClass +struct _GstEdgeDetectClass { GstElementClass parent_class; }; -GType gst_edgedetect_get_type (void); +GType gst_edge_detect_get_type (void); -gboolean gst_edgedetect_plugin_init (GstPlugin * plugin); +gboolean gst_edge_detect_plugin_init (GstPlugin * plugin); G_END_DECLS -#endif /* __GST_EDGEDETECT_H__ */ +#endif /* __GST_EDGE_DETECT_H__ */ diff --git a/ext/opencv/gstfaceblur.c b/ext/opencv/gstfaceblur.c index 640756b..2f9dcf5 100644 --- a/ext/opencv/gstfaceblur.c +++ b/ext/opencv/gstfaceblur.c @@ -46,7 +46,7 @@ /** * SECTION:element-faceblur * - * FIXME:Describe faceblur here. + * Blurs faces in images and videos. * * * Example launch line @@ -65,8 +65,8 @@ #include "gstopencvutils.h" #include "gstfaceblur.h" -GST_DEBUG_CATEGORY_STATIC (gst_faceblur_debug); -#define GST_CAT_DEFAULT gst_faceblur_debug +GST_DEBUG_CATEGORY_STATIC (gst_face_blur_debug); +#define GST_CAT_DEFAULT gst_face_blur_debug #define DEFAULT_PROFILE "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml" @@ -97,23 +97,23 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); -GST_BOILERPLATE (Gstfaceblur, gst_faceblur, GstElement, GST_TYPE_ELEMENT); +GST_BOILERPLATE (GstFaceBlur, gst_face_blur, GstElement, GST_TYPE_ELEMENT); -static void gst_faceblur_set_property (GObject * object, guint prop_id, +static void gst_face_blur_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_faceblur_get_property (GObject * object, guint prop_id, +static void gst_face_blur_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_faceblur_set_caps (GstPad * pad, GstCaps * caps); -static GstFlowReturn gst_faceblur_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_face_blur_set_caps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_face_blur_chain (GstPad * pad, GstBuffer * buf); -static void gst_faceblur_load_profile (Gstfaceblur * filter); +static void gst_face_blur_load_profile (GstFaceBlur * filter); /* Clean up */ static void -gst_faceblur_finalize (GObject * obj) +gst_face_blur_finalize (GObject * obj) { - Gstfaceblur *filter = GST_FACEBLUR (obj); + GstFaceBlur *filter = GST_FACE_BLUR (obj); if (filter->cvImage) { cvReleaseImage (&filter->cvImage); @@ -128,7 +128,7 @@ gst_faceblur_finalize (GObject * obj) /* GObject vmethod implementations */ static void -gst_faceblur_base_init (gpointer gclass) +gst_face_blur_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); @@ -138,24 +138,22 @@ gst_faceblur_base_init (gpointer gclass) "Blurs faces in images and videos", "Michael Sheldon "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the faceblur's class */ static void -gst_faceblur_class_init (GstfaceblurClass * klass) +gst_face_blur_class_init (GstFaceBlurClass * klass) { GObjectClass *gobject_class; gobject_class = (GObjectClass *) klass; parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_faceblur_finalize); - gobject_class->set_property = gst_faceblur_set_property; - gobject_class->get_property = gst_faceblur_get_property; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_face_blur_finalize); + gobject_class->set_property = gst_face_blur_set_property; + gobject_class->get_property = gst_face_blur_get_property; g_object_class_install_property (gobject_class, PROP_PROFILE, g_param_spec_string ("profile", "Profile", @@ -169,15 +167,15 @@ gst_faceblur_class_init (GstfaceblurClass * klass) * initialize instance structure */ static void -gst_faceblur_init (Gstfaceblur * filter, GstfaceblurClass * gclass) +gst_face_blur_init (GstFaceBlur * filter, GstFaceBlurClass * gclass) { filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_setcaps_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_faceblur_set_caps)); + GST_DEBUG_FUNCPTR (gst_face_blur_set_caps)); gst_pad_set_getcaps_function (filter->sinkpad, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_pad_set_chain_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_faceblur_chain)); + GST_DEBUG_FUNCPTR (gst_face_blur_chain)); filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_getcaps_function (filter->srcpad, @@ -186,20 +184,20 @@ gst_faceblur_init (Gstfaceblur * filter, GstfaceblurClass * gclass) gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); filter->profile = g_strdup (DEFAULT_PROFILE); - gst_faceblur_load_profile (filter); + gst_face_blur_load_profile (filter); } static void -gst_faceblur_set_property (GObject * object, guint prop_id, +gst_face_blur_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - Gstfaceblur *filter = GST_FACEBLUR (object); + GstFaceBlur *filter = GST_FACE_BLUR (object); switch (prop_id) { case PROP_PROFILE: g_free (filter->profile); filter->profile = g_value_dup_string (value); - gst_faceblur_load_profile (filter); + gst_face_blur_load_profile (filter); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -208,10 +206,10 @@ gst_faceblur_set_property (GObject * object, guint prop_id, } static void -gst_faceblur_get_property (GObject * object, guint prop_id, +gst_face_blur_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - Gstfaceblur *filter = GST_FACEBLUR (object); + GstFaceBlur *filter = GST_FACE_BLUR (object); switch (prop_id) { case PROP_PROFILE: @@ -227,14 +225,14 @@ gst_faceblur_get_property (GObject * object, guint prop_id, /* this function handles the link with other elements */ static gboolean -gst_faceblur_set_caps (GstPad * pad, GstCaps * caps) +gst_face_blur_set_caps (GstPad * pad, GstCaps * caps) { - Gstfaceblur *filter; + GstFaceBlur *filter; GstPad *otherpad; gint width, height; GstStructure *structure; - filter = GST_FACEBLUR (gst_pad_get_parent (pad)); + filter = GST_FACE_BLUR (gst_pad_get_parent (pad)); structure = gst_caps_get_structure (caps, 0); gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); @@ -253,13 +251,13 @@ gst_faceblur_set_caps (GstPad * pad, GstCaps * caps) * this function does the actual processing */ static GstFlowReturn -gst_faceblur_chain (GstPad * pad, GstBuffer * buf) +gst_face_blur_chain (GstPad * pad, GstBuffer * buf) { - Gstfaceblur *filter; + GstFaceBlur *filter; CvSeq *faces; int i; - filter = GST_FACEBLUR (GST_OBJECT_PARENT (pad)); + filter = GST_FACE_BLUR (GST_OBJECT_PARENT (pad)); filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf); @@ -294,7 +292,7 @@ gst_faceblur_chain (GstPad * pad, GstBuffer * buf) static void -gst_faceblur_load_profile (Gstfaceblur * filter) +gst_face_blur_load_profile (GstFaceBlur * filter) { filter->cvCascade = (CvHaarClassifierCascade *) cvLoad (filter->profile, 0, 0, 0); @@ -309,12 +307,12 @@ gst_faceblur_load_profile (Gstfaceblur * filter) * register the element factories and other features */ gboolean -gst_faceblur_plugin_init (GstPlugin * plugin) +gst_face_blur_plugin_init (GstPlugin * plugin) { /* debug category for filtering log messages */ - GST_DEBUG_CATEGORY_INIT (gst_faceblur_debug, "faceblur", + GST_DEBUG_CATEGORY_INIT (gst_face_blur_debug, "faceblur", 0, "Blurs faces in images and videos"); return gst_element_register (plugin, "faceblur", GST_RANK_NONE, - GST_TYPE_FACEBLUR); + GST_TYPE_FACE_BLUR); } diff --git a/ext/opencv/gstfaceblur.h b/ext/opencv/gstfaceblur.h index 9c98ce8..0c13251 100644 --- a/ext/opencv/gstfaceblur.h +++ b/ext/opencv/gstfaceblur.h @@ -43,8 +43,8 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_FACEBLUR_H__ -#define __GST_FACEBLUR_H__ +#ifndef __GST_FACE_BLUR_H__ +#define __GST_FACE_BLUR_H__ #include #include @@ -55,20 +55,20 @@ G_BEGIN_DECLS /* #defines don't like whitespacey bits */ -#define GST_TYPE_FACEBLUR \ - (gst_faceblur_get_type()) -#define GST_FACEBLUR(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FACEBLUR,Gstfaceblur)) -#define GST_FACEBLUR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FACEBLUR,GstfaceblurClass)) -#define GST_IS_FACEBLUR(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FACEBLUR)) -#define GST_IS_FACEBLUR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FACEBLUR)) -typedef struct _Gstfaceblur Gstfaceblur; -typedef struct _GstfaceblurClass GstfaceblurClass; +#define GST_TYPE_FACE_BLUR \ + (gst_face_blur_get_type()) +#define GST_FACE_BLUR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FACE_BLUR,GstFaceBlur)) +#define GST_FACE_BLUR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FACE_BLUR,GstFaceBlurClass)) +#define GST_IS_FACE_BLUR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FACE_BLUR)) +#define GST_IS_FACE_BLUR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FACE_BLUR)) +typedef struct _GstFaceBlur GstFaceBlur; +typedef struct _GstFaceBlurClass GstFaceBlurClass; -struct _Gstfaceblur +struct _GstFaceBlur { GstElement element; @@ -83,14 +83,14 @@ struct _Gstfaceblur CvMemStorage *cvStorage; }; -struct _GstfaceblurClass +struct _GstFaceBlurClass { GstElementClass parent_class; }; -GType gst_faceblur_get_type (void); +GType gst_face_blur_get_type (void); -gboolean gst_faceblur_plugin_init (GstPlugin * plugin); +gboolean gst_face_blur_plugin_init (GstPlugin * plugin); G_END_DECLS -#endif /* __GST_FACEBLUR_H__ */ +#endif /* __GST_FACE_BLUR_H__ */ diff --git a/ext/opencv/gstfacedetect.c b/ext/opencv/gstfacedetect.c index a3ced6d..0112671 100644 --- a/ext/opencv/gstfacedetect.c +++ b/ext/opencv/gstfacedetect.c @@ -3,6 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon + * Copyright (C) 2011 Stefan Sauer * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -46,28 +47,45 @@ /** * SECTION:element-facedetect * - * FIXME:Describe facedetect here. + * Performs face detection on videos and images. + * + * The image is scaled down multiple times using the GstFaceDetect::scale-factor + * until the size is <= GstFaceDetect::min-size-width or + * GstFaceDetect::min-size-height. * * * Example launch line * |[ - * gst-launch-0.10 videotestsrc ! decodebin ! ffmpegcolorspace ! facedetect ! ffmpegcolorspace ! xvimagesink - * ]| + * gst-launch-0.10 autovideosrc ! decodebin2 ! colorspace ! facedetect ! colorspace ! xvimagesink + * ]| Detect and show faces + * |[ + * gst-launch-0.10 autovideosrc ! video/x-raw-yuv,width=320,height=240 ! colorspace ! facedetect min-size-width=60 min-size-height=60 ! colorspace ! xvimagesink + * ]| Detect large faces on a smaller image + * * */ +/* FIXME: development version of OpenCV has CV_HAAR_FIND_BIGGEST_OBJECT which + * we might want to use if available + * see https://code.ros.org/svn/opencv/trunk/opencv/modules/objdetect/src/haar.cpp + */ + #ifdef HAVE_CONFIG_H # include #endif #include +#include "gstopencvutils.h" #include "gstfacedetect.h" -GST_DEBUG_CATEGORY_STATIC (gst_facedetect_debug); -#define GST_CAT_DEFAULT gst_facedetect_debug +GST_DEBUG_CATEGORY_STATIC (gst_face_detect_debug); +#define GST_CAT_DEFAULT gst_face_detect_debug -#define DEFAULT_PROFILE "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml" +#define DEFAULT_FACE_PROFILE "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml" +#define DEFAULT_NOSE_PROFILE "/usr/share/opencv/haarcascades/haarcascade_mcs_nose.xml" +#define DEFAULT_MOUTH_PROFILE "/usr/share/opencv/haarcascades/haarcascade_mcs_mouth.xml" +#define DEFAULT_EYES_PROFILE "/usr/share/opencv/haarcascades/haarcascade_mcs_eyepair_small.xml" #define DEFAULT_SCALE_FACTOR 1.1 #define DEFAULT_FLAGS 0 #define DEFAULT_MIN_NEIGHBORS 3 @@ -85,7 +103,10 @@ enum { PROP_0, PROP_DISPLAY, - PROP_PROFILE, + PROP_FACE_PROFILE, + PROP_NOSE_PROFILE, + PROP_MOUTH_PROFILE, + PROP_EYES_PROFILE, PROP_SCALE_FACTOR, PROP_MIN_NEIGHBORS, PROP_FLAGS, @@ -94,10 +115,8 @@ enum }; -/** +/* * GstOpencvFaceDetectFlags: - * @GST_CAMERABIN_FLAG_SOURCE_RESIZE: enable video crop and scale - * after capture * * Flags parameter to OpenCV's cvHaarDetectObjects function. */ @@ -134,45 +153,56 @@ gst_opencv_face_detect_flags_get_type (void) static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-rgb") + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-rgb") + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); -GST_BOILERPLATE (Gstfacedetect, gst_facedetect, GstOpencvVideoFilter, +GST_BOILERPLATE (GstFaceDetect, gst_face_detect, GstOpencvVideoFilter, GST_TYPE_OPENCV_VIDEO_FILTER); -static void gst_facedetect_set_property (GObject * object, guint prop_id, +static void gst_face_detect_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_facedetect_get_property (GObject * object, guint prop_id, +static void gst_face_detect_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_facedetect_set_caps (GstOpencvVideoFilter * transform, +static gboolean gst_face_detect_set_caps (GstOpencvVideoFilter * transform, gint in_width, gint in_height, gint in_depth, gint in_channels, gint out_width, gint out_height, gint out_depth, gint out_channels); -static GstFlowReturn gst_facedetect_transform_ip (GstOpencvVideoFilter * base, +static GstFlowReturn gst_face_detect_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf, IplImage * img); -static void gst_facedetect_load_profile (Gstfacedetect * filter); +static CvHaarClassifierCascade *gst_face_detect_load_profile (GstFaceDetect * + filter, gchar * profile); /* Clean up */ static void -gst_facedetect_finalize (GObject * obj) +gst_face_detect_finalize (GObject * obj) { - Gstfacedetect *filter = GST_FACEDETECT (obj); + GstFaceDetect *filter = GST_FACE_DETECT (obj); - if (filter->cvGray) { + if (filter->cvGray) cvReleaseImage (&filter->cvGray); - } - if (filter->cvStorage) { + if (filter->cvStorage) cvReleaseMemStorage (&filter->cvStorage); - } - g_free (filter->profile); + g_free (filter->face_profile); + g_free (filter->nose_profile); + g_free (filter->mouth_profile); + g_free (filter->eyes_profile); + + if (filter->cvFaceDetect) + cvReleaseHaarClassifierCascade (&filter->cvFaceDetect); + if (filter->cvNoseDetect) + cvReleaseHaarClassifierCascade (&filter->cvNoseDetect); + if (filter->cvMouthDetect) + cvReleaseHaarClassifierCascade (&filter->cvMouthDetect); + if (filter->cvEyesDetect) + cvReleaseHaarClassifierCascade (&filter->cvEyesDetect); G_OBJECT_CLASS (parent_class)->finalize (obj); } @@ -180,7 +210,7 @@ gst_facedetect_finalize (GObject * obj) /* GObject vmethod implementations */ static void -gst_facedetect_base_init (gpointer gclass) +gst_face_detect_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); @@ -190,45 +220,56 @@ gst_facedetect_base_init (gpointer gclass) "Performs face detection on videos and images, providing detected positions via bus messages", "Michael Sheldon "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the facedetect's class */ static void -gst_facedetect_class_init (GstfacedetectClass * klass) +gst_face_detect_class_init (GstFaceDetectClass * klass) { GObjectClass *gobject_class; GstOpencvVideoFilterClass *gstopencvbasefilter_class; gobject_class = (GObjectClass *) klass; gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass; - parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_facedetect_finalize); - gobject_class->set_property = gst_facedetect_set_property; - gobject_class->get_property = gst_facedetect_get_property; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_face_detect_finalize); + gobject_class->set_property = gst_face_detect_set_property; + gobject_class->get_property = gst_face_detect_get_property; - gstopencvbasefilter_class->cv_trans_ip_func = gst_facedetect_transform_ip; - gstopencvbasefilter_class->cv_set_caps = gst_facedetect_set_caps; + gstopencvbasefilter_class->cv_trans_ip_func = gst_face_detect_transform_ip; + gstopencvbasefilter_class->cv_set_caps = gst_face_detect_set_caps; g_object_class_install_property (gobject_class, PROP_DISPLAY, g_param_spec_boolean ("display", "Display", "Sets whether the detected faces should be highlighted in the output", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_PROFILE, - g_param_spec_string ("profile", "Profile", + + g_object_class_install_property (gobject_class, PROP_FACE_PROFILE, + g_param_spec_string ("profile", "Face profile", "Location of Haar cascade file to use for face detection", - DEFAULT_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + DEFAULT_FACE_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_NOSE_PROFILE, + g_param_spec_string ("nose-profile", "Nose profile", + "Location of Haar cascade file to use for nose detection", + DEFAULT_NOSE_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MOUTH_PROFILE, + g_param_spec_string ("mouth-profile", "Mouth profile", + "Location of Haar cascade file to use for mouth detection", + DEFAULT_MOUTH_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_EYES_PROFILE, + g_param_spec_string ("eyes-profile", "Eyes profile", + "Location of Haar cascade file to use for eye-pair detection", + DEFAULT_EYES_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_FLAGS, g_param_spec_flags ("flags", "Flags", "Flags to cvHaarDetectObjects", GST_TYPE_OPENCV_FACE_DETECT_FLAGS, DEFAULT_FLAGS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_SCALE_FACTOR, g_param_spec_double ("scale-factor", "Scale factor", - "Factor by which the windows is scaled after each scan", + "Factor by which the frame is scaled after each object scan", 1.1, 10.0, DEFAULT_SCALE_FACTOR, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_MIN_NEIGHBORS, @@ -237,47 +278,82 @@ gst_facedetect_class_init (GstfacedetectClass * klass) "an object", 0, G_MAXINT, DEFAULT_MIN_NEIGHBORS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_MIN_SIZE_WIDTH, - g_param_spec_int ("min-size-width", "Minimum size width", - "Minimum window width size", 0, G_MAXINT, DEFAULT_MIN_SIZE_WIDTH, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("min-size-width", "Minimum face width", + "Minimum area width to be recognized as a face", 0, G_MAXINT, + DEFAULT_MIN_SIZE_WIDTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_MIN_SIZE_HEIGHT, - g_param_spec_int ("min-size-height", "Minimum size height", - "Minimum window height size", 0, G_MAXINT, DEFAULT_MIN_SIZE_HEIGHT, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("min-size-height", "Minimum face height", + "Minimum area height to be recognized as a face", 0, G_MAXINT, + DEFAULT_MIN_SIZE_HEIGHT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } /* initialize the new element - * instantiate pads and add them to element - * set pad calback functions * initialize instance structure */ static void -gst_facedetect_init (Gstfacedetect * filter, GstfacedetectClass * gclass) +gst_face_detect_init (GstFaceDetect * filter, GstFaceDetectClass * gclass) { - filter->profile = g_strdup (DEFAULT_PROFILE); + filter->face_profile = g_strdup (DEFAULT_FACE_PROFILE); + filter->nose_profile = g_strdup (DEFAULT_NOSE_PROFILE); + filter->mouth_profile = g_strdup (DEFAULT_MOUTH_PROFILE); + filter->eyes_profile = g_strdup (DEFAULT_EYES_PROFILE); filter->display = TRUE; filter->scale_factor = DEFAULT_SCALE_FACTOR; filter->min_neighbors = DEFAULT_MIN_NEIGHBORS; filter->flags = DEFAULT_FLAGS; filter->min_size_width = DEFAULT_MIN_SIZE_WIDTH; filter->min_size_height = DEFAULT_MIN_SIZE_HEIGHT; - gst_facedetect_load_profile (filter); + filter->cvFaceDetect = + gst_face_detect_load_profile (filter, filter->face_profile); + filter->cvNoseDetect = + gst_face_detect_load_profile (filter, filter->nose_profile); + filter->cvMouthDetect = + gst_face_detect_load_profile (filter, filter->mouth_profile); + filter->cvEyesDetect = + gst_face_detect_load_profile (filter, filter->eyes_profile); gst_opencv_video_filter_set_in_place (GST_OPENCV_VIDEO_FILTER_CAST (filter), TRUE); } static void -gst_facedetect_set_property (GObject * object, guint prop_id, +gst_face_detect_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - Gstfacedetect *filter = GST_FACEDETECT (object); + GstFaceDetect *filter = GST_FACE_DETECT (object); switch (prop_id) { - case PROP_PROFILE: - g_free (filter->profile); - filter->profile = g_value_dup_string (value); - gst_facedetect_load_profile (filter); + case PROP_FACE_PROFILE: + g_free (filter->face_profile); + if (filter->cvFaceDetect) + cvReleaseHaarClassifierCascade (&filter->cvFaceDetect); + filter->face_profile = g_value_dup_string (value); + filter->cvFaceDetect = + gst_face_detect_load_profile (filter, filter->face_profile); + break; + case PROP_NOSE_PROFILE: + g_free (filter->nose_profile); + if (filter->cvNoseDetect) + cvReleaseHaarClassifierCascade (&filter->cvNoseDetect); + filter->nose_profile = g_value_dup_string (value); + filter->cvNoseDetect = + gst_face_detect_load_profile (filter, filter->nose_profile); + break; + case PROP_MOUTH_PROFILE: + g_free (filter->mouth_profile); + if (filter->cvMouthDetect) + cvReleaseHaarClassifierCascade (&filter->cvMouthDetect); + filter->mouth_profile = g_value_dup_string (value); + filter->cvMouthDetect = + gst_face_detect_load_profile (filter, filter->mouth_profile); + break; + case PROP_EYES_PROFILE: + g_free (filter->eyes_profile); + if (filter->cvEyesDetect) + cvReleaseHaarClassifierCascade (&filter->cvEyesDetect); + filter->eyes_profile = g_value_dup_string (value); + filter->cvEyesDetect = + gst_face_detect_load_profile (filter, filter->eyes_profile); break; case PROP_DISPLAY: filter->display = g_value_get_boolean (value); @@ -304,14 +380,23 @@ gst_facedetect_set_property (GObject * object, guint prop_id, } static void -gst_facedetect_get_property (GObject * object, guint prop_id, +gst_face_detect_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - Gstfacedetect *filter = GST_FACEDETECT (object); + GstFaceDetect *filter = GST_FACE_DETECT (object); switch (prop_id) { - case PROP_PROFILE: - g_value_set_string (value, filter->profile); + case PROP_FACE_PROFILE: + g_value_set_string (value, filter->face_profile); + break; + case PROP_NOSE_PROFILE: + g_value_set_string (value, filter->nose_profile); + break; + case PROP_MOUTH_PROFILE: + g_value_set_string (value, filter->mouth_profile); + break; + case PROP_EYES_PROFILE: + g_value_set_string (value, filter->eyes_profile); break; case PROP_DISPLAY: g_value_set_boolean (value, filter->display); @@ -341,13 +426,13 @@ gst_facedetect_get_property (GObject * object, guint prop_id, /* this function handles the link with other elements */ static gboolean -gst_facedetect_set_caps (GstOpencvVideoFilter * transform, gint in_width, +gst_face_detect_set_caps (GstOpencvVideoFilter * transform, gint in_width, gint in_height, gint in_depth, gint in_channels, gint out_width, gint out_height, gint out_depth, gint out_channels) { - Gstfacedetect *filter; + GstFaceDetect *filter; - filter = GST_FACEDETECT (transform); + filter = GST_FACE_DETECT (transform); if (filter->cvGray) cvReleaseImage (&filter->cvGray); @@ -364,7 +449,7 @@ gst_facedetect_set_caps (GstOpencvVideoFilter * transform, gint in_width, } static GstMessage * -gst_facedetect_message_new (Gstfacedetect * filter, GstBuffer * buf) +gst_face_detect_message_new (GstFaceDetect * filter, GstBuffer * buf) { GstBaseTransform *trans = GST_BASE_TRANSFORM_CAST (filter); GstStructure *s; @@ -385,28 +470,36 @@ gst_facedetect_message_new (Gstfacedetect * filter, GstBuffer * buf) } -/* chain function - * this function does the actual processing +/* + * Performs the face detection */ static GstFlowReturn -gst_facedetect_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf, +gst_face_detect_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf, IplImage * img) { - Gstfacedetect *filter; - CvSeq *faces; - int i; - - filter = GST_FACEDETECT (base); + GstFaceDetect *filter = GST_FACE_DETECT (base); - cvCvtColor (img, filter->cvGray, CV_RGB2GRAY); - cvClearMemStorage (filter->cvStorage); - - if (filter->cvCascade) { + if (filter->cvFaceDetect) { GstMessage *msg = NULL; GValue facelist = { 0 }; + CvSeq *faces; + CvSeq *mouth, *nose, *eyes; + gint i; + gboolean do_display = FALSE; + + if (filter->display) { + if (gst_buffer_is_writable (buf)) { + do_display = TRUE; + } else { + GST_LOG_OBJECT (filter, "Buffer is not writable, not drawing faces."); + } + } + + cvCvtColor (img, filter->cvGray, CV_RGB2GRAY); + cvClearMemStorage (filter->cvStorage); faces = - cvHaarDetectObjects (filter->cvGray, filter->cvCascade, + cvHaarDetectObjects (filter->cvGray, filter->cvFaceDetect, filter->cvStorage, filter->scale_factor, filter->min_neighbors, filter->flags, cvSize (filter->min_size_width, filter->min_size_height) #if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2) @@ -415,43 +508,175 @@ gst_facedetect_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf, ); if (faces && faces->total > 0) { - msg = gst_facedetect_message_new (filter, buf); + msg = gst_face_detect_message_new (filter, buf); g_value_init (&facelist, GST_TYPE_LIST); } for (i = 0; i < (faces ? faces->total : 0); i++) { CvRect *r = (CvRect *) cvGetSeqElem (faces, i); GValue value = { 0 }; + GstStructure *s; + guint mw = filter->min_size_width / 8; + guint mh = filter->min_size_height / 8; + guint rnx, rny, rnw, rnh; + guint rmx, rmy, rmw, rmh; + guint rex, rey, rew, reh; + gboolean have_nose, have_mouth, have_eyes; + + /* detect face features */ + + rnx = r->x + r->width / 4; + rny = r->y + r->height / 4; + rnw = r->width / 2; + rnh = r->height / 2; + cvSetImageROI (filter->cvGray, cvRect (rnx, rny, rnw, rnh)); + nose = + cvHaarDetectObjects (filter->cvGray, filter->cvNoseDetect, + filter->cvStorage, filter->scale_factor, filter->min_neighbors, + filter->flags, cvSize (mw, mh) +#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2) + , cvSize (mw + 2, mh + 2) +#endif + ); + have_nose = (nose && nose->total); + cvResetImageROI (filter->cvGray); + + rmx = r->x; + rmy = r->y + r->height / 2; + rmw = r->width; + rmh = r->height / 2; + cvSetImageROI (filter->cvGray, cvRect (rmx, rmy, rmw, rmh)); + mouth = + cvHaarDetectObjects (filter->cvGray, filter->cvMouthDetect, + filter->cvStorage, filter->scale_factor, filter->min_neighbors, + filter->flags, cvSize (mw, mh) +#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2) + , cvSize (mw + 2, mh + 2) +#endif + ); + have_mouth = (mouth && mouth->total); + cvResetImageROI (filter->cvGray); + + rex = r->x; + rey = r->y; + rew = r->width; + reh = r->height / 2; + cvSetImageROI (filter->cvGray, cvRect (rex, rey, rew, reh)); + eyes = + cvHaarDetectObjects (filter->cvGray, filter->cvEyesDetect, + filter->cvStorage, filter->scale_factor, filter->min_neighbors, + filter->flags, cvSize (mw, mh) +#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2) + , cvSize (mw + 2, mh + 2) +#endif + ); + have_eyes = (eyes && eyes->total); + cvResetImageROI (filter->cvGray); - GstStructure *s = gst_structure_new ("face", + GST_LOG_OBJECT (filter, + "%2d/%2d: x,y = %4u,%4u: w.h = %4u,%4u : features(e,n,m) = %d,%d,%d", + i, faces->total, r->x, r->y, r->width, r->height, + have_eyes, have_nose, have_mouth); + + /* ignore 'face' where we don't fix mount/nose/eyes ? */ + if (!(have_eyes && have_nose && have_mouth)) + continue; + + s = gst_structure_new ("face", "x", G_TYPE_UINT, r->x, "y", G_TYPE_UINT, r->y, "width", G_TYPE_UINT, r->width, "height", G_TYPE_UINT, r->height, NULL); - - GstMessage *m = gst_message_new_element (GST_OBJECT (filter), s); + if (nose && nose->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (nose, 0); + GST_LOG_OBJECT (filter, "nose/%d: x,y = %4u,%4u: w.h = %4u,%4u", + nose->total, rnx + sr->x, rny + sr->y, sr->width, sr->height); + gst_structure_set (s, + "nose->x", G_TYPE_UINT, rnx + sr->x, + "nose->y", G_TYPE_UINT, rny + sr->y, + "nose->width", G_TYPE_UINT, sr->width, + "nose->height", G_TYPE_UINT, sr->height, NULL); + } + if (mouth && mouth->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (mouth, 0); + GST_LOG_OBJECT (filter, "mouth/%d: x,y = %4u,%4u: w.h = %4u,%4u", + mouth->total, rmx + sr->x, rmy + sr->y, sr->width, sr->height); + gst_structure_set (s, + "mouth->x", G_TYPE_UINT, rmx + sr->x, + "mouth->y", G_TYPE_UINT, rmy + sr->y, + "mouth->width", G_TYPE_UINT, sr->width, + "mouth->height", G_TYPE_UINT, sr->height, NULL); + } + if (eyes && eyes->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (eyes, 0); + GST_LOG_OBJECT (filter, "eyes/%d: x,y = %4u,%4u: w.h = %4u,%4u", + eyes->total, rex + sr->x, rey + sr->y, sr->width, sr->height); + gst_structure_set (s, + "eyes->x", G_TYPE_UINT, rex + sr->x, + "eyes->y", G_TYPE_UINT, rey + sr->y, + "eyes->width", G_TYPE_UINT, sr->width, + "eyes->height", G_TYPE_UINT, sr->height, NULL); + } g_value_init (&value, GST_TYPE_STRUCTURE); gst_value_set_structure (&value, s); gst_value_list_append_value (&facelist, &value); g_value_unset (&value); - gst_element_post_message (GST_ELEMENT (filter), m); - - if (filter->display) { - if (gst_buffer_is_writable (buf)) { - CvPoint center; - int radius; - center.x = cvRound ((r->x + r->width * 0.5)); - center.y = cvRound ((r->y + r->height * 0.5)); - radius = cvRound ((r->width + r->height) * 0.25); - cvCircle (img, center, radius, CV_RGB (255, 32, 32), 3, 8, 0); - } else { - GST_DEBUG_OBJECT (filter, "Buffer is not writable, not drawing " - "circles for faces"); + if (do_display) { + CvPoint center; + CvSize axes; + gdouble w, h; + gint cb = 255 - ((i & 3) << 7); + gint cg = 255 - ((i & 12) << 5); + gint cr = 255 - ((i & 48) << 3); + + w = r->width / 2; + h = r->height / 2; + center.x = cvRound ((r->x + w)); + center.y = cvRound ((r->y + h)); + axes.width = w; + axes.height = h * 1.25; /* tweak for face form */ + cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb), + 3, 8, 0); + + if (nose && nose->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (nose, 0); + + w = sr->width / 2; + h = sr->height / 2; + center.x = cvRound ((rnx + sr->x + w)); + center.y = cvRound ((rny + sr->y + h)); + axes.width = w; + axes.height = h * 1.25; /* tweak for nose form */ + cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb), + 1, 8, 0); + } + if (mouth && mouth->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (mouth, 0); + + w = sr->width / 2; + h = sr->height / 2; + center.x = cvRound ((rmx + sr->x + w)); + center.y = cvRound ((rmy + sr->y + h)); + axes.width = w * 1.5; /* tweak for mouth form */ + axes.height = h; + cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb), + 1, 8, 0); + } + if (eyes && eyes->total) { + CvRect *sr = (CvRect *) cvGetSeqElem (eyes, 0); + + w = sr->width / 2; + h = sr->height / 2; + center.x = cvRound ((rex + sr->x + w)); + center.y = cvRound ((rey + sr->y + h)); + axes.width = w * 1.5; /* tweak for eyes form */ + axes.height = h; + cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb), + 1, 8, 0); } } - } if (msg) { @@ -465,14 +690,16 @@ gst_facedetect_transform_ip (GstOpencvVideoFilter * base, GstBuffer * buf, } -static void -gst_facedetect_load_profile (Gstfacedetect * filter) +static CvHaarClassifierCascade * +gst_face_detect_load_profile (GstFaceDetect * filter, gchar * profile) { - filter->cvCascade = - (CvHaarClassifierCascade *) cvLoad (filter->profile, 0, 0, 0); - if (!filter->cvCascade) { - GST_WARNING ("Couldn't load Haar classifier cascade: %s.", filter->profile); + CvHaarClassifierCascade *cascade; + + if (!(cascade = (CvHaarClassifierCascade *) cvLoad (profile, 0, 0, 0))) { + GST_WARNING_OBJECT (filter, "Couldn't load Haar classifier cascade: %s.", + profile); } + return cascade; } @@ -481,13 +708,13 @@ gst_facedetect_load_profile (Gstfacedetect * filter) * register the element factories and other features */ gboolean -gst_facedetect_plugin_init (GstPlugin * plugin) +gst_face_detect_plugin_init (GstPlugin * plugin) { /* debug category for fltering log messages */ - GST_DEBUG_CATEGORY_INIT (gst_facedetect_debug, "facedetect", + GST_DEBUG_CATEGORY_INIT (gst_face_detect_debug, "facedetect", 0, "Performs face detection on videos and images, providing detected positions via bus messages"); return gst_element_register (plugin, "facedetect", GST_RANK_NONE, - GST_TYPE_FACEDETECT); + GST_TYPE_FACE_DETECT); } diff --git a/ext/opencv/gstfacedetect.h b/ext/opencv/gstfacedetect.h index a5a0b49..c748e7e 100644 --- a/ext/opencv/gstfacedetect.h +++ b/ext/opencv/gstfacedetect.h @@ -3,6 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon + * Copyright (C) 2011 Stefan Sauer * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -43,8 +44,8 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_FACEDETECT_H__ -#define __GST_FACEDETECT_H__ +#ifndef __GST_FACE_DETECT_H__ +#define __GST_FACE_DETECT_H__ #include #include @@ -56,26 +57,29 @@ G_BEGIN_DECLS /* #defines don't like whitespacey bits */ -#define GST_TYPE_FACEDETECT \ - (gst_facedetect_get_type()) -#define GST_FACEDETECT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FACEDETECT,Gstfacedetect)) -#define GST_FACEDETECT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FACEDETECT,GstfacedetectClass)) -#define GST_IS_FACEDETECT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FACEDETECT)) -#define GST_IS_FACEDETECT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FACEDETECT)) -typedef struct _Gstfacedetect Gstfacedetect; -typedef struct _GstfacedetectClass GstfacedetectClass; +#define GST_TYPE_FACE_DETECT \ + (gst_face_detect_get_type()) +#define GST_FACE_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FACE_DETECT,GstFaceDetect)) +#define GST_FACE_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FACE_DETECT,GstFaceDetectClass)) +#define GST_IS_FACE_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FACE_DETECT)) +#define GST_IS_FACE_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FACE_DETECT)) +typedef struct _GstFaceDetect GstFaceDetect; +typedef struct _GstFaceDetectClass GstFaceDetectClass; -struct _Gstfacedetect +struct _GstFaceDetect { GstOpencvVideoFilter element; gboolean display; - gchar *profile; + gchar *face_profile; + gchar *nose_profile; + gchar *mouth_profile; + gchar *eyes_profile; gdouble scale_factor; gint min_neighbors; gint flags; @@ -83,18 +87,21 @@ struct _Gstfacedetect gint min_size_height; IplImage *cvGray; - CvHaarClassifierCascade *cvCascade; + CvHaarClassifierCascade *cvFaceDetect; + CvHaarClassifierCascade *cvNoseDetect; + CvHaarClassifierCascade *cvMouthDetect; + CvHaarClassifierCascade *cvEyesDetect; CvMemStorage *cvStorage; }; -struct _GstfacedetectClass +struct _GstFaceDetectClass { GstOpencvVideoFilterClass parent_class; }; -GType gst_facedetect_get_type (void); +GType gst_face_detect_get_type (void); -gboolean gst_facedetect_plugin_init (GstPlugin * plugin); +gboolean gst_face_detect_plugin_init (GstPlugin * plugin); G_END_DECLS -#endif /* __GST_FACEDETECT_H__ */ +#endif /* __GST_FACE_DETECT_H__ */ diff --git a/ext/opencv/gstmotioncells.c b/ext/opencv/gstmotioncells.c new file mode 100644 index 0000000..67aa339 --- /dev/null +++ b/ext/opencv/gstmotioncells.c @@ -0,0 +1,1096 @@ +/* + * GStreamer MotioCells detect areas of motion + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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-motioncells + * + * Performs motion detection on videos. + * + * + * Example launch line + * |[ + * gst-launch-0.10 videotestsrc pattern=18 ! videorate ! videoscale ! video/x-raw-yuv,width=320,height=240,framerate=5/1 ! ffmpegcolorspace ! motioncells ! ffmpegcolorspace ! xvimagesink + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include + +#include +#include "gstmotioncells.h" +#include "motioncells_wrapper.h" +#include + +GST_DEBUG_CATEGORY_STATIC (gst_motion_cells_debug); +#define GST_CAT_DEFAULT gst_motion_cells_debug + +#define GRID_DEF 10 +#define GRID_MIN 8 +#define GRID_MAX 32 +#define SENSITIVITY_DEFAULT 0.5 +#define SENSITIVITY_MIN 0 +#define SENSITIVITY_MAX 1 +#define THRESHOLD_MIN 0 +#define THRESHOLD_DEFAULT 0.01 +#define THRESHOLD_MAX 1.0 +#define GAP_MIN 1 +#define GAP_DEF 5 +#define GAP_MAX 60 +#define POST_NO_MOTION_MIN 0 +#define POST_NO_MOTION_DEF 0 +#define POST_NO_MOTION_MAX 180 +#define MINIMUM_MOTION_FRAMES_MIN 1 +#define MINIMUM_MOTION_FRAMES_DEF 1 +#define MINIMUM_MOTION_FRAMES_MAX 60 +#define THICKNESS_MIN -1 +#define THICKNESS_DEF 1 +#define THICKNESS_MAX 5 +#define DATE_MIN 0 +#define DATE_DEF 1 +#define DATE_MAX LONG_MAX +#define DEF_DATAFILEEXT "vamc" +#define MSGLEN 6 +#define BUSMSGLEN 20 + +#define GFREE(POINTER)\ + {\ + g_free(POINTER);\ + POINTER = NULL;\ + } + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_GRID_X, + PROP_GRID_Y, + PROP_SENSITIVITY, + PROP_THRESHOLD, + PROP_DISPLAY, + PROP_DATE, + PROP_DATAFILE, + PROP_DATAFILE_EXT, + PROP_MOTIONMASKCOORD, + PROP_MOTIONMASKCELLSPOS, + PROP_CELLSCOLOR, + PROP_MOTIONCELLSIDX, + PROP_GAP, + PROP_POSTNOMOTION, + PROP_MINIMUNMOTIONFRAMES, + PROP_CALCULATEMOTION, + PROP_POSTALLMOTION, + PROP_USEALPHA, + PROP_MOTIONCELLTHICKNESS +}; + +/* the capabilities of the inputs and outputs. + */ +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB)); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB)); + +GST_BOILERPLATE (GstMotioncells, gst_motion_cells, GstElement, + GST_TYPE_ELEMENT); + +static void gst_motion_cells_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_motion_cells_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_motion_cells_set_caps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_motion_cells_chain (GstPad * pad, GstBuffer * buf); + +static void gst_motioncells_update_motion_cells (GstMotioncells * filter); +static void gst_motioncells_update_motion_masks (GstMotioncells * filter); + +/* Clean up */ +static void +gst_motion_cells_finalize (GObject * obj) +{ + GstMotioncells *filter = gst_motion_cells (obj); + + motion_cells_free (filter->id); + + //freeing previously allocated dynamic array + if (filter->motionmaskcoord_count > 0) { + GFREE (filter->motionmaskcoords); + } + + if (filter->motionmaskcells_count > 0) { + GFREE (filter->motionmaskcellsidx); + } + if (filter->motioncells_count > 0) { + GFREE (filter->motioncellsidx); + } + + if (filter->cvImage) { + cvReleaseImage (&filter->cvImage); + } + + GFREE (filter->motioncellscolor); + GFREE (filter->prev_datafile); + GFREE (filter->cur_datafile); + GFREE (filter->basename_datafile); + GFREE (filter->datafile_extension); + + G_OBJECT_CLASS (parent_class)->finalize (obj); +} + +/* GObject vmethod implementations */ +static void +gst_motion_cells_base_init (gpointer gclass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_set_details_simple (element_class, + "motioncells", + "Filter/Effect/Video", + "Performs motion detection on videos and images, providing detected motion cells index via bus messages", + "Robert Jobbagy , Nicola Murino "); + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); +} + +/* initialize the motioncells's class */ +static void +gst_motion_cells_class_init (GstMotioncellsClass * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_motion_cells_finalize); + gobject_class->set_property = gst_motion_cells_set_property; + gobject_class->get_property = gst_motion_cells_get_property; + + g_object_class_install_property (gobject_class, PROP_GRID_X, + g_param_spec_int ("gridx", "Number of Horizontal Grids", + "You can give number of horizontal grid cells.", GRID_MIN, GRID_MAX, + GRID_DEF, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_GRID_Y, + g_param_spec_int ("gridy", "Number of Vertical Grids", + "You can give number of vertical grid cells.", GRID_MIN, GRID_MAX, + GRID_DEF, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_SENSITIVITY, + g_param_spec_double ("sensitivity", "Motion Sensitivity", + "You can tunning the element motion sensitivity.", SENSITIVITY_MIN, + SENSITIVITY_MAX, SENSITIVITY_DEFAULT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_THRESHOLD, + g_param_spec_double ("threshold", "Lower bound of motion cells number", + "Threshold value for motion, when motion cells number greater sum cells * threshold, we show motion.", + THRESHOLD_MIN, THRESHOLD_MAX, THRESHOLD_DEFAULT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_GAP, + g_param_spec_int ("gap", + "Gap is time in second, elapsed time from last motion timestamp. ", + "If elapsed time minus form last motion timestamp is greater or equal than gap then we post motion finished bus message. ", + GAP_MIN, GAP_MAX, GAP_DEF, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_POSTNOMOTION, + g_param_spec_int ("postnomotion", "POSTNOMOTION", + "If non 0 post a no_motion event is posted on the bus if no motion is detected for N seconds", + POST_NO_MOTION_MIN, POST_NO_MOTION_MAX, POST_NO_MOTION_DEF, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MINIMUNMOTIONFRAMES, + g_param_spec_int ("minimummotionframes", "MINIMUN MOTION FRAMES", + "Define the minimum number of motion frames that trigger a motion event", + MINIMUM_MOTION_FRAMES_MIN, MINIMUM_MOTION_FRAMES_MAX, + MINIMUM_MOTION_FRAMES_DEF, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DISPLAY, + g_param_spec_boolean ("display", "Display", + "Motion Cells visible or not on Current Frame", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_POSTALLMOTION, + g_param_spec_boolean ("postallmotion", "Post All Motion", + "Element post bus msg for every motion frame or just motion start and motion stop", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USEALPHA, + g_param_spec_boolean ("usealpha", "Use alpha", + "Use or not alpha blending on frames with motion cells", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DATE, + g_param_spec_long ("date", "Motion Cell Date", + "Current Date in milliseconds", DATE_MIN, DATE_MAX, DATE_DEF, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DATAFILE, + g_param_spec_string ("datafile", "DataFile", + "Location of motioncells data file (empty string means no saving)", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DATAFILE_EXT, + g_param_spec_string ("datafileextension", "DataFile Extension", + "Extension of datafile", DEF_DATAFILEEXT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MOTIONMASKCOORD, + g_param_spec_string ("motionmaskcoords", "Motion Mask with Coordinates", + "The upper left x, y and lower right x, y coordinates separated with \":\", " + "describe a region. Regions separated with \",\"", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MOTIONMASKCELLSPOS, + g_param_spec_string ("motionmaskcellspos", + "Motion Mask with Cells Position", + "The line and column idx separated with \":\" what cells want we mask-out, " + "describe a cell. Cells separated with \",\"", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CELLSCOLOR, + g_param_spec_string ("cellscolor", "Color of Motion Cells", + "The color of motion cells separated with \",\"", "255,255,0", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MOTIONCELLSIDX, + g_param_spec_string ("motioncellsidx", "Motion Cells Of Interest(MOCI)", + "The line and column idx separated with \":\", " + "describe a cell. Cells separated with \",\"", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CALCULATEMOTION, + g_param_spec_boolean ("calculatemotion", "Calculate Motion", + "If needs calculate motion on frame you need this property setting true otherwise false", + TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_MOTIONCELLTHICKNESS, + g_param_spec_int ("motioncellthickness", "Motion Cell Thickness", + "Motion Cell Border Thickness, if it's -1 then motion cell will be fill", + THICKNESS_MIN, THICKNESS_MAX, THICKNESS_DEF, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/* initialize the new element + * instantiate pads and add them to element + * set pad callback functions + * initialize instance structure + */ +static void +gst_motion_cells_init (GstMotioncells * filter, GstMotioncellsClass * gclass) +{ + filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_pad_set_setcaps_function (filter->sinkpad, + GST_DEBUG_FUNCPTR (gst_motion_cells_set_caps)); + gst_pad_set_getcaps_function (filter->sinkpad, + GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); + gst_pad_set_chain_function (filter->sinkpad, + GST_DEBUG_FUNCPTR (gst_motion_cells_chain)); + + filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_getcaps_function (filter->srcpad, + GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); + + gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); + gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); + + filter->display = TRUE; + filter->calculate_motion = TRUE; + + filter->prevgridx = 0; + filter->prevgridy = 0; + filter->gridx = GRID_DEF; + filter->gridy = GRID_DEF; + filter->gap = GAP_DEF; + filter->postnomotion = POST_NO_MOTION_DEF; + filter->minimum_motion_frames = MINIMUM_MOTION_FRAMES_DEF; + + filter->prev_datafile = g_strdup (NULL); + filter->cur_datafile = g_strdup (NULL); + filter->basename_datafile = g_strdup (NULL); + filter->datafile_extension = g_strdup (DEF_DATAFILEEXT); + filter->sensitivity = SENSITIVITY_DEFAULT; + filter->threshold = THRESHOLD_DEFAULT; + + filter->motionmaskcoord_count = 0; + filter->motionmaskcoords = NULL; + filter->motionmaskcells_count = 0; + filter->motionmaskcellsidx = NULL; + filter->motioncellscolor = g_new0 (cellscolor, 1); + filter->motioncellscolor->R_channel_value = 255; + filter->motioncellscolor->G_channel_value = 255; + filter->motioncellscolor->B_channel_value = 0; + filter->motioncellsidx = NULL; + filter->motioncells_count = 0; + filter->motion_begin_timestamp = 0; + filter->last_motion_timestamp = 0; + filter->last_nomotion_notified = 0; + filter->consecutive_motion = 0; + filter->motion_timestamp = 0; + filter->prev_buff_timestamp = 0; + filter->cur_buff_timestamp = 0; + filter->diff_timestamp = -1; + gettimeofday (&filter->tv, NULL); + filter->starttime = 1000 * filter->tv.tv_sec; + filter->previous_motion = false; + filter->changed_datafile = false; + filter->postallmotion = false; + filter->usealpha = true; + filter->firstdatafile = false; + filter->firstgridx = true; + filter->firstgridy = true; + filter->changed_gridx = false; + filter->changed_gridy = false; + filter->firstframe = true; + filter->changed_startime = false; + filter->sent_init_error_msg = false; + filter->sent_save_error_msg = false; + filter->thickness = THICKNESS_DEF; + + filter->datafileidx = 0; + filter->id = motion_cells_init (); + +} + +static void +gst_motion_cells_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstMotioncells *filter = gst_motion_cells (object); + //variables for overlay regions setup + gchar **strs, **colorstr, **motioncellsstr, **motionmaskcellsstr; + int i, ux, uy, lx, ly; + int r, g, b; + int cellscolorscnt = 0; + int linidx, colidx, masklinidx, maskcolidx; + int tmpux = -1; + int tmpuy = -1; + int tmplx = -1; + int tmply = -1; + + GST_OBJECT_LOCK (filter); + switch (prop_id) { + case PROP_GRID_X: + filter->gridx = g_value_get_int (value); + if (filter->prevgridx != filter->gridx && !filter->firstframe) { + filter->changed_gridx = true; + } + filter->prevgridx = filter->gridx; + break; + case PROP_GRID_Y: + filter->gridy = g_value_get_int (value); + if (filter->prevgridy != filter->gridy && !filter->firstframe) { + filter->changed_gridy = true; + } + filter->prevgridy = filter->gridy; + break; + case PROP_GAP: + filter->gap = g_value_get_int (value); + break; + case PROP_POSTNOMOTION: + filter->postnomotion = g_value_get_int (value); + break; + case PROP_MINIMUNMOTIONFRAMES: + filter->minimum_motion_frames = g_value_get_int (value); + break; + case PROP_SENSITIVITY: + filter->sensitivity = g_value_get_double (value); + break; + case PROP_THRESHOLD: + filter->threshold = g_value_get_double (value); + break; + case PROP_DISPLAY: + filter->display = g_value_get_boolean (value); + break; + case PROP_POSTALLMOTION: + filter->postallmotion = g_value_get_boolean (value); + break; + case PROP_USEALPHA: + filter->usealpha = g_value_get_boolean (value); + break; + case PROP_CALCULATEMOTION: + filter->calculate_motion = g_value_get_boolean (value); + break; + case PROP_DATE: + if (!filter->firstframe) { + filter->changed_startime = true; + } + filter->starttime = g_value_get_long (value); + break; + case PROP_DATAFILE: + GFREE (filter->cur_datafile); + GFREE (filter->basename_datafile); + filter->basename_datafile = g_value_dup_string (value); + + if (strlen (filter->basename_datafile) == 0) { + filter->cur_datafile = g_strdup (NULL); + break; + } + filter->cur_datafile = + g_strdup_printf ("%s-0.%s", filter->basename_datafile, + filter->datafile_extension); + if (g_strcmp0 (filter->prev_datafile, filter->basename_datafile) != 0) { + filter->changed_datafile = TRUE; + filter->sent_init_error_msg = FALSE; + filter->sent_save_error_msg = FALSE; + filter->datafileidx = 0; + motion_cells_free_resources (filter->id); + } else { + filter->changed_datafile = FALSE; + } + + GFREE (filter->prev_datafile); + filter->prev_datafile = g_strdup (filter->basename_datafile); + break; + case PROP_DATAFILE_EXT: + GFREE (filter->datafile_extension); + filter->datafile_extension = g_value_dup_string (value); + break; + case PROP_MOTIONMASKCOORD: + strs = g_strsplit (g_value_get_string (value), ",", 255); + GFREE (filter->motionmaskcoords); + //setting number of regions + for (filter->motionmaskcoord_count = 0; + strs[filter->motionmaskcoord_count] != NULL; + ++filter->motionmaskcoord_count); + if (filter->motionmaskcoord_count > 0) { + sscanf (strs[0], "%d:%d:%d:%d", &tmpux, &tmpuy, &tmplx, &tmply); + if (tmpux > -1 && tmpuy > -1 && tmplx > -1 && tmply > -1) { + filter->motionmaskcoords = + g_new0 (motionmaskcoordrect, filter->motionmaskcoord_count); + + for (i = 0; i < filter->motionmaskcoord_count; ++i) { + sscanf (strs[i], "%d:%d:%d:%d", &ux, &uy, &lx, &ly); + ux = CLAMP (ux, 0, filter->width - 1); + uy = CLAMP (uy, 0, filter->height - 1); + lx = CLAMP (lx, 0, filter->width - 1); + ly = CLAMP (ly, 0, filter->height - 1); + filter->motionmaskcoords[i].upper_left_x = ux; + filter->motionmaskcoords[i].upper_left_y = uy; + filter->motionmaskcoords[i].lower_right_x = lx; + filter->motionmaskcoords[i].lower_right_y = ly; + } + } else { + filter->motionmaskcoord_count = 0; + } + } + if (strs) + g_strfreev (strs); + tmpux = -1; + tmpuy = -1; + tmplx = -1; + tmply = -1; + break; + case PROP_MOTIONMASKCELLSPOS: + motionmaskcellsstr = g_strsplit (g_value_get_string (value), ",", 255); + GFREE (filter->motionmaskcellsidx); + //setting number of regions + for (filter->motionmaskcells_count = 0; + motionmaskcellsstr[filter->motionmaskcells_count] != NULL; + ++filter->motionmaskcells_count); + if (filter->motionmaskcells_count > 0) { + sscanf (motionmaskcellsstr[0], "%d:%d", &tmpux, &tmpuy); + if (tmpux > -1 && tmpuy > -1) { + filter->motionmaskcellsidx = + g_new0 (motioncellidx, filter->motionmaskcells_count); + for (i = 0; i < filter->motionmaskcells_count; ++i) { + sscanf (motionmaskcellsstr[i], "%d:%d", &masklinidx, &maskcolidx); + filter->motionmaskcellsidx[i].lineidx = masklinidx; + filter->motionmaskcellsidx[i].columnidx = maskcolidx; + } + } else { + filter->motionmaskcells_count = 0; + } + } + if (motionmaskcellsstr) + g_strfreev (motionmaskcellsstr); + tmpux = -1; + tmpuy = -1; + tmplx = -1; + tmply = -1; + break; + case PROP_CELLSCOLOR: + colorstr = g_strsplit (g_value_get_string (value), ",", 255); + for (cellscolorscnt = 0; colorstr[cellscolorscnt] != NULL; + ++cellscolorscnt); + if (cellscolorscnt == 3) { + sscanf (colorstr[0], "%d", &r); + sscanf (colorstr[1], "%d", &g); + sscanf (colorstr[2], "%d", &b); + //check right RGB color format + r = CLAMP (r, 1, 255); + g = CLAMP (g, 1, 255); + b = CLAMP (b, 1, 255); + filter->motioncellscolor->R_channel_value = r; + filter->motioncellscolor->G_channel_value = g; + filter->motioncellscolor->B_channel_value = b; + } + if (colorstr) + g_strfreev (colorstr); + break; + case PROP_MOTIONCELLSIDX: + motioncellsstr = g_strsplit (g_value_get_string (value), ",", 255); + + //setting number of regions + for (filter->motioncells_count = 0; + motioncellsstr[filter->motioncells_count] != NULL; + ++filter->motioncells_count); + if (filter->motioncells_count > 0) { + sscanf (motioncellsstr[0], "%d:%d", &tmpux, &tmpuy); + if (tmpux > -1 && tmpuy > -1) { + GFREE (filter->motioncellsidx); + + filter->motioncellsidx = + g_new0 (motioncellidx, filter->motioncells_count); + + for (i = 0; i < filter->motioncells_count; ++i) { + sscanf (motioncellsstr[i], "%d:%d", &linidx, &colidx); + filter->motioncellsidx[i].lineidx = linidx; + filter->motioncellsidx[i].columnidx = colidx; + } + } else { + filter->motioncells_count = 0; + } + } + if (motioncellsstr) + g_strfreev (motioncellsstr); + tmpux = -1; + tmpuy = -1; + tmplx = -1; + tmply = -1; + break; + case PROP_MOTIONCELLTHICKNESS: + filter->thickness = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + GST_OBJECT_UNLOCK (filter); +} + +static void +gst_motion_cells_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMotioncells *filter = gst_motion_cells (object); + GString *str; + int i; + + GST_OBJECT_LOCK (filter); + switch (prop_id) { + case PROP_GRID_X: + g_value_set_int (value, filter->gridx); + break; + case PROP_GRID_Y: + g_value_set_int (value, filter->gridy); + break; + case PROP_GAP: + g_value_set_int (value, filter->gap); + break; + case PROP_POSTNOMOTION: + g_value_set_int (value, filter->postnomotion); + break; + case PROP_MINIMUNMOTIONFRAMES: + g_value_set_int (value, filter->minimum_motion_frames); + break; + case PROP_SENSITIVITY: + g_value_set_double (value, filter->sensitivity); + break; + case PROP_THRESHOLD: + g_value_set_double (value, filter->threshold); + break; + case PROP_DISPLAY: + g_value_set_boolean (value, filter->display); + break; + case PROP_POSTALLMOTION: + g_value_set_boolean (value, filter->postallmotion); + break; + case PROP_USEALPHA: + g_value_set_boolean (value, filter->usealpha); + break; + case PROP_CALCULATEMOTION: + g_value_set_boolean (value, filter->calculate_motion); + break; + case PROP_DATE: + g_value_set_long (value, filter->starttime); + break; + case PROP_DATAFILE: + g_value_set_string (value, filter->basename_datafile); + break; + case PROP_DATAFILE_EXT: + g_value_set_string (value, filter->datafile_extension); + break; + case PROP_MOTIONMASKCOORD: + str = g_string_new (""); + for (i = 0; i < filter->motionmaskcoord_count; ++i) { + if (i < filter->motionmaskcoord_count - 1) + g_string_append_printf (str, "%d:%d:%d:%d,", + filter->motionmaskcoords[i].upper_left_x, + filter->motionmaskcoords[i].upper_left_y, + filter->motionmaskcoords[i].lower_right_x, + filter->motionmaskcoords[i].lower_right_y); + else + g_string_append_printf (str, "%d:%d:%d:%d", + filter->motionmaskcoords[i].upper_left_x, + filter->motionmaskcoords[i].upper_left_y, + filter->motionmaskcoords[i].lower_right_x, + filter->motionmaskcoords[i].lower_right_y); + + } + g_value_set_string (value, str->str); + g_string_free (str, TRUE); + break; + case PROP_MOTIONMASKCELLSPOS: + str = g_string_new (""); + for (i = 0; i < filter->motionmaskcells_count; ++i) { + if (i < filter->motionmaskcells_count - 1) + g_string_append_printf (str, "%d:%d,", + filter->motionmaskcellsidx[i].lineidx, + filter->motionmaskcellsidx[i].columnidx); + else + g_string_append_printf (str, "%d:%d", + filter->motionmaskcellsidx[i].lineidx, + filter->motionmaskcellsidx[i].columnidx); + } + g_value_set_string (value, str->str); + g_string_free (str, TRUE); + break; + case PROP_CELLSCOLOR: + str = g_string_new (""); + + g_string_printf (str, "%d,%d,%d", + filter->motioncellscolor->R_channel_value, + filter->motioncellscolor->G_channel_value, + filter->motioncellscolor->B_channel_value); + + g_value_set_string (value, str->str); + g_string_free (str, TRUE); + break; + case PROP_MOTIONCELLSIDX: + str = g_string_new (""); + for (i = 0; i < filter->motioncells_count; ++i) { + if (i < filter->motioncells_count - 1) + g_string_append_printf (str, "%d:%d,", + filter->motioncellsidx[i].lineidx, + filter->motioncellsidx[i].columnidx); + else + g_string_append_printf (str, "%d:%d", + filter->motioncellsidx[i].lineidx, + filter->motioncellsidx[i].columnidx); + } + g_value_set_string (value, str->str); + g_string_free (str, TRUE); + break; + case PROP_MOTIONCELLTHICKNESS: + g_value_set_int (value, filter->thickness); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + GST_OBJECT_UNLOCK (filter); +} + +static void +gst_motioncells_update_motion_cells (GstMotioncells * filter) +{ + int i = 0; + int cellscnt = 0; + int j = 0; + int newcellscnt; + motioncellidx *motioncellsidx; + for (i = 0; i < filter->motioncells_count; i++) { + if ((filter->gridx <= filter->motioncellsidx[i].columnidx) || + (filter->gridy <= filter->motioncellsidx[i].lineidx)) { + cellscnt++; + } + } + newcellscnt = filter->motioncells_count - cellscnt; + motioncellsidx = g_new0 (motioncellidx, newcellscnt); + for (i = 0; i < filter->motioncells_count; i++) { + if ((filter->motioncellsidx[i].lineidx < filter->gridy) && + (filter->motioncellsidx[i].columnidx < filter->gridx)) { + motioncellsidx[j].lineidx = filter->motioncellsidx[i].lineidx; + motioncellsidx[j].columnidx = filter->motioncellsidx[i].columnidx; + j++; + } + } + GFREE (filter->motioncellsidx); + filter->motioncells_count = newcellscnt; + filter->motioncellsidx = g_new0 (motioncellidx, filter->motioncells_count); + j = 0; + for (i = 0; i < filter->motioncells_count; i++) { + filter->motioncellsidx[i].lineidx = motioncellsidx[j].lineidx; + filter->motioncellsidx[i].columnidx = motioncellsidx[j].columnidx; + j++; + } + GFREE (motioncellsidx); +} + +static void +gst_motioncells_update_motion_masks (GstMotioncells * filter) +{ + + int i = 0; + int maskcnt = 0; + int j = 0; + int newmaskcnt; + motioncellidx *motionmaskcellsidx; + for (i = 0; i < filter->motionmaskcells_count; i++) { + if ((filter->gridx <= filter->motionmaskcellsidx[i].columnidx) || + (filter->gridy <= filter->motionmaskcellsidx[i].lineidx)) { + maskcnt++; + } + } + newmaskcnt = filter->motionmaskcells_count - maskcnt; + motionmaskcellsidx = g_new0 (motioncellidx, newmaskcnt); + for (i = 0; i < filter->motionmaskcells_count; i++) { + if ((filter->motionmaskcellsidx[i].lineidx < filter->gridy) && + (filter->motionmaskcellsidx[i].columnidx < filter->gridx)) { + motionmaskcellsidx[j].lineidx = filter->motionmaskcellsidx[i].lineidx; + motionmaskcellsidx[j].columnidx = filter->motionmaskcellsidx[i].columnidx; + j++; + } + } + GFREE (filter->motionmaskcellsidx); + filter->motionmaskcells_count = newmaskcnt; + filter->motionmaskcellsidx = + g_new0 (motioncellidx, filter->motionmaskcells_count); + j = 0; + for (i = 0; i < filter->motionmaskcells_count; i++) { + filter->motionmaskcellsidx[i].lineidx = motionmaskcellsidx[j].lineidx; + filter->motionmaskcellsidx[i].columnidx = motionmaskcellsidx[j].columnidx; + j++; + } + GFREE (motionmaskcellsidx); +} + +/* GstElement vmethod implementations */ + +/* this function handles the link with other elements */ +static gboolean +gst_motion_cells_set_caps (GstPad * pad, GstCaps * caps) +{ + GstMotioncells *filter; + GstPad *otherpad; + GstStructure *structure; + int numerator, denominator; + + filter = gst_motion_cells (gst_pad_get_parent (pad)); + structure = gst_caps_get_structure (caps, 0); + gst_structure_get_int (structure, "width", &filter->width); + gst_structure_get_int (structure, "height", &filter->height); + gst_structure_get_fraction (structure, "framerate", &numerator, &denominator); + filter->framerate = (double) numerator / (double) denominator; + if (filter->cvImage) + cvReleaseImage (&filter->cvImage); + filter->cvImage = + cvCreateImage (cvSize (filter->width, filter->height), IPL_DEPTH_8U, 3); + + otherpad = (pad == filter->srcpad) ? filter->sinkpad : filter->srcpad; + gst_object_unref (filter); + + return gst_pad_set_caps (otherpad, caps); +} + +/* chain function + * this function does the actual processing + */ +static GstFlowReturn +gst_motion_cells_chain (GstPad * pad, GstBuffer * buf) +{ + GstMotioncells *filter; + filter = gst_motion_cells (GST_OBJECT_PARENT (pad)); + GST_OBJECT_LOCK (filter); + if (filter->calculate_motion) { + double sensitivity; + int framerate, gridx, gridy, motionmaskcells_count, motionmaskcoord_count, + motioncells_count, i; + int thickness, success, motioncellsidxcnt, numberOfCells, + motioncellsnumber, cellsOfInterestNumber; + int mincellsOfInterestNumber, motiondetect, minimum_motion_frames, + postnomotion; + char *datafile; + bool display, changed_datafile, useAlpha; + gint64 starttime; + motionmaskcoordrect *motionmaskcoords; + motioncellidx *motionmaskcellsidx; + cellscolor motioncellscolor; + motioncellidx *motioncellsidx; + buf = gst_buffer_make_writable (buf); + filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf); + if (filter->firstframe) { + setPrevFrame (filter->cvImage, filter->id); + filter->firstframe = FALSE; + } + minimum_motion_frames = filter->minimum_motion_frames; + postnomotion = filter->postnomotion; + sensitivity = filter->sensitivity; + framerate = filter->framerate; + gridx = filter->gridx; + gridy = filter->gridy; + display = filter->display; + motionmaskcoord_count = filter->motionmaskcoord_count; + motionmaskcoords = + g_new0 (motionmaskcoordrect, filter->motionmaskcoord_count); + for (i = 0; i < filter->motionmaskcoord_count; i++) { //we need divide 2 because we use gauss pyramid in C++ side + motionmaskcoords[i].upper_left_x = + filter->motionmaskcoords[i].upper_left_x / 2; + motionmaskcoords[i].upper_left_y = + filter->motionmaskcoords[i].upper_left_y / 2; + motionmaskcoords[i].lower_right_x = + filter->motionmaskcoords[i].lower_right_x / 2; + motionmaskcoords[i].lower_right_y = + filter->motionmaskcoords[i].lower_right_y / 2; + } + + motioncellscolor.R_channel_value = + filter->motioncellscolor->R_channel_value; + motioncellscolor.G_channel_value = + filter->motioncellscolor->G_channel_value; + motioncellscolor.B_channel_value = + filter->motioncellscolor->B_channel_value; + + if ((filter->changed_gridx || filter->changed_gridy + || filter->changed_startime)) { + if ((g_strcmp0 (filter->cur_datafile, NULL) != 0)) { + GFREE (filter->cur_datafile); + filter->datafileidx++; + filter->cur_datafile = + g_strdup_printf ("%s-%d.%s", filter->basename_datafile, + filter->datafileidx, filter->datafile_extension); + filter->changed_datafile = TRUE; + motion_cells_free_resources (filter->id); + } + if (filter->motioncells_count > 0) + gst_motioncells_update_motion_cells (filter); + if (filter->motionmaskcells_count > 0) + gst_motioncells_update_motion_masks (filter); + filter->changed_gridx = FALSE; + filter->changed_gridy = FALSE; + filter->changed_startime = FALSE; + } + datafile = g_strdup (filter->cur_datafile); + filter->cur_buff_timestamp = (GST_BUFFER_TIMESTAMP (buf) / GST_MSECOND); + filter->starttime += + (filter->cur_buff_timestamp - filter->prev_buff_timestamp); + starttime = filter->starttime; + if (filter->changed_datafile || filter->diff_timestamp < 0) + filter->diff_timestamp = + (gint64) (GST_BUFFER_TIMESTAMP (buf) / GST_MSECOND); + changed_datafile = filter->changed_datafile; + motionmaskcells_count = filter->motionmaskcells_count; + motionmaskcellsidx = g_new0 (motioncellidx, filter->motionmaskcells_count); + for (i = 0; i < filter->motionmaskcells_count; i++) { + motionmaskcellsidx[i].lineidx = filter->motionmaskcellsidx[i].lineidx; + motionmaskcellsidx[i].columnidx = filter->motionmaskcellsidx[i].columnidx; + } + motioncells_count = filter->motioncells_count; + motioncellsidx = g_new0 (motioncellidx, filter->motioncells_count); + for (i = 0; i < filter->motioncells_count; i++) { + motioncellsidx[i].lineidx = filter->motioncellsidx[i].lineidx; + motioncellsidx[i].columnidx = filter->motioncellsidx[i].columnidx; + } + useAlpha = filter->usealpha; + thickness = filter->thickness; + success = + perform_detection_motion_cells (filter->cvImage, sensitivity, framerate, + gridx, gridy, + (gint64) (GST_BUFFER_TIMESTAMP (buf) / GST_MSECOND) - + filter->diff_timestamp, display, useAlpha, motionmaskcoord_count, + motionmaskcoords, motionmaskcells_count, motionmaskcellsidx, + motioncellscolor, motioncells_count, motioncellsidx, starttime, + datafile, changed_datafile, thickness, filter->id); + + if ((success == 1) && (filter->sent_init_error_msg == false)) { + char *initfailedreason; + int initerrorcode; + GstStructure *s; + GstMessage *m; + initfailedreason = getInitDataFileFailed (filter->id); + initerrorcode = getInitErrorCode (filter->id); + s = gst_structure_new ("motion", "init_error_code", G_TYPE_INT, + initerrorcode, "details", G_TYPE_STRING, initfailedreason, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + filter->sent_init_error_msg = TRUE; + } + if ((success == -1) && (filter->sent_save_error_msg == false)) { + char *savefailedreason; + int saveerrorcode; + GstStructure *s; + GstMessage *m; + savefailedreason = getSaveDataFileFailed (filter->id); + saveerrorcode = getSaveErrorCode (filter->id); + s = gst_structure_new ("motion", "save_error_code", G_TYPE_INT, + saveerrorcode, "details", G_TYPE_STRING, savefailedreason, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + filter->sent_save_error_msg = TRUE; + } + if (success == -2) { //frame dropped + filter->prev_buff_timestamp = filter->cur_buff_timestamp; + //free + GFREE (datafile); + GFREE (motionmaskcoords); + GFREE (motionmaskcellsidx); + GFREE (motioncellsidx); + GST_OBJECT_UNLOCK (filter); + return gst_pad_push (filter->srcpad, buf); + } + filter->changed_datafile = getChangedDataFile (filter->id); + motioncellsidxcnt = getMotionCellsIdxCnt (filter->id); + numberOfCells = filter->gridx * filter->gridy; + motioncellsnumber = motioncellsidxcnt / MSGLEN; + cellsOfInterestNumber = (filter->motioncells_count > 0) ? //how many cells interest for us + (filter->motioncells_count) : (numberOfCells); + mincellsOfInterestNumber = + floor ((double) cellsOfInterestNumber * filter->threshold); + GST_OBJECT_UNLOCK (filter); + motiondetect = (motioncellsnumber >= mincellsOfInterestNumber) ? 1 : 0; + if ((motioncellsidxcnt > 0) && (motiondetect == 1)) { + char *detectedmotioncells; + filter->last_motion_timestamp = GST_BUFFER_TIMESTAMP (buf); + detectedmotioncells = getMotionCellsIdx (filter->id); + if (detectedmotioncells) { + filter->consecutive_motion++; + if ((filter->previous_motion == false) + && (filter->consecutive_motion >= minimum_motion_frames)) { + GstStructure *s; + GstMessage *m; + filter->previous_motion = true; + filter->motion_begin_timestamp = GST_BUFFER_TIMESTAMP (buf); + s = gst_structure_new ("motion", "motion_cells_indices", + G_TYPE_STRING, detectedmotioncells, "motion_begin", G_TYPE_UINT64, + filter->motion_begin_timestamp, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + } else if (filter->postallmotion) { + GstStructure *s; + GstMessage *m; + filter->motion_timestamp = GST_BUFFER_TIMESTAMP (buf); + s = gst_structure_new ("motion", "motion_cells_indices", + G_TYPE_STRING, detectedmotioncells, "motion", G_TYPE_UINT64, + filter->motion_timestamp, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + } + } else { + GstStructure *s; + GstMessage *m; + s = gst_structure_new ("motion", "motion_cells_indices", G_TYPE_STRING, + "error", NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + } + } else { + filter->consecutive_motion = 0; + if ((((GST_BUFFER_TIMESTAMP (buf) - + filter->last_motion_timestamp) / 1000000000l) >= + filter->gap) + && (filter->last_motion_timestamp > 0)) { + GST_DEBUG ("POST MOTION FINISHED MSG\n"); + if (filter->previous_motion) { + GstStructure *s; + GstMessage *m; + filter->previous_motion = false; + s = gst_structure_new ("motion", "motion_finished", G_TYPE_UINT64, + filter->last_motion_timestamp, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + } + } + } + if (postnomotion > 0) { + guint64 last_buf_timestamp = GST_BUFFER_TIMESTAMP (buf) / 1000000000l; + if ((last_buf_timestamp - + (filter->last_motion_timestamp / 1000000000l)) >= + filter->postnomotion) { + GST_DEBUG ("POST NO MOTION MSG\n"); + if ((last_buf_timestamp - + (filter->last_nomotion_notified / 1000000000l)) >= + filter->postnomotion) { + GstStructure *s; + GstMessage *m; + filter->last_nomotion_notified = GST_BUFFER_TIMESTAMP (buf); + s = gst_structure_new ("motion", "no_motion", G_TYPE_UINT64, + filter->last_motion_timestamp, NULL); + m = gst_message_new_element (GST_OBJECT (filter), s); + gst_element_post_message (GST_ELEMENT (filter), m); + } + } + } + filter->prev_buff_timestamp = filter->cur_buff_timestamp; + //free + GFREE (datafile); + GFREE (motionmaskcoords); + GFREE (motionmaskcellsidx); + GFREE (motioncellsidx); + } else { + GST_OBJECT_UNLOCK (filter); + } + return gst_pad_push (filter->srcpad, buf); +} + +/* entry point to initialize the plug-in + * initialize the plug-in itself + * register the element factories and other features + */ +gboolean +gst_motion_cells_plugin_init (GstPlugin * plugin) +{ + /* debug category for fltering log messages */ + GST_DEBUG_CATEGORY_INIT (gst_motion_cells_debug, + "motioncells", + 0, + "Performs motion detection on videos, providing detected positions via bus messages"); + + return gst_element_register (plugin, "motioncells", GST_RANK_NONE, + GST_TYPE_MOTIONCELLS); +} diff --git a/ext/opencv/gstmotioncells.h b/ext/opencv/gstmotioncells.h new file mode 100644 index 0000000..8a2930e --- /dev/null +++ b/ext/opencv/gstmotioncells.h @@ -0,0 +1,123 @@ +/* + * GStreamer + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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_MOTIONCELLS_H__ +#define __GST_MOTIONCELLS_H__ + +#include +#include + +G_BEGIN_DECLS +/* #defines don't like whitespacey bits */ +#define GST_TYPE_MOTIONCELLS \ + (gst_motion_cells_get_type()) +#define gst_motion_cells(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MOTIONCELLS,GstMotioncells)) +#define gst_motion_cells_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MOTIONCELLS,GstMotioncellsClass)) +#define GST_IS_MOTIONCELLS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MOTIONCELLS)) +#define GST_IS_MOTIONCELLS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MOTIONCELLS)) +typedef struct _GstMotioncells GstMotioncells; +typedef struct _GstMotioncellsClass GstMotioncellsClass; + +typedef struct { + int upper_left_x; + int upper_left_y; + int lower_right_x; + int lower_right_y; +} motionmaskcoordrect; + +typedef struct { + int R_channel_value; + int G_channel_value; + int B_channel_value; +} cellscolor; + +typedef struct { + int lineidx; + int columnidx; +} motioncellidx; + +struct _GstMotioncells +{ + GstElement element; + GstPad *sinkpad, *srcpad; + GstState state; + gboolean display, calculate_motion, firstgridx, firstgridy, changed_gridx, + changed_gridy, changed_startime; + gboolean previous_motion, changed_datafile, postallmotion, usealpha, + firstdatafile, firstframe; + gboolean sent_init_error_msg, sent_save_error_msg; + gchar *prev_datafile, *cur_datafile, *basename_datafile, *datafile_extension; + gint prevgridx, gridx, prevgridy, gridy, id; + gdouble sensitivity, threshold; + IplImage *cvImage; + motionmaskcoordrect *motionmaskcoords; + cellscolor *motioncellscolor; + motioncellidx *motioncellsidx, *motionmaskcellsidx; + int motionmaskcoord_count, motioncells_count, motionmaskcells_count; + int gap, thickness, datafileidx, postnomotion, minimum_motion_frames; + guint64 motion_begin_timestamp, last_motion_timestamp, motion_timestamp, + last_nomotion_notified, prev_buff_timestamp, cur_buff_timestamp; + gint64 diff_timestamp, starttime; + guint64 consecutive_motion; + gint width, height; + //time stuff + struct timeval tv; + double framerate; +}; + +struct _GstMotioncellsClass +{ + GstElementClass parent_class; +}; + +GType gst_motion_cells_get_type (void); + +gboolean gst_motion_cells_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_MOTION_CELLS_H__ */ diff --git a/ext/opencv/gstopencv.c b/ext/opencv/gstopencv.c index e12ca78..270c788 100644 --- a/ext/opencv/gstopencv.c +++ b/ext/opencv/gstopencv.c @@ -32,6 +32,7 @@ #include "gstedgedetect.h" #include "gstfaceblur.h" #include "gstfacedetect.h" +#include "gstmotioncells.h" #include "gstpyramidsegment.h" #include "gsttemplatematch.h" #include "gsttextoverlay.h" @@ -57,19 +58,22 @@ plugin_init (GstPlugin * plugin) if (!gst_cv_sobel_plugin_init (plugin)) return FALSE; - if (!gst_edgedetect_plugin_init (plugin)) + if (!gst_edge_detect_plugin_init (plugin)) return FALSE; - if (!gst_faceblur_plugin_init (plugin)) + if (!gst_face_blur_plugin_init (plugin)) return FALSE; - if (!gst_facedetect_plugin_init (plugin)) + if (!gst_face_detect_plugin_init (plugin)) return FALSE; - if (!gst_pyramidsegment_plugin_init (plugin)) + if (!gst_motion_cells_plugin_init (plugin)) return FALSE; - if (!gst_templatematch_plugin_init (plugin)) + if (!gst_pyramid_segment_plugin_init (plugin)) + return FALSE; + + if (!gst_template_match_plugin_init (plugin)) return FALSE; if (!gst_opencv_text_overlay_plugin_init (plugin)) diff --git a/ext/opencv/gstpyramidsegment.c b/ext/opencv/gstpyramidsegment.c index b2d981e..21ea253 100644 --- a/ext/opencv/gstpyramidsegment.c +++ b/ext/opencv/gstpyramidsegment.c @@ -46,7 +46,7 @@ /** * SECTION:element-pyramidsegment * - * FIXME:Describe pyramidsegment here. + * Applies pyramid segmentation to a video or image. * * * Example launch line @@ -67,8 +67,8 @@ #define BLOCK_SIZE 1000 -GST_DEBUG_CATEGORY_STATIC (gst_pyramidsegment_debug); -#define GST_CAT_DEFAULT gst_pyramidsegment_debug +GST_DEBUG_CATEGORY_STATIC (gst_pyramid_segment_debug); +#define GST_CAT_DEFAULT gst_pyramid_segment_debug /* Filter signals and args */ enum @@ -102,22 +102,22 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); -GST_BOILERPLATE (Gstpyramidsegment, gst_pyramidsegment, GstElement, +GST_BOILERPLATE (GstPyramidSegment, gst_pyramid_segment, GstElement, GST_TYPE_ELEMENT); -static void gst_pyramidsegment_set_property (GObject * object, guint prop_id, +static void gst_pyramid_segment_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_pyramidsegment_get_property (GObject * object, guint prop_id, +static void gst_pyramid_segment_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_pyramidsegment_set_caps (GstPad * pad, GstCaps * caps); -static GstFlowReturn gst_pyramidsegment_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_pyramid_segment_set_caps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_pyramid_segment_chain (GstPad * pad, GstBuffer * buf); /* Clean up */ static void -gst_pyramidsegment_finalize (GObject * obj) +gst_pyramid_segment_finalize (GObject * obj) { - Gstpyramidsegment *filter = GST_PYRAMIDSEGMENT (obj); + GstPyramidSegment *filter = GST_PYRAMID_SEGMENT (obj); if (filter->cvImage != NULL) { cvReleaseImage (&filter->cvImage); @@ -129,7 +129,7 @@ gst_pyramidsegment_finalize (GObject * obj) /* GObject vmethod implementations */ static void -gst_pyramidsegment_base_init (gpointer gclass) +gst_pyramid_segment_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); @@ -139,24 +139,22 @@ gst_pyramidsegment_base_init (gpointer gclass) "Applies pyramid segmentation to a video or image.", "Michael Sheldon "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the pyramidsegment's class */ static void -gst_pyramidsegment_class_init (GstpyramidsegmentClass * klass) +gst_pyramid_segment_class_init (GstPyramidSegmentClass * klass) { GObjectClass *gobject_class; gobject_class = (GObjectClass *) klass; parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_pyramidsegment_finalize); - gobject_class->set_property = gst_pyramidsegment_set_property; - gobject_class->get_property = gst_pyramidsegment_get_property; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_pyramid_segment_finalize); + gobject_class->set_property = gst_pyramid_segment_set_property; + gobject_class->get_property = gst_pyramid_segment_get_property; g_object_class_install_property (gobject_class, PROP_SILENT, g_param_spec_boolean ("silent", "Silent", "Produce verbose output ?", @@ -184,16 +182,16 @@ gst_pyramidsegment_class_init (GstpyramidsegmentClass * klass) * initialize instance structure */ static void -gst_pyramidsegment_init (Gstpyramidsegment * filter, - GstpyramidsegmentClass * gclass) +gst_pyramid_segment_init (GstPyramidSegment * filter, + GstPyramidSegmentClass * gclass) { filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_setcaps_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_pyramidsegment_set_caps)); + GST_DEBUG_FUNCPTR (gst_pyramid_segment_set_caps)); gst_pad_set_getcaps_function (filter->sinkpad, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_pad_set_chain_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_pyramidsegment_chain)); + GST_DEBUG_FUNCPTR (gst_pyramid_segment_chain)); filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_getcaps_function (filter->srcpad, @@ -211,10 +209,10 @@ gst_pyramidsegment_init (Gstpyramidsegment * filter, } static void -gst_pyramidsegment_set_property (GObject * object, guint prop_id, +gst_pyramid_segment_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - Gstpyramidsegment *filter = GST_PYRAMIDSEGMENT (object); + GstPyramidSegment *filter = GST_PYRAMID_SEGMENT (object); switch (prop_id) { case PROP_SILENT: @@ -236,10 +234,10 @@ gst_pyramidsegment_set_property (GObject * object, guint prop_id, } static void -gst_pyramidsegment_get_property (GObject * object, guint prop_id, +gst_pyramid_segment_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - Gstpyramidsegment *filter = GST_PYRAMIDSEGMENT (object); + GstPyramidSegment *filter = GST_PYRAMID_SEGMENT (object); switch (prop_id) { case PROP_SILENT: @@ -264,14 +262,14 @@ gst_pyramidsegment_get_property (GObject * object, guint prop_id, /* this function handles the link with other elements */ static gboolean -gst_pyramidsegment_set_caps (GstPad * pad, GstCaps * caps) +gst_pyramid_segment_set_caps (GstPad * pad, GstCaps * caps) { - Gstpyramidsegment *filter; + GstPyramidSegment *filter; GstPad *otherpad; GstStructure *structure; gint width, height; - filter = GST_PYRAMIDSEGMENT (gst_pad_get_parent (pad)); + filter = GST_PYRAMID_SEGMENT (gst_pad_get_parent (pad)); structure = gst_caps_get_structure (caps, 0); gst_structure_get_int (structure, "width", &width); @@ -289,12 +287,12 @@ gst_pyramidsegment_set_caps (GstPad * pad, GstCaps * caps) * this function does the actual processing */ static GstFlowReturn -gst_pyramidsegment_chain (GstPad * pad, GstBuffer * buf) +gst_pyramid_segment_chain (GstPad * pad, GstBuffer * buf) { - Gstpyramidsegment *filter; + GstPyramidSegment *filter; GstBuffer *outbuf; - filter = GST_PYRAMIDSEGMENT (GST_OBJECT_PARENT (pad)); + filter = GST_PYRAMID_SEGMENT (GST_OBJECT_PARENT (pad)); filter->cvImage->imageData = (char *) GST_BUFFER_DATA (buf); filter->cvSegmentedImage = cvCloneImage (filter->cvImage); @@ -323,12 +321,12 @@ gst_pyramidsegment_chain (GstPad * pad, GstBuffer * buf) * register the element factories and other features */ gboolean -gst_pyramidsegment_plugin_init (GstPlugin * plugin) +gst_pyramid_segment_plugin_init (GstPlugin * plugin) { /* debug category for fltering log messages */ - GST_DEBUG_CATEGORY_INIT (gst_pyramidsegment_debug, "pyramidsegment", + GST_DEBUG_CATEGORY_INIT (gst_pyramid_segment_debug, "pyramidsegment", 0, "Applies pyramid segmentation to a video or image"); return gst_element_register (plugin, "pyramidsegment", GST_RANK_NONE, - GST_TYPE_PYRAMIDSEGMENT); + GST_TYPE_PYRAMID_SEGMENT); } diff --git a/ext/opencv/gstpyramidsegment.h b/ext/opencv/gstpyramidsegment.h index 3437073..5c210ca 100644 --- a/ext/opencv/gstpyramidsegment.h +++ b/ext/opencv/gstpyramidsegment.h @@ -43,28 +43,28 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_PYRAMIDSEGMENT_H__ -#define __GST_PYRAMIDSEGMENT_H__ +#ifndef __GST_PYRAMID_SEGMENT_H__ +#define __GST_PYRAMID_SEGMENT_H__ #include #include G_BEGIN_DECLS /* #defines don't like whitespacey bits */ -#define GST_TYPE_PYRAMIDSEGMENT \ - (gst_pyramidsegment_get_type()) -#define GST_PYRAMIDSEGMENT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PYRAMIDSEGMENT,Gstpyramidsegment)) -#define GST_PYRAMIDSEGMENT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PYRAMIDSEGMENT,GstpyramidsegmentClass)) -#define GST_IS_PYRAMIDSEGMENT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PYRAMIDSEGMENT)) -#define GST_IS_PYRAMIDSEGMENT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PYRAMIDSEGMENT)) -typedef struct _Gstpyramidsegment Gstpyramidsegment; -typedef struct _GstpyramidsegmentClass GstpyramidsegmentClass; +#define GST_TYPE_PYRAMID_SEGMENT \ + (gst_pyramid_segment_get_type()) +#define GST_PYRAMID_SEGMENT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PYRAMID_SEGMENT,GstPyramidSegment)) +#define GST_PYRAMID_SEGMENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PYRAMID_SEGMENT,GstPyramidSegmentClass)) +#define GST_IS_PYRAMID_SEGMENT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PYRAMID_SEGMENT)) +#define GST_IS_PYRAMID_SEGMENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PYRAMID_SEGMENT)) +typedef struct _GstPyramidSegment GstPyramidSegment; +typedef struct _GstPyramidSegmentClass GstPyramidSegmentClass; -struct _Gstpyramidsegment +struct _GstPyramidSegment { GstElement element; @@ -83,14 +83,14 @@ struct _Gstpyramidsegment int level; }; -struct _GstpyramidsegmentClass +struct _GstPyramidSegmentClass { GstElementClass parent_class; }; -GType gst_pyramidsegment_get_type (void); +GType gst_pyramid_segment_get_type (void); -gboolean gst_pyramidsegment_plugin_init (GstPlugin * plugin); +gboolean gst_pyramid_segment_plugin_init (GstPlugin * plugin); G_END_DECLS -#endif /* __GST_PYRAMIDSEGMENT_H__ */ +#endif /* __GST_PYRAMID_SEGMENT_H__ */ diff --git a/ext/opencv/gsttemplatematch.c b/ext/opencv/gsttemplatematch.c index 2d76aa8..6568a8b 100644 --- a/ext/opencv/gsttemplatematch.c +++ b/ext/opencv/gsttemplatematch.c @@ -47,7 +47,7 @@ /** * SECTION:element-templatematch * - * FIXME:Describe templatematch here. + * Performs template matching on videos and images, providing detected positions via bus messages. * * * Example launch line @@ -66,8 +66,8 @@ #include "gstopencvutils.h" #include "gsttemplatematch.h" -GST_DEBUG_CATEGORY_STATIC (gst_templatematch_debug); -#define GST_CAT_DEFAULT gst_templatematch_debug +GST_DEBUG_CATEGORY_STATIC (gst_template_match_debug); +#define GST_CAT_DEFAULT gst_template_match_debug #define DEFAULT_METHOD (3) @@ -100,52 +100,50 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); -GST_BOILERPLATE (GstTemplateMatch, gst_templatematch, GstElement, +GST_BOILERPLATE (GstTemplateMatch, gst_template_match, GstElement, GST_TYPE_ELEMENT); -static void gst_templatematch_finalize (GObject * object); -static void gst_templatematch_set_property (GObject * object, guint prop_id, +static void gst_template_match_finalize (GObject * object); +static void gst_template_match_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_templatematch_get_property (GObject * object, guint prop_id, +static void gst_template_match_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_templatematch_set_caps (GstPad * pad, GstCaps * caps); -static GstFlowReturn gst_templatematch_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_template_match_set_caps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_template_match_chain (GstPad * pad, GstBuffer * buf); -static void gst_templatematch_load_template (GstTemplateMatch * filter); -static void gst_templatematch_match (IplImage * input, IplImage * template, +static void gst_template_match_load_template (GstTemplateMatch * filter); +static void gst_template_match_match (IplImage * input, IplImage * template, IplImage * dist_image, double *best_res, CvPoint * best_pos, int method); /* GObject vmethod implementations */ static void -gst_templatematch_base_init (gpointer gclass) +gst_template_match_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); gst_element_class_set_details_simple (element_class, "templatematch", "Filter/Effect/Video", - "Performs template matching on videos and images, providing detected positions via bus messages", + "Performs template matching on videos and images, providing detected positions via bus messages.", "Noam Lewis "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the templatematch's class */ static void -gst_templatematch_class_init (GstTemplateMatchClass * klass) +gst_template_match_class_init (GstTemplateMatchClass * klass) { GObjectClass *gobject_class; gobject_class = (GObjectClass *) klass; - gobject_class->finalize = gst_templatematch_finalize; - gobject_class->set_property = gst_templatematch_set_property; - gobject_class->get_property = gst_templatematch_get_property; + gobject_class->finalize = gst_template_match_finalize; + gobject_class->set_property = gst_template_match_set_property; + gobject_class->get_property = gst_template_match_get_property; g_object_class_install_property (gobject_class, PROP_METHOD, g_param_spec_int ("method", "Method", @@ -166,16 +164,16 @@ gst_templatematch_class_init (GstTemplateMatchClass * klass) * initialize instance structure */ static void -gst_templatematch_init (GstTemplateMatch * filter, +gst_template_match_init (GstTemplateMatch * filter, GstTemplateMatchClass * gclass) { filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_setcaps_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_templatematch_set_caps)); + GST_DEBUG_FUNCPTR (gst_template_match_set_caps)); gst_pad_set_getcaps_function (filter->sinkpad, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_pad_set_chain_function (filter->sinkpad, - GST_DEBUG_FUNCPTR (gst_templatematch_chain)); + GST_DEBUG_FUNCPTR (gst_template_match_chain)); filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_getcaps_function (filter->srcpad, @@ -189,14 +187,14 @@ gst_templatematch_init (GstTemplateMatch * filter, filter->cvDistImage = NULL; filter->cvImage = NULL; filter->method = DEFAULT_METHOD; - gst_templatematch_load_template (filter); + gst_template_match_load_template (filter); } static void -gst_templatematch_set_property (GObject * object, guint prop_id, +gst_template_match_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - GstTemplateMatch *filter = GST_TEMPLATEMATCH (object); + GstTemplateMatch *filter = GST_TEMPLATE_MATCH (object); switch (prop_id) { case PROP_METHOD: @@ -223,7 +221,7 @@ gst_templatematch_set_property (GObject * object, guint prop_id, break; case PROP_TEMPLATE: filter->template = (char *) g_value_get_string (value); - gst_templatematch_load_template (filter); + gst_template_match_load_template (filter); break; case PROP_DISPLAY: filter->display = g_value_get_boolean (value); @@ -235,10 +233,10 @@ gst_templatematch_set_property (GObject * object, guint prop_id, } static void -gst_templatematch_get_property (GObject * object, guint prop_id, +gst_template_match_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - GstTemplateMatch *filter = GST_TEMPLATEMATCH (object); + GstTemplateMatch *filter = GST_TEMPLATE_MATCH (object); switch (prop_id) { case PROP_METHOD: @@ -260,14 +258,14 @@ gst_templatematch_get_property (GObject * object, guint prop_id, /* this function handles the link with other elements */ static gboolean -gst_templatematch_set_caps (GstPad * pad, GstCaps * caps) +gst_template_match_set_caps (GstPad * pad, GstCaps * caps) { GstTemplateMatch *filter; GstPad *otherpad; gint width, height; GstStructure *structure; - filter = GST_TEMPLATEMATCH (gst_pad_get_parent (pad)); + filter = GST_TEMPLATE_MATCH (gst_pad_get_parent (pad)); structure = gst_caps_get_structure (caps, 0); gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); @@ -282,10 +280,10 @@ gst_templatematch_set_caps (GstPad * pad, GstCaps * caps) } static void -gst_templatematch_finalize (GObject * object) +gst_template_match_finalize (GObject * object) { GstTemplateMatch *filter; - filter = GST_TEMPLATEMATCH (object); + filter = GST_TEMPLATE_MATCH (object); if (filter->cvImage) { cvReleaseImageHeader (&filter->cvImage); @@ -296,19 +294,21 @@ gst_templatematch_finalize (GObject * object) if (filter->cvTemplateImage) { cvReleaseImage (&filter->cvTemplateImage); } + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); } /* chain function * this function does the actual processing */ static GstFlowReturn -gst_templatematch_chain (GstPad * pad, GstBuffer * buf) +gst_template_match_chain (GstPad * pad, GstBuffer * buf) { GstTemplateMatch *filter; CvPoint best_pos; double best_res; - filter = GST_TEMPLATEMATCH (GST_OBJECT_PARENT (pad)); + filter = GST_TEMPLATE_MATCH (GST_OBJECT_PARENT (pad)); /* FIXME Why template == NULL returns OK? * shouldn't it be a passthrough instead? */ @@ -344,7 +344,7 @@ gst_templatematch_chain (GstPad * pad, GstBuffer * buf) GstStructure *s; GstMessage *m; - gst_templatematch_match (filter->cvImage, filter->cvTemplateImage, + gst_template_match_match (filter->cvImage, filter->cvTemplateImage, filter->cvDistImage, &best_res, &best_pos, filter->method); s = gst_structure_new ("template_match", @@ -376,7 +376,7 @@ gst_templatematch_chain (GstPad * pad, GstBuffer * buf) static void -gst_templatematch_match (IplImage * input, IplImage * template, +gst_template_match_match (IplImage * input, IplImage * template, IplImage * dist_image, double *best_res, CvPoint * best_pos, int method) { double dist_min = 0, dist_max = 0; @@ -397,7 +397,7 @@ gst_templatematch_match (IplImage * input, IplImage * template, static void -gst_templatematch_load_template (GstTemplateMatch * filter) +gst_template_match_load_template (GstTemplateMatch * filter) { if (filter->template) { filter->cvTemplateImage = @@ -416,13 +416,13 @@ gst_templatematch_load_template (GstTemplateMatch * filter) * register the element factories and other features */ gboolean -gst_templatematch_plugin_init (GstPlugin * templatematch) +gst_template_match_plugin_init (GstPlugin * templatematch) { /* debug category for fltering log messages */ - GST_DEBUG_CATEGORY_INIT (gst_templatematch_debug, "templatematch", + GST_DEBUG_CATEGORY_INIT (gst_template_match_debug, "templatematch", 0, "Performs template matching on videos and images, providing detected positions via bus messages"); return gst_element_register (templatematch, "templatematch", GST_RANK_NONE, - GST_TYPE_TEMPLATEMATCH); + GST_TYPE_TEMPLATE_MATCH); } diff --git a/ext/opencv/gsttemplatematch.h b/ext/opencv/gsttemplatematch.h index b18e0c7..7b4b388 100644 --- a/ext/opencv/gsttemplatematch.h +++ b/ext/opencv/gsttemplatematch.h @@ -43,8 +43,8 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_TEMPLATEMATCH_H__ -#define __GST_TEMPLATEMATCH_H__ +#ifndef __GST_TEMPLATE_MATCH_H__ +#define __GST_TEMPLATE_MATCH_H__ #include #include @@ -52,16 +52,16 @@ G_BEGIN_DECLS /* #defines don't like whitespacey bits */ -#define GST_TYPE_TEMPLATEMATCH \ - (gst_templatematch_get_type()) -#define GST_TEMPLATEMATCH(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TEMPLATEMATCH,GstTemplateMatch)) -#define GST_TEMPLATEMATCH_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TEMPLATEMATCH,GstTemplateMatchClass)) -#define GST_IS_TEMPLATEMATCH(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TEMPLATEMATCH)) -#define GST_IS_TEMPLATEMATCH_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TEMPLATEMATCH)) +#define GST_TYPE_TEMPLATE_MATCH \ + (gst_template_match_get_type()) +#define GST_TEMPLATE_MATCH(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TEMPLATE_MATCH,GstTemplateMatch)) +#define GST_TEMPLATE_MATCH_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TEMPLATE_MATCH,GstTemplateMatchClass)) +#define GST_IS_TEMPLATE_MATCH(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TEMPLATE_MATCH)) +#define GST_IS_TEMPLATE_MATCH_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TEMPLATE_MATCH)) typedef struct _GstTemplateMatch GstTemplateMatch; typedef struct _GstTemplateMatchClass GstTemplateMatchClass; @@ -84,9 +84,9 @@ struct _GstTemplateMatchClass GstElementClass parent_class; }; -GType gst_templatematch_get_type (void); +GType gst_template_match_get_type (void); -gboolean gst_templatematch_plugin_init (GstPlugin * templatematch); +gboolean gst_template_match_plugin_init (GstPlugin * templatematch); G_END_DECLS -#endif /* __GST_TEMPLATEMATCH_H__ */ +#endif /* __GST_TEMPLATE_MATCH_H__ */ diff --git a/ext/opencv/gsttextoverlay.c b/ext/opencv/gsttextoverlay.c index 9216944..db28352 100644 --- a/ext/opencv/gsttextoverlay.c +++ b/ext/opencv/gsttextoverlay.c @@ -156,10 +156,8 @@ gst_opencv_text_overlay_base_init (gpointer gclass) "Filter/Effect/Video", "Write text on the top of video", "sreerenj"); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the opencvtextoverlay's class */ diff --git a/ext/opencv/motioncells_wrapper.cpp b/ext/opencv/motioncells_wrapper.cpp new file mode 100644 index 0000000..d509686 --- /dev/null +++ b/ext/opencv/motioncells_wrapper.cpp @@ -0,0 +1,215 @@ +/* + * GStreamer + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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. + */ + +#include +#include +#include "motioncells_wrapper.h" + +static int instanceCounter = 0; +static gboolean element_id_was_max = false; + +MotionCells *mc; +char p_str[] = "idx failed"; + +int +motion_cells_init () +{ + mc = new MotionCells (); + instanceOfMC tmpmc; + tmpmc.id = instanceCounter; + tmpmc.mc = mc; + motioncellsvector.push_back (tmpmc); + if ((instanceCounter < INT_MAX) && !element_id_was_max) { + instanceCounter++; + element_id_was_max = false; + } else { + element_id_was_max = true; + instanceCounter = motioncellsfreeids.back (); + motioncellsfreeids.pop_back (); + } + return tmpmc.id; +} + +int +perform_detection_motion_cells (IplImage * p_image, double p_sensitivity, + double p_framerate, int p_gridx, int p_gridy, long int p_timestamp_millisec, + bool p_isVisible, bool p_useAlpha, int motionmaskcoord_count, + motionmaskcoordrect * motionmaskcoords, int motionmaskcells_count, + motioncellidx * motionmaskcellsidx, cellscolor motioncellscolor, + int motioncells_count, motioncellidx * motioncellsidx, gint64 starttime, + char *p_datafile, bool p_changed_datafile, int p_thickness, int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + return motioncellsvector.at (idx).mc->performDetectionMotionCells (p_image, + p_sensitivity, p_framerate, p_gridx, p_gridy, p_timestamp_millisec, + p_isVisible, p_useAlpha, motionmaskcoord_count, motionmaskcoords, + motionmaskcells_count, motionmaskcellsidx, motioncellscolor, + motioncells_count, motioncellsidx, starttime, p_datafile, + p_changed_datafile, p_thickness); +} + + +void +setPrevFrame (IplImage * p_prevFrame, int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + motioncellsvector.at (idx).mc->setPrevFrame (p_prevFrame); +} + +char * +getMotionCellsIdx (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getMotionCellsIdx (); + else { + return p_str; + } + +} + +int +getMotionCellsIdxCnt (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getMotionCellsIdxCount (); + else + return 0; +} + +bool +getChangedDataFile (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getChangedDataFile (); + else + return false; +} + +int +searchIdx (int p_id) +{ + for (unsigned int i = 0; i < motioncellsvector.size (); i++) { + instanceOfMC tmpmc; + tmpmc = motioncellsvector.at (i); + if (tmpmc.id == p_id) { + return i; + } + } + return -1; +} + +char * +getInitDataFileFailed (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getDatafileInitFailed (); + else { + return p_str; + } +} + +char * +getSaveDataFileFailed (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getDatafileSaveFailed (); + else { + return p_str; + } +} + +int +getInitErrorCode (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getInitErrorCode (); + else + return -1; +} + +int +getSaveErrorCode (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + return motioncellsvector.at (idx).mc->getSaveErrorCode (); + else + return -1; +} + +void +motion_cells_free (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) { + delete motioncellsvector.at (idx).mc; + motioncellsvector.erase (motioncellsvector.begin () + idx); + motioncellsfreeids.push_back (p_id); + } +} + +void +motion_cells_free_resources (int p_id) +{ + int idx = 0; + idx = searchIdx (p_id); + if (idx > -1) + motioncellsvector.at (idx).mc->freeDataFile (); +} diff --git a/ext/opencv/motioncells_wrapper.h b/ext/opencv/motioncells_wrapper.h new file mode 100644 index 0000000..470bcfb --- /dev/null +++ b/ext/opencv/motioncells_wrapper.h @@ -0,0 +1,89 @@ +/* + * GStreamer + * Copyright (C) 2011 Robert Jobbagy + * Copyright (C) 2011 Nicola Murino + * + * 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 MOTIONCELLS_WRAPPER_H +#define MOTIONCELLS_WRAPPER_H + +#include + +#ifdef __cplusplus +#include "MotionCells.h" +struct instanceOfMC +{ + int id; + MotionCells *mc; +}; +vector < instanceOfMC > motioncellsvector; +vector < int >motioncellsfreeids; + +int searchIdx (int p_id); +extern "C" +{ +#endif + + int motion_cells_init (); + int perform_detection_motion_cells (IplImage * p_image, double p_sensitivity, + double p_framerate, int p_gridx, int p_gridy, + long int p_timestamp_millisec, bool p_isVisible, bool p_useAlpha, + int motionmaskcoord_count, motionmaskcoordrect * motionmaskcoords, + int motionmaskcells_count, motioncellidx * motionmaskcellsidx, + cellscolor motioncellscolor, int motioncells_count, + motioncellidx * motioncellsidx, gint64 starttime, char *datafile, + bool p_changed_datafile, int p_thickness, int p_id); + void setPrevFrame (IplImage * p_prevFrame, int p_id); + void motion_cells_free (int p_id); + void motion_cells_free_resources (int p_id); + char *getMotionCellsIdx (int p_id); + int getMotionCellsIdxCnt (int p_id); + bool getChangedDataFile (int p_id); + char *getInitDataFileFailed (int p_id); + char *getSaveDataFileFailed (int p_id); + int getInitErrorCode (int p_id); + int getSaveErrorCode (int p_id); + +#ifdef __cplusplus +} +#endif + +#endif /* MOTIONCELLS_WRAPPER_H */ diff --git a/ext/opus/Makefile.am b/ext/opus/Makefile.am new file mode 100644 index 0000000..cdf3c30 --- /dev/null +++ b/ext/opus/Makefile.am @@ -0,0 +1,19 @@ +plugin_LTLIBRARIES = libgstopus.la + +libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusparse.c gstopusheader.c gstopuscommon.c gstrtpopuspay.c gstrtpopusdepay.c +libgstopus_la_CFLAGS = \ + -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(OPUS_CFLAGS) +libgstopus_la_LIBADD = \ + -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + -lgstrtp-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(OPUS_LIBS) +libgstopus_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstopus_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusparse.h gstopusheader.h gstopuscommon.h gstrtpopuspay.h gstrtpopusdepay.h diff --git a/ext/opus/Makefile.in b/ext/opus/Makefile.in new file mode 100644 index 0000000..a724352 --- /dev/null +++ b/ext/opus/Makefile.in @@ -0,0 +1,956 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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/opus +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstopus_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstopus_la_OBJECTS = libgstopus_la-gstopus.lo \ + libgstopus_la-gstopusdec.lo libgstopus_la-gstopusenc.lo \ + libgstopus_la-gstopusparse.lo libgstopus_la-gstopusheader.lo \ + libgstopus_la-gstopuscommon.lo libgstopus_la-gstrtpopuspay.lo \ + libgstopus_la-gstrtpopusdepay.lo +libgstopus_la_OBJECTS = $(am_libgstopus_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstopus_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstopus_la_CFLAGS) $(CFLAGS) \ + $(libgstopus_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstopus_la_SOURCES) +DIST_SOURCES = $(libgstopus_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstopus.la +libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusparse.c gstopusheader.c gstopuscommon.c gstrtpopuspay.c gstrtpopusdepay.c +libgstopus_la_CFLAGS = \ + -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(OPUS_CFLAGS) + +libgstopus_la_LIBADD = \ + -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + -lgstrtp-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(OPUS_LIBS) + +libgstopus_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstopus_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusparse.h gstopusheader.h gstopuscommon.h gstrtpopuspay.h gstrtpopusdepay.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/opus/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/opus/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 +libgstopus.la: $(libgstopus_la_OBJECTS) $(libgstopus_la_DEPENDENCIES) $(EXTRA_libgstopus_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstopus_la_LINK) -rpath $(plugindir) $(libgstopus_la_OBJECTS) $(libgstopus_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopus.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopuscommon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusheader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstopusparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstrtpopusdepay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstopus_la-gstrtpopuspay.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstopus_la-gstopus.lo: gstopus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopus.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopus.Tpo -c -o libgstopus_la-gstopus.lo `test -f 'gstopus.c' || echo '$(srcdir)/'`gstopus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopus.Tpo $(DEPDIR)/libgstopus_la-gstopus.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopus.c' object='libgstopus_la-gstopus.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopus.lo `test -f 'gstopus.c' || echo '$(srcdir)/'`gstopus.c + +libgstopus_la-gstopusdec.lo: gstopusdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusdec.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusdec.Tpo -c -o libgstopus_la-gstopusdec.lo `test -f 'gstopusdec.c' || echo '$(srcdir)/'`gstopusdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusdec.Tpo $(DEPDIR)/libgstopus_la-gstopusdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopusdec.c' object='libgstopus_la-gstopusdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusdec.lo `test -f 'gstopusdec.c' || echo '$(srcdir)/'`gstopusdec.c + +libgstopus_la-gstopusenc.lo: gstopusenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusenc.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusenc.Tpo -c -o libgstopus_la-gstopusenc.lo `test -f 'gstopusenc.c' || echo '$(srcdir)/'`gstopusenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusenc.Tpo $(DEPDIR)/libgstopus_la-gstopusenc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopusenc.c' object='libgstopus_la-gstopusenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusenc.lo `test -f 'gstopusenc.c' || echo '$(srcdir)/'`gstopusenc.c + +libgstopus_la-gstopusparse.lo: gstopusparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusparse.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusparse.Tpo -c -o libgstopus_la-gstopusparse.lo `test -f 'gstopusparse.c' || echo '$(srcdir)/'`gstopusparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusparse.Tpo $(DEPDIR)/libgstopus_la-gstopusparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopusparse.c' object='libgstopus_la-gstopusparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusparse.lo `test -f 'gstopusparse.c' || echo '$(srcdir)/'`gstopusparse.c + +libgstopus_la-gstopusheader.lo: gstopusheader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopusheader.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopusheader.Tpo -c -o libgstopus_la-gstopusheader.lo `test -f 'gstopusheader.c' || echo '$(srcdir)/'`gstopusheader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopusheader.Tpo $(DEPDIR)/libgstopus_la-gstopusheader.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopusheader.c' object='libgstopus_la-gstopusheader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopusheader.lo `test -f 'gstopusheader.c' || echo '$(srcdir)/'`gstopusheader.c + +libgstopus_la-gstopuscommon.lo: gstopuscommon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstopuscommon.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstopuscommon.Tpo -c -o libgstopus_la-gstopuscommon.lo `test -f 'gstopuscommon.c' || echo '$(srcdir)/'`gstopuscommon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstopuscommon.Tpo $(DEPDIR)/libgstopus_la-gstopuscommon.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstopuscommon.c' object='libgstopus_la-gstopuscommon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstopuscommon.lo `test -f 'gstopuscommon.c' || echo '$(srcdir)/'`gstopuscommon.c + +libgstopus_la-gstrtpopuspay.lo: gstrtpopuspay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstrtpopuspay.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstrtpopuspay.Tpo -c -o libgstopus_la-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstrtpopuspay.Tpo $(DEPDIR)/libgstopus_la-gstrtpopuspay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpopuspay.c' object='libgstopus_la-gstrtpopuspay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c + +libgstopus_la-gstrtpopusdepay.lo: gstrtpopusdepay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -MT libgstopus_la-gstrtpopusdepay.lo -MD -MP -MF $(DEPDIR)/libgstopus_la-gstrtpopusdepay.Tpo -c -o libgstopus_la-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstopus_la-gstrtpopusdepay.Tpo $(DEPDIR)/libgstopus_la-gstrtpopusdepay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpopusdepay.c' object='libgstopus_la-gstrtpopusdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopus_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopus_la_CFLAGS) $(CFLAGS) -c -o libgstopus_la-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/opus/gstopus.c b/ext/opus/gstopus.c new file mode 100644 index 0000000..8db6e19 --- /dev/null +++ b/ext/opus/gstopus.c @@ -0,0 +1,66 @@ +/* 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 "gstopusdec.h" +#include "gstopusenc.h" +#include "gstopusparse.h" + +#include "gstrtpopuspay.h" +#include "gstrtpopusdepay.h" + +#include + +static gboolean +plugin_init (GstPlugin * plugin) +{ + + if (!gst_element_register (plugin, "opusenc", GST_RANK_NONE, + GST_TYPE_OPUS_ENC)) + return FALSE; + + if (!gst_element_register (plugin, "opusdec", GST_RANK_PRIMARY, + GST_TYPE_OPUS_DEC)) + return FALSE; + + if (!gst_element_register (plugin, "opusparse", GST_RANK_NONE, + GST_TYPE_OPUS_PARSE)) + return FALSE; + + if (!gst_element_register (plugin, "rtpopusdepay", GST_RANK_NONE, + GST_TYPE_RTP_OPUS_DEPAY)) + return FALSE; + + if (!gst_element_register (plugin, "rtpopuspay", GST_RANK_NONE, + GST_TYPE_RTP_OPUS_PAY)) + return FALSE; + + gst_tag_register_musicbrainz_tags (); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "opus", + "OPUS plugin library", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/opus/gstopuscommon.c b/ext/opus/gstopuscommon.c new file mode 100644 index 0000000..dbf585a --- /dev/null +++ b/ext/opus/gstopuscommon.c @@ -0,0 +1,106 @@ +/* GStreamer + * 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. + */ + +#include +#include +#include "gstopuscommon.h" + +/* http://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-800004.3.9 */ +/* copy of the same structure in the vorbis plugin */ +const GstAudioChannelPosition gst_opus_channel_positions[][8] = { + { /* Mono */ + GST_AUDIO_CHANNEL_POSITION_FRONT_MONO}, + { /* Stereo */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, + { /* Stereo + Centre */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, + { /* Quadraphonic */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + }, + { /* Stereo + Centre + rear stereo */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + }, + { /* Full 5.1 Surround */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + GST_AUDIO_CHANNEL_POSITION_LFE, + }, + { /* 6.1 Surround, in Vorbis spec since 2010-01-13 */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, + GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_CENTER, + GST_AUDIO_CHANNEL_POSITION_LFE}, + { /* 7.1 Surround, in Vorbis spec since 2010-01-13 */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, + GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + GST_AUDIO_CHANNEL_POSITION_LFE}, +}; + +const char *gst_opus_channel_names[] = { + "mono", + "front left", + "front right", + "rear center", + "rear left", + "rear right", + "lfe", + "front center", + "front left of center", + "front right of center", + "side left", + "side right", + "none" +}; + +void +gst_opus_common_log_channel_mapping_table (GstElement * element, + GstDebugCategory * category, const char *msg, int n_channels, + const guint8 * table) +{ + char s[8 + 256 * 4] = "[ "; /* enough for 256 times "255 " at most */ + int n; + + for (n = 0; n < n_channels; ++n) { + size_t len = strlen (s); + snprintf (s + len, sizeof (s) - len, "%d ", table[n]); + } + strcat (s, "]"); + GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s); +} diff --git a/ext/opus/gstopuscommon.h b/ext/opus/gstopuscommon.h new file mode 100644 index 0000000..1fba565 --- /dev/null +++ b/ext/opus/gstopuscommon.h @@ -0,0 +1,37 @@ +/* GStreamer Opus Encoder + * 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_OPUS_COMMON_H__ +#define __GST_OPUS_COMMON_H__ + +#include +#include + +G_BEGIN_DECLS + +extern const GstAudioChannelPosition gst_opus_channel_positions[][8]; +extern const char *gst_opus_channel_names[]; +extern void gst_opus_common_log_channel_mapping_table (GstElement *element, + GstDebugCategory * category, const char *msg, + int n_channels, const guint8 *table); + +G_END_DECLS + +#endif /* __GST_OPUS_COMMON_H__ */ diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c new file mode 100644 index 0000000..7776f58 --- /dev/null +++ b/ext/opus/gstopusdec.c @@ -0,0 +1,649 @@ +/* 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-opusdec + * @see_also: opusenc, oggdemux + * + * This element decodes a OPUS stream to raw integer audio. + * + * + * Example pipelines + * |[ + * gst-launch -v filesrc location=opus.ogg ! oggdemux ! opusdec ! audioconvert ! audioresample ! alsasink + * ]| Decode an Ogg/Opus file. To create an Ogg/Opus file refer to the documentation of opusenc. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "gstopusheader.h" +#include "gstopuscommon.h" +#include "gstopusdec.h" + +GST_DEBUG_CATEGORY_STATIC (opusdec_debug); +#define GST_CAT_DEFAULT opusdec_debug + +static GstStaticPadTemplate opus_dec_src_factory = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "rate = (int) { 48000, 24000, 16000, 12000, 8000 }, " + "channels = (int) [ 1, 8 ], " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " "width = (int) 16, " "depth = (int) 16") + ); + +static GstStaticPadTemplate opus_dec_sink_factory = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-opus") + ); + +#define DB_TO_LINEAR(x) pow (10., (x) / 20.) + +#define DEFAULT_USE_INBAND_FEC FALSE +#define DEFAULT_APPLY_GAIN TRUE + +enum +{ + PROP_0, + PROP_USE_INBAND_FEC, + PROP_APPLY_GAIN +}; + +GST_BOILERPLATE (GstOpusDec, gst_opus_dec, GstAudioDecoder, + GST_TYPE_AUDIO_DECODER); + +static GstFlowReturn gst_opus_dec_parse_header (GstOpusDec * dec, + GstBuffer * buf); +static gboolean gst_opus_dec_start (GstAudioDecoder * dec); +static gboolean gst_opus_dec_stop (GstAudioDecoder * dec); +static GstFlowReturn gst_opus_dec_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); +static gboolean gst_opus_dec_set_format (GstAudioDecoder * bdec, + GstCaps * caps); +static void gst_opus_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_opus_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); + + +static void +gst_opus_dec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &opus_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &opus_dec_sink_factory); + gst_element_class_set_details_simple (element_class, "Opus audio decoder", + "Codec/Decoder/Audio", + "decode opus streams to audio", + "Sebastian Dröge "); +} + +static void +gst_opus_dec_class_init (GstOpusDecClass * klass) +{ + GObjectClass *gobject_class; + GstAudioDecoderClass *adclass; + + gobject_class = (GObjectClass *) klass; + adclass = (GstAudioDecoderClass *) klass; + + gobject_class->set_property = gst_opus_dec_set_property; + gobject_class->get_property = gst_opus_dec_get_property; + + adclass->start = GST_DEBUG_FUNCPTR (gst_opus_dec_start); + adclass->stop = GST_DEBUG_FUNCPTR (gst_opus_dec_stop); + adclass->handle_frame = GST_DEBUG_FUNCPTR (gst_opus_dec_handle_frame); + adclass->set_format = GST_DEBUG_FUNCPTR (gst_opus_dec_set_format); + + g_object_class_install_property (gobject_class, PROP_USE_INBAND_FEC, + g_param_spec_boolean ("use-inband-fec", "Use in-band FEC", + "Use forward error correction if available", DEFAULT_USE_INBAND_FEC, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_APPLY_GAIN, + g_param_spec_boolean ("apply-gain", "Apply gain", + "Apply gain if any is specified in the header", DEFAULT_APPLY_GAIN, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (opusdec_debug, "opusdec", 0, + "opus decoding element"); +} + +static void +gst_opus_dec_reset (GstOpusDec * dec) +{ + dec->packetno = 0; + if (dec->state) { + opus_multistream_decoder_destroy (dec->state); + dec->state = NULL; + } + + gst_buffer_replace (&dec->streamheader, NULL); + gst_buffer_replace (&dec->vorbiscomment, NULL); + gst_buffer_replace (&dec->last_buffer, NULL); + dec->primed = FALSE; + + dec->pre_skip = 0; + dec->r128_gain = 0; +} + +static void +gst_opus_dec_init (GstOpusDec * dec, GstOpusDecClass * g_class) +{ + dec->sample_rate = 0; + dec->n_channels = 0; + dec->use_inband_fec = FALSE; + dec->apply_gain = DEFAULT_APPLY_GAIN; + + gst_opus_dec_reset (dec); +} + +static gboolean +gst_opus_dec_start (GstAudioDecoder * dec) +{ + GstOpusDec *odec = GST_OPUS_DEC (dec); + + gst_opus_dec_reset (odec); + + /* we know about concealment */ + gst_audio_decoder_set_plc_aware (dec, TRUE); + + if (odec->use_inband_fec) { + gst_audio_decoder_set_latency (dec, 2 * GST_MSECOND + GST_MSECOND / 2, + 120 * GST_MSECOND); + } + + return TRUE; +} + +static gboolean +gst_opus_dec_stop (GstAudioDecoder * dec) +{ + GstOpusDec *odec = GST_OPUS_DEC (dec); + + gst_opus_dec_reset (odec); + + return TRUE; +} + +static double +gst_opus_dec_get_r128_gain (gint16 r128_gain) +{ + return r128_gain / (double) (1 << 8); +} + +static double +gst_opus_dec_get_r128_volume (gint16 r128_gain) +{ + return DB_TO_LINEAR (gst_opus_dec_get_r128_gain (r128_gain)); +} + +static GstCaps * +gst_opus_dec_negotiate (GstOpusDec * dec) +{ + GstCaps *caps = gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (dec)); + GstStructure *s; + + caps = gst_caps_make_writable (caps); + gst_caps_truncate (caps); + + s = gst_caps_get_structure (caps, 0); + gst_structure_fixate_field_nearest_int (s, "rate", 48000); + gst_structure_get_int (s, "rate", &dec->sample_rate); + gst_structure_fixate_field_nearest_int (s, "channels", dec->n_channels); + gst_structure_get_int (s, "channels", &dec->n_channels); + + GST_INFO_OBJECT (dec, "Negotiated %d channels, %d Hz", dec->n_channels, + dec->sample_rate); + + return caps; +} + +static GstFlowReturn +gst_opus_dec_parse_header (GstOpusDec * dec, GstBuffer * buf) +{ + const guint8 *data = GST_BUFFER_DATA (buf); + GstCaps *caps; + const GstAudioChannelPosition *pos = NULL; + + g_return_val_if_fail (gst_opus_header_is_id_header (buf), GST_FLOW_ERROR); + g_return_val_if_fail (dec->n_channels == 0 + || dec->n_channels == data[9], GST_FLOW_ERROR); + + dec->n_channels = data[9]; + dec->pre_skip = GST_READ_UINT16_LE (data + 10); + dec->r128_gain = GST_READ_UINT16_LE (data + 14); + dec->r128_gain_volume = gst_opus_dec_get_r128_volume (dec->r128_gain); + GST_INFO_OBJECT (dec, + "Found pre-skip of %u samples, R128 gain %d (volume %f)", + dec->pre_skip, dec->r128_gain, dec->r128_gain_volume); + + dec->channel_mapping_family = data[18]; + if (dec->channel_mapping_family == 0) { + /* implicit mapping */ + GST_INFO_OBJECT (dec, "Channel mapping family 0, implicit mapping"); + dec->n_streams = dec->n_stereo_streams = 1; + dec->channel_mapping[0] = 0; + dec->channel_mapping[1] = 1; + } else { + dec->n_streams = data[19]; + dec->n_stereo_streams = data[20]; + memcpy (dec->channel_mapping, data + 21, dec->n_channels); + + if (dec->channel_mapping_family == 1) { + GST_INFO_OBJECT (dec, "Channel mapping family 1, Vorbis mapping"); + switch (dec->n_channels) { + case 1: + case 2: + /* nothing */ + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + pos = gst_opus_channel_positions[dec->n_channels - 1]; + break; + default:{ + gint i; + GstAudioChannelPosition *posn = + g_new (GstAudioChannelPosition, dec->n_channels); + + GST_ELEMENT_WARNING (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("Using NONE channel layout for more than 8 channels")); + + for (i = 0; i < dec->n_channels; i++) + posn[i] = GST_AUDIO_CHANNEL_POSITION_NONE; + + pos = posn; + } + } + } else { + GST_INFO_OBJECT (dec, "Channel mapping family %d", + dec->channel_mapping_family); + } + } + + caps = gst_opus_dec_negotiate (dec); + + if (pos) { + GST_DEBUG_OBJECT (dec, "Setting channel positions on caps"); + gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos); + } + + if (dec->n_channels > 8) { + g_free ((GstAudioChannelPosition *) pos); + } + + GST_INFO_OBJECT (dec, "Setting src caps to %" GST_PTR_FORMAT, caps); + gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), caps); + gst_caps_unref (caps); + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_opus_dec_parse_comments (GstOpusDec * dec, GstBuffer * buf) +{ + return GST_FLOW_OK; +} + +static GstFlowReturn +opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer) +{ + GstFlowReturn res = GST_FLOW_OK; + gint size; + guint8 *data; + GstBuffer *outbuf; + gint16 *out_data; + int n, err; + int samples; + unsigned int packet_size; + GstBuffer *buf; + + if (dec->state == NULL) { + /* If we did not get any headers, default to 2 channels */ + if (dec->n_channels == 0) { + GstCaps *caps; + GST_INFO_OBJECT (dec, "No header, assuming single stream"); + dec->n_channels = 2; + dec->sample_rate = 48000; + caps = gst_opus_dec_negotiate (dec); + GST_INFO_OBJECT (dec, "Setting src caps to %" GST_PTR_FORMAT, caps); + gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), caps); + gst_caps_unref (caps); + /* default stereo mapping */ + dec->channel_mapping_family = 0; + dec->channel_mapping[0] = 0; + dec->channel_mapping[1] = 1; + dec->n_streams = 1; + dec->n_stereo_streams = 1; + } + + GST_DEBUG_OBJECT (dec, "Creating decoder with %d channels, %d Hz", + dec->n_channels, dec->sample_rate); +#ifndef GST_DISABLE_DEBUG + gst_opus_common_log_channel_mapping_table (GST_ELEMENT (dec), opusdec_debug, + "Mapping table", dec->n_channels, dec->channel_mapping); +#endif + + GST_DEBUG_OBJECT (dec, "%d streams, %d stereo", dec->n_streams, + dec->n_stereo_streams); + dec->state = + opus_multistream_decoder_create (dec->sample_rate, dec->n_channels, + dec->n_streams, dec->n_stereo_streams, dec->channel_mapping, &err); + if (!dec->state || err != OPUS_OK) + goto creation_failed; + } + + if (buffer) { + GST_DEBUG_OBJECT (dec, "Received buffer of size %u", + GST_BUFFER_SIZE (buffer)); + } else { + GST_DEBUG_OBJECT (dec, "Received missing buffer"); + } + + /* if using in-band FEC, we introdude one extra frame's delay as we need + to potentially wait for next buffer to decode a missing buffer */ + if (dec->use_inband_fec && !dec->primed) { + GST_DEBUG_OBJECT (dec, "First buffer received in FEC mode, early out"); + goto done; + } + + /* That's the buffer we'll be sending to the opus decoder. */ + buf = dec->use_inband_fec && dec->last_buffer ? dec->last_buffer : buffer; + + if (buf) { + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + GST_DEBUG_OBJECT (dec, "Using buffer of size %u", size); + } else { + /* concealment data, pass NULL as the bits parameters */ + GST_DEBUG_OBJECT (dec, "Using NULL buffer"); + data = NULL; + size = 0; + } + + /* use maximum size (120 ms) as the number of returned samples is + not constant over the stream. */ + samples = 120 * dec->sample_rate / 1000; + packet_size = samples * dec->n_channels * 2; + + res = gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), + GST_BUFFER_OFFSET_NONE, packet_size, + GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (dec)), &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); + + if (dec->use_inband_fec) { + if (dec->last_buffer) { + /* normal delayed decode */ + n = opus_multistream_decode (dec->state, data, size, out_data, samples, + 0); + } else { + /* FEC reconstruction decode */ + n = opus_multistream_decode (dec->state, data, size, out_data, samples, + 1); + } + } else { + /* normal decode */ + n = opus_multistream_decode (dec->state, data, size, out_data, samples, 0); + } + + if (n < 0) { + GST_ELEMENT_ERROR (dec, STREAM, DECODE, ("Decoding error: %d", n), (NULL)); + return GST_FLOW_ERROR; + } + GST_DEBUG_OBJECT (dec, "decoded %d samples", n); + GST_BUFFER_SIZE (outbuf) = n * 2 * dec->n_channels; + + /* Skip any samples that need skipping */ + if (dec->pre_skip > 0) { + guint scaled_pre_skip = dec->pre_skip * dec->sample_rate / 48000; + guint skip = scaled_pre_skip > n ? n : scaled_pre_skip; + guint scaled_skip = skip * 48000 / dec->sample_rate; + GST_BUFFER_SIZE (outbuf) -= skip * 2 * dec->n_channels; + GST_BUFFER_DATA (outbuf) += skip * 2 * dec->n_channels; + dec->pre_skip -= scaled_skip; + GST_INFO_OBJECT (dec, + "Skipping %u samples (%u at 48000 Hz, %u left to skip)", skip, + scaled_skip, dec->pre_skip); + } + + if (GST_BUFFER_SIZE (outbuf) == 0) { + gst_buffer_unref (outbuf); + outbuf = NULL; + } + + /* Apply gain */ + /* Would be better off leaving this to a volume element, as this is + a naive conversion that does too many int/float conversions. + However, we don't have control over the pipeline... + So make it optional if the user program wants to use a volume, + but do it by default so the correct volume goes out by default */ + if (dec->apply_gain && outbuf && dec->r128_gain) { + unsigned int i, nsamples = GST_BUFFER_SIZE (outbuf) / 2; + double volume = dec->r128_gain_volume; + gint16 *samples = (gint16 *) GST_BUFFER_DATA (outbuf); + GST_DEBUG_OBJECT (dec, "Applying gain: volume %f", volume); + for (i = 0; i < nsamples; ++i) { + int sample = (int) (samples[i] * volume + 0.5); + samples[i] = sample < -32768 ? -32768 : sample > 32767 ? 32767 : sample; + } + } + + res = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), outbuf, 1); + + if (res != GST_FLOW_OK) + GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); + +done: + if (dec->use_inband_fec) { + gst_buffer_replace (&dec->last_buffer, buffer); + dec->primed = TRUE; + } + + return res; + +creation_failed: + GST_ERROR_OBJECT (dec, "Failed to create Opus decoder: %d", err); + return GST_FLOW_ERROR; +} + +static gboolean +gst_opus_dec_set_format (GstAudioDecoder * bdec, GstCaps * caps) +{ + GstOpusDec *dec = GST_OPUS_DEC (bdec); + gboolean ret = TRUE; + GstStructure *s; + const GValue *streamheader; + + GST_DEBUG_OBJECT (dec, "set_format: %" GST_PTR_FORMAT, caps); + + 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 = gst_opus_dec_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 = gst_opus_dec_parse_comments (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->vorbiscomment, buf); + } + } + +done: + return ret; +} + +static gboolean +memcmp_buffers (GstBuffer * buf1, GstBuffer * buf2) +{ + gsize size1, size2; + + size1 = GST_BUFFER_SIZE (buf1); + size2 = GST_BUFFER_SIZE (buf2); + + if (size1 != size2) + return FALSE; + + return !memcmp (GST_BUFFER_DATA (buf1), GST_BUFFER_DATA (buf2), size1); +} + +static GstFlowReturn +gst_opus_dec_handle_frame (GstAudioDecoder * adec, GstBuffer * buf) +{ + GstFlowReturn res; + GstOpusDec *dec; + + /* no fancy draining */ + if (G_UNLIKELY (!buf)) + return GST_FLOW_OK; + + dec = GST_OPUS_DEC (adec); + GST_LOG_OBJECT (dec, + "Got buffer ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + /* If we have the streamheader and vorbiscomment from the caps already + * ignore them here */ + if (dec->streamheader && dec->vorbiscomment) { + if (memcmp_buffers (dec->streamheader, buf)) { + GST_DEBUG_OBJECT (dec, "found streamheader"); + gst_audio_decoder_finish_frame (adec, NULL, 1); + res = GST_FLOW_OK; + } else if (memcmp_buffers (dec->vorbiscomment, buf)) { + GST_DEBUG_OBJECT (dec, "found vorbiscomments"); + gst_audio_decoder_finish_frame (adec, NULL, 1); + res = GST_FLOW_OK; + } else { + res = opus_dec_chain_parse_data (dec, buf); + } + } else { + /* Otherwise fall back to packet counting and assume that the + * first two packets might be the headers, checking magic. */ + switch (dec->packetno) { + case 0: + if (gst_opus_header_is_header (buf, "OpusHead", 8)) { + GST_DEBUG_OBJECT (dec, "found streamheader"); + res = gst_opus_dec_parse_header (dec, buf); + gst_audio_decoder_finish_frame (adec, NULL, 1); + } else { + res = opus_dec_chain_parse_data (dec, buf); + } + break; + case 1: + if (gst_opus_header_is_header (buf, "OpusTags", 8)) { + GST_DEBUG_OBJECT (dec, "counted vorbiscomments"); + res = gst_opus_dec_parse_comments (dec, buf); + gst_audio_decoder_finish_frame (adec, NULL, 1); + } else { + res = opus_dec_chain_parse_data (dec, buf); + } + break; + default: + { + res = opus_dec_chain_parse_data (dec, buf); + break; + } + } + } + + dec->packetno++; + + return res; +} + +static void +gst_opus_dec_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstOpusDec *dec = GST_OPUS_DEC (object); + + switch (prop_id) { + case PROP_USE_INBAND_FEC: + g_value_set_boolean (value, dec->use_inband_fec); + break; + case PROP_APPLY_GAIN: + g_value_set_boolean (value, dec->apply_gain); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_opus_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstOpusDec *dec = GST_OPUS_DEC (object); + + switch (prop_id) { + case PROP_USE_INBAND_FEC: + dec->use_inband_fec = g_value_get_boolean (value); + break; + case PROP_APPLY_GAIN: + dec->apply_gain = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/ext/opus/gstopusdec.h b/ext/opus/gstopusdec.h new file mode 100644 index 0000000..3ccfa26 --- /dev/null +++ b/ext/opus/gstopusdec.h @@ -0,0 +1,80 @@ +/* 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_OPUS_DEC_H__ +#define __GST_OPUS_DEC_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_OPUS_DEC \ + (gst_opus_dec_get_type()) +#define GST_OPUS_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPUS_DEC,GstOpusDec)) +#define GST_OPUS_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPUS_DEC,GstOpusDecClass)) +#define GST_IS_OPUS_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPUS_DEC)) +#define GST_IS_OPUS_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPUS_DEC)) + +typedef struct _GstOpusDec GstOpusDec; +typedef struct _GstOpusDecClass GstOpusDecClass; + +struct _GstOpusDec { + GstAudioDecoder element; + + OpusMSDecoder *state; + + guint64 packetno; + + GstBuffer *streamheader; + GstBuffer *vorbiscomment; + + int sample_rate; + int n_channels; + guint32 pre_skip; + gint16 r128_gain; + + guint8 n_streams; + guint8 n_stereo_streams; + guint8 channel_mapping_family; + guint8 channel_mapping[256]; + + gboolean apply_gain; + double r128_gain_volume; + + gboolean use_inband_fec; + GstBuffer *last_buffer; + gboolean primed; +}; + +struct _GstOpusDecClass { + GstAudioDecoderClass parent_class; +}; + +GType gst_opus_dec_get_type (void); + +G_END_DECLS + +#endif /* __GST_OPUS_DEC_H__ */ diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c new file mode 100644 index 0000000..9b475cf --- /dev/null +++ b/ext/opus/gstopusenc.c @@ -0,0 +1,1035 @@ +/* GStreamer Opus Encoder + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * Copyright (C) <2011> 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. + */ + +/* + * Based on the speexenc element + */ + +/** + * SECTION:element-opusenc + * @see_also: opusdec, oggmux + * + * This element encodes raw audio to OPUS. + * + * + * Example pipelines + * |[ + * gst-launch -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! opusenc ! oggmux ! filesink location=sine.ogg + * ]| Encode a test sine signal to Ogg/OPUS. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include + +#include +#include +#include "gstopusheader.h" +#include "gstopuscommon.h" +#include "gstopusenc.h" + +GST_DEBUG_CATEGORY_STATIC (opusenc_debug); +#define GST_CAT_DEFAULT opusenc_debug + +/* Some arbitrary bounds beyond which it really doesn't make sense. + The spec mentions 6 kb/s to 510 kb/s, so 4000 and 650000 ought to be + safe as property bounds. */ +#define LOWEST_BITRATE 4000 +#define HIGHEST_BITRATE 650000 + +#define GST_OPUS_ENC_TYPE_BANDWIDTH (gst_opus_enc_bandwidth_get_type()) +static GType +gst_opus_enc_bandwidth_get_type (void) +{ + static const GEnumValue values[] = { + {OPUS_BANDWIDTH_NARROWBAND, "Narrow band", "narrowband"}, + {OPUS_BANDWIDTH_MEDIUMBAND, "Medium band", "mediumband"}, + {OPUS_BANDWIDTH_WIDEBAND, "Wide band", "wideband"}, + {OPUS_BANDWIDTH_SUPERWIDEBAND, "Super wide band", "superwideband"}, + {OPUS_BANDWIDTH_FULLBAND, "Full band", "fullband"}, + {OPUS_AUTO, "Auto", "auto"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstOpusEncBandwidth", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +#define GST_OPUS_ENC_TYPE_FRAME_SIZE (gst_opus_enc_frame_size_get_type()) +static GType +gst_opus_enc_frame_size_get_type (void) +{ + static const GEnumValue values[] = { + {2, "2.5", "2.5"}, + {5, "5", "5"}, + {10, "10", "10"}, + {20, "20", "20"}, + {40, "40", "40"}, + {60, "60", "60"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstOpusEncFrameSize", 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) { 48000, 24000, 16000, 12000, 8000 }, " + "channels = (int) [ 1, 8 ], " + "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-opus") + ); + +#define DEFAULT_AUDIO TRUE +#define DEFAULT_BITRATE 64000 +#define DEFAULT_BANDWIDTH OPUS_BANDWIDTH_FULLBAND +#define DEFAULT_FRAMESIZE 20 +#define DEFAULT_CBR TRUE +#define DEFAULT_CONSTRAINED_VBR TRUE +#define DEFAULT_COMPLEXITY 10 +#define DEFAULT_INBAND_FEC FALSE +#define DEFAULT_DTX FALSE +#define DEFAULT_PACKET_LOSS_PERCENT 0 +#define DEFAULT_MAX_PAYLOAD_SIZE 1024 + +enum +{ + PROP_0, + PROP_AUDIO, + PROP_BITRATE, + PROP_BANDWIDTH, + PROP_FRAME_SIZE, + PROP_CBR, + PROP_CONSTRAINED_VBR, + PROP_COMPLEXITY, + PROP_INBAND_FEC, + PROP_DTX, + PROP_PACKET_LOSS_PERCENT, + PROP_MAX_PAYLOAD_SIZE +}; + +static void gst_opus_enc_finalize (GObject * object); + +static gboolean gst_opus_enc_sink_event (GstAudioEncoder * benc, + GstEvent * event); +static GstCaps *gst_opus_enc_sink_getcaps (GstAudioEncoder * benc); +static gboolean gst_opus_enc_setup (GstOpusEnc * enc); + +static void gst_opus_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_opus_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); + +static gboolean gst_opus_enc_start (GstAudioEncoder * benc); +static gboolean gst_opus_enc_stop (GstAudioEncoder * benc); +static gboolean gst_opus_enc_set_format (GstAudioEncoder * benc, + GstAudioInfo * info); +static GstFlowReturn gst_opus_enc_handle_frame (GstAudioEncoder * benc, + GstBuffer * buf); +static gint64 gst_opus_enc_get_latency (GstOpusEnc * enc); + +static GstFlowReturn gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buffer); + +static void +gst_opus_enc_setup_interfaces (GType opusenc_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 (opusenc_type, GST_TYPE_TAG_SETTER, + &tag_setter_info); + g_type_add_interface_static (opusenc_type, GST_TYPE_PRESET, + &preset_interface_info); + + GST_DEBUG_CATEGORY_INIT (opusenc_debug, "opusenc", 0, "Opus encoder"); +} + +GST_BOILERPLATE_FULL (GstOpusEnc, gst_opus_enc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER, gst_opus_enc_setup_interfaces); + +static void +gst_opus_enc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_set_details_simple (element_class, "Opus audio encoder", + "Codec/Encoder/Audio", + "Encodes audio in Opus format", + "Sebastian Dröge "); +} + +static void +gst_opus_enc_class_init (GstOpusEncClass * klass) +{ + GObjectClass *gobject_class; + GstAudioEncoderClass *base_class; + + gobject_class = (GObjectClass *) klass; + base_class = (GstAudioEncoderClass *) klass; + + gobject_class->set_property = gst_opus_enc_set_property; + gobject_class->get_property = gst_opus_enc_get_property; + + base_class->start = GST_DEBUG_FUNCPTR (gst_opus_enc_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_opus_enc_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_opus_enc_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_opus_enc_handle_frame); + base_class->event = GST_DEBUG_FUNCPTR (gst_opus_enc_sink_event); + base_class->getcaps = GST_DEBUG_FUNCPTR (gst_opus_enc_sink_getcaps); + + g_object_class_install_property (gobject_class, PROP_AUDIO, + g_param_spec_boolean ("audio", "Audio or voice", + "Audio or voice", DEFAULT_AUDIO, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + 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).", + LOWEST_BITRATE, HIGHEST_BITRATE, DEFAULT_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (gobject_class, PROP_BANDWIDTH, + g_param_spec_enum ("bandwidth", "Band Width", "Audio Band Width", + GST_OPUS_ENC_TYPE_BANDWIDTH, DEFAULT_BANDWIDTH, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (gobject_class, PROP_FRAME_SIZE, + g_param_spec_enum ("frame-size", "Frame Size", + "The duration of an audio frame, in ms", GST_OPUS_ENC_TYPE_FRAME_SIZE, + DEFAULT_FRAMESIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + 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 | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (gobject_class, PROP_CONSTRAINED_VBR, + g_param_spec_boolean ("constrained-vbr", "Constrained VBR", + "Constrained VBR", DEFAULT_CONSTRAINED_VBR, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + 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 | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (gobject_class, PROP_INBAND_FEC, + g_param_spec_boolean ("inband-fec", "In-band FEC", + "Enable forward error correction", DEFAULT_INBAND_FEC, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (gobject_class, PROP_DTX, + g_param_spec_boolean ("dtx", "DTX", "DTX", DEFAULT_DTX, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_PACKET_LOSS_PERCENT, g_param_spec_int ("packet-loss-percentage", + "Loss percentage", "Packet loss percentage", 0, 100, + DEFAULT_PACKET_LOSS_PERCENT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_MAX_PAYLOAD_SIZE, g_param_spec_uint ("max-payload-size", + "Max payload size", "Maximum payload size in bytes", 2, 1275, + DEFAULT_MAX_PAYLOAD_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_opus_enc_finalize); +} + +static void +gst_opus_enc_finalize (GObject * object) +{ + GstOpusEnc *enc; + + enc = GST_OPUS_ENC (object); + + g_mutex_free (enc->property_lock); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_opus_enc_init (GstOpusEnc * enc, GstOpusEncClass * klass) +{ + GstAudioEncoder *benc = GST_AUDIO_ENCODER (enc); + + GST_DEBUG_OBJECT (enc, "init"); + + enc->property_lock = g_mutex_new (); + + enc->n_channels = -1; + enc->sample_rate = -1; + enc->frame_samples = 0; + + enc->bitrate = DEFAULT_BITRATE; + enc->bandwidth = DEFAULT_BANDWIDTH; + enc->frame_size = DEFAULT_FRAMESIZE; + enc->cbr = DEFAULT_CBR; + enc->constrained_vbr = DEFAULT_CONSTRAINED_VBR; + enc->complexity = DEFAULT_COMPLEXITY; + enc->inband_fec = DEFAULT_INBAND_FEC; + enc->dtx = DEFAULT_DTX; + enc->packet_loss_percentage = DEFAULT_PACKET_LOSS_PERCENT; + enc->max_payload_size = DEFAULT_MAX_PAYLOAD_SIZE; + + /* arrange granulepos marking (and required perfect ts) */ + gst_audio_encoder_set_mark_granule (benc, TRUE); + gst_audio_encoder_set_perfect_timestamp (benc, TRUE); +} + +static gboolean +gst_opus_enc_start (GstAudioEncoder * benc) +{ + GstOpusEnc *enc = GST_OPUS_ENC (benc); + + GST_DEBUG_OBJECT (enc, "start"); + enc->tags = gst_tag_list_new (); + enc->header_sent = FALSE; + + return TRUE; +} + +static gboolean +gst_opus_enc_stop (GstAudioEncoder * benc) +{ + GstOpusEnc *enc = GST_OPUS_ENC (benc); + + GST_DEBUG_OBJECT (enc, "stop"); + enc->header_sent = FALSE; + if (enc->state) { + opus_multistream_encoder_destroy (enc->state); + enc->state = NULL; + } + gst_tag_list_free (enc->tags); + enc->tags = NULL; + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + g_slist_free (enc->headers); + enc->headers = NULL; + gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); + + return TRUE; +} + +static gint64 +gst_opus_enc_get_latency (GstOpusEnc * enc) +{ + gint64 latency = gst_util_uint64_scale (enc->frame_samples, GST_SECOND, + enc->sample_rate); + GST_DEBUG_OBJECT (enc, "Latency: %" GST_TIME_FORMAT, GST_TIME_ARGS (latency)); + return latency; +} + +static void +gst_opus_enc_setup_base_class (GstOpusEnc * enc, GstAudioEncoder * benc) +{ + gst_audio_encoder_set_latency (benc, + gst_opus_enc_get_latency (enc), gst_opus_enc_get_latency (enc)); + gst_audio_encoder_set_frame_samples_min (benc, + enc->frame_samples * enc->n_channels * 2); + gst_audio_encoder_set_frame_samples_max (benc, + enc->frame_samples * enc->n_channels * 2); + gst_audio_encoder_set_frame_max (benc, 0); +} + +static gint +gst_opus_enc_get_frame_samples (GstOpusEnc * enc) +{ + gint frame_samples = 0; + switch (enc->frame_size) { + case 2: + frame_samples = enc->sample_rate / 400; + break; + case 5: + frame_samples = enc->sample_rate / 200; + break; + case 10: + frame_samples = enc->sample_rate / 100; + break; + case 20: + frame_samples = enc->sample_rate / 50; + break; + case 40: + frame_samples = enc->sample_rate / 25; + break; + case 60: + frame_samples = 3 * enc->sample_rate / 50; + break; + default: + GST_WARNING_OBJECT (enc, "Unsupported frame size: %d", enc->frame_size); + frame_samples = 0; + break; + } + return frame_samples; +} + +static void +gst_opus_enc_setup_trivial_mapping (GstOpusEnc * enc, guint8 mapping[256]) +{ + int n; + + for (n = 0; n < 255; ++n) + mapping[n] = n; +} + +static int +gst_opus_enc_find_channel_position (GstOpusEnc * enc, const GstAudioInfo * info, + GstAudioChannelPosition position) +{ + int n; + for (n = 0; n < enc->n_channels; ++n) { + if (GST_AUDIO_INFO_POSITION (info, n) == position) { + return n; + } + } + return -1; +} + +static int +gst_opus_enc_find_channel_position_in_vorbis_order (GstOpusEnc * enc, + GstAudioChannelPosition position) +{ + int c; + + for (c = 0; c < enc->n_channels; ++c) { + if (gst_opus_channel_positions[enc->n_channels - 1][c] == position) { + GST_INFO_OBJECT (enc, + "Channel position %s maps to index %d in Vorbis order", + gst_opus_channel_names[position], c); + return c; + } + } + GST_WARNING_OBJECT (enc, + "Channel position %s is not representable in Vorbis order", + gst_opus_channel_names[position]); + return -1; +} + +static void +gst_opus_enc_setup_channel_mappings (GstOpusEnc * enc, + const GstAudioInfo * info) +{ +#define MAPS(idx,pos) (GST_AUDIO_INFO_POSITION (info, (idx)) == GST_AUDIO_CHANNEL_POSITION_##pos) + + int n; + + GST_DEBUG_OBJECT (enc, "Setting up channel mapping for %d channels", + enc->n_channels); + + /* Start by setting up a default trivial mapping */ + enc->n_stereo_streams = 0; + gst_opus_enc_setup_trivial_mapping (enc, enc->encoding_channel_mapping); + gst_opus_enc_setup_trivial_mapping (enc, enc->decoding_channel_mapping); + + /* For one channel, use the basic RTP mapping */ + if (enc->n_channels == 1) { + GST_INFO_OBJECT (enc, "Mono, trivial RTP mapping"); + enc->channel_mapping_family = 0; + /* implicit mapping for family 0 */ + return; + } + + /* For two channels, use the basic RTP mapping if the channels are + mapped as left/right. */ + if (enc->n_channels == 2) { + if (MAPS (0, FRONT_LEFT) && MAPS (1, FRONT_RIGHT)) { + GST_INFO_OBJECT (enc, "Stereo, canonical mapping"); + enc->channel_mapping_family = 0; + enc->n_stereo_streams = 1; + /* The channel mapping is implicit for family 0, that's why we do not + attempt to create one for right/left - this will be mapped to the + Vorbis mapping below. */ + return; + } else { + GST_DEBUG_OBJECT (enc, "Stereo, but not canonical mapping, continuing"); + } + } + + /* For channels between 1 and 8, we use the Vorbis mapping if we can + find a permutation that matches it. Mono will have been taken care + of earlier, but this code also handles it. Same for left/right stereo. + There are two mappings. One maps the input channels to an ordering + which has the natural pairs first so they can benefit from the Opus + stereo channel coupling, and the other maps this ordering to the + Vorbis ordering. */ + if (enc->n_channels >= 1 && enc->n_channels <= 8) { + int c0, c1, c0v, c1v; + int mapped; + gboolean positions_done[256]; + static const GstAudioChannelPosition pairs[][2] = { + {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_LEFT_OF_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, + {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER}, + {GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, + GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}, + }; + size_t pair; + + GST_DEBUG_OBJECT (enc, + "In range for the Vorbis mapping, building channel mapping tables"); + + enc->n_stereo_streams = 0; + mapped = 0; + for (n = 0; n < 256; ++n) + positions_done[n] = FALSE; + + /* First, find any natural pairs, and move them to the front */ + for (pair = 0; pair < G_N_ELEMENTS (pairs); ++pair) { + GstAudioChannelPosition p0 = pairs[pair][0]; + GstAudioChannelPosition p1 = pairs[pair][1]; + c0 = gst_opus_enc_find_channel_position (enc, info, p0); + c1 = gst_opus_enc_find_channel_position (enc, info, p1); + if (c0 >= 0 && c1 >= 0) { + /* We found a natural pair */ + GST_DEBUG_OBJECT (enc, "Natural pair '%s/%s' found at %d %d", + gst_opus_channel_names[p0], gst_opus_channel_names[p1], c0, c1); + /* Find where they map in Vorbis order */ + c0v = gst_opus_enc_find_channel_position_in_vorbis_order (enc, p0); + c1v = gst_opus_enc_find_channel_position_in_vorbis_order (enc, p1); + if (c0v < 0 || c1v < 0) { + GST_WARNING_OBJECT (enc, + "Cannot map channel positions to Vorbis order, using unknown mapping"); + enc->channel_mapping_family = 255; + enc->n_stereo_streams = 0; + return; + } + + enc->encoding_channel_mapping[mapped] = c0; + enc->encoding_channel_mapping[mapped + 1] = c1; + enc->decoding_channel_mapping[c0v] = mapped; + enc->decoding_channel_mapping[c1v] = mapped + 1; + enc->n_stereo_streams++; + mapped += 2; + positions_done[p0] = positions_done[p1] = TRUE; + } + } + + /* Now add all other input channels as mono streams */ + for (n = 0; n < enc->n_channels; ++n) { + GstAudioChannelPosition position = GST_AUDIO_INFO_POSITION (info, n); + + /* if we already mapped it while searching for pairs, nothing else + needs to be done */ + if (!positions_done[position]) { + int cv; + GST_DEBUG_OBJECT (enc, "Channel position %s is not mapped yet, adding", + gst_opus_channel_names[position]); + cv = gst_opus_enc_find_channel_position_in_vorbis_order (enc, position); + if (cv < 0) { + GST_WARNING_OBJECT (enc, + "Cannot map channel positions to Vorbis order, using unknown mapping"); + enc->channel_mapping_family = 255; + enc->n_stereo_streams = 0; + return; + } + enc->encoding_channel_mapping[mapped] = n; + enc->decoding_channel_mapping[cv] = mapped; + mapped++; + } + } + +#ifndef GST_DISABLE_DEBUG + GST_INFO_OBJECT (enc, + "Mapping tables built: %d channels, %d stereo streams", enc->n_channels, + enc->n_stereo_streams); + gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug, + "Encoding mapping table", enc->n_channels, + enc->encoding_channel_mapping); + gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug, + "Decoding mapping table", enc->n_channels, + enc->decoding_channel_mapping); +#endif + + enc->channel_mapping_family = 1; + return; + } + + /* More than 8 channels, if future mappings are added for those */ + + /* For other cases, we use undefined, with the default trivial mapping + and all mono streams */ + GST_WARNING_OBJECT (enc, "Unknown mapping"); + enc->channel_mapping_family = 255; + enc->n_stereo_streams = 0; + +#undef MAPS +} + +static gboolean +gst_opus_enc_set_format (GstAudioEncoder * benc, GstAudioInfo * info) +{ + GstOpusEnc *enc; + + enc = GST_OPUS_ENC (benc); + + g_mutex_lock (enc->property_lock); + + enc->n_channels = GST_AUDIO_INFO_CHANNELS (info); + enc->sample_rate = GST_AUDIO_INFO_RATE (info); + gst_opus_enc_setup_channel_mappings (enc, info); + GST_DEBUG_OBJECT (benc, "Setup with %d channels, %d Hz", enc->n_channels, + enc->sample_rate); + + /* handle reconfigure */ + if (enc->state) { + opus_multistream_encoder_destroy (enc->state); + enc->state = NULL; + } + if (!gst_opus_enc_setup (enc)) + return FALSE; + + enc->frame_samples = gst_opus_enc_get_frame_samples (enc); + + /* feedback to base class */ + gst_opus_enc_setup_base_class (enc, benc); + + g_mutex_unlock (enc->property_lock); + + return TRUE; +} + +static gboolean +gst_opus_enc_setup (GstOpusEnc * enc) +{ + int error = OPUS_OK; + +#ifndef GST_DISABLE_DEBUG + GST_DEBUG_OBJECT (enc, + "setup: %d Hz, %d channels, %d stereo streams, family %d", + enc->sample_rate, enc->n_channels, enc->n_stereo_streams, + enc->channel_mapping_family); + GST_INFO_OBJECT (enc, "Mapping tables built: %d channels, %d stereo streams", + enc->n_channels, enc->n_stereo_streams); + gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug, + "Encoding mapping table", enc->n_channels, enc->encoding_channel_mapping); + gst_opus_common_log_channel_mapping_table (GST_ELEMENT (enc), opusenc_debug, + "Decoding mapping table", enc->n_channels, enc->decoding_channel_mapping); +#endif + + enc->state = opus_multistream_encoder_create (enc->sample_rate, + enc->n_channels, enc->n_channels - enc->n_stereo_streams, + enc->n_stereo_streams, enc->encoding_channel_mapping, + enc->audio_or_voip ? OPUS_APPLICATION_AUDIO : OPUS_APPLICATION_VOIP, + &error); + if (!enc->state || error != OPUS_OK) + goto encoder_creation_failed; + + opus_multistream_encoder_ctl (enc->state, OPUS_SET_BITRATE (enc->bitrate), 0); + opus_multistream_encoder_ctl (enc->state, OPUS_SET_BANDWIDTH (enc->bandwidth), + 0); + opus_multistream_encoder_ctl (enc->state, OPUS_SET_VBR (!enc->cbr), 0); + opus_multistream_encoder_ctl (enc->state, + OPUS_SET_VBR_CONSTRAINT (enc->constrained_vbr), 0); + opus_multistream_encoder_ctl (enc->state, + OPUS_SET_COMPLEXITY (enc->complexity), 0); + opus_multistream_encoder_ctl (enc->state, + OPUS_SET_INBAND_FEC (enc->inband_fec), 0); + opus_multistream_encoder_ctl (enc->state, OPUS_SET_DTX (enc->dtx), 0); + opus_multistream_encoder_ctl (enc->state, + OPUS_SET_PACKET_LOSS_PERC (enc->packet_loss_percentage), 0); + + GST_LOG_OBJECT (enc, "we have frame size %d", enc->frame_size); + + return TRUE; + +encoder_creation_failed: + GST_ERROR_OBJECT (enc, "Encoder creation failed"); + return FALSE; +} + +static gboolean +gst_opus_enc_sink_event (GstAudioEncoder * benc, GstEvent * event) +{ + GstOpusEnc *enc; + + enc = GST_OPUS_ENC (benc); + + GST_DEBUG_OBJECT (enc, "sink event: %s", GST_EVENT_TYPE_NAME (event)); + switch (GST_EVENT_TYPE (event)) { + 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); + break; + } + default: + break; + } + + return FALSE; +} + +static GstCaps * +gst_opus_enc_sink_getcaps (GstAudioEncoder * benc) +{ + GstOpusEnc *enc; + GstCaps *caps; + GstCaps *peercaps = NULL; + GstCaps *intersect = NULL; + guint i; + gboolean allow_multistream; + + enc = GST_OPUS_ENC (benc); + + GST_DEBUG_OBJECT (enc, "sink getcaps"); + + peercaps = gst_pad_peer_get_caps (GST_AUDIO_ENCODER_SRC_PAD (benc)); + if (!peercaps) { + GST_DEBUG_OBJECT (benc, "No peercaps, returning template sink caps"); + return + gst_caps_copy (gst_pad_get_pad_template_caps + (GST_AUDIO_ENCODER_SINK_PAD (benc))); + } + + intersect = gst_caps_intersect (peercaps, + gst_pad_get_pad_template_caps (GST_AUDIO_ENCODER_SRC_PAD (benc))); + gst_caps_unref (peercaps); + + if (gst_caps_is_empty (intersect)) + return intersect; + + allow_multistream = FALSE; + for (i = 0; i < gst_caps_get_size (intersect); i++) { + GstStructure *s = gst_caps_get_structure (intersect, i); + gboolean multistream; + if (gst_structure_get_boolean (s, "multistream", &multistream)) { + if (multistream) { + allow_multistream = TRUE; + } + } else { + allow_multistream = TRUE; + } + } + + gst_caps_unref (intersect); + + caps = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_AUDIO_ENCODER_SINK_PAD + (benc))); + if (!allow_multistream) { + GValue range = { 0 }; + g_value_init (&range, GST_TYPE_INT_RANGE); + gst_value_set_int_range (&range, 1, 2); + for (i = 0; i < gst_caps_get_size (caps); i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + gst_structure_set_value (s, "channels", &range); + } + g_value_unset (&range); + } + + GST_DEBUG_OBJECT (enc, "Returning caps: %" GST_PTR_FORMAT, caps); + return caps; +} + +static GstFlowReturn +gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf) +{ + guint8 *bdata, *data, *mdata = NULL; + gsize bsize, size; + gsize bytes; + gint ret = GST_FLOW_OK; + + g_mutex_lock (enc->property_lock); + + bytes = enc->frame_samples * enc->n_channels * 2; + if (G_LIKELY (buf)) { + bdata = GST_BUFFER_DATA (buf); + bsize = GST_BUFFER_SIZE (buf); + if (G_UNLIKELY (bsize % bytes)) { + GST_DEBUG_OBJECT (enc, "draining; adding silence samples"); + + size = ((bsize / bytes) + 1) * bytes; + mdata = g_malloc0 (size); + memcpy (mdata, bdata, bsize); + bdata = NULL; + data = mdata; + } else { + data = bdata; + size = bsize; + } + } else { + GST_DEBUG_OBJECT (enc, "nothing to drain"); + goto done; + } + + + while (size) { + gint outsize; + GstBuffer *outbuf; + + ret = gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), + GST_BUFFER_OFFSET_NONE, enc->max_payload_size * enc->n_channels, + GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (enc)), &outbuf); + + if (GST_FLOW_OK != ret) + goto done; + + GST_DEBUG_OBJECT (enc, "encoding %d samples (%d bytes)", + enc->frame_samples, (int) bytes); + + outsize = + opus_multistream_encode (enc->state, (const gint16 *) data, + enc->frame_samples, GST_BUFFER_DATA (outbuf), + enc->max_payload_size * enc->n_channels); + + if (outsize < 0) { + GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize); + ret = GST_FLOW_ERROR; + goto done; + } else if (outsize > enc->max_payload_size) { + GST_WARNING_OBJECT (enc, + "Encoded size %d is higher than max payload size (%d bytes)", + outsize, enc->max_payload_size); + ret = GST_FLOW_ERROR; + goto done; + } + + GST_DEBUG_OBJECT (enc, "Output packet is %u bytes", outsize); + GST_BUFFER_SIZE (outbuf) = outsize; + + ret = + gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (enc), outbuf, + enc->frame_samples); + + if ((GST_FLOW_OK != ret) && (GST_FLOW_NOT_LINKED != ret)) + goto done; + + data += bytes; + size -= bytes; + } + +done: + + g_mutex_unlock (enc->property_lock); + + if (mdata) + g_free (mdata); + + return ret; +} + +static GstFlowReturn +gst_opus_enc_handle_frame (GstAudioEncoder * benc, GstBuffer * buf) +{ + GstOpusEnc *enc; + GstFlowReturn ret = GST_FLOW_OK; + + enc = GST_OPUS_ENC (benc); + GST_DEBUG_OBJECT (enc, "handle_frame"); + + if (!enc->header_sent) { + GstCaps *caps; + + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + g_slist_free (enc->headers); + enc->headers = NULL; + + gst_opus_header_create_caps (&caps, &enc->headers, enc->n_channels, + enc->n_stereo_streams, enc->sample_rate, enc->channel_mapping_family, + enc->decoding_channel_mapping, + gst_tag_setter_get_tag_list (GST_TAG_SETTER (enc))); + + + /* negotiate with these caps */ + GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps); + + gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), caps); + gst_caps_unref (caps); + + enc->header_sent = TRUE; + } + + GST_DEBUG_OBJECT (enc, "received buffer %p of %u bytes", buf, + buf ? GST_BUFFER_SIZE (buf) : 0); + + ret = gst_opus_enc_encode (enc, buf); + + return ret; +} + +static void +gst_opus_enc_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstOpusEnc *enc; + + enc = GST_OPUS_ENC (object); + + g_mutex_lock (enc->property_lock); + + switch (prop_id) { + case PROP_AUDIO: + g_value_set_boolean (value, enc->audio_or_voip); + break; + case PROP_BITRATE: + g_value_set_int (value, enc->bitrate); + break; + case PROP_BANDWIDTH: + g_value_set_enum (value, enc->bandwidth); + break; + case PROP_FRAME_SIZE: + g_value_set_enum (value, enc->frame_size); + break; + case PROP_CBR: + g_value_set_boolean (value, enc->cbr); + break; + case PROP_CONSTRAINED_VBR: + g_value_set_boolean (value, enc->constrained_vbr); + break; + case PROP_COMPLEXITY: + g_value_set_int (value, enc->complexity); + break; + case PROP_INBAND_FEC: + g_value_set_boolean (value, enc->inband_fec); + break; + case PROP_DTX: + g_value_set_boolean (value, enc->dtx); + break; + case PROP_PACKET_LOSS_PERCENT: + g_value_set_int (value, enc->packet_loss_percentage); + break; + case PROP_MAX_PAYLOAD_SIZE: + g_value_set_uint (value, enc->max_payload_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + g_mutex_unlock (enc->property_lock); +} + +static void +gst_opus_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstOpusEnc *enc; + + enc = GST_OPUS_ENC (object); + +#define GST_OPUS_UPDATE_PROPERTY(prop,type,ctl) do { \ + g_mutex_lock (enc->property_lock); \ + enc->prop = g_value_get_##type (value); \ + if (enc->state) { \ + opus_multistream_encoder_ctl (enc->state, OPUS_SET_##ctl (enc->prop)); \ + } \ + g_mutex_unlock (enc->property_lock); \ +} while(0) + + switch (prop_id) { + case PROP_AUDIO: + enc->audio_or_voip = g_value_get_boolean (value); + break; + case PROP_BITRATE: + GST_OPUS_UPDATE_PROPERTY (bitrate, int, BITRATE); + break; + case PROP_BANDWIDTH: + GST_OPUS_UPDATE_PROPERTY (bandwidth, enum, BANDWIDTH); + break; + case PROP_FRAME_SIZE: + g_mutex_lock (enc->property_lock); + enc->frame_size = g_value_get_enum (value); + enc->frame_samples = gst_opus_enc_get_frame_samples (enc); + gst_opus_enc_setup_base_class (enc, GST_AUDIO_ENCODER (enc)); + g_mutex_unlock (enc->property_lock); + break; + case PROP_CBR: + /* this one has an opposite meaning to the opus ctl... */ + g_mutex_lock (enc->property_lock); + enc->cbr = g_value_get_boolean (value); + opus_multistream_encoder_ctl (enc->state, OPUS_SET_VBR (!enc->cbr)); + g_mutex_unlock (enc->property_lock); + break; + case PROP_CONSTRAINED_VBR: + GST_OPUS_UPDATE_PROPERTY (constrained_vbr, boolean, VBR_CONSTRAINT); + break; + case PROP_COMPLEXITY: + GST_OPUS_UPDATE_PROPERTY (complexity, int, COMPLEXITY); + break; + case PROP_INBAND_FEC: + GST_OPUS_UPDATE_PROPERTY (inband_fec, boolean, INBAND_FEC); + break; + case PROP_DTX: + GST_OPUS_UPDATE_PROPERTY (dtx, boolean, DTX); + break; + case PROP_PACKET_LOSS_PERCENT: + GST_OPUS_UPDATE_PROPERTY (packet_loss_percentage, int, PACKET_LOSS_PERC); + break; + case PROP_MAX_PAYLOAD_SIZE: + g_mutex_lock (enc->property_lock); + enc->max_payload_size = g_value_get_uint (value); + g_mutex_unlock (enc->property_lock); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + +#undef GST_OPUS_UPDATE_PROPERTY + +} diff --git a/ext/opus/gstopusenc.h b/ext/opus/gstopusenc.h new file mode 100644 index 0000000..1e39ad0 --- /dev/null +++ b/ext/opus/gstopusenc.h @@ -0,0 +1,98 @@ +/* GStreamer Opus 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_OPUS_ENC_H__ +#define __GST_OPUS_ENC_H__ + + +#include +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_OPUS_ENC \ + (gst_opus_enc_get_type()) +#define GST_OPUS_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPUS_ENC,GstOpusEnc)) +#define GST_OPUS_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPUS_ENC,GstOpusEncClass)) +#define GST_IS_OPUS_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPUS_ENC)) +#define GST_IS_OPUS_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPUS_ENC)) + +#define MAX_FRAME_SIZE 2000*2 +#define MAX_FRAME_BYTES 2000 + +typedef struct _GstOpusEnc GstOpusEnc; +typedef struct _GstOpusEncClass GstOpusEncClass; + +struct _GstOpusEnc { + GstAudioEncoder element; + + OpusMSEncoder *state; + + /* Locks those properties which may be changed at play time */ + GMutex *property_lock; + + /* properties */ + gboolean audio_or_voip; + gint bitrate; + gint bandwidth; + gint frame_size; + gboolean cbr; + gboolean constrained_vbr; + gint complexity; + gboolean inband_fec; + gboolean dtx; + gint packet_loss_percentage; + guint max_payload_size; + + gint frame_samples; + gint n_channels; + gint sample_rate; + + gboolean header_sent; + + GSList *headers; + + GstTagList *tags; + + guint8 channel_mapping_family; + guint8 encoding_channel_mapping[256]; + guint8 decoding_channel_mapping[256]; + guint8 n_stereo_streams; +}; + +struct _GstOpusEncClass { + GstAudioEncoderClass parent_class; + + /* signals */ + void (*frame_encoded) (GstElement *element); +}; + +GType gst_opus_enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_OPUS_ENC_H__ */ diff --git a/ext/opus/gstopusheader.c b/ext/opus/gstopusheader.c new file mode 100644 index 0000000..d3d631f --- /dev/null +++ b/ext/opus/gstopusheader.c @@ -0,0 +1,251 @@ +/* GStreamer Opus Encoder + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * Copyright (C) <2011> 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 "gstopusheader.h" + +static GstBuffer * +gst_opus_enc_create_id_buffer (gint nchannels, gint n_stereo_streams, + gint sample_rate, guint8 channel_mapping_family, + const guint8 * channel_mapping) +{ + GstBuffer *buffer; + GstByteWriter bw; + + g_return_val_if_fail (nchannels > 0 && nchannels < 256, NULL); + g_return_val_if_fail (n_stereo_streams >= 0, NULL); + g_return_val_if_fail (n_stereo_streams <= nchannels - n_stereo_streams, NULL); + + gst_byte_writer_init (&bw); + + /* See http://wiki.xiph.org/OggOpus */ + gst_byte_writer_put_data (&bw, (const guint8 *) "OpusHead", 8); + gst_byte_writer_put_uint8 (&bw, 0); /* version number */ + gst_byte_writer_put_uint8 (&bw, nchannels); + gst_byte_writer_put_uint16_le (&bw, 0); /* pre-skip */ + gst_byte_writer_put_uint32_le (&bw, sample_rate); + gst_byte_writer_put_uint16_le (&bw, 0); /* output gain */ + gst_byte_writer_put_uint8 (&bw, channel_mapping_family); + if (channel_mapping_family > 0) { + gst_byte_writer_put_uint8 (&bw, nchannels - n_stereo_streams); + gst_byte_writer_put_uint8 (&bw, n_stereo_streams); + gst_byte_writer_put_data (&bw, channel_mapping, nchannels); + } + + buffer = gst_byte_writer_reset_and_get_buffer (&bw); + + GST_BUFFER_OFFSET (buffer) = 0; + GST_BUFFER_OFFSET_END (buffer) = 0; + + return buffer; +} + +static GstBuffer * +gst_opus_enc_create_metadata_buffer (const GstTagList * tags) +{ + GstTagList *empty_tags = NULL; + GstBuffer *comments = NULL; + + GST_DEBUG ("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, (const guint8 *) "OpusTags", + 8, "Encoded with GStreamer Opusenc"); + + GST_BUFFER_OFFSET (comments) = 0; + GST_BUFFER_OFFSET_END (comments) = 0; + + if (empty_tags) + gst_tag_list_free (empty_tags); + + return comments; +} + +/* + * (really really) FIXME: move into core (dixit tpm) + */ +/** + * _gst_caps_set_buffer_array: + * @caps: a #GstCaps + * @field: field in caps to set + * @buf: header buffers + * + * Adds given buffers to an array of buffers set as the given @field + * on the given @caps. List of buffer arguments must be NULL-terminated. + * + * Returns: input caps with a streamheader field added, or NULL if some error + */ +static GstCaps * +_gst_caps_set_buffer_array (GstCaps * caps, const gchar * field, + GstBuffer * buf, ...) +{ + GstStructure *structure = NULL; + va_list va; + GValue array = { 0 }; + GValue value = { 0 }; + + g_return_val_if_fail (caps != NULL, NULL); + g_return_val_if_fail (gst_caps_is_fixed (caps), NULL); + g_return_val_if_fail (field != NULL, NULL); + + caps = gst_caps_make_writable (caps); + structure = gst_caps_get_structure (caps, 0); + + g_value_init (&array, GST_TYPE_ARRAY); + + va_start (va, buf); + /* put buffers in a fixed list */ + while (buf) { + g_assert (gst_buffer_is_writable (buf)); + + /* mark buffer */ + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + + g_value_init (&value, GST_TYPE_BUFFER); + buf = gst_buffer_copy (buf); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); + + buf = va_arg (va, GstBuffer *); + } + + gst_structure_set_value (structure, field, &array); + g_value_unset (&array); + + return caps; +} + +void +gst_opus_header_create_caps_from_headers (GstCaps ** caps, GSList ** headers, + GstBuffer * buf1, GstBuffer * buf2) +{ + int n_streams, family; + gboolean multistream; + + g_return_if_fail (caps); + g_return_if_fail (headers && !*headers); + g_return_if_fail (GST_BUFFER_SIZE (buf1) >= 19); + + /* work out the number of streams */ + family = GST_BUFFER_DATA (buf1)[18]; + if (family == 0) { + n_streams = 1; + } else { + /* only included in the header for family > 0 */ + g_return_if_fail (GST_BUFFER_SIZE (buf1) >= 20); + n_streams = GST_BUFFER_DATA (buf1)[19]; + } + + /* mark and put on caps */ + multistream = n_streams > 1; + *caps = gst_caps_new_simple ("audio/x-opus", + "multistream", G_TYPE_BOOLEAN, multistream, NULL); + *caps = _gst_caps_set_buffer_array (*caps, "streamheader", buf1, buf2, NULL); + + *headers = g_slist_prepend (*headers, buf2); + *headers = g_slist_prepend (*headers, buf1); +} + +void +gst_opus_header_create_caps (GstCaps ** caps, GSList ** headers, gint nchannels, + gint n_stereo_streams, gint sample_rate, guint8 channel_mapping_family, + const guint8 * channel_mapping, const GstTagList * tags) +{ + GstBuffer *buf1, *buf2; + + g_return_if_fail (caps); + g_return_if_fail (headers && !*headers); + g_return_if_fail (nchannels > 0); + g_return_if_fail (sample_rate >= 0); /* 0 -> unset */ + g_return_if_fail (channel_mapping_family == 0 || channel_mapping); + + /* Opus streams in Ogg 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. */ + + /* create header buffers */ + buf1 = + gst_opus_enc_create_id_buffer (nchannels, n_stereo_streams, sample_rate, + channel_mapping_family, channel_mapping); + buf2 = gst_opus_enc_create_metadata_buffer (tags); + + gst_opus_header_create_caps_from_headers (caps, headers, buf1, buf2); +} + +gboolean +gst_opus_header_is_header (GstBuffer * buf, const char *magic, guint magic_size) +{ + return (GST_BUFFER_SIZE (buf) >= magic_size + && !memcmp (magic, GST_BUFFER_DATA (buf), magic_size)); +} + +gboolean +gst_opus_header_is_id_header (GstBuffer * buf) +{ + gsize size = GST_BUFFER_SIZE (buf); + const guint8 *data = GST_BUFFER_DATA (buf); + guint8 channels, channel_mapping_family, n_streams, n_stereo_streams; + + if (size < 19) + return FALSE; + if (!gst_opus_header_is_header (buf, "OpusHead", 8)) + return FALSE; + channels = data[9]; + if (channels == 0) + return FALSE; + channel_mapping_family = data[18]; + if (channel_mapping_family == 0) { + if (channels > 2) + return FALSE; + } else { + channels = data[9]; + if (size < 21 + channels) + return FALSE; + n_streams = data[19]; + n_stereo_streams = data[20]; + if (n_streams == 0) + return FALSE; + if (n_stereo_streams > n_streams) + return FALSE; + if (n_streams + n_stereo_streams > 255) + return FALSE; + } + return TRUE; +} + +gboolean +gst_opus_header_is_comment_header (GstBuffer * buf) +{ + return gst_opus_header_is_header (buf, "OpusTags", 8); +} diff --git a/ext/opus/gstopusheader.h b/ext/opus/gstopusheader.h new file mode 100644 index 0000000..c6278ef --- /dev/null +++ b/ext/opus/gstopusheader.h @@ -0,0 +1,42 @@ +/* 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_OPUS_HEADER_H__ +#define __GST_OPUS_HEADER_H__ + +#include + +G_BEGIN_DECLS + +extern void gst_opus_header_create_caps_from_headers (GstCaps **caps, GSList **headers, + GstBuffer *id_header, GstBuffer *comment_header); +extern void gst_opus_header_create_caps (GstCaps **caps, GSList **headers, + gint nchannels, gint n_stereo_streams, gint sample_rate, + guint8 channel_mapping_family, const guint8 *channel_mapping, + const GstTagList *tags); +extern gboolean gst_opus_header_is_header (GstBuffer * buf, + const char *magic, guint magic_size); +extern gboolean gst_opus_header_is_id_header (GstBuffer * buf); +extern gboolean gst_opus_header_is_comment_header (GstBuffer * buf); + + +G_END_DECLS + +#endif /* __GST_OPUS_HEADER_H__ */ diff --git a/ext/opus/gstopusparse.c b/ext/opus/gstopusparse.c new file mode 100644 index 0000000..472e7b0 --- /dev/null +++ b/ext/opus/gstopusparse.c @@ -0,0 +1,338 @@ +/* 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. + */ + +/** + * SECTION:element-opusparse + * @see_also: opusenc, opusdec + * + * This element parses OPUS packets. + * + * + * Example pipelines + * |[ + * gst-launch -v filesrc location=opusdata ! opusparse ! opusdec ! audioconvert ! audioresample ! alsasink + * ]| Decode and plays an unmuxed Opus file. + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include "gstopusheader.h" +#include "gstopusparse.h" + +GST_DEBUG_CATEGORY_STATIC (opusparse_debug); +#define GST_CAT_DEFAULT opusparse_debug + +#define MAX_PAYLOAD_BYTES 1500 + +static GstStaticPadTemplate opus_parse_src_factory = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-opus, framed = (boolean) true") + ); + +static GstStaticPadTemplate opus_parse_sink_factory = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-opus") + ); + +G_DEFINE_TYPE (GstOpusParse, gst_opus_parse, GST_TYPE_BASE_PARSE); + +static gboolean gst_opus_parse_start (GstBaseParse * parse); +static gboolean gst_opus_parse_stop (GstBaseParse * parse); +static gboolean gst_opus_parse_check_valid_frame (GstBaseParse * base, + GstBaseParseFrame * frame, guint * frame_size, gint * skip); +static GstFlowReturn gst_opus_parse_parse_frame (GstBaseParse * base, + GstBaseParseFrame * frame); + +static void +gst_opus_parse_class_init (GstOpusParseClass * klass) +{ + GstBaseParseClass *bpclass; + GstElementClass *element_class; + + bpclass = (GstBaseParseClass *) klass; + element_class = (GstElementClass *) klass; + + bpclass->start = GST_DEBUG_FUNCPTR (gst_opus_parse_start); + bpclass->stop = GST_DEBUG_FUNCPTR (gst_opus_parse_stop); + bpclass->check_valid_frame = + GST_DEBUG_FUNCPTR (gst_opus_parse_check_valid_frame); + bpclass->parse_frame = GST_DEBUG_FUNCPTR (gst_opus_parse_parse_frame); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&opus_parse_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&opus_parse_sink_factory)); + gst_element_class_set_details_simple (element_class, "Opus audio parser", + "Codec/Parser/Audio", + "parses opus audio streams", + "Vincent Penquerc'h "); + + GST_DEBUG_CATEGORY_INIT (opusparse_debug, "opusparse", 0, + "opus parsing element"); +} + +static void +gst_opus_parse_init (GstOpusParse * parse) +{ + parse->header_sent = FALSE; +} + +static gboolean +gst_opus_parse_start (GstBaseParse * base) +{ + GstOpusParse *parse = GST_OPUS_PARSE (base); + + parse->header_sent = FALSE; + parse->next_ts = 0; + + return TRUE; +} + +static gboolean +gst_opus_parse_stop (GstBaseParse * base) +{ + GstOpusParse *parse = GST_OPUS_PARSE (base); + + g_slist_foreach (parse->headers, (GFunc) gst_buffer_unref, NULL); + g_slist_free (parse->headers); + parse->headers = NULL; + + parse->header_sent = FALSE; + + return TRUE; +} + +static gboolean +gst_opus_parse_check_valid_frame (GstBaseParse * base, + GstBaseParseFrame * frame, guint * frame_size, gint * skip) +{ + GstOpusParse *parse; + guint8 *data; + gsize size; + guint32 packet_size; + int ret = FALSE; + const unsigned char *frames[48]; + unsigned char toc; + short frame_sizes[48]; + int payload_offset; + int nframes; + int packet_offset = 0; + gboolean is_header, is_idheader, is_commentheader; + + parse = GST_OPUS_PARSE (base); + + data = GST_BUFFER_DATA (frame->buffer); + size = GST_BUFFER_SIZE (frame->buffer); + GST_DEBUG_OBJECT (parse, + "Checking for frame, %" G_GSIZE_FORMAT " bytes in buffer", size); + + /* check for headers */ + is_idheader = gst_opus_header_is_id_header (frame->buffer); + is_commentheader = gst_opus_header_is_comment_header (frame->buffer); + is_header = is_idheader || is_commentheader; + + if (!is_header) { + /* Next, check if there's an Opus packet there */ + nframes = + opus_packet_parse (data, size, &toc, frames, frame_sizes, + &payload_offset); + } + + if (!is_header && nframes < 0) { + /* Then, check for the test vector framing */ + GST_DEBUG_OBJECT (parse, + "No Opus packet found, trying test vector framing"); + if (size < 4) { + GST_DEBUG_OBJECT (parse, "Too small"); + goto beach; + } + packet_size = GST_READ_UINT32_BE (data); + GST_DEBUG_OBJECT (parse, "Packet size: %u bytes", packet_size); + if (packet_size > MAX_PAYLOAD_BYTES) { + GST_DEBUG_OBJECT (parse, "Too large"); + goto beach; + } + if (packet_size > size - 4) { + GST_DEBUG_OBJECT (parse, "Truncated"); + goto beach; + } + nframes = + opus_packet_parse (data + 8, packet_size, &toc, frames, frame_sizes, + &payload_offset); + if (nframes < 0) { + GST_DEBUG_OBJECT (parse, "No test vector framing either"); + goto beach; + } + + packet_offset = 8; + data += packet_offset; + } + + if (is_header) { + *skip = 0; + *frame_size = size; + } else { + *skip = packet_offset; + *frame_size = payload_offset; + } + + GST_DEBUG_OBJECT (parse, "Got Opus packet at offset %d, %d bytes", *skip, + *frame_size); + ret = TRUE; + +beach: + return ret; +} + +/* Adapted copy of the one in gstoggstream.c... */ +static guint64 +packet_duration_opus (const guint8 * data, size_t len) +{ + static const guint64 durations[32] = { + 10000, 20000, 40000, 60000, /* Silk NB */ + 10000, 20000, 40000, 60000, /* Silk MB */ + 10000, 20000, 40000, 60000, /* Silk WB */ + 10000, 20000, /* Hybrid SWB */ + 10000, 20000, /* Hybrid FB */ + 2500, 5000, 10000, 20000, /* CELT NB */ + 2500, 5000, 10000, 20000, /* CELT NB */ + 2500, 5000, 10000, 20000, /* CELT NB */ + 2500, 5000, 10000, 20000, /* CELT NB */ + }; + + gint64 duration; + gint64 frame_duration; + gint nframes; + guint8 toc; + + if (len < 1) + return 0; + + toc = data[0]; + + frame_duration = durations[toc >> 3] * 1000; + switch (toc & 3) { + case 0: + nframes = 1; + break; + case 1: + nframes = 2; + break; + case 2: + nframes = 2; + break; + case 3: + if (len < 2) { + GST_WARNING ("Code 3 Opus packet has less than 2 bytes"); + return 0; + } + nframes = data[1] & 63; + break; + } + + duration = nframes * frame_duration; + if (duration > 120 * GST_MSECOND) { + GST_WARNING ("Opus packet duration > 120 ms, invalid"); + return 0; + } + GST_LOG ("Opus packet: frame size %.1f ms, %d frames, duration %.1f ms", + frame_duration / 1000000.f, nframes, duration / 1000000.f); + return duration; +} + +static GstFlowReturn +gst_opus_parse_parse_frame (GstBaseParse * base, GstBaseParseFrame * frame) +{ + guint64 duration; + GstOpusParse *parse; + gboolean is_idheader, is_commentheader; + + parse = GST_OPUS_PARSE (base); + + is_idheader = gst_opus_header_is_id_header (frame->buffer); + is_commentheader = gst_opus_header_is_comment_header (frame->buffer); + + if (!parse->header_sent) { + GstCaps *caps; + guint8 channels; + + /* Opus streams can decode to 1 or 2 channels, so use the header + value if we have one, or 2 otherwise */ + if (is_idheader) { + gst_buffer_replace (&parse->id_header, frame->buffer); + GST_DEBUG_OBJECT (parse, "Found ID header, keeping"); + return GST_BASE_PARSE_FLOW_DROPPED; + } else if (is_commentheader) { + gst_buffer_replace (&parse->comment_header, frame->buffer); + GST_DEBUG_OBJECT (parse, "Found comment header, keeping"); + return GST_BASE_PARSE_FLOW_DROPPED; + } + + g_slist_foreach (parse->headers, (GFunc) gst_buffer_unref, NULL); + g_slist_free (parse->headers); + parse->headers = NULL; + + if (parse->id_header && parse->comment_header) { + gst_opus_header_create_caps_from_headers (&caps, &parse->headers, + parse->id_header, parse->comment_header); + } else { + guint8 channel_mapping_family, channel_mapping[256]; + GST_INFO_OBJECT (parse, + "No headers, blindly setting up canonical stereo"); + channels = 2; + channel_mapping_family = 0; + channel_mapping[0] = 0; + channel_mapping[1] = 1; + gst_opus_header_create_caps (&caps, &parse->headers, channels, 1, 0, + channel_mapping_family, channel_mapping, NULL); + } + + gst_buffer_replace (&parse->id_header, NULL); + gst_buffer_replace (&parse->comment_header, NULL); + + gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); + gst_caps_unref (caps); + parse->header_sent = TRUE; + } + + GST_BUFFER_TIMESTAMP (frame->buffer) = parse->next_ts; + + duration = + packet_duration_opus (GST_BUFFER_DATA (frame->buffer), + GST_BUFFER_SIZE (frame->buffer)); + parse->next_ts += duration; + + GST_BUFFER_DURATION (frame->buffer) = duration; + GST_BUFFER_OFFSET_END (frame->buffer) = + gst_util_uint64_scale (parse->next_ts, 48000, GST_SECOND); + GST_BUFFER_OFFSET (frame->buffer) = parse->next_ts; + + return GST_FLOW_OK; +} diff --git a/ext/opus/gstopusparse.h b/ext/opus/gstopusparse.h new file mode 100644 index 0000000..f0fd241 --- /dev/null +++ b/ext/opus/gstopusparse.h @@ -0,0 +1,61 @@ +/* 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_OPUS_PARSE_H__ +#define __GST_OPUS_PARSE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_OPUS_PARSE \ + (gst_opus_parse_get_type()) +#define GST_OPUS_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OPUS_PARSE,GstOpusParse)) +#define GST_OPUS_PARSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OPUS_PARSE,GstOpusParseClass)) +#define GST_IS_OPUS_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OPUS_PARSE)) +#define GST_IS_OPUS_PARSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPUS_PARSE)) + +typedef struct _GstOpusParse GstOpusParse; +typedef struct _GstOpusParseClass GstOpusParseClass; + +struct _GstOpusParse { + GstBaseParse element; + + gboolean header_sent; + GSList *headers; + GstClockTime next_ts; + GstBuffer *id_header; + GstBuffer *comment_header; +}; + +struct _GstOpusParseClass { + GstBaseParseClass parent_class; +}; + +GType gst_opus_parse_get_type (void); + +G_END_DECLS + +#endif /* __GST_OPUS_PARSE_H__ */ diff --git a/ext/opus/gstrtpopusdepay.c b/ext/opus/gstrtpopusdepay.c new file mode 100644 index 0000000..0f1869e --- /dev/null +++ b/ext/opus/gstrtpopusdepay.c @@ -0,0 +1,123 @@ +/* + * Opus Depayloader Gst Element + * + * @author: Danilo Cesar Lemes de Paula + * + * 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 "gstrtpopusdepay.h" + +GST_DEBUG_CATEGORY_STATIC (rtpopusdepay_debug); +#define GST_CAT_DEFAULT (rtpopusdepay_debug) + + + +static GstStaticPadTemplate gst_rtp_opus_depay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING "," + "clock-rate = (int) 48000, " + "encoding-name = (string) \"X-GST-OPUS-DRAFT-SPITTKA-00\"") + ); + +static GstStaticPadTemplate gst_rtp_opus_depay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-opus") + ); + +static GstBuffer *gst_rtp_opus_depay_process (GstBaseRTPDepayload * depayload, + GstBuffer * buf); +static gboolean gst_rtp_opus_depay_setcaps (GstBaseRTPDepayload * depayload, + GstCaps * caps); + +GST_BOILERPLATE (GstRTPOpusDepay, gst_rtp_opus_depay, GstBaseRTPDepayload, + GST_TYPE_BASE_RTP_DEPAYLOAD); + +static void +gst_rtp_opus_depay_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_rtp_opus_depay_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_opus_depay_sink_template)); + gst_element_class_set_details_simple (element_class, + "RTP Opus packet depayloader", "Codec/Depayloader/Network/RTP", + "Extracts Opus audio from RTP packets", + "Danilo Cesar Lemes de Paula "); +} + +static void +gst_rtp_opus_depay_class_init (GstRTPOpusDepayClass * klass) +{ + GstBaseRTPDepayloadClass *gstbasertpdepayload_class; + + gstbasertpdepayload_class = (GstBaseRTPDepayloadClass *) klass; + + gstbasertpdepayload_class->process = gst_rtp_opus_depay_process; + gstbasertpdepayload_class->set_caps = gst_rtp_opus_depay_setcaps; + + GST_DEBUG_CATEGORY_INIT (rtpopusdepay_debug, "rtpopusdepay", 0, + "Opus RTP Depayloader"); +} + +static void +gst_rtp_opus_depay_init (GstRTPOpusDepay * rtpopusdepay, + GstRTPOpusDepayClass * klass) +{ + +} + +static gboolean +gst_rtp_opus_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) +{ + GstCaps *srccaps; + gboolean ret; + + srccaps = gst_caps_new_simple ("audio/x-opus", NULL); + ret = gst_pad_set_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload), srccaps); + + GST_DEBUG_OBJECT (depayload, + "set caps on source: %" GST_PTR_FORMAT " (ret=%d)", srccaps, ret); + gst_caps_unref (srccaps); + + depayload->clock_rate = 48000; + + return ret; +} + +static GstBuffer * +gst_rtp_opus_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) +{ + GstBuffer *outbuf; + outbuf = gst_rtp_buffer_get_payload_buffer (buf); + + return outbuf; +} diff --git a/ext/opus/gstrtpopusdepay.h b/ext/opus/gstrtpopusdepay.h new file mode 100644 index 0000000..ba217e0 --- /dev/null +++ b/ext/opus/gstrtpopusdepay.h @@ -0,0 +1,57 @@ +/* + * Opus Depayloader Gst Element + * + * @author: Danilo Cesar Lemes de Paula + * + * 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_RTP_OPUS_DEPAY_H__ +#define __GST_RTP_OPUS_DEPAY_H__ + +#include +#include + +G_BEGIN_DECLS typedef struct _GstRTPOpusDepay GstRTPOpusDepay; +typedef struct _GstRTPOpusDepayClass GstRTPOpusDepayClass; + +#define GST_TYPE_RTP_OPUS_DEPAY \ + (gst_rtp_opus_depay_get_type()) +#define GST_RTP_OPUS_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_OPUS_DEPAY,GstRTPOpusDepay)) +#define GST_RTP_OPUS_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_OPUS_DEPAY,GstRTPOpusDepayClass)) +#define GST_IS_RTP_OPUS_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_OPUS_DEPAY)) +#define GST_IS_RTP_OPUS_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_OPUS_DEPAY)) + + +struct _GstRTPOpusDepay +{ + GstBaseRTPDepayload depayload; + +}; + +struct _GstRTPOpusDepayClass +{ + GstBaseRTPDepayloadClass parent_class; +}; + +GType gst_rtp_opus_depay_get_type (void); + +G_END_DECLS +#endif /* __GST_RTP_OPUS_DEPAY_H__ */ diff --git a/ext/opus/gstrtpopuspay.c b/ext/opus/gstrtpopuspay.c new file mode 100644 index 0000000..cdd7ee0 --- /dev/null +++ b/ext/opus/gstrtpopuspay.c @@ -0,0 +1,140 @@ +/* + * Opus Payloader Gst Element + * + * @author: Danilo Cesar Lemes de Paula + * + * 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 "gstrtpopuspay.h" + +GST_DEBUG_CATEGORY_STATIC (rtpopuspay_debug); +#define GST_CAT_DEFAULT (rtpopuspay_debug) + + +static GstStaticPadTemplate gst_rtp_opus_pay_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-opus, multistream = (boolean) FALSE") + ); + +static GstStaticPadTemplate gst_rtp_opus_pay_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " + "media = (string) \"audio\", " + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) 48000, " + "encoding-name = (string) \"X-GST-OPUS-DRAFT-SPITTKA-00\"") + ); + +static gboolean gst_rtp_opus_pay_setcaps (GstBaseRTPPayload * payload, + GstCaps * caps); +static GstFlowReturn gst_rtp_opus_pay_handle_buffer (GstBaseRTPPayload * + payload, GstBuffer * buffer); + +GST_BOILERPLATE (GstRtpOPUSPay, gst_rtp_opus_pay, GstBaseRTPPayload, + GST_TYPE_BASE_RTP_PAYLOAD); + +static void +gst_rtp_opus_pay_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_rtp_opus_pay_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_rtp_opus_pay_sink_template)); + + gst_element_class_set_details_simple (element_class, + "RTP Opus payloader", + "Codec/Payloader/Network/RTP", + "Puts Opus audio in RTP packets", + "Danilo Cesar Lemes de Paula "); +} + +static void +gst_rtp_opus_pay_class_init (GstRtpOPUSPayClass * klass) +{ + GstBaseRTPPayloadClass *gstbasertppayload_class; + + gstbasertppayload_class = (GstBaseRTPPayloadClass *) klass; + + gstbasertppayload_class->set_caps = gst_rtp_opus_pay_setcaps; + gstbasertppayload_class->handle_buffer = gst_rtp_opus_pay_handle_buffer; + + GST_DEBUG_CATEGORY_INIT (rtpopuspay_debug, "rtpopuspay", 0, + "Opus RTP Payloader"); +} + +static void +gst_rtp_opus_pay_init (GstRtpOPUSPay * rtpopuspay, GstRtpOPUSPayClass * klass) +{ +} + +static gboolean +gst_rtp_opus_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) +{ + gboolean res; + gchar *capsstr; + + capsstr = gst_caps_to_string (caps); + + gst_basertppayload_set_options (payload, "audio", FALSE, + "X-GST-OPUS-DRAFT-SPITTKA-00", 48000); + res = + gst_basertppayload_set_outcaps (payload, "caps", G_TYPE_STRING, capsstr, + NULL); + g_free (capsstr); + + return res; +} + +static GstFlowReturn +gst_rtp_opus_pay_handle_buffer (GstBaseRTPPayload * basepayload, + GstBuffer * buffer) +{ + GstBuffer *outbuf; + GstClockTime timestamp; + + guint size; + guint8 *data; + guint8 *payload; + + size = GST_BUFFER_SIZE (buffer); + data = GST_BUFFER_DATA (buffer); + timestamp = GST_BUFFER_TIMESTAMP (buffer); + + outbuf = gst_rtp_buffer_new_allocate (size, 0, 0); + payload = gst_rtp_buffer_get_payload (outbuf); + + memcpy (payload, data, size); + + gst_rtp_buffer_set_marker (outbuf, FALSE); + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + + return gst_basertppayload_push (basepayload, outbuf); +} diff --git a/ext/opus/gstrtpopuspay.h b/ext/opus/gstrtpopuspay.h new file mode 100644 index 0000000..23abd0d --- /dev/null +++ b/ext/opus/gstrtpopuspay.h @@ -0,0 +1,58 @@ +/* + * Opus Payloader Gst Element + * + * @author: Danilo Cesar Lemes de Paula + * + * 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_RTP_OPUS_PAY_H__ +#define __GST_RTP_OPUS_PAY_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_OPUS_PAY \ + (gst_rtp_opus_pay_get_type()) +#define GST_RTP_OPUS_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_OPUS_PAY,GstRtpOPUSPay)) +#define GST_RTP_OPUS_PAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_OPUS_PAY,GstRtpOPUSPayClass)) +#define GST_IS_RTP_OPUS_PAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_OPUS_PAY)) +#define GST_IS_RTP_OPUS_PAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_OPUS_PAY)) + +typedef struct _GstRtpOPUSPay GstRtpOPUSPay; +typedef struct _GstRtpOPUSPayClass GstRtpOPUSPayClass; + +struct _GstRtpOPUSPay +{ + GstBaseRTPPayload payload; +}; + +struct _GstRtpOPUSPayClass +{ + GstBaseRTPPayloadClass parent_class; +}; + +GType gst_rtp_opus_pay_get_type (void); + +G_END_DECLS + +#endif /* __GST_RTP_OPUS_PAY_H__ */ diff --git a/ext/resindvd/Makefile.in b/ext/resindvd/Makefile.in index 423ec06..e67b113 100644 --- a/ext/resindvd/Makefile.in +++ b/ext/resindvd/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +123,8 @@ am_libresindvd_la_OBJECTS = libresindvd_la-plugin.lo \ libresindvd_la-rsnparsetter.lo \ libresindvd_la-rsnwrappedbuffer.lo libresindvd_la_OBJECTS = $(am_libresindvd_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libresindvd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +140,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libresindvd_la_SOURCES) DIST_SOURCES = $(libresindvd_la_SOURCES) @@ -159,7 +166,6 @@ 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@ @@ -177,7 +183,6 @@ 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@ @@ -212,6 +217,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -251,6 +257,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -268,6 +275,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -276,13 +284,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -307,13 +318,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -361,6 +373,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -392,8 +405,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -417,6 +434,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -441,10 +460,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -456,6 +479,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -480,6 +507,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -515,7 +543,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -639,7 +666,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libresindvd.la: $(libresindvd_la_OBJECTS) $(libresindvd_la_DEPENDENCIES) +libresindvd.la: $(libresindvd_la_OBJECTS) $(libresindvd_la_DEPENDENCIES) $(EXTRA_libresindvd_la_DEPENDENCIES) $(AM_V_CCLD)$(libresindvd_la_LINK) -rpath $(plugindir) $(libresindvd_la_OBJECTS) $(libresindvd_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -663,114 +690,100 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libresindvd_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-plugin.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-plugin.Tpo -c -o libresindvd_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-plugin.Tpo $(DEPDIR)/libresindvd_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libresindvd_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libresindvd_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 $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libresindvd_la-resindvdbin.lo: resindvdbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-resindvdbin.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-resindvdbin.Tpo -c -o libresindvd_la-resindvdbin.lo `test -f 'resindvdbin.c' || echo '$(srcdir)/'`resindvdbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-resindvdbin.Tpo $(DEPDIR)/libresindvd_la-resindvdbin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resindvdbin.c' object='libresindvd_la-resindvdbin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resindvdbin.c' object='libresindvd_la-resindvdbin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-resindvdbin.lo `test -f 'resindvdbin.c' || echo '$(srcdir)/'`resindvdbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-resindvdbin.lo `test -f 'resindvdbin.c' || echo '$(srcdir)/'`resindvdbin.c libresindvd_la-rsnaudiomunge.lo: rsnaudiomunge.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-rsnaudiomunge.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-rsnaudiomunge.Tpo -c -o libresindvd_la-rsnaudiomunge.lo `test -f 'rsnaudiomunge.c' || echo '$(srcdir)/'`rsnaudiomunge.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-rsnaudiomunge.Tpo $(DEPDIR)/libresindvd_la-rsnaudiomunge.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsnaudiomunge.c' object='libresindvd_la-rsnaudiomunge.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rsnaudiomunge.c' object='libresindvd_la-rsnaudiomunge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnaudiomunge.lo `test -f 'rsnaudiomunge.c' || echo '$(srcdir)/'`rsnaudiomunge.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnaudiomunge.lo `test -f 'rsnaudiomunge.c' || echo '$(srcdir)/'`rsnaudiomunge.c libresindvd_la-rsndec.lo: rsndec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-rsndec.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-rsndec.Tpo -c -o libresindvd_la-rsndec.lo `test -f 'rsndec.c' || echo '$(srcdir)/'`rsndec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-rsndec.Tpo $(DEPDIR)/libresindvd_la-rsndec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsndec.c' object='libresindvd_la-rsndec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rsndec.c' object='libresindvd_la-rsndec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsndec.lo `test -f 'rsndec.c' || echo '$(srcdir)/'`rsndec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsndec.lo `test -f 'rsndec.c' || echo '$(srcdir)/'`rsndec.c libresindvd_la-rsnstreamselector.lo: rsnstreamselector.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-rsnstreamselector.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-rsnstreamselector.Tpo -c -o libresindvd_la-rsnstreamselector.lo `test -f 'rsnstreamselector.c' || echo '$(srcdir)/'`rsnstreamselector.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-rsnstreamselector.Tpo $(DEPDIR)/libresindvd_la-rsnstreamselector.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsnstreamselector.c' object='libresindvd_la-rsnstreamselector.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rsnstreamselector.c' object='libresindvd_la-rsnstreamselector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnstreamselector.lo `test -f 'rsnstreamselector.c' || echo '$(srcdir)/'`rsnstreamselector.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnstreamselector.lo `test -f 'rsnstreamselector.c' || echo '$(srcdir)/'`rsnstreamselector.c libresindvd_la-resindvdsrc.lo: resindvdsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-resindvdsrc.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-resindvdsrc.Tpo -c -o libresindvd_la-resindvdsrc.lo `test -f 'resindvdsrc.c' || echo '$(srcdir)/'`resindvdsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-resindvdsrc.Tpo $(DEPDIR)/libresindvd_la-resindvdsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resindvdsrc.c' object='libresindvd_la-resindvdsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resindvdsrc.c' object='libresindvd_la-resindvdsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-resindvdsrc.lo `test -f 'resindvdsrc.c' || echo '$(srcdir)/'`resindvdsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-resindvdsrc.lo `test -f 'resindvdsrc.c' || echo '$(srcdir)/'`resindvdsrc.c libresindvd_la-gstmpegdesc.lo: gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-gstmpegdesc.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-gstmpegdesc.Tpo -c -o libresindvd_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-gstmpegdesc.Tpo $(DEPDIR)/libresindvd_la-gstmpegdesc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegdesc.c' object='libresindvd_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegdesc.c' object='libresindvd_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c libresindvd_la-gstmpegdemux.lo: gstmpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-gstmpegdemux.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-gstmpegdemux.Tpo -c -o libresindvd_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-gstmpegdemux.Tpo $(DEPDIR)/libresindvd_la-gstmpegdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegdemux.c' object='libresindvd_la-gstmpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegdemux.c' object='libresindvd_la-gstmpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c libresindvd_la-gstpesfilter.lo: gstpesfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-gstpesfilter.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-gstpesfilter.Tpo -c -o libresindvd_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-gstpesfilter.Tpo $(DEPDIR)/libresindvd_la-gstpesfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpesfilter.c' object='libresindvd_la-gstpesfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpesfilter.c' object='libresindvd_la-gstpesfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c libresindvd_la-rsnparsetter.lo: rsnparsetter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-rsnparsetter.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-rsnparsetter.Tpo -c -o libresindvd_la-rsnparsetter.lo `test -f 'rsnparsetter.c' || echo '$(srcdir)/'`rsnparsetter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-rsnparsetter.Tpo $(DEPDIR)/libresindvd_la-rsnparsetter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsnparsetter.c' object='libresindvd_la-rsnparsetter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rsnparsetter.c' object='libresindvd_la-rsnparsetter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnparsetter.lo `test -f 'rsnparsetter.c' || echo '$(srcdir)/'`rsnparsetter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnparsetter.lo `test -f 'rsnparsetter.c' || echo '$(srcdir)/'`rsnparsetter.c libresindvd_la-rsnwrappedbuffer.lo: rsnwrappedbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -MT libresindvd_la-rsnwrappedbuffer.lo -MD -MP -MF $(DEPDIR)/libresindvd_la-rsnwrappedbuffer.Tpo -c -o libresindvd_la-rsnwrappedbuffer.lo `test -f 'rsnwrappedbuffer.c' || echo '$(srcdir)/'`rsnwrappedbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libresindvd_la-rsnwrappedbuffer.Tpo $(DEPDIR)/libresindvd_la-rsnwrappedbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsnwrappedbuffer.c' object='libresindvd_la-rsnwrappedbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rsnwrappedbuffer.c' object='libresindvd_la-rsnwrappedbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnwrappedbuffer.lo `test -f 'rsnwrappedbuffer.c' || echo '$(srcdir)/'`rsnwrappedbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libresindvd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libresindvd_la_CFLAGS) $(CFLAGS) -c -o libresindvd_la-rsnwrappedbuffer.lo `test -f 'rsnwrappedbuffer.c' || echo '$(srcdir)/'`rsnwrappedbuffer.c mostlyclean-libtool: -rm -f *.lo @@ -877,10 +890,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/resindvd/gstpesfilter.c b/ext/resindvd/gstpesfilter.c index f0a8cb5..f2ccc78 100644 --- a/ext/resindvd/gstpesfilter.c +++ b/ext/resindvd/gstpesfilter.c @@ -101,7 +101,6 @@ gst_pes_filter_parse (GstPESFilter * filter) GstFlowReturn ret; guint32 start_code; - gboolean STD_buffer_bound_scale; guint16 STD_buffer_size_bound; const guint8 *data; gint avail, datalen; @@ -213,7 +212,7 @@ gst_pes_filter_parse (GstPESFilter * filter) if (datalen < 3) goto need_more_data; - STD_buffer_bound_scale = *data & 0x20; + /* STD_buffer_bound_scale = *data & 0x20; */ STD_buffer_size_bound = ((guint16) (*data++ & 0x1F)) << 8; STD_buffer_size_bound |= *data++; diff --git a/ext/resindvd/resindvdbin.c b/ext/resindvd/resindvdbin.c index c2dcc5b..c1a29eb 100644 --- a/ext/resindvd/resindvdbin.c +++ b/ext/resindvd/resindvdbin.c @@ -101,12 +101,12 @@ rsn_dvdbin_base_init (gpointer gclass) GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&subpicture_src_template)); + gst_element_class_add_static_pad_template (element_class, + &video_src_template); + gst_element_class_add_static_pad_template (element_class, + &audio_src_template); + gst_element_class_add_static_pad_template (element_class, + &subpicture_src_template); gst_element_class_set_details_simple (element_class, "rsndvdbin", "Generic/Bin/Player", "DVD playback element", "Jan Schmidt "); @@ -470,18 +470,16 @@ create_elements (RsnDvdBin * dvdbin) RSN_TYPE_STREAM_SELECTOR, "audioselect", "Audio stream selector")) return FALSE; - if (!try_create_piece (dvdbin, DVD_ELEM_AUDDEC, NULL, - RSN_TYPE_AUDIODEC, "auddec", "audio decoder")) + if (!try_create_piece (dvdbin, DVD_ELEM_AUD_MUNGE, NULL, + RSN_TYPE_AUDIOMUNGE, "audioearlymunge", "Audio output filter")) return FALSE; - /* rsnaudiomunge goes after the audio decoding to regulate the stream */ - if (!try_create_piece (dvdbin, DVD_ELEM_AUD_MUNGE, NULL, - RSN_TYPE_AUDIOMUNGE, "audiomunge", "Audio output filter")) + if (!try_create_piece (dvdbin, DVD_ELEM_AUDDEC, NULL, + RSN_TYPE_AUDIODEC, "auddec", "audio decoder")) return FALSE; - src = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUDDEC], "src"); - sink = - gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], "sink"); + src = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], "src"); + sink = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUDDEC], "sink"); if (src == NULL || sink == NULL) goto failed_aud_connect; if (GST_PAD_LINK_FAILED (gst_pad_link (src, sink))) @@ -491,7 +489,8 @@ create_elements (RsnDvdBin * dvdbin) src = sink = NULL; src = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUD_SELECT], "src"); - sink = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUDDEC], "sink"); + sink = + gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], "sink"); if (src == NULL || sink == NULL) goto failed_aud_connect; if (GST_PAD_LINK_FAILED (gst_pad_link (src, sink))) @@ -501,7 +500,7 @@ create_elements (RsnDvdBin * dvdbin) src = sink = NULL; /* ghost audio munge output pad onto bin */ - src = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], "src"); + src = gst_element_get_static_pad (dvdbin->pieces[DVD_ELEM_AUDDEC], "src"); if (src == NULL) goto failed_aud_ghost; src_templ = gst_static_pad_template_get (&audio_src_template); @@ -701,7 +700,7 @@ demux_pad_added (GstElement * element, GstPad * pad, RsnDvdBin * dvdbin) gst_element_get_request_pad (dvdbin->pieces[DVD_ELEM_SPU_SELECT], "sink%d"); skip_mq = TRUE; - } else if (can_sink_caps (dvdbin->pieces[DVD_ELEM_AUDDEC], caps)) { + } else if (can_sink_caps (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], caps)) { GST_LOG_OBJECT (dvdbin, "Found audio pad w/ caps %" GST_PTR_FORMAT, caps); dest_pad = gst_element_get_request_pad (dvdbin->pieces[DVD_ELEM_AUD_SELECT], @@ -720,7 +719,7 @@ demux_pad_added (GstElement * element, GstPad * pad, RsnDvdBin * dvdbin) ("No MPEG video decoder found")); } else { GST_ELEMENT_WARNING (dvdbin, STREAM, CODEC_NOT_FOUND, (NULL), - ("No MPEG video decoder found")); + ("No MPEG audio decoder found")); } } diff --git a/ext/resindvd/resindvdsrc.c b/ext/resindvd/resindvdsrc.c index e4bdd7e..3179219 100644 --- a/ext/resindvd/resindvdsrc.c +++ b/ext/resindvd/resindvdsrc.c @@ -193,8 +193,7 @@ rsn_dvdsrc_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_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "Resin DVD Src", "Source/DVD", "DVD source element", "Jan Schmidt "); } @@ -269,6 +268,7 @@ rsn_dvdsrc_finalize (GObject * object) g_mutex_free (src->dvd_lock); g_mutex_free (src->branch_lock); g_cond_free (src->still_cond); + g_free (src->device); gst_buffer_replace (&src->alloc_buf, NULL); gst_buffer_replace (&src->next_buf, NULL); @@ -1119,7 +1119,7 @@ rsn_dvdsrc_step (resinDvdSrc * src, gboolean have_dvd_lock) break; } - if (src->highlight_event && have_dvd_lock) { + if (src->highlight_event && have_dvd_lock && src->in_playing) { GstEvent *hl_event = src->highlight_event; src->highlight_event = NULL; @@ -1410,8 +1410,12 @@ rsn_dvdsrc_create (GstBaseSrc * bsrc, guint64 offset, } } - highlight_event = src->highlight_event; - src->highlight_event = NULL; + if (src->in_playing) { + highlight_event = src->highlight_event; + src->highlight_event = NULL; + } else { + highlight_event = NULL; + } /* Schedule a clock callback for the any pending nav packet */ rsn_dvdsrc_check_nav_blocks (src); @@ -2759,7 +2763,12 @@ rsn_dvdsrc_do_seek (GstBaseSrc * bsrc, GstSegment * segment) if (dvdnav_current_title_info (src->dvdnav, &title, &x) == DVDNAV_STATUS_OK) { if (segment->start + 1 == x) { - dvdnav_prev_pg_search (src->dvdnav); + /* if already on the first part, don't try to get before it */ + if (segment->start == 0) { + dvdnav_part_play (src->dvdnav, title, 1); + } else { + dvdnav_prev_pg_search (src->dvdnav); + } ret = TRUE; src->discont = TRUE; } else if (segment->start == x + 1) { diff --git a/ext/resindvd/rsnaudiomunge.c b/ext/resindvd/rsnaudiomunge.c index 5e6f9cc..678bd1e 100644 --- a/ext/resindvd/rsnaudiomunge.c +++ b/ext/resindvd/rsnaudiomunge.c @@ -84,10 +84,9 @@ rsn_audiomunge_class_init (RsnAudioMungeClass * klass) GST_DEBUG_CATEGORY_INIT (rsn_audiomunge_debug, "rsnaudiomunge", 0, "ResinDVD audio stream regulator"); - 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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "RsnAudioMunge", "Audio/Filter", @@ -155,9 +154,9 @@ rsn_audiomunge_set_caps (GstPad * pad, GstCaps * caps) g_return_val_if_fail (munge != NULL, FALSE); otherpad = (pad == munge->srcpad) ? munge->sinkpad : munge->srcpad; - gst_object_unref (munge); ret = gst_pad_set_caps (otherpad, caps); + gst_object_unref (munge); return ret; } diff --git a/ext/resindvd/rsndec.c b/ext/resindvd/rsndec.c index 7db1e46..4c20183 100644 --- a/ext/resindvd/rsndec.c +++ b/ext/resindvd/rsndec.c @@ -247,18 +247,50 @@ _get_decoder_factories (gpointer arg) GstPadTemplate *templ = gst_element_class_get_pad_template (klass, "sink"); RsnDecFactoryFilterCtx ctx = { NULL, }; + GstCaps *raw; + gboolean raw_audio; ctx.desired_caps = gst_pad_template_get_caps (templ); + + raw = gst_caps_from_string ("audio/x-raw-float"); + raw_audio = gst_caps_can_intersect (raw, ctx.desired_caps); + if (raw_audio) { + GstCaps *sub = gst_caps_subtract (ctx.desired_caps, raw); + ctx.desired_caps = sub; + } else { + gst_caps_ref (ctx.desired_caps); + } + gst_caps_unref (raw); + /* Set decoder caps to empty. Will be filled by the factory_filter */ ctx.decoder_caps = gst_caps_new_empty (); + GST_DEBUG ("Finding factories for caps: %" GST_PTR_FORMAT, ctx.desired_caps); factories = gst_default_registry_feature_filter ( (GstPluginFeatureFilter) rsndec_factory_filter, FALSE, &ctx); + /* If these are audio caps, we add audioconvert, which is not a decoder, + but allows raw audio to go through relatively unmolested - this will + come handy when we have to send placeholder silence to allow preroll + for those DVDs which have titles with no audio track. */ + if (raw_audio) { + GstPluginFeature *feature; + GST_DEBUG ("These are audio caps, adding audioconvert"); + feature = + gst_default_registry_find_feature ("audioconvert", + GST_TYPE_ELEMENT_FACTORY); + if (feature) { + factories = g_list_append (factories, feature); + } else { + GST_WARNING ("Could not find feature audioconvert"); + } + } + factories = g_list_sort (factories, (GCompareFunc) sort_by_ranks); GST_DEBUG ("Available decoder caps %" GST_PTR_FORMAT, ctx.decoder_caps); gst_caps_unref (ctx.decoder_caps); + gst_caps_unref (ctx.desired_caps); return factories; } @@ -277,8 +309,7 @@ rsn_dec_change_state (GstElement * element, GstStateChange transition) new_child = gst_element_factory_make ("autoconvert", NULL); decoder_factories = klass->get_decoder_factories (klass); - g_object_set (G_OBJECT (new_child), "initial-identity", TRUE, - "factories", decoder_factories, NULL); + g_object_set (G_OBJECT (new_child), "factories", decoder_factories, NULL); if (new_child == NULL || !rsn_dec_set_child (self, new_child)) ret = GST_STATE_CHANGE_FAILURE; break; @@ -344,7 +375,7 @@ static GstStaticPadTemplate audio_sink_template = GST_STATIC_CAPS ("audio/mpeg,mpegversion=(int)1;" "audio/x-private1-lpcm;" "audio/x-private1-ac3;" "audio/ac3;" "audio/x-ac3;" - "audio/x-private1-dts;") + "audio/x-private1-dts; audio/x-raw-float") ); static GstStaticPadTemplate audio_src_template = GST_STATIC_PAD_TEMPLATE ("src", @@ -381,10 +412,10 @@ rsn_audiodec_class_init (RsnAudioDecClass * klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); RsnDecClass *dec_class = RSN_DEC_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &audio_src_template); + gst_element_class_add_static_pad_template (element_class, + &audio_sink_template); gst_element_class_set_details_simple (element_class, "RsnAudioDec", "Audio/Decoder", @@ -431,10 +462,10 @@ rsn_videodec_class_init (RsnAudioDecClass * klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); RsnDecClass *dec_class = RSN_DEC_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &video_src_template); + gst_element_class_add_static_pad_template (element_class, + &video_sink_template); gst_element_class_set_details_simple (element_class, "RsnVideoDec", "Video/Decoder", diff --git a/ext/resindvd/rsnparsetter.c b/ext/resindvd/rsnparsetter.c index 02fdd1f..baaea2b 100644 --- a/ext/resindvd/rsnparsetter.c +++ b/ext/resindvd/rsnparsetter.c @@ -59,10 +59,8 @@ rsn_parsetter_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Resin Aspect Ratio Setter", "Filter/Video", "Overrides caps on video buffers to force a particular display ratio", diff --git a/ext/resindvd/rsnstreamselector.c b/ext/resindvd/rsnstreamselector.c index 3bb6071..33fa003 100644 --- a/ext/resindvd/rsnstreamselector.c +++ b/ext/resindvd/rsnstreamselector.c @@ -424,7 +424,6 @@ ignore: } static void rsn_stream_selector_dispose (GObject * object); -static void rsn_stream_selector_finalize (GObject * object); static void rsn_stream_selector_init (RsnStreamSelector * sel); static void rsn_stream_selector_base_init (RsnStreamSelectorClass * klass); @@ -482,10 +481,10 @@ rsn_stream_selector_base_init (RsnStreamSelectorClass * klass) "Ronald S. Bultje , " "Jan Schmidt , " "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rsn_stream_selector_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rsn_stream_selector_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &rsn_stream_selector_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &rsn_stream_selector_src_factory); } static void @@ -497,7 +496,6 @@ rsn_stream_selector_class_init (RsnStreamSelectorClass * klass) parent_class = g_type_class_peek_parent (klass); gobject_class->dispose = rsn_stream_selector_dispose; - gobject_class->finalize = rsn_stream_selector_finalize; gobject_class->set_property = GST_DEBUG_FUNCPTR (rsn_stream_selector_set_property); @@ -546,16 +544,6 @@ rsn_stream_selector_dispose (GObject * object) } static void -rsn_stream_selector_finalize (GObject * object) -{ - RsnStreamSelector *sel; - - sel = RSN_STREAM_SELECTOR (object); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void rsn_stream_selector_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { @@ -653,11 +641,8 @@ rsn_stream_selector_getcaps (GstPad * pad) static gboolean rsn_stream_selector_is_active_sinkpad (RsnStreamSelector * sel, GstPad * pad) { - RsnSelectorPad *selpad; gboolean res; - selpad = GST_SELECTOR_PAD_CAST (pad); - GST_OBJECT_LOCK (sel); res = (pad == sel->active_sinkpad); GST_OBJECT_UNLOCK (sel); diff --git a/ext/resindvd/rsnwrappedbuffer.c b/ext/resindvd/rsnwrappedbuffer.c index 6e2579c..516cf35 100644 --- a/ext/resindvd/rsnwrappedbuffer.c +++ b/ext/resindvd/rsnwrappedbuffer.c @@ -132,6 +132,7 @@ rsn_wrappedbuffer_unwrap_and_unref (RsnWrappedBuffer * wrap_buf) g_return_val_if_fail (wrap_buf->wrapped_buffer != NULL, NULL); buf = gst_buffer_ref (wrap_buf->wrapped_buffer); + buf = gst_buffer_make_metadata_writable (buf); /* Copy changed metadata back to the wrapped buffer from the wrapper, * except the the read-only flag and the caps. */ diff --git a/ext/rsvg/Makefile.in b/ext/rsvg/Makefile.in index 2cddaac..e481e6a 100644 --- a/ext/rsvg/Makefile.in +++ b/ext/rsvg/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ libgstrsvg_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstrsvg_la_OBJECTS = libgstrsvg_la-gstrsvg.lo \ libgstrsvg_la-gstrsvgdec.lo libgstrsvg_la-gstrsvgoverlay.lo libgstrsvg_la_OBJECTS = $(am_libgstrsvg_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrsvg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrsvg_la_SOURCES) DIST_SOURCES = $(libgstrsvg_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -610,7 +637,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrsvg.la: $(libgstrsvg_la_OBJECTS) $(libgstrsvg_la_DEPENDENCIES) +libgstrsvg.la: $(libgstrsvg_la_OBJECTS) $(libgstrsvg_la_DEPENDENCIES) $(EXTRA_libgstrsvg_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrsvg_la_LINK) -rpath $(plugindir) $(libgstrsvg_la_OBJECTS) $(libgstrsvg_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -626,50 +653,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrsvg_la-gstrsvg.lo: gstrsvg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -MT libgstrsvg_la-gstrsvg.lo -MD -MP -MF $(DEPDIR)/libgstrsvg_la-gstrsvg.Tpo -c -o libgstrsvg_la-gstrsvg.lo `test -f 'gstrsvg.c' || echo '$(srcdir)/'`gstrsvg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrsvg_la-gstrsvg.Tpo $(DEPDIR)/libgstrsvg_la-gstrsvg.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrsvg.c' object='libgstrsvg_la-gstrsvg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrsvg.c' object='libgstrsvg_la-gstrsvg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvg.lo `test -f 'gstrsvg.c' || echo '$(srcdir)/'`gstrsvg.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvg.lo `test -f 'gstrsvg.c' || echo '$(srcdir)/'`gstrsvg.c libgstrsvg_la-gstrsvgdec.lo: gstrsvgdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -MT libgstrsvg_la-gstrsvgdec.lo -MD -MP -MF $(DEPDIR)/libgstrsvg_la-gstrsvgdec.Tpo -c -o libgstrsvg_la-gstrsvgdec.lo `test -f 'gstrsvgdec.c' || echo '$(srcdir)/'`gstrsvgdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrsvg_la-gstrsvgdec.Tpo $(DEPDIR)/libgstrsvg_la-gstrsvgdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrsvgdec.c' object='libgstrsvg_la-gstrsvgdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrsvgdec.c' object='libgstrsvg_la-gstrsvgdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvgdec.lo `test -f 'gstrsvgdec.c' || echo '$(srcdir)/'`gstrsvgdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvgdec.lo `test -f 'gstrsvgdec.c' || echo '$(srcdir)/'`gstrsvgdec.c libgstrsvg_la-gstrsvgoverlay.lo: gstrsvgoverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -MT libgstrsvg_la-gstrsvgoverlay.lo -MD -MP -MF $(DEPDIR)/libgstrsvg_la-gstrsvgoverlay.Tpo -c -o libgstrsvg_la-gstrsvgoverlay.lo `test -f 'gstrsvgoverlay.c' || echo '$(srcdir)/'`gstrsvgoverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrsvg_la-gstrsvgoverlay.Tpo $(DEPDIR)/libgstrsvg_la-gstrsvgoverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrsvgoverlay.c' object='libgstrsvg_la-gstrsvgoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrsvgoverlay.c' object='libgstrsvg_la-gstrsvgoverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvgoverlay.lo `test -f 'gstrsvgoverlay.c' || echo '$(srcdir)/'`gstrsvgoverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrsvg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrsvg_la_CFLAGS) $(CFLAGS) -c -o libgstrsvg_la-gstrsvgoverlay.lo `test -f 'gstrsvgoverlay.c' || echo '$(srcdir)/'`gstrsvgoverlay.c mostlyclean-libtool: -rm -f *.lo @@ -776,10 +797,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/rsvg/gstrsvgdec.c b/ext/rsvg/gstrsvgdec.c index c0a6362..9ebb841 100644 --- a/ext/rsvg/gstrsvgdec.c +++ b/ext/rsvg/gstrsvgdec.c @@ -82,10 +82,8 @@ gst_rsvg_dec_base_init (gpointer g_class) "Uses librsvg to decode SVG images", "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)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); } static void @@ -141,7 +139,7 @@ gst_rsvg_dec_reset (GstRsvgDec * dec) dec->width = dec->height = 0; dec->fps_n = 0; dec->fps_d = 1; - dec->timestamp_offset = GST_CLOCK_TIME_NONE; + dec->first_timestamp = GST_CLOCK_TIME_NONE; dec->frame_count = 0; gst_segment_init (&dec->segment, GST_FORMAT_UNDEFINED); @@ -341,11 +339,18 @@ gst_rsvg_dec_chain (GstPad * pad, GstBuffer * buffer) guint size; gboolean ret = GST_FLOW_OK; - if (rsvg->timestamp_offset == GST_CLOCK_TIME_NONE) { + /* first_timestamp is used slightly differently where a framerate + is given or not. + If there is a frame rate, it will be used as a base. + If there is not, it will be used to keep track of the timestamp + of the first buffer, to be used as the timestamp of the output + buffer. When a buffer is output, first timestamp will resync to + the next buffer's timestamp. */ + if (rsvg->first_timestamp == GST_CLOCK_TIME_NONE) { if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) - rsvg->timestamp_offset = GST_BUFFER_TIMESTAMP (buffer); - else - rsvg->timestamp_offset = 0; + rsvg->first_timestamp = GST_BUFFER_TIMESTAMP (buffer); + else if (rsvg->fps_n != 0) + rsvg->first_timestamp = 0; } gst_adapter_push (rsvg->adapter, buffer); @@ -377,15 +382,33 @@ gst_rsvg_dec_chain (GstPad * pad, GstBuffer * buffer) break; - if (rsvg->fps_n != 0) { + if (rsvg->first_timestamp != GST_CLOCK_TIME_NONE) { + GST_BUFFER_TIMESTAMP (outbuf) = rsvg->first_timestamp; + GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; + if (GST_BUFFER_DURATION_IS_VALID (buffer)) { + GstClockTime end = + GST_BUFFER_TIMESTAMP_IS_VALID (buffer) ? + GST_BUFFER_TIMESTAMP (buffer) : rsvg->first_timestamp; + end += GST_BUFFER_DURATION (buffer); + GST_BUFFER_DURATION (outbuf) = end - GST_BUFFER_TIMESTAMP (outbuf); + } + if (rsvg->fps_n == 0) { + rsvg->first_timestamp = GST_CLOCK_TIME_NONE; + } else { + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale (rsvg->frame_count, rsvg->fps_d, + rsvg->fps_n * GST_SECOND); + } + } else if (rsvg->fps_n != 0) { GST_BUFFER_TIMESTAMP (outbuf) = - rsvg->timestamp_offset + gst_util_uint64_scale (rsvg->frame_count, + rsvg->first_timestamp + gst_util_uint64_scale (rsvg->frame_count, rsvg->fps_d, rsvg->fps_n * GST_SECOND); GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale (rsvg->frame_count, rsvg->fps_d, rsvg->fps_n * GST_SECOND); } else { - GST_BUFFER_TIMESTAMP (outbuf) = 0; + GST_BUFFER_TIMESTAMP (outbuf) = rsvg->first_timestamp; + GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; } rsvg->frame_count++; diff --git a/ext/rsvg/gstrsvgdec.h b/ext/rsvg/gstrsvgdec.h index 0027992..0d048ee 100644 --- a/ext/rsvg/gstrsvgdec.h +++ b/ext/rsvg/gstrsvgdec.h @@ -58,7 +58,7 @@ struct _GstRsvgDec GstTagList *pending_tags; gint fps_n, fps_d; - GstClockTime timestamp_offset; + GstClockTime first_timestamp; guint64 frame_count; GstSegment segment; diff --git a/ext/rsvg/gstrsvgoverlay.c b/ext/rsvg/gstrsvgoverlay.c index 1cbd099..42de199 100644 --- a/ext/rsvg/gstrsvgoverlay.c +++ b/ext/rsvg/gstrsvgoverlay.c @@ -123,6 +123,8 @@ static GstStaticPadTemplate data_sink_template = GST_BOILERPLATE (GstRsvgOverlay, gst_rsvg_overlay, GstVideoFilter, GST_TYPE_VIDEO_FILTER); +static void gst_rsvg_overlay_finalize (GObject * object); + static void gst_rsvg_overlay_set_svg_data (GstRsvgOverlay * overlay, const gchar * data, gboolean consider_as_filename) @@ -446,12 +448,11 @@ gst_rsvg_overlay_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 (&video_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&data_sink_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &video_sink_template); + gst_element_class_add_static_pad_template (element_class, + &data_sink_template); gst_element_class_set_details_simple (element_class, "RSVG overlay", "Filter/Editor/Video", @@ -467,6 +468,7 @@ gst_rsvg_overlay_class_init (GstRsvgOverlayClass * klass) gobject_class->set_property = gst_rsvg_overlay_set_property; gobject_class->get_property = gst_rsvg_overlay_get_property; + gobject_class->finalize = gst_rsvg_overlay_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DATA, g_param_spec_string ("data", "data", "SVG data.", "", @@ -542,3 +544,13 @@ gst_rsvg_overlay_init (GstRsvgOverlay * overlay, GstRsvgOverlayClass * klass) GST_DEBUG_FUNCPTR (gst_rsvg_overlay_data_sink_event)); gst_element_add_pad (GST_ELEMENT (overlay), overlay->data_sinkpad); } + +static void +gst_rsvg_overlay_finalize (GObject * object) +{ + GstRsvgOverlay *overlay = GST_RSVG_OVERLAY (object); + + g_object_unref (overlay->adapter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} diff --git a/ext/rtmp/Makefile.am b/ext/rtmp/Makefile.am index e97c7a7..bd2398c 100644 --- a/ext/rtmp/Makefile.am +++ b/ext/rtmp/Makefile.am @@ -1,8 +1,8 @@ plugin_LTLIBRARIES = libgstrtmp.la -libgstrtmp_la_SOURCES = gstrtmpsrc.c +libgstrtmp_la_SOURCES = gstrtmpsrc.c gstrtmpsink.c gstrtmp.c -noinst_HEADERS = gstrtmpsrc.h +noinst_HEADERS = gstrtmpsrc.h gstrtmpsink.h libgstrtmp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(RTMP_CFLAGS) libgstrtmp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(RTMP_LIBS) libgstrtmp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) diff --git a/ext/rtmp/Makefile.in b/ext/rtmp/Makefile.in index 32bf4f0..241a203 100644 --- a/ext/rtmp/Makefile.in +++ b/ext/rtmp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,16 +101,23 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstrtmp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -am_libgstrtmp_la_OBJECTS = libgstrtmp_la-gstrtmpsrc.lo +am_libgstrtmp_la_OBJECTS = libgstrtmp_la-gstrtmpsrc.lo \ + libgstrtmp_la-gstrtmpsink.lo libgstrtmp_la-gstrtmp.lo libgstrtmp_la_OBJECTS = $(am_libgstrtmp_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtmp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtmp_la_SOURCES) DIST_SOURCES = $(libgstrtmp_la_SOURCES) @@ -151,7 +159,6 @@ 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@ @@ -169,7 +176,6 @@ 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@ @@ -204,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -529,8 +557,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstrtmp.la -libgstrtmp_la_SOURCES = gstrtmpsrc.c -noinst_HEADERS = gstrtmpsrc.h +libgstrtmp_la_SOURCES = gstrtmpsrc.c gstrtmpsink.c gstrtmp.c +noinst_HEADERS = gstrtmpsrc.h gstrtmpsink.h libgstrtmp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(RTMP_CFLAGS) libgstrtmp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(RTMP_LIBS) libgstrtmp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) @@ -600,7 +628,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtmp.la: $(libgstrtmp_la_OBJECTS) $(libgstrtmp_la_DEPENDENCIES) +libgstrtmp.la: $(libgstrtmp_la_OBJECTS) $(libgstrtmp_la_DEPENDENCIES) $(EXTRA_libgstrtmp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtmp_la_LINK) -rpath $(plugindir) $(libgstrtmp_la_OBJECTS) $(libgstrtmp_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -609,39 +637,51 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtmp_la-gstrtmp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtmp_la-gstrtmpsink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtmp_la-gstrtmpsrc.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtmp_la-gstrtmpsrc.lo: gstrtmpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -MT libgstrtmp_la-gstrtmpsrc.lo -MD -MP -MF $(DEPDIR)/libgstrtmp_la-gstrtmpsrc.Tpo -c -o libgstrtmp_la-gstrtmpsrc.lo `test -f 'gstrtmpsrc.c' || echo '$(srcdir)/'`gstrtmpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtmp_la-gstrtmpsrc.Tpo $(DEPDIR)/libgstrtmp_la-gstrtmpsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtmpsrc.c' object='libgstrtmp_la-gstrtmpsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtmpsrc.c' object='libgstrtmp_la-gstrtmpsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -c -o libgstrtmp_la-gstrtmpsrc.lo `test -f 'gstrtmpsrc.c' || echo '$(srcdir)/'`gstrtmpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -c -o libgstrtmp_la-gstrtmpsrc.lo `test -f 'gstrtmpsrc.c' || echo '$(srcdir)/'`gstrtmpsrc.c + +libgstrtmp_la-gstrtmpsink.lo: gstrtmpsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -MT libgstrtmp_la-gstrtmpsink.lo -MD -MP -MF $(DEPDIR)/libgstrtmp_la-gstrtmpsink.Tpo -c -o libgstrtmp_la-gstrtmpsink.lo `test -f 'gstrtmpsink.c' || echo '$(srcdir)/'`gstrtmpsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtmp_la-gstrtmpsink.Tpo $(DEPDIR)/libgstrtmp_la-gstrtmpsink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtmpsink.c' object='libgstrtmp_la-gstrtmpsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -c -o libgstrtmp_la-gstrtmpsink.lo `test -f 'gstrtmpsink.c' || echo '$(srcdir)/'`gstrtmpsink.c + +libgstrtmp_la-gstrtmp.lo: gstrtmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -MT libgstrtmp_la-gstrtmp.lo -MD -MP -MF $(DEPDIR)/libgstrtmp_la-gstrtmp.Tpo -c -o libgstrtmp_la-gstrtmp.lo `test -f 'gstrtmp.c' || echo '$(srcdir)/'`gstrtmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtmp_la-gstrtmp.Tpo $(DEPDIR)/libgstrtmp_la-gstrtmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtmp.c' object='libgstrtmp_la-gstrtmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtmp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtmp_la_CFLAGS) $(CFLAGS) -c -o libgstrtmp_la-gstrtmp.lo `test -f 'gstrtmp.c' || echo '$(srcdir)/'`gstrtmp.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +788,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/rtmp/gstrtmp.c b/ext/rtmp/gstrtmp.c new file mode 100644 index 0000000..7acbea4 --- /dev/null +++ b/ext/rtmp/gstrtmp.c @@ -0,0 +1,54 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2002 Kristian Rietveld + * 2002,2003 Colin Walters + * 2001,2010 Bastien Nocera + * 2010 Sebastian Dröge + * 2010 Jan Schmidt + * + * rtmpsrc.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 "gstrtmpsrc.h" +#include "gstrtmpsink.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gboolean ret; + + ret = gst_element_register (plugin, "rtmpsrc", GST_RANK_PRIMARY, + GST_TYPE_RTMP_SRC); + ret &= gst_element_register (plugin, "rtmpsink", GST_RANK_PRIMARY, + GST_TYPE_RTMP_SINK); + + return ret; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "rtmp", + "RTMP source and sink", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/rtmp/gstrtmpsink.c b/ext/rtmp/gstrtmpsink.c new file mode 100644 index 0000000..bfc8f3c --- /dev/null +++ b/ext/rtmp/gstrtmpsink.c @@ -0,0 +1,372 @@ +/* + * GStreamer + * Copyright (C) 2010 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-rtmpsink + * + * This element delivers data to a streaming server via RTMP. It uses + * librtmp, and supports any protocols/urls that librtmp supports. + * The URL/location can contain extra connection or session parameters + * for librtmp, such as 'flashver=version'. See the librtmp documentation + * for more detail + * + * + * Example launch line + * |[ + * gst-launch -v videotestsrc ! ffenc_flv ! flvmux ! rtmpsink location='rtmp://localhost/path/to/stream live=1' + * ]| Encode a test video stream to FLV video format and stream it via RTMP. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstrtmpsink.h" + +#ifdef G_OS_WIN32 +#include +#endif + +GST_DEBUG_CATEGORY_STATIC (gst_rtmp_sink_debug); +#define GST_CAT_DEFAULT gst_rtmp_sink_debug + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_LOCATION +}; + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-flv") + ); + +static void gst_rtmp_sink_uri_handler_init (gpointer g_iface, + gpointer iface_data); +static void gst_rtmp_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtmp_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_rtmp_sink_finalize (GObject * object); +static gboolean gst_rtmp_sink_stop (GstBaseSink * sink); +static gboolean gst_rtmp_sink_start (GstBaseSink * sink); +static GstFlowReturn gst_rtmp_sink_render (GstBaseSink * sink, GstBuffer * buf); + +static void +_do_init (GType gtype) +{ + static const GInterfaceInfo urihandler_info = { + gst_rtmp_sink_uri_handler_init, + NULL, + NULL + }; + + g_type_add_interface_static (gtype, GST_TYPE_URI_HANDLER, &urihandler_info); + + GST_DEBUG_CATEGORY_INIT (gst_rtmp_sink_debug, "rtmpsink", 0, + "RTMP server element"); +} + +GST_BOILERPLATE_FULL (GstRTMPSink, gst_rtmp_sink, GstBaseSink, + GST_TYPE_BASE_SINK, _do_init); + + +static void +gst_rtmp_sink_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (element_class, + "RTMP output sink", + "Sink/Network", "Sends FLV content to a server via RTMP", + "Jan Schmidt "); + + gst_element_class_add_static_pad_template (element_class, + &sink_template); +} + +/* initialize the plugin's class */ +static void +gst_rtmp_sink_class_init (GstRTMPSinkClass * klass) +{ + GObjectClass *gobject_class; + GstBaseSinkClass *gstbasesink_class = (GstBaseSinkClass *) klass; + + gobject_class = (GObjectClass *) klass; + gobject_class->finalize = gst_rtmp_sink_finalize; + gobject_class->set_property = gst_rtmp_sink_set_property; + gobject_class->get_property = gst_rtmp_sink_get_property; + + gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_rtmp_sink_start); + gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_rtmp_sink_stop); + gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_rtmp_sink_render); + + gst_element_class_install_std_props (GST_ELEMENT_CLASS (klass), + "location", PROP_LOCATION, G_PARAM_READWRITE, NULL); +} + +/* initialize the new element + * initialize instance structure + */ +static void +gst_rtmp_sink_init (GstRTMPSink * sink, GstRTMPSinkClass * klass) +{ +#ifdef G_OS_WIN32 + WSADATA wsa_data; + + if (WSAStartup (MAKEWORD (2, 2), &wsa_data) != 0) { + GST_ERROR_OBJECT (sink, "WSAStartup failed: 0x%08x", WSAGetLastError ()); + } +#endif +} + +static void +gst_rtmp_sink_finalize (GObject * object) +{ +#ifdef G_OS_WIN32 + WSACleanup (); +#endif + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + +static gboolean +gst_rtmp_sink_start (GstBaseSink * basesink) +{ + GstRTMPSink *sink = GST_RTMP_SINK (basesink); + + if (!sink->uri) { + GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, + ("Please set URI for RTMP output"), ("No URI set before starting")); + return FALSE; + } + + sink->rtmp_uri = g_strdup (sink->uri); + sink->rtmp = RTMP_Alloc (); + RTMP_Init (sink->rtmp); + if (!RTMP_SetupURL (sink->rtmp, sink->rtmp_uri)) { + GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, (NULL), + ("Failed to setup URL '%s'", sink->uri)); + RTMP_Free (sink->rtmp); + sink->rtmp = NULL; + g_free (sink->rtmp_uri); + sink->rtmp_uri = NULL; + return FALSE; + } + + GST_DEBUG_OBJECT (sink, "Created RTMP object"); + + /* Mark this as an output connection */ + RTMP_EnableWrite (sink->rtmp); + + sink->first = TRUE; + + return TRUE; +} + +static gboolean +gst_rtmp_sink_stop (GstBaseSink * basesink) +{ + GstRTMPSink *sink = GST_RTMP_SINK (basesink); + + gst_buffer_replace (&sink->cache, NULL); + + if (sink->rtmp) { + RTMP_Close (sink->rtmp); + RTMP_Free (sink->rtmp); + sink->rtmp = NULL; + } + if (sink->rtmp_uri) { + g_free (sink->rtmp_uri); + sink->rtmp_uri = NULL; + } + + return TRUE; +} + +static GstFlowReturn +gst_rtmp_sink_render (GstBaseSink * bsink, GstBuffer * buf) +{ + GstRTMPSink *sink = GST_RTMP_SINK (bsink); + GstBuffer *reffed_buf = NULL; + + if (sink->first) { + /* open the connection */ + if (!RTMP_IsConnected (sink->rtmp)) { + if (!RTMP_Connect (sink->rtmp, NULL) + || !RTMP_ConnectStream (sink->rtmp, 0)) { + GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, (NULL), + ("Could not connect to RTMP stream \"%s\" for writing", sink->uri)); + RTMP_Free (sink->rtmp); + sink->rtmp = NULL; + g_free (sink->rtmp_uri); + sink->rtmp_uri = NULL; + return GST_FLOW_ERROR; + } + GST_DEBUG_OBJECT (sink, "Opened connection to %s", sink->rtmp_uri); + } + + /* FIXME: Parse the first buffer and see if it contains a header plus a packet instead + * of just assuming it's only the header */ + GST_LOG_OBJECT (sink, "Caching first buffer of size %d for concatenation", + GST_BUFFER_SIZE (buf)); + gst_buffer_replace (&sink->cache, buf); + sink->first = FALSE; + return GST_FLOW_OK; + } + + if (sink->cache) { + GST_LOG_OBJECT (sink, "Joining 2nd buffer of size %d to cached buf", + GST_BUFFER_SIZE (buf)); + gst_buffer_ref (buf); + reffed_buf = buf = gst_buffer_join (sink->cache, buf); + sink->cache = NULL; + } + + GST_LOG_OBJECT (sink, "Sending %d bytes to RTMP server", + GST_BUFFER_SIZE (buf)); + + if (!RTMP_Write (sink->rtmp, + (char *) GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf))) { + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, (NULL), ("Failed to write data")); + if (reffed_buf) + gst_buffer_unref (reffed_buf); + return GST_FLOW_ERROR; + } + + if (reffed_buf) + gst_buffer_unref (reffed_buf); + + return GST_FLOW_OK; +} + +/* + * URI interface support. + */ +static GstURIType +gst_rtmp_sink_uri_get_type (void) +{ + return GST_URI_SINK; +} + +static gchar ** +gst_rtmp_sink_uri_get_protocols (void) +{ + static gchar *protocols[] = + { (char *) "rtmp", (char *) "rtmpt", (char *) "rtmps", (char *) "rtmpe", + (char *) "rtmfp", (char *) "rtmpte", (char *) "rtmpts", NULL + }; + return protocols; +} + +static const gchar * +gst_rtmp_sink_uri_get_uri (GstURIHandler * handler) +{ + GstRTMPSink *sink = GST_RTMP_SINK (handler); + + return sink->uri; +} + +static gboolean +gst_rtmp_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri) +{ + GstRTMPSink *sink = GST_RTMP_SINK (handler); + + if (GST_STATE (sink) >= GST_STATE_PAUSED) + return FALSE; + + g_free (sink->uri); + sink->uri = NULL; + + if (uri != NULL) { + int protocol; + AVal host; + unsigned int port; + AVal playpath, app; + + if (!RTMP_ParseURL (uri, &protocol, &host, &port, &playpath, &app) || + !host.av_len || !playpath.av_len) { + GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, + ("Failed to parse URI %s", uri), (NULL)); + return FALSE; + } + sink->uri = g_strdup (uri); + } + + GST_DEBUG_OBJECT (sink, "Changed URI to %s", GST_STR_NULL (uri)); + + return TRUE; +} + +static void +gst_rtmp_sink_uri_handler_init (gpointer g_iface, gpointer iface_data) +{ + GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; + + iface->get_type = gst_rtmp_sink_uri_get_type; + iface->get_protocols = gst_rtmp_sink_uri_get_protocols; + iface->get_uri = gst_rtmp_sink_uri_get_uri; + iface->set_uri = gst_rtmp_sink_uri_set_uri; +} + +static void +gst_rtmp_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRTMPSink *sink = GST_RTMP_SINK (object); + + switch (prop_id) { + case PROP_LOCATION: + gst_rtmp_sink_uri_set_uri (GST_URI_HANDLER (sink), + g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_rtmp_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstRTMPSink *sink = GST_RTMP_SINK (object); + + switch (prop_id) { + case PROP_LOCATION: + g_value_set_string (value, sink->uri); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/ext/rtmp/gstrtmpsink.h b/ext/rtmp/gstrtmpsink.h new file mode 100644 index 0000000..cb9315e --- /dev/null +++ b/ext/rtmp/gstrtmpsink.h @@ -0,0 +1,68 @@ +/* + * GStreamer + * Copyright (C) 2010 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_RTMP_SINK_H__ +#define __GST_RTMP_SINK_H__ + +#include +#include + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_RTMP_SINK \ + (gst_rtmp_sink_get_type()) +#define GST_RTMP_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTMP_SINK,GstRTMPSink)) +#define GST_RTMP_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTMP_SINK,GstRTMPSinkClass)) +#define GST_IS_RTMP_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTMP_SINK)) +#define GST_IS_RTMP_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTMP_SINK)) + +typedef struct _GstRTMPSink GstRTMPSink; +typedef struct _GstRTMPSinkClass GstRTMPSinkClass; + +struct _GstRTMPSink { + GstBaseSink parent; + + /* < private > */ + gchar *uri; + + RTMP *rtmp; + gchar *rtmp_uri; /* copy of url for librtmp */ + + GstBuffer *cache; /* Cached buffer */ + gboolean first; +}; + +struct _GstRTMPSinkClass { + GstBaseSinkClass parent_class; +}; + +GType gst_rtmp_sink_get_type (void); + +G_END_DECLS + +#endif /* __GST_RTMP_SINK_H__ */ diff --git a/ext/rtmp/gstrtmpsrc.c b/ext/rtmp/gstrtmpsrc.c index 2376cce..e9ab2eb 100644 --- a/ext/rtmp/gstrtmpsrc.c +++ b/ext/rtmp/gstrtmpsrc.c @@ -53,6 +53,10 @@ #include +#ifdef G_OS_WIN32 +#include +#endif + GST_DEBUG_CATEGORY_STATIC (rtmpsrc_debug); #define GST_CAT_DEFAULT rtmpsrc_debug @@ -98,6 +102,8 @@ _do_init (GType gtype) }; g_type_add_interface_static (gtype, GST_TYPE_URI_HANDLER, &urihandler_info); + + GST_DEBUG_CATEGORY_INIT (rtmpsrc_debug, "rtmpsrc", 0, "RTMP Source"); } GST_BOILERPLATE_FULL (GstRTMPSrc, gst_rtmp_src, GstPushSrc, GST_TYPE_PUSH_SRC, @@ -108,8 +114,7 @@ gst_rtmp_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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "RTMP Source", @@ -151,6 +156,14 @@ gst_rtmp_src_class_init (GstRTMPSrcClass * klass) static void gst_rtmp_src_init (GstRTMPSrc * rtmpsrc, GstRTMPSrcClass * klass) { +#ifdef G_OS_WIN32 + WSADATA wsa_data; + + if (WSAStartup (MAKEWORD (2, 2), &wsa_data) != 0) { + GST_ERROR_OBJECT (rtmpsrc, "WSAStartup failed: 0x%08x", WSAGetLastError ()); + } +#endif + rtmpsrc->cur_offset = 0; rtmpsrc->last_timestamp = 0; @@ -165,6 +178,10 @@ gst_rtmp_src_finalize (GObject * object) g_free (rtmpsrc->uri); rtmpsrc->uri = NULL; +#ifdef G_OS_WIN32 + WSACleanup (); +#endif + G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -581,18 +598,3 @@ gst_rtmp_src_stop (GstBaseSrc * basesrc) return TRUE; } - -static gboolean -plugin_init (GstPlugin * plugin) -{ - GST_DEBUG_CATEGORY_INIT (rtmpsrc_debug, "rtmpsrc", 0, "RTMP Source"); - - return gst_element_register (plugin, "rtmpsrc", GST_RANK_PRIMARY, - GST_TYPE_RTMP_SRC); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "rtmpsrc", - "RTMP source", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/schroedinger/Makefile.in b/ext/schroedinger/Makefile.in index edb630f..6c28f04 100644 --- a/ext/schroedinger/Makefile.in +++ b/ext/schroedinger/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstschro_la_OBJECTS = libgstschro_la-gstschro.lo \ libgstschro_la-gstschrodec.lo libgstschro_la-gstschroenc.lo \ libgstschro_la-gstschroutils.lo libgstschro_la_OBJECTS = $(am_libgstschro_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstschro_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstschro_la_SOURCES) DIST_SOURCES = $(libgstschro_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -621,7 +648,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstschro.la: $(libgstschro_la_OBJECTS) $(libgstschro_la_DEPENDENCIES) +libgstschro.la: $(libgstschro_la_OBJECTS) $(libgstschro_la_DEPENDENCIES) $(EXTRA_libgstschro_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstschro_la_LINK) -rpath $(plugindir) $(libgstschro_la_OBJECTS) $(libgstschro_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -638,58 +665,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstschro_la-gstschro.lo: gstschro.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -MT libgstschro_la-gstschro.lo -MD -MP -MF $(DEPDIR)/libgstschro_la-gstschro.Tpo -c -o libgstschro_la-gstschro.lo `test -f 'gstschro.c' || echo '$(srcdir)/'`gstschro.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstschro_la-gstschro.Tpo $(DEPDIR)/libgstschro_la-gstschro.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstschro.c' object='libgstschro_la-gstschro.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstschro.c' object='libgstschro_la-gstschro.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschro.lo `test -f 'gstschro.c' || echo '$(srcdir)/'`gstschro.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschro.lo `test -f 'gstschro.c' || echo '$(srcdir)/'`gstschro.c libgstschro_la-gstschrodec.lo: gstschrodec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -MT libgstschro_la-gstschrodec.lo -MD -MP -MF $(DEPDIR)/libgstschro_la-gstschrodec.Tpo -c -o libgstschro_la-gstschrodec.lo `test -f 'gstschrodec.c' || echo '$(srcdir)/'`gstschrodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstschro_la-gstschrodec.Tpo $(DEPDIR)/libgstschro_la-gstschrodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstschrodec.c' object='libgstschro_la-gstschrodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstschrodec.c' object='libgstschro_la-gstschrodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschrodec.lo `test -f 'gstschrodec.c' || echo '$(srcdir)/'`gstschrodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschrodec.lo `test -f 'gstschrodec.c' || echo '$(srcdir)/'`gstschrodec.c libgstschro_la-gstschroenc.lo: gstschroenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -MT libgstschro_la-gstschroenc.lo -MD -MP -MF $(DEPDIR)/libgstschro_la-gstschroenc.Tpo -c -o libgstschro_la-gstschroenc.lo `test -f 'gstschroenc.c' || echo '$(srcdir)/'`gstschroenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstschro_la-gstschroenc.Tpo $(DEPDIR)/libgstschro_la-gstschroenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstschroenc.c' object='libgstschro_la-gstschroenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstschroenc.c' object='libgstschro_la-gstschroenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschroenc.lo `test -f 'gstschroenc.c' || echo '$(srcdir)/'`gstschroenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschroenc.lo `test -f 'gstschroenc.c' || echo '$(srcdir)/'`gstschroenc.c libgstschro_la-gstschroutils.lo: gstschroutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -MT libgstschro_la-gstschroutils.lo -MD -MP -MF $(DEPDIR)/libgstschro_la-gstschroutils.Tpo -c -o libgstschro_la-gstschroutils.lo `test -f 'gstschroutils.c' || echo '$(srcdir)/'`gstschroutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstschro_la-gstschroutils.Tpo $(DEPDIR)/libgstschro_la-gstschroutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstschroutils.c' object='libgstschro_la-gstschroutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstschroutils.c' object='libgstschro_la-gstschroutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschroutils.lo `test -f 'gstschroutils.c' || echo '$(srcdir)/'`gstschroutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstschro_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstschro_la_CFLAGS) $(CFLAGS) -c -o libgstschro_la-gstschroutils.lo `test -f 'gstschroutils.c' || echo '$(srcdir)/'`gstschroutils.c mostlyclean-libtool: -rm -f *.lo @@ -796,10 +816,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/schroedinger/gstschrodec.c b/ext/schroedinger/gstschrodec.c index 7917226..bbff0eb 100644 --- a/ext/schroedinger/gstschrodec.c +++ b/ext/schroedinger/gstschrodec.c @@ -55,7 +55,7 @@ struct _GstSchroDec SchroDecoder *decoder; - GstBuffer *seq_header_buffer; + gboolean seq_header_buffer_seen; }; struct _GstSchroDecClass @@ -78,10 +78,6 @@ enum }; static void gst_schro_dec_finalize (GObject * object); -static void gst_schro_dec_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_schro_dec_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); static gboolean gst_schro_dec_sink_query (GstPad * pad, GstQuery * query); @@ -118,10 +114,10 @@ gst_schro_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_schro_dec_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_schro_dec_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_schro_dec_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_schro_dec_sink_template); gst_element_class_set_details_simple (element_class, "Dirac Decoder", "Codec/Decoder/Video", @@ -137,8 +133,6 @@ gst_schro_dec_class_init (GstSchroDecClass * klass) gobject_class = G_OBJECT_CLASS (klass); base_video_decoder_class = GST_BASE_VIDEO_DECODER_CLASS (klass); - gobject_class->set_property = gst_schro_dec_set_property; - gobject_class->get_property = gst_schro_dec_get_property; gobject_class->finalize = gst_schro_dec_finalize; base_video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_schro_dec_start); @@ -172,21 +166,16 @@ static gint64 granulepos_to_frame (gint64 granulepos) { guint64 pt; - int dist_h; - int dist_l; - int dist; - int delay; - guint64 dt; if (granulepos == -1) return -1; pt = ((granulepos >> 22) + (granulepos & OGG_DIRAC_GRANULE_LOW_MASK)) >> 9; - dist_h = (granulepos >> 22) & 0xff; - dist_l = granulepos & 0xff; - dist = (dist_h << 8) | dist_l; - delay = (granulepos >> 9) & 0x1fff; - dt = pt - delay; + /* dist_h = (granulepos >> 22) & 0xff; + * dist_l = granulepos & 0xff; + * dist = (dist_h << 8) | dist_l; + * delay = (granulepos >> 9) & 0x1fff; + * dt = pt - delay; */ return pt >> 1; } @@ -309,38 +298,6 @@ gst_schro_dec_finalize (GObject * object) } static void -gst_schro_dec_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstSchroDec *src; - - g_return_if_fail (GST_IS_SCHRO_DEC (object)); - src = GST_SCHRO_DEC (object); - - GST_DEBUG ("gst_schro_dec_set_property"); - switch (prop_id) { - default: - break; - } -} - -static void -gst_schro_dec_get_property (GObject * object, guint prop_id, GValue * value, - GParamSpec * pspec) -{ - GstSchroDec *src; - - g_return_if_fail (GST_IS_SCHRO_DEC (object)); - src = GST_SCHRO_DEC (object); - - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void parse_sequence_header (GstSchroDec * schro_dec, guint8 * data, int size) { SchroVideoFormat video_format; @@ -351,8 +308,7 @@ parse_sequence_header (GstSchroDec * schro_dec, guint8 * data, int size) state = gst_base_video_decoder_get_state (GST_BASE_VIDEO_DECODER (schro_dec)); - schro_dec->seq_header_buffer = gst_buffer_new_and_alloc (size); - memcpy (GST_BUFFER_DATA (schro_dec->seq_header_buffer), data, size); + schro_dec->seq_header_buffer_seen = TRUE; ret = schro_parse_decode_sequence_header (data + 13, size - 13, &video_format); @@ -382,9 +338,7 @@ parse_sequence_header (GstSchroDec * schro_dec, guint8 * data, int size) state->par_d = video_format.aspect_ratio_denominator; GST_DEBUG ("Pixel aspect ratio is %d/%d", state->par_n, state->par_d); - /* FIXME state points to what is actually in the decoder */ - //gst_base_video_decoder_set_state (GST_BASE_VIDEO_DECODER (schro_dec), - // state); + gst_base_video_decoder_set_src_caps (GST_BASE_VIDEO_DECODER (schro_dec)); } else { GST_WARNING ("Failed to get frame rate from sequence header"); } @@ -507,7 +461,7 @@ gst_schro_dec_parse_data (GstBaseVideoDecoder * base_video_decoder, g_free (data); } - if (schro_decoder->seq_header_buffer == NULL) { + if (!schro_decoder->seq_header_buffer_seen) { gst_adapter_flush (base_video_decoder->input_adapter, next); return GST_FLOW_OK; } @@ -617,6 +571,8 @@ gst_schro_dec_process (GstSchroDec * schro_dec, gboolean eos) schro_frame_unref (schro_frame); } + if (tag) + schro_tag_free (tag); if (!eos) { go = FALSE; } @@ -644,7 +600,6 @@ gst_schro_dec_handle_frame (GstBaseVideoDecoder * base_video_decoder, GstVideoFrame * frame) { GstSchroDec *schro_dec; - int schro_ret; SchroBuffer *input_buffer; schro_dec = GST_SCHRO_DEC (base_video_decoder); @@ -656,7 +611,7 @@ gst_schro_dec_handle_frame (GstBaseVideoDecoder * base_video_decoder, input_buffer->tag = schro_tag_new (frame, NULL); - schro_ret = schro_decoder_autoparse_push (schro_dec->decoder, input_buffer); + schro_decoder_autoparse_push (schro_dec->decoder, input_buffer); return gst_schro_dec_process (schro_dec, FALSE); } diff --git a/ext/schroedinger/gstschroenc.c b/ext/schroedinger/gstschroenc.c index faf5a7f..d1eb498 100644 --- a/ext/schroedinger/gstschroenc.c +++ b/ext/schroedinger/gstschroenc.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -49,15 +50,6 @@ GST_DEBUG_CATEGORY_EXTERN (schro_debug); typedef struct _GstSchroEnc GstSchroEnc; typedef struct _GstSchroEncClass GstSchroEncClass; -typedef enum -{ - GST_SCHRO_ENC_OUTPUT_OGG, - GST_SCHRO_ENC_OUTPUT_QUICKTIME, - GST_SCHRO_ENC_OUTPUT_AVI, - GST_SCHRO_ENC_OUTPUT_MPEG_TS, - GST_SCHRO_ENC_OUTPUT_MP4 -} GstSchroEncOutputType; - struct _GstSchroEnc { GstBaseVideoEncoder base_encoder; @@ -65,13 +57,9 @@ struct _GstSchroEnc GstPad *sinkpad; GstPad *srcpad; - /* video properties */ - GstSchroEncOutputType output_format; - /* state */ SchroEncoder *encoder; SchroVideoFormat *video_format; - GstBuffer *seq_header_buffer; guint64 last_granulepos; guint64 granule_offset; @@ -107,13 +95,13 @@ static gboolean gst_schro_enc_set_format (GstBaseVideoEncoder * base_video_encoder, GstVideoState * state); static gboolean gst_schro_enc_start (GstBaseVideoEncoder * base_video_encoder); static gboolean gst_schro_enc_stop (GstBaseVideoEncoder * base_video_encoder); -static gboolean gst_schro_enc_finish (GstBaseVideoEncoder * base_video_encoder); +static GstFlowReturn gst_schro_enc_finish (GstBaseVideoEncoder * + base_video_encoder); static GstFlowReturn gst_schro_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame); static GstFlowReturn gst_schro_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame); -static GstCaps *gst_schro_enc_get_caps (GstBaseVideoEncoder * - base_video_encoder); +static void gst_schro_enc_finalize (GObject * object); static GstStaticPadTemplate gst_schro_enc_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", @@ -138,10 +126,10 @@ gst_schro_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_schro_enc_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_schro_enc_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_schro_enc_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_schro_enc_sink_template); gst_element_class_set_details_simple (element_class, "Dirac Encoder", "Codec/Encoder/Video", @@ -185,6 +173,7 @@ gst_schro_enc_class_init (GstSchroEncClass * klass) gobject_class->set_property = gst_schro_enc_set_property; gobject_class->get_property = gst_schro_enc_get_property; + gobject_class->finalize = gst_schro_enc_finalize; for (i = 0; i < schro_encoder_get_n_settings (); i++) { const SchroEncoderSetting *setting; @@ -229,7 +218,6 @@ gst_schro_enc_class_init (GstSchroEncClass * klass) GST_DEBUG_FUNCPTR (gst_schro_enc_handle_frame); basevideocoder_class->shape_output = GST_DEBUG_FUNCPTR (gst_schro_enc_shape_output); - basevideocoder_class->get_caps = GST_DEBUG_FUNCPTR (gst_schro_enc_get_caps); } static void @@ -245,47 +233,33 @@ gst_schro_enc_init (GstSchroEnc * schro_enc, GstSchroEncClass * klass) schro_enc->video_format = schro_encoder_get_video_format (schro_enc->encoder); } +static void +gst_schro_enc_finalize (GObject * object) +{ + GstSchroEnc *schro_enc = GST_SCHRO_ENC (object); + + if (schro_enc->encoder) { + schro_encoder_free (schro_enc->encoder); + schro_enc->encoder = NULL; + } + if (schro_enc->video_format) { + g_free (schro_enc->video_format); + schro_enc->video_format = NULL; + } + G_OBJECT_CLASS (parent_class)->finalize (object); +} static gboolean gst_schro_enc_set_format (GstBaseVideoEncoder * base_video_encoder, GstVideoState * state) { - GstCaps *caps; - GstStructure *structure; GstSchroEnc *schro_enc = GST_SCHRO_ENC (base_video_encoder); + GstCaps *caps; + GstBuffer *seq_header_buffer; + gboolean ret; GST_DEBUG ("set_output_caps"); - 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")) { - schro_enc->output_format = GST_SCHRO_ENC_OUTPUT_OGG; - } else if (gst_structure_has_name (structure, "video/x-qt-part")) { - schro_enc->output_format = GST_SCHRO_ENC_OUTPUT_QUICKTIME; - } else if (gst_structure_has_name (structure, "video/x-avi-part")) { - schro_enc->output_format = GST_SCHRO_ENC_OUTPUT_AVI; - } else if (gst_structure_has_name (structure, "video/x-mp4-part")) { - schro_enc->output_format = GST_SCHRO_ENC_OUTPUT_MP4; - } else { - gst_caps_unref (caps); - return FALSE; - } - - gst_caps_unref (caps); gst_base_video_encoder_set_latency_fields (base_video_encoder, 2 * (int) schro_encoder_setting_get_double (schro_enc->encoder, @@ -334,11 +308,58 @@ gst_schro_enc_set_format (GstBaseVideoEncoder * base_video_encoder, schro_encoder_set_video_format (schro_enc->encoder, schro_enc->video_format); schro_encoder_start (schro_enc->encoder); - schro_enc->seq_header_buffer = + seq_header_buffer = gst_schro_wrap_schro_buffer (schro_encoder_encode_sequence_header (schro_enc->encoder)); - return TRUE; + schro_enc->granule_offset = ~0; + + 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, NULL); + + GST_BUFFER_FLAG_SET (seq_header_buffer, GST_BUFFER_FLAG_IN_CAPS); + { + GValue array = { 0 }; + GValue value = { 0 }; + GstBuffer *buf; + int size; + + g_value_init (&array, GST_TYPE_ARRAY); + g_value_init (&value, GST_TYPE_BUFFER); + size = GST_BUFFER_SIZE (seq_header_buffer); + buf = gst_buffer_new_and_alloc (size + SCHRO_PARSE_HEADER_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); + + memcpy (GST_BUFFER_DATA (buf), GST_BUFFER_DATA (seq_header_buffer), size); + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + size + 0, 0x42424344); + GST_WRITE_UINT8 (GST_BUFFER_DATA (buf) + size + 4, + SCHRO_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); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + gst_structure_set_value (gst_caps_get_structure (caps, 0), + "streamheader", &array); + g_value_unset (&value); + g_value_unset (&array); + } + gst_buffer_unref (seq_header_buffer); + + ret = gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (schro_enc), caps); + gst_caps_unref (caps); + + return ret; } static void @@ -413,35 +434,16 @@ gst_schro_enc_get_property (GObject * object, guint prop_id, GValue * value, static gboolean gst_schro_enc_start (GstBaseVideoEncoder * base_video_encoder) { - GstSchroEnc *schro_enc = GST_SCHRO_ENC (base_video_encoder); - - schro_enc->granule_offset = ~0; - return TRUE; } static gboolean gst_schro_enc_stop (GstBaseVideoEncoder * base_video_encoder) { - GstSchroEnc *schro_enc = GST_SCHRO_ENC (base_video_encoder); - - if (schro_enc->encoder) { - schro_encoder_free (schro_enc->encoder); - schro_enc->encoder = NULL; - } - if (schro_enc->seq_header_buffer) { - gst_buffer_unref (schro_enc->seq_header_buffer); - schro_enc->seq_header_buffer = NULL; - } - if (schro_enc->video_format) { - g_free (schro_enc->video_format); - schro_enc->video_format = NULL; - } - return TRUE; } -static gboolean +static GstFlowReturn gst_schro_enc_finish (GstBaseVideoEncoder * base_video_encoder) { GstSchroEnc *schro_enc = GST_SCHRO_ENC (base_video_encoder); @@ -451,7 +453,7 @@ gst_schro_enc_finish (GstBaseVideoEncoder * base_video_encoder) schro_encoder_end_of_stream (schro_enc->encoder); gst_schro_enc_process (schro_enc); - return TRUE; + return GST_FLOW_OK; } static GstFlowReturn @@ -483,138 +485,11 @@ gst_schro_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, return ret; } -#if 0 -static void -gst_caps_add_streamheader (GstCaps * caps, GList * list) -{ - GValue array = { 0 }; - GValue value = { 0 }; - GstBuffer *buf; - GList *g; - - g_value_init (&array, GST_TYPE_ARRAY); - - for (g = g_list_first (list); g; g = g_list_next (list)) { - g_value_init (&value, GST_TYPE_BUFFER); - buf = gst_buffer_copy (GST_BUFFER (g->data)); - gst_value_set_buffer (&value, buf); - gst_buffer_unref (buf); - gst_value_array_append_value (&array, &value); - g_value_unset (&value); - } - gst_structure_set_value (gst_caps_get_structure (caps, 0), - "streamheader", &array); - g_value_unset (&array); -} -#endif - -static GstCaps * -gst_schro_enc_get_caps (GstBaseVideoEncoder * base_video_encoder) -{ - GstCaps *caps; - const GstVideoState *state; - GstSchroEnc *schro_enc; - - schro_enc = GST_SCHRO_ENC (base_video_encoder); - - state = gst_base_video_encoder_get_state (base_video_encoder); - - if (schro_enc->output_format == GST_SCHRO_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, NULL); - - GST_BUFFER_FLAG_SET (schro_enc->seq_header_buffer, GST_BUFFER_FLAG_IN_CAPS); - - { - GValue array = { 0 }; - GValue value = { 0 }; - GstBuffer *buf; - int size; - - g_value_init (&array, GST_TYPE_ARRAY); - g_value_init (&value, GST_TYPE_BUFFER); - size = GST_BUFFER_SIZE (schro_enc->seq_header_buffer); - buf = gst_buffer_new_and_alloc (size + SCHRO_PARSE_HEADER_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); - - memcpy (GST_BUFFER_DATA (buf), - GST_BUFFER_DATA (schro_enc->seq_header_buffer), size); - GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + size + 0, 0x42424344); - GST_WRITE_UINT8 (GST_BUFFER_DATA (buf) + size + 4, - SCHRO_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); - gst_value_set_buffer (&value, buf); - gst_buffer_unref (buf); - gst_value_array_append_value (&array, &value); - gst_structure_set_value (gst_caps_get_structure (caps, 0), - "streamheader", &array); - g_value_unset (&value); - g_value_unset (&array); - } - } else if (schro_enc->output_format == GST_SCHRO_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 (schro_enc->output_format == GST_SCHRO_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 (schro_enc->output_format == GST_SCHRO_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 (schro_enc->output_format == GST_SCHRO_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 (); - caps = NULL; - } - - return caps; -} - - - - static GstFlowReturn -gst_schro_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, +gst_schro_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) { GstSchroEnc *schro_enc; - int dpn; int delay; int dist; int pt; @@ -625,8 +500,6 @@ gst_schro_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, schro_enc = GST_SCHRO_ENC (base_video_encoder); - dpn = frame->decode_frame_number; - pt = frame->presentation_frame_number * 2 + schro_enc->granule_offset; dt = frame->decode_frame_number * 2 + schro_enc->granule_offset; delay = pt - dt; @@ -648,103 +521,13 @@ gst_schro_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, GST_BUFFER_OFFSET_END (buf) = schro_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_schro_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); + gst_buffer_set_caps (buf, + GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); } static GstFlowReturn -gst_schro_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_schro_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, - GstVideoFrame * frame) -{ - GstSchroEnc *schro_enc; - - schro_enc = GST_SCHRO_ENC (base_video_encoder); - - switch (schro_enc->output_format) { - case GST_SCHRO_ENC_OUTPUT_OGG: - return gst_schro_enc_shape_output_ogg (base_video_encoder, frame); - case GST_SCHRO_ENC_OUTPUT_QUICKTIME: - return gst_schro_enc_shape_output_quicktime (base_video_encoder, frame); - case GST_SCHRO_ENC_OUTPUT_MP4: - return gst_schro_enc_shape_output_mp4 (base_video_encoder, frame); - default: - g_assert_not_reached (); - break; - } - - return GST_FLOW_ERROR; -} - -static GstFlowReturn gst_schro_enc_process (GstSchroEnc * schro_enc) { SchroBuffer *encoded_buffer; diff --git a/ext/sdl/Makefile.in b/ext/sdl/Makefile.in index 88375ab..f5e48e9 100644 --- a/ext/sdl/Makefile.in +++ b/ext/sdl/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstsdl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstsdl_la_OBJECTS = libgstsdl_la-gstsdl.lo \ libgstsdl_la-sdlvideosink.lo libgstsdl_la-sdlaudiosink.lo libgstsdl_la_OBJECTS = $(am_libgstsdl_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsdl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsdl_la_SOURCES) DIST_SOURCES = $(libgstsdl_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -612,7 +639,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsdl.la: $(libgstsdl_la_OBJECTS) $(libgstsdl_la_DEPENDENCIES) +libgstsdl.la: $(libgstsdl_la_OBJECTS) $(libgstsdl_la_DEPENDENCIES) $(EXTRA_libgstsdl_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsdl_la_LINK) -rpath $(plugindir) $(libgstsdl_la_OBJECTS) $(libgstsdl_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -628,50 +655,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsdl_la-gstsdl.lo: gstsdl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -MT libgstsdl_la-gstsdl.lo -MD -MP -MF $(DEPDIR)/libgstsdl_la-gstsdl.Tpo -c -o libgstsdl_la-gstsdl.lo `test -f 'gstsdl.c' || echo '$(srcdir)/'`gstsdl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdl_la-gstsdl.Tpo $(DEPDIR)/libgstsdl_la-gstsdl.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdl.c' object='libgstsdl_la-gstsdl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdl.c' object='libgstsdl_la-gstsdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-gstsdl.lo `test -f 'gstsdl.c' || echo '$(srcdir)/'`gstsdl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-gstsdl.lo `test -f 'gstsdl.c' || echo '$(srcdir)/'`gstsdl.c libgstsdl_la-sdlvideosink.lo: sdlvideosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -MT libgstsdl_la-sdlvideosink.lo -MD -MP -MF $(DEPDIR)/libgstsdl_la-sdlvideosink.Tpo -c -o libgstsdl_la-sdlvideosink.lo `test -f 'sdlvideosink.c' || echo '$(srcdir)/'`sdlvideosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdl_la-sdlvideosink.Tpo $(DEPDIR)/libgstsdl_la-sdlvideosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdlvideosink.c' object='libgstsdl_la-sdlvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sdlvideosink.c' object='libgstsdl_la-sdlvideosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-sdlvideosink.lo `test -f 'sdlvideosink.c' || echo '$(srcdir)/'`sdlvideosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-sdlvideosink.lo `test -f 'sdlvideosink.c' || echo '$(srcdir)/'`sdlvideosink.c libgstsdl_la-sdlaudiosink.lo: sdlaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -MT libgstsdl_la-sdlaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstsdl_la-sdlaudiosink.Tpo -c -o libgstsdl_la-sdlaudiosink.lo `test -f 'sdlaudiosink.c' || echo '$(srcdir)/'`sdlaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdl_la-sdlaudiosink.Tpo $(DEPDIR)/libgstsdl_la-sdlaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdlaudiosink.c' object='libgstsdl_la-sdlaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sdlaudiosink.c' object='libgstsdl_la-sdlaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-sdlaudiosink.lo `test -f 'sdlaudiosink.c' || echo '$(srcdir)/'`sdlaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdl_la_CFLAGS) $(CFLAGS) -c -o libgstsdl_la-sdlaudiosink.lo `test -f 'sdlaudiosink.c' || echo '$(srcdir)/'`sdlaudiosink.c mostlyclean-libtool: -rm -f *.lo @@ -778,10 +799,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/sdl/sdlaudiosink.c b/ext/sdl/sdlaudiosink.c index 707459f..98f5bb7 100644 --- a/ext/sdl/sdlaudiosink.c +++ b/ext/sdl/sdlaudiosink.c @@ -149,8 +149,8 @@ gst_sdlaudio_sink_base_init (gpointer g_class) "Output to a sound card via SDLAUDIO", "Edgard Lima "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sdlaudiosink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &sdlaudiosink_sink_factory); } static void diff --git a/ext/sdl/sdlvideosink.c b/ext/sdl/sdlvideosink.c index fa05ace..fe155a4 100644 --- a/ext/sdl/sdlvideosink.c +++ b/ext/sdl/sdlvideosink.c @@ -151,6 +151,7 @@ gst_sdlvideosink_base_init (gpointer g_class) GST_PAD_SINK, GST_PAD_ALWAYS, capslist); gst_element_class_add_pad_template (element_class, sink_template); + gst_object_unref (sink_template); gst_element_class_set_details_simple (element_class, "SDL video sink", "Sink/Video", "An SDL-based videosink", "Ronald Bultje , " diff --git a/ext/sndfile/Makefile.in b/ext/sndfile/Makefile.in index 03c8214..f28b122 100644 --- a/ext/sndfile/Makefile.in +++ b/ext/sndfile/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstsndfile_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstsndfile_la_OBJECTS = libgstsndfile_la-gstsf.lo \ libgstsndfile_la-gstsfsrc.lo libgstsndfile_la-gstsfsink.lo libgstsndfile_la_OBJECTS = $(am_libgstsndfile_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsndfile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsndfile_la_SOURCES) DIST_SOURCES = $(libgstsndfile_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsndfile.la: $(libgstsndfile_la_OBJECTS) $(libgstsndfile_la_DEPENDENCIES) +libgstsndfile.la: $(libgstsndfile_la_OBJECTS) $(libgstsndfile_la_DEPENDENCIES) $(EXTRA_libgstsndfile_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsndfile_la_LINK) -rpath $(plugindir) $(libgstsndfile_la_OBJECTS) $(libgstsndfile_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -616,50 +643,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsndfile_la-gstsf.lo: gstsf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -MT libgstsndfile_la-gstsf.lo -MD -MP -MF $(DEPDIR)/libgstsndfile_la-gstsf.Tpo -c -o libgstsndfile_la-gstsf.lo `test -f 'gstsf.c' || echo '$(srcdir)/'`gstsf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsndfile_la-gstsf.Tpo $(DEPDIR)/libgstsndfile_la-gstsf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsf.c' object='libgstsndfile_la-gstsf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsf.c' object='libgstsndfile_la-gstsf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsf.lo `test -f 'gstsf.c' || echo '$(srcdir)/'`gstsf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsf.lo `test -f 'gstsf.c' || echo '$(srcdir)/'`gstsf.c libgstsndfile_la-gstsfsrc.lo: gstsfsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -MT libgstsndfile_la-gstsfsrc.lo -MD -MP -MF $(DEPDIR)/libgstsndfile_la-gstsfsrc.Tpo -c -o libgstsndfile_la-gstsfsrc.lo `test -f 'gstsfsrc.c' || echo '$(srcdir)/'`gstsfsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsndfile_la-gstsfsrc.Tpo $(DEPDIR)/libgstsndfile_la-gstsfsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsfsrc.c' object='libgstsndfile_la-gstsfsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsfsrc.c' object='libgstsndfile_la-gstsfsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsfsrc.lo `test -f 'gstsfsrc.c' || echo '$(srcdir)/'`gstsfsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsfsrc.lo `test -f 'gstsfsrc.c' || echo '$(srcdir)/'`gstsfsrc.c libgstsndfile_la-gstsfsink.lo: gstsfsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -MT libgstsndfile_la-gstsfsink.lo -MD -MP -MF $(DEPDIR)/libgstsndfile_la-gstsfsink.Tpo -c -o libgstsndfile_la-gstsfsink.lo `test -f 'gstsfsink.c' || echo '$(srcdir)/'`gstsfsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsndfile_la-gstsfsink.Tpo $(DEPDIR)/libgstsndfile_la-gstsfsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsfsink.c' object='libgstsndfile_la-gstsfsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsfsink.c' object='libgstsndfile_la-gstsfsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsfsink.lo `test -f 'gstsfsink.c' || echo '$(srcdir)/'`gstsfsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsndfile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsndfile_la_CFLAGS) $(CFLAGS) -c -o libgstsndfile_la-gstsfsink.lo `test -f 'gstsfsink.c' || echo '$(srcdir)/'`gstsfsink.c mostlyclean-libtool: -rm -f *.lo @@ -766,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/sndfile/gstsfsink.c b/ext/sndfile/gstsfsink.c index a4ef877..273c840 100644 --- a/ext/sndfile/gstsfsink.c +++ b/ext/sndfile/gstsfsink.c @@ -84,8 +84,8 @@ gst_sf_sink_base_init (gpointer g_class) GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); GST_DEBUG_CATEGORY_INIT (gst_sf_debug, "sfsink", 0, "sfsink element"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sf_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &sf_sink_factory); gst_element_class_set_details_simple (element_class, "Sndfile sink", "Sink/Audio", "Write audio streams to disk using libsndfile", diff --git a/ext/sndfile/gstsfsrc.c b/ext/sndfile/gstsfsrc.c index f725d3f..8dc7959 100644 --- a/ext/sndfile/gstsfsrc.c +++ b/ext/sndfile/gstsfsrc.c @@ -83,8 +83,8 @@ gst_sf_src_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sf_src_factory)); + gst_element_class_add_static_pad_template (gstelement_class, + &sf_src_factory); gst_element_class_set_details_simple (gstelement_class, "Sndfile source", "Source/Audio", @@ -200,7 +200,10 @@ gst_sf_src_create (GstBaseSrc * bsrc, guint64 offset, guint length, { GstSFSrc *this; GstBuffer *buf; +/* FIXME discont is set but not used */ +#if 0 gboolean discont = FALSE; +#endif sf_count_t bytes_read; this = GST_SF_SRC (bsrc); @@ -221,7 +224,9 @@ gst_sf_src_create (GstBaseSrc * bsrc, guint64 offset, guint length, goto seek_failed; this->offset = offset; +#if 0 discont = TRUE; +#endif } buf = gst_buffer_new_and_alloc (length); diff --git a/ext/soundtouch/Makefile.in b/ext/soundtouch/Makefile.in index 122cebc..13f6f50 100644 --- a/ext/soundtouch/Makefile.in +++ b/ext/soundtouch/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstsoundtouch_la_OBJECTS = libgstsoundtouch_la-plugin.lo \ libgstsoundtouch_la-gstpitch.lo \ libgstsoundtouch_la-gstbpmdetect.lo libgstsoundtouch_la_OBJECTS = $(am_libgstsoundtouch_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsoundtouch_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,18 +135,18 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -147,18 +154,18 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsoundtouch_la_SOURCES) DIST_SOURCES = $(libgstsoundtouch_la_SOURCES) @@ -170,7 +177,6 @@ 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@ @@ -188,7 +194,6 @@ 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@ @@ -223,6 +228,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -262,6 +268,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -279,6 +286,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -287,13 +295,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -318,13 +329,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -372,6 +384,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -403,8 +416,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -428,6 +445,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -452,10 +471,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -467,6 +490,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -491,6 +518,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -526,7 +554,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -624,7 +651,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsoundtouch.la: $(libgstsoundtouch_la_OBJECTS) $(libgstsoundtouch_la_DEPENDENCIES) +libgstsoundtouch.la: $(libgstsoundtouch_la_OBJECTS) $(libgstsoundtouch_la_DEPENDENCIES) $(EXTRA_libgstsoundtouch_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstsoundtouch_la_LINK) -rpath $(plugindir) $(libgstsoundtouch_la_OBJECTS) $(libgstsoundtouch_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -640,74 +667,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsoundtouch_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CFLAGS) $(CFLAGS) -MT libgstsoundtouch_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstsoundtouch_la-plugin.Tpo -c -o libgstsoundtouch_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoundtouch_la-plugin.Tpo $(DEPDIR)/libgstsoundtouch_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstsoundtouch_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstsoundtouch_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 $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CFLAGS) $(CFLAGS) -c -o libgstsoundtouch_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CFLAGS) $(CFLAGS) -c -o libgstsoundtouch_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c .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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libgstsoundtouch_la-gstpitch.lo: gstpitch.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -MT libgstsoundtouch_la-gstpitch.lo -MD -MP -MF $(DEPDIR)/libgstsoundtouch_la-gstpitch.Tpo -c -o libgstsoundtouch_la-gstpitch.lo `test -f 'gstpitch.cc' || echo '$(srcdir)/'`gstpitch.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoundtouch_la-gstpitch.Tpo $(DEPDIR)/libgstsoundtouch_la-gstpitch.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstpitch.cc' object='libgstsoundtouch_la-gstpitch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstpitch.cc' object='libgstsoundtouch_la-gstpitch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstsoundtouch_la-gstpitch.lo `test -f 'gstpitch.cc' || echo '$(srcdir)/'`gstpitch.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstsoundtouch_la-gstpitch.lo `test -f 'gstpitch.cc' || echo '$(srcdir)/'`gstpitch.cc libgstsoundtouch_la-gstbpmdetect.lo: gstbpmdetect.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -MT libgstsoundtouch_la-gstbpmdetect.lo -MD -MP -MF $(DEPDIR)/libgstsoundtouch_la-gstbpmdetect.Tpo -c -o libgstsoundtouch_la-gstbpmdetect.lo `test -f 'gstbpmdetect.cc' || echo '$(srcdir)/'`gstbpmdetect.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoundtouch_la-gstbpmdetect.Tpo $(DEPDIR)/libgstsoundtouch_la-gstbpmdetect.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstbpmdetect.cc' object='libgstsoundtouch_la-gstbpmdetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstbpmdetect.cc' object='libgstsoundtouch_la-gstbpmdetect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstsoundtouch_la-gstbpmdetect.lo `test -f 'gstbpmdetect.cc' || echo '$(srcdir)/'`gstbpmdetect.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstsoundtouch_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoundtouch_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstsoundtouch_la-gstbpmdetect.lo `test -f 'gstbpmdetect.cc' || echo '$(srcdir)/'`gstbpmdetect.cc mostlyclean-libtool: -rm -f *.lo @@ -814,10 +832,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/soundtouch/gstpitch.cc b/ext/soundtouch/gstpitch.cc index 46f7319..332e0ed 100644 --- a/ext/soundtouch/gstpitch.cc +++ b/ext/soundtouch/gstpitch.cc @@ -55,6 +55,7 @@ struct _GstPitchPrivate enum { ARG_0, + ARG_OUT_RATE, ARG_RATE, ARG_TEMPO, ARG_PITCH @@ -105,10 +106,10 @@ gst_pitch_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_pitch_src_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_pitch_sink_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_pitch_src_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_pitch_sink_template); gst_element_class_set_details_simple (gstelement_class, "Pitch controller", "Filter/Converter/Audio", "Control the pitch of an audio stream", @@ -147,6 +148,11 @@ gst_pitch_class_init (GstPitchClass * klass) "Audio stream rate", 0.1, 10.0, 1.0, (GParamFlags) (G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, ARG_OUT_RATE, + g_param_spec_float ("output-rate", "Output Rate", + "Output rate on downstream segment events", 0.1, 10.0, 1.0, + (GParamFlags) (G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS))); + g_type_class_add_private (gobject_class, sizeof (GstPitchPrivate)); } @@ -186,12 +192,14 @@ gst_pitch_init (GstPitch * pitch, GstPitchClass * pitch_class) pitch->tempo = 1.0; pitch->rate = 1.0; + pitch->out_seg_rate = 1.0; + pitch->seg_arate = 1.0; pitch->pitch = 1.0; pitch->next_buffer_time = 0; pitch->next_buffer_offset = 0; pitch->priv->st->setRate (pitch->rate); - pitch->priv->st->setTempo (pitch->tempo); + pitch->priv->st->setTempo (pitch->tempo * pitch->seg_arate); pitch->priv->st->setPitch (pitch->pitch); pitch->priv->stream_time_ratio = 1.0; @@ -232,18 +240,22 @@ gst_pitch_set_property (GObject * object, guint prop_id, switch (prop_id) { case ARG_TEMPO: pitch->tempo = g_value_get_float (value); - pitch->priv->stream_time_ratio = pitch->tempo * pitch->rate; - pitch->priv->st->setTempo (pitch->tempo); + pitch->priv->stream_time_ratio = pitch->tempo * pitch->rate * pitch->seg_arate; + pitch->priv->st->setTempo (pitch->tempo * pitch->seg_arate); GST_OBJECT_UNLOCK (pitch); gst_pitch_update_duration (pitch); break; case ARG_RATE: pitch->rate = g_value_get_float (value); - pitch->priv->stream_time_ratio = pitch->tempo * pitch->rate; + pitch->priv->stream_time_ratio = pitch->tempo * pitch->rate * pitch->seg_arate; pitch->priv->st->setRate (pitch->rate); GST_OBJECT_UNLOCK (pitch); gst_pitch_update_duration (pitch); break; + case ARG_OUT_RATE: + /* Has no effect until the next input segment */ + pitch->out_seg_rate = g_value_get_float (value); + GST_OBJECT_UNLOCK (pitch); case ARG_PITCH: pitch->pitch = g_value_get_float (value); pitch->priv->st->setPitch (pitch->pitch); @@ -270,6 +282,9 @@ gst_pitch_get_property (GObject * object, guint prop_id, case ARG_RATE: g_value_set_float (value, pitch->rate); break; + case ARG_OUT_RATE: + g_value_set_float (value, pitch->out_seg_rate); + break; case ARG_PITCH: g_value_set_float (value, pitch->pitch); break; @@ -695,16 +710,17 @@ gst_pitch_process_segment (GstPitch * pitch, GstEvent ** event) gint64 start_value, stop_value, base; gint64 next_offset = 0, next_time = 0; gboolean update = FALSE; - gdouble rate; + gdouble rate, out_seg_rate, arate, our_arate; gfloat stream_time_ratio; g_return_val_if_fail (event, FALSE); GST_OBJECT_LOCK (pitch); stream_time_ratio = pitch->priv->stream_time_ratio; + out_seg_rate = pitch->out_seg_rate; GST_OBJECT_UNLOCK (pitch); - gst_event_parse_new_segment (*event, &update, &rate, &format, &start_value, + gst_event_parse_new_segment_full (*event, &update, &rate, &arate, &format, &start_value, &stop_value, &base); if (format != GST_FORMAT_TIME && format != GST_FORMAT_DEFAULT) { @@ -713,21 +729,36 @@ gst_pitch_process_segment (GstPitch * pitch, GstEvent ** event) "open ended NEWSEGMENT in TIME format."); gst_event_unref (*event); *event = - gst_event_new_new_segment (update, rate, GST_FORMAT_TIME, 0, -1, 0); + gst_event_new_new_segment_full (update, rate, arate, GST_FORMAT_TIME, 0, -1, 0); start_value = 0; stop_value = -1; base = 0; } + /* Figure out how much of the incoming 'rate' we'll apply ourselves */ + our_arate = rate / out_seg_rate; + /* update the output rate variables */ + rate = out_seg_rate; + arate *= our_arate; + GST_LOG_OBJECT (pitch->sinkpad, "segment %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT " (%d)", start_value, stop_value, format); + stream_time_ratio = pitch->tempo * pitch->rate * pitch->seg_arate; + if (stream_time_ratio == 0) { GST_LOG_OBJECT (pitch->sinkpad, "stream_time_ratio is zero"); return FALSE; } + /* Update the playback rate */ + GST_OBJECT_LOCK (pitch); + pitch->seg_arate = our_arate; + pitch->priv->stream_time_ratio = stream_time_ratio; + pitch->priv->st->setTempo (pitch->tempo * pitch->seg_arate); + GST_OBJECT_UNLOCK (pitch); + start_value = (gint64) (start_value / stream_time_ratio); if (stop_value != -1) stop_value = (gint64) (stop_value / stream_time_ratio); @@ -752,8 +783,8 @@ gst_pitch_process_segment (GstPitch * pitch, GstEvent ** event) pitch->next_buffer_offset = next_offset; gst_event_unref (*event); - *event = gst_event_new_new_segment (update, rate, format, start_value, - stop_value, base); + *event = gst_event_new_new_segment_full (update, rate, arate, format, + start_value, stop_value, base); return TRUE; } @@ -772,6 +803,8 @@ gst_pitch_sink_event (GstPad * pad, GstEvent * event) case GST_EVENT_FLUSH_STOP: gst_pitch_flush_buffer (pitch, FALSE); pitch->priv->st->clear (); + pitch->next_buffer_offset = 0; + pitch->next_buffer_time = 0; pitch->min_latency = pitch->max_latency = 0; break; case GST_EVENT_EOS: diff --git a/ext/soundtouch/gstpitch.hh b/ext/soundtouch/gstpitch.hh index 32cb04d..ad1f7f6 100644 --- a/ext/soundtouch/gstpitch.hh +++ b/ext/soundtouch/gstpitch.hh @@ -58,11 +58,18 @@ struct _GstPitch * > 1 makes the stream shorter */ + gfloat out_seg_rate; /* change output segment rate + * Affects playback when input + * segments have rate != out_rate + */ + gfloat pitch; /* change pitch * change the pitch without affecting the * duration, stream length doesn't change */ + gfloat seg_arate; /* Rate to apply from input segment */ + /* values extracted from caps */ gint samplerate; /* samplerate */ gint channels; /* number of audio channels */ diff --git a/ext/spandsp/Makefile.am b/ext/spandsp/Makefile.am new file mode 100644 index 0000000..4658595 --- /dev/null +++ b/ext/spandsp/Makefile.am @@ -0,0 +1,9 @@ +plugin_LTLIBRARIES = libgstspandsp.la + +libgstspandsp_la_SOURCES = gstspandsp.c gstspanplc.c +libgstspandsp_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(SPANDSP_CFLAGS) +libgstspandsp_la_LIBADD = $(SPANDSP_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) +libgstspandsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstspandsp_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstspanplc.h diff --git a/ext/spandsp/Makefile.in b/ext/spandsp/Makefile.in new file mode 100644 index 0000000..4b8671f --- /dev/null +++ b/ext/spandsp/Makefile.in @@ -0,0 +1,892 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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/spandsp +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstspandsp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstspandsp_la_OBJECTS = libgstspandsp_la-gstspandsp.lo \ + libgstspandsp_la-gstspanplc.lo +libgstspandsp_la_OBJECTS = $(am_libgstspandsp_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstspandsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstspandsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstspandsp_la_CFLAGS) $(CFLAGS) \ + $(libgstspandsp_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstspandsp_la_SOURCES) +DIST_SOURCES = $(libgstspandsp_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstspandsp.la +libgstspandsp_la_SOURCES = gstspandsp.c gstspanplc.c +libgstspandsp_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(SPANDSP_CFLAGS) +libgstspandsp_la_LIBADD = $(SPANDSP_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) +libgstspandsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstspandsp_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstspanplc.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/spandsp/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/spandsp/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 +libgstspandsp.la: $(libgstspandsp_la_OBJECTS) $(libgstspandsp_la_DEPENDENCIES) $(EXTRA_libgstspandsp_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstspandsp_la_LINK) -rpath $(plugindir) $(libgstspandsp_la_OBJECTS) $(libgstspandsp_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstspandsp_la-gstspandsp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstspandsp_la-gstspanplc.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstspandsp_la-gstspandsp.lo: gstspandsp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspandsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspandsp_la_CFLAGS) $(CFLAGS) -MT libgstspandsp_la-gstspandsp.lo -MD -MP -MF $(DEPDIR)/libgstspandsp_la-gstspandsp.Tpo -c -o libgstspandsp_la-gstspandsp.lo `test -f 'gstspandsp.c' || echo '$(srcdir)/'`gstspandsp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspandsp_la-gstspandsp.Tpo $(DEPDIR)/libgstspandsp_la-gstspandsp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspandsp.c' object='libgstspandsp_la-gstspandsp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspandsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspandsp_la_CFLAGS) $(CFLAGS) -c -o libgstspandsp_la-gstspandsp.lo `test -f 'gstspandsp.c' || echo '$(srcdir)/'`gstspandsp.c + +libgstspandsp_la-gstspanplc.lo: gstspanplc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspandsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspandsp_la_CFLAGS) $(CFLAGS) -MT libgstspandsp_la-gstspanplc.lo -MD -MP -MF $(DEPDIR)/libgstspandsp_la-gstspanplc.Tpo -c -o libgstspandsp_la-gstspanplc.lo `test -f 'gstspanplc.c' || echo '$(srcdir)/'`gstspanplc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspandsp_la-gstspanplc.Tpo $(DEPDIR)/libgstspandsp_la-gstspanplc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspanplc.c' object='libgstspandsp_la-gstspanplc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspandsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspandsp_la_CFLAGS) $(CFLAGS) -c -o libgstspandsp_la-gstspanplc.lo `test -f 'gstspanplc.c' || echo '$(srcdir)/'`gstspanplc.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/spandsp/gstspandsp.c b/ext/spandsp/gstspandsp.c new file mode 100644 index 0000000..ad1c3a8 --- /dev/null +++ b/ext/spandsp/gstspandsp.c @@ -0,0 +1,40 @@ +/* + * (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui + * + * 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 "gstspanplc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "spanplc", + GST_RANK_PRIMARY, GST_TYPE_SPAN_PLC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "spandsp", + "libspandsp plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/spandsp/gstspanplc.c b/ext/spandsp/gstspanplc.c new file mode 100644 index 0000000..3e17470 --- /dev/null +++ b/ext/spandsp/gstspanplc.c @@ -0,0 +1,298 @@ +/* + * (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui + * + * 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-spanplc + * + * The spanplc (Packet Loss Concealment) element provides a synthetic + * fill-in signal, to minimise the audible effect of lost packets in + * VoIP applications + * + */ + + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gstspanplc.h" + +GST_BOILERPLATE (GstSpanPlc, gst_span_plc, GstElement, GST_TYPE_ELEMENT); + +GST_DEBUG_CATEGORY_STATIC (gst_span_plc_debug); +#define GST_CAT_DEFAULT gst_span_plc_debug + + +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 = (bool) TRUE, " + "width = (int) 16, depth = (int) 16, " + "rate = (int) [ 1, MAX ], channels = (int) 1") + ); + +static GstStaticPadTemplate sink_factory = 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) 16, depth = (int) 16, " + "rate = (int) [ 1, MAX ], channels = (int) 1") + ); + +static void gst_span_plc_dispose (GObject * object); + +static GstStateChangeReturn gst_span_plc_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_span_plc_setcaps_sink (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_span_plc_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_span_plc_event_sink (GstPad * pad, GstEvent * event); + +static void +gst_span_plc_base_init (gpointer gclass) +{ + GstElementClass *element_class = (GstElementClass *) gclass; + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + + gst_element_class_set_details_simple (element_class, "SpanDSP PLC", + "Filter/Effect/Audio", + "Adds packet loss concealment to audio", + "Youness Alaoui "); +} + +/* initialize the plugin's class */ +static void +gst_span_plc_class_init (GstSpanPlcClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstElementClass *gstelement_class = (GstElementClass *) klass; + + gobject_class->dispose = gst_span_plc_dispose; + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_span_plc_change_state); + + GST_DEBUG_CATEGORY_INIT (gst_span_plc_debug, "spanplc", + 0, "spanDSP's packet loss concealment"); +} + +static void +gst_span_plc_init (GstSpanPlc * plc, GstSpanPlcClass * gclass) +{ + GST_DEBUG_OBJECT (plc, "init"); + + plc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + plc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + + gst_pad_set_setcaps_function (plc->sinkpad, + GST_DEBUG_FUNCPTR (gst_span_plc_setcaps_sink)); + + gst_pad_set_getcaps_function (plc->srcpad, + GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); + gst_pad_set_getcaps_function (plc->sinkpad, + GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); + + gst_pad_set_chain_function (plc->sinkpad, + GST_DEBUG_FUNCPTR (gst_span_plc_chain)); + + gst_pad_set_event_function (plc->sinkpad, + GST_DEBUG_FUNCPTR (gst_span_plc_event_sink)); + + gst_element_add_pad (GST_ELEMENT (plc), plc->srcpad); + gst_element_add_pad (GST_ELEMENT (plc), plc->sinkpad); + + plc->plc_state = NULL; + plc->last_stop = GST_CLOCK_TIME_NONE; + + GST_DEBUG_OBJECT (plc, "init complete"); +} + +static void +gst_span_plc_dispose (GObject * object) +{ + GstSpanPlc *plc = GST_SPAN_PLC (object); + + if (plc->plc_state) + plc_free (plc->plc_state); + plc->plc_state = NULL; + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static void +gst_span_plc_flush (GstSpanPlc * plc, gboolean renew) +{ + if (plc->plc_state) + plc_free (plc->plc_state); + if (renew) + plc->plc_state = plc_init (NULL); + else + plc->plc_state = NULL; + plc->last_stop = GST_CLOCK_TIME_NONE; +} + +static GstStateChangeReturn +gst_span_plc_change_state (GstElement * element, GstStateChange transition) +{ + GstSpanPlc *plc = GST_SPAN_PLC (element); + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + gst_span_plc_flush (plc, TRUE); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_span_plc_flush (plc, FALSE); + default: + break; + } + + return ret; +} + +static gboolean +gst_span_plc_setcaps_sink (GstPad * pad, GstCaps * caps) +{ + GstSpanPlc *plc = GST_SPAN_PLC (gst_pad_get_parent (pad)); + GstStructure *s = NULL; + gboolean ret = FALSE; + + ret = gst_pad_set_caps (plc->srcpad, caps); + s = gst_caps_get_structure (caps, 0); + if (s) { + gst_structure_get_int (s, "rate", &plc->sample_rate); + GST_DEBUG_OBJECT (plc, "setcaps: got sample rate : %d", plc->sample_rate); + } + + gst_span_plc_flush (plc, TRUE); + gst_object_unref (plc); + + return ret; +} + +static GstFlowReturn +gst_span_plc_chain (GstPad * pad, GstBuffer * buffer) +{ + GstSpanPlc *plc = GST_SPAN_PLC (GST_PAD_PARENT (pad)); + GstClockTime buffer_duration; + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) + plc->last_stop = GST_BUFFER_TIMESTAMP (buffer); + else + GST_WARNING_OBJECT (plc, "Buffer has no timestamp!"); + + if (GST_BUFFER_DURATION_IS_VALID (buffer)) { + buffer_duration = GST_BUFFER_DURATION (buffer); + } else { + GST_WARNING_OBJECT (plc, "Buffer has no duration!"); + buffer_duration = (GST_BUFFER_SIZE (buffer) / + (plc->sample_rate * sizeof (guint16))) * GST_SECOND; + GST_DEBUG_OBJECT (plc, "Buffer duration : %" GST_TIME_FORMAT, + GST_TIME_ARGS (buffer_duration)); + } + + plc->last_stop += buffer_duration; + + if (plc->plc_state->missing_samples != 0) + buffer = gst_buffer_make_writable (buffer); + plc_rx (plc->plc_state, (int16_t *) GST_BUFFER_DATA (buffer), + GST_BUFFER_SIZE (buffer) / 2); + + return gst_pad_push (plc->srcpad, buffer); +} + +static void +gst_span_plc_send_fillin (GstSpanPlc * plc, GstClockTime duration) +{ + guint buf_size; + GstBuffer *buffer = NULL; + + buf_size = ((float) duration / GST_SECOND) * plc->sample_rate; + buf_size *= sizeof (guint16); + buffer = gst_buffer_new_and_alloc (buf_size); + GST_DEBUG_OBJECT (plc, "Missing packet of %" GST_TIME_FORMAT + " == %d bytes", GST_TIME_ARGS (duration), buf_size); + plc_fillin (plc->plc_state, (int16_t *) GST_BUFFER_DATA (buffer), + GST_BUFFER_SIZE (buffer) / 2); + GST_BUFFER_TIMESTAMP (buffer) = plc->last_stop; + GST_BUFFER_DURATION (buffer) = duration; + gst_buffer_set_caps (buffer, GST_PAD_CAPS (plc->srcpad)); + gst_pad_push (plc->srcpad, buffer); +} + +static gboolean +gst_span_plc_event_sink (GstPad * pad, GstEvent * event) +{ + gboolean ret = FALSE; + GstSpanPlc *plc = GST_SPAN_PLC (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (plc, "received 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_event_parse_new_segment (event, &update, &rate, &format, &start, + &stop, &time); + + if (format != GST_FORMAT_TIME) + goto newseg_wrong_format; + + if (update) { + /* time progressed without data, see if we can fill the gap with + * some concealment data */ + if (plc->last_stop < start) + gst_span_plc_send_fillin (plc, start - plc->last_stop); + } + plc->last_stop = start; + break; + } + case GST_EVENT_FLUSH_START: + gst_span_plc_flush (plc, TRUE); + break; + default: + break; + } + ret = gst_pad_push_event (plc->srcpad, event); + + gst_object_unref (plc); + + return ret; +newseg_wrong_format: + { + GST_DEBUG_OBJECT (plc, "received non TIME newsegment"); + gst_object_unref (plc); + return FALSE; + } +} diff --git a/ext/spandsp/gstspanplc.h b/ext/spandsp/gstspanplc.h new file mode 100644 index 0000000..86c10ac --- /dev/null +++ b/ext/spandsp/gstspanplc.h @@ -0,0 +1,60 @@ +/* + * (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui + * + * 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_SPANDSP_H__ +#define __GST_SPANDSP_H__ + +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SPAN_PLC (gst_span_plc_get_type()) +#define GST_SPAN_PLC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SPAN_PLC,GstSpanPlc)) +#define GST_SPAN_PLC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SPAN_PLC,GstSpanPlcClass)) +#define GST_IS_SPAN_PLC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SPAN_PLC)) +#define GST_IS_SPAN_PLC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SPAN_PLC)) + +typedef struct _GstSpanPlc GstSpanPlc; +typedef struct _GstSpanPlcClass GstSpanPlcClass; + +struct _GstSpanPlc +{ + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + /* */ + plc_state_t *plc_state; + GstClockTime last_stop; + gint sample_rate; +}; + +struct _GstSpanPlcClass +{ + GstElementClass parent_class; +}; + +GType gst_span_plc_get_type (void); + +G_END_DECLS + +#endif diff --git a/ext/spc/Makefile.in b/ext/spc/Makefile.in index 080d31e..965693b 100644 --- a/ext/spc/Makefile.in +++ b/ext/spc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstspc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstspc_la_OBJECTS = libgstspc_la-gstspc.lo libgstspc_la-tag.lo libgstspc_la_OBJECTS = $(am_libgstspc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstspc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstspc_la_SOURCES) DIST_SOURCES = $(libgstspc_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstspc.la: $(libgstspc_la_OBJECTS) $(libgstspc_la_DEPENDENCIES) +libgstspc.la: $(libgstspc_la_OBJECTS) $(libgstspc_la_DEPENDENCIES) $(EXTRA_libgstspc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspc_la_LINK) -rpath $(plugindir) $(libgstspc_la_OBJECTS) $(libgstspc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,42 +641,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstspc_la-gstspc.lo: gstspc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -MT libgstspc_la-gstspc.lo -MD -MP -MF $(DEPDIR)/libgstspc_la-gstspc.Tpo -c -o libgstspc_la-gstspc.lo `test -f 'gstspc.c' || echo '$(srcdir)/'`gstspc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspc_la-gstspc.Tpo $(DEPDIR)/libgstspc_la-gstspc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspc.c' object='libgstspc_la-gstspc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspc.c' object='libgstspc_la-gstspc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -c -o libgstspc_la-gstspc.lo `test -f 'gstspc.c' || echo '$(srcdir)/'`gstspc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -c -o libgstspc_la-gstspc.lo `test -f 'gstspc.c' || echo '$(srcdir)/'`gstspc.c libgstspc_la-tag.lo: tag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -MT libgstspc_la-tag.lo -MD -MP -MF $(DEPDIR)/libgstspc_la-tag.Tpo -c -o libgstspc_la-tag.lo `test -f 'tag.c' || echo '$(srcdir)/'`tag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspc_la-tag.Tpo $(DEPDIR)/libgstspc_la-tag.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tag.c' object='libgstspc_la-tag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tag.c' object='libgstspc_la-tag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -c -o libgstspc_la-tag.lo `test -f 'tag.c' || echo '$(srcdir)/'`tag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspc_la_CFLAGS) $(CFLAGS) -c -o libgstspc_la-tag.lo `test -f 'tag.c' || echo '$(srcdir)/'`tag.c mostlyclean-libtool: -rm -f *.lo @@ -756,10 +778,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/spc/gstspc.c b/ext/spc/gstspc.c index 2c74a9c..fb85ca3 100644 --- a/ext/spc/gstspc.c +++ b/ext/spc/gstspc.c @@ -108,10 +108,8 @@ gst_spc_dec_base_init (gpointer g_class) "Uses OpenSPC to emulate an SPC processor", "Chris Lee , Brian Koropoff "); - 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_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); } static void @@ -169,6 +167,8 @@ gst_spc_dec_dispose (GObject * object) } spc_tag_free (&spc->tag_info); + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); } static GstFlowReturn diff --git a/ext/swfdec/Makefile.in b/ext/swfdec/Makefile.in index 1b5a51c..cda9b2c 100644 --- a/ext/swfdec/Makefile.in +++ b/ext/swfdec/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstswfdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstswfdec_la_OBJECTS = libgstswfdec_la-gstswfdec.lo libgstswfdec_la_OBJECTS = $(am_libgstswfdec_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstswfdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstswfdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstswfdec_la_SOURCES) DIST_SOURCES = $(libgstswfdec_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstswfdec.la: $(libgstswfdec_la_OBJECTS) $(libgstswfdec_la_DEPENDENCIES) +libgstswfdec.la: $(libgstswfdec_la_OBJECTS) $(libgstswfdec_la_DEPENDENCIES) $(EXTRA_libgstswfdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstswfdec_la_LINK) -rpath $(plugindir) $(libgstswfdec_la_OBJECTS) $(libgstswfdec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstswfdec_la-gstswfdec.lo: gstswfdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstswfdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstswfdec_la_CFLAGS) $(CFLAGS) -MT libgstswfdec_la-gstswfdec.lo -MD -MP -MF $(DEPDIR)/libgstswfdec_la-gstswfdec.Tpo -c -o libgstswfdec_la-gstswfdec.lo `test -f 'gstswfdec.c' || echo '$(srcdir)/'`gstswfdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstswfdec_la-gstswfdec.Tpo $(DEPDIR)/libgstswfdec_la-gstswfdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstswfdec.c' object='libgstswfdec_la-gstswfdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstswfdec.c' object='libgstswfdec_la-gstswfdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstswfdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstswfdec_la_CFLAGS) $(CFLAGS) -c -o libgstswfdec_la-gstswfdec.lo `test -f 'gstswfdec.c' || echo '$(srcdir)/'`gstswfdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstswfdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstswfdec_la_CFLAGS) $(CFLAGS) -c -o libgstswfdec_la-gstswfdec.lo `test -f 'gstswfdec.c' || echo '$(srcdir)/'`gstswfdec.c mostlyclean-libtool: -rm -f *.lo @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/swfdec/gstswfdec.c b/ext/swfdec/gstswfdec.c index 9394dde..43e06de 100644 --- a/ext/swfdec/gstswfdec.c +++ b/ext/swfdec/gstswfdec.c @@ -213,12 +213,12 @@ gst_swfdec_base_init (gpointer g_class) "Uses libswfdec to decode Flash video streams", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &video_template_factory); + gst_element_class_add_static_pad_template (element_class, + &audio_template_factory); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); } static void diff --git a/ext/teletextdec/Makefile.am b/ext/teletextdec/Makefile.am new file mode 100644 index 0000000..c153c56 --- /dev/null +++ b/ext/teletextdec/Makefile.am @@ -0,0 +1,10 @@ +plugin_LTLIBRARIES = libgstteletextdec.la + +libgstteletextdec_la_SOURCES = gstteletextdec.c teletext.c + +libgstteletextdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(TELETEXTDEC_CFLAGS) +libgstteletextdec_la_LIBADD = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_LIBS) $(TELETEXTDEC_LIBS) +libgstteletextdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstteletextdec_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstteletextdec.h diff --git a/ext/teletextdec/Makefile.in b/ext/teletextdec/Makefile.in new file mode 100644 index 0000000..b1c6fac --- /dev/null +++ b/ext/teletextdec/Makefile.in @@ -0,0 +1,893 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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/teletextdec +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstteletextdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstteletextdec_la_OBJECTS = \ + libgstteletextdec_la-gstteletextdec.lo \ + libgstteletextdec_la-teletext.lo +libgstteletextdec_la_OBJECTS = $(am_libgstteletextdec_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstteletextdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstteletextdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstteletextdec_la_CFLAGS) $(CFLAGS) \ + $(libgstteletextdec_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstteletextdec_la_SOURCES) +DIST_SOURCES = $(libgstteletextdec_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstteletextdec.la +libgstteletextdec_la_SOURCES = gstteletextdec.c teletext.c +libgstteletextdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(TELETEXTDEC_CFLAGS) +libgstteletextdec_la_LIBADD = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_LIBS) $(TELETEXTDEC_LIBS) +libgstteletextdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstteletextdec_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstteletextdec.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/teletextdec/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/teletextdec/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 +libgstteletextdec.la: $(libgstteletextdec_la_OBJECTS) $(libgstteletextdec_la_DEPENDENCIES) $(EXTRA_libgstteletextdec_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstteletextdec_la_LINK) -rpath $(plugindir) $(libgstteletextdec_la_OBJECTS) $(libgstteletextdec_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstteletextdec_la-gstteletextdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstteletextdec_la-teletext.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstteletextdec_la-gstteletextdec.lo: gstteletextdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstteletextdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstteletextdec_la_CFLAGS) $(CFLAGS) -MT libgstteletextdec_la-gstteletextdec.lo -MD -MP -MF $(DEPDIR)/libgstteletextdec_la-gstteletextdec.Tpo -c -o libgstteletextdec_la-gstteletextdec.lo `test -f 'gstteletextdec.c' || echo '$(srcdir)/'`gstteletextdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstteletextdec_la-gstteletextdec.Tpo $(DEPDIR)/libgstteletextdec_la-gstteletextdec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstteletextdec.c' object='libgstteletextdec_la-gstteletextdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstteletextdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstteletextdec_la_CFLAGS) $(CFLAGS) -c -o libgstteletextdec_la-gstteletextdec.lo `test -f 'gstteletextdec.c' || echo '$(srcdir)/'`gstteletextdec.c + +libgstteletextdec_la-teletext.lo: teletext.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstteletextdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstteletextdec_la_CFLAGS) $(CFLAGS) -MT libgstteletextdec_la-teletext.lo -MD -MP -MF $(DEPDIR)/libgstteletextdec_la-teletext.Tpo -c -o libgstteletextdec_la-teletext.lo `test -f 'teletext.c' || echo '$(srcdir)/'`teletext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstteletextdec_la-teletext.Tpo $(DEPDIR)/libgstteletextdec_la-teletext.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='teletext.c' object='libgstteletextdec_la-teletext.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstteletextdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstteletextdec_la_CFLAGS) $(CFLAGS) -c -o libgstteletextdec_la-teletext.lo `test -f 'teletext.c' || echo '$(srcdir)/'`teletext.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/teletextdec/gstteletextdec.c b/ext/teletextdec/gstteletextdec.c new file mode 100644 index 0000000..bd18267 --- /dev/null +++ b/ext/teletextdec/gstteletextdec.c @@ -0,0 +1,1239 @@ +/* + * GStreamer + * Copyright (C) 2009 Sebastian Pölsterl + * Copyright (C) 2010 Andoni Morales Alastruey + * + * This library 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.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +/** + * SECTION:element-teletextdec + * + * Decode PES stream containing teletext information to RGBA stream + * + * + * Example launch line + * |[ + * gst-launch -v -m filesrc location=recording.mpeg ! mpegtsdemux ! private/teletext ! teletextdec ! ffmpegcolorspace ! ximagesink + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include "gstteletextdec.h" + +GST_DEBUG_CATEGORY_STATIC (gst_teletextdec_debug); +#define GST_CAT_DEFAULT gst_teletextdec_debug + +#define SUBTITLES_PAGE 888 +#define MAX_SLICES 32 +#define DEFAULT_FONT_DESCRIPTION "verdana 12" +#define PANGO_TEMPLATE " %s \n" + +/* Filter signals and args */ +enum +{ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_PAGENO, + PROP_SUBNO, + PROP_SUBTITLES_MODE, + PROP_SUBS_TEMPLATE, + PROP_FONT_DESCRIPTION +}; + +enum +{ + VBI_ERROR = -1, + VBI_SUCCESS = 0, + VBI_NEW_FRAME = 1 +}; + +typedef enum +{ + DATA_UNIT_EBU_TELETEXT_NON_SUBTITLE = 0x02, + DATA_UNIT_EBU_TELETEXT_SUBTITLE = 0x03, + DATA_UNIT_EBU_TELETEXT_INVERTED = 0x0C, + + DATA_UNIT_ZVBI_WSS_CPR1204 = 0xB4, + DATA_UNIT_ZVBI_CLOSED_CAPTION_525 = 0xB5, + DATA_UNIT_ZVBI_MONOCHROME_SAMPLES_525 = 0xB6, + + DATA_UNIT_VPS = 0xC3, + DATA_UNIT_WSS = 0xC4, + DATA_UNIT_CLOSED_CAPTION = 0xC5, + DATA_UNIT_MONOCHROME_SAMPLES = 0xC6, + + DATA_UNIT_STUFFING = 0xFF, +} data_unit_id; + +typedef struct +{ + int pgno; + int subno; +} page_info; + +typedef enum +{ + SYSTEM_525 = 0, + SYSTEM_625 +} systems; + +/* + * ETS 300 706 Table 30: Colour Map + */ +static const gchar *default_color_map[40] = { + "#000000", "#FF0000", "#00FF00", "#FFFF00", "#0000FF", + "#FF00FF", "#00FFFF", "#FFFFFF", "#000000", "#770000", + "#007700", "#777700", "#000077", "#770077", "#007777", + "#777777", "#FF0055", "#FF7700", "#00FF77", "#FFFFBB", + "#00CCAA", "#550000", "#665522", "#CC7777", "#333333", + "#FF7777", "#77FF77", "#FFFF77", "#7777FF", "#FF77FF", + "#77FFFF", "#DDD0DD", + + /* Private colors */ + "#000000", "#FFAA99", "#44EE00", "#FFDD00", "#FFAA99", + "#FF00FF", "#00FFFF", "#EEEEEE" +}; + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ("video/mpeg,mpegversion=2,systemstream=TRUE ; private/teletext") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + (GST_VIDEO_CAPS_RGBA "; text/plain ; text/html ; text/x-pango-markup") + ); + +/* debug category for filtering log messages */ +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_teletextdec_debug, "teletext", 0, "Teletext decoder"); + +GST_BOILERPLATE_FULL (GstTeletextDec, gst_teletextdec, GstElement, + GST_TYPE_ELEMENT, DEBUG_INIT); + +static void gst_teletextdec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_teletextdec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_teletextdec_finalize (GObject * object); + +static GstStateChangeReturn gst_teletextdec_change_state (GstElement * element, + GstStateChange transition); + +static GstFlowReturn gst_teletextdec_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_teletextdec_sink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_teletextdec_sink_event (GstPad * pad, GstEvent * event); +static GstPadLinkReturn gst_teletextdec_src_set_caps (GstPad * pad, + GstCaps * caps); + +static vbi_bool gst_teletextdec_convert (vbi_dvb_demux * dx, gpointer user_data, + const vbi_sliced * sliced, guint n_lines, gint64 pts); +static void gst_teletextdec_event_handler (vbi_event * ev, void *user_data); + +static GstFlowReturn gst_teletextdec_push_page (GstTeletextDec * teletext); +static GstFlowReturn gst_teletextdec_export_text_page (GstTeletextDec * + teletext, vbi_page * page, GstBuffer ** buf); +static GstFlowReturn gst_teletextdec_export_html_page (GstTeletextDec * + teletext, vbi_page * page, GstBuffer ** buf); +static GstFlowReturn gst_teletextdec_export_rgba_page (GstTeletextDec * + teletext, vbi_page * page, GstBuffer ** buf); +static GstFlowReturn gst_teletextdec_export_pango_page (GstTeletextDec * + teletext, vbi_page * page, GstBuffer ** buf); + + +static gboolean gst_teletextdec_push_preroll_buffer (GstTeletextDec * teletext); +static void gst_teletextdec_process_telx_buffer (GstTeletextDec * teletext, + GstBuffer * buf); +static void gst_teletextdec_process_pes_buffer (GstTeletextDec * teletext, + GstBuffer * buf); +static gboolean gst_teletextdec_extract_data_units (GstTeletextDec * teletext, + GstTeletextFrame * f, guint8 * packet, guint * offset, gint size); + +static void gst_teletextdec_zvbi_init (GstTeletextDec * teletext); +static void gst_teletextdec_zvbi_clear (GstTeletextDec * teletext); + +/* GObject vmethod implementations */ + +static void +gst_teletextdec_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (element_class, + "Teletext decoder", + "Decoder", + "Decode PES or raw VBI stream containing teletext information to RGBA, HTML and text", + "Sebastian Pölsterl , " + "Andoni Morales Alastruey "); + + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); +} + +/* initialize the gstteletext's class */ +static void +gst_teletextdec_class_init (GstTeletextDecClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->set_property = gst_teletextdec_set_property; + gobject_class->get_property = gst_teletextdec_get_property; + gobject_class->finalize = gst_teletextdec_finalize; + + gstelement_class = GST_ELEMENT_CLASS (klass); + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_teletextdec_change_state); + + g_object_class_install_property (gobject_class, PROP_PAGENO, + g_param_spec_int ("page", "Page number", + "Number of page that should displayed", + 100, 999, 100, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_SUBNO, + g_param_spec_int ("subpage", "Sub-page number", + "Number of sub-page that should displayed (-1 for all)", + -1, 0x99, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_SUBTITLES_MODE, + g_param_spec_boolean ("subtitles-mode", "Enable subtitles mode", + "Enables subtitles mode for text output stripping the blank lines and " + "the teletext state lines", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_SUBS_TEMPLATE, + g_param_spec_string ("subtitles-template", "Subtitles output template", + "Output template used to print each one of the subtitles lines", + g_strescape ("%s\n", NULL), + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_FONT_DESCRIPTION, + g_param_spec_string ("font-description", "Pango font description", + "Font description used for the pango output.", + DEFAULT_FONT_DESCRIPTION, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/* initialize the new element + * initialize instance structure + */ +static void +gst_teletextdec_init (GstTeletextDec * teletext, GstTeletextDecClass * klass) +{ + /* Create sink pad */ + teletext->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_setcaps_function (teletext->sinkpad, + GST_DEBUG_FUNCPTR (gst_teletextdec_sink_setcaps)); + gst_pad_set_chain_function (teletext->sinkpad, + GST_DEBUG_FUNCPTR (gst_teletextdec_chain)); + gst_pad_set_event_function (teletext->sinkpad, + GST_DEBUG_FUNCPTR (gst_teletextdec_sink_event)); + gst_element_add_pad (GST_ELEMENT (teletext), teletext->sinkpad); + + /* Create src pad */ + teletext->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_set_setcaps_function (teletext->srcpad, + GST_DEBUG_FUNCPTR (gst_teletextdec_src_set_caps)); + gst_element_add_pad (GST_ELEMENT (teletext), teletext->srcpad); + + teletext->demux = NULL; + teletext->decoder = NULL; + teletext->pageno = 0x100; + teletext->subno = -1; + teletext->subtitles_mode = FALSE; + teletext->subtitles_template = g_strescape ("%s\n", NULL); + teletext->font_description = g_strdup (DEFAULT_FONT_DESCRIPTION); + + teletext->in_timestamp = GST_CLOCK_TIME_NONE; + teletext->in_duration = GST_CLOCK_TIME_NONE; + + teletext->rate_numerator = 0; + teletext->rate_denominator = 1; + + teletext->queue = NULL; + teletext->queue_lock = g_mutex_new (); + + teletext->frame = g_new0 (GstTeletextFrame, 1); + teletext->frame->sliced_begin = g_new (vbi_sliced, MAX_SLICES); + + teletext->last_ts = 0; + + teletext->process_buf_func = NULL; +} + +static void +gst_teletextdec_finalize (GObject * object) +{ + GstTeletextDec *teletext = GST_TELETEXTDEC (object); + + g_mutex_free (teletext->queue_lock); + + g_free (teletext->frame); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_teletextdec_zvbi_init (GstTeletextDec * teletext) +{ + g_return_if_fail (teletext != NULL); + + GST_LOG_OBJECT (teletext, "Initializing structures"); + + teletext->decoder = vbi_decoder_new (); + + vbi_event_handler_register (teletext->decoder, + VBI_EVENT_TTX_PAGE | VBI_EVENT_CAPTION, + gst_teletextdec_event_handler, teletext); + + g_mutex_lock (teletext->queue_lock); + teletext->queue = g_queue_new (); + g_mutex_unlock (teletext->queue_lock); +} + +static void +gst_teletextdec_zvbi_clear (GstTeletextDec * teletext) +{ + g_return_if_fail (teletext != NULL); + + GST_LOG_OBJECT (teletext, "Clearing structures"); + + if (teletext->demux != NULL) { + vbi_dvb_demux_delete (teletext->demux); + teletext->demux = NULL; + } + if (teletext->decoder != NULL) { + vbi_decoder_delete (teletext->decoder); + teletext->decoder = NULL; + } + if (teletext->frame != NULL) { + g_free (teletext->frame); + teletext->frame = NULL; + } + + g_mutex_lock (teletext->queue_lock); + if (teletext->queue != NULL) { + g_queue_free (teletext->queue); + teletext->queue = NULL; + } + g_mutex_unlock (teletext->queue_lock); + + teletext->in_timestamp = GST_CLOCK_TIME_NONE; + teletext->in_duration = GST_CLOCK_TIME_NONE; + teletext->pageno = 0x100; + teletext->subno = -1; + teletext->last_ts = 0; +} + +static void +gst_teletextdec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstTeletextDec *teletext = GST_TELETEXTDEC (object); + + switch (prop_id) { + case PROP_PAGENO: + teletext->pageno = (gint) vbi_bin2bcd (g_value_get_int (value)); + break; + case PROP_SUBNO: + teletext->subno = g_value_get_int (value); + break; + case PROP_SUBTITLES_MODE: + teletext->subtitles_mode = g_value_get_boolean (value); + break; + case PROP_SUBS_TEMPLATE: + teletext->subtitles_template = g_value_dup_string (value); + break; + case PROP_FONT_DESCRIPTION: + teletext->font_description = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_teletextdec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstTeletextDec *teletext = GST_TELETEXTDEC (object); + + switch (prop_id) { + case PROP_PAGENO: + g_value_set_int (value, (gint) vbi_bcd2dec (teletext->pageno)); + break; + case PROP_SUBNO: + g_value_set_int (value, teletext->subno); + break; + case PROP_SUBTITLES_MODE: + g_value_set_boolean (value, teletext->subtitles_mode); + break; + case PROP_SUBS_TEMPLATE: + g_value_set_string (value, teletext->subtitles_template); + break; + case PROP_FONT_DESCRIPTION: + g_value_set_string (value, teletext->font_description); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_teletextdec_sink_event (GstPad * pad, GstEvent * event) +{ + gboolean ret; + GstTeletextDec *teletext = GST_TELETEXTDEC (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (teletext, "got event %s", + gst_event_type_get_name (GST_EVENT_TYPE (event))); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + /* maybe save and/or update the current segment (e.g. for output + * clipping) or convert the event into one in a different format + * (e.g. BYTES to TIME) or drop it and set a flag to send a newsegment + * event in a different format later */ + ret = gst_pad_push_event (teletext->srcpad, event); + break; + case GST_EVENT_EOS: + /* end-of-stream, we should close down all stream leftovers here */ + gst_teletextdec_zvbi_clear (teletext); + ret = gst_pad_push_event (teletext->srcpad, event); + break; + case GST_EVENT_FLUSH_STOP: + gst_teletextdec_zvbi_clear (teletext); + gst_teletextdec_zvbi_init (teletext); + ret = gst_pad_push_event (teletext->srcpad, event); + break; + default: + ret = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (teletext); + + return ret; +} + +static GstStateChangeReturn +gst_teletextdec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstTeletextDec *teletext; + + teletext = GST_TELETEXTDEC (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_teletextdec_zvbi_init (teletext); + 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: + gst_teletextdec_zvbi_clear (teletext); + break; + default: + break; + } + + return ret; +} + +static gboolean +gst_teletextdec_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstTeletextDec *teletext = GST_TELETEXTDEC (gst_pad_get_parent (pad)); + GstStructure *structure = gst_caps_get_structure (caps, 0); + const gchar *mimetype = gst_structure_get_name (structure); + + GST_DEBUG_OBJECT (teletext, "%s:%s, caps=%" GST_PTR_FORMAT, + GST_DEBUG_PAD_NAME (pad), caps); + + if (g_strcmp0 (mimetype, "private/teletext") == 0) { + teletext->process_buf_func = gst_teletextdec_process_telx_buffer; + goto accept_caps; + } else if (g_strcmp0 (mimetype, "video/mpeg") == 0) { + gint version; + gboolean is_systemstream; + + if (!gst_structure_get_int (structure, "mpegversion", &version) || + !gst_structure_get_boolean (structure, "systemstream", + &is_systemstream)) + goto refuse_caps; + + if (version != 2 || !is_systemstream) + goto refuse_caps; + + teletext->process_buf_func = gst_teletextdec_process_pes_buffer; + teletext->demux = vbi_dvb_pes_demux_new (gst_teletextdec_convert, teletext); + goto accept_caps; + } else + goto refuse_caps; + +accept_caps: + { + gst_object_unref (teletext); + return gst_teletextdec_push_preroll_buffer (teletext); + } + +refuse_caps: + { + GST_ERROR_OBJECT (teletext, + "pad %s refused renegotiation to %" GST_PTR_FORMAT, + GST_PAD_NAME (pad), caps); + gst_object_unref (teletext); + return FALSE; + } +} + +static gboolean +gst_teletextdec_src_set_caps (GstPad * pad, GstCaps * caps) +{ + GstTeletextDec *teletext; + GstStructure *structure = NULL; + const gchar *mimetype; + GstPad *peer; + + teletext = GST_TELETEXTDEC (gst_pad_get_parent (pad)); + GST_DEBUG_OBJECT (teletext, "Linking teletext source pad"); + + if (gst_caps_is_empty (caps)) { + GST_ERROR_OBJECT (teletext, + "pad %s refused renegotiation to %" GST_PTR_FORMAT, + GST_PAD_NAME (pad), caps); + goto refuse_caps; + } + + peer = gst_pad_get_peer (pad); + if (peer) { + gst_pad_set_caps (peer, caps); + gst_object_unref (peer); + } + + structure = gst_caps_get_structure (caps, 0); + mimetype = gst_structure_get_name (structure); + + if (g_strcmp0 (mimetype, "video/x-raw-rgb") == 0) { + teletext->output_format = GST_TELETEXTDEC_OUTPUT_FORMAT_RGBA; + GST_DEBUG_OBJECT (teletext, "Selected RGBA output format"); + } else if (g_strcmp0 (mimetype, "text/html") == 0) { + teletext->output_format = GST_TELETEXTDEC_OUTPUT_FORMAT_HTML; + GST_DEBUG_OBJECT (teletext, "Selected HTML output format"); + } else if (g_strcmp0 (mimetype, "text/plain") == 0) { + teletext->output_format = GST_TELETEXTDEC_OUTPUT_FORMAT_TEXT; + GST_DEBUG_OBJECT (teletext, "Selected text output format"); + } else if (g_strcmp0 (mimetype, "text/x-pango-markup") == 0) { + teletext->output_format = GST_TELETEXTDEC_OUTPUT_FORMAT_PANGO; + GST_DEBUG_OBJECT (teletext, "Selected pango markup output format"); + } else + goto refuse_caps; + + gst_object_unref (teletext); + return TRUE; + + +refuse_caps: + { + gst_object_unref (teletext); + return FALSE; + } +} + +static void +gst_teletextdec_reset_frame (GstTeletextDec * teletext) +{ + teletext->frame->current_slice = teletext->frame->sliced_begin; + teletext->frame->sliced_end = teletext->frame->sliced_begin + MAX_SLICES; + teletext->frame->last_field = 0; + teletext->frame->last_field_line = 0; + teletext->frame->last_frame_line = 0; +} + +static void +gst_teletextdec_process_pes_buffer (GstTeletextDec * teletext, GstBuffer * buf) +{ + vbi_dvb_demux_feed (teletext->demux, GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)); + return; +} + +static void +gst_teletextdec_process_telx_buffer (GstTeletextDec * teletext, GstBuffer * buf) +{ + guint8 *data = GST_BUFFER_DATA (buf); + const gint size = GST_BUFFER_SIZE (buf); + guint offset = 0; + gint res; + + teletext->in_timestamp = GST_BUFFER_TIMESTAMP (buf); + teletext->in_duration = GST_BUFFER_DURATION (buf); + + if (teletext->frame == NULL) { + gst_teletextdec_reset_frame (teletext); + } + + while (offset < size) { + res = + gst_teletextdec_extract_data_units (teletext, teletext->frame, data, + &offset, size); + + if (res == VBI_NEW_FRAME) { + /* We have a new frame, it's time to feed the decoder */ + vbi_sliced *s; + gint n_lines; + + n_lines = teletext->frame->current_slice - teletext->frame->sliced_begin; + GST_LOG_OBJECT (teletext, "Completed frame, decoding new %d lines", + n_lines); + s = g_memdup (teletext->frame->sliced_begin, + n_lines * sizeof (vbi_sliced)); + vbi_decode (teletext->decoder, s, n_lines, teletext->last_ts); + /* From vbi_decode(): + * timestamp shall advance by 1/30 to 1/25 seconds whenever calling this + * function. Failure to do so will be interpreted as frame dropping, which + * starts a resynchronization cycle, eventually a channel switch may be assumed + * which resets even more decoder state. So even if a frame did not contain + * any useful data this function must be called, with lines set to zero. + */ + teletext->last_ts += 0.04; + + g_free (s); + gst_teletextdec_reset_frame (teletext); + } else if (res == VBI_ERROR) { + gst_teletextdec_reset_frame (teletext); + return; + } + } + return; +} + +static vbi_bool +gst_teletextdec_convert (vbi_dvb_demux * dx, + gpointer user_data, const vbi_sliced * sliced, guint n_lines, gint64 pts) +{ + gdouble sample_time; + vbi_sliced *s; + + GstTeletextDec *teletext = GST_TELETEXTDEC (user_data); + + GST_DEBUG_OBJECT (teletext, "Converting %u lines to decode", n_lines); + + sample_time = pts * (1 / 90000.0); + + s = g_memdup (sliced, n_lines * sizeof (vbi_sliced)); + vbi_decode (teletext->decoder, s, n_lines, sample_time); + g_free (s); + + return GST_FLOW_OK; +} + +static void +gst_teletextdec_event_handler (vbi_event * ev, void *user_data) +{ + page_info *pi; + vbi_pgno pgno; + vbi_subno subno; + + GstTeletextDec *teletext = GST_TELETEXTDEC (user_data); + + switch (ev->type) { + case VBI_EVENT_TTX_PAGE: + pgno = ev->ev.ttx_page.pgno; + subno = ev->ev.ttx_page.subno; + + if (pgno != teletext->pageno + || (teletext->subno != -1 && subno != teletext->subno)) + return; + + GST_DEBUG_OBJECT (teletext, "Received teletext page %03d.%02d", + (gint) vbi_bcd2dec (pgno), (gint) vbi_bcd2dec (subno)); + + pi = g_new (page_info, 1); + pi->pgno = pgno; + pi->subno = subno; + + g_mutex_lock (teletext->queue_lock); + g_queue_push_tail (teletext->queue, pi); + g_mutex_unlock (teletext->queue_lock); + break; + case VBI_EVENT_CAPTION: + /* TODO: Handle subtitles in caption teletext pages */ + GST_DEBUG_OBJECT (teletext, "Received caption page. Not implemented"); + break; + default: + break; + } + return; +} + +/* this function does the actual processing + */ +static GstFlowReturn +gst_teletextdec_chain (GstPad * pad, GstBuffer * buf) +{ + GstTeletextDec *teletext = GST_TELETEXTDEC (GST_PAD_PARENT (pad)); + GstFlowReturn ret = GST_FLOW_OK; + + teletext->in_timestamp = GST_BUFFER_TIMESTAMP (buf); + teletext->in_duration = GST_BUFFER_DURATION (buf); + + teletext->process_buf_func (teletext, buf); + gst_buffer_unref (buf); + + g_mutex_lock (teletext->queue_lock); + if (!g_queue_is_empty (teletext->queue)) { + ret = gst_teletextdec_push_page (teletext); + if (ret != GST_FLOW_OK) { + g_mutex_unlock (teletext->queue_lock); + goto error; + } + } + g_mutex_unlock (teletext->queue_lock); + + return ret; + +/* ERRORS */ +error: + { + if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED + && ret != GST_FLOW_WRONG_STATE) { + GST_ELEMENT_ERROR (teletext, STREAM, FAILED, + ("Internal data stream error."), ("stream stopped, reason %s", + gst_flow_get_name (ret))); + return GST_FLOW_ERROR; + } + return ret; + } +} + +static GstFlowReturn +gst_teletextdec_push_page (GstTeletextDec * teletext) +{ + GstFlowReturn ret = GST_FLOW_OK; + GstBuffer *buf; + vbi_page page; + page_info *pi; + gint pgno, subno; + gboolean success; + + pi = (page_info *) g_queue_pop_head (teletext->queue); + + pgno = vbi_bcd2dec (pi->pgno); + subno = vbi_bcd2dec (pi->subno); + + GST_INFO_OBJECT (teletext, "Fetching teletext page %03d.%02d", pgno, subno); + + success = vbi_fetch_vt_page (teletext->decoder, &page, pi->pgno, pi->subno, + VBI_WST_LEVEL_3p5, 25, FALSE); + if (G_UNLIKELY (!success)) + goto fetch_page_failed; + + switch (teletext->output_format) { + case GST_TELETEXTDEC_OUTPUT_FORMAT_TEXT: + ret = gst_teletextdec_export_text_page (teletext, &page, &buf); + break; + case GST_TELETEXTDEC_OUTPUT_FORMAT_HTML: + ret = gst_teletextdec_export_html_page (teletext, &page, &buf); + break; + case GST_TELETEXTDEC_OUTPUT_FORMAT_RGBA: + ret = gst_teletextdec_export_rgba_page (teletext, &page, &buf); + break; + case GST_TELETEXTDEC_OUTPUT_FORMAT_PANGO: + ret = gst_teletextdec_export_pango_page (teletext, &page, &buf); + break; + default: + g_assert_not_reached (); + break; + } + vbi_unref_page (&page); + g_free (pi); + + if (ret != GST_FLOW_OK) + goto alloc_failed; + + GST_BUFFER_TIMESTAMP (buf) = teletext->in_timestamp; + GST_BUFFER_DURATION (buf) = teletext->in_duration; + + GST_INFO_OBJECT (teletext, "Pushing buffer of size %d", + GST_BUFFER_SIZE (buf)); + + ret = gst_pad_push (teletext->srcpad, buf); + if (ret != GST_FLOW_OK) + goto push_failed; + + return GST_FLOW_OK; + +fetch_page_failed: + { + GST_ELEMENT_ERROR (teletext, RESOURCE, READ, (NULL), (NULL)); + return GST_FLOW_ERROR; + } + +alloc_failed: + { + GST_ERROR_OBJECT (teletext, "Error allocating output buffer, reason %s", + gst_flow_get_name (ret)); + return ret; + } + +push_failed: + { + GST_ERROR_OBJECT (teletext, "Pushing buffer failed, reason %s", + gst_flow_get_name (ret)); + return ret; + } +} + +static gchar ** +gst_teletextdec_vbi_page_to_text_lines (GstTeletextDec * teletext, + guint start, guint stop, vbi_page * page) +{ + const guint lines_count = stop - start + 1; + const guint line_length = page->columns; + gchar **lines; + gint i; + + /* allocate a new NULL-terminated array of strings */ + lines = (gchar **) g_malloc (sizeof (gchar *) * (lines_count + 1)); + lines[lines_count] = g_strdup ('\0'); + + /* export each line in the range of the teletext page in text format */ + for (i = start; i <= stop; i++) { + lines[i - start] = (gchar *) g_malloc (sizeof (gchar) * (line_length + 1)); + vbi_print_page_region (page, lines[i - start], line_length + 1, "UTF-8", + TRUE, 0, 0, i, line_length, 1); + /* Add the null character */ + lines[i - start][line_length] = '\0'; + } + + return lines; +} + +static GstFlowReturn +gst_teletextdec_export_text_page (GstTeletextDec * teletext, vbi_page * page, + GstBuffer ** buf) +{ + GstCaps *caps; + GstFlowReturn ret; + gchar *text; + guint size; + + if (teletext->subtitles_mode) { + gchar **lines; + GString *subs; + guint i; + + lines = gst_teletextdec_vbi_page_to_text_lines (teletext, 1, 23, page); + subs = g_string_new (""); + /* Strip white spaces and squash blank lines */ + for (i = 0; i < 23; i++) { + g_strstrip (lines[i]); + if (g_strcmp0 (lines[i], "")) + g_string_append_printf (subs, teletext->subtitles_template, lines[i]); + } + /* if the page is blank and doesn't contain any line of text, just add a + * line break */ + if (!g_strcmp0 (subs->str, "")) + g_string_append (subs, "\n"); + + text = subs->str; + size = subs->len + 1; + g_string_free (subs, FALSE); + g_strfreev (lines); + } else { + size = page->columns * page->rows; + text = g_malloc (size); + vbi_print_page (page, text, size, "UTF-8", FALSE, TRUE); + } + + /* Allocate new buffer */ + caps = gst_caps_new_simple ("text/plain", NULL); + ret = gst_pad_alloc_buffer (teletext->srcpad, GST_BUFFER_OFFSET_NONE, + size, caps, &(*buf)); + if (G_LIKELY (ret == GST_FLOW_OK)) + GST_BUFFER_DATA (*buf) = GST_BUFFER_MALLOCDATA (*buf) = (guint8 *) text; + else + gst_buffer_unref (*buf); + + gst_caps_unref (caps); + return ret; +} + +static GstFlowReturn +gst_teletextdec_export_html_page (GstTeletextDec * teletext, vbi_page * page, + GstBuffer ** buf) +{ + GstCaps *caps; + GstFlowReturn ret; + gchar *html; + guint size; + vbi_export *ex; + gchar *err; + + if (!(ex = vbi_export_new ("html", &err))) { + GST_ELEMENT_ERROR (teletext, LIBRARY, SETTINGS, + ("Can't open the HTML export module: %s", err), (NULL)); + g_free (err); + return GST_FLOW_ERROR; + } + + /* export to NULL to get size of the memory needed to allocate the page */ + size = vbi_export_mem (ex, NULL, 0, page); + if (size < 0) + return GST_FLOW_ERROR; + html = g_malloc (size); + vbi_export_mem (ex, html, size, page); + + /* Allocate new buffer */ + caps = gst_caps_new_simple ("text/html", NULL); + ret = gst_pad_alloc_buffer (teletext->srcpad, GST_BUFFER_OFFSET_NONE, + size, caps, &(*buf)); + if (G_LIKELY (ret == GST_FLOW_OK)) + GST_BUFFER_DATA (*buf) = GST_BUFFER_MALLOCDATA (*buf) = (guint8 *) html; + + gst_caps_unref (caps); + return ret; +} + +static GstFlowReturn +gst_teletextdec_export_rgba_page (GstTeletextDec * teletext, vbi_page * page, + GstBuffer ** buf) +{ + guint size; + GstCaps *caps, *out_caps; + GstFlowReturn ret; + gint width, height; + GstPadTemplate *templ; + + /* one character occupies 12 x 10 pixels */ + width = page->columns * 12; + height = page->rows * 10; + + caps = gst_caps_new_simple ("video/x-raw-rgb", + "width", G_TYPE_INT, width, + "height", G_TYPE_INT, height, + "framerate", GST_TYPE_FRACTION, teletext->rate_numerator, + teletext->rate_denominator, NULL); + + templ = gst_static_pad_template_get (&src_template); + out_caps = gst_caps_intersect (caps, gst_pad_template_get_caps (templ)); + gst_caps_unref (caps); + gst_object_unref (templ); + + size = (guint) width *(guint) height *sizeof (vbi_rgba); + + ret = gst_pad_alloc_buffer_and_set_caps (teletext->srcpad, + GST_BUFFER_OFFSET_NONE, size, out_caps, &(*buf)); + + if (ret == GST_FLOW_OK) { + GST_DEBUG_OBJECT (teletext, "Creating image with %d rows and %d cols", + page->rows, page->columns); + vbi_draw_vt_page (page, VBI_PIXFMT_RGBA32_LE, + (vbi_rgba *) GST_BUFFER_DATA (*buf), FALSE, TRUE); + } + + gst_caps_unref (out_caps); + return ret; +} + +static GstFlowReturn +gst_teletextdec_export_pango_page (GstTeletextDec * teletext, vbi_page * page, + GstBuffer ** buf) +{ + vbi_char *acp; + const guint rows = page->rows; + gchar **colors; + gchar **lines; + GString *subs; + GstCaps *caps; + GstFlowReturn ret; + guint start, stop; + guint i, j; + + colors = (gchar **) g_malloc (sizeof (gchar *) * (rows + 1)); + colors[rows] = g_strdup ('\0'); + + /* parse all the lines and approximate it's foreground color using the first + * non null character */ + for (acp = page->text, i = 0; i < page->rows; acp += page->columns, i++) { + for (j = 0; j < page->columns; j++) { + colors[i] = g_strdup (default_color_map[7]); + if (acp[j].unicode != 0x20) { + colors[i] = g_strdup (default_color_map[acp[j].foreground]); + break; + } + } + } + + /* get an array of strings with each line of the telext page */ + start = teletext->subtitles_mode ? 1 : 0; + stop = teletext->subtitles_mode ? rows - 2 : rows - 1; + lines = gst_teletextdec_vbi_page_to_text_lines (teletext, start, stop, page); + + /* format each line in pango markup */ + subs = g_string_new (""); + for (i = start; i <= stop; i++) { + g_string_append_printf (subs, PANGO_TEMPLATE, + teletext->font_description, colors[i], lines[i - start]); + } + + /* Allocate new buffer */ + caps = gst_caps_new_simple ("text/x-pango-markup", NULL); + ret = gst_pad_alloc_buffer (teletext->srcpad, GST_BUFFER_OFFSET_NONE, + subs->len + 1, caps, &(*buf)); + if (G_LIKELY (ret == GST_FLOW_OK)) + GST_BUFFER_DATA (*buf) = GST_BUFFER_MALLOCDATA (*buf) = + (guint8 *) subs->str; + else + gst_buffer_unref (*buf); + + g_strfreev (lines); + g_strfreev (colors); + g_string_free (subs, FALSE); + gst_caps_unref (caps); + return ret; +} + +static gboolean +gst_teletextdec_push_preroll_buffer (GstTeletextDec * teletext) +{ + GstFlowReturn ret; + GstBuffer *buf; + gboolean res = TRUE; + GstStructure *structure; + const gchar *mimetype; + GstCaps *out_caps, *peer_caps, *pad_caps; + + /* the stream is sparse, we send a dummy buffer for preroll */ + peer_caps = gst_pad_peer_get_caps (teletext->srcpad); + pad_caps = gst_pad_get_caps (teletext->srcpad); + out_caps = gst_caps_intersect (pad_caps, peer_caps); + + if (gst_caps_is_empty (out_caps)) { + res = FALSE; + goto beach; + } + + gst_caps_truncate (out_caps); + structure = gst_caps_get_structure (out_caps, 0); + mimetype = gst_structure_get_name (structure); + if (g_strcmp0 (mimetype, "video/x-raw-rgb") == 0) { + /* omit preroll buffer for this format */ + goto beach; + } + + buf = gst_buffer_new_and_alloc (1); + GST_BUFFER_DATA (buf)[0] = 0; + gst_buffer_set_caps (buf, out_caps); + ret = gst_pad_push (teletext->srcpad, buf); + if (ret != GST_FLOW_OK) + res = FALSE; + +beach: + { + gst_caps_unref (out_caps); + gst_caps_unref (pad_caps); + gst_caps_unref (peer_caps); + return res; + } +} + + +/* Converts the line_offset / field_parity byte of a VBI data unit. */ +static void +gst_teletextdec_lofp_to_line (guint * field, guint * field_line, + guint * frame_line, guint lofp, systems system) +{ + guint line_offset; + + /* field_parity */ + *field = !(lofp & (1 << 5)); + + line_offset = lofp & 31; + + if (line_offset > 0) { + static const guint field_start[2][2] = { + {0, 263}, + {0, 313}, + }; + + *field_line = line_offset; + *frame_line = field_start[system][*field] + line_offset; + } else { + *field_line = 0; + *frame_line = 0; + } +} + +static int +gst_teletextdec_line_address (GstTeletextDec * teletext, + GstTeletextFrame * frame, vbi_sliced ** spp, guint lofp, systems system) +{ + guint field; + guint field_line; + guint frame_line; + + if (G_UNLIKELY (frame->current_slice >= frame->sliced_end)) { + GST_LOG_OBJECT (teletext, "Out of sliced VBI buffer space (%d lines).", + (int) (frame->sliced_end - frame->sliced_begin)); + return VBI_ERROR; + } + + gst_teletextdec_lofp_to_line (&field, &field_line, &frame_line, lofp, system); + + GST_LOG_OBJECT (teletext, "Line %u/%u=%u.", field, field_line, frame_line); + + if (frame_line != 0) { + GST_LOG_OBJECT (teletext, "Last frame Line %u.", frame->last_frame_line); + if (frame_line <= frame->last_frame_line) { + GST_LOG_OBJECT (teletext, "New frame"); + return VBI_NEW_FRAME; + } + + /* new segment flag */ + if (lofp < 0) { + GST_LOG_OBJECT (teletext, "New frame"); + return VBI_NEW_FRAME; + } + + frame->last_field = field; + frame->last_field_line = field_line; + frame->last_frame_line = frame_line; + + *spp = frame->current_slice++; + (*spp)->line = frame_line; + } else { + /* Undefined line. */ + return VBI_ERROR; + } + + return VBI_SUCCESS; +} + +static gboolean +gst_teletextdec_extract_data_units (GstTeletextDec * teletext, + GstTeletextFrame * f, guint8 * packet, guint * offset, gint size) +{ + guint8 *data_unit; + guint i; + + while (*offset < size) { + vbi_sliced *s = NULL; + gint data_unit_id, data_unit_length; + + data_unit = packet + *offset; + data_unit_id = data_unit[0]; + data_unit_length = data_unit[1]; + GST_LOG_OBJECT (teletext, "vbi header %02x %02x %02x\n", data_unit[0], + data_unit[1], data_unit[2]); + + switch (data_unit_id) { + case DATA_UNIT_STUFFING: + { + *offset += 2 + data_unit_length; + break; + } + + case DATA_UNIT_EBU_TELETEXT_NON_SUBTITLE: + case DATA_UNIT_EBU_TELETEXT_SUBTITLE: + { + gint res; + + if (G_UNLIKELY (data_unit_length != 1 + 1 + 42)) { + /* Skip this data unit */ + GST_WARNING_OBJECT (teletext, "The data unit length is not 44 bytes"); + *offset += 2 + data_unit_length; + break; + } + + res = + gst_teletextdec_line_address (teletext, f, &s, data_unit[2], + SYSTEM_625); + if (G_UNLIKELY (res == VBI_ERROR)) { + /* Can't retrieve line address, skip this data unit */ + GST_WARNING_OBJECT (teletext, + "Could not retrieve line address for this data unit"); + return VBI_ERROR; + } + if (G_UNLIKELY (f->last_field_line > 0 + && (f->last_field_line - 7 >= 23 - 7))) { + GST_WARNING_OBJECT (teletext, "Bad line: %d", f->last_field_line - 7); + return VBI_ERROR; + } + if (res == VBI_NEW_FRAME) { + /* New frame */ + return VBI_NEW_FRAME; + } + s->id = VBI_SLICED_TELETEXT_B; + for (i = 0; i < 42; i++) + s->data[i] = vbi_rev8 (data_unit[4 + i]); + *offset += 46; + break; + } + + case DATA_UNIT_ZVBI_WSS_CPR1204: + case DATA_UNIT_ZVBI_CLOSED_CAPTION_525: + case DATA_UNIT_ZVBI_MONOCHROME_SAMPLES_525: + case DATA_UNIT_VPS: + case DATA_UNIT_WSS: + case DATA_UNIT_CLOSED_CAPTION: + case DATA_UNIT_MONOCHROME_SAMPLES: + { + /*Not supported yet */ + *offset += 2 + data_unit_length; + break; + } + + default: + { + /* corrupted stream, increase the offset by one until we sync */ + GST_LOG_OBJECT (teletext, "Corrupted, increasing offset by one"); + *offset += 1; + break; + } + } + } + return VBI_SUCCESS; +} diff --git a/ext/teletextdec/gstteletextdec.h b/ext/teletextdec/gstteletextdec.h new file mode 100644 index 0000000..460793d --- /dev/null +++ b/ext/teletextdec/gstteletextdec.h @@ -0,0 +1,107 @@ +/* + * GStreamer + * Copyright (C) 2009 Sebastian Pölsterl + * Copyright (C) 2010 Andoni Morales Alastruey + * + * This library is free software; you can redistribute it and/or + * mod1ify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifndef __GST_TELETEXTDEC_H__ +#define __GST_TELETEXTDEC_H__ + +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_TELETEXTDEC \ + (gst_teletextdec_get_type()) +#define GST_TELETEXTDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TELETEXTDEC,GstTeletextDec)) +#define GST_TELETEXTDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TELETEXTDEC,GstTeletextDecClass)) +#define GST_IS_TELETEXTDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TELETEXTDEC)) +#define GST_IS_TELETEXTDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TELETEXTDEC)) +typedef struct _GstTeletextDec GstTeletextDec; +typedef struct _GstTeletextDecClass GstTeletextDecClass; +typedef struct _GstTeletextFrame GstTeletextFrame; +typedef enum _GstTeletextOutputFormat GstTeletextOutputFormat; + +enum _GstTeletextOutputFormat +{ + GST_TELETEXTDEC_OUTPUT_FORMAT_RGBA, + GST_TELETEXTDEC_OUTPUT_FORMAT_TEXT, + GST_TELETEXTDEC_OUTPUT_FORMAT_HTML, + GST_TELETEXTDEC_OUTPUT_FORMAT_PANGO +}; + +typedef void (*GstTeletextProcessBufferFunc) (GstTeletextDec * + teletext, GstBuffer * buf); + +struct _GstTeletextDec +{ + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + GstClockTime in_timestamp; + GstClockTime in_duration; + gint rate_numerator; + gint rate_denominator; + + /* Props */ + gint pageno; + gint subno; + gboolean subtitles_mode; + gchar *subtitles_template; + gchar *font_description; + + vbi_dvb_demux *demux; + vbi_decoder *decoder; + vbi_export *exporter; + GQueue *queue; + GMutex *queue_lock; + + GstTeletextFrame *frame; + float last_ts; + GstTeletextOutputFormat output_format; + + GstTeletextProcessBufferFunc process_buf_func; +}; + +struct _GstTeletextFrame +{ + vbi_sliced *sliced_begin; + vbi_sliced *sliced_end; + vbi_sliced *current_slice; + + guint last_field; + guint last_field_line; + guint last_frame_line; +}; + + +struct _GstTeletextDecClass +{ + GstElementClass parent_class; +}; + +GType gst_teletextdec_get_type (void); + +G_END_DECLS +#endif /* __GST_TELETEXTDEC_H__ */ diff --git a/ext/teletextdec/teletext.c b/ext/teletextdec/teletext.c new file mode 100644 index 0000000..df4e635 --- /dev/null +++ b/ext/teletextdec/teletext.c @@ -0,0 +1,43 @@ +/* + * GStreamer + * Copyright (C) 2009 Sebastian Pölsterl + * + * This library is free software; you can redistribute it and/or + * mod1ify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstteletextdec.h" + +/* entry point to initialize the plug-in + * initialize the plug-in itself + * register the element factories and other features + */ +static gboolean +teletext_init (GstPlugin * teletext) +{ + return gst_element_register (teletext, "teletextdec", GST_RANK_NONE, + GST_TYPE_TELETEXTDEC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "teletext", + "Teletext plugin", + teletext_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/") diff --git a/ext/timidity/Makefile.in b/ext/timidity/Makefile.in index 3e063fc..786867b 100644 --- a/ext/timidity/Makefile.in +++ b/ext/timidity/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +119,8 @@ am__libgsttimidity_la_SOURCES_DIST = gsttimidity.c @USE_TIMIDITY_TRUE@am_libgsttimidity_la_OBJECTS = \ @USE_TIMIDITY_TRUE@ libgsttimidity_la-gsttimidity.lo libgsttimidity_la_OBJECTS = $(am_libgsttimidity_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsttimidity_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsttimidity_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -142,21 +149,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsttimidity_la_SOURCES) $(libgstwildmidi_la_SOURCES) DIST_SOURCES = $(am__libgsttimidity_la_SOURCES_DIST) \ @@ -169,7 +176,6 @@ 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@ @@ -187,7 +193,6 @@ 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@ @@ -222,6 +227,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -261,6 +267,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -278,6 +285,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -286,13 +294,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -317,13 +328,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -371,6 +383,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -402,8 +415,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -427,6 +444,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -451,10 +470,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -466,6 +489,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -490,6 +517,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -525,7 +553,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -635,9 +662,9 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsttimidity.la: $(libgsttimidity_la_OBJECTS) $(libgsttimidity_la_DEPENDENCIES) +libgsttimidity.la: $(libgsttimidity_la_OBJECTS) $(libgsttimidity_la_DEPENDENCIES) $(EXTRA_libgsttimidity_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsttimidity_la_LINK) $(am_libgsttimidity_la_rpath) $(libgsttimidity_la_OBJECTS) $(libgsttimidity_la_LIBADD) $(LIBS) -libgstwildmidi.la: $(libgstwildmidi_la_OBJECTS) $(libgstwildmidi_la_DEPENDENCIES) +libgstwildmidi.la: $(libgstwildmidi_la_OBJECTS) $(libgstwildmidi_la_DEPENDENCIES) $(EXTRA_libgstwildmidi_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwildmidi_la_LINK) $(am_libgstwildmidi_la_rpath) $(libgstwildmidi_la_OBJECTS) $(libgstwildmidi_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -652,42 +679,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsttimidity_la-gsttimidity.lo: gsttimidity.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttimidity_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttimidity_la_CFLAGS) $(CFLAGS) -MT libgsttimidity_la-gsttimidity.lo -MD -MP -MF $(DEPDIR)/libgsttimidity_la-gsttimidity.Tpo -c -o libgsttimidity_la-gsttimidity.lo `test -f 'gsttimidity.c' || echo '$(srcdir)/'`gsttimidity.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttimidity_la-gsttimidity.Tpo $(DEPDIR)/libgsttimidity_la-gsttimidity.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttimidity.c' object='libgsttimidity_la-gsttimidity.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttimidity.c' object='libgsttimidity_la-gsttimidity.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttimidity_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttimidity_la_CFLAGS) $(CFLAGS) -c -o libgsttimidity_la-gsttimidity.lo `test -f 'gsttimidity.c' || echo '$(srcdir)/'`gsttimidity.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttimidity_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttimidity_la_CFLAGS) $(CFLAGS) -c -o libgsttimidity_la-gsttimidity.lo `test -f 'gsttimidity.c' || echo '$(srcdir)/'`gsttimidity.c libgstwildmidi_la-gstwildmidi.lo: gstwildmidi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwildmidi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwildmidi_la_CFLAGS) $(CFLAGS) -MT libgstwildmidi_la-gstwildmidi.lo -MD -MP -MF $(DEPDIR)/libgstwildmidi_la-gstwildmidi.Tpo -c -o libgstwildmidi_la-gstwildmidi.lo `test -f 'gstwildmidi.c' || echo '$(srcdir)/'`gstwildmidi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwildmidi_la-gstwildmidi.Tpo $(DEPDIR)/libgstwildmidi_la-gstwildmidi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwildmidi.c' object='libgstwildmidi_la-gstwildmidi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwildmidi.c' object='libgstwildmidi_la-gstwildmidi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwildmidi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwildmidi_la_CFLAGS) $(CFLAGS) -c -o libgstwildmidi_la-gstwildmidi.lo `test -f 'gstwildmidi.c' || echo '$(srcdir)/'`gstwildmidi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwildmidi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwildmidi_la_CFLAGS) $(CFLAGS) -c -o libgstwildmidi_la-gstwildmidi.lo `test -f 'gstwildmidi.c' || echo '$(srcdir)/'`gstwildmidi.c mostlyclean-libtool: -rm -f *.lo @@ -794,10 +816,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/timidity/gsttimidity.c b/ext/timidity/gsttimidity.c index 997b0b2..91e47ce 100644 --- a/ext/timidity/gsttimidity.c +++ b/ext/timidity/gsttimidity.c @@ -95,10 +95,8 @@ gst_timidity_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Timidity", "Codec/Decoder/Audio", "Midi Synthesizer Element", "Wouter Paesen "); @@ -108,12 +106,9 @@ gst_timidity_base_init (gpointer gclass) static void gst_timidity_class_init (GstTimidityClass * klass) { - GObjectClass *gobject_class; GstElementClass *gstelement_class; - gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; - gstelement_class->change_state = gst_timidity_change_state; } diff --git a/ext/timidity/gstwildmidi.c b/ext/timidity/gstwildmidi.c index 4d5c0e3..e78ecc1 100644 --- a/ext/timidity/gstwildmidi.c +++ b/ext/timidity/gstwildmidi.c @@ -120,10 +120,8 @@ gst_wildmidi_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "WildMidi", "Codec/Decoder/Audio", "Midi Synthesizer Element", "Wouter Paesen "); @@ -443,7 +441,10 @@ gst_wildmidi_do_seek (GstWildmidi * wildmidi, GstEvent * event) GstSeekFlags flags; GstSeekType start_type, stop_type; gint64 start, stop; - gboolean flush, update, accurate; + gboolean flush, update; +#ifdef HAVE_WILDMIDI_0_2_2 + gboolean accurate; +#endif gboolean res; unsigned long int sample; GstSegment *segment; @@ -472,7 +473,9 @@ gst_wildmidi_do_seek (GstWildmidi * wildmidi, GstEvent * event) return res; flush = ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH); +#ifdef HAVE_WILDMIDI_0_2_2 accurate = ((flags & GST_SEEK_FLAG_ACCURATE) == GST_SEEK_FLAG_ACCURATE); +#endif if (flush) { GST_DEBUG ("performing flush"); diff --git a/ext/voaacenc/Makefile.am b/ext/voaacenc/Makefile.am new file mode 100644 index 0000000..8f58c20 --- /dev/null +++ b/ext/voaacenc/Makefile.am @@ -0,0 +1,27 @@ +plugin_LTLIBRARIES = libgstvoaacenc.la + +libgstvoaacenc_la_SOURCES = \ + gstvoaac.c \ + gstvoaacenc.c + +libgstvoaacenc_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(VOAACENC_CFLAGS) +libgstvoaacenc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) \ + -lgstpbutils-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(VOAACENC_LIBS) +libgstvoaacenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvoaacenc_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstvoaacenc.h + +presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets + +EXTRA_DIST = $(preset_DATA) diff --git a/ext/voaacenc/Makefile.in b/ext/voaacenc/Makefile.in new file mode 100644 index 0000000..8747bc9 --- /dev/null +++ b/ext/voaacenc/Makefile.in @@ -0,0 +1,912 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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/voaacenc +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstvoaacenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstvoaacenc_la_OBJECTS = libgstvoaacenc_la-gstvoaac.lo \ + libgstvoaacenc_la-gstvoaacenc.lo +libgstvoaacenc_la_OBJECTS = $(am_libgstvoaacenc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstvoaacenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstvoaacenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstvoaacenc_la_CFLAGS) $(CFLAGS) \ + $(libgstvoaacenc_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstvoaacenc_la_SOURCES) +DIST_SOURCES = $(libgstvoaacenc_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstvoaacenc.la +libgstvoaacenc_la_SOURCES = \ + gstvoaac.c \ + gstvoaacenc.c + +libgstvoaacenc_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(VOAACENC_CFLAGS) + +libgstvoaacenc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) \ + -lgstpbutils-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(VOAACENC_LIBS) + +libgstvoaacenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvoaacenc_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstvoaacenc.h + +presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets +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/voaacenc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/voaacenc/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 +libgstvoaacenc.la: $(libgstvoaacenc_la_OBJECTS) $(libgstvoaacenc_la_DEPENDENCIES) $(EXTRA_libgstvoaacenc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstvoaacenc_la_LINK) -rpath $(plugindir) $(libgstvoaacenc_la_OBJECTS) $(libgstvoaacenc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvoaacenc_la-gstvoaac.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvoaacenc_la-gstvoaacenc.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstvoaacenc_la-gstvoaac.lo: gstvoaac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoaacenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoaacenc_la_CFLAGS) $(CFLAGS) -MT libgstvoaacenc_la-gstvoaac.lo -MD -MP -MF $(DEPDIR)/libgstvoaacenc_la-gstvoaac.Tpo -c -o libgstvoaacenc_la-gstvoaac.lo `test -f 'gstvoaac.c' || echo '$(srcdir)/'`gstvoaac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvoaacenc_la-gstvoaac.Tpo $(DEPDIR)/libgstvoaacenc_la-gstvoaac.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvoaac.c' object='libgstvoaacenc_la-gstvoaac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoaacenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoaacenc_la_CFLAGS) $(CFLAGS) -c -o libgstvoaacenc_la-gstvoaac.lo `test -f 'gstvoaac.c' || echo '$(srcdir)/'`gstvoaac.c + +libgstvoaacenc_la-gstvoaacenc.lo: gstvoaacenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoaacenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoaacenc_la_CFLAGS) $(CFLAGS) -MT libgstvoaacenc_la-gstvoaacenc.lo -MD -MP -MF $(DEPDIR)/libgstvoaacenc_la-gstvoaacenc.Tpo -c -o libgstvoaacenc_la-gstvoaacenc.lo `test -f 'gstvoaacenc.c' || echo '$(srcdir)/'`gstvoaacenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvoaacenc_la-gstvoaacenc.Tpo $(DEPDIR)/libgstvoaacenc_la-gstvoaacenc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvoaacenc.c' object='libgstvoaacenc_la-gstvoaacenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoaacenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoaacenc_la_CFLAGS) $(CFLAGS) -c -o libgstvoaacenc_la-gstvoaacenc.lo `test -f 'gstvoaacenc.c' || echo '$(srcdir)/'`gstvoaacenc.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/voaacenc/gstvoaac.c b/ext/voaacenc/gstvoaac.c new file mode 100644 index 0000000..30b5df9 --- /dev/null +++ b/ext/voaacenc/gstvoaac.c @@ -0,0 +1,38 @@ +/* GStreamer AAC encoder plugin + * Copyright (C) 2011 Kan Hu + * + * 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 "gstvoaacenc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "voaacenc", + GST_RANK_SECONDARY, GST_TYPE_VOAACENC); +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "voaacenc", + "AAC audio encoder", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/voaacenc/gstvoaacenc.c b/ext/voaacenc/gstvoaacenc.c new file mode 100644 index 0000000..ed01f3c --- /dev/null +++ b/ext/voaacenc/gstvoaacenc.c @@ -0,0 +1,619 @@ +/* GStreamer AAC encoder plugin + * Copyright (C) 2011 Kan Hu + * + * 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-voaacenc + * + * AAC audio encoder based on vo-aacenc library + * vo-aacenc library source file. + * + * + * Example launch line + * |[ + * gst-launch filesrc location=abc.wav ! wavparse ! audioresample ! audioconvert ! voaacenc ! filesink location=abc.aac + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include + +#include "gstvoaacenc.h" + +#define VOAAC_ENC_DEFAULT_BITRATE (128000) +#define VOAAC_ENC_DEFAULT_OUTPUTFORMAT (0) /* RAW */ +#define VOAAC_ENC_MPEGVERSION (4) +#define VOAAC_ENC_CODECDATA_LEN (2) +#define VOAAC_ENC_BITS_PER_SAMPLE (16) + +enum +{ + PROP_0, + PROP_BITRATE +}; + +#define SAMPLE_RATES " 8000, " \ + "11025, " \ + "12000, " \ + "16000, " \ + "22050, " \ + "24000, " \ + "32000, " \ + "44100, " \ + "48000, " \ + "64000, " \ + "88200, " \ + "96000" + +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) { " SAMPLE_RATES " }, " "channels = (int) [1, 2]") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/mpeg, " + "mpegversion = (int) 4, " + "rate = (int) { " SAMPLE_RATES " }, " + "channels = (int) [1, 2], " + "stream-format = (string) { adts, raw }, " "base-profile = (string) lc") + ); + +GST_DEBUG_CATEGORY_STATIC (gst_voaacenc_debug); +#define GST_CAT_DEFAULT gst_voaacenc_debug + +static gboolean voaacenc_core_init (GstVoAacEnc * voaacenc); +static gboolean voaacenc_core_set_parameter (GstVoAacEnc * voaacenc); +static void voaacenc_core_uninit (GstVoAacEnc * voaacenc); + +static gboolean gst_voaacenc_start (GstAudioEncoder * enc); +static gboolean gst_voaacenc_stop (GstAudioEncoder * enc); +static gboolean gst_voaacenc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_voaacenc_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); +static GstCaps *gst_voaacenc_getcaps (GstAudioEncoder * enc); + +GST_BOILERPLATE (GstVoAacEnc, gst_voaacenc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER); + +static void +gst_voaacenc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstVoAacEnc *self = GST_VOAACENC (object); + + switch (prop_id) { + case PROP_BITRATE: + self->bitrate = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + return; +} + +static void +gst_voaacenc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstVoAacEnc *self = GST_VOAACENC (object); + + switch (prop_id) { + case PROP_BITRATE: + g_value_set_int (value, self->bitrate); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + return; +} + +static void +gst_voaacenc_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, "AAC audio encoder", + "Codec/Encoder/Audio", "AAC audio encoder", "Kan Hu "); +} + +static void +gst_voaacenc_class_init (GstVoAacEncClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GstAudioEncoderClass *base_class = GST_AUDIO_ENCODER_CLASS (klass); + + object_class->set_property = GST_DEBUG_FUNCPTR (gst_voaacenc_set_property); + object_class->get_property = GST_DEBUG_FUNCPTR (gst_voaacenc_get_property); + + base_class->start = GST_DEBUG_FUNCPTR (gst_voaacenc_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_voaacenc_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_voaacenc_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_voaacenc_handle_frame); + base_class->getcaps = GST_DEBUG_FUNCPTR (gst_voaacenc_getcaps); + + g_object_class_install_property (object_class, PROP_BITRATE, + g_param_spec_int ("bitrate", + "Bitrate", + "Target Audio Bitrate", + 0, G_MAXINT, VOAAC_ENC_DEFAULT_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (gst_voaacenc_debug, "voaacenc", 0, "voaac encoder"); +} + +static void +gst_voaacenc_init (GstVoAacEnc * voaacenc, GstVoAacEncClass * klass) +{ + voaacenc->bitrate = VOAAC_ENC_DEFAULT_BITRATE; + voaacenc->output_format = VOAAC_ENC_DEFAULT_OUTPUTFORMAT; + + /* init rest */ + voaacenc->handle = NULL; +} + +static gboolean +gst_voaacenc_start (GstAudioEncoder * enc) +{ + GstVoAacEnc *voaacenc = GST_VOAACENC (enc); + + GST_DEBUG_OBJECT (enc, "start"); + + if (voaacenc_core_init (voaacenc) == FALSE) + return FALSE; + + voaacenc->rate = 0; + voaacenc->channels = 0; + + return TRUE; +} + +static gboolean +gst_voaacenc_stop (GstAudioEncoder * enc) +{ + GstVoAacEnc *voaacenc = GST_VOAACENC (enc); + + GST_DEBUG_OBJECT (enc, "stop"); + voaacenc_core_uninit (voaacenc); + + return TRUE; +} + +static gpointer +gst_voaacenc_generate_sink_caps (gpointer data) +{ +#define VOAAC_ENC_MAX_CHANNELS 6 +/* describe the channels position */ + static const GstAudioChannelPosition + gst_voaacenc_channel_position[][VOAAC_ENC_MAX_CHANNELS] = { + { /* 1 ch: Mono */ + GST_AUDIO_CHANNEL_POSITION_FRONT_MONO}, + { /* 2 ch: front left + front right (front stereo) */ + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, + { /* 3 ch: front center + front stereo */ + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, + { /* 4 ch: front center + front stereo + back center */ + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, + { /* 5 ch: front center + front stereo + back stereo */ + 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}, + { /* 6ch: front center + front stereo + back stereo + LFE */ + 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} + }; + GstCaps *caps = gst_caps_new_empty (); + gint i, c; + static const int rates[] = { + 8000, 11025, 12000, 16000, 22050, 24000, + 32000, 44100, 48000, 64000, 88200, 96000 + }; + GValue rates_arr = { 0, }; + GValue tmp = { 0, }; + + g_value_init (&rates_arr, GST_TYPE_LIST); + g_value_init (&tmp, G_TYPE_INT); + for (i = 0; i < G_N_ELEMENTS (rates); i++) { + g_value_set_int (&tmp, rates[i]); + gst_value_list_append_value (&rates_arr, &tmp); + } + g_value_unset (&tmp); + + for (i = 0; i < 2 /*VOAAC_ENC_MAX_CHANNELS */ ; i++) { + GValue chanpos = { 0 }; + GValue pos = { 0 }; + GstStructure *structure; + + 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, gst_voaacenc_channel_position[i][c]); + gst_value_array_append_value (&chanpos, &pos); + } + + g_value_unset (&pos); + + structure = gst_structure_new ("audio/x-raw-int", + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, + "signed", G_TYPE_BOOLEAN, TRUE, + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "channels", G_TYPE_INT, i + 1, NULL); + + gst_structure_set_value (structure, "rate", &rates_arr); + gst_structure_set_value (structure, "channel-positions", &chanpos); + g_value_unset (&chanpos); + + gst_caps_append_structure (caps, structure); + } + + g_value_unset (&rates_arr); + + GST_DEBUG ("generated sink caps: %" GST_PTR_FORMAT, caps); + return caps; +} + +static GstCaps * +gst_voaacenc_get_sink_caps (void) +{ + static GOnce g_once = G_ONCE_INIT; + GstCaps *caps; + + g_once (&g_once, gst_voaacenc_generate_sink_caps, NULL); + caps = g_once.retval; + + return caps; +} + +static GstCaps * +gst_voaacenc_getcaps (GstAudioEncoder * benc) +{ + return gst_audio_encoder_proxy_getcaps (benc, gst_voaacenc_get_sink_caps ()); +} + +/* check downstream caps to configure format */ +static void +gst_voaacenc_negotiate (GstVoAacEnc * voaacenc) +{ + GstCaps *caps; + + caps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (voaacenc)); + + GST_DEBUG_OBJECT (voaacenc, "allowed caps: %" GST_PTR_FORMAT, caps); + + if (caps && gst_caps_get_size (caps) > 0) { + GstStructure *s = gst_caps_get_structure (caps, 0); + const gchar *str = NULL; + + if ((str = gst_structure_get_string (s, "stream-format"))) { + if (strcmp (str, "adts") == 0) { + GST_DEBUG_OBJECT (voaacenc, "use ADTS format for output"); + voaacenc->output_format = 1; + } else if (strcmp (str, "raw") == 0) { + GST_DEBUG_OBJECT (voaacenc, "use RAW format for output"); + voaacenc->output_format = 0; + } else { + GST_DEBUG_OBJECT (voaacenc, "unknown stream-format: %s", str); + voaacenc->output_format = VOAAC_ENC_DEFAULT_OUTPUTFORMAT; + } + } + } + + if (caps) + gst_caps_unref (caps); +} + +static gint +gst_voaacenc_get_rate_index (gint rate) +{ + static const gint rate_table[] = { + 96000, 88200, 64000, 48000, 44100, 32000, + 24000, 22050, 16000, 12000, 11025, 8000 + }; + gint i; + for (i = 0; i < G_N_ELEMENTS (rate_table); ++i) { + if (rate == rate_table[i]) { + return i; + } + } + return -1; +} + +static GstCaps * +gst_voaacenc_create_source_pad_caps (GstVoAacEnc * voaacenc) +{ + GstCaps *caps = NULL; + GstBuffer *codec_data; + gint index; + guint8 data[VOAAC_ENC_CODECDATA_LEN]; + + if ((index = gst_voaacenc_get_rate_index (voaacenc->rate)) >= 0) { + /* LC profile only */ + data[0] = ((0x02 << 3) | (index >> 1)); + data[1] = ((index & 0x01) << 7) | (voaacenc->channels << 3); + + caps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, VOAAC_ENC_MPEGVERSION, + "channels", G_TYPE_INT, voaacenc->channels, + "rate", G_TYPE_INT, voaacenc->rate, + "stream-format", G_TYPE_STRING, + (voaacenc->output_format ? "adts" : "raw") + , NULL); + + gst_codec_utils_aac_caps_set_level_and_profile (caps, data, sizeof (data)); + + if (!voaacenc->output_format) { + codec_data = gst_buffer_new_and_alloc (VOAAC_ENC_CODECDATA_LEN); + + memcpy (GST_BUFFER_DATA (codec_data), data, sizeof (data)); + + gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, codec_data, + NULL); + + gst_buffer_unref (codec_data); + } + } + + return caps; +} + +static gboolean +gst_voaacenc_set_format (GstAudioEncoder * benc, GstAudioInfo * info) +{ + gboolean ret = FALSE; + GstVoAacEnc *voaacenc; + GstCaps *src_caps; + + voaacenc = GST_VOAACENC (benc); + + /* get channel count */ + voaacenc->channels = GST_AUDIO_INFO_CHANNELS (info); + voaacenc->rate = GST_AUDIO_INFO_RATE (info); + + /* precalc buffer size as it's constant now */ + voaacenc->inbuf_size = voaacenc->channels * 2 * 1024; + + gst_voaacenc_negotiate (voaacenc); + + /* create reverse caps */ + src_caps = gst_voaacenc_create_source_pad_caps (voaacenc); + + if (src_caps) { + gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (voaacenc), src_caps); + gst_caps_unref (src_caps); + ret = voaacenc_core_set_parameter (voaacenc); + } + + /* report needs to base class */ + gst_audio_encoder_set_frame_samples_min (benc, 1024); + gst_audio_encoder_set_frame_samples_max (benc, 1024); + gst_audio_encoder_set_frame_max (benc, 1); + + return ret; +} + +static GstFlowReturn +gst_voaacenc_handle_frame (GstAudioEncoder * benc, GstBuffer * buf) +{ + GstVoAacEnc *voaacenc; + GstFlowReturn ret = GST_FLOW_OK; + GstBuffer *out; + VO_AUDIO_OUTPUTINFO output_info = { {0} }; + VO_CODECBUFFER input = { 0 }; + VO_CODECBUFFER output = { 0 }; + + voaacenc = GST_VOAACENC (benc); + + g_return_val_if_fail (voaacenc->handle, GST_FLOW_NOT_NEGOTIATED); + + if (voaacenc->rate == 0 || voaacenc->channels == 0) + goto not_negotiated; + + /* we don't deal with squeezing remnants, so simply discard those */ + if (G_UNLIKELY (buf == NULL)) { + GST_DEBUG_OBJECT (benc, "no data"); + goto exit; + } + + if (G_UNLIKELY (GST_BUFFER_SIZE (buf) < voaacenc->inbuf_size)) { + GST_DEBUG_OBJECT (voaacenc, "discarding trailing data %d", + buf ? GST_BUFFER_SIZE (buf) : 0); + ret = gst_audio_encoder_finish_frame (benc, NULL, -1); + goto exit; + } + + /* max size */ + if ((ret = + gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_ENCODER_SRC_PAD + (voaacenc), 0, voaacenc->inbuf_size, + GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (voaacenc)), + &out)) != GST_FLOW_OK) { + goto exit; + } + + output.Buffer = GST_BUFFER_DATA (out); + output.Length = voaacenc->inbuf_size; + + g_assert (GST_BUFFER_SIZE (buf) == voaacenc->inbuf_size); + input.Buffer = GST_BUFFER_DATA (buf); + input.Length = voaacenc->inbuf_size; + voaacenc->codec_api.SetInputData (voaacenc->handle, &input); + + /* encode */ + if (voaacenc->codec_api.GetOutputData (voaacenc->handle, &output, + &output_info) != VO_ERR_NONE) { + gst_buffer_unref (out); + goto encode_failed; + } + + GST_LOG_OBJECT (voaacenc, "encoded to %d bytes", output.Length); + GST_BUFFER_SIZE (out) = output.Length; + + GST_LOG_OBJECT (voaacenc, "Pushing out buffer time: %" GST_TIME_FORMAT + " duration: %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (out)), + GST_TIME_ARGS (GST_BUFFER_DURATION (out))); + + ret = gst_audio_encoder_finish_frame (benc, out, 1024); + +exit: + return ret; + + /* ERRORS */ +not_negotiated: + { + GST_ELEMENT_ERROR (voaacenc, STREAM, TYPE_NOT_FOUND, + (NULL), ("unknown type")); + ret = GST_FLOW_NOT_NEGOTIATED; + goto exit; + } +encode_failed: + { + GST_ELEMENT_ERROR (voaacenc, STREAM, ENCODE, (NULL), ("encode failed")); + ret = GST_FLOW_ERROR; + goto exit; + } +} + +static VO_U32 +voaacenc_core_mem_alloc (VO_S32 uID, VO_MEM_INFO * pMemInfo) +{ + if (!pMemInfo) + return VO_ERR_INVALID_ARG; + + pMemInfo->VBuffer = g_malloc (pMemInfo->Size); + return 0; +} + +static VO_U32 +voaacenc_core_mem_free (VO_S32 uID, VO_PTR pMem) +{ + g_free (pMem); + return 0; +} + +static VO_U32 +voaacenc_core_mem_set (VO_S32 uID, VO_PTR pBuff, VO_U8 uValue, VO_U32 uSize) +{ + memset (pBuff, uValue, uSize); + return 0; +} + +static VO_U32 +voaacenc_core_mem_copy (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize) +{ + memcpy (pDest, pSource, uSize); + return 0; +} + +static VO_U32 +voaacenc_core_mem_check (VO_S32 uID, VO_PTR pBuffer, VO_U32 uSize) +{ + return 0; +} + +static gboolean +voaacenc_core_init (GstVoAacEnc * voaacenc) +{ + VO_CODEC_INIT_USERDATA user_data = { 0 }; + voGetAACEncAPI (&voaacenc->codec_api); + + voaacenc->mem_operator.Alloc = voaacenc_core_mem_alloc; + voaacenc->mem_operator.Copy = voaacenc_core_mem_copy; + voaacenc->mem_operator.Free = voaacenc_core_mem_free; + voaacenc->mem_operator.Set = voaacenc_core_mem_set; + voaacenc->mem_operator.Check = voaacenc_core_mem_check; + user_data.memflag = VO_IMF_USERMEMOPERATOR; + user_data.memData = &voaacenc->mem_operator; + voaacenc->codec_api.Init (&voaacenc->handle, VO_AUDIO_CodingAAC, &user_data); + + if (voaacenc->handle == NULL) { + return FALSE; + } + return TRUE; + +} + +static gboolean +voaacenc_core_set_parameter (GstVoAacEnc * voaacenc) +{ + AACENC_PARAM params = { 0 }; + guint32 ret; + + params.sampleRate = voaacenc->rate; + params.bitRate = voaacenc->bitrate; + params.nChannels = voaacenc->channels; + if (voaacenc->output_format) { + params.adtsUsed = 1; + } else { + params.adtsUsed = 0; + } + + ret = + voaacenc->codec_api.SetParam (voaacenc->handle, VO_PID_AAC_ENCPARAM, + ¶ms); + if (ret != VO_ERR_NONE) { + GST_ERROR_OBJECT (voaacenc, "Failed to set encoder parameters"); + return FALSE; + } + return TRUE; +} + +static void +voaacenc_core_uninit (GstVoAacEnc * voaacenc) +{ + if (voaacenc->handle) { + voaacenc->codec_api.Uninit (voaacenc->handle); + voaacenc->handle = NULL; + } +} diff --git a/ext/voaacenc/gstvoaacenc.h b/ext/voaacenc/gstvoaacenc.h new file mode 100644 index 0000000..8e4d6ae --- /dev/null +++ b/ext/voaacenc/gstvoaacenc.h @@ -0,0 +1,75 @@ +/* GStreamer AAC encoder plugin + * Copyright (C) 2011 Kan Hu + * + * 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_VOAACENC_H__ +#define __GST_VOAACENC_H__ + +#include +#include + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_VOAACENC \ + (gst_voaacenc_get_type()) +#define GST_VOAACENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_VOAACENC, GstVoAacEnc)) +#define GST_VOAACENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_VOAACENC, GstVoAacEncClass)) +#define GST_IS_VOAACENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_VOAACENC)) +#define GST_IS_VOAACENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_VOAACENC)) + +typedef struct _GstVoAacEnc GstVoAacEnc; +typedef struct _GstVoAacEncClass GstVoAacEncClass; + +struct _GstVoAacEnc { + GstAudioEncoder element; + + gboolean discont; + + /* desired bitrate */ + gint bitrate; + + /* caps */ + gint channels; + gint rate; + gint output_format; + + gint inbuf_size; + + /* library handle */ + VO_AUDIO_CODECAPI codec_api; + VO_HANDLE handle; + VO_MEM_OPERATOR mem_operator; + +}; + +struct _GstVoAacEncClass { + GstAudioEncoderClass parent_class; +}; + +GType gst_voaacenc_get_type (void); + +G_END_DECLS + +#endif /* __GST_VOAACENC_H__ */ diff --git a/ext/amrwbenc/GstAmrwbEnc.prs b/ext/voamrwbenc/GstVoAmrwbEnc.prs similarity index 87% rename from ext/amrwbenc/GstAmrwbEnc.prs rename to ext/voamrwbenc/GstVoAmrwbEnc.prs index 5765849..86e4e55 100644 --- a/ext/amrwbenc/GstAmrwbEnc.prs +++ b/ext/voamrwbenc/GstVoAmrwbEnc.prs @@ -1,6 +1,6 @@ [_presets_] version=0.10 -element-name=GstAmrwbEnc +element-name=GstVoAmrwbEnc [enhance-size] _meta/comment=Maximize compression, lowest bitrate diff --git a/ext/voamrwbenc/Makefile.am b/ext/voamrwbenc/Makefile.am new file mode 100644 index 0000000..b962390 --- /dev/null +++ b/ext/voamrwbenc/Makefile.am @@ -0,0 +1,21 @@ +plugin_LTLIBRARIES = libgstvoamrwbenc.la + +libgstvoamrwbenc_la_SOURCES = \ + gstvoamrwb.c \ + gstvoamrwbenc.c + +libgstvoamrwbenc_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VOAMRWBENC_CFLAGS) +libgstvoamrwbenc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(VOAMRWBENC_LIBS) +libgstvoamrwbenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvoamrwbenc_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstvoamrwbenc.h + +presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets +preset_DATA = GstVoAmrwbEnc.prs + +EXTRA_DIST = $(preset_DATA) + diff --git a/ext/amrwbenc/Makefile.in b/ext/voamrwbenc/Makefile.in similarity index 80% rename from ext/amrwbenc/Makefile.in rename to ext/voamrwbenc/Makefile.in index 1fe2937..d9d3d20 100644 --- a/ext/amrwbenc/Makefile.in +++ b/ext/voamrwbenc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -36,13 +36,14 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = ext/amrwbenc -DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ +subdir = ext/voamrwbenc +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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -101,21 +102,27 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } 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)) +libgstvoamrwbenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstvoamrwbenc_la_OBJECTS = libgstvoamrwbenc_la-gstvoamrwb.lo \ + libgstvoamrwbenc_la-gstvoamrwbenc.lo +libgstvoamrwbenc_la_OBJECTS = $(am_libgstvoamrwbenc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 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 $@ +libgstvoamrwbenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstvoamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstvoamrwbenc_la_CFLAGS) $(CFLAGS) \ + $(libgstvoamrwbenc_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -126,24 +133,24 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstamrwbenc_la_SOURCES) -DIST_SOURCES = $(libgstamrwbenc_la_SOURCES) +SOURCES = $(libgstvoamrwbenc_la_SOURCES) +DIST_SOURCES = $(libgstvoamrwbenc_la_SOURCES) DATA = $(preset_DATA) HEADERS = $(noinst_HEADERS) ETAGS = etags @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -530,20 +557,24 @@ 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 +plugin_LTLIBRARIES = libgstvoamrwbenc.la +libgstvoamrwbenc_la_SOURCES = \ + gstvoamrwb.c \ + gstvoamrwbenc.c + +libgstvoamrwbenc_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VOAMRWBENC_CFLAGS) + +libgstvoamrwbenc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(VOAMRWBENC_LIBS) + +libgstvoamrwbenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvoamrwbenc_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ - gstamrwbenc.h + gstvoamrwbenc.h presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets -preset_DATA = GstAmrwbEnc.prs +preset_DATA = GstVoAmrwbEnc.prs EXTRA_DIST = $(preset_DATA) all: all-am @@ -558,9 +589,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/amrwbenc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/voamrwbenc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu ext/amrwbenc/Makefile + $(AUTOMAKE) --gnu ext/voamrwbenc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -610,8 +641,8 @@ clean-pluginLTLIBRARIES: 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) +libgstvoamrwbenc.la: $(libgstvoamrwbenc_la_OBJECTS) $(libgstvoamrwbenc_la_DEPENDENCIES) $(EXTRA_libgstvoamrwbenc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstvoamrwbenc_la_LINK) -rpath $(plugindir) $(libgstvoamrwbenc_la_OBJECTS) $(libgstvoamrwbenc_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -619,48 +650,43 @@ mostlyclean-compile: 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@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwb.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwbenc.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ +libgstvoamrwbenc_la-gstvoamrwb.lo: gstvoamrwb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoamrwbenc_la_CFLAGS) $(CFLAGS) -MT libgstvoamrwbenc_la-gstvoamrwb.lo -MD -MP -MF $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwb.Tpo -c -o libgstvoamrwbenc_la-gstvoamrwb.lo `test -f 'gstvoamrwb.c' || echo '$(srcdir)/'`gstvoamrwb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwb.Tpo $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwb.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvoamrwb.c' object='libgstvoamrwbenc_la-gstvoamrwb.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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoamrwbenc_la_CFLAGS) $(CFLAGS) -c -o libgstvoamrwbenc_la-gstvoamrwb.lo `test -f 'gstvoamrwb.c' || echo '$(srcdir)/'`gstvoamrwb.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@ +libgstvoamrwbenc_la-gstvoamrwbenc.lo: gstvoamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoamrwbenc_la_CFLAGS) $(CFLAGS) -MT libgstvoamrwbenc_la-gstvoamrwbenc.lo -MD -MP -MF $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwbenc.Tpo -c -o libgstvoamrwbenc_la-gstvoamrwbenc.lo `test -f 'gstvoamrwbenc.c' || echo '$(srcdir)/'`gstvoamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwbenc.Tpo $(DEPDIR)/libgstvoamrwbenc_la-gstvoamrwbenc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvoamrwbenc.c' object='libgstvoamrwbenc_la-gstvoamrwbenc.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 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvoamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvoamrwbenc_la_CFLAGS) $(CFLAGS) -c -o libgstvoamrwbenc_la-gstvoamrwbenc.lo `test -f 'gstvoamrwbenc.c' || echo '$(srcdir)/'`gstvoamrwbenc.c mostlyclean-libtool: -rm -f *.lo @@ -684,9 +710,7 @@ 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 + dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -787,10 +811,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/amrwbenc/gstamrwb.c b/ext/voamrwbenc/gstvoamrwb.c similarity index 88% rename from ext/amrwbenc/gstamrwb.c rename to ext/voamrwbenc/gstvoamrwb.c index cc2407e..c6c0d3a 100644 --- a/ext/amrwbenc/gstamrwb.c +++ b/ext/voamrwbenc/gstvoamrwb.c @@ -21,19 +21,19 @@ #include "config.h" #endif -#include "gstamrwbenc.h" +#include "gstvoamrwbenc.h" static gboolean plugin_init (GstPlugin * plugin) { - return gst_element_register (plugin, "amrwbenc", - GST_RANK_SECONDARY, GST_TYPE_AMRWBENC); + return gst_element_register (plugin, "voamrwbenc", + GST_RANK_SECONDARY, GST_TYPE_VOAMRWBENC); } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, - "amrwbenc", + "voamrwbenc", "Adaptive Multi-Rate Wide-Band Encoder", plugin_init, VERSION, GST_LICENSE_UNKNOWN, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/voamrwbenc/gstvoamrwbenc.c b/ext/voamrwbenc/gstvoamrwbenc.c new file mode 100644 index 0000000..b0680ea --- /dev/null +++ b/ext/voamrwbenc/gstvoamrwbenc.c @@ -0,0 +1,317 @@ +/* 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-voamrwbenc + * @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 ! voamrwbenc ! filesink location=abc.amr + * ]| + * Please note that the above stream misses the header, that is needed to play + * the stream. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstvoamrwbenc.h" + +#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 + +#define L_FRAME16k 320 /* Frame size at 16kHz */ + +static GType +gst_voamrwbenc_bandmode_get_type (void) +{ + static GType gst_voamrwbenc_bandmode_type = 0; + static GEnumValue gst_voamrwbenc_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_voamrwbenc_bandmode_type) { + gst_voamrwbenc_bandmode_type = + g_enum_register_static ("GstVoAmrWbEncBandMode", + gst_voamrwbenc_bandmode); + } + return gst_voamrwbenc_bandmode_type; +} + +#define GST_VOAMRWBENC_BANDMODE_TYPE (gst_voamrwbenc_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_voamrwbenc_debug); +#define GST_CAT_DEFAULT gst_voamrwbenc_debug + +static gboolean gst_voamrwbenc_start (GstAudioEncoder * enc); +static gboolean gst_voamrwbenc_stop (GstAudioEncoder * enc); +static gboolean gst_voamrwbenc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_voamrwbenc_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); + +GST_BOILERPLATE (GstVoAmrWbEnc, gst_voamrwbenc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER); + +static void +gst_voamrwbenc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstVoAmrWbEnc *self = GST_VOAMRWBENC (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_voamrwbenc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstVoAmrWbEnc *self = GST_VOAMRWBENC (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_voamrwbenc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &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_voamrwbenc_class_init (GstVoAmrWbEncClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GstAudioEncoderClass *base_class = GST_AUDIO_ENCODER_CLASS (klass); + + object_class->set_property = gst_voamrwbenc_set_property; + object_class->get_property = gst_voamrwbenc_get_property; + + base_class->start = GST_DEBUG_FUNCPTR (gst_voamrwbenc_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_voamrwbenc_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_voamrwbenc_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_voamrwbenc_handle_frame); + + g_object_class_install_property (object_class, PROP_BANDMODE, + g_param_spec_enum ("band-mode", "Band Mode", + "Encoding Band Mode (Kbps)", GST_VOAMRWBENC_BANDMODE_TYPE, + BANDMODE_DEFAULT, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (gst_voamrwbenc_debug, "voamrwbenc", 0, + "voamrwb encoder"); +} + +static void +gst_voamrwbenc_init (GstVoAmrWbEnc * amrwbenc, GstVoAmrWbEncClass * klass) +{ + /* init rest */ + amrwbenc->handle = NULL; + amrwbenc->channels = 0; + amrwbenc->rate = 0; +} + +static gboolean +gst_voamrwbenc_start (GstAudioEncoder * enc) +{ + GstVoAmrWbEnc *voamrwbenc = GST_VOAMRWBENC (enc); + + GST_DEBUG_OBJECT (enc, "start"); + + if (!(voamrwbenc->handle = E_IF_init ())) + return FALSE; + + voamrwbenc->rate = 0; + voamrwbenc->channels = 0; + + return TRUE; +} + +static gboolean +gst_voamrwbenc_stop (GstAudioEncoder * enc) +{ + GstVoAmrWbEnc *voamrwbenc = GST_VOAMRWBENC (enc); + + GST_DEBUG_OBJECT (enc, "stop"); + + if (voamrwbenc->handle) { + E_IF_exit (voamrwbenc->handle); + voamrwbenc->handle = NULL; + } + + return TRUE; +} + +static gboolean +gst_voamrwbenc_set_format (GstAudioEncoder * benc, GstAudioInfo * info) +{ + GstVoAmrWbEnc *amrwbenc; + GstCaps *copy; + + amrwbenc = GST_VOAMRWBENC (benc); + + /* get channel count */ + amrwbenc->channels = GST_AUDIO_INFO_CHANNELS (info); + amrwbenc->rate = GST_AUDIO_INFO_RATE (info); + + /* 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 (GST_AUDIO_ENCODER_SRC_PAD (amrwbenc), copy); + gst_caps_unref (copy); + + /* report needs to base class: one frame at a time */ + gst_audio_encoder_set_frame_samples_min (benc, L_FRAME16k); + gst_audio_encoder_set_frame_samples_max (benc, L_FRAME16k); + gst_audio_encoder_set_frame_max (benc, 1); + + return TRUE; +} + +static GstFlowReturn +gst_voamrwbenc_handle_frame (GstAudioEncoder * benc, GstBuffer * buffer) +{ + GstVoAmrWbEnc *amrwbenc; + GstFlowReturn ret = GST_FLOW_OK; + const int buffer_size = sizeof (short) * L_FRAME16k; + GstBuffer *out; + gint outsize; + + amrwbenc = GST_VOAMRWBENC (benc); + + g_return_val_if_fail (amrwbenc->handle, GST_FLOW_NOT_NEGOTIATED); + + if (amrwbenc->rate == 0 || amrwbenc->channels == 0) { + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } + + /* we don't deal with squeezing remnants, so simply discard those */ + if (G_UNLIKELY (buffer == NULL)) { + GST_DEBUG_OBJECT (amrwbenc, "no data"); + goto done; + } + + if (G_UNLIKELY (GST_BUFFER_SIZE (buffer) < buffer_size)) { + GST_DEBUG_OBJECT (amrwbenc, "discarding trailing data %d", + buffer ? GST_BUFFER_SIZE (buffer) : 0); + ret = gst_audio_encoder_finish_frame (benc, NULL, -1); + goto done; + } + + out = gst_buffer_new_and_alloc (buffer_size); + /* encode */ + outsize = E_IF_encode (amrwbenc->handle, amrwbenc->bandmode, + (const short *) GST_BUFFER_DATA (buffer), + (unsigned char *) GST_BUFFER_DATA (out), 0); + + GST_LOG_OBJECT (amrwbenc, "encoded to %d bytes", outsize); + GST_BUFFER_SIZE (out) = outsize; + + ret = gst_audio_encoder_finish_frame (benc, out, L_FRAME16k); + +done: + return ret; +} diff --git a/ext/amrwbenc/gstamrwbenc.h b/ext/voamrwbenc/gstvoamrwbenc.h similarity index 51% rename from ext/amrwbenc/gstamrwbenc.h rename to ext/voamrwbenc/gstvoamrwbenc.h index 034a5be..2a7241f 100644 --- a/ext/amrwbenc/gstamrwbenc.h +++ b/ext/voamrwbenc/gstvoamrwbenc.h @@ -17,39 +17,32 @@ * Boston, MA 02111-1307, USA. */ -#ifndef __GST_AMRWBENC_H__ -#define __GST_AMRWBENC_H__ +#ifndef __GST_VOAMRWBENC_H__ +#define __GST_VOAMRWBENC_H__ #include -#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)) +#include -typedef struct _GstAmrwbEnc GstAmrwbEnc; -typedef struct _GstAmrwbEncClass GstAmrwbEncClass; +G_BEGIN_DECLS -struct _GstAmrwbEnc { - GstElement element; +#define GST_TYPE_VOAMRWBENC \ + (gst_voamrwbenc_get_type()) +#define GST_VOAMRWBENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_VOAMRWBENC, GstVoAmrWbEnc)) +#define GST_VOAMRWBENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_VOAMRWBENC, GstVoAmrWbEncClass)) +#define GST_IS_VOAMRWBENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_VOAMRWBENC)) +#define GST_IS_VOAMRWBENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_VOAMRWBENC)) - /* pads */ - GstPad *sinkpad, *srcpad; - guint64 ts; - gboolean discont; +typedef struct _GstVoAmrWbEnc GstVoAmrWbEnc; +typedef struct _GstVoAmrWbEncClass GstVoAmrWbEncClass; - GstAdapter *adapter; +struct _GstVoAmrWbEnc { + GstAudioEncoder element; /* library handle */ void *handle; @@ -59,12 +52,12 @@ struct _GstAmrwbEnc { gint channels, rate; }; -struct _GstAmrwbEncClass { - GstElementClass parent_class; +struct _GstVoAmrWbEncClass { + GstAudioEncoderClass parent_class; }; -GType gst_amrwbenc_get_type (void); +GType gst_voamrwbenc_get_type (void); G_END_DECLS -#endif /* __GST_AMRWBENC_H__ */ +#endif /* __GST_VOAMRWBENC_H__ */ diff --git a/ext/vp8/Makefile.am b/ext/vp8/Makefile.am index 474b3ce..d839666 100644 --- a/ext/vp8/Makefile.am +++ b/ext/vp8/Makefile.am @@ -18,6 +18,7 @@ libgstvp8_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_MAJORMINOR@ -lgstvideo-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_LIBS) $(VPX_LIBS) libgstvp8_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvp8_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ gstvp8dec.h \ diff --git a/ext/vp8/Makefile.in b/ext/vp8/Makefile.in index b93ea4a..71bee15 100644 --- a/ext/vp8/Makefile.in +++ b/ext/vp8/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,12 +117,13 @@ am_libgstvp8_la_OBJECTS = libgstvp8_la-gstvp8dec.lo \ libgstvp8_la-gstvp8enc.lo libgstvp8_la-gstvp8utils.lo \ libgstvp8_la-plugin.lo libgstvp8_la_OBJECTS = $(am_libgstvp8_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -libgstvp8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstvp8_la_CFLAGS) \ - $(CFLAGS) $(libgstvp8_la_LDFLAGS) $(LDFLAGS) -o $@ +libgstvp8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstvp8_la_CFLAGS) $(CFLAGS) \ + $(libgstvp8_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -126,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvp8_la_SOURCES) DIST_SOURCES = $(libgstvp8_la_SOURCES) @@ -152,7 +160,6 @@ 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@ @@ -170,7 +177,6 @@ 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@ @@ -205,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -551,6 +579,7 @@ libgstvp8_la_LIBADD = \ $(GST_BASE_LIBS) $(GST_LIBS) $(VPX_LIBS) libgstvp8_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstvp8_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ gstvp8dec.h \ gstvp8enc.h \ @@ -621,7 +650,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvp8.la: $(libgstvp8_la_OBJECTS) $(libgstvp8_la_DEPENDENCIES) +libgstvp8.la: $(libgstvp8_la_OBJECTS) $(libgstvp8_la_DEPENDENCIES) $(EXTRA_libgstvp8_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvp8_la_LINK) -rpath $(plugindir) $(libgstvp8_la_OBJECTS) $(libgstvp8_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -638,58 +667,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvp8_la-gstvp8dec.lo: gstvp8dec.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8dec.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8dec.Tpo -c -o libgstvp8_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8dec.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8dec.Tpo -c -o libgstvp8_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvp8_la-gstvp8dec.Tpo $(DEPDIR)/libgstvp8_la-gstvp8dec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvp8dec.c' object='libgstvp8_la-gstvp8dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvp8dec.c' object='libgstvp8_la-gstvp8dec.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c libgstvp8_la-gstvp8enc.lo: gstvp8enc.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8enc.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8enc.Tpo -c -o libgstvp8_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8enc.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8enc.Tpo -c -o libgstvp8_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvp8_la-gstvp8enc.Tpo $(DEPDIR)/libgstvp8_la-gstvp8enc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvp8enc.c' object='libgstvp8_la-gstvp8enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvp8enc.c' object='libgstvp8_la-gstvp8enc.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c libgstvp8_la-gstvp8utils.lo: gstvp8utils.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8utils.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8utils.Tpo -c -o libgstvp8_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-gstvp8utils.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-gstvp8utils.Tpo -c -o libgstvp8_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvp8_la-gstvp8utils.Tpo $(DEPDIR)/libgstvp8_la-gstvp8utils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvp8utils.c' object='libgstvp8_la-gstvp8utils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvp8utils.c' object='libgstvp8_la-gstvp8utils.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c libgstvp8_la-plugin.lo: plugin.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) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-plugin.Tpo -c -o libgstvp8_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -MT libgstvp8_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvp8_la-plugin.Tpo -c -o libgstvp8_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvp8_la-plugin.Tpo $(DEPDIR)/libgstvp8_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstvp8_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstvp8_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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvp8_la_CFLAGS) $(CFLAGS) -c -o libgstvp8_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -796,10 +818,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/vp8/gstvp8dec.c b/ext/vp8/gstvp8dec.c index 3d8567f..e3a2fd9 100644 --- a/ext/vp8/gstvp8dec.c +++ b/ext/vp8/gstvp8dec.c @@ -98,6 +98,8 @@ static void gst_vp8_dec_get_property (GObject * object, guint prop_id, static gboolean gst_vp8_dec_start (GstBaseVideoDecoder * decoder); static gboolean gst_vp8_dec_stop (GstBaseVideoDecoder * decoder); +static gboolean gst_vp8_dec_set_format (GstBaseVideoDecoder * decoder, + GstVideoState * state); static gboolean gst_vp8_dec_reset (GstBaseVideoDecoder * decoder); static GstFlowReturn gst_vp8_dec_parse_data (GstBaseVideoDecoder * decoder, gboolean at_eos); @@ -126,10 +128,10 @@ gst_vp8_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_vp8_dec_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_vp8_dec_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_vp8_dec_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_vp8_dec_sink_template); gst_element_class_set_details_simple (element_class, "On2 VP8 Decoder", @@ -172,11 +174,15 @@ gst_vp8_dec_class_init (GstVP8DecClass * klass) 0, 16, DEFAULT_NOISE_LEVEL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - base_video_decoder_class->start = gst_vp8_dec_start; - base_video_decoder_class->stop = gst_vp8_dec_stop; - base_video_decoder_class->reset = gst_vp8_dec_reset; - base_video_decoder_class->parse_data = gst_vp8_dec_parse_data; - base_video_decoder_class->handle_frame = gst_vp8_dec_handle_frame; + base_video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_vp8_dec_start); + base_video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_vp8_dec_stop); + base_video_decoder_class->reset = GST_DEBUG_FUNCPTR (gst_vp8_dec_reset); + base_video_decoder_class->set_format = + GST_DEBUG_FUNCPTR (gst_vp8_dec_set_format); + base_video_decoder_class->parse_data = + GST_DEBUG_FUNCPTR (gst_vp8_dec_parse_data); + base_video_decoder_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_vp8_dec_handle_frame); GST_DEBUG_CATEGORY_INIT (gst_vp8dec_debug, "vp8dec", 0, "VP8 Decoder"); } @@ -275,6 +281,17 @@ gst_vp8_dec_stop (GstBaseVideoDecoder * base_video_decoder) } static gboolean +gst_vp8_dec_set_format (GstBaseVideoDecoder * decoder, GstVideoState * state) +{ + GstVP8Dec *gst_vp8_dec = GST_VP8_DEC (decoder); + + GST_DEBUG_OBJECT (gst_vp8_dec, "set_format"); + gst_vp8_dec->decoder_inited = FALSE; + + return TRUE; +} + +static gboolean gst_vp8_dec_reset (GstBaseVideoDecoder * base_video_decoder) { GstVP8Dec *decoder; @@ -381,15 +398,19 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame) if (status != VPX_CODEC_OK || !stream_info.is_kf) { GST_WARNING_OBJECT (decoder, "No keyframe, skipping"); - gst_base_video_decoder_skip_frame (decoder, frame); + gst_base_video_decoder_finish_frame (decoder, frame); return GST_FLOW_OK; } - /* should set size here */ state->width = stream_info.w; state->height = stream_info.h; state->format = GST_VIDEO_FORMAT_I420; + if (state->par_n == 0 || state->par_d == 0) { + state->par_n = 1; + state->par_d = 1; + } gst_vp8_dec_send_tags (dec); + gst_base_video_decoder_set_src_caps (decoder); caps = vpx_codec_get_caps (&vpx_codec_vp8_dx_algo); @@ -431,21 +452,6 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame) if (!GST_BUFFER_FLAG_IS_SET (frame->sink_buffer, GST_BUFFER_FLAG_DELTA_UNIT)) gst_base_video_decoder_set_sync_point (decoder); -#if 0 - if (GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (decoder)) == NULL) { - GstCaps *caps; - - caps = gst_video_format_new_caps (decoder->state.format, - decoder->state.width, decoder->state.height, - decoder->state.fps_n, decoder->state.fps_d, - decoder->state.par_n, decoder->state.par_d); - - GST_DEBUG ("setting caps %" GST_PTR_FORMAT, caps); - - gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (decoder), caps); - } -#endif - deadline = gst_base_video_decoder_get_max_decode_time (decoder, frame); if (deadline < 0) { decoder_deadline = 1; @@ -469,15 +475,15 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame) if (deadline < 0) { GST_LOG_OBJECT (dec, "Skipping late frame (%f s past deadline)", (double) -deadline / GST_SECOND); - gst_base_video_decoder_skip_frame (decoder, frame); + gst_base_video_decoder_drop_frame (decoder, frame); } else { ret = gst_base_video_decoder_alloc_src_frame (decoder, frame); if (ret == GST_FLOW_OK) { gst_vp8_dec_image_to_buffer (dec, img, frame->src_buffer); - gst_base_video_decoder_finish_frame (decoder, frame); + ret = gst_base_video_decoder_finish_frame (decoder, frame); } else { - gst_base_video_decoder_skip_frame (decoder, frame); + gst_base_video_decoder_finish_frame (decoder, frame); } } @@ -489,7 +495,7 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame) } } else { /* Invisible frame */ - gst_base_video_decoder_skip_frame (decoder, frame); + gst_base_video_decoder_finish_frame (decoder, frame); } return ret; diff --git a/ext/vp8/gstvp8enc.c b/ext/vp8/gstvp8enc.c index 17b316a..b1f06e0 100644 --- a/ext/vp8/gstvp8enc.c +++ b/ext/vp8/gstvp8enc.c @@ -65,8 +65,30 @@ typedef struct GList *invisible; } GstVP8EncCoderHook; +static void +_gst_mini_object_unref0 (GstMiniObject * obj) +{ + if (obj) + gst_mini_object_unref (obj); +} + +static void +gst_vp8_enc_coder_hook_free (GstVP8EncCoderHook * hook) +{ + if (hook->image) + g_slice_free (vpx_image_t, hook->image); + + g_list_foreach (hook->invisible, (GFunc) _gst_mini_object_unref0, NULL); + g_list_free (hook->invisible); + g_slice_free (GstVP8EncCoderHook, hook); +} + #define DEFAULT_BITRATE 0 #define DEFAULT_MODE VPX_VBR +#define DEFAULT_MINSECTION_PCT 5 +#define DEFAULT_MAXSECTION_PCT 800 +#define DEFAULT_MIN_QUANTIZER 0 +#define DEFAULT_MAX_QUANTIZER 63 #define DEFAULT_QUALITY 5 #define DEFAULT_ERROR_RESILIENT FALSE #define DEFAULT_MAX_LATENCY 10 @@ -74,14 +96,33 @@ typedef struct #define DEFAULT_SPEED 0 #define DEFAULT_THREADS 1 #define DEFAULT_MULTIPASS_MODE VPX_RC_ONE_PASS -#define DEFAULT_MULTIPASS_CACHE_FILE NULL +#define DEFAULT_MULTIPASS_CACHE_FILE "multipass.cache" #define DEFAULT_AUTO_ALT_REF_FRAMES FALSE +#define DEFAULT_LAG_IN_FRAMES 0 +#define DEFAULT_SHARPNESS 0 +#define DEFAULT_NOISE_SENSITIVITY 0 +#ifdef HAVE_VP8ENC_TUNING +#define DEFAULT_TUNE VP8_TUNE_PSNR +#else +typedef enum +{ VP8_TUNE_NONE } vp8e_tuning; +#define DEFAULT_TUNE VP8_TUNE_NONE +#endif +#define DEFAULT_STATIC_THRESHOLD 0 +#define DEFAULT_DROP_FRAME 0 +#define DEFAULT_RESIZE_ALLOWED TRUE +#define DEFAULT_TOKEN_PARTS 0 + enum { PROP_0, PROP_BITRATE, PROP_MODE, + PROP_MINSECTION_PCT, + PROP_MAXSECTION_PCT, + PROP_MIN_QUANTIZER, + PROP_MAX_QUANTIZER, PROP_QUALITY, PROP_ERROR_RESILIENT, PROP_MAX_LATENCY, @@ -90,7 +131,15 @@ enum PROP_THREADS, PROP_MULTIPASS_MODE, PROP_MULTIPASS_CACHE_FILE, - PROP_AUTO_ALT_REF_FRAMES + PROP_AUTO_ALT_REF_FRAMES, + PROP_LAG_IN_FRAMES, + PROP_SHARPNESS, + PROP_NOISE_SENSITIVITY, + PROP_TUNE, + PROP_STATIC_THRESHOLD, + PROP_DROP_FRAME, + PROP_RESIZE_ALLOWED, + PROP_TOKEN_PARTS }; #define GST_VP8_ENC_MODE_TYPE (gst_vp8_enc_mode_get_type()) @@ -138,6 +187,32 @@ gst_vp8_enc_multipass_mode_get_type (void) return id; } +#define GST_VP8_ENC_TUNE_TYPE (gst_vp8_enc_tune_get_type()) +static GType +gst_vp8_enc_tune_get_type (void) +{ + static const GEnumValue values[] = { +#ifdef HAVE_VP8ENC_TUNING + {VP8_TUNE_PSNR, "Tune for PSNR", "psnr"}, + {VP8_TUNE_SSIM, "Tune for SSIM", "ssim"}, +#else + {VP8_TUNE_NONE, "none", "none"}, +#endif + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstVP8EncTune", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + static void gst_vp8_enc_finalize (GObject * object); static void gst_vp8_enc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -149,13 +224,12 @@ static gboolean gst_vp8_enc_stop (GstBaseVideoEncoder * encoder); static gboolean gst_vp8_enc_set_format (GstBaseVideoEncoder * base_video_encoder, GstVideoState * state); static gboolean gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder); -static gboolean gst_vp8_enc_handle_frame (GstBaseVideoEncoder * +static GstFlowReturn gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame); static GstFlowReturn gst_vp8_enc_shape_output (GstBaseVideoEncoder * encoder, GstVideoFrame * frame); -static GstCaps *gst_vp8_enc_get_caps (GstBaseVideoEncoder * base_video_encoder); - -static gboolean gst_vp8_enc_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_vp8_enc_sink_event (GstBaseVideoEncoder * + base_video_encoder, GstEvent * event); static GstStaticPadTemplate gst_vp8_enc_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", @@ -195,10 +269,10 @@ gst_vp8_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_vp8_enc_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_vp8_enc_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_vp8_enc_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_vp8_enc_sink_template); gst_element_class_set_details_simple (element_class, "On2 VP8 Encoder", @@ -225,7 +299,7 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass) base_video_encoder_class->set_format = gst_vp8_enc_set_format; base_video_encoder_class->finish = gst_vp8_enc_finish; base_video_encoder_class->shape_output = gst_vp8_enc_shape_output; - base_video_encoder_class->get_caps = gst_vp8_enc_get_caps; + base_video_encoder_class->event = gst_vp8_enc_sink_event; g_object_class_install_property (gobject_class, PROP_BITRATE, g_param_spec_int ("bitrate", "Bit rate", @@ -239,9 +313,35 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass) GST_VP8_ENC_MODE_TYPE, DEFAULT_MODE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_MINSECTION_PCT, + g_param_spec_uint ("minsection-pct", + "minimum percentage allocation per section", + "The numbers represent a percentage of the average allocation per section (frame)", + 0, 20, DEFAULT_MINSECTION_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MAXSECTION_PCT, + g_param_spec_uint ("maxsection-pct", + "maximum percentage allocation per section", + "The numbers represent a percentage of the average allocation per section (frame)", + 200, 800, DEFAULT_MAXSECTION_PCT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MIN_QUANTIZER, + g_param_spec_int ("min-quantizer", "Minimum quantizer", + "Minimum (best) quantizer", + 0, 63, DEFAULT_MIN_QUANTIZER, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_MAX_QUANTIZER, + g_param_spec_int ("max-quantizer", "Maximum quantizer", + "Maximum (worst) quantizer", + 0, 63, DEFAULT_MAX_QUANTIZER, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_QUALITY, g_param_spec_double ("quality", "Quality", - "Quality", + "Quality. This parameter sets a constant quantizer.", 0, 10.0, DEFAULT_QUALITY, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); @@ -266,7 +366,7 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass) g_object_class_install_property (gobject_class, PROP_SPEED, g_param_spec_int ("speed", "Speed", "Speed", - 0, 2, DEFAULT_SPEED, + 0, 7, DEFAULT_SPEED, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); g_object_class_install_property (gobject_class, PROP_THREADS, @@ -293,6 +393,54 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass) DEFAULT_AUTO_ALT_REF_FRAMES, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_LAG_IN_FRAMES, + g_param_spec_uint ("lag-in-frames", "Max number of frames to lag", + "If set, this value allows the encoder to consume a number of input " + "frames before producing output frames.", + 0, 64, DEFAULT_LAG_IN_FRAMES, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_SHARPNESS, + g_param_spec_int ("sharpness", "Sharpness", + "Sharpness", + 0, 7, DEFAULT_SHARPNESS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_NOISE_SENSITIVITY, + g_param_spec_int ("noise-sensitivity", "Noise Sensitivity", + "Noise Sensitivity", + 0, 6, DEFAULT_NOISE_SENSITIVITY, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TUNE, + g_param_spec_enum ("tune", "Tune", + "Tune", + GST_VP8_ENC_TUNE_TYPE, DEFAULT_TUNE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_STATIC_THRESHOLD, + g_param_spec_int ("static-threshold", "Static Threshold", + "Static Threshold", + 0, 1000, DEFAULT_STATIC_THRESHOLD, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_DROP_FRAME, + g_param_spec_int ("drop-frame", "Drop Frame", + "Drop Frame", + 0, 100, DEFAULT_DROP_FRAME, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_RESIZE_ALLOWED, + g_param_spec_boolean ("resize-allowed", "Resize Allowed", + "Resize Allowed", + DEFAULT_RESIZE_ALLOWED, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (gobject_class, PROP_TOKEN_PARTS, + g_param_spec_int ("token-parts", "Token Parts", + "Token Parts", + 0, 3, DEFAULT_TOKEN_PARTS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); GST_DEBUG_CATEGORY_INIT (gst_vp8enc_debug, "vp8enc", 0, "VP8 Encoder"); } @@ -304,20 +452,19 @@ gst_vp8_enc_init (GstVP8Enc * gst_vp8_enc, GstVP8EncClass * klass) GST_DEBUG_OBJECT (gst_vp8_enc, "init"); gst_vp8_enc->bitrate = DEFAULT_BITRATE; + gst_vp8_enc->minsection_pct = DEFAULT_MINSECTION_PCT; + gst_vp8_enc->maxsection_pct = DEFAULT_MAXSECTION_PCT; + gst_vp8_enc->min_quantizer = DEFAULT_MIN_QUANTIZER; + gst_vp8_enc->max_quantizer = DEFAULT_MAX_QUANTIZER; gst_vp8_enc->mode = DEFAULT_MODE; gst_vp8_enc->quality = DEFAULT_QUALITY; gst_vp8_enc->error_resilient = DEFAULT_ERROR_RESILIENT; gst_vp8_enc->max_latency = DEFAULT_MAX_LATENCY; gst_vp8_enc->max_keyframe_distance = DEFAULT_MAX_KEYFRAME_DISTANCE; gst_vp8_enc->multipass_mode = DEFAULT_MULTIPASS_MODE; - gst_vp8_enc->multipass_cache_file = DEFAULT_MULTIPASS_CACHE_FILE; + gst_vp8_enc->multipass_cache_file = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE); gst_vp8_enc->auto_alt_ref_frames = DEFAULT_AUTO_ALT_REF_FRAMES; - - /* FIXME: Add sink/src event vmethods */ - gst_vp8_enc->base_sink_event_func = - GST_PAD_EVENTFUNC (GST_BASE_VIDEO_CODEC_SINK_PAD (gst_vp8_enc)); - gst_pad_set_event_function (GST_BASE_VIDEO_CODEC_SINK_PAD (gst_vp8_enc), - gst_vp8_enc_sink_event); + gst_vp8_enc->lag_in_frames = DEFAULT_LAG_IN_FRAMES; } static void @@ -354,6 +501,18 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id, case PROP_MODE: gst_vp8_enc->mode = g_value_get_enum (value); break; + case PROP_MINSECTION_PCT: + gst_vp8_enc->minsection_pct = g_value_get_uint (value); + break; + case PROP_MAXSECTION_PCT: + gst_vp8_enc->maxsection_pct = g_value_get_uint (value); + break; + case PROP_MIN_QUANTIZER: + gst_vp8_enc->min_quantizer = g_value_get_int (value); + break; + case PROP_MAX_QUANTIZER: + gst_vp8_enc->max_quantizer = g_value_get_int (value); + break; case PROP_QUALITY: gst_vp8_enc->quality = g_value_get_double (value); break; @@ -383,6 +542,35 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id, case PROP_AUTO_ALT_REF_FRAMES: gst_vp8_enc->auto_alt_ref_frames = g_value_get_boolean (value); break; + case PROP_LAG_IN_FRAMES: + gst_vp8_enc->lag_in_frames = g_value_get_uint (value); + break; + case PROP_SHARPNESS: + gst_vp8_enc->sharpness = g_value_get_int (value); + break; + case PROP_NOISE_SENSITIVITY: + gst_vp8_enc->noise_sensitivity = g_value_get_int (value); + break; + case PROP_TUNE: +#ifdef HAVE_VP8ENC_TUNING + gst_vp8_enc->tuning = g_value_get_enum (value); +#else + GST_WARNING_OBJECT (gst_vp8_enc, + "The tuning property is unsupported by this libvpx"); +#endif + break; + case PROP_STATIC_THRESHOLD: + gst_vp8_enc->static_threshold = g_value_get_int (value); + break; + case PROP_DROP_FRAME: + gst_vp8_enc->drop_frame = g_value_get_int (value); + break; + case PROP_RESIZE_ALLOWED: + gst_vp8_enc->resize_allowed = g_value_get_boolean (value); + break; + case PROP_TOKEN_PARTS: + gst_vp8_enc->partitions = g_value_get_int (value); + break; default: break; } @@ -404,6 +592,18 @@ gst_vp8_enc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_MODE: g_value_set_enum (value, gst_vp8_enc->mode); break; + case PROP_MINSECTION_PCT: + g_value_set_uint (value, gst_vp8_enc->minsection_pct); + break; + case PROP_MAXSECTION_PCT: + g_value_set_uint (value, gst_vp8_enc->maxsection_pct); + break; + case PROP_MIN_QUANTIZER: + g_value_set_int (value, gst_vp8_enc->min_quantizer); + break; + case PROP_MAX_QUANTIZER: + g_value_set_int (value, gst_vp8_enc->max_quantizer); + break; case PROP_QUALITY: g_value_set_double (value, gst_vp8_enc->quality); break; @@ -431,6 +631,35 @@ gst_vp8_enc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_AUTO_ALT_REF_FRAMES: g_value_set_boolean (value, gst_vp8_enc->auto_alt_ref_frames); break; + case PROP_LAG_IN_FRAMES: + g_value_set_uint (value, gst_vp8_enc->lag_in_frames); + break; + case PROP_SHARPNESS: + g_value_set_int (value, gst_vp8_enc->sharpness); + break; + case PROP_NOISE_SENSITIVITY: + g_value_set_int (value, gst_vp8_enc->noise_sensitivity); + break; + case PROP_TUNE: +#ifdef HAVE_VP8ENC_TUNING + g_value_set_enum (value, gst_vp8_enc->tuning); +#else + GST_WARNING_OBJECT (gst_vp8_enc, + "The tuning property is unsupported by this libvpx"); +#endif + break; + case PROP_STATIC_THRESHOLD: + g_value_set_int (value, gst_vp8_enc->static_threshold); + break; + case PROP_DROP_FRAME: + g_value_set_int (value, gst_vp8_enc->drop_frame); + break; + case PROP_RESIZE_ALLOWED: + g_value_set_boolean (value, gst_vp8_enc->resize_allowed); + break; + case PROP_TOKEN_PARTS: + g_value_set_int (value, gst_vp8_enc->partitions); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -479,25 +708,165 @@ static gboolean gst_vp8_enc_set_format (GstBaseVideoEncoder * base_video_encoder, GstVideoState * state) { + GstVP8Enc *encoder; + vpx_codec_enc_cfg_t cfg; + vpx_codec_err_t status; + vpx_image_t *image; + guint8 *data = NULL; + GstCaps *caps; + gboolean ret; + + encoder = GST_VP8_ENC (base_video_encoder); GST_DEBUG_OBJECT (base_video_encoder, "set_format"); - return TRUE; -} + if (encoder->inited) { + GST_DEBUG_OBJECT (base_video_encoder, "refusing renegotiation"); + return FALSE; + } -static GstCaps * -gst_vp8_enc_get_caps (GstBaseVideoEncoder * base_video_encoder) -{ - GstCaps *caps; - const GstVideoState *state; - GstTagList *tags = NULL; - const GstTagList *iface_tags; - GstBuffer *stream_hdr, *vorbiscomment; - guint8 *data; - GstStructure *s; - GValue array = { 0 }; - GValue value = { 0 }; + status = vpx_codec_enc_config_default (&vpx_codec_vp8_cx_algo, &cfg, 0); + if (status != VPX_CODEC_OK) { + GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, + ("Failed to get default encoder configuration"), ("%s", + gst_vpx_error_name (status))); + return FALSE; + } + + cfg.g_w = state->width; + cfg.g_h = state->height; + cfg.g_timebase.num = state->fps_d; + cfg.g_timebase.den = state->fps_n; + + cfg.g_error_resilient = encoder->error_resilient; + cfg.g_lag_in_frames = encoder->max_latency; + cfg.g_threads = encoder->threads; + cfg.rc_end_usage = encoder->mode; + cfg.rc_2pass_vbr_minsection_pct = encoder->minsection_pct; + cfg.rc_2pass_vbr_maxsection_pct = encoder->maxsection_pct; + /* Standalone qp-min do not make any sence, with bitrate=0 and qp-min=1 + * encoder will use only default qp-max=63. Also this will make + * worst possbile quality. + */ + if (encoder->bitrate != DEFAULT_BITRATE || + encoder->max_quantizer != DEFAULT_MAX_QUANTIZER) { + cfg.rc_target_bitrate = encoder->bitrate / 1000; + cfg.rc_min_quantizer = encoder->min_quantizer; + cfg.rc_max_quantizer = encoder->max_quantizer; + } else { + cfg.rc_min_quantizer = (gint) (63 - encoder->quality * 6.2); + cfg.rc_max_quantizer = (gint) (63 - encoder->quality * 6.2); + cfg.rc_target_bitrate = encoder->bitrate; + } + cfg.rc_dropframe_thresh = encoder->drop_frame; + cfg.rc_resize_allowed = encoder->resize_allowed; + + cfg.kf_mode = VPX_KF_AUTO; + cfg.kf_min_dist = 0; + cfg.kf_max_dist = encoder->max_keyframe_distance; + + cfg.g_pass = encoder->multipass_mode; + if (encoder->multipass_mode == VPX_RC_FIRST_PASS) { + encoder->first_pass_cache_content = g_byte_array_sized_new (4096); + } else if (encoder->multipass_mode == VPX_RC_LAST_PASS) { + GError *err = NULL; + + if (!encoder->multipass_cache_file) { + GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, + ("No multipass cache file provided"), (NULL)); + return FALSE; + } + + if (!g_file_get_contents (encoder->multipass_cache_file, + (gchar **) & encoder->last_pass_cache_content.buf, + &encoder->last_pass_cache_content.sz, &err)) { + GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, + ("Failed to read multipass cache file provided"), ("%s", + err->message)); + g_error_free (err); + return FALSE; + } + cfg.rc_twopass_stats_in = encoder->last_pass_cache_content; + } + + status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp8_cx_algo, + &cfg, 0); + if (status != VPX_CODEC_OK) { + GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, + ("Failed to initialize encoder"), ("%s", gst_vpx_error_name (status))); + return FALSE; + } + + /* FIXME move this to a set_speed() function */ + status = vpx_codec_control (&encoder->encoder, VP8E_SET_CPUUSED, + (encoder->speed == 0) ? 0 : (encoder->speed - 1)); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_CPUUSED to 0: %s", + gst_vpx_error_name (status)); + } + + status = vpx_codec_control (&encoder->encoder, VP8E_SET_NOISE_SENSITIVITY, + encoder->noise_sensitivity); + status = vpx_codec_control (&encoder->encoder, VP8E_SET_SHARPNESS, + encoder->sharpness); + status = vpx_codec_control (&encoder->encoder, VP8E_SET_STATIC_THRESHOLD, + encoder->static_threshold); + status = vpx_codec_control (&encoder->encoder, VP8E_SET_TOKEN_PARTITIONS, + encoder->partitions); +#if 0 + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_MAXFRAMES, + encoder->arnr_maxframes); + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_STRENGTH, + encoder->arnr_strength); + status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_TYPE, + encoder->arnr_type); +#endif +#ifdef HAVE_VP8ENC_TUNING + status = vpx_codec_control (&encoder->encoder, VP8E_SET_TUNING, + encoder->tuning); +#endif + + status = + vpx_codec_control (&encoder->encoder, VP8E_SET_ENABLEAUTOALTREF, + (encoder->auto_alt_ref_frames ? 1 : 0)); + if (status != VPX_CODEC_OK) { + GST_WARNING_OBJECT (encoder, + "Failed to set VP8E_ENABLEAUTOALTREF to %d: %s", + (encoder->auto_alt_ref_frames ? 1 : 0), gst_vpx_error_name (status)); + } + + cfg.g_lag_in_frames = encoder->lag_in_frames; + + gst_base_video_encoder_set_latency (base_video_encoder, 0, + gst_util_uint64_scale (encoder->max_latency, + state->fps_d * GST_SECOND, state->fps_n)); + encoder->inited = TRUE; + + /* prepare cached image buffer setup */ + image = &encoder->image; + memset (image, 0, sizeof (image)); + + image->fmt = VPX_IMG_FMT_I420; + image->bps = 12; + image->x_chroma_shift = image->y_chroma_shift = 1; + image->w = image->d_w = state->width; + image->h = image->d_h = state->height; + + image->stride[VPX_PLANE_Y] = + gst_video_format_get_row_stride (state->format, 0, state->width); + image->stride[VPX_PLANE_U] = + gst_video_format_get_row_stride (state->format, 1, state->width); + image->stride[VPX_PLANE_V] = + gst_video_format_get_row_stride (state->format, 2, state->width); + image->planes[VPX_PLANE_Y] = + data + gst_video_format_get_component_offset (state->format, 0, + state->width, state->height); + image->planes[VPX_PLANE_U] = + data + gst_video_format_get_component_offset (state->format, 1, + state->width, state->height); + image->planes[VPX_PLANE_V] = + data + gst_video_format_get_component_offset (state->format, 2, + state->width, state->height); - state = gst_base_video_encoder_get_state (base_video_encoder); caps = gst_caps_new_simple ("video/x-vp8", "width", G_TYPE_INT, state->width, @@ -506,86 +875,83 @@ gst_vp8_enc_get_caps (GstBaseVideoEncoder * base_video_encoder) state->fps_d, "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, state->par_d, NULL); - - s = gst_caps_get_structure (caps, 0); - - /* put buffers in a fixed list */ - g_value_init (&array, GST_TYPE_ARRAY); - g_value_init (&value, GST_TYPE_BUFFER); - - /* Create Ogg stream-info */ - stream_hdr = gst_buffer_new_and_alloc (26); - data = GST_BUFFER_DATA (stream_hdr); - - GST_WRITE_UINT8 (data, 0x4F); - GST_WRITE_UINT32_BE (data + 1, 0x56503830); /* "VP80" */ - GST_WRITE_UINT8 (data + 5, 0x01); /* stream info header */ - GST_WRITE_UINT8 (data + 6, 1); /* Major version 1 */ - GST_WRITE_UINT8 (data + 7, 0); /* Minor version 0 */ - GST_WRITE_UINT16_BE (data + 8, state->width); - GST_WRITE_UINT16_BE (data + 10, state->height); - GST_WRITE_UINT24_BE (data + 12, state->par_n); - GST_WRITE_UINT24_BE (data + 15, state->par_d); - GST_WRITE_UINT32_BE (data + 18, state->fps_n); - GST_WRITE_UINT32_BE (data + 22, state->fps_d); - - GST_BUFFER_FLAG_SET (stream_hdr, GST_BUFFER_FLAG_IN_CAPS); - gst_value_set_buffer (&value, stream_hdr); - gst_value_array_append_value (&array, &value); - g_value_unset (&value); - gst_buffer_unref (stream_hdr); - - iface_tags = - gst_tag_setter_get_tag_list (GST_TAG_SETTER (base_video_encoder)); - if (iface_tags) { - vorbiscomment = - gst_tag_list_to_vorbiscomment_buffer ((iface_tags) ? iface_tags : tags, - (const guint8 *) "OVP80\2 ", 7, - "Encoded with GStreamer vp8enc " PACKAGE_VERSION); - - GST_BUFFER_FLAG_SET (vorbiscomment, GST_BUFFER_FLAG_IN_CAPS); - + { + GstStructure *s; + GstBuffer *stream_hdr, *vorbiscomment; + const GstTagList *iface_tags; + GValue array = { 0, }; + GValue value = { 0, }; + s = gst_caps_get_structure (caps, 0); + + /* put buffers in a fixed list */ + g_value_init (&array, GST_TYPE_ARRAY); g_value_init (&value, GST_TYPE_BUFFER); - gst_value_set_buffer (&value, vorbiscomment); + + /* Create Ogg stream-info */ + stream_hdr = gst_buffer_new_and_alloc (26); + data = GST_BUFFER_DATA (stream_hdr); + + GST_WRITE_UINT8 (data, 0x4F); + GST_WRITE_UINT32_BE (data + 1, 0x56503830); /* "VP80" */ + GST_WRITE_UINT8 (data + 5, 0x01); /* stream info header */ + GST_WRITE_UINT8 (data + 6, 1); /* Major version 1 */ + GST_WRITE_UINT8 (data + 7, 0); /* Minor version 0 */ + GST_WRITE_UINT16_BE (data + 8, state->width); + GST_WRITE_UINT16_BE (data + 10, state->height); + GST_WRITE_UINT24_BE (data + 12, state->par_n); + GST_WRITE_UINT24_BE (data + 15, state->par_d); + GST_WRITE_UINT32_BE (data + 18, state->fps_n); + GST_WRITE_UINT32_BE (data + 22, state->fps_d); + + GST_BUFFER_FLAG_SET (stream_hdr, GST_BUFFER_FLAG_IN_CAPS); + gst_value_set_buffer (&value, stream_hdr); gst_value_array_append_value (&array, &value); g_value_unset (&value); - gst_buffer_unref (vorbiscomment); + gst_buffer_unref (stream_hdr); + + iface_tags = + gst_tag_setter_get_tag_list (GST_TAG_SETTER (base_video_encoder)); + if (iface_tags) { + vorbiscomment = + gst_tag_list_to_vorbiscomment_buffer (iface_tags, + (const guint8 *) "OVP80\2 ", 7, + "Encoded with GStreamer vp8enc " PACKAGE_VERSION); + + GST_BUFFER_FLAG_SET (vorbiscomment, GST_BUFFER_FLAG_IN_CAPS); + + g_value_init (&value, GST_TYPE_BUFFER); + gst_value_set_buffer (&value, vorbiscomment); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); + gst_buffer_unref (vorbiscomment); + } + + gst_structure_set_value (s, "streamheader", &array); + g_value_unset (&array); } - gst_structure_set_value (s, "streamheader", &array); - g_value_unset (&array); + ret = gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (encoder), caps); + gst_caps_unref (caps); - return caps; + return ret; } -static gboolean -gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder) +static GstFlowReturn +gst_vp8_enc_process (GstVP8Enc * encoder) { - GstVP8Enc *encoder; - GstVideoFrame *frame; - int flags = 0; - vpx_codec_err_t status; vpx_codec_iter_t iter = NULL; const vpx_codec_cx_pkt_t *pkt; + GstBaseVideoEncoder *base_video_encoder; + GstVP8EncCoderHook *hook; + GstVideoFrame *frame; + GstFlowReturn ret = GST_FLOW_OK; - GST_DEBUG_OBJECT (base_video_encoder, "finish"); - - encoder = GST_VP8_ENC (base_video_encoder); - - status = - vpx_codec_encode (&encoder->encoder, NULL, encoder->n_frames, 1, flags, - 0); - if (status != 0) { - GST_ERROR_OBJECT (encoder, "encode returned %d %s", status, - gst_vpx_error_name (status)); - return FALSE; - } + base_video_encoder = GST_BASE_VIDEO_ENCODER (encoder); pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); while (pkt != NULL) { GstBuffer *buffer; - GstVP8EncCoderHook *hook; - gboolean invisible, keyframe; + gboolean invisible; GST_DEBUG_OBJECT (encoder, "packet %u type %d", (guint) pkt->data.frame.sz, pkt->kind); @@ -614,15 +980,14 @@ gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder) } invisible = (pkt->data.frame.flags & VPX_FRAME_IS_INVISIBLE) != 0; - keyframe = (pkt->data.frame.flags & VPX_FRAME_IS_KEY) != 0; frame = gst_base_video_encoder_get_oldest_frame (base_video_encoder); g_assert (frame != NULL); + frame->is_sync_point = (pkt->data.frame.flags & VPX_FRAME_IS_KEY) != 0; hook = frame->coder_hook; buffer = gst_buffer_new_and_alloc (pkt->data.frame.sz); memcpy (GST_BUFFER_DATA (buffer), pkt->data.frame.buf, pkt->data.frame.sz); - frame->is_sync_point = frame->is_sync_point || keyframe; if (hook->image) g_slice_free (vpx_image_t, hook->image); @@ -632,13 +997,38 @@ gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder) hook->invisible = g_list_append (hook->invisible, buffer); } else { frame->src_buffer = buffer; - gst_base_video_encoder_finish_frame (base_video_encoder, frame); - frame = NULL; + ret = gst_base_video_encoder_finish_frame (base_video_encoder, frame); } pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); } + return ret; +} + +static GstFlowReturn +gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder) +{ + GstVP8Enc *encoder; + int flags = 0; + vpx_codec_err_t status; + + GST_DEBUG_OBJECT (base_video_encoder, "finish"); + + encoder = GST_VP8_ENC (base_video_encoder); + + status = + vpx_codec_encode (&encoder->encoder, NULL, encoder->n_frames, 1, flags, + 0); + if (status != 0) { + GST_ERROR_OBJECT (encoder, "encode returned %d %s", status, + gst_vpx_error_name (status)); + return GST_FLOW_ERROR; + } + + /* dispatch remaining frames */ + gst_vp8_enc_process (encoder); + if (encoder->multipass_mode == VPX_RC_FIRST_PASS && encoder->multipass_cache_file) { GError *err = NULL; @@ -652,49 +1042,26 @@ gst_vp8_enc_finish (GstBaseVideoEncoder * base_video_encoder) } } - return TRUE; + return GST_FLOW_OK; } static vpx_image_t * gst_vp8_enc_buffer_to_image (GstVP8Enc * enc, GstBuffer * buffer) { - vpx_image_t *image = g_slice_new0 (vpx_image_t); + vpx_image_t *image = g_slice_new (vpx_image_t); guint8 *data = GST_BUFFER_DATA (buffer); - GstVideoState *state = &GST_BASE_VIDEO_CODEC (enc)->state; - image->fmt = VPX_IMG_FMT_I420; - image->bps = 12; - image->x_chroma_shift = image->y_chroma_shift = 1; - image->img_data = data; - image->w = image->d_w = state->width; - image->h = image->d_h = state->height; + memcpy (image, &enc->image, sizeof (*image)); - image->stride[VPX_PLANE_Y] = - gst_video_format_get_row_stride (state->format, 0, state->width); - image->stride[VPX_PLANE_U] = - gst_video_format_get_row_stride (state->format, 1, state->width); - image->stride[VPX_PLANE_V] = - gst_video_format_get_row_stride (state->format, 2, state->width); - image->planes[VPX_PLANE_Y] = - data + gst_video_format_get_component_offset (state->format, 0, - state->width, state->height); - image->planes[VPX_PLANE_U] = - data + gst_video_format_get_component_offset (state->format, 1, - state->width, state->height); - image->planes[VPX_PLANE_V] = - data + gst_video_format_get_component_offset (state->format, 2, - state->width, state->height); + image->img_data = data; + image->planes[VPX_PLANE_Y] += (data - (guint8 *) NULL); + image->planes[VPX_PLANE_U] += (data - (guint8 *) NULL); + image->planes[VPX_PLANE_V] += (data - (guint8 *) NULL); return image; } -static const int speed_table[] = { - VPX_DL_BEST_QUALITY, - VPX_DL_GOOD_QUALITY, - VPX_DL_REALTIME, -}; - -static gboolean +static GstFlowReturn gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) { @@ -702,10 +1069,9 @@ gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, const GstVideoState *state; vpx_codec_err_t status; int flags = 0; - vpx_codec_iter_t iter = NULL; - const vpx_codec_cx_pkt_t *pkt; vpx_image_t *image; GstVP8EncCoderHook *hook; + int quality; GST_DEBUG_OBJECT (base_video_encoder, "handle_frame"); @@ -717,105 +1083,22 @@ gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, GST_DEBUG_OBJECT (base_video_encoder, "size %d %d", state->width, state->height); - if (!encoder->inited) { - vpx_codec_enc_cfg_t cfg; - - status = vpx_codec_enc_config_default (&vpx_codec_vp8_cx_algo, &cfg, 0); - if (status != VPX_CODEC_OK) { - GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, - ("Failed to get default encoder configuration"), ("%s", - gst_vpx_error_name (status))); - return FALSE; - } - - cfg.g_w = state->width; - cfg.g_h = state->height; - cfg.g_timebase.num = state->fps_d; - cfg.g_timebase.den = state->fps_n; - - cfg.g_error_resilient = encoder->error_resilient; - cfg.g_lag_in_frames = encoder->max_latency; - cfg.g_threads = encoder->threads; - cfg.rc_end_usage = encoder->mode; - if (encoder->bitrate) { - cfg.rc_target_bitrate = encoder->bitrate / 1000; - } else { - cfg.rc_min_quantizer = 63 - encoder->quality * 5.0; - cfg.rc_max_quantizer = 63 - encoder->quality * 5.0; - cfg.rc_target_bitrate = encoder->bitrate; - } - - cfg.kf_mode = VPX_KF_AUTO; - cfg.kf_min_dist = 0; - cfg.kf_max_dist = encoder->max_keyframe_distance; - - cfg.g_pass = encoder->multipass_mode; - if (encoder->multipass_mode == VPX_RC_FIRST_PASS) { - encoder->first_pass_cache_content = g_byte_array_sized_new (4096); - } else if (encoder->multipass_mode == VPX_RC_LAST_PASS) { - GError *err = NULL; - - - if (!encoder->multipass_cache_file) { - GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, - ("No multipass cache file provided"), (NULL)); - return GST_FLOW_ERROR; - } - - if (!g_file_get_contents (encoder->multipass_cache_file, - (gchar **) & encoder->last_pass_cache_content.buf, - &encoder->last_pass_cache_content.sz, &err)) { - GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ, - ("Failed to read multipass cache file provided"), ("%s", - err->message)); - g_error_free (err); - return GST_FLOW_ERROR; - } - cfg.rc_twopass_stats_in = encoder->last_pass_cache_content; - } - - status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp8_cx_algo, - &cfg, 0); - if (status != VPX_CODEC_OK) { - GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, - ("Failed to initialize encoder"), ("%s", - gst_vpx_error_name (status))); - return GST_FLOW_ERROR; - } - - status = vpx_codec_control (&encoder->encoder, VP8E_SET_CPUUSED, 0); - if (status != VPX_CODEC_OK) { - GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_CPUUSED to 0: %s", - gst_vpx_error_name (status)); - } - - status = - vpx_codec_control (&encoder->encoder, VP8E_SET_ENABLEAUTOALTREF, - (encoder->auto_alt_ref_frames ? 1 : 0)); - if (status != VPX_CODEC_OK) { - GST_WARNING_OBJECT (encoder, - "Failed to set VP8E_ENABLEAUTOALTREF to %d: %s", - (encoder->auto_alt_ref_frames ? 1 : 0), gst_vpx_error_name (status)); - } - - gst_base_video_encoder_set_latency (base_video_encoder, 0, - gst_util_uint64_scale (encoder->max_latency, - state->fps_d * GST_SECOND, state->fps_n)); - encoder->inited = TRUE; - } - image = gst_vp8_enc_buffer_to_image (encoder, frame->sink_buffer); hook = g_slice_new0 (GstVP8EncCoderHook); hook->image = image; frame->coder_hook = hook; + frame->coder_hook_destroy_notify = + (GDestroyNotify) gst_vp8_enc_coder_hook_free; - if (encoder->force_keyframe) { + if (frame->force_keyframe) { flags |= VPX_EFLAG_FORCE_KF; } + quality = (encoder->speed == 0) ? VPX_DL_BEST_QUALITY : VPX_DL_GOOD_QUALITY; + status = vpx_codec_encode (&encoder->encoder, image, - encoder->n_frames, 1, flags, speed_table[encoder->speed]); + encoder->n_frames, 1, flags, quality); if (status != 0) { GST_ELEMENT_ERROR (encoder, LIBRARY, ENCODE, ("Failed to encode frame"), ("%s", gst_vpx_error_name (status))); @@ -825,62 +1108,7 @@ gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, return FALSE; } - pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); - while (pkt != NULL) { - GstBuffer *buffer; - gboolean invisible; - - GST_DEBUG_OBJECT (encoder, "packet %u type %d", (guint) pkt->data.frame.sz, - pkt->kind); - - if (pkt->kind == VPX_CODEC_STATS_PKT - && encoder->multipass_mode == VPX_RC_FIRST_PASS) { - GST_LOG_OBJECT (encoder, "handling STATS packet"); - - g_byte_array_append (encoder->first_pass_cache_content, - pkt->data.twopass_stats.buf, pkt->data.twopass_stats.sz); - - frame = gst_base_video_encoder_get_oldest_frame (base_video_encoder); - if (frame != NULL) { - buffer = gst_buffer_new (); - GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_PREROLL); - frame->src_buffer = buffer; - gst_base_video_encoder_finish_frame (base_video_encoder, frame); - } - - pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); - continue; - } else if (pkt->kind != VPX_CODEC_CX_FRAME_PKT) { - GST_LOG_OBJECT (encoder, "non frame pkt: %d", pkt->kind); - pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); - continue; - } - - invisible = (pkt->data.frame.flags & VPX_FRAME_IS_INVISIBLE) != 0; - frame = gst_base_video_encoder_get_oldest_frame (base_video_encoder); - g_assert (frame != NULL); - frame->is_sync_point = (pkt->data.frame.flags & VPX_FRAME_IS_KEY) != 0; - hook = frame->coder_hook; - - buffer = gst_buffer_new_and_alloc (pkt->data.frame.sz); - - memcpy (GST_BUFFER_DATA (buffer), pkt->data.frame.buf, pkt->data.frame.sz); - - if (hook->image) - g_slice_free (vpx_image_t, hook->image); - hook->image = NULL; - - if (invisible) { - hook->invisible = g_list_append (hook->invisible, buffer); - } else { - frame->src_buffer = buffer; - gst_base_video_encoder_finish_frame (base_video_encoder, frame); - } - - pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter); - } - - return TRUE; + return gst_vp8_enc_process (encoder); } static guint64 @@ -895,13 +1123,6 @@ _to_granulepos (guint64 frame_end_number, guint inv_count, guint keyframe_dist) return granulepos; } -static void -_gst_mini_object_unref0 (GstMiniObject * obj) -{ - if (obj) - gst_mini_object_unref (obj); -} - static GstFlowReturn gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) @@ -934,6 +1155,8 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, encoder->keyframe_distance++; } + GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_TIMESTAMP (frame->src_buffer); + GST_BUFFER_DURATION (buf) = 0; GST_BUFFER_OFFSET_END (buf) = _to_granulepos (frame->presentation_frame_number + 1, inv_count, encoder->keyframe_distance); @@ -941,7 +1164,8 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, gst_util_uint64_scale (frame->presentation_frame_number + 1, GST_SECOND * state->fps_d, state->fps_n); - gst_buffer_set_caps (buf, GST_BASE_VIDEO_CODEC (base_video_encoder)->caps); + gst_buffer_set_caps (buf, + GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); ret = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); if (ret != GST_FLOW_OK) { @@ -968,27 +1192,22 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, gst_util_uint64_scale (frame->presentation_frame_number + 1, GST_SECOND * state->fps_d, state->fps_n); + GST_LOG_OBJECT (base_video_encoder, "src ts: %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + ret = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (encoder, "flow error %d", ret); } done: - if (hook) { - g_list_foreach (hook->invisible, (GFunc) _gst_mini_object_unref0, NULL); - g_list_free (hook->invisible); - g_slice_free (GstVP8EncCoderHook, hook); - frame->coder_hook = NULL; - } - return ret; } static gboolean -gst_vp8_enc_sink_event (GstPad * pad, GstEvent * event) +gst_vp8_enc_sink_event (GstBaseVideoEncoder * benc, GstEvent * event) { - GstVP8Enc *enc = GST_VP8_ENC (gst_pad_get_parent (pad)); - gboolean ret; + GstVP8Enc *enc = GST_VP8_ENC (benc); if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) { GstTagList *list; @@ -999,10 +1218,8 @@ gst_vp8_enc_sink_event (GstPad * pad, GstEvent * event) gst_tag_setter_merge_tags (setter, list, mode); } - ret = enc->base_sink_event_func (pad, event); - gst_object_unref (enc); - - return ret; + /* just peeked, baseclass handles the rest */ + return FALSE; } #endif /* HAVE_VP8_ENCODER */ diff --git a/ext/vp8/gstvp8enc.h b/ext/vp8/gstvp8enc.h index 0a21647..3b01512 100644 --- a/ext/vp8/gstvp8enc.h +++ b/ext/vp8/gstvp8enc.h @@ -60,6 +60,10 @@ struct _GstVP8Enc /* properties */ int bitrate; enum vpx_rc_mode mode; + unsigned int minsection_pct; + unsigned int maxsection_pct; + int min_quantizer; + int max_quantizer; double quality; gboolean error_resilient; int max_latency; @@ -71,16 +75,24 @@ struct _GstVP8Enc GByteArray *first_pass_cache_content; vpx_fixed_buf_t last_pass_cache_content; gboolean auto_alt_ref_frames; + unsigned int lag_in_frames; + int sharpness; + int noise_sensitivity; +#ifdef HAVE_VP8ENC_TUNING + vp8e_tuning tuning; +#endif + int static_threshold; + gboolean drop_frame; + gboolean resize_allowed; + gboolean partitions; /* state */ - gboolean force_keyframe; gboolean inited; + vpx_image_t image; + int n_frames; int keyframe_distance; - - /* FIXME: Get a event vfunc in BaseVideoEncoder */ - GstPadEventFunction base_sink_event_func; }; struct _GstVP8EncClass diff --git a/ext/xvid/Makefile.in b/ext/xvid/Makefile.in index 616c274..bb95c8f 100644 --- a/ext/xvid/Makefile.in +++ b/ext/xvid/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstxvid_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstxvid_la_OBJECTS = libgstxvid_la-gstxvidenc.lo \ libgstxvid_la-gstxviddec.lo libgstxvid_la-gstxvid.lo libgstxvid_la_OBJECTS = $(am_libgstxvid_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstxvid_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstxvid_la_SOURCES) DIST_SOURCES = $(libgstxvid_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstxvid.la: $(libgstxvid_la_OBJECTS) $(libgstxvid_la_DEPENDENCIES) +libgstxvid.la: $(libgstxvid_la_OBJECTS) $(libgstxvid_la_DEPENDENCIES) $(EXTRA_libgstxvid_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstxvid_la_LINK) -rpath $(plugindir) $(libgstxvid_la_OBJECTS) $(libgstxvid_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -616,50 +643,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstxvid_la-gstxvidenc.lo: gstxvidenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -MT libgstxvid_la-gstxvidenc.lo -MD -MP -MF $(DEPDIR)/libgstxvid_la-gstxvidenc.Tpo -c -o libgstxvid_la-gstxvidenc.lo `test -f 'gstxvidenc.c' || echo '$(srcdir)/'`gstxvidenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvid_la-gstxvidenc.Tpo $(DEPDIR)/libgstxvid_la-gstxvidenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstxvidenc.c' object='libgstxvid_la-gstxvidenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstxvidenc.c' object='libgstxvid_la-gstxvidenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxvidenc.lo `test -f 'gstxvidenc.c' || echo '$(srcdir)/'`gstxvidenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxvidenc.lo `test -f 'gstxvidenc.c' || echo '$(srcdir)/'`gstxvidenc.c libgstxvid_la-gstxviddec.lo: gstxviddec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -MT libgstxvid_la-gstxviddec.lo -MD -MP -MF $(DEPDIR)/libgstxvid_la-gstxviddec.Tpo -c -o libgstxvid_la-gstxviddec.lo `test -f 'gstxviddec.c' || echo '$(srcdir)/'`gstxviddec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvid_la-gstxviddec.Tpo $(DEPDIR)/libgstxvid_la-gstxviddec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstxviddec.c' object='libgstxvid_la-gstxviddec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstxviddec.c' object='libgstxvid_la-gstxviddec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxviddec.lo `test -f 'gstxviddec.c' || echo '$(srcdir)/'`gstxviddec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxviddec.lo `test -f 'gstxviddec.c' || echo '$(srcdir)/'`gstxviddec.c libgstxvid_la-gstxvid.lo: gstxvid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -MT libgstxvid_la-gstxvid.lo -MD -MP -MF $(DEPDIR)/libgstxvid_la-gstxvid.Tpo -c -o libgstxvid_la-gstxvid.lo `test -f 'gstxvid.c' || echo '$(srcdir)/'`gstxvid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvid_la-gstxvid.Tpo $(DEPDIR)/libgstxvid_la-gstxvid.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstxvid.c' object='libgstxvid_la-gstxvid.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstxvid.c' object='libgstxvid_la-gstxvid.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxvid.lo `test -f 'gstxvid.c' || echo '$(srcdir)/'`gstxvid.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvid_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvid_la_CFLAGS) $(CFLAGS) -c -o libgstxvid_la-gstxvid.lo `test -f 'gstxvid.c' || echo '$(srcdir)/'`gstxvid.c mostlyclean-libtool: -rm -f *.lo @@ -766,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/xvid/gstxviddec.c b/ext/xvid/gstxviddec.c index 67e33c0..8cd4997 100644 --- a/ext/xvid/gstxviddec.c +++ b/ext/xvid/gstxviddec.c @@ -34,6 +34,11 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-xvid, " "width = (int) [ 0, MAX ], " + "height = (int) [ 0, MAX ], " "framerate = (fraction) [ 0/1, MAX ]; " + "video/mpeg, " + "mpegversion = (int) 4, " + "systemstream = (boolean) FALSE, " + "width = (int) [ 0, MAX ], " "height = (int) [ 0, MAX ], " "framerate = (fraction) [ 0/1, MAX ]") ); @@ -95,10 +100,9 @@ gst_xviddec_base_init (GstXvidDecClass * 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_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "XviD video decoder", "Codec/Decoder/Video", diff --git a/ext/xvid/gstxvidenc.c b/ext/xvid/gstxvidenc.c index dc60d0d..dcd6a4e 100644 --- a/ext/xvid/gstxvidenc.c +++ b/ext/xvid/gstxvidenc.c @@ -51,14 +51,37 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-xvid, " + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) 4, " + "systemstream = (boolean) FALSE, " + "width = (int) [ 0, MAX ], " + "height = (int) [ 0, MAX ], " + "framerate = (fraction) [ 0/1, MAX ], " + "profile = (string) simple, " + "level = (string) { 0, 1, 2, 3, 4a, 5, 6 };" + "video/mpeg, " + "mpegversion = (int) 4, " + "systemstream = (boolean) FALSE, " + "width = (int) [ 0, MAX ], " + "height = (int) [ 0, MAX ], " + "framerate = (fraction) [ 0/1, MAX ], " + "profile = (string) advanced-real-time-simple, " + "level = (string) { 1, 2, 3, 4 };" + "video/mpeg, " + "mpegversion = (int) 4, " + "systemstream = (boolean) FALSE, " "width = (int) [ 0, MAX ], " - "height = (int) [ 0, MAX ], " "framerate = (fraction) [ 0/1, MAX ]; " + "height = (int) [ 0, MAX ], " + "framerate = (fraction) [ 0/1, MAX ], " + "profile = (string) advanced-simple, " + "level = (string) { 0, 1, 2, 3, 4 };" "video/mpeg, " "mpegversion = (int) 4, " "systemstream = (boolean) FALSE, " + "width = (int) [ 0, MAX ], " "height = (int) [ 0, MAX ]; " + "video/x-xvid, " "width = (int) [ 0, MAX ], " - "height = (int) [ 0, MAX ], " "framerate = (fraction) [ 0/1, MAX ]") + "height = (int) [ 0, MAX ], " "framerate = (fraction) [ 0/1, MAX ];") ); @@ -106,6 +129,9 @@ gst_xvidenc_profile_get_type (void) {XVID_PROFILE_S_L1, "S_L1", "Simple profile, L1"}, {XVID_PROFILE_S_L2, "S_L2", "Simple profile, L2"}, {XVID_PROFILE_S_L3, "S_L3", "Simple profile, L3"}, + {XVID_PROFILE_S_L4a, "S_L4a", "Simple profile, L4a"}, + {XVID_PROFILE_S_L5, "S_L5", "Simple profile, L5"}, + {XVID_PROFILE_S_L6, "S_L6", "Simple profile, L6"}, {XVID_PROFILE_ARTS_L1, "ARTS_L1", "Advanced real-time simple profile, L1"}, {XVID_PROFILE_ARTS_L2, "ARTS_L2", @@ -218,10 +244,8 @@ gst_xvidenc_base_init (GstXvidEncClass * 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_add_static_pad_template (element_class, &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "XviD video encoder", "Codec/Encoder/Video", "XviD encoder based on xvidcore", @@ -578,11 +602,97 @@ gst_xvidenc_setup (GstXvidEnc * xvidenc) xvid_enc_create_t xenc; xvid_enc_plugin_t xplugin[2]; gint ret; + GstCaps *allowed_caps; + gint profile = -1; + + /* Negotiate profile/level with downstream */ + allowed_caps = gst_pad_get_allowed_caps (xvidenc->srcpad); + if (allowed_caps && !gst_caps_is_empty (allowed_caps)) { + const gchar *profile_str, *level_str; + + allowed_caps = gst_caps_make_writable (allowed_caps); + gst_caps_truncate (allowed_caps); + + profile_str = + gst_structure_get_string (gst_caps_get_structure (allowed_caps, 0), + "profile"); + level_str = + gst_structure_get_string (gst_caps_get_structure (allowed_caps, 0), + "level"); + if (profile_str) { + if (g_str_equal (profile_str, "simple")) { + if (!level_str) { + profile = XVID_PROFILE_S_L0; + } else if (g_str_equal (level_str, "0")) { + profile = XVID_PROFILE_S_L0; + } else if (g_str_equal (level_str, "1")) { + profile = XVID_PROFILE_S_L1; + } else if (g_str_equal (level_str, "2")) { + profile = XVID_PROFILE_S_L2; + } else if (g_str_equal (level_str, "3")) { + profile = XVID_PROFILE_S_L3; + } else if (g_str_equal (level_str, "4a")) { + profile = XVID_PROFILE_S_L4a; + } else if (g_str_equal (level_str, "5")) { + profile = XVID_PROFILE_S_L5; + } else if (g_str_equal (level_str, "6")) { + profile = XVID_PROFILE_S_L6; + } else { + GST_ERROR_OBJECT (xvidenc, + "Invalid profile/level combination (%s %s)", profile_str, + level_str); + } + } else if (g_str_equal (profile_str, "advanced-real-time-simple")) { + if (!level_str) { + profile = XVID_PROFILE_ARTS_L1; + } else if (g_str_equal (level_str, "1")) { + profile = XVID_PROFILE_ARTS_L1; + } else if (g_str_equal (level_str, "2")) { + profile = XVID_PROFILE_ARTS_L2; + } else if (g_str_equal (level_str, "3")) { + profile = XVID_PROFILE_ARTS_L3; + } else if (g_str_equal (level_str, "4")) { + profile = XVID_PROFILE_ARTS_L4; + } else { + GST_ERROR_OBJECT (xvidenc, + "Invalid profile/level combination (%s %s)", profile_str, + level_str); + } + } else if (g_str_equal (profile_str, "advanced-simple")) { + if (!level_str) { + profile = XVID_PROFILE_AS_L0; + } else if (g_str_equal (level_str, "0")) { + profile = XVID_PROFILE_AS_L0; + } else if (g_str_equal (level_str, "1")) { + profile = XVID_PROFILE_AS_L1; + } else if (g_str_equal (level_str, "2")) { + profile = XVID_PROFILE_AS_L2; + } else if (g_str_equal (level_str, "3")) { + profile = XVID_PROFILE_AS_L3; + } else if (g_str_equal (level_str, "4")) { + profile = XVID_PROFILE_AS_L4; + } else { + GST_ERROR_OBJECT (xvidenc, + "Invalid profile/level combination (%s %s)", profile_str, + level_str); + } + } else { + GST_ERROR_OBJECT (xvidenc, "Invalid profile (%s)", profile_str); + } + } + } + if (allowed_caps) + gst_caps_unref (allowed_caps); + + if (profile != -1) { + xvidenc->profile = profile; + g_object_notify (G_OBJECT (xvidenc), "profile"); + } /* see xvid.h for the meaning of all this. */ gst_xvid_init_struct (xenc); - xenc.profile = xvidenc->profile; + xenc.profile = xvidenc->used_profile = xvidenc->profile; xenc.width = xvidenc->width; xenc.height = xvidenc->height; xenc.max_bframes = xvidenc->max_bframes; @@ -783,6 +893,78 @@ gst_xvidenc_setcaps (GstPad * pad, GstCaps * vscaps) /* just to be sure */ gst_pad_fixate_caps (xvidenc->srcpad, new_caps); + if (xvidenc->used_profile != 0) { + switch (xvidenc->used_profile) { + case XVID_PROFILE_S_L0: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "0", NULL); + break; + case XVID_PROFILE_S_L1: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "1", NULL); + break; + case XVID_PROFILE_S_L2: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "2", NULL); + break; + case XVID_PROFILE_S_L3: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "3", NULL); + break; + case XVID_PROFILE_S_L4a: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "4a", NULL); + break; + case XVID_PROFILE_S_L5: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "5", NULL); + break; + case XVID_PROFILE_S_L6: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, "simple", + "level", G_TYPE_STRING, "6", NULL); + break; + case XVID_PROFILE_ARTS_L1: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-real-time-simple", "level", G_TYPE_STRING, "1", NULL); + break; + case XVID_PROFILE_ARTS_L2: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-real-time-simple", "level", G_TYPE_STRING, "2", NULL); + break; + case XVID_PROFILE_ARTS_L3: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-real-time-simple", "level", G_TYPE_STRING, "3", NULL); + break; + case XVID_PROFILE_ARTS_L4: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-real-time-simple", "level", G_TYPE_STRING, "4", NULL); + break; + case XVID_PROFILE_AS_L0: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-simple", "level", G_TYPE_STRING, "0", NULL); + break; + case XVID_PROFILE_AS_L1: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-simple", "level", G_TYPE_STRING, "1", NULL); + break; + case XVID_PROFILE_AS_L2: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-simple", "level", G_TYPE_STRING, "2", NULL); + break; + case XVID_PROFILE_AS_L3: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-simple", "level", G_TYPE_STRING, "3", NULL); + break; + case XVID_PROFILE_AS_L4: + gst_caps_set_simple (new_caps, "profile", G_TYPE_STRING, + "advanced-simple", "level", G_TYPE_STRING, "4", NULL); + break; + default: + g_assert_not_reached (); + break; + } + } + /* src pad should accept anyway */ ret = gst_pad_set_caps (xvidenc->srcpad, new_caps); gst_caps_unref (new_caps); diff --git a/ext/xvid/gstxvidenc.h b/ext/xvid/gstxvidenc.h index a2f32d0..121c99d 100644 --- a/ext/xvid/gstxvidenc.h +++ b/ext/xvid/gstxvidenc.h @@ -64,6 +64,7 @@ struct _GstXvidEnc { /* encoding profile */ gint profile; + gint used_profile; /* quantizer type; h263, MPEG */ gint quant_type; diff --git a/ext/zbar/Makefile.in b/ext/zbar/Makefile.in index 15dcba0..2fee228 100644 --- a/ext/zbar/Makefile.in +++ b/ext/zbar/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstzbar_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstzbar_la_OBJECTS = libgstzbar_la-gstzbar.lo libgstzbar_la_OBJECTS = $(am_libgstzbar_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstzbar_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstzbar_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstzbar_la_SOURCES) DIST_SOURCES = $(libgstzbar_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstzbar.la: $(libgstzbar_la_OBJECTS) $(libgstzbar_la_DEPENDENCIES) +libgstzbar.la: $(libgstzbar_la_OBJECTS) $(libgstzbar_la_DEPENDENCIES) $(EXTRA_libgstzbar_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstzbar_la_LINK) -rpath $(plugindir) $(libgstzbar_la_OBJECTS) $(libgstzbar_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,34 +641,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstzbar_la-gstzbar.lo: gstzbar.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstzbar_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstzbar_la_CFLAGS) $(CFLAGS) -MT libgstzbar_la-gstzbar.lo -MD -MP -MF $(DEPDIR)/libgstzbar_la-gstzbar.Tpo -c -o libgstzbar_la-gstzbar.lo `test -f 'gstzbar.c' || echo '$(srcdir)/'`gstzbar.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstzbar_la-gstzbar.Tpo $(DEPDIR)/libgstzbar_la-gstzbar.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstzbar.c' object='libgstzbar_la-gstzbar.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstzbar.c' object='libgstzbar_la-gstzbar.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstzbar_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstzbar_la_CFLAGS) $(CFLAGS) -c -o libgstzbar_la-gstzbar.lo `test -f 'gstzbar.c' || echo '$(srcdir)/'`gstzbar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstzbar_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstzbar_la_CFLAGS) $(CFLAGS) -c -o libgstzbar_la-gstzbar.lo `test -f 'gstzbar.c' || echo '$(srcdir)/'`gstzbar.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +771,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/zbar/gstzbar.c b/ext/zbar/gstzbar.c index fc770a8..c031034 100644 --- a/ext/zbar/gstzbar.c +++ b/ext/zbar/gstzbar.c @@ -17,13 +17,6 @@ * Boston, MA 02111-1307, USA. */ -/* - * This file was (probably) generated from - * gstvideotemplate.c,v 1.12 2004/01/07 21:07:12 ds Exp - * and - * make_filter,v 1.6 2004/01/07 21:33:01 ds Exp - */ - /** * SECTION:element-zbar * @@ -152,10 +145,10 @@ gst_zbar_base_init (gpointer g_class) "Detect bar codes in the video streams", "Stefan Kost "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_zbar_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_zbar_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_zbar_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_zbar_src_template); } static void @@ -284,7 +277,7 @@ gst_zbar_transform_ip (GstBaseTransform * base, GstBuffer * outbuf) { GstZBar *zbar = GST_ZBAR (base); guint8 *data; - guint size, rowstride; + guint rowstride; zbar_image_t *image; const zbar_symbol_t *symbol; int n; @@ -293,7 +286,6 @@ gst_zbar_transform_ip (GstBaseTransform * base, GstBuffer * outbuf) goto done; data = GST_BUFFER_DATA (outbuf); - size = GST_BUFFER_SIZE (outbuf); image = zbar_image_create (); diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in index 4b88274..2b7485e 100644 --- a/gst-libs/Makefile.in +++ b/gst-libs/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -129,7 +130,6 @@ 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@ @@ -147,7 +147,6 @@ 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@ @@ -182,6 +181,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -221,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,6 +239,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -246,13 +248,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -277,13 +282,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -331,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -362,8 +369,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -387,6 +398,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -411,10 +424,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -426,6 +443,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -450,6 +471,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -485,7 +507,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -755,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/Makefile.am b/gst-libs/gst/Makefile.am index f58086c..ab1c26e 100644 --- a/gst-libs/gst/Makefile.am +++ b/gst-libs/gst/Makefile.am @@ -1,9 +1,6 @@ -if BUILD_EXPERIMENTAL -EXPERIMENTAL_LIBS=basecamerabinsrc -endif -SUBDIRS = interfaces signalprocessor video $(EXPERIMENTAL_LIBS) +SUBDIRS = interfaces signalprocessor video basecamerabinsrc codecparsers -noinst_HEADERS = gst-i18n-plugin.h gettext.h -DIST_SUBDIRS = interfaces signalprocessor video basecamerabinsrc +noinst_HEADERS = gst-i18n-plugin.h gettext.h glib-compat-private.h +DIST_SUBDIRS = interfaces signalprocessor video basecamerabinsrc codecparsers diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in index 9c7569b..4485dcb 100644 --- a/gst-libs/gst/Makefile.in +++ b/gst-libs/gst/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -41,6 +41,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -78,11 +79,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -131,7 +132,6 @@ 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@ @@ -149,7 +149,6 @@ 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@ @@ -184,6 +183,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -223,6 +223,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -240,6 +241,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -248,13 +250,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -279,13 +284,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -333,6 +339,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -364,8 +371,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -389,6 +400,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -413,10 +426,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -428,6 +445,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -452,6 +473,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -487,7 +509,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -508,10 +529,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -@BUILD_EXPERIMENTAL_TRUE@EXPERIMENTAL_LIBS = basecamerabinsrc -SUBDIRS = interfaces signalprocessor video $(EXPERIMENTAL_LIBS) +SUBDIRS = interfaces signalprocessor video basecamerabinsrc codecparsers noinst_HEADERS = gst-i18n-plugin.h gettext.h -DIST_SUBDIRS = interfaces signalprocessor video basecamerabinsrc +DIST_SUBDIRS = interfaces signalprocessor video basecamerabinsrc codecparsers all: all-recursive .SUFFIXES: @@ -760,10 +780,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/basecamerabinsrc/Makefile.am b/gst-libs/gst/basecamerabinsrc/Makefile.am index 7cae6a2..ff8c782 100644 --- a/gst-libs/gst/basecamerabinsrc/Makefile.am +++ b/gst-libs/gst/basecamerabinsrc/Makefile.am @@ -20,8 +20,6 @@ libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS = \ -DGST_USE_UNSTABLE_API \ $(GST_CFLAGS) libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LIBADD = \ - $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ - $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-$(GST_MAJORMINOR) \ -lgstapp-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(GST_LIBS) libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) @@ -35,7 +33,6 @@ Android.mk: Makefile.am -:LDFLAGS $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LDFLAGS) \ $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LIBADD) \ -ldl \ - -:LIBFILTER_STATIC gstphotography-@GST_MAJORMINOR@ \ -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/basecamerabinsrc \ -:HEADERS $(libgstbasecamerabinsrcinclude_HEADERS) \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ diff --git a/gst-libs/gst/basecamerabinsrc/Makefile.in b/gst-libs/gst/basecamerabinsrc/Makefile.in index 2d1076b..d9b333e 100644 --- a/gst-libs/gst/basecamerabinsrc/Makefile.in +++ b/gst-libs/gst/basecamerabinsrc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -101,20 +102,25 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libgstbasecamerabinsrc_@GST_MAJORMINOR@includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = -libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) +libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS = libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo \ libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo \ libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS = \ $(am_libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) \ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -132,21 +138,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_SOURCES) DIST_SOURCES = $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_SOURCES) @@ -158,7 +164,6 @@ 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@ @@ -176,7 +181,6 @@ 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@ @@ -211,6 +215,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +255,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +273,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +282,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +316,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +371,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +403,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +432,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +458,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +477,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +505,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +541,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -555,8 +581,6 @@ libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS = \ $(GST_CFLAGS) libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LIBADD = \ - $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ - $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-$(GST_MAJORMINOR) \ -lgstapp-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(GST_LIBS) libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) @@ -625,7 +649,7 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstbasecamerabinsrc-@GST_MAJORMINOR@.la: $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_DEPENDENCIES) +libgstbasecamerabinsrc-@GST_MAJORMINOR@.la: $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -641,50 +665,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo: gstcamerabin-enum.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo -MD -MP -MF $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.Tpo -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.Tpo $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabin-enum.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabin-enum.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo: gstcamerabinpreview.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo -MD -MP -MF $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.Tpo -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo `test -f 'gstcamerabinpreview.c' || echo '$(srcdir)/'`gstcamerabinpreview.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.Tpo $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabinpreview.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabinpreview.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo `test -f 'gstcamerabinpreview.c' || echo '$(srcdir)/'`gstcamerabinpreview.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstcamerabinpreview.lo `test -f 'gstcamerabinpreview.c' || echo '$(srcdir)/'`gstcamerabinpreview.c libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo: gstbasecamerasrc.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo -MD -MP -MF $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.Tpo -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo `test -f 'gstbasecamerasrc.c' || echo '$(srcdir)/'`gstbasecamerasrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.Tpo $(DEPDIR)/libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasecamerasrc.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasecamerasrc.c' object='libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.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) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo `test -f 'gstbasecamerasrc.c' || echo '$(srcdir)/'`gstbasecamerasrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasecamerabinsrc_@GST_MAJORMINOR@_la-gstbasecamerasrc.lo `test -f 'gstbasecamerasrc.c' || echo '$(srcdir)/'`gstbasecamerasrc.c mostlyclean-libtool: -rm -f *.lo @@ -708,9 +726,7 @@ uninstall-libgstbasecamerabinsrc_@GST_MAJORMINOR@includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgstbasecamerabinsrc_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstbasecamerabinsrc_@GST_MAJORMINOR@includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstbasecamerabinsrc_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstbasecamerabinsrc_@GST_MAJORMINOR@includedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstbasecamerabinsrc_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -811,10 +827,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -929,7 +950,6 @@ Android.mk: Makefile.am -:LDFLAGS $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LDFLAGS) \ $(libgstbasecamerabinsrc_@GST_MAJORMINOR@_la_LIBADD) \ -ldl \ - -:LIBFILTER_STATIC gstphotography-@GST_MAJORMINOR@ \ -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/basecamerabinsrc \ -:HEADERS $(libgstbasecamerabinsrcinclude_HEADERS) \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ diff --git a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c index b2ae992..09995b8 100644 --- a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c +++ b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c @@ -111,57 +111,6 @@ GST_STATIC_PAD_TEMPLATE (GST_BASE_CAMERA_SRC_VIDEO_PAD_NAME, */ /** - * gst_base_camera_src_get_photography: - * @self: the camerasrc bin - * - * Get object implementing photography interface, if there is one. Otherwise - * returns NULL. - */ -GstPhotography * -gst_base_camera_src_get_photography (GstBaseCameraSrc * self) -{ - GstElement *elem; - - if (GST_IS_PHOTOGRAPHY (self)) { - elem = GST_ELEMENT (self); - } else { - elem = gst_bin_get_by_interface (GST_BIN (self), GST_TYPE_PHOTOGRAPHY); - } - - if (elem) { - return GST_PHOTOGRAPHY (elem); - } - - return NULL; -} - - -/** - * gst_base_camera_src_get_colorbalance: - * @self: the camerasrc bin - * - * Get object implementing colorbalance interface, if there is one. Otherwise - * returns NULL. - */ -GstColorBalance * -gst_base_camera_src_get_color_balance (GstBaseCameraSrc * self) -{ - GstElement *elem; - - if (GST_IS_COLOR_BALANCE (self)) { - elem = GST_ELEMENT (self); - } else { - elem = gst_bin_get_by_interface (GST_BIN (self), GST_TYPE_COLOR_BALANCE); - } - - if (elem) { - return GST_COLOR_BALANCE (self); - } - - return NULL; -} - -/** * gst_base_camera_src_set_mode: * @self: the camerasrc bin * @mode: the mode @@ -222,24 +171,6 @@ gst_base_camera_src_setup_preview (GstBaseCameraSrc * self, bclass->set_preview (self, preview_caps); } -/** - * gst_base_camera_src_get_allowed_input_caps: - * @self: the camerasrc bin - * - * Retrieve caps from videosrc describing formats it supports - * - * Returns: caps object from videosrc - */ -GstCaps * -gst_base_camera_src_get_allowed_input_caps (GstBaseCameraSrc * self) -{ - GstBaseCameraSrcClass *bclass = GST_BASE_CAMERA_SRC_GET_CLASS (self); - - g_return_val_if_fail (bclass->get_allowed_input_caps, NULL); - - return bclass->get_allowed_input_caps (self); -} - static void gst_base_camera_src_start_capture (GstBaseCameraSrc * src) { @@ -368,7 +299,11 @@ gst_base_camera_src_set_property (GObject * object, if (self->preview_filter) gst_object_unref (self->preview_filter); self->preview_filter = g_value_dup_object (value); - self->preview_filter_changed = TRUE; + if (!gst_camerabin_preview_set_filter (self->preview_pipeline, + self->preview_filter)) { + GST_WARNING_OBJECT (self, + "Cannot change preview filter, is element in NULL state?"); + } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec); @@ -452,19 +387,11 @@ gst_base_camera_src_change_state (GstElement * element, if (!construct_pipeline (self)) return GST_STATE_CHANGE_FAILURE; - /* recreate the preview pipeline */ - if (self->preview_pipeline && self->preview_filter_changed) { - gst_camerabin_destroy_preview_pipeline (self->preview_pipeline); - self->preview_pipeline = NULL; + if (self->preview_pipeline == NULL) { + /* failed to create preview pipeline, fail state change */ + return GST_STATE_CHANGE_FAILURE; } - if (self->preview_pipeline == NULL) - self->preview_pipeline = - gst_camerabin_create_preview_pipeline (GST_ELEMENT_CAST (self), - self->preview_filter); - - g_assert (self->preview_pipeline != NULL); - self->preview_filter_changed = FALSE; if (self->preview_caps) { GST_DEBUG_OBJECT (self, "Setting preview pipeline caps %" GST_PTR_FORMAT, @@ -476,6 +403,8 @@ gst_base_camera_src_change_state (GstElement * element, case GST_STATE_CHANGE_READY_TO_PAUSED: if (!setup_pipeline (self)) return GST_STATE_CHANGE_FAILURE; + /* without this the preview pipeline will not post buffer + * messages on the pipeline */ gst_element_set_state (self->preview_pipeline->pipeline, GST_STATE_PLAYING); break; @@ -486,6 +415,9 @@ gst_base_camera_src_change_state (GstElement * element, ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_element_set_state (self->preview_pipeline->pipeline, GST_STATE_READY); + break; case GST_STATE_CHANGE_READY_TO_NULL: gst_element_set_state (self->preview_pipeline->pipeline, GST_STATE_NULL); break; @@ -508,14 +440,13 @@ gst_base_camera_src_base_init (gpointer g_class) "Base class for camerabin src bin", "Source/Video", "Abstracts capture device for camerabin2", "Rob Clark "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&vfsrc_template)); + gst_element_class_add_static_pad_template (gstelement_class, &vfsrc_template); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&imgsrc_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &imgsrc_template); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&vidsrc_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &vidsrc_template); } static void @@ -589,26 +520,19 @@ gst_base_camera_src_class_init (GstBaseCameraSrcClass * klass) /* Signals */ basecamerasrc_signals[START_CAPTURE_SIGNAL] = - g_signal_new ("start-capture", + g_signal_new_class_handler ("start-capture", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GstBaseCameraSrcClass, private_start_capture), + G_CALLBACK (gst_base_camera_src_start_capture), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); basecamerasrc_signals[STOP_CAPTURE_SIGNAL] = - g_signal_new ("stop-capture", + g_signal_new_class_handler ("stop-capture", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GstBaseCameraSrcClass, private_stop_capture), + G_CALLBACK (gst_base_camera_src_stop_capture), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - /* TODO these should be moved to a private struct - * that is allocated sequentially to the main struct as said at: - * http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-add-class-private - */ - klass->private_start_capture = gst_base_camera_src_start_capture; - klass->private_stop_capture = gst_base_camera_src_stop_capture; - gstelement_class->change_state = gst_base_camera_src_change_state; } @@ -626,6 +550,9 @@ gst_base_camera_src_init (GstBaseCameraSrc * self, self->capturing_mutex = g_mutex_new (); self->post_preview = DEFAULT_POST_PREVIEW; + + self->preview_pipeline = + gst_camerabin_create_preview_pipeline (GST_ELEMENT_CAST (self), NULL); } void diff --git a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h index 1c412e4..9d63e2d 100644 --- a/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h +++ b/gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h @@ -1,6 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Texas Instruments, Inc + * Copyright (C) 2011 Thiago Santos * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -29,8 +30,6 @@ #include #include -#include -#include #include "gstcamerabin-enum.h" #include "gstcamerabinpreview.h" @@ -77,7 +76,6 @@ struct _GstBaseCameraSrc gboolean post_preview; GstElement *preview_filter; GstCameraBinPreviewPipelineData *preview_pipeline; - gboolean preview_filter_changed; /* Resolution of the buffers configured to camerabin */ gint width; @@ -92,7 +90,7 @@ struct _GstBaseCameraSrc /** * GstBaseCameraSrcClass: - * @construct_pipeline: construct pipeline must be implemented by derived class + * @construct_pipeline: construct pipeline * @setup_pipeline: configure pipeline for the chosen settings * @set_zoom: set the zoom * @set_mode: set the mode @@ -101,29 +99,27 @@ struct _GstBaseCameraSrcClass { GstBinClass parent; - /* construct pipeline must be implemented by derived class */ + /* Construct pipeline. (called in GST_STATE_CHANGE_NULL_TO_READY) Optional. */ gboolean (*construct_pipeline) (GstBaseCameraSrc *self); - /* optional */ + /* (called in GST_STATE_CHANGE_READY_TO_PAUSED). Optional. */ gboolean (*setup_pipeline) (GstBaseCameraSrc *self); - /* set the zoom */ + /* Set the zoom. If set, called when changing 'zoom' property. Optional. */ void (*set_zoom) (GstBaseCameraSrc *self, gfloat zoom); - /* set the mode */ + /* Set the mode. If set, called when changing 'mode' property. Optional. */ gboolean (*set_mode) (GstBaseCameraSrc *self, GstCameraBinMode mode); - /* set preview caps */ + /* Set preview caps. If set, called called when setting new 'preview-caps'. Optional. */ gboolean (*set_preview) (GstBaseCameraSrc *self, GstCaps *preview_caps); - /* */ - GstCaps * (*get_allowed_input_caps) (GstBaseCameraSrc * self); - - void (*private_start_capture) (GstBaseCameraSrc * src); - void (*private_stop_capture) (GstBaseCameraSrc * src); + /* Called by the handler for 'start-capture'. Mandatory. */ gboolean (*start_capture) (GstBaseCameraSrc * src); + + /* Called by the handler for 'stop-capture'. Mandatory. */ void (*stop_capture) (GstBaseCameraSrc * src); gpointer _gst_reserved[GST_PADDING_LARGE]; @@ -134,13 +130,9 @@ struct _GstBaseCameraSrcClass #define MAX_ZOOM 10.0f #define ZOOM_1X MIN_ZOOM -GstPhotography * gst_base_camera_src_get_photography (GstBaseCameraSrc *self); -GstColorBalance * gst_base_camera_src_get_color_balance (GstBaseCameraSrc *self); - gboolean gst_base_camera_src_set_mode (GstBaseCameraSrc *self, GstCameraBinMode mode); void gst_base_camera_src_setup_zoom (GstBaseCameraSrc * self); void gst_base_camera_src_setup_preview (GstBaseCameraSrc * self, GstCaps * preview_caps); -GstCaps * gst_base_camera_src_get_allowed_input_caps (GstBaseCameraSrc * self); void gst_base_camera_src_finish_capture (GstBaseCameraSrc *self); diff --git a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c index 6e223dc..4273c71 100644 --- a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c +++ b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c @@ -31,16 +31,51 @@ #include "gstcamerabinpreview.h" #include "gstbasecamerasrc.h" -static GstFlowReturn -gst_camerabin_preview_pipeline_new_preroll (GstAppSink * appsink, - gpointer user_data) +GST_DEBUG_CATEGORY_EXTERN (base_camera_src_debug); +#define GST_CAT_DEFAULT base_camera_src_debug + +static void _gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * + preview, GstCaps * caps); + +static gboolean +bus_callback (GstBus * bus, GstMessage * message, gpointer user_data) { - GstBuffer *buffer; + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_ERROR:{ + GError *err; + GstCameraBinPreviewPipelineData *data; - buffer = gst_app_sink_pull_preroll (appsink); - gst_buffer_unref (buffer); + data = user_data; - return GST_FLOW_OK; + gst_message_parse_error (message, &err, NULL); + GST_WARNING ("Error from preview pipeline: %s", err->message); + g_error_free (err); + + /* TODO Not sure if we should post an Error or Warning here */ + GST_ELEMENT_ERROR (data, CORE, FAILED, + ("fatal error in preview pipeline, disposing the pipeline"), (NULL)); + + /* Possible error situations: + * 1) cond_wait pending. prevent deadlock by signalling the cond + * 2) preview_pipeline_post called with new buffer to handle. returns + * because data->pipeline is set to null + * 3) new preview caps incoming. returns because data->pipeline is null + */ + + if (data->pipeline) { + gst_element_set_state (data->pipeline, GST_STATE_NULL); + gst_object_unref (data->pipeline); + data->pipeline = NULL; + } + + g_cond_signal (data->processing_cond); + + break; + } + default: + break; + } + return TRUE; } static GstFlowReturn @@ -66,6 +101,14 @@ gst_camerabin_preview_pipeline_new_buffer (GstAppSink * appsink, "This element has no bus, therefore no message sent!"); } + g_mutex_lock (data->processing_lock); + + data->processing--; + if (data->processing == 0) + g_cond_signal (data->processing_cond); + + g_mutex_unlock (data->processing_lock); + return GST_FLOW_OK; } @@ -85,52 +128,78 @@ gst_camerabin_create_preview_pipeline (GstElement * element, { GstCameraBinPreviewPipelineData *data; GstElement *csp; - GstElement *csp2; GstElement *vscale; gboolean added = FALSE; + gboolean linkfail = FALSE; + GstBus *bus; GstAppSinkCallbacks callbacks = { 0, }; - data = g_new (GstCameraBinPreviewPipelineData, 1); + data = g_new0 (GstCameraBinPreviewPipelineData, 1); data->pipeline = gst_pipeline_new ("preview-pipeline"); data->appsrc = gst_element_factory_make ("appsrc", "preview-appsrc"); - data->capsfilter = gst_element_factory_make ("capsfilter", - "preview-capsfilter"); data->appsink = gst_element_factory_make ("appsink", "preview-appsink"); - csp = gst_element_factory_make ("ffmpegcolorspace", "preview-csp0"); - csp2 = gst_element_factory_make ("ffmpegcolorspace", "preview-csp1"); + csp = gst_element_factory_make ("ffmpegcolorspace", "preview-csp"); vscale = gst_element_factory_make ("videoscale", "preview-vscale"); - if (!data->appsrc || !data->capsfilter || !data->appsink || !csp || - !csp2 || !vscale) { + if (!data->appsrc || !data->appsink || !csp || !vscale) { goto error; } - gst_bin_add_many (GST_BIN (data->pipeline), data->appsrc, data->capsfilter, - data->appsink, csp, csp2, vscale, NULL); + g_object_set (data->appsrc, "emit-signals", FALSE, NULL); + g_object_set (data->appsink, "sync", FALSE, "enable-last-buffer", + FALSE, NULL); + + gst_bin_add_many (GST_BIN (data->pipeline), data->appsrc, + data->appsink, csp, vscale, NULL); if (filter) gst_bin_add (GST_BIN (data->pipeline), gst_object_ref (filter)); added = TRUE; if (filter) { - if (!gst_element_link_many (data->appsrc, filter, csp, vscale, csp2, - data->capsfilter, data->appsink, NULL)) - goto error; + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (data->appsrc, "src", + filter, NULL, GST_PAD_LINK_CHECK_NOTHING)); + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (filter, NULL, + vscale, "sink", GST_PAD_LINK_CHECK_CAPS)); } else { - if (!gst_element_link_many (data->appsrc, csp, vscale, csp2, - data->capsfilter, data->appsink, NULL)) - goto error; + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (data->appsrc, "src", + vscale, "sink", GST_PAD_LINK_CHECK_NOTHING)); + } + + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (vscale, "src", csp, + "sink", GST_PAD_LINK_CHECK_NOTHING)); + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (csp, "src", + data->appsink, "sink", GST_PAD_LINK_CHECK_NOTHING)); + + if (linkfail) { + GST_WARNING ("Failed to link preview pipeline elements"); + goto error; } - callbacks.new_preroll = gst_camerabin_preview_pipeline_new_preroll; callbacks.new_buffer = gst_camerabin_preview_pipeline_new_buffer; gst_app_sink_set_callbacks ((GstAppSink *) data->appsink, &callbacks, data, NULL); + bus = gst_pipeline_get_bus (GST_PIPELINE (data->pipeline)); + gst_bus_add_watch (bus, bus_callback, data); + gst_object_unref (bus); + g_object_set (data->appsink, "sync", FALSE, NULL); data->element = element; data->filter = filter; + data->vscale = vscale; + + data->processing_lock = g_mutex_new (); + data->processing_cond = g_cond_new (); + + data->pending_preview_caps = NULL; + data->processing = 0; return data; error: @@ -138,14 +207,10 @@ error: if (!added) { if (csp) gst_object_unref (csp); - if (csp2) - gst_object_unref (csp2); if (vscale) gst_object_unref (vscale); if (data->appsrc) gst_object_unref (data->appsrc); - if (data->capsfilter) - gst_object_unref (data->capsfilter); if (data->appsink) gst_object_unref (data->appsink); } @@ -163,6 +228,16 @@ void gst_camerabin_destroy_preview_pipeline (GstCameraBinPreviewPipelineData * preview) { + g_return_if_fail (preview != NULL); + + if (preview->processing_lock) { + g_mutex_free (preview->processing_lock); + preview->processing_lock = NULL; + } + if (preview->processing_cond) { + g_cond_free (preview->processing_cond); + preview->processing_cond = NULL; + } if (preview->pipeline) { gst_element_set_state (preview->pipeline, GST_STATE_NULL); gst_object_unref (preview->pipeline); @@ -188,28 +263,36 @@ gst_camerabin_preview_pipeline_post (GstCameraBinPreviewPipelineData * preview, g_return_val_if_fail (preview->pipeline != NULL, FALSE); g_return_val_if_fail (buffer, FALSE); + g_mutex_lock (preview->processing_lock); + g_return_val_if_fail (preview->pipeline != NULL, FALSE); + + if (preview->pending_preview_caps) { + if (preview->processing > 0) { + g_cond_wait (preview->processing_cond, preview->processing_lock); + } + _gst_camerabin_preview_set_caps (preview, preview->pending_preview_caps); + gst_caps_replace (&preview->pending_preview_caps, NULL); + } + + preview->processing++; + gst_app_src_push_buffer ((GstAppSrc *) preview->appsrc, gst_buffer_ref (buffer)); + g_mutex_unlock (preview->processing_lock); + return TRUE; } -/** - * gst_camerabin_preview_set_caps: - * @preview: the #GstCameraBinPreviewPipelineData - * @caps: the #GstCaps to be set - * - * The caps that preview buffers should have when posted - * on the bus - */ -void -gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * preview, +static void +_gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * preview, GstCaps * caps) { GstState state, pending; GstStateChangeReturn ret; g_return_if_fail (preview != NULL); + g_return_if_fail (preview->pipeline != NULL); ret = gst_element_get_state (preview->pipeline, &state, &pending, 0); if (ret == GST_STATE_CHANGE_FAILURE) { @@ -217,10 +300,105 @@ gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * preview, state = GST_STATE_PLAYING; pending = GST_STATE_VOID_PENDING; } - gst_element_set_state (preview->pipeline, GST_STATE_NULL); - g_object_set (preview->capsfilter, "caps", caps, NULL); + g_object_set (preview->appsink, "caps", caps, NULL); if (pending != GST_STATE_VOID_PENDING) state = pending; gst_element_set_state (preview->pipeline, state); } + +/** + * gst_camerabin_preview_set_caps: + * @preview: the #GstCameraBinPreviewPipelineData + * @caps: the #GstCaps to be set (a new ref will be taken) + * + * The caps that preview buffers should have when posted + * on the bus + */ +void +gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * preview, + GstCaps * caps) +{ + g_return_if_fail (preview != NULL); + + g_mutex_lock (preview->processing_lock); + + if (preview->processing == 0) { + _gst_camerabin_preview_set_caps (preview, caps); + } else { + GST_DEBUG ("Preview pipeline busy, storing new caps as pending"); + gst_caps_replace (&preview->pending_preview_caps, caps); + } + g_mutex_unlock (preview->processing_lock); +} + +/** + * gst_camerabin_preview_set_filter: + * @preview: the #GstCameraBinPreviewPipelineData + * @filter: Custom filter to process preview data (an extra ref is taken) + * + * Set the filter element into preview pipeline. + * + * Returns: %TRUE on success + */ +gboolean +gst_camerabin_preview_set_filter (GstCameraBinPreviewPipelineData * preview, + GstElement * filter) +{ + gboolean ret = TRUE; + GstState current; + + g_return_val_if_fail (preview != NULL, FALSE); + + GST_DEBUG ("Preview pipeline setting new filter %p", filter); + + g_mutex_lock (preview->processing_lock); + + gst_element_get_state (preview->pipeline, ¤t, NULL, 0); + + if (preview->processing == 0 && current == GST_STATE_NULL) { + gboolean linkfail = FALSE; + + if (preview->filter) { + /* Unlink and remove old filter */ + gst_element_unlink (preview->appsrc, preview->filter); + gst_element_unlink (preview->filter, preview->vscale); + gst_bin_remove (GST_BIN (preview->pipeline), preview->filter); + } else { + /* Make room for filter by breaking the link between appsrc and vcale */ + gst_element_unlink (preview->appsrc, preview->vscale); + } + + if (filter) { + /* Add and link the new filter between appsrc and vscale */ + gst_bin_add (GST_BIN (preview->pipeline), gst_object_ref (filter)); + + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (preview->appsrc, + "src", filter, NULL, GST_PAD_LINK_CHECK_NOTHING)); + + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (filter, NULL, + preview->vscale, "sink", GST_PAD_LINK_CHECK_CAPS)); + } else { + /* No filter was given. Just link the appsrc to vscale directly */ + linkfail |= + GST_PAD_LINK_FAILED (gst_element_link_pads_full (preview->appsrc, + "src", preview->vscale, "sink", GST_PAD_LINK_CHECK_NOTHING)); + } + + if (linkfail) { + GST_WARNING ("Linking the filter to pipeline failed"); + ret = FALSE; + } else { + GST_DEBUG ("Linking the filter to pipeline successful"); + preview->filter = filter; + } + } else { + GST_WARNING ("Cannot change filter when pipeline is running"); + ret = FALSE; + } + g_mutex_unlock (preview->processing_lock); + + return ret; +} diff --git a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h index 4c8cf21..eb4a45f 100644 --- a/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h +++ b/gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h @@ -35,15 +35,22 @@ typedef struct GstElement *appsrc; GstElement *filter; - GstElement *capsfilter; GstElement *appsink; + GstElement *vscale; GstElement *element; + + GstCaps *pending_preview_caps; + guint processing; + GMutex *processing_lock; + GCond *processing_cond; + } GstCameraBinPreviewPipelineData; GstCameraBinPreviewPipelineData *gst_camerabin_create_preview_pipeline (GstElement * element, GstElement * filter); void gst_camerabin_destroy_preview_pipeline (GstCameraBinPreviewPipelineData * preview); gboolean gst_camerabin_preview_pipeline_post (GstCameraBinPreviewPipelineData * preview, GstBuffer * buffer); void gst_camerabin_preview_set_caps (GstCameraBinPreviewPipelineData * preview, GstCaps * caps); +gboolean gst_camerabin_preview_set_filter (GstCameraBinPreviewPipelineData * preview, GstElement * filter); #endif /* #ifndef __CAMERABIN_PREVIEW_H_ */ diff --git a/gst-libs/gst/codecparsers/Makefile.am b/gst-libs/gst/codecparsers/Makefile.am new file mode 100644 index 0000000..2593f85 --- /dev/null +++ b/gst-libs/gst/codecparsers/Makefile.am @@ -0,0 +1,43 @@ +lib_LTLIBRARIES = libgstcodecparsers-@GST_MAJORMINOR@.la + +libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES = \ + gstmpegvideoparser.c gsth264parser.c gstvc1parser.c gstmpeg4parser.c \ + parserutils.c + +libgstcodecparsers_@GST_MAJORMINOR@includedir = \ + $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/codecparsers + +noinst_HEADERS = parserutils.h + +libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS = \ + gstmpegvideoparser.h gsth264parser.h gstvc1parser.h gstmpeg4parser.h + +libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_CFLAGS) + +libgstcodecparsers_@GST_MAJORMINOR@_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) + +libgstcodecparsers_@GST_MAJORMINOR@_la_LDFLAGS = \ + $(GST_LIB_LDFLAGS) \ + $(GST_ALL_LDFLAGS) \ + $(GST_LT_LDFLAGS) + +Android.mk: $(BUILT_SOURCES) Makefile.am + androgenizer -:PROJECT libgstcodecparsers -:STATIC libgstcodecparsers-@GST_MAJORMINOR@ \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES) \ + $(built_sources) \ + -:CFLAGS $(DEFS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) \ + -:LDFLAGS $(libgstcodecparsers_@GST_MAJORMINOR@_la_LDFLAGS) \ + $(libgstcodecparsers@GST_MAJORMINOR@_la_LIBADD) \ + -ldl \ + -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/codecparsers \ + -:HEADERS $(libgstcodecparsersinclude_HEADERS) \ + $(built_headers) \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + > $@ diff --git a/gst-libs/gst/codecparsers/Makefile.in b/gst-libs/gst/codecparsers/Makefile.in new file mode 100644 index 0000000..c6f9157 --- /dev/null +++ b/gst-libs/gst/codecparsers/Makefile.in @@ -0,0 +1,982 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gst-libs/gst/codecparsers +DIST_COMMON = $(libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS) \ + $(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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstcodecparsers_@GST_MAJORMINOR@_la_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstcodecparsers_@GST_MAJORMINOR@_la_OBJECTS = \ + libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo \ + libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo \ + libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo \ + libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo \ + libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo +libgstcodecparsers_@GST_MAJORMINOR@_la_OBJECTS = \ + $(am_libgstcodecparsers_@GST_MAJORMINOR@_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstcodecparsers_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \ + --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) \ + $(CFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES) +DIST_SOURCES = $(libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES) +HEADERS = $(libgstcodecparsers_@GST_MAJORMINOR@include_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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@ +lib_LTLIBRARIES = libgstcodecparsers-@GST_MAJORMINOR@.la +libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES = \ + gstmpegvideoparser.c gsth264parser.c gstvc1parser.c gstmpeg4parser.c \ + parserutils.c + +libgstcodecparsers_@GST_MAJORMINOR@includedir = \ + $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/codecparsers + +noinst_HEADERS = parserutils.h +libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS = \ + gstmpegvideoparser.h gsth264parser.h gstvc1parser.h gstmpeg4parser.h + +libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_CFLAGS) + +libgstcodecparsers_@GST_MAJORMINOR@_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) + +libgstcodecparsers_@GST_MAJORMINOR@_la_LDFLAGS = \ + $(GST_LIB_LDFLAGS) \ + $(GST_ALL_LDFLAGS) \ + $(GST_LT_LDFLAGS) + +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 gst-libs/gst/codecparsers/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst-libs/gst/codecparsers/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-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || 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)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_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 +libgstcodecparsers-@GST_MAJORMINOR@.la: $(libgstcodecparsers_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstcodecparsers_@GST_MAJORMINOR@_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstcodecparsers_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstcodecparsers_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo: gstmpegvideoparser.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) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo -MD -MP -MF $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.Tpo -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo `test -f 'gstmpegvideoparser.c' || echo '$(srcdir)/'`gstmpegvideoparser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.Tpo $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegvideoparser.c' object='libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpegvideoparser.lo `test -f 'gstmpegvideoparser.c' || echo '$(srcdir)/'`gstmpegvideoparser.c + +libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo: gsth264parser.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) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo -MD -MP -MF $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.Tpo -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo `test -f 'gsth264parser.c' || echo '$(srcdir)/'`gsth264parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.Tpo $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsth264parser.c' object='libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gsth264parser.lo `test -f 'gsth264parser.c' || echo '$(srcdir)/'`gsth264parser.c + +libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo: gstvc1parser.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) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo -MD -MP -MF $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.Tpo -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo `test -f 'gstvc1parser.c' || echo '$(srcdir)/'`gstvc1parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.Tpo $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvc1parser.c' object='libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstvc1parser.lo `test -f 'gstvc1parser.c' || echo '$(srcdir)/'`gstvc1parser.c + +libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo: gstmpeg4parser.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) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo -MD -MP -MF $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.Tpo -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo `test -f 'gstmpeg4parser.c' || echo '$(srcdir)/'`gstmpeg4parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.Tpo $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpeg4parser.c' object='libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-gstmpeg4parser.lo `test -f 'gstmpeg4parser.c' || echo '$(srcdir)/'`gstmpeg4parser.c + +libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo: parserutils.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) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo -MD -MP -MF $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.Tpo -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo `test -f 'parserutils.c' || echo '$(srcdir)/'`parserutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.Tpo $(DEPDIR)/libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parserutils.c' object='libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcodecparsers_@GST_MAJORMINOR@_la-parserutils.lo `test -f 'parserutils.c' || echo '$(srcdir)/'`parserutils.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS: $(libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" + @list='$(libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" || 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_HEADER) $$files '$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" || exit $$?; \ + done + +uninstall-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libgstcodecparsers_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcodecparsers_@GST_MAJORMINOR@includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir) + +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)$(libdir)" "$(DESTDIR)$(libgstcodecparsers_@GST_MAJORMINOR@includedir)"; 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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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-libLTLIBRARIES clean-libtool \ + 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-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +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-libLTLIBRARIES \ + uninstall-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool 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-libLTLIBRARIES \ + install-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS \ + 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-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-libLTLIBRARIES \ + uninstall-libgstcodecparsers_@GST_MAJORMINOR@includeHEADERS + + +Android.mk: $(BUILT_SOURCES) Makefile.am + androgenizer -:PROJECT libgstcodecparsers -:STATIC libgstcodecparsers-@GST_MAJORMINOR@ \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstcodecparsers_@GST_MAJORMINOR@_la_SOURCES) \ + $(built_sources) \ + -:CFLAGS $(DEFS) $(libgstcodecparsers_@GST_MAJORMINOR@_la_CFLAGS) \ + -:LDFLAGS $(libgstcodecparsers_@GST_MAJORMINOR@_la_LDFLAGS) \ + $(libgstcodecparsers@GST_MAJORMINOR@_la_LIBADD) \ + -ldl \ + -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/codecparsers \ + -:HEADERS $(libgstcodecparsersinclude_HEADERS) \ + $(built_headers) \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + > $@ + +# 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/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c new file mode 100644 index 0000000..572a28d --- /dev/null +++ b/gst-libs/gst/codecparsers/gsth264parser.c @@ -0,0 +1,1955 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * Some bits C-c,C-v'ed and s/4/3 from h264parse and videoparsers/h264parse.c: + * Copyright (C) <2010> Mark Nauwelaerts + * Copyright (C) <2010> Collabora Multimedia + * Copyright (C) <2010> Nokia Corporation + * + * (C) 2005 Michal Benes + * (C) 2008 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. + */ + +/** + * SECTION:gsth264parser + * @short_description: Convenience library for h264 video + * bitstream parsing. + * + * It offers you bitstream parsing in AVC mode or not. To identify Nals in a bitstream and + * parse its headers, you should call: + * + * + * #gst_h264_parser_identify_nalu to identify the following nalu in not AVC bitstreams + * + * + * #gst_h264_parser_identify_nalu_avc to identify the nalu in AVC bitstreams + * + * + * + * Then, depending on the #GstH264NalUnitType of the newly parsed #GstH264NalUnit, you should + * call the differents functions to parse the structure: + * + * + * From #GST_H264_NAL_SLICE to #GST_H264_NAL_SLICE_IDR: #gst_h264_parser_parse_slice_hdr + * + * + * #GST_H264_NAL_SEI: #gst_h264_parser_parse_sei + * + * + * #GST_H264_NAL_SPS: #gst_h264_parser_parse_sps + * + * + * #GST_H264_NAL_PPS: #gst_h264_parser_parse_pps + * + * + * Any other: #gst_h264_parser_parse_nal + * + * + * + * Note: You should always call gst_h264_parser_parse_nal if you don't actually need + * #GstH264NalUnitType to be parsed for your personnal use, in order to guarantee that the + * #GstH264NalParser is always up to date. + * + * For more details about the structures, look at the ITU-T H.264 and ISO/IEC 14496-10 – MPEG-4 + * Part 10 specifications, you can download them from: + * + * + * + * ITU-T H.264: http://www.itu.int/rec/T-REC-H.264 + * + * + * ISO/IEC 14496-10: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=56538 + * + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gsth264parser.h" + +#include +#include +#include + +GST_DEBUG_CATEGORY (h264_parser_debug); +#define GST_CAT_DEFAULT h264_parser_debug + +/**** Default scaling_lists according to Table 7-2 *****/ +static const guint8 default_4x4_intra[16] = { + 6, 13, 13, 20, 20, 20, 28, 28, 28, 28, 32, 32, + 32, 37, 37, 42 +}; + +static const guint8 default_4x4_inter[16] = { + 10, 14, 14, 20, 20, 20, 24, 24, 24, 24, 27, 27, + 27, 30, 30, 34 +}; + +static const guint8 default_8x8_intra[64] = { + 6, 10, 10, 13, 11, 13, 16, 16, 16, 16, 18, 18, + 18, 18, 18, 23, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, + 27, 27, 27, 27, 27, 29, 29, 29, 29, 29, 29, 29, 31, 31, 31, 31, 31, 31, 33, + 33, 33, 33, 33, 36, 36, 36, 36, 38, 38, 38, 40, 40, 42 +}; + +static const guint8 default_8x8_inter[64] = { + 9, 13, 13, 15, 13, 15, 17, 17, 17, 17, 19, 19, + 19, 19, 19, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, + 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 28, + 28, 28, 28, 28, 30, 30, 30, 30, 32, 32, 32, 33, 33, 35 +}; + +static const guint8 zigzag_8x8[64] = { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63 +}; + +static const guint8 zigzag_4x4[16] = { + 0, 1, 4, 8, + 5, 2, 3, 6, + 9, 12, 13, 10, + 7, 11, 14, 15, +}; + +/* Compute Ceil(Log2(v)) */ +/* Derived from branchless code for integer log2(v) from: + */ +static guint +ceil_log2 (guint32 v) +{ + guint r, shift; + + v--; + r = (v > 0xFFFF) << 4; + v >>= r; + shift = (v > 0xFF) << 3; + v >>= shift; + r |= shift; + shift = (v > 0xF) << 2; + v >>= shift; + r |= shift; + shift = (v > 0x3) << 1; + v >>= shift; + r |= shift; + r |= (v >> 1); + return r + 1; +} + +/****** Nal parser ******/ + +typedef struct +{ + const guint8 *data; + guint size; + + guint byte; /* Byte position */ + guint bits_in_cache; /* bitpos in the cache of next bit */ + guint8 first_byte; + guint64 cache; /* cached bytes */ +} NalReader; + +static void +nal_reader_init (NalReader * nr, const guint8 * data, guint size) +{ + nr->data = data; + nr->size = size; + + nr->byte = 0; + nr->bits_in_cache = 0; + /* fill with something other than 0 to detect emulation prevention bytes */ + nr->first_byte = 0xff; + nr->cache = 0xff; +} + +static gboolean +nal_reader_read (NalReader * nr, guint nbits) +{ + if (G_UNLIKELY (nr->byte * 8 + (nbits - nr->bits_in_cache) > nr->size * 8)) { + GST_DEBUG ("Can not read %u bits, bits in cache %u, Byte * 8 %u, size in " + "bits %u", nbits, nr->bits_in_cache, nr->byte * 8, nr->size * 8); + return FALSE; + } + + while (nr->bits_in_cache < nbits) { + guint8 byte; + gboolean check_three_byte; + + check_three_byte = TRUE; + next_byte: + if (G_UNLIKELY (nr->byte >= nr->size)) + return FALSE; + + byte = nr->data[nr->byte++]; + + /* check if the byte is a emulation_prevention_three_byte */ + if (check_three_byte && byte == 0x03 && nr->first_byte == 0x00 && + ((nr->cache & 0xff) == 0)) { + /* next byte goes unconditionally to the cache, even if it's 0x03 */ + check_three_byte = FALSE; + goto next_byte; + } + nr->cache = (nr->cache << 8) | nr->first_byte; + nr->first_byte = byte; + nr->bits_in_cache += 8; + } + + return TRUE; +} + +static inline gboolean +nal_reader_skip (NalReader * nr, guint nbits) +{ + g_return_val_if_fail (nr != NULL, FALSE); + + if (G_UNLIKELY (!nal_reader_read (nr, nbits))) + return FALSE; + + nr->bits_in_cache -= nbits; + + return TRUE; +} + +static inline gboolean +nal_reader_skip_to_byte (NalReader * nr) +{ + g_return_val_if_fail (nr != NULL, FALSE); + + if (nr->bits_in_cache == 0) { + if (G_LIKELY ((nr->size - nr->byte) > 0)) + nr->byte++; + else + return FALSE; + } + + nr->bits_in_cache = 0; + + return TRUE; +} + +static inline guint +nal_reader_get_pos (const NalReader * nr) +{ + return nr->byte * 8 - nr->bits_in_cache; +} + +static inline guint +nal_reader_get_remaining (const NalReader * nr) +{ + return (nr->size - nr->byte) * 8 + nr->bits_in_cache; +} + +#define GST_NAL_READER_READ_BITS(bits) \ +static gboolean \ +nal_reader_get_bits_uint##bits (NalReader *nr, guint##bits *val, guint nbits) \ +{ \ + guint shift; \ + \ + g_return_val_if_fail (nr != NULL, FALSE); \ + g_return_val_if_fail (val != NULL, FALSE); \ + g_return_val_if_fail (nbits <= bits, FALSE); \ + \ + if (!nal_reader_read (nr, nbits)) \ + return FALSE; \ + \ + /* bring the required bits down and truncate */ \ + shift = nr->bits_in_cache - nbits; \ + *val = nr->first_byte >> shift; \ + \ + *val |= nr->cache << (8 - shift); \ + /* mask out required bits */ \ + if (nbits < bits) \ + *val &= ((guint##bits)1 << nbits) - 1; \ + \ + nr->bits_in_cache = shift; \ + \ + return TRUE; \ +} \ + +GST_NAL_READER_READ_BITS (8); +GST_NAL_READER_READ_BITS (16); +GST_NAL_READER_READ_BITS (32); + +#define GST_NAL_READER_PEAK_BITS(bits) \ +static gboolean \ +nal_reader_peek_bits_uint##bits (const NalReader *nr, guint##bits *val, guint nbits) \ +{ \ + NalReader tmp; \ + \ + g_return_val_if_fail (nr != NULL, FALSE); \ + tmp = *nr; \ + return nal_reader_get_bits_uint##bits (&tmp, val, nbits); \ +} + +GST_NAL_READER_PEAK_BITS (8); + +static gboolean +nal_reader_get_ue (NalReader * nr, guint32 * val) +{ + guint i = 0; + guint8 bit; + guint32 value; + + if (G_UNLIKELY (!nal_reader_get_bits_uint8 (nr, &bit, 1))) { + + return FALSE; + } + + while (bit == 0) { + i++; + if G_UNLIKELY + ((!nal_reader_get_bits_uint8 (nr, &bit, 1))) + return FALSE; + } + + g_return_val_if_fail (i <= 32, FALSE); + + if (G_UNLIKELY (!nal_reader_get_bits_uint32 (nr, &value, i))) + return FALSE; + + *val = (1 << i) - 1 + value; + + return TRUE; +} + +static gboolean +nal_reader_get_se (NalReader * nr, gint32 * val) +{ + guint32 value; + + if (G_UNLIKELY (!nal_reader_get_ue (nr, &value))) + return FALSE; + + if (value % 2) + *val = (value / 2) + 1; + else + *val = -(value / 2); + + return TRUE; +} + +#define CHECK_ALLOWED(val, min, max) { \ + if (val < min || val > max) { \ + GST_WARNING ("value not in allowed range. value: %d, range %d-%d", \ + val, min, max); \ + goto error; \ + } \ +} + +#define READ_UINT8(nr, val, nbits) { \ + if (!nal_reader_get_bits_uint8 (nr, &val, nbits)) { \ + GST_WARNING ("failed to read uint8, nbits: %d", nbits); \ + goto error; \ + } \ +} + +#define READ_UINT16(nr, val, nbits) { \ + if (!nal_reader_get_bits_uint16 (nr, &val, nbits)) { \ + GST_WARNING ("failed to read uint16, nbits: %d", nbits); \ + goto error; \ + } \ +} + +#define READ_UINT32(nr, val, nbits) { \ + if (!nal_reader_get_bits_uint32 (nr, &val, nbits)) { \ + GST_WARNING ("failed to read uint32, nbits: %d", nbits); \ + goto error; \ + } \ +} + +#define READ_UINT64(nr, val, nbits) { \ + if (!nal_reader_get_bits_uint64 (nr, &val, nbits)) { \ + GST_WARNING ("failed to read uint32, nbits: %d", nbits); \ + goto error; \ + } \ +} + +#define READ_UE(nr, val) { \ + if (!nal_reader_get_ue (nr, &val)) { \ + GST_WARNING ("failed to read UE"); \ + goto error; \ + } \ +} + +#define READ_UE_ALLOWED(nr, val, min, max) { \ + guint32 tmp; \ + READ_UE (nr, tmp); \ + CHECK_ALLOWED (tmp, min, max); \ + val = tmp; \ +} + +#define READ_SE(nr, val) { \ + if (!nal_reader_get_se (nr, &val)) { \ + GST_WARNING ("failed to read SE"); \ + goto error; \ + } \ +} + +#define READ_SE_ALLOWED(nr, val, min, max) { \ + gint32 tmp; \ + READ_SE (nr, tmp); \ + CHECK_ALLOWED (tmp, min, max); \ + val = tmp; \ +} + +/*********** end of nal parser ***************/ + +/***** Utils ****/ +#define EXTENDED_SAR 255 + +static GstH264SPS * +gst_h264_parser_get_sps (GstH264NalParser * nalparser, guint8 sps_id) +{ + GstH264SPS *sps; + + sps = &nalparser->sps[sps_id]; + + if (sps->valid) + return sps; + + return NULL; +} + +static GstH264PPS * +gst_h264_parser_get_pps (GstH264NalParser * nalparser, guint8 pps_id) +{ + GstH264PPS *pps; + + pps = &nalparser->pps[pps_id]; + + if (pps->valid) + return pps; + + return NULL; +} + +static inline void +set_nalu_datas (GstH264NalUnit * nalu) +{ + guint8 *data = nalu->data + nalu->offset; + + nalu->type = (data[0] & 0x1f); + nalu->ref_idc = (data[0] & 0x60) >> 5; + nalu->idr_pic_flag = (nalu->type == 5 ? 1 : 0); + + GST_DEBUG ("Nal type %u, ref_idc %u", nalu->type, nalu->ref_idc); +} + +static inline gint +scan_for_start_codes (const guint8 * data, guint size) +{ + GstByteReader br; + gst_byte_reader_init (&br, data, size); + + /* NALU not empty, so we can at least expect 1 (even 2) bytes following sc */ + return gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, + 0, size); +} + +static gboolean +gst_h264_parser_more_data (NalReader * nr) +{ + guint remaining; + + remaining = nal_reader_get_remaining (nr); + if (remaining == 0) + return FALSE; + + if (remaining <= 8) { + guint8 rbsp_stop_one_bit; + + if (!nal_reader_peek_bits_uint8 (nr, &rbsp_stop_one_bit, 1)) + return FALSE; + + if (rbsp_stop_one_bit == 1) { + guint8 zero_bits; + + if (remaining == 1) + return FALSE; + + if (!nal_reader_peek_bits_uint8 (nr, &zero_bits, remaining)) + return FALSE; + + if ((zero_bits - (1 << (remaining - 1))) == 0) + return FALSE; + } + } + + return TRUE; +} + +/****** Parsing functions *****/ + +static gboolean +gst_h264_parse_hrd_parameters (GstH264HRDParams * hrd, NalReader * nr) +{ + guint sched_sel_idx; + + GST_DEBUG ("parsing \"HRD Parameters\""); + + READ_UE_ALLOWED (nr, hrd->cpb_cnt_minus1, 0, 31); + READ_UINT8 (nr, hrd->bit_rate_scale, 4); + READ_UINT8 (nr, hrd->cpb_size_scale, 4); + + for (sched_sel_idx = 0; sched_sel_idx <= hrd->cpb_cnt_minus1; sched_sel_idx++) { + READ_UE (nr, hrd->bit_rate_value_minus1[sched_sel_idx]); + READ_UE (nr, hrd->cpb_size_value_minus1[sched_sel_idx]); + READ_UINT8 (nr, hrd->cbr_flag[sched_sel_idx], 1); + } + + READ_UINT8 (nr, hrd->initial_cpb_removal_delay_length_minus1, 5); + READ_UINT8 (nr, hrd->cpb_removal_delay_length_minus1, 5); + READ_UINT8 (nr, hrd->dpb_output_delay_length_minus1, 5); + READ_UINT8 (nr, hrd->time_offset_length, 5); + + return TRUE; + +error: + GST_WARNING ("error parsing \"HRD Parameters\""); + return FALSE; +} + +static gboolean +gst_h264_parse_vui_parameters (GstH264SPS * sps, NalReader * nr) +{ + GstH264VUIParams *vui = &sps->vui_parameters; + + GST_DEBUG ("parsing \"VUI Parameters\""); + + /* set default values for fields that might not be present in the bitstream + and have valid defaults */ + vui->aspect_ratio_idc = 0; + vui->video_format = 5; + vui->video_full_range_flag = 0; + vui->colour_primaries = 2; + vui->transfer_characteristics = 2; + vui->matrix_coefficients = 2; + vui->chroma_sample_loc_type_top_field = 0; + vui->chroma_sample_loc_type_bottom_field = 0; + vui->low_delay_hrd_flag = 0; + + READ_UINT8 (nr, vui->aspect_ratio_info_present_flag, 1); + if (vui->aspect_ratio_info_present_flag) { + READ_UINT8 (nr, vui->aspect_ratio_idc, 8); + if (vui->aspect_ratio_idc == EXTENDED_SAR) { + READ_UINT16 (nr, vui->sar_width, 16); + READ_UINT16 (nr, vui->sar_height, 16); + } + } + + READ_UINT8 (nr, vui->overscan_info_present_flag, 1); + if (vui->overscan_info_present_flag) + READ_UINT8 (nr, vui->overscan_appropriate_flag, 1); + + READ_UINT8 (nr, vui->video_signal_type_present_flag, 1); + if (vui->video_signal_type_present_flag) { + + READ_UINT8 (nr, vui->video_format, 3); + READ_UINT8 (nr, vui->video_full_range_flag, 1); + READ_UINT8 (nr, vui->colour_description_present_flag, 1); + if (vui->colour_description_present_flag) { + READ_UINT8 (nr, vui->colour_primaries, 8); + READ_UINT8 (nr, vui->transfer_characteristics, 8); + READ_UINT8 (nr, vui->matrix_coefficients, 8); + } + } + + READ_UINT8 (nr, vui->chroma_loc_info_present_flag, 1); + if (vui->chroma_loc_info_present_flag) { + READ_UE_ALLOWED (nr, vui->chroma_sample_loc_type_top_field, 0, 5); + READ_UE_ALLOWED (nr, vui->chroma_sample_loc_type_bottom_field, 0, 5); + } + + READ_UINT8 (nr, vui->timing_info_present_flag, 1); + if (vui->timing_info_present_flag) { + READ_UINT32 (nr, vui->num_units_in_tick, 32); + if (vui->num_units_in_tick == 0) + GST_WARNING ("num_units_in_tick = 0 detected in stream " + "(incompliant to H.264 E.2.1)."); + + READ_UINT32 (nr, vui->time_scale, 32); + if (vui->time_scale == 0) + GST_WARNING ("time_scale = 0 detected in stream " + "(incompliant to H.264 E.2.1)."); + + READ_UINT8 (nr, vui->fixed_frame_rate_flag, 1); + } + + READ_UINT8 (nr, vui->nal_hrd_parameters_present_flag, 1); + if (vui->nal_hrd_parameters_present_flag) { + if (!gst_h264_parse_hrd_parameters (&vui->nal_hrd_parameters, nr)) + goto error; + } + + READ_UINT8 (nr, vui->vcl_hrd_parameters_present_flag, 1); + if (vui->vcl_hrd_parameters_present_flag) { + if (!gst_h264_parse_hrd_parameters (&vui->vcl_hrd_parameters, nr)) + goto error; + } + + if (vui->nal_hrd_parameters_present_flag || + vui->vcl_hrd_parameters_present_flag) + READ_UINT8 (nr, vui->low_delay_hrd_flag, 1); + + READ_UINT8 (nr, vui->pic_struct_present_flag, 1); + READ_UINT8 (nr, vui->bitstream_restriction_flag, 1); + if (vui->bitstream_restriction_flag) { + READ_UINT8 (nr, vui->motion_vectors_over_pic_boundaries_flag, 1); + READ_UE (nr, vui->max_bytes_per_pic_denom); + READ_UE_ALLOWED (nr, vui->max_bits_per_mb_denom, 0, 16); + READ_UE_ALLOWED (nr, vui->log2_max_mv_length_horizontal, 0, 16); + READ_UE_ALLOWED (nr, vui->log2_max_mv_length_vertical, 0, 16); + READ_UE (nr, vui->num_reorder_frames); + READ_UE (nr, vui->max_dec_frame_buffering); + } + + return TRUE; + +error: + GST_WARNING ("error parsing \"VUI Parameters\""); + return FALSE; +} + +static gboolean +gst_h264_parser_parse_scaling_list (NalReader * nr, + guint8 scaling_lists_4x4[6][16], guint8 scaling_lists_8x8[6][64], + const guint8 fallback_4x4_inter[16], const guint8 fallback_4x4_intra[16], + const guint8 fallback_8x8_inter[64], const guint8 fallback_8x8_intra[64], + guint8 n_lists) +{ + guint i; + + GST_DEBUG ("parsing scaling lists"); + + for (i = 0; i < 12; i++) { + gboolean use_default = FALSE; + + if (i < n_lists) { + guint8 scaling_list_present_flag; + + READ_UINT8 (nr, scaling_list_present_flag, 1); + if (scaling_list_present_flag) { + guint8 *scaling_list; + const guint8 *scan; + guint size; + guint j; + guint8 last_scale, next_scale; + + if (i < 6) { + scaling_list = scaling_lists_4x4[i]; + scan = zigzag_4x4; + size = 16; + } else { + scaling_list = scaling_lists_8x8[i - 6]; + scan = zigzag_8x8; + size = 64; + } + + last_scale = 8; + next_scale = 8; + for (j = 0; j < size; j++) { + if (next_scale != 0) { + gint32 delta_scale; + + READ_SE (nr, delta_scale); + next_scale = (last_scale + delta_scale) & 0xff; + } + if (j == 0 && next_scale == 0) { + use_default = TRUE; + break; + } + last_scale = scaling_list[scan[j]] = + (next_scale == 0) ? last_scale : next_scale; + } + } else + use_default = TRUE; + } else + use_default = TRUE; + + if (use_default) { + switch (i) { + case 0: + memcpy (scaling_lists_4x4[0], fallback_4x4_intra, 16); + break; + case 1: + memcpy (scaling_lists_4x4[1], scaling_lists_4x4[0], 16); + break; + case 2: + memcpy (scaling_lists_4x4[2], scaling_lists_4x4[1], 16); + break; + case 3: + memcpy (scaling_lists_4x4[3], fallback_4x4_inter, 16); + break; + case 4: + memcpy (scaling_lists_4x4[4], scaling_lists_4x4[3], 16); + break; + case 5: + memcpy (scaling_lists_4x4[5], scaling_lists_4x4[4], 16); + break; + case 6: + memcpy (scaling_lists_8x8[0], fallback_8x8_intra, 64); + break; + case 7: + memcpy (scaling_lists_8x8[1], fallback_8x8_inter, 64); + break; + case 8: + memcpy (scaling_lists_8x8[2], scaling_lists_8x8[0], 64); + break; + case 9: + memcpy (scaling_lists_8x8[3], scaling_lists_8x8[1], 64); + break; + case 10: + memcpy (scaling_lists_8x8[4], scaling_lists_8x8[2], 64); + break; + case 11: + memcpy (scaling_lists_8x8[5], scaling_lists_8x8[3], 64); + break; + + default: + break; + } + } + } + + return TRUE; + +error: + GST_WARNING ("error parsing scaling lists"); + return FALSE; +} + +static gboolean +slice_parse_ref_pic_list_modification_1 (GstH264SliceHdr * slice, + NalReader * nr, guint list) +{ + GstH264RefPicListModification *entries; + guint8 *ref_pic_list_modification_flag, *n_ref_pic_list_modification; + guint32 modification_of_pic_nums_idc; + guint i = 0; + + if (list == 0) { + entries = slice->ref_pic_list_modification_l0; + ref_pic_list_modification_flag = &slice->ref_pic_list_modification_flag_l0; + n_ref_pic_list_modification = &slice->n_ref_pic_list_modification_l0; + } else { + entries = slice->ref_pic_list_modification_l1; + ref_pic_list_modification_flag = &slice->ref_pic_list_modification_flag_l1; + n_ref_pic_list_modification = &slice->n_ref_pic_list_modification_l1; + } + + READ_UINT8 (nr, *ref_pic_list_modification_flag, 1); + if (*ref_pic_list_modification_flag) { + while (1) { + READ_UE (nr, modification_of_pic_nums_idc); + if (modification_of_pic_nums_idc == 3) + break; + if (modification_of_pic_nums_idc == 0 || + modification_of_pic_nums_idc == 1) { + READ_UE_ALLOWED (nr, entries[i].value.abs_diff_pic_num_minus1, 0, + slice->max_pic_num - 1); + } else if (modification_of_pic_nums_idc == 2) { + READ_UE (nr, entries[i].value.long_term_pic_num); + } + entries[i++].modification_of_pic_nums_idc = modification_of_pic_nums_idc; + } + } + *n_ref_pic_list_modification = i; + return TRUE; + +error: + GST_WARNING ("error parsing \"Reference picture list %u modification\"", + list); + return FALSE; +} + +static gboolean +slice_parse_ref_pic_list_modification (GstH264SliceHdr * slice, NalReader * nr) +{ + if (!GST_H264_IS_I_SLICE (slice) && !GST_H264_IS_SI_SLICE (slice)) { + if (!slice_parse_ref_pic_list_modification_1 (slice, nr, 0)) + return FALSE; + } + + if (GST_H264_IS_B_SLICE (slice)) { + if (!slice_parse_ref_pic_list_modification_1 (slice, nr, 1)) + return FALSE; + } + return TRUE; +} + +static gboolean +gst_h264_slice_parse_dec_ref_pic_marking (GstH264SliceHdr * slice, + GstH264NalUnit * nalu, NalReader * nr) +{ + GstH264DecRefPicMarking *dec_ref_pic_m; + + GST_DEBUG ("parsing \"Decoded reference picture marking\""); + + dec_ref_pic_m = &slice->dec_ref_pic_marking; + + if (nalu->idr_pic_flag) { + READ_UINT8 (nr, dec_ref_pic_m->no_output_of_prior_pics_flag, 1); + READ_UINT8 (nr, dec_ref_pic_m->long_term_reference_flag, 1); + } else { + READ_UINT8 (nr, dec_ref_pic_m->adaptive_ref_pic_marking_mode_flag, 1); + if (dec_ref_pic_m->adaptive_ref_pic_marking_mode_flag) { + guint32 mem_mgmt_ctrl_op; + GstH264RefPicMarking *refpicmarking; + + dec_ref_pic_m->n_ref_pic_marking = 0; + while (1) { + refpicmarking = + &dec_ref_pic_m->ref_pic_marking[dec_ref_pic_m->n_ref_pic_marking]; + + READ_UE (nr, mem_mgmt_ctrl_op); + if (mem_mgmt_ctrl_op == 0) + break; + + refpicmarking->memory_management_control_operation = mem_mgmt_ctrl_op; + + if (mem_mgmt_ctrl_op == 1 || mem_mgmt_ctrl_op == 3) + READ_UE (nr, refpicmarking->difference_of_pic_nums_minus1); + + if (mem_mgmt_ctrl_op == 2) + READ_UE (nr, refpicmarking->long_term_pic_num); + + if (mem_mgmt_ctrl_op == 3 || mem_mgmt_ctrl_op == 6) + READ_UE (nr, refpicmarking->long_term_frame_idx); + + if (mem_mgmt_ctrl_op == 4) + READ_UE (nr, refpicmarking->max_long_term_frame_idx_plus1); + + dec_ref_pic_m->n_ref_pic_marking++; + } + } + } + + return TRUE; + +error: + GST_WARNING ("error parsing \"Decoded reference picture marking\""); + return FALSE; +} + +static gboolean +gst_h264_slice_parse_pred_weight_table (GstH264SliceHdr * slice, + NalReader * nr, guint8 chroma_array_type) +{ + GstH264PredWeightTable *p; + gint16 default_luma_weight, default_chroma_weight; + gint i; + + GST_DEBUG ("parsing \"Prediction weight table\""); + + p = &slice->pred_weight_table; + + READ_UE_ALLOWED (nr, p->luma_log2_weight_denom, 0, 7); + /* set default values */ + default_luma_weight = 1 << p->luma_log2_weight_denom; + for (i = 0; i < G_N_ELEMENTS (p->luma_weight_l0); i++) + p->luma_weight_l0[i] = default_luma_weight; + memset (p->luma_offset_l0, 0, sizeof (p->luma_offset_l0)); + if (GST_H264_IS_B_SLICE (slice)) { + for (i = 0; i < G_N_ELEMENTS (p->luma_weight_l1); i++) + p->luma_weight_l1[i] = default_luma_weight; + memset (p->luma_offset_l1, 0, sizeof (p->luma_offset_l1)); + } + + if (chroma_array_type != 0) { + READ_UE_ALLOWED (nr, p->chroma_log2_weight_denom, 0, 7); + /* set default values */ + default_chroma_weight = 1 << p->chroma_log2_weight_denom; + for (i = 0; i < G_N_ELEMENTS (p->chroma_weight_l0); i++) { + p->chroma_weight_l0[i][0] = default_chroma_weight; + p->chroma_weight_l0[i][1] = default_chroma_weight; + } + memset (p->chroma_offset_l0, 0, sizeof (p->chroma_offset_l0)); + if (GST_H264_IS_B_SLICE (slice)) { + for (i = 0; i < G_N_ELEMENTS (p->chroma_weight_l1); i++) { + p->chroma_weight_l1[i][0] = default_chroma_weight; + p->chroma_weight_l1[i][1] = default_chroma_weight; + } + memset (p->chroma_offset_l1, 0, sizeof (p->chroma_offset_l1)); + } + } + + for (i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++) { + guint8 luma_weight_l0_flag; + + READ_UINT8 (nr, luma_weight_l0_flag, 1); + if (luma_weight_l0_flag) { + READ_SE_ALLOWED (nr, p->luma_weight_l0[i], -128, 127); + READ_SE_ALLOWED (nr, p->luma_offset_l0[i], -128, 127); + } + if (chroma_array_type != 0) { + guint8 chroma_weight_l0_flag; + gint j; + + READ_UINT8 (nr, chroma_weight_l0_flag, 1); + if (chroma_weight_l0_flag) { + for (j = 0; j < 2; j++) { + READ_SE_ALLOWED (nr, p->chroma_weight_l0[i][j], -128, 127); + READ_SE_ALLOWED (nr, p->chroma_offset_l0[i][j], -128, 127); + } + } + } + } + + if (GST_H264_IS_B_SLICE (slice)) { + for (i = 0; i <= slice->num_ref_idx_l1_active_minus1; i++) { + guint8 luma_weight_l1_flag; + + READ_UINT8 (nr, luma_weight_l1_flag, 1); + if (luma_weight_l1_flag) { + READ_SE_ALLOWED (nr, p->luma_weight_l1[i], -128, 127); + READ_SE_ALLOWED (nr, p->luma_offset_l1[i], -128, 127); + } + if (chroma_array_type != 0) { + guint8 chroma_weight_l1_flag; + gint j; + + READ_UINT8 (nr, chroma_weight_l1_flag, 1); + if (chroma_weight_l1_flag) { + for (j = 0; j < 2; j++) { + READ_SE_ALLOWED (nr, p->chroma_weight_l1[i][j], -128, 127); + READ_SE_ALLOWED (nr, p->chroma_offset_l1[i][j], -128, 127); + } + } + } + } + } + + return TRUE; + +error: + GST_WARNING ("error parsing \"Prediction weight table\""); + return FALSE; +} + +static gboolean +gst_h264_parser_parse_buffering_period (GstH264NalParser * nalparser, + GstH264BufferingPeriod * per, NalReader * nr) +{ + GstH264SPS *sps; + guint8 sps_id; + + GST_DEBUG ("parsing \"Buffering period\""); + + READ_UE_ALLOWED (nr, sps_id, 0, GST_H264_MAX_SPS_COUNT - 1); + sps = gst_h264_parser_get_sps (nalparser, sps_id); + if (!sps) { + GST_WARNING ("couldn't find associated sequence parameter set with id: %d", + sps_id); + return GST_H264_PARSER_BROKEN_LINK; + } + per->sps = sps; + + if (sps->vui_parameters_present_flag) { + GstH264VUIParams *vui = &sps->vui_parameters; + + if (vui->nal_hrd_parameters_present_flag) { + GstH264HRDParams *hrd = &vui->nal_hrd_parameters; + guint8 sched_sel_idx; + + for (sched_sel_idx = 0; sched_sel_idx <= hrd->cpb_cnt_minus1; + sched_sel_idx++) { + READ_UINT8 (nr, per->nal_initial_cpb_removal_delay[sched_sel_idx], 5); + READ_UINT8 (nr, + per->nal_initial_cpb_removal_delay_offset[sched_sel_idx], 5); + } + } + + if (vui->vcl_hrd_parameters_present_flag) { + GstH264HRDParams *hrd = &vui->vcl_hrd_parameters; + guint8 sched_sel_idx; + + for (sched_sel_idx = 0; sched_sel_idx <= hrd->cpb_cnt_minus1; + sched_sel_idx++) { + READ_UINT8 (nr, per->vcl_initial_cpb_removal_delay[sched_sel_idx], 5); + READ_UINT8 (nr, + per->vcl_initial_cpb_removal_delay_offset[sched_sel_idx], 5); + } + } + } + + return GST_H264_PARSER_OK; + +error: + GST_WARNING ("error parsing \"Buffering period\""); + return GST_H264_PARSER_ERROR; +} + +static gboolean +gst_h264_parse_clock_timestamp (GstH264ClockTimestamp * tim, + GstH264VUIParams * vui, NalReader * nr) +{ + guint8 full_timestamp_flag; + guint8 time_offset_length; + + GST_DEBUG ("parsing \"Clock timestamp\""); + + /* defalt values */ + tim->time_offset = 0; + + READ_UINT8 (nr, tim->ct_type, 2); + READ_UINT8 (nr, tim->nuit_field_based_flag, 1); + READ_UINT8 (nr, tim->counting_type, 5); + READ_UINT8 (nr, full_timestamp_flag, 1); + READ_UINT8 (nr, tim->discontinuity_flag, 1); + READ_UINT8 (nr, tim->cnt_dropped_flag, 1); + READ_UINT8 (nr, tim->n_frames, 8); + + if (full_timestamp_flag) { + tim->seconds_flag = TRUE; + READ_UINT8 (nr, tim->seconds_value, 6); + + tim->minutes_flag = TRUE; + READ_UINT8 (nr, tim->minutes_value, 6); + + tim->hours_flag = TRUE; + READ_UINT8 (nr, tim->hours_value, 5); + } else { + READ_UINT8 (nr, tim->seconds_flag, 1); + if (tim->seconds_flag) { + READ_UINT8 (nr, tim->seconds_value, 6); + READ_UINT8 (nr, tim->minutes_flag, 1); + if (tim->minutes_flag) { + READ_UINT8 (nr, tim->minutes_value, 6); + READ_UINT8 (nr, tim->hours_flag, 1); + if (tim->hours_flag) + READ_UINT8 (nr, tim->hours_value, 5); + } + } + } + + time_offset_length = 0; + if (vui->nal_hrd_parameters_present_flag) + time_offset_length = vui->nal_hrd_parameters.time_offset_length; + else if (vui->vcl_hrd_parameters_present_flag) + time_offset_length = vui->vcl_hrd_parameters.time_offset_length; + + if (time_offset_length > 0) + READ_UINT32 (nr, tim->time_offset, time_offset_length); + + return TRUE; + +error: + GST_WARNING ("error parsing \"Clock timestamp\""); + return FALSE; +} + +static gboolean +gst_h264_parser_parse_pic_timing (GstH264NalParser * nalparser, + GstH264PicTiming * tim, NalReader * nr) +{ + GST_DEBUG ("parsing \"Picture timing\""); + if (!nalparser->last_sps || !nalparser->last_sps->valid) { + GST_WARNING ("didn't get the associated sequence paramater set for the " + "current access unit"); + goto error; + } + + /* default values */ + memset (tim->clock_timestamp_flag, 0, 3); + + if (nalparser->last_sps->vui_parameters_present_flag) { + GstH264VUIParams *vui = &nalparser->last_sps->vui_parameters; + + if (vui->nal_hrd_parameters_present_flag) { + READ_UINT32 (nr, tim->cpb_removal_delay, + vui->nal_hrd_parameters.cpb_removal_delay_length_minus1 + 1); + READ_UINT32 (nr, tim->dpb_output_delay, + vui->nal_hrd_parameters.dpb_output_delay_length_minus1 + 1); + } else if (vui->nal_hrd_parameters_present_flag) { + READ_UINT32 (nr, tim->cpb_removal_delay, + vui->vcl_hrd_parameters.cpb_removal_delay_length_minus1 + 1); + READ_UINT32 (nr, tim->dpb_output_delay, + vui->vcl_hrd_parameters.dpb_output_delay_length_minus1 + 1); + } + + if (vui->pic_struct_present_flag) { + const guint8 num_clock_ts_table[9] = { + 1, 1, 1, 2, 2, 3, 3, 2, 3 + }; + guint8 num_clock_num_ts; + guint i; + + tim->pic_struct_present_flag = TRUE; + READ_UINT8 (nr, tim->pic_struct, 4); + CHECK_ALLOWED ((gint8) tim->pic_struct, 0, 8); + + num_clock_num_ts = num_clock_ts_table[tim->pic_struct]; + for (i = 0; i < num_clock_num_ts; i++) { + READ_UINT8 (nr, tim->clock_timestamp_flag[i], 1); + if (tim->clock_timestamp_flag[i]) { + if (!gst_h264_parse_clock_timestamp (&tim->clock_timestamp[i], vui, + nr)) + goto error; + } + } + } + } + + return GST_H264_PARSER_OK; + +error: + GST_WARNING ("error parsing \"Picture timing\""); + return GST_H264_PARSER_ERROR; +} + +/******** API *************/ + +/** + * gst_h264_nal_parser_new: + * + * Creates a new #GstH264NalParser. It should be freed with + * gst_h264_nal_parser_free after use. + * + * Returns: a new #GstH264NalParser + */ +GstH264NalParser * +gst_h264_nal_parser_new (void) +{ + GstH264NalParser *nalparser; + + nalparser = g_slice_new0 (GstH264NalParser); + GST_DEBUG_CATEGORY_INIT (h264_parser_debug, "codecparsers_h264", 0, + "h264 parser library"); + + return nalparser; +} + +/** + * gst_h264_nal_parser_free: + * @nalparser: the #GstH264NalParser to free + * + * Frees @nalparser and sets it to %NULL + */ +void +gst_h264_nal_parser_free (GstH264NalParser * nalparser) +{ + g_slice_free (GstH264NalParser, nalparser); + + nalparser = NULL; +} + +/** + * gst_h264_parser_identify_nalu_unchecked: + * @nalparser: a #GstH264NalParser + * @data: The data to parse + * @offset: the offset from which to parse @data + * @size: the size of @data + * @nalu: The #GstH264NalUnit where to store parsed nal headers + * + * Parses @data and fills @nalu from the next nalu data from @data. + * + * This differs from @gst_h264_parser_identify_nalu in that it doesn't + * check whether the packet is complete or not. + * + * Note: Only use this function if you already know the provided @data + * is a complete NALU, else use @gst_h264_parser_identify_nalu. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_identify_nalu_unchecked (GstH264NalParser * nalparser, + const guint8 * data, guint offset, gsize size, GstH264NalUnit * nalu) +{ + gint off1; + + if (size < offset + 4) { + GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT + ", offset %u", size, offset); + return GST_H264_PARSER_ERROR; + } + + off1 = scan_for_start_codes (data + offset, size - offset); + + if (off1 < 0) { + GST_DEBUG ("No start code prefix in this buffer"); + return GST_H264_PARSER_NO_NAL; + } + + if (offset + off1 == size - 1) { + GST_DEBUG ("Missing data to identify nal unit"); + + return GST_H264_PARSER_ERROR; + } + + nalu->valid = TRUE; + nalu->sc_offset = offset + off1; + + /* sc might have 2 or 3 0-bytes */ + if (nalu->sc_offset > 0 && data[nalu->sc_offset - 1] == 00) + nalu->sc_offset--; + + nalu->offset = offset + off1 + 3; + nalu->data = (guint8 *) data; + + set_nalu_datas (nalu); + + if (nalu->type == GST_H264_NAL_SEQ_END || + nalu->type == GST_H264_NAL_STREAM_END) { + GST_DEBUG ("end-of-seq or end-of-stream nal found"); + nalu->size = 0; + return GST_H264_PARSER_OK; + } + + nalu->size = size - nalu->offset; + + return GST_H264_PARSER_OK; +} + +/** + * gst_h264_parser_identify_nalu: + * @nalparser: a #GstH264NalParser + * @data: The data to parse + * @offset: the offset from which to parse @data + * @size: the size of @data + * @nalu: The #GstH264NalUnit where to store parsed nal headers + * + * Parses @data and fills @nalu from the next nalu data from @data + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_identify_nalu (GstH264NalParser * nalparser, + const guint8 * data, guint offset, gsize size, GstH264NalUnit * nalu) +{ + GstH264ParserResult res; + gint off2; + + res = + gst_h264_parser_identify_nalu_unchecked (nalparser, data, offset, size, + nalu); + + if (res != GST_H264_PARSER_OK || nalu->size == 0) + goto beach; + + off2 = scan_for_start_codes (data + nalu->offset, size - nalu->offset); + if (off2 < 0) { + GST_DEBUG ("Nal start %d, No end found", nalu->offset); + + return GST_H264_PARSER_NO_NAL_END; + } + + if (off2 > 0 && data[nalu->offset + off2 - 1] == 00) + off2--; + + nalu->size = off2; + if (nalu->size < 2) + return GST_H264_PARSER_BROKEN_DATA; + + GST_DEBUG ("Complete nal found. Off: %d, Size: %d", nalu->offset, nalu->size); + +beach: + return res; +} + + +/** + * gst_h264_parser_identify_nalu_avc: + * @nalparser: a #GstH264NalParser + * @data: The data to parse, must be the beging of the Nal unit + * @offset: the offset from which to parse @data + * @size: the size of @data + * @nal_length_size: the size in bytes of the AVC nal length prefix. + * @nalu: The #GstH264NalUnit where to store parsed nal headers + * + * Parses @data and sets @nalu. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, + const guint8 * data, guint offset, gsize size, guint8 nal_length_size, + GstH264NalUnit * nalu) +{ + GstBitReader br; + + if (size < offset + nal_length_size) { + GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT + ", offset %u", size, offset); + return GST_H264_PARSER_ERROR; + } + + size = size - offset; + gst_bit_reader_init (&br, data + offset, size); + + gst_bit_reader_get_bits_uint32 (&br, &nalu->size, nal_length_size * 8); + nalu->sc_offset = offset; + nalu->offset = offset + nal_length_size; + + if (size < nalu->size + nal_length_size) { + nalu->size = 0; + + return GST_H264_PARSER_NO_NAL_END; + } + + nalu->data = (guint8 *) data; + + set_nalu_datas (nalu); + + if (nalu->size < 2) + return GST_H264_PARSER_BROKEN_DATA; + + nalu->valid = TRUE; + + return GST_H264_PARSER_OK; +} + +/** + * gst_h264_parser_parse_nal: + * @nalparser: a #GstH264NalParser + * @nalu: The #GstH264NalUnit to parse + * + * This function should be called in the case one doesn't need to + * parse a specific structure. It is necessary to do so to make + * sure @nalparser is up to date. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_parse_nal (GstH264NalParser * nalparser, GstH264NalUnit * nalu) +{ + GstH264SPS sps; + GstH264PPS pps; + + switch (nalu->type) { + case GST_H264_NAL_SPS: + return gst_h264_parser_parse_sps (nalparser, nalu, &sps, FALSE); + break; + case GST_H264_NAL_PPS: + return gst_h264_parser_parse_pps (nalparser, nalu, &pps); + } + + return GST_H264_PARSER_OK; +} + +/** + * gst_h264_parser_parse_sps: + * @nalparser: a #GstH264NalParser + * @nalu: The #GST_H264_NAL_SPS #GstH264NalUnit to parse + * @sps: The #GstH264SPS to fill. + * @parse_vui_params: Whether to parse the vui_params or not + * + * Parses @data, and fills the @sps structure. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_parse_sps (GstH264NalParser * nalparser, GstH264NalUnit * nalu, + GstH264SPS * sps, gboolean parse_vui_params) +{ + GstH264ParserResult res = gst_h264_parse_sps (nalu, sps, parse_vui_params); + + if (res == GST_H264_PARSER_OK) { + GST_DEBUG ("adding sequence parameter set with id: %d to array", sps->id); + + nalparser->sps[sps->id] = *sps; + nalparser->last_sps = &nalparser->sps[sps->id]; + } + + + + return res; +} + +/** + * gst_h264_parse_sps: + * @nalu: The #GST_H264_NAL_SPS #GstH264NalUnit to parse + * @sps: The #GstH264SPS to fill. + * @parse_vui_params: Whether to parse the vui_params or not + * + * Parses @data, and fills the @sps structure. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parse_sps (GstH264NalUnit * nalu, GstH264SPS * sps, + gboolean parse_vui_params) +{ + NalReader nr; + gint width, height; + guint8 frame_cropping_flag; + guint subwc[] = { 1, 2, 2, 1 }; + guint subhc[] = { 1, 2, 1, 1 }; + GstH264VUIParams *vui = NULL; + + GST_DEBUG ("parsing SPS"); + nal_reader_init (&nr, nalu->data + nalu->offset + 1, nalu->size - 1); + + /* set default values for fields that might not be present in the bitstream + and have valid defaults */ + sps->chroma_format_idc = 1; + sps->separate_colour_plane_flag = 0; + sps->bit_depth_luma_minus8 = 0; + sps->bit_depth_chroma_minus8 = 0; + memset (sps->scaling_lists_4x4, 16, 96); + memset (sps->scaling_lists_8x8, 16, 384); + sps->mb_adaptive_frame_field_flag = 0; + sps->frame_crop_left_offset = 0; + sps->frame_crop_right_offset = 0; + sps->frame_crop_top_offset = 0; + sps->frame_crop_bottom_offset = 0; + sps->delta_pic_order_always_zero_flag = 0; + + READ_UINT8 (&nr, sps->profile_idc, 8); + READ_UINT8 (&nr, sps->constraint_set0_flag, 1); + READ_UINT8 (&nr, sps->constraint_set1_flag, 1); + READ_UINT8 (&nr, sps->constraint_set2_flag, 1); + READ_UINT8 (&nr, sps->constraint_set3_flag, 1); + + /* skip reserved_zero_4bits */ + if (!nal_reader_skip (&nr, 4)) + goto error; + + READ_UINT8 (&nr, sps->level_idc, 8); + + READ_UE_ALLOWED (&nr, sps->id, 0, GST_H264_MAX_SPS_COUNT - 1); + + if (sps->profile_idc == 100 || sps->profile_idc == 110 || + sps->profile_idc == 122 || sps->profile_idc == 244 || + sps->profile_idc == 44 || sps->profile_idc == 83 || + sps->profile_idc == 86) { + READ_UE_ALLOWED (&nr, sps->chroma_format_idc, 0, 3); + if (sps->chroma_format_idc == 3) + READ_UINT8 (&nr, sps->separate_colour_plane_flag, 1); + + READ_UE_ALLOWED (&nr, sps->bit_depth_luma_minus8, 0, 6); + READ_UE_ALLOWED (&nr, sps->bit_depth_chroma_minus8, 0, 6); + READ_UINT8 (&nr, sps->qpprime_y_zero_transform_bypass_flag, 1); + + READ_UINT8 (&nr, sps->scaling_matrix_present_flag, 1); + if (sps->scaling_matrix_present_flag) { + guint8 n_lists; + + n_lists = (sps->chroma_format_idc != 3) ? 8 : 12; + if (!gst_h264_parser_parse_scaling_list (&nr, + sps->scaling_lists_4x4, sps->scaling_lists_8x8, + default_4x4_inter, default_4x4_intra, + default_8x8_inter, default_8x8_intra, n_lists)) + goto error; + } + } + + READ_UE_ALLOWED (&nr, sps->log2_max_frame_num_minus4, 0, 12); + + sps->max_frame_num = 1 << (sps->log2_max_frame_num_minus4 + 4); + + READ_UE_ALLOWED (&nr, sps->pic_order_cnt_type, 0, 2); + if (sps->pic_order_cnt_type == 0) { + READ_UE_ALLOWED (&nr, sps->log2_max_pic_order_cnt_lsb_minus4, 0, 12); + } else if (sps->pic_order_cnt_type == 1) { + guint i; + + READ_UINT8 (&nr, sps->delta_pic_order_always_zero_flag, 1); + READ_SE (&nr, sps->offset_for_non_ref_pic); + READ_SE (&nr, sps->offset_for_top_to_bottom_field); + READ_UE_ALLOWED (&nr, sps->num_ref_frames_in_pic_order_cnt_cycle, 0, 255); + + for (i = 0; i < sps->num_ref_frames_in_pic_order_cnt_cycle; i++) + READ_SE (&nr, sps->offset_for_ref_frame[i]); + } + + READ_UE (&nr, sps->num_ref_frames); + READ_UINT8 (&nr, sps->gaps_in_frame_num_value_allowed_flag, 1); + READ_UE (&nr, sps->pic_width_in_mbs_minus1); + READ_UE (&nr, sps->pic_height_in_map_units_minus1); + READ_UINT8 (&nr, sps->frame_mbs_only_flag, 1); + + if (!sps->frame_mbs_only_flag) + READ_UINT8 (&nr, sps->mb_adaptive_frame_field_flag, 1); + + READ_UINT8 (&nr, sps->direct_8x8_inference_flag, 1); + READ_UINT8 (&nr, frame_cropping_flag, 1); + if (frame_cropping_flag) { + READ_UE (&nr, sps->frame_crop_left_offset); + READ_UE (&nr, sps->frame_crop_right_offset); + READ_UE (&nr, sps->frame_crop_top_offset); + READ_UE (&nr, sps->frame_crop_bottom_offset); + } + + READ_UINT8 (&nr, sps->vui_parameters_present_flag, 1); + if (sps->vui_parameters_present_flag && parse_vui_params) { + if (!gst_h264_parse_vui_parameters (sps, &nr)) + goto error; + vui = &sps->vui_parameters; + } + + /* calculate ChromaArrayType */ + if (sps->separate_colour_plane_flag) + sps->chroma_array_type = 0; + else + sps->chroma_array_type = sps->chroma_format_idc; + + /* Calculate width and height */ + width = (sps->pic_width_in_mbs_minus1 + 1); + width *= 16; + height = (sps->pic_height_in_map_units_minus1 + 1); + height *= 16 * (2 - sps->frame_mbs_only_flag); + GST_LOG ("initial width=%d, height=%d", width, height); + + width -= (sps->frame_crop_left_offset + sps->frame_crop_right_offset) + * subwc[sps->chroma_format_idc]; + height -= (sps->frame_crop_top_offset + sps->frame_crop_bottom_offset + * subhc[sps->chroma_format_idc] * (2 - sps->frame_mbs_only_flag)); + if (width < 0 || height < 0) { + GST_WARNING ("invalid width/height in SPS"); + return FALSE; + } + GST_LOG ("final width=%u, height=%u", width, height); + sps->width = width; + sps->height = height; + + sps->fps_num = 0; + sps->fps_den = 1; + + if (vui && vui->timing_info_present_flag) { + /* derive framerate */ + /* FIXME verify / also handle other cases */ + GST_LOG ("Framerate: %u %u %u %u", parse_vui_params, + vui->fixed_frame_rate_flag, sps->frame_mbs_only_flag, + vui->pic_struct_present_flag); + + if (parse_vui_params && vui->fixed_frame_rate_flag && + sps->frame_mbs_only_flag && !vui->pic_struct_present_flag) { + sps->fps_num = vui->time_scale; + sps->fps_den = vui->num_units_in_tick; + /* picture is a frame = 2 fields */ + sps->fps_den *= 2; + GST_LOG ("framerate %d/%d", sps->fps_num, sps->fps_den); + } + } else { + GST_LOG ("No VUI, unknown framerate"); + } + + sps->valid = TRUE; + + return GST_H264_PARSER_OK; + +error: + GST_WARNING ("error parsing \"Sequence parameter set\""); + + return GST_H264_PARSER_ERROR; +} + +/** + * gst_h264_parse_pps: + * @nalparser: a #GstH264NalParser + * @nalu: The #GST_H264_NAL_PPS #GstH264NalUnit to parse + * @pps: The #GstH264PPS to fill. + * + * Parses @data, and fills the @pps structure. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parse_pps (GstH264NalParser * nalparser, GstH264NalUnit * nalu, + GstH264PPS * pps) +{ + NalReader nr; + GstH264SPS *sps; + gint sps_id; + guint8 pic_scaling_matrix_present_flag; + gint qp_bd_offset; + + GST_DEBUG ("parsing PPS"); + + nal_reader_init (&nr, nalu->data + nalu->offset + 1, nalu->size - 1); + + READ_UE_ALLOWED (&nr, pps->id, 0, GST_H264_MAX_PPS_COUNT - 1); + READ_UE_ALLOWED (&nr, sps_id, 0, GST_H264_MAX_SPS_COUNT - 1); + + sps = gst_h264_parser_get_sps (nalparser, sps_id); + if (!sps) { + GST_WARNING ("couldn't find associated sequence parameter set with id: %d", + sps_id); + return GST_H264_PARSER_BROKEN_LINK; + } + pps->sequence = sps; + qp_bd_offset = 6 * (sps->bit_depth_luma_minus8 + + sps->separate_colour_plane_flag); + + /* set default values for fields that might not be present in the bitstream + and have valid defaults */ + pps->slice_group_id = NULL; + pps->transform_8x8_mode_flag = 0; + memcpy (&pps->scaling_lists_4x4, &sps->scaling_lists_4x4, 96); + memcpy (&pps->scaling_lists_8x8, &sps->scaling_lists_8x8, 384); + + READ_UINT8 (&nr, pps->entropy_coding_mode_flag, 1); + READ_UINT8 (&nr, pps->pic_order_present_flag, 1); + READ_UE_ALLOWED (&nr, pps->num_slice_groups_minus1, 0, 7); + if (pps->num_slice_groups_minus1 > 0) { + READ_UE_ALLOWED (&nr, pps->slice_group_map_type, 0, 6); + + if (pps->slice_group_map_type == 0) { + gint i; + + for (i = 0; i <= pps->num_slice_groups_minus1; i++) + READ_UE (&nr, pps->run_length_minus1[i]); + } else if (pps->slice_group_map_type == 2) { + gint i; + + for (i = 0; i <= pps->num_slice_groups_minus1; i++) { + READ_UE (&nr, pps->top_left[i]); + READ_UE (&nr, pps->bottom_right[i]); + } + } else if (pps->slice_group_map_type >= 3 && pps->slice_group_map_type <= 5) { + READ_UINT8 (&nr, pps->slice_group_change_direction_flag, 1); + READ_UE (&nr, pps->slice_group_change_rate_minus1); + } else if (pps->slice_group_map_type == 6) { + gint bits; + gint i; + + READ_UE (&nr, pps->pic_size_in_map_units_minus1); + bits = g_bit_storage (pps->num_slice_groups_minus1); + + pps->slice_group_id = + g_new (guint8, pps->pic_size_in_map_units_minus1 + 1); + for (i = 0; i <= pps->pic_size_in_map_units_minus1; i++) + READ_UINT8 (&nr, pps->slice_group_id[i], bits); + } + } + + READ_UE_ALLOWED (&nr, pps->num_ref_idx_l0_active_minus1, 0, 31); + READ_UE_ALLOWED (&nr, pps->num_ref_idx_l1_active_minus1, 0, 31); + READ_UINT8 (&nr, pps->weighted_pred_flag, 1); + READ_UINT8 (&nr, pps->weighted_bipred_idc, 2); + READ_SE_ALLOWED (&nr, pps->pic_init_qp_minus26, -(26 + qp_bd_offset), 25); + READ_SE_ALLOWED (&nr, pps->pic_init_qs_minus26, -26, 25); + READ_SE_ALLOWED (&nr, pps->chroma_qp_index_offset, -12, 12); + pps->second_chroma_qp_index_offset = pps->chroma_qp_index_offset; + READ_UINT8 (&nr, pps->deblocking_filter_control_present_flag, 1); + READ_UINT8 (&nr, pps->constrained_intra_pred_flag, 1); + READ_UINT8 (&nr, pps->redundant_pic_cnt_present_flag, 1); + + if (!gst_h264_parser_more_data (&nr)) + goto done; + + READ_UINT8 (&nr, pps->transform_8x8_mode_flag, 1); + + READ_UINT8 (&nr, pic_scaling_matrix_present_flag, 1); + if (pic_scaling_matrix_present_flag) { + guint8 n_lists; + + n_lists = 6 + ((sps->chroma_format_idc != 3) ? 2 : 6) * + pps->transform_8x8_mode_flag; + + if (sps->scaling_matrix_present_flag) { + if (!gst_h264_parser_parse_scaling_list (&nr, + pps->scaling_lists_4x4, pps->scaling_lists_8x8, + sps->scaling_lists_4x4[0], sps->scaling_lists_4x4[3], + sps->scaling_lists_8x8[0], sps->scaling_lists_8x8[3], n_lists)) + goto error; + } else { + if (!gst_h264_parser_parse_scaling_list (&nr, + pps->scaling_lists_4x4, pps->scaling_lists_8x8, + default_4x4_inter, default_4x4_intra, + default_8x8_inter, default_8x8_intra, n_lists)) + goto error; + } + } + + READ_SE_ALLOWED (&nr, pps->second_chroma_qp_index_offset, -12, 12); + +done: + pps->valid = TRUE; + return GST_H264_PARSER_OK; + +error: + GST_WARNING ("error parsing \"Picture parameter set\""); + return GST_H264_PARSER_ERROR; +} + +/** + * gst_h264_parser_parse_pps: + * @nalparser: a #GstH264NalParser + * @nalu: The #GST_H264_NAL_PPS #GstH264NalUnit to parse + * @pps: The #GstH264PPS to fill. + * + * Parses @data, and fills the @pps structure. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_parse_pps (GstH264NalParser * nalparser, + GstH264NalUnit * nalu, GstH264PPS * pps) +{ + GstH264ParserResult res = gst_h264_parse_pps (nalparser, nalu, pps); + + if (res == GST_H264_PARSER_OK) { + GST_DEBUG ("adding picture parameter set with id: %d to array", pps->id); + + nalparser->pps[pps->id] = *pps; + nalparser->last_pps = &nalparser->pps[pps->id]; + } + + return res; +} + +/** + * gst_h264_parser_parse_slice_hdr: + * @nalparser: a #GstH264NalParser + * @nalu: The #GST_H264_NAL_SLICE #GstH264NalUnit to parse + * @slice: The #GstH264SliceHdr to fill. + * @parse_pred_weight_table: Whether to parse the pred_weight_table or not + * @parse_dec_ref_pic_marking: Whether to parse the dec_ref_pic_marking or not + * + * Parses @data, and fills the @slice structure. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_parse_slice_hdr (GstH264NalParser * nalparser, + GstH264NalUnit * nalu, GstH264SliceHdr * slice, + gboolean parse_pred_weight_table, gboolean parse_dec_ref_pic_marking) +{ + NalReader nr; + gint pps_id; + GstH264PPS *pps; + GstH264SPS *sps; + + if (!nalu->size) { + GST_DEBUG ("Invalid Nal Unit"); + return GST_H264_PARSER_ERROR; + } + + + nal_reader_init (&nr, nalu->data + nalu->offset + 1, nalu->size - 1); + + READ_UE (&nr, slice->first_mb_in_slice); + READ_UE (&nr, slice->type); + + GST_DEBUG ("parsing \"Slice header\", slice type %u", slice->type); + + READ_UE_ALLOWED (&nr, pps_id, 0, GST_H264_MAX_PPS_COUNT); + pps = gst_h264_parser_get_pps (nalparser, pps_id); + + if (!pps) { + GST_WARNING ("couldn't find associated picture parameter set with id: %d", + pps_id); + + return GST_H264_PARSER_BROKEN_LINK; + } + + slice->pps = pps; + sps = pps->sequence; + if (!sps) { + GST_WARNING ("couldn't find associated sequence parameter set with id: %d", + pps->id); + return GST_H264_PARSER_BROKEN_LINK; + } + + /* set default values for fields that might not be present in the bitstream + and have valid defaults */ + slice->field_pic_flag = 0; + slice->bottom_field_flag = 0; + slice->delta_pic_order_cnt_bottom = 0; + slice->delta_pic_order_cnt[0] = 0; + slice->delta_pic_order_cnt[1] = 0; + slice->redundant_pic_cnt = 0; + slice->num_ref_idx_l0_active_minus1 = pps->num_ref_idx_l0_active_minus1; + slice->num_ref_idx_l1_active_minus1 = pps->num_ref_idx_l1_active_minus1; + slice->disable_deblocking_filter_idc = 0; + slice->slice_alpha_c0_offset_div2 = 0; + + if (sps->separate_colour_plane_flag) + READ_UINT8 (&nr, slice->colour_plane_id, 2); + + READ_UINT16 (&nr, slice->frame_num, sps->log2_max_frame_num_minus4 + 4); + + if (!sps->frame_mbs_only_flag) { + READ_UINT8 (&nr, slice->field_pic_flag, 1); + if (slice->field_pic_flag) + READ_UINT8 (&nr, slice->bottom_field_flag, 1); + } + + /* calculate MaxPicNum */ + if (slice->field_pic_flag) + slice->max_pic_num = sps->max_frame_num; + else + slice->max_pic_num = 2 * sps->max_frame_num; + + if (nalu->type == 5) + READ_UE_ALLOWED (&nr, slice->idr_pic_id, 0, G_MAXUINT16); + + if (sps->pic_order_cnt_type == 0) { + READ_UINT16 (&nr, slice->pic_order_cnt_lsb, + sps->log2_max_pic_order_cnt_lsb_minus4 + 4); + + if (pps->pic_order_present_flag && !slice->field_pic_flag) + READ_SE (&nr, slice->delta_pic_order_cnt_bottom); + } + + if (sps->pic_order_cnt_type == 1 && !sps->delta_pic_order_always_zero_flag) { + READ_SE (&nr, slice->delta_pic_order_cnt[0]); + if (pps->pic_order_present_flag && !slice->field_pic_flag) + READ_SE (&nr, slice->delta_pic_order_cnt[1]); + } + + if (pps->redundant_pic_cnt_present_flag) + READ_UE_ALLOWED (&nr, slice->redundant_pic_cnt, 0, G_MAXINT8); + + if (GST_H264_IS_B_SLICE (slice)) + READ_UINT8 (&nr, slice->direct_spatial_mv_pred_flag, 1); + + if (GST_H264_IS_P_SLICE (slice) || GST_H264_IS_SP_SLICE (slice) || + GST_H264_IS_B_SLICE (slice)) { + guint8 num_ref_idx_active_override_flag; + + READ_UINT8 (&nr, num_ref_idx_active_override_flag, 1); + if (num_ref_idx_active_override_flag) { + READ_UE_ALLOWED (&nr, slice->num_ref_idx_l0_active_minus1, 0, 31); + + if (GST_H264_IS_B_SLICE (slice)) + READ_UE_ALLOWED (&nr, slice->num_ref_idx_l1_active_minus1, 0, 31); + } + } + + if (!slice_parse_ref_pic_list_modification (slice, &nr)) + goto error; + + if ((pps->weighted_pred_flag && (GST_H264_IS_P_SLICE (slice) + || GST_H264_IS_SP_SLICE (slice))) + || (pps->weighted_bipred_idc == 1 && GST_H264_IS_B_SLICE (slice))) { + if (!gst_h264_slice_parse_pred_weight_table (slice, &nr, + sps->chroma_array_type)) + goto error; + } + + if (nalu->ref_idc != 0) { + if (!gst_h264_slice_parse_dec_ref_pic_marking (slice, nalu, &nr)) + goto error; + } + + if (pps->entropy_coding_mode_flag && !GST_H264_IS_I_SLICE (slice) && + !GST_H264_IS_SI_SLICE (slice)) + READ_UE_ALLOWED (&nr, slice->cabac_init_idc, 0, 2); + + READ_SE_ALLOWED (&nr, slice->slice_qp_delta, -87, 77); + + if (GST_H264_IS_SP_SLICE (slice) || GST_H264_IS_SI_SLICE (slice)) { + guint8 sp_for_switch_flag; + + if (GST_H264_IS_SP_SLICE (slice)) + READ_UINT8 (&nr, sp_for_switch_flag, 1); + READ_SE_ALLOWED (&nr, slice->slice_qs_delta, -51, 51); + } + + if (pps->deblocking_filter_control_present_flag) { + READ_UE_ALLOWED (&nr, slice->disable_deblocking_filter_idc, 0, 2); + if (slice->disable_deblocking_filter_idc != 1) { + READ_SE_ALLOWED (&nr, slice->slice_alpha_c0_offset_div2, -6, 6); + READ_SE_ALLOWED (&nr, slice->slice_beta_offset_div2, -6, 6); + } + } + + if (pps->num_slice_groups_minus1 > 0 && + pps->slice_group_map_type >= 3 && pps->slice_group_map_type <= 5) { + /* Ceil(Log2(PicSizeInMapUnits / SliceGroupChangeRate + 1)) [7-33] */ + guint32 PicWidthInMbs = sps->pic_width_in_mbs_minus1 + 1; + guint32 PicHeightInMapUnits = sps->pic_height_in_map_units_minus1 + 1; + guint32 PicSizeInMapUnits = PicWidthInMbs * PicHeightInMapUnits; + guint32 SliceGroupChangeRate = pps->slice_group_change_rate_minus1 + 1; + const guint n = ceil_log2 (PicSizeInMapUnits / SliceGroupChangeRate + 1); + READ_UINT16 (&nr, slice->slice_group_change_cycle, n); + } + + slice->header_size = nal_reader_get_pos (&nr); + + return GST_H264_PARSER_OK; + +error: + GST_WARNING ("error parsing \"Slice header\""); + return GST_H264_PARSER_ERROR; +} + +/** + * gst_h264_parser_parse_sei: + * @nalparser: a #GstH264NalParser + * @nalu: The #GST_H264_NAL_SEI #GstH264NalUnit to parse + * @sei: The #GstH264SEIMessage to fill. + * + * Parses @data, and fills the @sei structures. + * + * Returns: a #GstH264ParserResult + */ +GstH264ParserResult +gst_h264_parser_parse_sei (GstH264NalParser * nalparser, GstH264NalUnit * nalu, + GstH264SEIMessage * sei) +{ + NalReader nr; + + guint32 payloadSize; + guint8 payload_type_byte, payload_size_byte; + guint remaining, payload_size; + gboolean res; + + GST_DEBUG ("parsing \"Sei message\""); + + nal_reader_init (&nr, nalu->data + nalu->offset + 1, nalu->size - 1); + + /* init */ + memset (sei, 0, sizeof (*sei)); + + sei->payloadType = 0; + do { + READ_UINT8 (&nr, payload_type_byte, 8); + sei->payloadType += payload_type_byte; + } while (payload_type_byte == 0xff); + + payloadSize = 0; + do { + READ_UINT8 (&nr, payload_size_byte, 8); + payloadSize += payload_size_byte; + } + while (payload_size_byte == 0xff); + + remaining = nal_reader_get_remaining (&nr) * 8; + payload_size = payloadSize < remaining ? payloadSize : remaining; + + GST_DEBUG ("SEI message received: payloadType %u, payloadSize = %u bytes", + sei->payloadType, payload_size); + + if (sei->payloadType == GST_H264_SEI_BUF_PERIOD) { + /* size not set; might depend on emulation_prevention_three_byte */ + res = gst_h264_parser_parse_buffering_period (nalparser, + &sei->buffering_period, &nr); + } else if (sei->payloadType == GST_H264_SEI_PIC_TIMING) { + /* size not set; might depend on emulation_prevention_three_byte */ + res = gst_h264_parser_parse_pic_timing (nalparser, &sei->pic_timing, &nr); + } else + res = GST_H264_PARSER_OK; + + return res; + +error: + GST_WARNING ("error parsing \"Sei message\""); + return GST_H264_PARSER_ERROR; +} diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h new file mode 100644 index 0000000..3c22156 --- /dev/null +++ b/gst-libs/gst/codecparsers/gsth264parser.h @@ -0,0 +1,716 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * Some bits C-c,C-v'ed and s/4/3 from h264parse and videoparsers/h264parse.c: + * Copyright (C) <2010> Mark Nauwelaerts + * Copyright (C) <2010> Collabora Multimedia + * Copyright (C) <2010> Nokia Corporation + * + * (C) 2005 Michal Benes + * (C) 2008 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. + */ + +#ifndef __GST_H264_PARSER_H__ +#define __GST_H264_PARSER_H__ + +#ifndef GST_USE_UNSTABLE_API +#warning "The H.264 parsing library is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include + +G_BEGIN_DECLS + +#define GST_H264_MAX_SPS_COUNT 32 +#define GST_H264_MAX_PPS_COUNT 256 + +#define GST_H264_IS_P_SLICE(slice) (((slice)->type % 5) == GST_H264_P_SLICE) +#define GST_H264_IS_B_SLICE(slice) (((slice)->type % 5) == GST_H264_B_SLICE) +#define GST_H264_IS_I_SLICE(slice) (((slice)->type % 5) == GST_H264_I_SLICE) +#define GST_H264_IS_SP_SLICE(slice) (((slice)->type % 5) == GST_H264_SP_SLICE) +#define GST_H264_IS_SI_SLICE(slice) (((slice)->type % 5) == GST_H264_SI_SLICE) + +/** + * GstH264NalUnitType: + * @GST_H264_NAL_UNKNOWN: Unknown nal type + * @GST_H264_NAL_SLICE: Slice nal + * @GST_H264_NAL_SLICE_DPA: DPA slice nal + * @GST_H264_NAL_SLICE_DPB: DPB slice nal + * @GST_H264_NAL_SLICE_DPC: DPC slice nal + * @GST_H264_NAL_SLICE_IDR: DPR slice nal + * @GST_H264_NAL_SEI: Supplemental enhancement information (SEI) nal unit + * @GST_H264_NAL_SPS: Sequence parameter set (SPS) nal unit + * @GST_H264_NAL_PPS: Picture parameter set (PPS) nal unit + * @GST_H264_NAL_AU_DELIMITER: Access unit (AU) delimiter nal unit + * @GST_H264_NAL_SEQ_END: End of sequence nal unit + * @GST_H264_NAL_STREAM_END: End of stream nal unit + * @GST_H264_NAL_FILLER_DATA: Filler data nal lunit + * + * Indicates the type of H264 Nal Units + */ +typedef enum +{ + GST_H264_NAL_UNKNOWN = 0, + GST_H264_NAL_SLICE = 1, + GST_H264_NAL_SLICE_DPA = 2, + GST_H264_NAL_SLICE_DPB = 3, + GST_H264_NAL_SLICE_DPC = 4, + GST_H264_NAL_SLICE_IDR = 5, + GST_H264_NAL_SEI = 6, + GST_H264_NAL_SPS = 7, + GST_H264_NAL_PPS = 8, + GST_H264_NAL_AU_DELIMITER = 9, + GST_H264_NAL_SEQ_END = 10, + GST_H264_NAL_STREAM_END = 11, + GST_H264_NAL_FILLER_DATA = 12 +} GstH264NalUnitType; + +/** + * GstH264ParserResult: + * @GST_H264_PARSER_OK: The parsing succeded + * @GST_H264_PARSER_BROKEN_DATA: The data to parse is broken + * @GST_H264_PARSER_BROKEN_LINK: The link to structure needed for the parsing couldn't be found + * @GST_H264_PARSER_ERROR: An error accured when parsing + * @GST_H264_PARSER_NO_NAL: No nal found during the parsing + * @GST_H264_PARSER_NO_NAL_END: Start of the nal found, but not the end. + * + * The result of parsing H264 data. + */ +typedef enum +{ + GST_H264_PARSER_OK, + GST_H264_PARSER_BROKEN_DATA, + GST_H264_PARSER_BROKEN_LINK, + GST_H264_PARSER_ERROR, + GST_H264_PARSER_NO_NAL, + GST_H264_PARSER_NO_NAL_END +} GstH264ParserResult; + +/** + * GstH264SEIPayloadType: + * @GST_H264_SEI_BUF_PERIOD: Buffering Period SEI Message + * @GST_H264_SEI_PIC_TIMING: Picture Timing SEI Message + * ... + * + * The type of SEI message. + */ +typedef enum +{ + GST_H264_SEI_BUF_PERIOD = 0, + GST_H264_SEI_PIC_TIMING = 1 + /* and more... */ +} GstH264SEIPayloadType; + +/** + * GstH264SEIPicStructType: + * @GST_H264_SEI_PIC_STRUCT_FRAME: Picture is a frame + * @GST_H264_SEI_PIC_STRUCT_TOP_FIELD: Top field of frame + * @GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD: Botom field of frame + * @GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM: Top bottom field of frame + * @GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP: bottom top field of frame + * @GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP: top bottom top field of frame + * @GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: bottom top bottom field of frame + * @GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING: indicates that the frame should + * be displayed two times consecutively + * @GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING: indicates that the frame should be + * displayed three times consecutively + * + * SEI pic_struct type + */ +typedef enum +{ + GST_H264_SEI_PIC_STRUCT_FRAME = 0, + GST_H264_SEI_PIC_STRUCT_TOP_FIELD = 1, + GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD = 2, + GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM = 3, + GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP = 4, + GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, + GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, + GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING = 7, + GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING = 8 +} GstH264SEIPicStructType; + +/** + * GstH264SliceType: + * + * Type of Picture slice + */ + +typedef enum +{ + GST_H264_P_SLICE = 0, + GST_H264_B_SLICE = 1, + GST_H264_I_SLICE = 2, + GST_H264_SP_SLICE = 3, + GST_H264_SI_SLICE = 4, + GST_H264_S_P_SLICE = 5, + GST_H264_S_B_SLICE = 6, + GST_H264_S_I_SLICE = 7, + GST_H264_S_SP_SLICE = 8, + GST_H264_S_SI_SLICE = 9 +} GstH264SliceType; + +typedef struct _GstH264NalParser GstH264NalParser; + +typedef struct _GstH264NalUnit GstH264NalUnit; + +typedef struct _GstH264SPS GstH264SPS; +typedef struct _GstH264PPS GstH264PPS; +typedef struct _GstH264HRDParams GstH264HRDParams; +typedef struct _GstH264VUIParams GstH264VUIParams; + +typedef struct _GstH264RefPicListModification GstH264RefPicListModification; +typedef struct _GstH264DecRefPicMarking GstH264DecRefPicMarking; +typedef struct _GstH264RefPicMarking GstH264RefPicMarking; +typedef struct _GstH264PredWeightTable GstH264PredWeightTable; +typedef struct _GstH264SliceHdr GstH264SliceHdr; + +typedef struct _GstH264ClockTimestamp GstH264ClockTimestamp; +typedef struct _GstH264PicTiming GstH264PicTiming; +typedef struct _GstH264BufferingPeriod GstH264BufferingPeriod; +typedef struct _GstH264SEIMessage GstH264SEIMessage; + +/** + * GstH264NalUnit: + * @ref_idc: not equal to 0 specifies that the content of the NAL unit contains a sequence + * parameter set, a sequence * parameter set extension, a subset sequence parameter set, a + * picture parameter set, a slice of a reference picture, a slice data partition of a + * reference picture, or a prefix NAL unit preceding a slice of a reference picture. + * @type: A #GstH264NalUnitType + * @idr_pic_flag: calculated idr_pic_flag + * @size: The size of the nal unit starting from @offset + * @offset: The offset of the actual start of the nal unit + * @sc_offset:The offset of the start code of the nal unit + * @valid: If the nal unit is valid, which mean it has + * already been parsed + * @data: The data from which the Nalu has been parsed + * + * Structure defining the Nal unit headers + */ +struct _GstH264NalUnit +{ + guint16 ref_idc; + guint16 type; + + /* calculated values */ + guint8 idr_pic_flag; + guint size; + guint offset; + guint sc_offset; + gboolean valid; + + guint8 *data; +}; + +/** + * GstH264HRDParams: + * @cpb_cnt_minus1: plus 1 specifies the number of alternative + * CPB specifications in the bitstream + * @bit_rate_scale: specifies the maximum input bit rate of the + * SchedSelIdx-th CPB + * @cpb_size_scale: specifies the CPB size of the SchedSelIdx-th CPB + * @guint32 bit_rate_value_minus1: specifies the maximum input bit rate for the + * SchedSelIdx-th CPB + * @cpb_size_value_minus1: is used together with cpb_size_scale to specify the + * SchedSelIdx-th CPB size + * @cbr_flag: Specifies if running in itermediate bitrate mode or constant + * @initial_cpb_removal_delay_length_minus1: specifies the length in bits of + * the cpb_removal_delay syntax element + * @cpb_removal_delay_length_minus1: specifies the length in bits of the + * dpb_output_delay syntax element + * @dpb_output_delay_length_minus1: >0 specifies the length in bits of the time_offset syntax element. + * =0 specifies that the time_offset syntax element is not present + * @time_offset_length: Length of the time offset + * + * Defines the HRD parameters + */ +struct _GstH264HRDParams +{ + guint8 cpb_cnt_minus1; + guint8 bit_rate_scale; + guint8 cpb_size_scale; + + guint32 bit_rate_value_minus1[32]; + guint32 cpb_size_value_minus1[32]; + guint8 cbr_flag[32]; + + guint8 initial_cpb_removal_delay_length_minus1; + guint8 cpb_removal_delay_length_minus1; + guint8 dpb_output_delay_length_minus1; + guint8 time_offset_length; +}; + +/** + * GstH264VUIParams: + * @aspect_ratio_info_present_flag: %TRUE specifies that aspect_ratio_idc is present. + * %FALSE specifies that aspect_ratio_idc is not present + * @aspect_ratio_idc specifies the value of the sample aspect ratio of the luma samples + * @sar_width indicates the horizontal size of the sample aspect ratio + * @sar_height indicates the vertical size of the sample aspect ratio + * @overscan_info_present_flag: %TRUE overscan_appropriate_flag is present %FALSE otherwize + * @overscan_appropriate_flag: %TRUE indicates that the cropped decoded pictures + * output are suitable for display using overscan. %FALSE the cropped decoded pictures + * output contain visually important information + * @video_signal_type_present_flag: %TRUE specifies that video_format, video_full_range_flag and + * colour_description_present_flag are present. + * @video_format: indicates the representation of the picture + * @video_full_range_flag: indicates the black level and range of the luma and chroma signals + * @colour_description_present_flag: %TRUE specifies that colour_primaries, + * transfer_characteristics and matrix_coefficients are present + * @colour_primaries: indicates the chromaticity coordinates of the source primaries + * @transfer_characteristics: indicates the opto-electronic transfer characteristic + * @matrix_coefficients: describes the matrix coefficients used in deriving luma and chroma signals + * @chroma_loc_info_present_flag: %TRUE specifies that chroma_sample_loc_type_top_field and + * chroma_sample_loc_type_bottom_field are present, %FALSE otherwize + * @chroma_sample_loc_type_top_field: specify the location of chroma for top field + * @chroma_sample_loc_type_bottom_field specify the location of chroma for bottom field + * @timing_info_present_flag: %TRUE specifies that num_units_in_tick, + * time_scale and fixed_frame_rate_flag are present in the bitstream + * @num_units_in_tick: is the number of time units of a clock operating at the frequency time_scale Hz + * time_scale: is the number of time units that pass in one second + * @fixed_frame_rate_flag: %TRUE indicates that the temporal distance between the HRD output times + * of any two consecutive pictures in output order is constrained as specified in the spec, %FALSE + * otherwize. + * @nal_hrd_parameters_present_flag: %TRUE if nal hrd parameters present in the bitstream + * @vcl_hrd_parameters_present_flag: %TRUE if nal vlc hrd parameters present in the bitstream + * @low_delay_hrd_flag: specifies the HRD operational mode + * @pic_struct_present_flag: %TRUE specifies that picture timing SEI messages are present or not + * @bitstream_restriction_flag: %TRUE specifies that the following coded video sequence bitstream restriction + * parameters are present + * @motion_vectors_over_pic_boundaries_flag: %FALSE indicates that no sample outside the + * picture boundaries and no sample at a fractional sample position, %TRUE indicates that one or more + * samples outside picture boundaries may be used in inter prediction + * @max_bytes_per_pic_denom: indicates a number of bytes not exceeded by the sum of the sizes of + * the VCL NAL units associated with any coded picture in the coded video sequence. + * @max_bits_per_mb_denom: indicates the maximum number of coded bits of macroblock_layer + * @log2_max_mv_length_horizontal: indicate the maximum absolute value of a decoded horizontal + * motion vector component + * @log2_max_mv_length_vertical: indicate the maximum absolute value of a decoded vertical + * motion vector component + * @num_reorder_frames: indicates the maximum number of frames, complementary field pairs, + * or non-paired fields that precede any frame, + * @max_dec_frame_buffering: specifies the required size of the HRD decoded picture buffer in + * units of frame buffers. + * + * The structure representing the VUI parameters. + */ +struct _GstH264VUIParams +{ + guint8 aspect_ratio_info_present_flag; + guint8 aspect_ratio_idc; + /* if aspect_ratio_idc == 255 */ + guint16 sar_width; + guint16 sar_height; + + guint8 overscan_info_present_flag; + /* if overscan_info_present_flag */ + guint8 overscan_appropriate_flag; + + guint8 video_signal_type_present_flag; + guint8 video_format; + guint8 video_full_range_flag; + guint8 colour_description_present_flag; + guint8 colour_primaries; + guint8 transfer_characteristics; + guint8 matrix_coefficients; + + guint8 chroma_loc_info_present_flag; + guint8 chroma_sample_loc_type_top_field; + guint8 chroma_sample_loc_type_bottom_field; + + guint8 timing_info_present_flag; + /* if timing_info_present_flag */ + guint32 num_units_in_tick; + guint32 time_scale; + guint8 fixed_frame_rate_flag; + + guint8 nal_hrd_parameters_present_flag; + /* if nal_hrd_parameters_present_flag */ + GstH264HRDParams nal_hrd_parameters; + + guint8 vcl_hrd_parameters_present_flag; + /* if nal_hrd_parameters_present_flag */ + GstH264HRDParams vcl_hrd_parameters; + + guint8 low_delay_hrd_flag; + guint8 pic_struct_present_flag; + + guint8 bitstream_restriction_flag; + /* if bitstream_restriction_flag */ + guint8 motion_vectors_over_pic_boundaries_flag; + guint32 max_bytes_per_pic_denom; + guint32 max_bits_per_mb_denom; + guint32 log2_max_mv_length_horizontal; + guint32 log2_max_mv_length_vertical; + guint32 num_reorder_frames; + guint32 max_dec_frame_buffering; +}; + +/** + * GstH264SPS: + * @id: The ID of the sequence parameter set + * @profile_idc: indicate the profile to which the coded video sequence conforms + * + * H264 Sequence Parameter Set (SPS) + */ +struct _GstH264SPS +{ + gint id; + + guint8 profile_idc; + guint8 constraint_set0_flag; + guint8 constraint_set1_flag; + guint8 constraint_set2_flag; + guint8 constraint_set3_flag; + guint8 level_idc; + + guint8 chroma_format_idc; + guint8 separate_colour_plane_flag; + guint8 bit_depth_luma_minus8; + guint8 bit_depth_chroma_minus8; + guint8 qpprime_y_zero_transform_bypass_flag; + + guint8 scaling_matrix_present_flag; + guint8 scaling_lists_4x4[6][16]; + guint8 scaling_lists_8x8[6][64]; + + guint8 log2_max_frame_num_minus4; + guint8 pic_order_cnt_type; + + /* if pic_order_cnt_type == 0 */ + guint8 log2_max_pic_order_cnt_lsb_minus4; + + /* else if pic_order_cnt_type == 1 */ + guint8 delta_pic_order_always_zero_flag; + gint32 offset_for_non_ref_pic; + gint32 offset_for_top_to_bottom_field; + guint8 num_ref_frames_in_pic_order_cnt_cycle; + gint32 offset_for_ref_frame[255]; + + guint32 num_ref_frames; + guint8 gaps_in_frame_num_value_allowed_flag; + guint32 pic_width_in_mbs_minus1; + guint32 pic_height_in_map_units_minus1; + guint8 frame_mbs_only_flag; + + guint8 mb_adaptive_frame_field_flag; + + guint8 direct_8x8_inference_flag; + + guint8 frame_cropping_flag; + + /* if frame_cropping_flag */ + guint32 frame_crop_left_offset; + guint32 frame_crop_right_offset; + guint32 frame_crop_top_offset; + guint32 frame_crop_bottom_offset; + + guint8 vui_parameters_present_flag; + /* if vui_parameters_present_flag */ + GstH264VUIParams vui_parameters; + + /* calculated values */ + guint8 chroma_array_type; + guint32 max_frame_num; + gint width, height; + gint fps_num, fps_den; + gboolean valid; +}; + +/** + * GstH264PPS: + * + * H264 Picture Parameter Set + */ +struct _GstH264PPS +{ + gint id; + + GstH264SPS *sequence; + + guint8 entropy_coding_mode_flag; + guint8 pic_order_present_flag; + + guint32 num_slice_groups_minus1; + + /* if num_slice_groups_minus1 > 0 */ + guint8 slice_group_map_type; + /* and if slice_group_map_type == 0 */ + guint32 run_length_minus1[8]; + /* or if slice_group_map_type == 2 */ + guint32 top_left[8]; + guint32 bottom_right[8]; + /* or if slice_group_map_type == (3, 4, 5) */ + guint8 slice_group_change_direction_flag; + guint32 slice_group_change_rate_minus1; + /* or if slice_group_map_type == 6 */ + guint32 pic_size_in_map_units_minus1; + guint8 *slice_group_id; + + guint8 num_ref_idx_l0_active_minus1; + guint8 num_ref_idx_l1_active_minus1; + guint8 weighted_pred_flag; + guint8 weighted_bipred_idc; + gint8 pic_init_qp_minus26; + gint8 pic_init_qs_minus26; + gint8 chroma_qp_index_offset; + guint8 deblocking_filter_control_present_flag; + guint8 constrained_intra_pred_flag; + guint8 redundant_pic_cnt_present_flag; + + guint8 transform_8x8_mode_flag; + + guint8 scaling_lists_4x4[6][16]; + guint8 scaling_lists_8x8[6][64]; + + guint8 second_chroma_qp_index_offset; + + gboolean valid; +}; + +struct _GstH264RefPicListModification +{ + guint8 modification_of_pic_nums_idc; + union + { + /* if modification_of_pic_nums_idc == 0 || 1 */ + guint32 abs_diff_pic_num_minus1; + /* if modification_of_pic_nums_idc == 2 */ + guint32 long_term_pic_num; + } value; +}; + +struct _GstH264PredWeightTable +{ + guint8 luma_log2_weight_denom; + guint8 chroma_log2_weight_denom; + + gint16 luma_weight_l0[32]; + gint8 luma_offset_l0[32]; + + /* if seq->ChromaArrayType != 0 */ + gint16 chroma_weight_l0[32][2]; + gint8 chroma_offset_l0[32][2]; + + /* if slice->slice_type % 5 == 1 */ + gint16 luma_weight_l1[32]; + gint8 luma_offset_l1[32]; + + /* and if seq->ChromaArrayType != 0 */ + gint16 chroma_weight_l1[32][2]; + gint8 chroma_offset_l1[32][2]; +}; + +struct _GstH264RefPicMarking +{ + guint8 memory_management_control_operation; + + guint32 difference_of_pic_nums_minus1; + guint32 long_term_pic_num; + guint32 long_term_frame_idx; + guint32 max_long_term_frame_idx_plus1; +}; + +struct _GstH264DecRefPicMarking +{ + /* if slice->nal_unit.IdrPicFlag */ + guint8 no_output_of_prior_pics_flag; + guint8 long_term_reference_flag; + + guint8 adaptive_ref_pic_marking_mode_flag; + GstH264RefPicMarking ref_pic_marking[10]; + guint8 n_ref_pic_marking; +}; + + +struct _GstH264SliceHdr +{ + guint32 first_mb_in_slice; + guint32 type; + GstH264PPS *pps; + + /* if seq->separate_colour_plane_flag */ + guint8 colour_plane_id; + + guint16 frame_num; + + guint8 field_pic_flag; + guint8 bottom_field_flag; + + /* if nal_unit.type == 5 */ + guint16 idr_pic_id; + + /* if seq->pic_order_cnt_type == 0 */ + guint16 pic_order_cnt_lsb; + /* if seq->pic_order_present_flag && !field_pic_flag */ + gint32 delta_pic_order_cnt_bottom; + + gint32 delta_pic_order_cnt[2]; + guint8 redundant_pic_cnt; + + /* if slice_type == B_SLICE */ + guint8 direct_spatial_mv_pred_flag; + + guint8 num_ref_idx_l0_active_minus1; + guint8 num_ref_idx_l1_active_minus1; + + guint8 ref_pic_list_modification_flag_l0; + guint8 n_ref_pic_list_modification_l0; + GstH264RefPicListModification ref_pic_list_modification_l0[32]; + guint8 ref_pic_list_modification_flag_l1; + guint8 n_ref_pic_list_modification_l1; + GstH264RefPicListModification ref_pic_list_modification_l1[32]; + + GstH264PredWeightTable pred_weight_table; + /* if nal_unit.ref_idc != 0 */ + GstH264DecRefPicMarking dec_ref_pic_marking; + + guint8 cabac_init_idc; + gint8 slice_qp_delta; + gint8 slice_qs_delta; + + guint8 disable_deblocking_filter_idc; + gint8 slice_alpha_c0_offset_div2; + gint8 slice_beta_offset_div2; + + guint16 slice_group_change_cycle; + + /* calculated values */ + guint32 max_pic_num; + gboolean valid; + + /* Size of the slice_header() in bits */ + guint header_size; +}; + + +struct _GstH264ClockTimestamp +{ + guint8 ct_type; + guint8 nuit_field_based_flag; + guint8 counting_type; + guint8 discontinuity_flag; + guint8 cnt_dropped_flag; + guint8 n_frames; + + guint8 seconds_flag; + guint8 seconds_value; + + guint8 minutes_flag; + guint8 minutes_value; + + guint8 hours_flag; + guint8 hours_value; + + guint32 time_offset; +}; + +struct _GstH264PicTiming +{ + guint32 cpb_removal_delay; + guint32 dpb_output_delay; + + guint8 pic_struct_present_flag; + /* if pic_struct_present_flag */ + guint8 pic_struct; + + guint8 clock_timestamp_flag[3]; + GstH264ClockTimestamp clock_timestamp[3]; +}; + +struct _GstH264BufferingPeriod +{ + GstH264SPS *sps; + + /* seq->vui_parameters->nal_hrd_parameters_present_flag */ + guint8 nal_initial_cpb_removal_delay[32]; + guint8 nal_initial_cpb_removal_delay_offset[32]; + + /* seq->vui_parameters->vcl_hrd_parameters_present_flag */ + guint8 vcl_initial_cpb_removal_delay[32]; + guint8 vcl_initial_cpb_removal_delay_offset[32]; +}; + +struct _GstH264SEIMessage +{ + GstH264SEIPayloadType payloadType; + + union { + GstH264BufferingPeriod buffering_period; + GstH264PicTiming pic_timing; + /* ... could implement more */ + }; +}; + +/** + * GstH264NalParser: + * + * H264 NAL Parser (opaque structure). + */ +struct _GstH264NalParser +{ + /*< private >*/ + GstH264SPS sps[GST_H264_MAX_SPS_COUNT]; + GstH264PPS pps[GST_H264_MAX_PPS_COUNT]; + GstH264SPS *last_sps; + GstH264PPS *last_pps; +}; + +GstH264NalParser *gst_h264_nal_parser_new (void); + +GstH264ParserResult gst_h264_parser_identify_nalu (GstH264NalParser *nalparser, + const guint8 *data, guint offset, + gsize size, GstH264NalUnit *nalu); + +GstH264ParserResult gst_h264_parser_identify_nalu_unchecked (GstH264NalParser *nalparser, + const guint8 *data, guint offset, + gsize size, GstH264NalUnit *nalu); + +GstH264ParserResult gst_h264_parser_identify_nalu_avc (GstH264NalParser *nalparser, const guint8 *data, + guint offset, gsize size, guint8 nal_length_size, + GstH264NalUnit *nalu); + +GstH264ParserResult gst_h264_parser_parse_nal (GstH264NalParser *nalparser, + GstH264NalUnit *nalu); + +GstH264ParserResult gst_h264_parser_parse_slice_hdr (GstH264NalParser *nalparser, GstH264NalUnit *nalu, + GstH264SliceHdr *slice, gboolean parse_pred_weight_table, + gboolean parse_dec_ref_pic_marking); + +GstH264ParserResult gst_h264_parser_parse_sps (GstH264NalParser *nalparser, GstH264NalUnit *nalu, + GstH264SPS *sps, gboolean parse_vui_params); + +GstH264ParserResult gst_h264_parser_parse_pps (GstH264NalParser *nalparser, + GstH264NalUnit *nalu, GstH264PPS *pps); + +GstH264ParserResult gst_h264_parser_parse_sei (GstH264NalParser *nalparser, + GstH264NalUnit *nalu, GstH264SEIMessage *sei); + +void gst_h264_nal_parser_free (GstH264NalParser *nalparser); + +GstH264ParserResult gst_h264_parse_sps (GstH264NalUnit *nalu, + GstH264SPS *sps, gboolean parse_vui_params); + +GstH264ParserResult gst_h264_parse_pps (GstH264NalParser *nalparser, + GstH264NalUnit *nalu, GstH264PPS *pps); + +G_END_DECLS +#endif diff --git a/gst-libs/gst/codecparsers/gstmpeg4parser.c b/gst-libs/gst/codecparsers/gstmpeg4parser.c new file mode 100644 index 0000000..4b0acb6 --- /dev/null +++ b/gst-libs/gst/codecparsers/gstmpeg4parser.c @@ -0,0 +1,1726 @@ +/* Gstreamer + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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:gstmpeg4parser + * @short_description: Convenience library for parsing mpeg4 part 2 video + * bitstream. + * + * For more details about the structures, you can refer to the + * specifications: ISO-IEC-14496-2_2004_MPEG4_VISUAL.pdf + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + + +#include "gstmpeg4parser.h" +#include "parserutils.h" + +#ifndef GST_DISABLE_GST_DEBUG + +#define GST_CAT_DEFAULT ensure_debug_category() + +static GstDebugCategory * +ensure_debug_category (void) +{ + static gsize cat_gonce = 0; + + if (g_once_init_enter (&cat_gonce)) { + gsize cat_done; + + cat_done = (gsize) _gst_debug_category_new ("codecparsers_mpeg4", 0, + "GstMpeg4 codec parsing library"); + + g_once_init_leave (&cat_gonce, cat_done); + } + + return (GstDebugCategory *) cat_gonce; +} + +#else + +#define ensure_debug_category() /* NOOP */ + +#endif /* GST_DISABLE_GST_DEBUG */ + +#define CHECK_MARKER(br) G_STMT_START { \ + guint8 marker;\ + if (!gst_bit_reader_get_bits_uint8 (br, &marker, 1)) { \ + GST_WARNING ("failed to read marker bit"); \ + goto failed; \ + } else if (!marker) {\ + GST_WARNING ("Wrong marker bit"); \ + goto failed;\ + }\ +} G_STMT_END + +#define MARKER_UNCHECKED(br) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint8_unchecked (br, 1)) { \ + GST_WARNING ("Wrong marker bit"); \ + goto failed; \ + } \ +} G_STMT_END + +#define CHECK_REMAINING(br, needed) G_STMT_START { \ + if (gst_bit_reader_get_remaining (br) < needed) \ + goto failed; \ +} G_STMT_END + +static const guint8 default_intra_quant_mat[64] = { + 8, 17, 18, 19, 21, 23, 25, 27, + 17, 18, 19, 21, 23, 25, 27, 28, + 20, 21, 22, 23, 24, 26, 28, 30, + 21, 22, 23, 24, 26, 28, 30, 32, + 22, 23, 24, 26, 28, 30, 32, 35, + 23, 24, 26, 28, 30, 32, 35, 38, + 25, 26, 28, 30, 32, 35, 38, 41, + 27, 28, 30, 32, 35, 38, 41, 45 +}; + +static const guint8 default_non_intra_quant_mat[64] = { + 16, 17, 18, 19, 20, 21, 22, 23, + 17, 18, 19, 20, 21, 22, 23, 24, + 18, 19, 20, 21, 22, 23, 24, 25, + 19, 20, 21, 22, 23, 24, 26, 27, + 20, 21, 22, 23, 25, 26, 27, 28, + 21, 22, 23, 24, 26, 27, 28, 30, + 22, 23, 24, 26, 27, 28, 30, 31, + 23, 24, 25, 27, 28, 30, 31, 33, +}; + +static const guint8 mpeg4_zigzag_8x8[64] = { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63 +}; + +static const VLCTable mpeg4_dmv_size_vlc_table[] = { + {0x00, 2, 0}, + {0x02, 3, 1}, + {0x03, 3, 2}, + {0x04, 3, 3}, + {0x05, 3, 4}, + {0x06, 3, 5}, + {0x0e, 4, 6}, + {0x1e, 5, 7}, + {0x3e, 6, 8}, + {0x7e, 7, 9}, + {0xfe, 8, 10}, + {0x1fe, 9, 11}, + {0x3fe, 10, 12}, + {0x7fe, 11, 13}, + {0xffe, 12, 14} +}; + +static void +mpeg4_util_par_from_info (guint8 aspect_ratio_info, guint8 * par_width, + guint8 * par_height) +{ + switch (aspect_ratio_info) { + case 0x02: + *par_width = 12; + *par_height = 11; + break; + case 0x03: + *par_width = 10; + *par_height = 11; + break; + case 0x04: + *par_width = 16; + *par_height = 11; + break; + case 0x05: + *par_width = 40; + *par_height = 33; + break; + + case 0x01: + default: + *par_width = 1; + *par_height = 1; + } +} + +static gboolean +parse_quant (GstBitReader * br, guint8 quant_mat[64], + const guint8 default_quant_mat[64], guint8 * load_quant_mat) +{ + READ_UINT8 (br, *load_quant_mat, 1); + if (*load_quant_mat) { + guint i; + guint8 val; + + val = 1; + for (i = 0; i < 64; i++) { + + if (val != 0) + READ_UINT8 (br, val, 8); + + if (val == 0) { + if (i == 0) + goto invalid_quant_mat; + quant_mat[mpeg4_zigzag_8x8[i]] = quant_mat[mpeg4_zigzag_8x8[i - 1]]; + } else + quant_mat[mpeg4_zigzag_8x8[i]] = val; + } + } else + memcpy (quant_mat, default_quant_mat, 64); + + return TRUE; + +failed: + GST_WARNING ("failed parsing quant matrix"); + return FALSE; + +invalid_quant_mat: + GST_WARNING ("the first value should be non zero"); + goto failed; +} + +static gboolean +parse_signal_type (GstBitReader * br, GstMpeg4VideoSignalType * signal_type) +{ + READ_UINT8 (br, signal_type->type, 1); + + if (signal_type->type) { + + READ_UINT8 (br, signal_type->format, 3); + READ_UINT8 (br, signal_type->range, 1); + READ_UINT8 (br, signal_type->color_description, 1); + + if (signal_type->color_description) { + READ_UINT8 (br, signal_type->color_primaries, 8); + READ_UINT8 (br, signal_type->transfer_characteristics, 8); + READ_UINT8 (br, signal_type->matrix_coefficients, 8); + } + } + + return TRUE; + +failed: + GST_WARNING ("failed parsing \"Video Signal Type\""); + + return FALSE; +} + +static gboolean +parse_sprite_trajectory (GstBitReader * br, + GstMpeg4SpriteTrajectory * sprite_traj, guint no_of_sprite_warping_points) +{ + guint i, length; + + for (i = 0; i < no_of_sprite_warping_points; i++) { + + if (!decode_vlc (br, &length, mpeg4_dmv_size_vlc_table, + G_N_ELEMENTS (mpeg4_dmv_size_vlc_table))) + goto failed; + + if (length) + READ_UINT16 (br, sprite_traj->vop_ref_points[i], length); + CHECK_MARKER (br); + + if (!decode_vlc (br, &length, mpeg4_dmv_size_vlc_table, + G_N_ELEMENTS (mpeg4_dmv_size_vlc_table))) + goto failed; + + if (length) + READ_UINT16 (br, sprite_traj->sprite_ref_points[i], length); + CHECK_MARKER (br); + } + + return TRUE; + +failed: + GST_WARNING ("Could not parse the sprite trajectory"); + return FALSE; +} + +static guint +find_psc (GstByteReader * br) +{ + guint psc_pos = -1, psc; + + if (!gst_byte_reader_peek_uint24_be (br, &psc)) + goto failed; + + /* Scan for the picture start code (22 bits - 0x0020) */ + while ((gst_byte_reader_get_remaining (br) >= 3)) { + if (gst_byte_reader_peek_uint24_be (br, &psc) && + ((psc & 0xfffffc) == 0x000080)) { + psc_pos = gst_byte_reader_get_pos (br); + break; + } else + gst_byte_reader_skip (br, 1); + } + +failed: + + return psc_pos; +} + +static inline guint8 +compute_resync_marker_size (const GstMpeg4VideoObjectPlane * vop, + guint32 * pattern, guint32 * mask) +{ + guint8 off; + + /* FIXME handle the binary only shape case */ + switch (vop->coding_type) { + case (GST_MPEG4_I_VOP): + off = 16; + break; + case (GST_MPEG4_S_VOP): + case (GST_MPEG4_P_VOP): + off = 15 + vop->fcode_forward; + + break; + case (GST_MPEG4_B_VOP): + off = MAX (15 + MAX (vop->fcode_forward, vop->fcode_backward), 17); + + break; + default: + return -1; + } + + if (mask && pattern) { + switch (off) { + case 16: + *pattern = 0x00008000; + *mask = 0xffff8000; + break; + case 17: + *pattern = 0x00004000; + *mask = 0xffffc000; + break; + case 18: + *pattern = 0x00002000; + *mask = 0xffffe000; + break; + case 19: + *pattern = 0x00001000; + *mask = 0xfffff000; + break; + case 20: + *pattern = 0x0000080; + *mask = 0xfffff800; + break; + case 21: + *pattern = 0x00000400; + *mask = 0xfffffc00; + break; + case 22: + *pattern = 0x00000200; + *mask = 0xfffffe00; + break; + case 23: + *pattern = 0x00000100; + *mask = 0xffffff00; + break; + } + } + + return off++; /* Take the following 1 into account */ +} + +/** + * gst_mpeg4_next_resync: + * @packet: The #GstMpeg4Packet to fill + * @vop: The previously parsed #GstMpeg4VideoObjectPlane + * @offset: offset from which to start the parsing + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data and fills @packet with the information of the next resync packet + * found. + * + * Returns: a #GstMpeg4ParseResult + */ +static GstMpeg4ParseResult +gst_mpeg4_next_resync (GstMpeg4Packet * packet, + const GstMpeg4VideoObjectPlane * vop, const guint8 * data, gsize size, + gboolean first_resync_marker) +{ + guint markersize = 0, off1, off2; + guint32 mask = 0xff, pattern = 0xff; + GstByteReader br; + + gst_byte_reader_init (&br, data, size); + + g_return_val_if_fail (packet != NULL, GST_MPEG4_PARSER_ERROR); + g_return_val_if_fail (vop != NULL, GST_MPEG4_PARSER_ERROR); + + markersize = compute_resync_marker_size (vop, &pattern, &mask); + + if (first_resync_marker) { + off1 = 0; + } else { + off1 = gst_byte_reader_masked_scan_uint32 (&br, mask, pattern, 0, size); + } + + if (off1 == -1) + return GST_MPEG4_PARSER_NO_PACKET; + + GST_DEBUG ("Resync code found at %i", off1); + + packet->offset = off1; + packet->type = GST_MPEG4_RESYNC; + packet->marker_size = markersize; + + off2 = gst_byte_reader_masked_scan_uint32 (&br, mask, pattern, + off1 + 2, size - off1 - 2); + + if (off2 == -1) + return GST_MPEG4_PARSER_NO_PACKET_END; + + packet->size = off2 - off1; + + return GST_MPEG4_PARSER_OK; +} + + +/********** API **********/ + +/** + * gst_mpeg4_parse: + * @packet: The #GstMpeg4Packet to fill + * @skip_user_data: %TRUE to skip user data packet %FALSE otherwize + * @vop: The last parsed #GstMpeg4VideoObjectPlane or %NULL if you do + * not need to detect the resync codes. + * @offset: offset from which to start the parsing + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data and fills @packet with the information of the next packet + * found. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse (GstMpeg4Packet * packet, gboolean skip_user_data, + GstMpeg4VideoObjectPlane * vop, const guint8 * data, guint offset, + gsize size) +{ + gint off1, off2; + GstByteReader br; + GstMpeg4ParseResult resync_res; + static guint first_resync_marker = TRUE; + + gst_byte_reader_init (&br, data, size); + + g_return_val_if_fail (packet != NULL, GST_MPEG4_PARSER_ERROR); + + if (size - offset <= 4) { + GST_DEBUG ("Can't parse, buffer is to small size %" G_GSSIZE_FORMAT + " at offset %d", size, offset); + return GST_MPEG4_PARSER_ERROR; + } + + if (vop) { + resync_res = + gst_mpeg4_next_resync (packet, vop, data + offset, size - offset, + first_resync_marker); + first_resync_marker = FALSE; + + /* We found a complet slice */ + if (resync_res == GST_MPEG4_PARSER_OK) + return resync_res; + else if (resync_res == GST_MPEG4_PARSER_NO_PACKET_END) { + /* It doesn't mean there is no standard packet end, look for it */ + off1 = packet->offset; + goto find_end; + } else if (resync_res == GST_MPEG4_PARSER_NO_PACKET) + return resync_res; + } else { + first_resync_marker = TRUE; + } + + off1 = gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, + offset, size - offset); + + if (off1 == -1) { + GST_DEBUG ("No start code prefix in this buffer"); + return GST_MPEG4_PARSER_NO_PACKET; + } + + /* Recursively skip user data if needed */ + if (skip_user_data && data[off1 + 3] == GST_MPEG4_USER_DATA) + /* If we are here, we know no resync code has been found the first time, so we + * don't look for it this time */ + return gst_mpeg4_parse (packet, skip_user_data, NULL, data, off1 + 3, size); + + packet->offset = off1 + 3; + packet->data = data; + packet->type = (GstMpeg4StartCode) (data[off1 + 3]); + +find_end: + off2 = gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, + off1 + 4, size - off1 - 4); + + if (off2 == -1) { + GST_DEBUG ("Packet start %d, No end found", off1 + 4); + + packet->size = G_MAXUINT; + return GST_MPEG4_PARSER_NO_PACKET_END; + } + + if (packet->type == GST_MPEG4_RESYNC) { + packet->size = (gsize) off2 - off1; + } else { + packet->size = (gsize) off2 - off1 - 3; + } + + GST_DEBUG ("Complete packet of type %x found at: %d, Size: %" G_GSSIZE_FORMAT, + packet->type, packet->offset, packet->size); + return GST_MPEG4_PARSER_OK; + +} + +/** + * gst_h263_parse: + * @packet: The #GstMpeg4Packet to fill + * @offset: offset from which to start the parsing + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data and fills @packet with the information of the next packet + * found. + * + * Note that the type of the packet is meaningless in this case. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_h263_parse (GstMpeg4Packet * packet, + const guint8 * data, guint offset, gsize size) +{ + gint off1, off2; + GstByteReader br; + + gst_byte_reader_init (&br, data + offset, size - offset); + + g_return_val_if_fail (packet != NULL, GST_MPEG4_PARSER_ERROR); + + if (size - offset < 3) { + GST_DEBUG ("Can't parse, buffer is to small size %" G_GSSIZE_FORMAT + " at offset %d", size, offset); + return GST_MPEG4_PARSER_ERROR; + } + + off1 = find_psc (&br); + + if (off1 == -1) { + GST_DEBUG ("No start code prefix in this buffer"); + return GST_MPEG4_PARSER_NO_PACKET; + } + + packet->offset = off1 + offset; + packet->data = data; + + gst_byte_reader_skip (&br, 3); + off2 = find_psc (&br); + + if (off2 == -1) { + GST_DEBUG ("Packet start %d, No end found", off1); + + packet->size = G_MAXUINT; + return GST_MPEG4_PARSER_NO_PACKET_END; + } + + packet->size = (gsize) off2 - off1; + + GST_DEBUG ("Complete packet found at: %d, Size: %" G_GSSIZE_FORMAT, + packet->offset, packet->size); + + return GST_MPEG4_PARSER_OK; +} + +/** + * gst_mpeg4_parse_visual_object_sequence: + * @vos: The #GstMpeg4VisualObjectSequence structure to fill + * @data: The data to parse, should contain the visual_object_sequence_start_code + * but not the start code prefix + * @size: The size of the @data to parse + * + * Parses @data containing the visual object sequence packet, and fills + * the @vos structure. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse_visual_object_sequence (GstMpeg4VisualObjectSequence * vos, + const guint8 * data, gsize size) +{ + guint8 vos_start_code; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (vos != NULL, GST_MPEG4_PARSER_ERROR); + + READ_UINT8 (&br, vos_start_code, 8); + if (vos_start_code != GST_MPEG4_VISUAL_OBJ_SEQ_START) + goto wrong_start_code; + + READ_UINT8 (&br, vos->profile_and_level_indication, 8); + + switch (vos->profile_and_level_indication) { + case 0x01: + vos->profile = GST_MPEG4_PROFILE_SIMPLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x02: + vos->profile = GST_MPEG4_PROFILE_SIMPLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x03: + vos->profile = GST_MPEG4_PROFILE_SIMPLE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0x08: + vos->profile = GST_MPEG4_PROFILE_SIMPLE; + vos->level = GST_MPEG4_LEVEL0; + break; + case 0x10: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_SCALABLE; + vos->level = GST_MPEG4_LEVEL0; + break; + case 0x11: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_SCALABLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x12: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_SCALABLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x21: + vos->profile = GST_MPEG4_PROFILE_CORE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x22: + vos->profile = GST_MPEG4_PROFILE_CORE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x32: + vos->profile = GST_MPEG4_PROFILE_MAIN; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x33: + vos->profile = GST_MPEG4_PROFILE_MAIN; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0x34: + vos->profile = GST_MPEG4_PROFILE_MAIN; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0x42: + vos->profile = GST_MPEG4_PROFILE_N_BIT; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x51: + vos->profile = GST_MPEG4_PROFILE_SCALABLE_TEXTURE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x61: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x62: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x63: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_FBA; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x64: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_FBA; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x71: + vos->profile = GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x72: + vos->profile = GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x81: + vos->profile = GST_MPEG4_PROFILE_HYBRID; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x82: + vos->profile = GST_MPEG4_PROFILE_HYBRID; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x91: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0x92: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0x93: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0x94: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xa1: + vos->profile = GST_MPEG4_PROFILE_CORE_SCALABLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xa2: + vos->profile = GST_MPEG4_PROFILE_CORE_SCALABLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xa3: + vos->profile = GST_MPEG4_PROFILE_CORE_SCALABLE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xb1: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xb2: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xb3: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xb4: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xc1: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CORE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xc2: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CORE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xc3: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_CORE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xd1: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xd2: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xd3: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xe1: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_STUDIO; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xe2: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_STUDIO; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xe3: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_STUDIO; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xe4: + vos->profile = GST_MPEG4_PROFILE_SIMPLE_STUDIO; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xe5: + vos->profile = GST_MPEG4_PROFILE_CORE_STUDIO; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xe6: + vos->profile = GST_MPEG4_PROFILE_CORE_STUDIO; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xe7: + vos->profile = GST_MPEG4_PROFILE_CORE_STUDIO; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xe8: + vos->profile = GST_MPEG4_PROFILE_CORE_STUDIO; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xf0: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL0; + break; + case 0xf1: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xf2: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xf3: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xf4: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xf5: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL5; + break; + case 0xf7: + vos->profile = GST_MPEG4_PROFILE_ADVANCED_SIMPLE; + vos->level = GST_MPEG4_LEVEL3b; + break; + case 0xf8: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL0; + break; + case 0xf9: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL1; + break; + case 0xfa: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL2; + break; + case 0xfb: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL3; + break; + case 0xfc: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL4; + break; + case 0xfd: + vos->profile = GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE; + vos->level = GST_MPEG4_LEVEL5; + break; + default: + vos->profile = GST_MPEG4_PROFILE_RESERVED; + vos->level = GST_MPEG4_LEVEL_RESERVED; + break; + } + + return GST_MPEG4_PARSER_OK; + +wrong_start_code: + GST_WARNING ("got buffer with wrong start code"); + return GST_MPEG4_PARSER_ERROR; + +failed: + GST_WARNING ("failed parsing \"Visual Object\""); + return GST_MPEG4_PARSER_ERROR; +} + +/** + * gst_mpeg4_parse_visual_object: + * @vo: The #GstMpeg4VisualObject structure to fill + * @signal_type: The #GstMpeg4VideoSignalType to fill or %NULL + * @data: The data to parse, should contain the vo_start_code + * but not the start code prefix + * @size: The size of the @data to parse + * + * Parses @data containing the visual object packet, and fills + * the @vo structure. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse_visual_object (GstMpeg4VisualObject * vo, + GstMpeg4VideoSignalType * signal_type, const guint8 * data, gsize size) +{ + guint8 vo_start_code, type; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (vo != NULL, GST_MPEG4_PARSER_ERROR); + + GST_DEBUG ("Parsing visual object"); + + READ_UINT8 (&br, vo_start_code, 8); + if (vo_start_code != GST_MPEG4_VISUAL_OBJ) + goto wrong_start_code; + + /* set default values */ + vo->verid = 0x1; + vo->priority = 1; + + READ_UINT8 (&br, vo->is_identifier, 1); + if (vo->is_identifier) { + READ_UINT8 (&br, vo->verid, 4); + READ_UINT8 (&br, vo->priority, 3); + } + + READ_UINT8 (&br, type, 4); + vo->type = type; + + if ((type == GST_MPEG4_VIDEO_ID || + type == GST_MPEG4_STILL_TEXTURE_ID) && signal_type) { + + if (!parse_signal_type (&br, signal_type)) + goto failed; + + } else if (signal_type) { + signal_type->type = 0; + } + + return GST_MPEG4_PARSER_OK; + +wrong_start_code: + GST_WARNING ("got buffer with wrong start code"); + return GST_MPEG4_PARSER_ERROR; + +failed: + GST_WARNING ("failed parsing \"Visual Object\""); + return GST_MPEG4_PARSER_ERROR; +} + +/** + * gst_mpeg4_parse_video_object_layer: + * @vol: The #GstMpeg4VideoObjectLayer structure to fill + * @vo: The #GstMpeg4VisualObject currently being parsed or %NULL + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data containing the video object layer packet, and fills + * the @vol structure. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse_video_object_layer (GstMpeg4VideoObjectLayer * vol, + GstMpeg4VisualObject * vo, const guint8 * data, gsize size) +{ + guint8 video_object_layer_start_code; + + /* Used for enums types */ + guint8 tmp; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (vol != NULL, GST_MPEG4_PARSER_ERROR); + + GST_DEBUG ("Parsing video object layer"); + + READ_UINT8 (&br, video_object_layer_start_code, 8); + if (!(video_object_layer_start_code >= GST_MPEG4_VIDEO_LAYER_FIRST && + video_object_layer_start_code <= GST_MPEG4_VIDEO_LAYER_LAST)) + goto wrong_start_code; + + /* set default values */ + if (vo) { + vol->verid = vo->verid; + vol->priority = vo->priority; + } + + vol->low_delay = FALSE; + vol->chroma_format = 1; + vol->vbv_parameters = FALSE; + vol->quant_precision = 5; + vol->bits_per_pixel = 8; + vol->quarter_sample = FALSE; + vol->newpred_enable = FALSE; + vol->interlaced = 0; + vol->width = 0; + vol->height = 0; + + READ_UINT8 (&br, vol->random_accessible_vol, 1); + READ_UINT8 (&br, vol->video_object_type_indication, 8); + + READ_UINT8 (&br, vol->is_object_layer_identifier, 1); + if (vol->is_object_layer_identifier) { + READ_UINT8 (&br, vol->verid, 4); + READ_UINT8 (&br, vol->priority, 3); + } + + READ_UINT8 (&br, tmp, 4); + vol->aspect_ratio_info = tmp; + if (vol->aspect_ratio_info != GST_MPEG4_EXTENDED_PAR) { + mpeg4_util_par_from_info (vol->aspect_ratio_info, &vol->par_width, + &vol->par_height); + + } else { + gint v; + + READ_UINT8 (&br, vol->par_width, 8); + v = vol->par_width; + CHECK_ALLOWED (v, 1, 255); + + READ_UINT8 (&br, vol->par_height, 8); + v = vol->par_height; + CHECK_ALLOWED (v, 1, 255); + } + GST_DEBUG ("Pixel aspect ratio %d/%d", vol->par_width, vol->par_width); + + READ_UINT8 (&br, vol->control_parameters, 1); + if (vol->control_parameters) { + guint8 chroma_format; + + READ_UINT8 (&br, chroma_format, 2); + vol->chroma_format = chroma_format; + READ_UINT8 (&br, vol->low_delay, 1); + + READ_UINT8 (&br, vol->vbv_parameters, 1); + if (vol->vbv_parameters) { + CHECK_REMAINING (&br, 79); + + vol->first_half_bitrate = + gst_bit_reader_get_bits_uint16_unchecked (&br, 15); + MARKER_UNCHECKED (&br); + + vol->latter_half_bitrate = + gst_bit_reader_get_bits_uint16_unchecked (&br, 15); + MARKER_UNCHECKED (&br); + + vol->bit_rate = + (vol->first_half_bitrate << 15) | vol->latter_half_bitrate; + + vol->first_half_vbv_buffer_size = + gst_bit_reader_get_bits_uint16_unchecked (&br, 15); + MARKER_UNCHECKED (&br); + + vol->latter_half_vbv_buffer_size = + gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + MARKER_UNCHECKED (&br); + + vol->vbv_buffer_size = (vol->first_half_vbv_buffer_size << 15) | + vol->latter_half_vbv_buffer_size; + + vol->first_half_vbv_occupancy = + gst_bit_reader_get_bits_uint16_unchecked (&br, 11); + MARKER_UNCHECKED (&br); + + vol->latter_half_vbv_occupancy = + gst_bit_reader_get_bits_uint16_unchecked (&br, 15); + MARKER_UNCHECKED (&br); + } + } + + READ_UINT8 (&br, tmp, 2); + vol->shape = tmp; + + if (vol->shape == GST_MPEG4_GRAYSCALE) { + /* TODO support grayscale shapes, for now we just pass */ + + /* Something the standard starts to define... */ + GST_WARNING ("Grayscale shaped not supported"); + goto failed; + } + + if (vol->shape == GST_MPEG4_GRAYSCALE && vol->verid != 0x01) + READ_UINT8 (&br, vol->shape_extension, 4); + + CHECK_REMAINING (&br, 19); + + MARKER_UNCHECKED (&br); + vol->vop_time_increment_resolution = + gst_bit_reader_get_bits_uint16_unchecked (&br, 16); + if (vol->vop_time_increment_resolution < 1) { + GST_WARNING ("value not in allowed range. value: %d, range %d-%d", + vol->vop_time_increment_resolution, 1, G_MAXUINT16); + goto failed; + } + vol->vop_time_increment_bits = + g_bit_storage (vol->vop_time_increment_resolution); + + MARKER_UNCHECKED (&br); + vol->fixed_vop_rate = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + if (vol->fixed_vop_rate) + READ_UINT16 (&br, vol->fixed_vop_time_increment, + vol->vop_time_increment_bits); + + if (vol->shape != GST_MPEG4_BINARY_ONLY) { + if (vol->shape == GST_MPEG4_RECTANGULAR) { + CHECK_REMAINING (&br, 29); + + MARKER_UNCHECKED (&br); + vol->width = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + vol->height = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + } + + READ_UINT8 (&br, vol->interlaced, 1); + READ_UINT8 (&br, vol->obmc_disable, 1); + + if (vol->verid == 0x1) { + READ_UINT8 (&br, tmp, 1); + vol->sprite_enable = tmp; + } else + READ_UINT8 (&br, tmp, 2); + vol->sprite_enable = tmp; + + if (vol->sprite_enable == GST_MPEG4_SPRITE_STATIC || + vol->sprite_enable == GST_MPEG4_SPRITE_GMG) { + + if (vol->sprite_enable == GST_MPEG4_SPRITE_GMG) + CHECK_REMAINING (&br, 9); + else { + CHECK_REMAINING (&br, 65); + + vol->sprite_width = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vol->sprite_height = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vol->sprite_left_coordinate = + gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vol->sprite_top_coordinate = + gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + } + vol->no_of_sprite_warping_points = + gst_bit_reader_get_bits_uint8_unchecked (&br, 6); + vol->sprite_warping_accuracy = + gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + vol->sprite_brightness_change = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + + if (vol->sprite_enable != GST_MPEG4_SPRITE_GMG) + vol->low_latency_sprite_enable = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + } + + if (vol->shape != GST_MPEG4_RECTANGULAR) + READ_UINT8 (&br, vol->sadct_disable, 1); + + READ_UINT8 (&br, vol->not_8_bit, 1); + if (vol->not_8_bit) { + READ_UINT8 (&br, vol->quant_precision, 4); + CHECK_ALLOWED (vol->quant_precision, 3, 9); + + READ_UINT8 (&br, vol->bits_per_pixel, 4); + CHECK_ALLOWED (vol->bits_per_pixel, 4, 12); + } + + if (vol->shape == GST_MPEG4_GRAYSCALE) { + /* We don't actually support it */ + READ_UINT8 (&br, vol->no_gray_quant_update, 1); + READ_UINT8 (&br, vol->composition_method, 1); + READ_UINT8 (&br, vol->linear_composition, 1); + } + + READ_UINT8 (&br, vol->quant_type, 1); + if (vol->quant_type) { + if (!parse_quant (&br, vol->intra_quant_mat, default_intra_quant_mat, + &vol->load_intra_quant_mat)) + goto failed; + + if (!parse_quant (&br, vol->non_intra_quant_mat, + default_non_intra_quant_mat, &vol->load_non_intra_quant_mat)) + goto failed; + + if (vol->shape == GST_MPEG4_GRAYSCALE) { + /* Something the standard starts to define... */ + GST_WARNING ("Grayscale shaped not supported"); + goto failed; + } + + } else { + memset (&vol->intra_quant_mat, 0, 64); + memset (&vol->non_intra_quant_mat, 0, 64); + } + + if (vol->verid != 0x1) + READ_UINT8 (&br, vol->quarter_sample, 1); + + READ_UINT8 (&br, vol->complexity_estimation_disable, 1); + if (!vol->complexity_estimation_disable) + goto complexity_estimation_error; + + + READ_UINT8 (&br, vol->resync_marker_disable, 1); + READ_UINT8 (&br, vol->data_partitioned, 1); + + if (vol->data_partitioned) + READ_UINT8 (&br, vol->reversible_vlc, 1); + + if (vol->verid != 0x01) + READ_UINT8 (&br, vol->newpred_enable, 1); + + if (vol->newpred_enable) + /* requested_upstream_message_type and newpred_segment_type */ + SKIP (&br, 3); + + READ_UINT8 (&br, vol->reduced_resolution_vop_enable, 1); + + READ_UINT8 (&br, vol->scalability, 1); + if (vol->scalability) { + SKIP (&br, 26); /* Few not needed props */ + READ_UINT8 (&br, vol->enhancement_type, 1); + } + + /* More unused infos */ + } else if (vol->verid != 0x01) { + GST_WARNING ("Binary only shapes not fully supported"); + goto failed; + } + /* ... */ + + return GST_MPEG4_PARSER_OK; + +failed: + GST_WARNING ("failed parsing \"Video Object Layer\""); + return GST_MPEG4_PARSER_ERROR; + +wrong_start_code: + GST_WARNING ("got buffer with wrong start code"); + goto failed; + +complexity_estimation_error: + GST_WARNING ("don't support complexity estimation"); + goto failed; +} + +/** + * gst_mpeg4_parse_group_of_vop: + * @gov: The #GstMpeg4GroupOfVOP structure to fill + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data containing the group of video object plane packet, and fills + * the @gov structure. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse_group_of_vop (GstMpeg4GroupOfVOP * + gov, const guint8 * data, gsize size) +{ + guint8 gov_start_code; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (gov != NULL, GST_MPEG4_PARSER_ERROR); + + READ_UINT8 (&br, gov_start_code, 8); + if (gov_start_code != GST_MPEG4_GROUP_OF_VOP) + goto wrong_start_code; + + CHECK_REMAINING (&br, 65); + + gov->hours = gst_bit_reader_get_bits_uint8_unchecked (&br, 5); + gov->minutes = gst_bit_reader_get_bits_uint8_unchecked (&br, 6); + /* marker bit */ + MARKER_UNCHECKED (&br); + gov->seconds = gst_bit_reader_get_bits_uint8_unchecked (&br, 6); + + gov->closed = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + gov->broken_link = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + + return GST_MPEG4_PARSER_OK; + +failed: + GST_WARNING ("failed parsing \"Group of Video Object Plane\""); + return GST_MPEG4_PARSER_ERROR; + +wrong_start_code: + GST_WARNING ("got buffer with wrong start code"); + goto failed; +} + +/** + * gst_mpeg4_parse_video_object_plane: + * @vop: The #GstMpeg4VideoObjectPlane currently being parsed + * @sprite_trajectory: A #GstMpeg4SpriteTrajectory to fill or %NULL + * @vol: The #GstMpeg4VideoObjectLayer structure to fill + * @data: The data to parse + * @size: The size of the @data to parse + * + * Parses @data containing the video object plane packet, and fills the @vol + * structure. + * + * Returns: a #GstMpeg4ParseResult + */ +GstMpeg4ParseResult +gst_mpeg4_parse_video_object_plane (GstMpeg4VideoObjectPlane * vop, + GstMpeg4SpriteTrajectory * sprite_trajectory, + GstMpeg4VideoObjectLayer * vol, const guint8 * data, gsize size) +{ + guint8 vop_start_code, coding_type, modulo_time_base; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (vop != NULL, GST_MPEG4_PARSER_ERROR); + + if (vol->shape == GST_MPEG4_BINARY_ONLY) { + /* TODO: implement binary only shapes */ + GST_WARNING ("Binary only shapes not supported"); + goto failed; + } + + READ_UINT8 (&br, vop_start_code, 8); + if (vop_start_code != GST_MPEG4_VIDEO_OBJ_PLANE) + goto wrong_start_code; + + + /* set default values */ + vop->modulo_time_base = 0; + vop->rounding_type = 0; + vop->top_field_first = 1; + vop->alternate_vertical_scan_flag = 0; + vop->fcode_forward = 1; + vop->fcode_backward = 1; + + /* Compute macroblock informations */ + if (vol->interlaced) + vop->mb_height = (2 * (vol->height + 31) / 32); + else + vop->mb_height = (vol->height + 15) / 16; + + vop->mb_width = (vol->width + 15) / 16; + vop->mb_num = vop->mb_height * vop->mb_width; + + READ_UINT8 (&br, coding_type, 2); + vop->coding_type = coding_type; + + READ_UINT8 (&br, modulo_time_base, 1); + while (modulo_time_base) { + vop->modulo_time_base++; + + READ_UINT8 (&br, modulo_time_base, 1); + } + + CHECK_REMAINING (&br, vol->vop_time_increment_bits + 3); + + MARKER_UNCHECKED (&br); + vop->time_increment = + gst_bit_reader_get_bits_uint16_unchecked (&br, + vol->vop_time_increment_bits); + MARKER_UNCHECKED (&br); + + vop->coded = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + if (!vop->coded) + return GST_MPEG4_PARSER_OK; + + if (vol->newpred_enable) { + guint16 nbbits = + vop->time_increment + 3 < 15 ? vop->time_increment + 3 : 15; + + READ_UINT16 (&br, vop->id, nbbits); + READ_UINT8 (&br, vop->id_for_prediction_indication, 1); + if (vop->id_for_prediction_indication) { + /* Would be nice if the standard actually told us... */ + READ_UINT16 (&br, vop->id, nbbits); + CHECK_MARKER (&br); + } + } + + if (vol->shape != GST_MPEG4_BINARY_ONLY && + (vop->coding_type == GST_MPEG4_P_VOP || + (vop->coding_type == GST_MPEG4_S_VOP && + vol->sprite_enable == GST_MPEG4_SPRITE_GMG))) + READ_UINT8 (&br, vop->rounding_type, 1); + + if ((vol->reduced_resolution_vop_enable) && + (vol->shape == GST_MPEG4_RECTANGULAR || + (vop->coding_type = GST_MPEG4_P_VOP || + vop->coding_type == GST_MPEG4_I_VOP))) + READ_UINT8 (&br, vop->reduced_resolution, 1); + + if (vol->shape != GST_MPEG4_RECTANGULAR) { + if (vol->sprite_enable == GST_MPEG4_SPRITE_STATIC && + vop->coding_type == GST_MPEG4_I_VOP) { + CHECK_REMAINING (&br, 55); + + vop->width = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vop->height = gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vop->horizontal_mc_spatial_ref = + gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + vop->vertical_mc_spatial_ref = + gst_bit_reader_get_bits_uint16_unchecked (&br, 13); + MARKER_UNCHECKED (&br); + + /* Recompute the Macroblock informations + * accordingly to the new values */ + if (vol->interlaced) + vop->mb_height = (2 * (vol->height + 31) / 32); + else + vop->mb_height = (vol->height + 15) / 16; + + vop->mb_width = (vol->width + 15) / 16; + vop->mb_num = vop->mb_height * vop->mb_width; + } + + if ((vol->shape != GST_MPEG4_BINARY_ONLY) && + vol->scalability && vol->enhancement_type) + READ_UINT8 (&br, vop->background_composition, 1); + + READ_UINT8 (&br, vop->change_conv_ratio_disable, 1); + + READ_UINT8 (&br, vop->constant_alpha, 1); + if (vop->constant_alpha) + READ_UINT8 (&br, vop->constant_alpha_value, 1); + } + + if (vol->shape != GST_MPEG4_BINARY_ONLY) { + if (!vol->complexity_estimation_disable) { + GST_WARNING ("Complexity estimation not supported"); + goto failed; + } + + READ_UINT8 (&br, vop->intra_dc_vlc_thr, 3); + + if (vol->interlaced) { + READ_UINT8 (&br, vop->top_field_first, 1); + READ_UINT8 (&br, vop->alternate_vertical_scan_flag, 1); + } + } + + if ((vol->sprite_enable == GST_MPEG4_SPRITE_STATIC || + vol->sprite_enable == GST_MPEG4_SPRITE_GMG) && + vop->coding_type == GST_MPEG4_S_VOP) { + + /* only if @sprite_trajectory is not NULL we parse it */ + if (sprite_trajectory && vol->no_of_sprite_warping_points) + parse_sprite_trajectory (&br, sprite_trajectory, + vol->no_of_sprite_warping_points); + + if (vol->sprite_brightness_change) { + GST_WARNING ("sprite_brightness_change not supported"); + goto failed; + } + + if (vol->sprite_enable == GST_MPEG4_SPRITE_STATIC) { + GST_WARNING ("sprite enable static not supported"); + goto failed; + } + } + + if (vol->shape != GST_MPEG4_BINARY_ONLY) { + READ_UINT16 (&br, vop->quant, vol->quant_precision); + + if (vol->shape == GST_MPEG4_GRAYSCALE) { + /* TODO implement grayscale support */ + GST_WARNING ("Grayscale shapes no supported"); + + /* TODO implement me */ + goto failed; + } + + if (vop->coding_type != GST_MPEG4_I_VOP) { + READ_UINT8 (&br, vop->fcode_forward, 3); + CHECK_ALLOWED (vop->fcode_forward, 1, 7); + } + + if (vop->coding_type == GST_MPEG4_B_VOP) { + READ_UINT8 (&br, vop->fcode_backward, 3); + CHECK_ALLOWED (vop->fcode_backward, 1, 7); + } + } + + if (!vol->scalability) { + if (vol->shape != GST_MPEG4_RECTANGULAR) + READ_UINT8 (&br, vop->shape_coding_type, 1); + + } else { + if (vol->enhancement_type) { + READ_UINT8 (&br, vop->load_backward_shape, 1); + + if (vop->load_backward_shape) { + GST_WARNING ("Load backward shape not supported"); + goto failed; + } + + READ_UINT8 (&br, vop->ref_select_code, 2); + } + } + + vop->size = gst_bit_reader_get_pos (&br); + /* More things to possibly parse ... */ + + return GST_MPEG4_PARSER_OK; + +failed: + GST_WARNING ("failed parsing \"Video Object Plane\""); + return GST_MPEG4_PARSER_ERROR; + +wrong_start_code: + GST_WARNING ("got buffer with wrong start code"); + goto failed; +} + +/** + * gst_mpeg4_parse_video_plane_with_short_header: + * @shorthdr: The #GstMpeg4VideoPlaneShortHdr to parse + * @data: The data to parse + * @size: The size of the @data to parse + */ +GstMpeg4ParseResult +gst_mpeg4_parse_video_plane_short_header (GstMpeg4VideoPlaneShortHdr * + shorthdr, const guint8 * data, gsize size) +{ + guint8 zero_bits; + + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (shorthdr != NULL, GST_MPEG4_PARSER_ERROR); + + if (gst_bit_reader_get_remaining (&br) < 48) + goto failed; + + if (gst_bit_reader_get_bits_uint32_unchecked (&br, 22) != 0x20) + goto failed; + + shorthdr->temporal_reference = + gst_bit_reader_get_bits_uint8_unchecked (&br, 8); + CHECK_MARKER (&br); + zero_bits = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + if (zero_bits != 0x00) + goto failed; + + shorthdr->split_screen_indicator = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + shorthdr->document_camera_indicator = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + shorthdr->full_picture_freeze_release = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + shorthdr->source_format = gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + + /* Set parameters/Table 6-25 */ + switch (shorthdr->source_format) { + case 0x01: + shorthdr->vop_width = 128; + shorthdr->vop_height = 96; + shorthdr->num_macroblocks_in_gob = 8; + shorthdr->num_gobs_in_vop = 6; + break; + case 0x02: + shorthdr->vop_width = 176; + shorthdr->vop_height = 144; + shorthdr->num_macroblocks_in_gob = 11; + shorthdr->num_gobs_in_vop = 9; + break; + case 0x03: + shorthdr->vop_width = 352; + shorthdr->vop_height = 288; + shorthdr->num_macroblocks_in_gob = 22; + shorthdr->num_gobs_in_vop = 18; + break; + case 0x04: + shorthdr->vop_width = 704; + shorthdr->vop_height = 576; + shorthdr->num_macroblocks_in_gob = 88; + shorthdr->num_gobs_in_vop = 18; + break; + case 0x05: + shorthdr->vop_width = 1408; + shorthdr->vop_height = 1152; + shorthdr->num_macroblocks_in_gob = 352; + shorthdr->num_gobs_in_vop = 18; + break; + default: + shorthdr->vop_width = 0; + shorthdr->vop_height = 0; + shorthdr->num_macroblocks_in_gob = 0; + shorthdr->num_gobs_in_vop = 0; + } + + shorthdr->picture_coding_type = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + zero_bits = gst_bit_reader_get_bits_uint8_unchecked (&br, 4); + + if (zero_bits != 0x00) + goto failed; + + shorthdr->vop_quant = gst_bit_reader_get_bits_uint8_unchecked (&br, 5); + zero_bits = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + + if (zero_bits != 0x00) + goto failed; + + do { + READ_UINT8 (&br, shorthdr->pei, 1); + + if (shorthdr->pei == 1) + READ_UINT8 (&br, shorthdr->psupp, 8); + + } while (shorthdr->pei == 1); + + shorthdr->size = gst_bit_reader_get_pos (&br); + + return GST_MPEG4_PARSER_OK; + +failed: + GST_WARNING ("Could not parse the Plane short header"); + + return GST_MPEG4_PARSER_ERROR; +} + +/** + * gst_mpeg4_parse_video_packet_header: + * @videopackethdr: The #GstMpeg4VideoPacketHdr structure to fill + * @vol: The last parsed #GstMpeg4VideoObjectLayer, will be updated + * with the informations found during the parsing + * @vop: The last parsed #GstMpeg4VideoObjectPlane, will be updated + * with the informations found during the parsing + * @sprite_trajectory: A #GstMpeg4SpriteTrajectory to fill or %NULL + * with the informations found during the parsing + * @data: The data to parse, should be set after the resync marker. + * @size: The size of the data to parse + * + * Parsers @data containing the video packet header + * and fills the @videopackethdr structure + */ +GstMpeg4ParseResult +gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr * videopackethdr, + GstMpeg4VideoObjectLayer * vol, GstMpeg4VideoObjectPlane * vop, + GstMpeg4SpriteTrajectory * sprite_trajectory, const guint8 * data, + gsize size) +{ + guint8 markersize; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (videopackethdr != NULL, GST_MPEG4_PARSER_ERROR); + g_return_val_if_fail (vol != NULL, GST_MPEG4_PARSER_ERROR); + + markersize = compute_resync_marker_size (vop, NULL, NULL); + + CHECK_REMAINING (&br, markersize); + + if (gst_bit_reader_get_bits_uint32_unchecked (&br, markersize + 1) != 0x01) + goto failed; + + if (vol->shape != GST_MPEG4_RECTANGULAR) { + READ_UINT8 (&br, videopackethdr->header_extension_code, 1); + if (vol->sprite_enable == GST_MPEG4_SPRITE_STATIC && + vop->coding_type == GST_MPEG4_I_VOP) { + + CHECK_REMAINING (&br, 56); + + U_READ_UINT16 (&br, vop->width, 13); + CHECK_MARKER (&br); + U_READ_UINT16 (&br, vop->height, 13); + CHECK_MARKER (&br); + U_READ_UINT16 (&br, vop->horizontal_mc_spatial_ref, 13); + CHECK_MARKER (&br); + U_READ_UINT16 (&br, vop->vertical_mc_spatial_ref, 13); + CHECK_MARKER (&br); + + /* Update macroblock infirmations */ + vop->mb_height = (vop->height + 15) / 16; + vop->mb_width = (vop->width + 15) / 16; + vop->mb_num = vop->mb_height * vop->mb_width; + } + } + + READ_UINT16 (&br, videopackethdr->macroblock_number, + g_bit_storage (vop->mb_num - 1)); + + if (vol->shape != GST_MPEG4_BINARY_ONLY) + READ_UINT16 (&br, videopackethdr->quant_scale, vol->quant_precision); + + if (vol->shape == GST_MPEG4_RECTANGULAR) + READ_UINT8 (&br, videopackethdr->header_extension_code, 1); + + if (videopackethdr->header_extension_code) { + guint timeincr = 0; + guint8 bit = 0, coding_type; + + do { + READ_UINT8 (&br, bit, 1); + timeincr++; + } while (bit); + + vol->vop_time_increment_bits = timeincr; + + CHECK_MARKER (&br); + READ_UINT16 (&br, vop->time_increment, timeincr); + CHECK_MARKER (&br); + READ_UINT8 (&br, coding_type, 2); + vop->coding_type = coding_type; + + if (vol->shape != GST_MPEG4_RECTANGULAR) { + READ_UINT8 (&br, vop->change_conv_ratio_disable, 1); + if (vop->coding_type != GST_MPEG4_I_VOP) + READ_UINT8 (&br, vop->shape_coding_type, 1); + } + + if (vol->shape != GST_MPEG4_BINARY_ONLY) { + READ_UINT8 (&br, vop->intra_dc_vlc_thr, 3); + + if (sprite_trajectory && vol->sprite_enable == GST_MPEG4_SPRITE_GMG && + vop->coding_type == GST_MPEG4_S_VOP && + vol->no_of_sprite_warping_points > 0) { + + parse_sprite_trajectory (&br, sprite_trajectory, + vol->no_of_sprite_warping_points); + } + + if (vol->reduced_resolution_vop_enable && + vol->shape == GST_MPEG4_RECTANGULAR && + (vop->coding_type == GST_MPEG4_P_VOP || + vop->coding_type == GST_MPEG4_I_VOP)) + READ_UINT8 (&br, vop->reduced_resolution, 1); + + if (vop->coding_type != GST_MPEG4_I_VOP) { + READ_UINT8 (&br, vop->fcode_forward, 3); + CHECK_ALLOWED (vop->fcode_forward, 1, 7); + } + + if (vop->coding_type == GST_MPEG4_B_VOP) { + READ_UINT8 (&br, vop->fcode_backward, 3); + CHECK_ALLOWED (vop->fcode_backward, 1, 7); + } + } + } + + if (vol->newpred_enable) { + guint16 nbbits = + vol->vop_time_increment_bits + 3 < 15 ? vop->time_increment + 3 : 15; + + READ_UINT16 (&br, vop->id, nbbits); + READ_UINT8 (&br, vop->id_for_prediction_indication, 1); + if (vop->id_for_prediction_indication) { + /* Would be nice if the standard actually told us... */ + READ_UINT16 (&br, vop->id, nbbits); + CHECK_MARKER (&br); + } + } + + videopackethdr->size = gst_bit_reader_get_pos (&br); + +failed: + GST_DEBUG ("Failed to parse video packet header"); + + return GST_MPEG4_PARSER_NO_PACKET; +} diff --git a/gst-libs/gst/codecparsers/gstmpeg4parser.h b/gst-libs/gst/codecparsers/gstmpeg4parser.h new file mode 100644 index 0000000..22f52b5 --- /dev/null +++ b/gst-libs/gst/codecparsers/gstmpeg4parser.h @@ -0,0 +1,578 @@ +/* + * GStreamer + * Copyright (C) 2009 Carl-Anton Ingmarsson + * + * 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_MPEG4UTIL_H__ +#define __GST_MPEG4UTIL_H__ + +#include +#include + +typedef struct _GstMpeg4VisualObjectSequence GstMpeg4VisualObjectSequence; +typedef struct _GstMpeg4VisualObject GstMpeg4VisualObject; +typedef struct _GstMpeg4VideoObjectLayer GstMpeg4VideoObjectLayer; +typedef struct _GstMpeg4GroupOfVOP GstMpeg4GroupOfVOP; +typedef struct _GstMpeg4VideoObjectPlane GstMpeg4VideoObjectPlane; +typedef struct _GstMpeg4VideoSignalType GstMpeg4VideoSignalType; +typedef struct _GstMpeg4VideoPlaneShortHdr GstMpeg4VideoPlaneShortHdr; +typedef struct _GstMpeg4VideoPacketHdr GstMpeg4VideoPacketHdr; + +typedef struct _GstMpeg4SpriteTrajectory GstMpeg4SpriteTrajectory; + +typedef struct _GstMpeg4Packet GstMpeg4Packet; + +/** + * GstMpeg4StartCode: + * + * Defines the different startcodes present in the bitstream as + * defined in: Table 6-3 — Start code values + */ +typedef enum +{ + GST_MPEG4_VIDEO_OBJ_FIRST = 0x00, + GST_MPEG4_VIDEO_OBJ_LAST = 0x1f, + GST_MPEG4_VIDEO_LAYER_FIRST = 0x20, + GST_MPEG4_VIDEO_LAYER_LAST = 0x2f, + GST_MPEG4_VISUAL_OBJ_SEQ_START = 0xb0, + GST_MPEG4_VISUAL_OBJ_SEQ_END = 0xb1, + GST_MPEG4_USER_DATA = 0xb2, + GST_MPEG4_GROUP_OF_VOP = 0xb3, + GST_MPEG4_VIDEO_SESSION_ERR = 0xb4, + GST_MPEG4_VISUAL_OBJ = 0xb5, + GST_MPEG4_VIDEO_OBJ_PLANE = 0xb6, + GST_MPEG4_FBA = 0xba, + GST_MPEG4_FBA_PLAN = 0xbb, + GST_MPEG4_MESH = 0xbc, + GST_MPEG4_MESH_PLAN = 0xbd, + GST_MPEG4_STILL_TEXTURE_OBJ = 0xbe, + GST_MPEG4_TEXTURE_SPATIAL = 0xbf, + GST_MPEG4_TEXTURE_SNR_LAYER = 0xc0, + GST_MPEG4_TEXTURE_TILE = 0xc1, + GST_MPEG4_SHAPE_LAYER = 0xc2, + GST_MPEG4_STUFFING = 0xc3, + GST_MPEG4_SYSTEM_FIRST = 0xc6, + GST_MPEG4_SYSTEM_LAST = 0xff, + GST_MPEG4_RESYNC = 0xfff +} GstMpeg4StartCode; + +/** + * GstMpeg4VisualObjectType: + * + * Defines the different visual object types as + * defined in: Table 6-5 -- Meaning of visual object type + */ +typedef enum { + GST_MPEG4_VIDEO_ID = 0x01, + GST_MPEG4_STILL_TEXTURE_ID = 0x02, + GST_MPEG4_STILL_MESH_ID = 0x03, + GST_MPEG4_STILL_FBA_ID = 0x04, + GST_MPEG4_STILL_3D_MESH_ID = 0x05, + /*... reserved */ + +} GstMpeg4VisualObjectType; + +/** + * GstMpeg4AspectRatioInfo: + * @GST_MPEG4_SQUARE: 1:1 square + * @GST_MPEG4_625_TYPE_4_3: 12:11 (625-type for 4:3 picture) + * @GST_MPEG4_525_TYPE_4_3: 10:11 (525-type for 4:3 picture) + * @GST_MPEG4_625_TYPE_16_9: 16:11 (625-type stretched for 16:9 picture) + * @GST_MPEG4_525_TYPE_16_9: 40:33 (525-type stretched for 16:9 picture) + * @GST_MPEG4_EXTENDED_PAR: Extended par + * + * Defines the different pixel aspect ratios as + * defined in: Table 6-12 -- Meaning of pixel aspect ratio + */ +typedef enum { + GST_MPEG4_SQUARE = 0x01, + GST_MPEG4_625_TYPE_4_3 = 0x02, + GST_MPEG4_525_TYPE_4_3 = 0x03, + GST_MPEG4_625_TYPE_16_9 = 0x04, + GST_MPEG4_525_TYPE_16_9 = 0x05, + GST_MPEG4_EXTENDED_PAR = 0x0f, +} GstMpeg4AspectRatioInfo; + +/** + * GstMpeg4ParseResult: + * @GST_MPEG4_PARSER_OK: The parsing went well + * @GST_MPEG4_PARSER_BROKEN_DATA: The bitstream was broken + * @GST_MPEG4_PARSER_NO_PACKET: There was no packet in the buffer + * @GST_MPEG4_PARSER_NO_PACKET_END: There was no packet end in the buffer + * @GST_MPEG4_PARSER_NO_PACKET_ERROR: An error accured durint the parsing + * + * Result type of any parsing function. + */ +typedef enum { + GST_MPEG4_PARSER_OK, + GST_MPEG4_PARSER_BROKEN_DATA, + GST_MPEG4_PARSER_NO_PACKET, + GST_MPEG4_PARSER_NO_PACKET_END, + GST_MPEG4_PARSER_ERROR, +} GstMpeg4ParseResult; + +/** + * GstMpeg4VideoObjectCodingType: + * @GST_MPEG4_I_VOP: intra-coded (I) + * @GST_MPEG4_P_VOP: predictive-coded (P) + * @GST_MPEG4_B_VOP: bidirectionally-predictive-coded (B) + * @GST_MPEG4_S_VOP: sprite (S) + * + * The vop coding types as defined in: + * Table 6-20 -- Meaning of vop_coding_type + */ +typedef enum { + GST_MPEG4_I_VOP = 0x0, + GST_MPEG4_P_VOP = 0x1, + GST_MPEG4_B_VOP = 0x2, + GST_MPEG4_S_VOP = 0x3 +} GstMpeg4VideoObjectCodingType; + +/** + * GstMpeg4ChromaFormat + * + * The chroma format in use as + * defined in: Table 6-13 -- Meaning of chroma_format + */ +typedef enum { + /* Other value are reserved */ + GST_MPEG4_CHROMA_4_2_0 = 0x01 +} GstMpeg4ChromaFormat; + +/** + * GstMpeg4VideoObjectLayerShape: + * + * The different video object layer shapes as defined in: + * Table 6-16 — Video Object Layer shape type + */ +typedef enum { + GST_MPEG4_RECTANGULAR, + GST_MPEG4_BINARY, + GST_MPEG4_BINARY_ONLY, + GST_MPEG4_GRAYSCALE +} GstMpeg4VideoObjectLayerShape; + +/** + * GstMpeg4SpriteEnable: + * + * Indicates the usage of static sprite coding + * or global motion compensation (GMC) as defined in: + * Table V2 - 2 -- Meaning of sprite_enable codewords + */ +typedef enum { + GST_MPEG4_SPRITE_UNUSED, + GST_MPEG4_SPRITE_STATIC, + GST_MPEG4_SPRITE_GMG +} GstMpeg4SpriteEnable; + +/** + * GstMpeg4Profile: + * + * Different defined profiles as defined in: + * 9- Profiles and levels + * + * It is computed using: + * Table G.1 — FLC table for profile_and_level_indication + */ +typedef enum { + GST_MPEG4_PROFILE_CORE, + GST_MPEG4_PROFILE_MAIN, + GST_MPEG4_PROFILE_N_BIT, + GST_MPEG4_PROFILE_SIMPLE, + GST_MPEG4_PROFILE_HYBRID, + GST_MPEG4_PROFILE_RESERVED, + GST_MPEG4_PROFILE_SIMPLE_FBA, + GST_MPEG4_PROFILE_CORE_STUDIO, + GST_MPEG4_PROFILE_SIMPLE_STUDIO, + GST_MPEG4_PROFILE_CORE_SCALABLE, + GST_MPEG4_PROFILE_ADVANCED_CORE, + GST_MPEG4_PROFILE_ADVANCED_SIMPLE, + GST_MPEG4_PROFILE_SIMPLE_SCALABLE, + GST_MPEG4_PROFILE_SCALABLE_TEXTURE, + GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION, + GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE, + GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE, + GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE, + GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE, + GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY +} GstMpeg4Profile; + +/** + * GstMpeg4Level: + * + * Different levels as defined in: + * 9- Profiles and levels + * + * It is computed using: + * Table G.1 — FLC table for profile_and_level_indication + */ +typedef enum { + GST_MPEG4_LEVEL0, + GST_MPEG4_LEVEL1, + GST_MPEG4_LEVEL2, + GST_MPEG4_LEVEL3, + GST_MPEG4_LEVEL3b, + GST_MPEG4_LEVEL4, + GST_MPEG4_LEVEL5, + GST_MPEG4_LEVEL_RESERVED +} GstMpeg4Level; + +/** + * GstMpeg4VisualObjectSequence: + * + * The visual object sequence structure as defined in: + * 6.2.2 Visual Object Sequence and Visual Object + */ +struct _GstMpeg4VisualObjectSequence { + guint8 profile_and_level_indication; + + /* Computed according to: + * Table G.1 — FLC table for profile_and_level_indication */ + GstMpeg4Level level; + GstMpeg4Profile profile; +}; + +/** + * The visual object structure as defined in: + * 6.2.2 Visual Object Sequence and Visual Object + */ +struct _GstMpeg4VisualObject { + guint8 is_identifier; + /* If is_identifier */ + guint8 verid; + guint8 priority; + + GstMpeg4VisualObjectType type; +}; + +/** + * GstMpeg4VideoSignalType: + * + * The video signal type structure as defined in: + * 6.2.2 Visual Object Sequence and Visual Object. + */ +struct _GstMpeg4VideoSignalType { + guint8 type; + + guint8 format; + guint8 range; + guint8 color_description; + guint8 color_primaries; + guint8 transfer_characteristics; + guint8 matrix_coefficients; +}; + +/** + * GstMpeg4VideoPlaneShortHdr: + * + * The video plane short header structure as defined in: + * 6.2.5.2 Video Plane with Short Header + */ +struct _GstMpeg4VideoPlaneShortHdr { + guint8 temporal_reference; + guint8 split_screen_indicator; + guint8 document_camera_indicator; + guint8 full_picture_freeze_release; + guint8 source_format; + guint8 picture_coding_type; + guint8 vop_quant; + guint8 pei; + guint8 psupp; + + /* Gob layer specific fields */ + guint8 gob_header_empty; + guint8 gob_number; + guint8 gob_frame_id; + guint8 quant_scale; + + /* Computed + * If all the values are set to 0, then it is reserved + * Table 6-25 -- Parameters Defined by source_format Field + */ + guint16 vop_width; + guint16 vop_height; + guint16 num_macroblocks_in_gob; + guint8 num_gobs_in_vop; + + /* The size in bits */ + guint size; +}; + +/** + * GstMpeg4VideoObjectLayer: + * + * The video object layer structure as defined in: + * 6.2.3 Video Object Layer + */ +struct _GstMpeg4VideoObjectLayer { + guint8 random_accessible_vol; + guint8 video_object_type_indication; + + guint8 is_object_layer_identifier; + /* if is_object_layer_identifier */ + guint8 verid; + guint8 priority; + + GstMpeg4AspectRatioInfo aspect_ratio_info; + guint8 par_width; + guint8 par_height; + + guint8 control_parameters; + /* if control_parameters */ + GstMpeg4ChromaFormat chroma_format; + guint8 low_delay; + guint8 vbv_parameters; + /* if vbv_parameters */ + guint16 first_half_bitrate; + guint16 latter_half_bitrate; + guint16 first_half_vbv_buffer_size; + guint16 latter_half_vbv_buffer_size; + guint16 first_half_vbv_occupancy; + guint16 latter_half_vbv_occupancy; + + /* Computed values */ + guint32 bit_rate; + guint32 vbv_buffer_size; + + GstMpeg4VideoObjectLayerShape shape; + /* if shape == GST_MPEG4_GRAYSCALE && verid =! 1 */ + guint8 shape_extension; + + guint16 vop_time_increment_resolution; + guint8 vop_time_increment_bits; + guint8 fixed_vop_rate; + /* if fixed_vop_rate */ + guint16 fixed_vop_time_increment; + + guint16 width; + guint16 height; + guint8 interlaced; + guint8 obmc_disable; + + GstMpeg4SpriteEnable sprite_enable; + /* if vol->sprite_enable == SPRITE_GMG or SPRITE_STATIC*/ + /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */ + guint16 sprite_width; + guint16 sprite_height; + guint16 sprite_left_coordinate; + guint16 sprite_top_coordinate; + + guint8 no_of_sprite_warping_points; + guint8 sprite_warping_accuracy; + guint8 sprite_brightness_change; + /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */ + guint8 low_latency_sprite_enable; + + /* if shape != GST_MPEG4_RECTANGULAR */ + guint8 sadct_disable; + + guint8 not_8_bit; + + /* if no_8_bit */ + guint8 quant_precision; + guint8 bits_per_pixel; + + /* if shape == GRAYSCALE */ + guint8 no_gray_quant_update; + guint8 composition_method; + guint8 linear_composition; + + guint8 quant_type; + /* if quant_type */ + guint8 load_intra_quant_mat; + guint8 intra_quant_mat[64]; + guint8 load_non_intra_quant_mat; + guint8 non_intra_quant_mat[64]; + + guint8 quarter_sample; + guint8 complexity_estimation_disable; + guint8 resync_marker_disable; + guint8 data_partitioned; + guint8 reversible_vlc; + guint8 newpred_enable; + guint8 reduced_resolution_vop_enable; + guint8 scalability; + guint8 enhancement_type; + + GstMpeg4VideoPlaneShortHdr short_hdr; +}; + +/** + * GstMpeg4SpriteTrajectory: + * + * The sprite trajectory structure as defined in: + * 7.8.4 Sprite reference point decoding and + * 6.2.5.4 Sprite coding + */ +struct _GstMpeg4SpriteTrajectory { + guint16 vop_ref_points[63]; /* Defined as "du" in 6.2.5.4 */ + guint16 sprite_ref_points[63]; /* Defined as "dv" in 6.2.5.4 */ +}; + +/** + * GstMpeg4GroupOfVOP: + * + * The group of video object plane structure as defined in: + * 6.2.4 Group of Video Object Plane + */ +struct _GstMpeg4GroupOfVOP { + guint8 hours; + guint8 minutes; + guint8 seconds; + + guint8 closed; + guint8 broken_link; +}; + +/** + * GstMpeg4VideoObjectPlane: + * + * The Video object plane structure as defined in: + * 6.2.5 Video Object Plane and Video Plane with Short Header + */ +struct _GstMpeg4VideoObjectPlane { + GstMpeg4VideoObjectCodingType coding_type; + + guint8 modulo_time_base; + guint16 time_increment; + + guint8 coded; + /* if newpred_enable */ + guint16 id; + guint8 id_for_prediction_indication; + guint16 id_for_prediction; + + guint16 width; + guint16 height; + guint16 horizontal_mc_spatial_ref; + guint16 vertical_mc_spatial_ref; + + guint8 rounding_type; + /*if vol->shape != GST_MPEG4_RECTANGULAR */ + guint8 background_composition; + guint8 change_conv_ratio_disable; + guint8 constant_alpha; + guint8 constant_alpha_value; + guint8 reduced_resolution; + + guint8 intra_dc_vlc_thr; + + + guint8 top_field_first; + guint8 alternate_vertical_scan_flag; + + guint16 quant; + + guint8 fcode_forward; + guint8 fcode_backward; + + guint8 shape_coding_type; + guint8 load_backward_shape; + guint8 ref_select_code; + + /* Computed macroblock informations */ + guint16 mb_height; + guint16 mb_width; + guint mb_num; + + /* The size of the header */ + guint size; +}; + +/** + * GstMpeg4VideoPacketHdr: + * @size: Size of the header in bit. + * + * The video packet header structure as defined in: + * 6.2.5.2 Video Plane with Short Header + */ +struct _GstMpeg4VideoPacketHdr { + guint8 header_extension_code; + guint16 macroblock_number; + guint16 quant_scale; + guint size; +}; + +/** + * GstMpeg4Packet: + * @type: the type of the packet that start at @offset + * @data: the data of the packet, statring at @offset + * @offset: offset of the start of the packet (without the 3 bytes startcode), but + * including the #GstMpeg4StartCode byte. + * @size: The size in bytes of the packet or %G_MAXUINT if the end wasn't found. + * @marker_size: The size in bit of the resync marker. + * + * A structure that contains the type of a packet, its offset and its size + */ +struct _GstMpeg4Packet +{ + const guint8 *data; + guint offset; + gsize size; + guint marker_size; + + GstMpeg4StartCode type; +}; + +GstMpeg4ParseResult gst_h263_parse (GstMpeg4Packet * packet, + const guint8 * data, guint offset, + gsize size); + + +GstMpeg4ParseResult gst_mpeg4_parse (GstMpeg4Packet * packet, + gboolean skip_user_data, + GstMpeg4VideoObjectPlane *vop, + const guint8 * data, guint offset, + gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_video_object_plane (GstMpeg4VideoObjectPlane *vop, + GstMpeg4SpriteTrajectory *sprite_trajectory, + GstMpeg4VideoObjectLayer *vol, + const guint8 * data, + gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_group_of_vop (GstMpeg4GroupOfVOP *gov, + const guint8 * data, gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_video_object_layer (GstMpeg4VideoObjectLayer *vol, + GstMpeg4VisualObject *vo, + const guint8 * data, gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_visual_object (GstMpeg4VisualObject *vo, + GstMpeg4VideoSignalType *signal_type, + const guint8 * data, gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_visual_object_sequence (GstMpeg4VisualObjectSequence *vos, + const guint8 * data, gsize size); +GstMpeg4ParseResult +gst_mpeg4_parse_video_plane_short_header (GstMpeg4VideoPlaneShortHdr * shorthdr, + const guint8 * data, gsize size); + +GstMpeg4ParseResult +gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr * videopackethdr, + GstMpeg4VideoObjectLayer * vol, + GstMpeg4VideoObjectPlane * vop, + GstMpeg4SpriteTrajectory * sprite_trajectory, + const guint8 * data, gsize size); + +#endif /* __GST_MPEG4UTIL_H__ */ diff --git a/gst-libs/gst/codecparsers/gstmpegvideoparser.c b/gst-libs/gst/codecparsers/gstmpegvideoparser.c new file mode 100644 index 0000000..b725d9d --- /dev/null +++ b/gst-libs/gst/codecparsers/gstmpegvideoparser.c @@ -0,0 +1,744 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * From bad/sys/vdpau/mpeg/mpegutil.c: + * Copyright (C) <2007> Jan Schmidt + * Copyright (C) <2009> Carl-Anton Ingmarsson + * + * 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:gstmpegvideoparser + * @short_description: Convenience library for mpeg1 and 2 video + * bitstream parsing. + * + * + * + * Provides useful functions for mpeg videos bitstream parsing. + * + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstmpegvideoparser.h" +#include "parserutils.h" + +#include +#include +#include + +#define MARKER_BIT 0x1 + +/* default intra quant matrix, in zig-zag order */ +static const guint8 default_intra_quantizer_matrix[64] = { + 8, + 16, 16, + 19, 16, 19, + 22, 22, 22, 22, + 22, 22, 26, 24, 26, + 27, 27, 27, 26, 26, 26, + 26, 27, 27, 27, 29, 29, 29, + 34, 34, 34, 29, 29, 29, 27, 27, + 29, 29, 32, 32, 34, 34, 37, + 38, 37, 35, 35, 34, 35, + 38, 38, 40, 40, 40, + 48, 48, 46, 46, + 56, 56, 58, + 69, 69, + 83 +}; + +static const guint8 mpeg_zigzag_8x8[64] = { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63 +}; + +GST_DEBUG_CATEGORY (mpegvideo_parser_debug); +#define GST_CAT_DEFAULT mpegvideo_parser_debug + +static gboolean initialized = FALSE; + +static inline gboolean +find_start_code (GstBitReader * b) +{ + guint32 bits; + + /* 0 bits until byte aligned */ + while (b->bit != 0) { + GET_BITS (b, 1, &bits); + } + + /* 0 bytes until startcode */ + while (gst_bit_reader_peek_bits_uint32 (b, &bits, 32)) { + if (bits >> 8 == 0x1) { + return TRUE; + } else { + gst_bit_reader_skip (b, 8); + } + } + + return FALSE; + +failed: + return FALSE; +} + +/* Set the Pixel Aspect Ratio in our hdr from a DAR code in the data */ +static void +set_par_from_dar (GstMpegVideoSequenceHdr * seqhdr, guint8 asr_code) +{ + /* Pixel_width = DAR_width * display_vertical_size */ + /* Pixel_height = DAR_height * display_horizontal_size */ + switch (asr_code) { + case 0x02: /* 3:4 DAR = 4:3 pixels */ + seqhdr->par_w = 4 * seqhdr->height; + seqhdr->par_h = 3 * seqhdr->width; + break; + case 0x03: /* 9:16 DAR */ + seqhdr->par_w = 16 * seqhdr->height; + seqhdr->par_h = 9 * seqhdr->width; + break; + case 0x04: /* 1:2.21 DAR */ + seqhdr->par_w = 221 * seqhdr->height; + seqhdr->par_h = 100 * seqhdr->width; + break; + case 0x01: /* Square pixels */ + seqhdr->par_w = seqhdr->par_h = 1; + break; + default: + GST_DEBUG ("unknown/invalid aspect_ratio_information %d", asr_code); + break; + } +} + +static void +set_fps_from_code (GstMpegVideoSequenceHdr * seqhdr, guint8 fps_code) +{ + const gint framerates[][2] = { + {30, 1}, {24000, 1001}, {24, 1}, {25, 1}, + {30000, 1001}, {30, 1}, {50, 1}, {60000, 1001}, + {60, 1}, {30, 1} + }; + + if (fps_code && fps_code < 10) { + seqhdr->fps_n = framerates[fps_code][0]; + seqhdr->fps_d = framerates[fps_code][1]; + } else { + GST_DEBUG ("unknown/invalid frame_rate_code %d", fps_code); + /* Force a valid framerate */ + /* FIXME or should this be kept unknown ?? */ + seqhdr->fps_n = 30000; + seqhdr->fps_d = 1001; + } +} + +static gboolean +gst_mpeg_video_parse_sequence (GstMpegVideoSequenceHdr * seqhdr, + GstBitReader * br) +{ + guint8 bits; + guint8 load_intra_flag, load_non_intra_flag; + + /* Setting the height/width codes */ + READ_UINT16 (br, seqhdr->width, 12); + READ_UINT16 (br, seqhdr->height, 12); + + READ_UINT8 (br, seqhdr->aspect_ratio_info, 4); + set_par_from_dar (seqhdr, seqhdr->aspect_ratio_info); + + READ_UINT8 (br, seqhdr->frame_rate_code, 4); + set_fps_from_code (seqhdr, seqhdr->frame_rate_code); + + READ_UINT32 (br, seqhdr->bitrate_value, 18); + if (seqhdr->bitrate_value == 0x3ffff) { + /* VBR stream */ + seqhdr->bitrate = 0; + } else { + /* Value in header is in units of 400 bps */ + seqhdr->bitrate *= 400; + } + + READ_UINT8 (br, bits, 1); + if (bits != MARKER_BIT) + goto failed; + + /* VBV buffer size */ + READ_UINT16 (br, seqhdr->vbv_buffer_size_value, 10); + + /* constrained_parameters_flag */ + READ_UINT8 (br, seqhdr->constrained_parameters_flag, 1); + + /* load_intra_quantiser_matrix */ + READ_UINT8 (br, load_intra_flag, 1); + if (load_intra_flag) { + gint i; + for (i = 0; i < 64; i++) + READ_UINT8 (br, seqhdr->intra_quantizer_matrix[mpeg_zigzag_8x8[i]], 8); + } else + memcpy (seqhdr->intra_quantizer_matrix, default_intra_quantizer_matrix, 64); + + /* non intra quantizer matrix */ + READ_UINT8 (br, load_non_intra_flag, 1); + if (load_non_intra_flag) { + gint i; + for (i = 0; i < 64; i++) + READ_UINT8 (br, seqhdr->non_intra_quantizer_matrix[mpeg_zigzag_8x8[i]], + 8); + } else + memset (seqhdr->non_intra_quantizer_matrix, 16, 64); + + /* dump some info */ + GST_LOG ("width x height: %d x %d", seqhdr->width, seqhdr->height); + GST_LOG ("fps: %d/%d", seqhdr->fps_n, seqhdr->fps_d); + GST_LOG ("par: %d/%d", seqhdr->par_w, seqhdr->par_h); + GST_LOG ("bitrate: %d", seqhdr->bitrate); + + return TRUE; + + /* ERRORS */ +failed: + { + GST_WARNING ("Failed to parse sequence header"); + /* clear out stuff */ + memset (seqhdr, 0, sizeof (*seqhdr)); + return FALSE; + } +} + +static inline guint +scan_for_start_codes (const GstByteReader * reader, guint offset, guint size) +{ + const guint8 *data; + guint32 state; + guint i; + + g_return_val_if_fail (size > 0, -1); + g_return_val_if_fail ((guint64) offset + size <= reader->size - reader->byte, + -1); + + /* we can't find the pattern with less than 4 bytes */ + if (G_UNLIKELY (size < 4)) + return -1; + + data = reader->data + reader->byte + offset; + + /* set the state to something that does not match */ + state = 0xffffffff; + + /* now find data */ + for (i = 0; i < size; i++) { + /* throw away one byte and move in the next byte */ + state = ((state << 8) | data[i]); + if (G_UNLIKELY ((state & 0xffffff00) == 0x00000100)) { + /* we have a match but we need to have skipped at + * least 4 bytes to fill the state. */ + if (G_LIKELY (i >= 3)) + return offset + i - 3; + } + + /* TODO: reimplement making 010001 not detected as a sc + * Accelerate search for start code + * if (data[i] > 1) { + * while (i < (size - 4) && data[i] > 1) { + * if (data[i + 3] > 1) + * i += 4; + * else + * i += 1; + * } + * state = 0x00000100; + *} + */ + } + + /* nothing found */ + return -1; +} + +/****** API *******/ + +/** + * gst_mpeg_video_parse: + * @data: The data to parse + * @size: The size of @data + * @offset: The offset from which to start parsing + * + * Parses the MPEG 1/2 video bitstream contained in @data , and returns the + * detect packets as a list of #GstMpegVideoTypeOffsetSize. + * + * Returns: a #GList of #GstMpegVideoTypeOffsetSize + */ +GList * +gst_mpeg_video_parse (const guint8 * data, gsize size, guint offset) +{ + gint off, rsize; + GstByteReader br; + GList *ret = NULL; + + size -= offset; + + if (!initialized) { + GST_DEBUG_CATEGORY_INIT (mpegvideo_parser_debug, "codecparsers_mpegvideo", + 0, "Mpegvideo parser library"); + initialized = TRUE; + } + + if (size <= 0) { + GST_DEBUG ("Can't parse from offset %d, buffer is to small", offset); + return NULL; + } + + gst_byte_reader_init (&br, &data[offset], size); + + off = scan_for_start_codes (&br, 0, size); + + if (off < 0) { + GST_DEBUG ("No start code prefix in this buffer"); + return NULL; + } + + while (off >= 0 && off + 3 < size) { + GstMpegVideoTypeOffsetSize *codoffsize; + + gst_byte_reader_skip (&br, off + 3); + + codoffsize = g_malloc (sizeof (GstMpegVideoTypeOffsetSize)); + gst_byte_reader_get_uint8 (&br, &codoffsize->type); + + codoffsize->offset = gst_byte_reader_get_pos (&br) + offset; + + rsize = gst_byte_reader_get_remaining (&br); + if (rsize <= 0) { + g_free (codoffsize); + break; + } + + off = scan_for_start_codes (&br, 0, rsize); + + codoffsize->size = off; + + ret = g_list_prepend (ret, codoffsize); + codoffsize = ret->data; + } + + return g_list_reverse (ret); +} + +/** + * gst_mpeg_video_parse_sequence_header: + * @seqhdr: (out): The #GstMpegVideoSequenceHdr structure to fill + * @data: The data from which to parse the sequence header + * @size: The size of @data + * @offset: The offset in byte from which to start parsing @data + * + * Parses the @seqhdr Mpeg Video Sequence Header structure members from @data + * + * Returns: %TRUE if the seqhdr could be parsed correctly, %FALSE otherwize. + */ +gboolean +gst_mpeg_video_parse_sequence_header (GstMpegVideoSequenceHdr * seqhdr, + const guint8 * data, gsize size, guint offset) +{ + GstBitReader br; + + g_return_val_if_fail (seqhdr != NULL, FALSE); + + size -= offset; + + if (size < 4) + return FALSE; + + gst_bit_reader_init (&br, &data[offset], size); + + return gst_mpeg_video_parse_sequence (seqhdr, &br); +} + +/** + * gst_mpeg_video_parse_sequence_extension: + * @seqext: (out): The #GstMpegVideoSequenceExt structure to fill + * @data: The data from which to parse the sequence extension + * @size: The size of @data + * @offset: The offset in byte from which to start parsing @data + * + * Parses the @seqext Mpeg Video Sequence Extension structure members from @data + * + * Returns: %TRUE if the seqext could be parsed correctly, %FALSE otherwize. + */ +gboolean +gst_mpeg_video_parse_sequence_extension (GstMpegVideoSequenceExt * seqext, + const guint8 * data, gsize size, guint offset) +{ + GstBitReader br; + + g_return_val_if_fail (seqext != NULL, FALSE); + + size -= offset; + + if (size < 6) { + GST_DEBUG ("not enough bytes to parse the extension"); + return FALSE; + } + + gst_bit_reader_init (&br, &data[offset], size); + + if (gst_bit_reader_get_bits_uint8_unchecked (&br, 4) != + GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE) { + GST_DEBUG ("Not parsing a sequence extension"); + return FALSE; + } + + /* skip profile and level escape bit */ + gst_bit_reader_skip_unchecked (&br, 1); + + seqext->profile = gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + seqext->level = gst_bit_reader_get_bits_uint8_unchecked (&br, 4); + + /* progressive */ + seqext->progressive = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + + /* chroma format */ + seqext->chroma_format = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + + /* resolution extension */ + seqext->horiz_size_ext = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + seqext->vert_size_ext = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + + seqext->bitrate_ext = gst_bit_reader_get_bits_uint16_unchecked (&br, 12); + + /* skip marker bits */ + gst_bit_reader_skip_unchecked (&br, 1); + + seqext->vbv_buffer_size_extension = + gst_bit_reader_get_bits_uint8_unchecked (&br, 8); + seqext->low_delay = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + + /* framerate extension */ + seqext->fps_n_ext = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + seqext->fps_d_ext = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + + return TRUE; +} + +/** + * gst_mpeg_video_parse_quant_matrix_extension: + * @quant: (out): The #GstMpegVideoQuantMatrixExt structure to fill + * @data: The data from which to parse the Quantization Matrix extension + * @size: The size of @data + * @offset: The offset in byte from which to start the parsing + * + * Parses the @quant Mpeg Video Quant Matrix Extension structure members from + * @data + * + * Returns: %TRUE if the quant matrix extension could be parsed correctly, + * %FALSE otherwize. + */ +gboolean +gst_mpeg_video_parse_quant_matrix_extension (GstMpegVideoQuantMatrixExt * quant, + const guint8 * data, gsize size, guint offset) +{ + guint8 i; + GstBitReader br; + + g_return_val_if_fail (quant != NULL, FALSE); + + size -= offset; + + if (size < 1) { + GST_DEBUG ("not enough bytes to parse the extension"); + return FALSE; + } + + gst_bit_reader_init (&br, &data[offset], size); + + if (gst_bit_reader_get_bits_uint8_unchecked (&br, 4) != + GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX) { + GST_DEBUG ("Not parsing a quant matrix extension"); + return FALSE; + } + + READ_UINT8 (&br, quant->load_intra_quantiser_matrix, 1); + if (quant->load_intra_quantiser_matrix) { + for (i = 0; i < 64; i++) { + READ_UINT8 (&br, quant->intra_quantiser_matrix[mpeg_zigzag_8x8[i]], 8); + } + } + + READ_UINT8 (&br, quant->load_non_intra_quantiser_matrix, 1); + if (quant->load_non_intra_quantiser_matrix) { + for (i = 0; i < 64; i++) { + READ_UINT8 (&br, quant->non_intra_quantiser_matrix[mpeg_zigzag_8x8[i]], + 8); + } + } + + READ_UINT8 (&br, quant->load_chroma_intra_quantiser_matrix, 1); + if (quant->load_chroma_intra_quantiser_matrix) { + for (i = 0; i < 64; i++) { + READ_UINT8 (&br, quant->chroma_intra_quantiser_matrix[mpeg_zigzag_8x8[i]], + 8); + } + } + + READ_UINT8 (&br, quant->load_chroma_non_intra_quantiser_matrix, 1); + if (quant->load_chroma_non_intra_quantiser_matrix) { + for (i = 0; i < 64; i++) { + READ_UINT8 (&br, + quant->chroma_non_intra_quantiser_matrix[mpeg_zigzag_8x8[i]], 8); + } + } + + return TRUE; + +failed: + GST_WARNING ("error parsing \"Quant Matrix Extension\""); + return FALSE; +} + +/** + * gst_mpeg_video_parse_picture_extension: + * @ext: (out): The #GstMpegVideoPictureExt structure to fill + * @data: The data from which to parse the picture extension + * @size: The size of @data + * @offset: The offset in byte from which to start the parsing + * + * Parse the @ext Mpeg Video Picture Extension structure members from @data + * + * Returns: %TRUE if the picture extension could be parsed correctly, + * %FALSE otherwize. + */ +gboolean +gst_mpeg_video_parse_picture_extension (GstMpegVideoPictureExt * ext, + const guint8 * data, gsize size, guint offset) +{ + GstBitReader br; + + g_return_val_if_fail (ext != NULL, FALSE); + + size -= offset; + + if (size < 4) + return FALSE; + + gst_bit_reader_init (&br, &data[offset], size); + + if (gst_bit_reader_get_bits_uint8_unchecked (&br, 4) != + GST_MPEG_VIDEO_PACKET_EXT_PICTURE) { + GST_DEBUG ("Not parsing a picture extension"); + return FALSE; + } + + /* f_code */ + READ_UINT8 (&br, ext->f_code[0][0], 4); + READ_UINT8 (&br, ext->f_code[0][1], 4); + READ_UINT8 (&br, ext->f_code[1][0], 4); + READ_UINT8 (&br, ext->f_code[1][1], 4); + + /* intra DC precision */ + READ_UINT8 (&br, ext->intra_dc_precision, 2); + + /* picture structure */ + READ_UINT8 (&br, ext->picture_structure, 2); + + /* top field first */ + READ_UINT8 (&br, ext->top_field_first, 1); + + /* frame pred frame dct */ + READ_UINT8 (&br, ext->frame_pred_frame_dct, 1); + + /* concealment motion vectors */ + READ_UINT8 (&br, ext->concealment_motion_vectors, 1); + + /* q scale type */ + READ_UINT8 (&br, ext->q_scale_type, 1); + + /* intra vlc format */ + READ_UINT8 (&br, ext->intra_vlc_format, 1); + + /* alternate scan */ + READ_UINT8 (&br, ext->alternate_scan, 1); + + /* repeat first field */ + READ_UINT8 (&br, ext->repeat_first_field, 1); + + /* chroma_420_type */ + READ_UINT8 (&br, ext->chroma_420_type, 1); + + /* progressive_frame */ + READ_UINT8 (&br, ext->progressive_frame, 1); + + /* composite display */ + READ_UINT8 (&br, ext->composite_display, 1); + + if (ext->composite_display) { + + /* v axis */ + READ_UINT8 (&br, ext->v_axis, 1); + + /* field sequence */ + READ_UINT8 (&br, ext->field_sequence, 3); + + /* sub carrier */ + READ_UINT8 (&br, ext->sub_carrier, 1); + + /* burst amplitude */ + READ_UINT8 (&br, ext->burst_amplitude, 7); + + /* sub_carrier phase */ + READ_UINT8 (&br, ext->sub_carrier_phase, 8); + } + + return TRUE; + +failed: + GST_WARNING ("error parsing \"Picture Coding Extension\""); + return FALSE; + +} + +/** + * gst_mpeg_video_parse_picture_header: + * @hdr: (out): The #GstMpegVideoPictureHdr structure to fill + * @data: The data from which to parse the picture header + * @size: The size of @data + * @offset: The offset in byte from which to start the parsing + * + * Parsers the @hdr Mpeg Video Picture Header structure members from @data + * + * Returns: %TRUE if the picture sequence could be parsed correctly, %FALSE + * otherwize. + */ +gboolean +gst_mpeg_video_parse_picture_header (GstMpegVideoPictureHdr * hdr, + const guint8 * data, gsize size, guint offset) +{ + GstBitReader br; + + size = size - offset; + + if (size < 4) + goto failed; + + gst_bit_reader_init (&br, &data[offset], size); + + /* temperal sequence number */ + if (!gst_bit_reader_get_bits_uint16 (&br, &hdr->tsn, 10)) + goto failed; + + + /* frame type */ + if (!gst_bit_reader_get_bits_uint8 (&br, (guint8 *) & hdr->pic_type, 3)) + goto failed; + + + if (hdr->pic_type == 0 || hdr->pic_type > 4) + goto failed; /* Corrupted picture packet */ + + /* skip VBV delay */ + if (!gst_bit_reader_skip (&br, 16)) + goto failed; + + if (hdr->pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_P + || hdr->pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_B) { + + READ_UINT8 (&br, hdr->full_pel_forward_vector, 1); + + READ_UINT8 (&br, hdr->f_code[0][0], 3); + hdr->f_code[0][1] = hdr->f_code[0][0]; + } else { + hdr->full_pel_forward_vector = 0; + hdr->f_code[0][0] = hdr->f_code[0][1] = 0; + } + + if (hdr->pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_B) { + READ_UINT8 (&br, hdr->full_pel_backward_vector, 1); + + READ_UINT8 (&br, hdr->f_code[1][0], 3); + hdr->f_code[1][1] = hdr->f_code[1][0]; + } else { + hdr->full_pel_backward_vector = 0; + hdr->f_code[1][0] = hdr->f_code[1][1] = 0; + } + + return TRUE; + +failed: + { + GST_WARNING ("Failed to parse picture header"); + return FALSE; + } +} + +/** + * gst_mpeg_video_parse_gop: + * @gop: (out): The #GstMpegVideoGop structure to fill + * @data: The data from which to parse the gop + * @size: The size of @data + * @offset: The offset in byte from which to start the parsing + * + * Parses the @gop Mpeg Video Group of Picture structure members from @data + * + * Returns: %TRUE if the gop could be parsed correctly, %FALSE otherwize. + */ +gboolean +gst_mpeg_video_parse_gop (GstMpegVideoGop * gop, const guint8 * data, + gsize size, guint offset) +{ + GstBitReader br; + + g_return_val_if_fail (gop != NULL, FALSE); + + size -= offset; + + if (size < 4) + return FALSE; + + gst_bit_reader_init (&br, &data[offset], size); + + READ_UINT8 (&br, gop->drop_frame_flag, 1); + + READ_UINT8 (&br, gop->hour, 5); + + READ_UINT8 (&br, gop->minute, 6); + + /* skip unused bit */ + if (!gst_bit_reader_skip (&br, 1)) + return FALSE; + + READ_UINT8 (&br, gop->second, 6); + + READ_UINT8 (&br, gop->frame, 6); + + READ_UINT8 (&br, gop->closed_gop, 1); + + READ_UINT8 (&br, gop->broken_link, 1); + + return TRUE; + +failed: + GST_WARNING ("error parsing \"GOP\""); + return FALSE; +} diff --git a/gst-libs/gst/codecparsers/gstmpegvideoparser.h b/gst-libs/gst/codecparsers/gstmpegvideoparser.h new file mode 100644 index 0000000..7c23114 --- /dev/null +++ b/gst-libs/gst/codecparsers/gstmpegvideoparser.h @@ -0,0 +1,400 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * From bad/sys/vdpau/mpeg/mpegutil.c: + * Copyright (C) <2007> Jan Schmidt + * Copyright (C) <2009> Carl-Anton Ingmarsson + * + * 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_MPEG_VIDEO_UTILS_H__ +#define __GST_MPEG_VIDEO_UTILS_H__ + +#ifndef GST_USE_UNSTABLE_API +#warning "The Mpeg video parsing library is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GstMpegVideoPacketTypeCode: + * @GST_MPEG_VIDEO_PACKET_PICTURE: Picture packet starting code + * @GST_MPEG_VIDEO_PACKET_SLICE_MIN: Slice min packet starting code + * @GST_MPEG_VIDEO_PACKET_SLICE_MAX: Slice max packet starting code + * @GST_MPEG_VIDEO_PACKET_USER_DATA: User data packet starting code + * @GST_MPEG_VIDEO_PACKET_SEQUENCE : Sequence packet starting code + * @GST_MPEG_VIDEO_PACKET_EXTENSION: Extension packet starting code + * @GST_MPEG_VIDEO_PACKET_SEQUENCE_END: Sequence end packet code + * @GST_MPEG_VIDEO_PACKET_GOP: Group of Picture packet starting code + * @GST_MPEG_VIDEO_PACKET_NONE: None packet code + * + * Indicates the type of MPEG packet + */ +typedef enum { + GST_MPEG_VIDEO_PACKET_PICTURE = 0x00, + GST_MPEG_VIDEO_PACKET_SLICE_MIN = 0x01, + GST_MPEG_VIDEO_PACKET_SLICE_MAX = 0xaf, + GST_MPEG_VIDEO_PACKET_USER_DATA = 0xb2, + GST_MPEG_VIDEO_PACKET_SEQUENCE = 0xb3, + GST_MPEG_VIDEO_PACKET_EXTENSION = 0xb5, + GST_MPEG_VIDEO_PACKET_SEQUENCE_END = 0xb7, + GST_MPEG_VIDEO_PACKET_GOP = 0xb8, + GST_MPEG_VIDEO_PACKET_NONE = 0xff +} GstMpegVideoPacketTypeCode; + +/** + * GST_MPEG_VIDEO_PACKET_IS_SLICE: + * @typecode: The MPEG video packet type code + * + * Checks whether a packet type code is a slice. + * + * Returns: %TRUE if the packet type code corresponds to a slice, + * else %FALSE. + */ +#define GST_MPEG_VIDEO_PACKET_IS_SLICE(typecode) ((typecode) >= GST_MPEG_VIDEO_PACKET_SLICE_MIN && \ + (typecode) <= GST_MPEG_VIDEO_PACKET_SLICE_MAX) + +/** + * GstMpegVideoPacketExtensionCode: + * @GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE: Sequence extension code + * @GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY: Sequence Display extension code + * @GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX: Quantization Matrix extension code + * @GST_MPEG_VIDEO_PACKET_EXT_PICTURE: Picture coding extension + * + * Indicates what type of packets are in this block, some are mutually + * exclusive though - ie, sequence packs are accumulated separately. GOP & + * Picture may occur together or separately. + */ +typedef enum { + GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE = 0x01, + GST_MPEG_VIDEO_PACKET_EXT_SEQUENCE_DISPLAY = 0x02, + GST_MPEG_VIDEO_PACKET_EXT_QUANT_MATRIX = 0x03, + GST_MPEG_VIDEO_PACKET_EXT_PICTURE = 0x08 +} GstMpegVideoPacketExtensionCode; + +/** + * GstMpegVideoLevel: + * @GST_MPEG_VIDEO_LEVEL_LOW: Low level (LL) + * @GST_MPEG_VIDEO_LEVEL_MAIN: Main level (ML) + * @GST_MPEG_VIDEO_LEVEL_HIGH_1440: High 1440 level (H-14) + * @GST_MPEG_VIDEO_LEVEL_HIGH: High level (HL) + * + * Mpeg-2 Levels. + **/ +typedef enum { + GST_MPEG_VIDEO_LEVEL_HIGH = 0x04, + GST_MPEG_VIDEO_LEVEL_HIGH_1440 = 0x06, + GST_MPEG_VIDEO_LEVEL_MAIN = 0x08, + GST_MPEG_VIDEO_LEVEL_LOW = 0x0a +} GstMpegVideoLevel; + +/** + * GstMpegVideoProfile: + * @GST_MPEG_VIDEO_PROFILE_422: 4:2:2 profile (422) + * @GST_MPEG_VIDEO_PROFILE_HIGH: High profile (HP) + * @GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE: Spatially Scalable profile (Spatial) + * @GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE: SNR Scalable profile (SNR) + * @GST_MPEG_VIDEO_PROFILE_MAIN: Main profile (MP) + * @GST_MPEG_VIDEO_PROFILE_SIMPLE: Simple profile (SP) + * + * Mpeg-2 Profiles. + **/ +typedef enum { + GST_MPEG_VIDEO_PROFILE_422 = 0x00, + GST_MPEG_VIDEO_PROFILE_HIGH = 0x01, + GST_MPEG_VIDEO_PROFILE_SPATIALLY_SCALABLE = 0x02, + GST_MPEG_VIDEO_PROFILE_SNR_SCALABLE = 0x03, + GST_MPEG_VIDEO_PROFILE_MAIN = 0x04, + GST_MPEG_VIDEO_PROFILE_SIMPLE = 0x05 +} GstMpegVideoProfile; + +/** + * GstMpegVideoChromaFormat: + * @GST_MPEG_VIDEO_CHROMA_RES: Invalid (reserved for future use) + * @GST_MPEG_VIDEO_CHROMA_420: 4:2:0 subsampling + * @GST_MPEG_VIDEO_CHROMA_422: 4:2:2 subsampling + * @GST_MPEG_VIDEO_CHROMA_444: 4:4:4 (non-subsampled) + * + * Chroma subsampling type. + */ +typedef enum { + GST_MPEG_VIDEO_CHROMA_RES = 0x00, + GST_MPEG_VIDEO_CHROMA_420 = 0x01, + GST_MPEG_VIDEO_CHROMA_422 = 0x02, + GST_MPEG_VIDEO_CHROMA_444 = 0x03, +} GstMpegVideoChromaFormat; + +/** + * GstMpegVideoPictureType: + * @GST_MPEG_VIDEO_PICTURE_TYPE_I: Intra-coded (I) frame + * @GST_MPEG_VIDEO_PICTURE_TYPE_P: Predictive-codec (P) frame + * @GST_MPEG_VIDEO_PICTURE_TYPE_B: Bidirectionally predictive-coded (B) frame + * @GST_MPEG_VIDEO_PICTURE_TYPE_D: D frame + * + * Picture type. + */ +typedef enum { + GST_MPEG_VIDEO_PICTURE_TYPE_I = 0x01, + GST_MPEG_VIDEO_PICTURE_TYPE_P = 0x02, + GST_MPEG_VIDEO_PICTURE_TYPE_B = 0x03, + GST_MPEG_VIDEO_PICTURE_TYPE_D = 0x04 +} GstMpegVideoPictureType; + +/** + * GstMpegVideoPictureStructure: + * @GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD: Top field + * @GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD: Bottom field + * @GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME: Frame picture + * + * Picture structure type. + */ +typedef enum { + GST_MPEG_VIDEO_PICTURE_STRUCTURE_TOP_FIELD = 0x01, + GST_MPEG_VIDEO_PICTURE_STRUCTURE_BOTTOM_FIELD = 0x02, + GST_MPEG_VIDEO_PICTURE_STRUCTURE_FRAME = 0x03 +} GstMpegVideoPictureStructure; + +typedef struct _GstMpegVideoSequenceHdr GstMpegVideoSequenceHdr; +typedef struct _GstMpegVideoSequenceExt GstMpegVideoSequenceExt; +typedef struct _GstMpegVideoPictureHdr GstMpegVideoPictureHdr; +typedef struct _GstMpegVideoGop GstMpegVideoGop; +typedef struct _GstMpegVideoPictureExt GstMpegVideoPictureExt; +typedef struct _GstMpegVideoQuantMatrixExt GstMpegVideoQuantMatrixExt; +typedef struct _GstMpegVideoTypeOffsetSize GstMpegVideoTypeOffsetSize; + +/** + * GstMpegVideoSequenceHdr: + * @width: Width of each frame + * @height: Height of each frame + * @par_w: Calculated Pixel Aspect Ratio width + * @par_h: Calculated Pixel Aspect Ratio height + * @fps_n: Calculated Framrate nominator + * @fps_d: Calculated Framerate denominator + * @bitrate_value: Value of the bitrate as is in the stream (400bps unit) + * @bitrate: the real bitrate of the Mpeg video stream in bits per second, 0 if VBR stream + * @constrained_parameters_flag: %TRUE if this stream uses contrained parameters. + * @intra_quantizer_matrix: intra-quantization table + * @non_intra_quantizer_matrix: non-intra quantization table + * + * The Mpeg2 Video Sequence Header structure. + */ +struct _GstMpegVideoSequenceHdr +{ + guint16 width, height; + guint8 aspect_ratio_info; + guint8 frame_rate_code; + guint32 bitrate_value; + guint16 vbv_buffer_size_value; + + guint8 constrained_parameters_flag; + + guint8 intra_quantizer_matrix[64]; + guint8 non_intra_quantizer_matrix[64]; + + /* Calculated values */ + guint par_w, par_h; + guint fps_n, fps_d; + guint bitrate; +}; + +/** + * GstMpegVideoSequenceExt: + * @profile: mpeg2 decoder profil + * @level: mpeg2 decoder level + * @progressive: %TRUE if the frames are progressive %FALSE otherwize + * @chroma_format: indicates the chrominance format + * @horiz_size_ext: Horizontal size + * @vert_size_ext: Vertical size + * @bitrate_ext: The bitrate + * @vbv_buffer_size_extension: Vbv vuffer size + * @low_delay: %TRUE if the sequence doesn't contain any B-pictures, %FALSE + * otherwize + * @fps_n_ext: Framerate nominator code + * @fps_d_ext: Framerate denominator code + * + * The Mpeg2 Video Sequence Extension structure. + **/ +struct _GstMpegVideoSequenceExt +{ + /* mpeg2 decoder profile */ + guint8 profile; + /* mpeg2 decoder level */ + guint8 level; + + guint8 progressive; + guint8 chroma_format; + + guint8 horiz_size_ext, vert_size_ext; + + guint16 bitrate_ext; + guint8 vbv_buffer_size_extension; + guint8 low_delay; + guint8 fps_n_ext, fps_d_ext; + +}; + +/** + * GstMpegVideoQuantMatrixExt: + * @load_intra_quantiser_matrix: + * @intra_quantiser_matrix: + * @load_non_intra_quantiser_matrix: + * @non_intra_quantiser_matrix: + * @load_chroma_intra_quantiser_matrix: + * @chroma_intra_quantiser_matrix: + * @load_chroma_non_intra_quantiser_matrix: + * @chroma_non_intra_quantiser_matrix: + * + * The Quant Matrix Extension structure + */ +struct _GstMpegVideoQuantMatrixExt +{ + guint8 load_intra_quantiser_matrix; + guint8 intra_quantiser_matrix[64]; + guint8 load_non_intra_quantiser_matrix; + guint8 non_intra_quantiser_matrix[64]; + guint8 load_chroma_intra_quantiser_matrix; + guint8 chroma_intra_quantiser_matrix[64]; + guint8 load_chroma_non_intra_quantiser_matrix; + guint8 chroma_non_intra_quantiser_matrix[64]; +}; + +/** + * GstMpegVideoPictureHdr: + * @tsn: Temporal Sequence Number + * @pic_type: Type of the frame + * @full_pel_forward_vector: the full pel forward flag of + * the frame: 0 or 1. + * @full_pel_backward_vector: the full pel backward flag + * of the frame: 0 or 1. + * @f_code: F code + * + * The Mpeg2 Video Picture Header structure. + */ +struct _GstMpegVideoPictureHdr +{ + guint16 tsn; + guint8 pic_type; + + guint8 full_pel_forward_vector, full_pel_backward_vector; + + guint8 f_code[2][2]; +}; + +/** + * GstMpegVideoPictureExt: + * @intra_dc_precision: Intra DC precision + * @picture_structure: Structure of the picture + * @top_field_first: Top field first + * @frame_pred_frame_dct: Frame + * @concealment_motion_vectors: Concealment Motion Vectors + * @q_scale_type: Q Scale Type + * @intra_vlc_format: Intra Vlc Format + * @alternate_scan: Alternate Scan + * @repeat_first_field: Repeat First Field + * @chroma_420_type: Chroma 420 Type + * @progressive_frame: %TRUE if the frame is progressive %FALSE otherwize + * + * The Mpeg2 Video Picture Extension structure. + */ +struct _GstMpegVideoPictureExt +{ + guint8 f_code[2][2]; + + guint8 intra_dc_precision; + guint8 picture_structure; + guint8 top_field_first; + guint8 frame_pred_frame_dct; + guint8 concealment_motion_vectors; + guint8 q_scale_type; + guint8 intra_vlc_format; + guint8 alternate_scan; + guint8 repeat_first_field; + guint8 chroma_420_type; + guint8 progressive_frame; + guint8 composite_display; + guint8 v_axis; + guint8 field_sequence; + guint8 sub_carrier; + guint8 burst_amplitude; + guint8 sub_carrier_phase; +}; + +/** + * GstMpegVideoGop: + * @drop_frame_flag: Drop Frame Flag + * @hour: Hour (0-23) + * @minute: Minute (O-59) + * @second: Second (0-59) + * @frame: Frame (0-59) + * @closed_gop: Closed Gop + * @broken_link: Broken link + * + * The Mpeg Video Group of Picture structure. + */ +struct _GstMpegVideoGop +{ + guint8 drop_frame_flag; + + guint8 hour, minute, second, frame; + + guint8 closed_gop; + guint8 broken_link; +}; + +/** + * GstMpegVideoTypeOffsetSize: + * @type: the type of the packet that start at @offset + * @offset: the offset of the packet start in bytes, it is the exact, start of the packet, no sync code included + * @size: The size in bytes of the packet or -1 if the end wasn't found. It is the exact size of the packet, no sync code included + * + * A structure that contains the type of a packet, its offset and its size + */ +struct _GstMpegVideoTypeOffsetSize +{ + guint8 type; + guint offset; + gint size; +}; + +GList *gst_mpeg_video_parse (const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_sequence_header (GstMpegVideoSequenceHdr * params, + const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_picture_header (GstMpegVideoPictureHdr* hdr, + const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_picture_extension (GstMpegVideoPictureExt *ext, + const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_gop (GstMpegVideoGop * gop, + const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_sequence_extension (GstMpegVideoSequenceExt * seqext, + const guint8 * data, gsize size, guint offset); + +gboolean gst_mpeg_video_parse_quant_matrix_extension (GstMpegVideoQuantMatrixExt * quant, + const guint8 * data, gsize size, guint offset); + +G_END_DECLS + +#endif diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c new file mode 100644 index 0000000..8f2937f --- /dev/null +++ b/gst-libs/gst/codecparsers/gstvc1parser.c @@ -0,0 +1,2132 @@ +/* Gstreamer + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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:gstvc1parser + * @short_description: Convenience library for parsing vc1 video + * bitstream. + * + * For more details about the structures, look at the + * smpte specifications (S421m-2006.pdf). + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstvc1parser.h" +#include "parserutils.h" +#include +#include +#include + +#ifndef GST_DISABLE_GST_DEBUG + +#define GST_CAT_DEFAULT ensure_debug_category() + +static GstDebugCategory * +ensure_debug_category (void) +{ + static gsize cat_gonce = 0; + + if (g_once_init_enter (&cat_gonce)) { + gsize cat_done; + + cat_done = (gsize) _gst_debug_category_new ("codecparsers_vc1", 0, + "VC1 codec parsing library"); + + g_once_init_leave (&cat_gonce, cat_done); + } + + return (GstDebugCategory *) cat_gonce; +} + +#else + +#define ensure_debug_category() /* NOOP */ + +#endif /* GST_DISABLE_GST_DEBUG */ + +static const guint8 vc1_pquant_table[3][32] = { + { /* Implicit quantizer */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 29, 31}, + { /* Explicit quantizer, pquantizer uniform */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}, + { /* Explicit quantizer, pquantizer non-uniform */ + 0, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31} +}; + +static const guint8 vc1_mvmode_table[2][5] = { + /* Table 47: P Picture High rate (PQUANT <= 12) MVMODE code table */ + { + GST_VC1_MVMODE_1MV, + GST_VC1_MVMODE_MIXED_MV, + GST_VC1_MVMODE_1MV_HPEL, + GST_VC1_MVMODE_INTENSITY_COMP, + GST_VC1_MVMODE_1MV_HPEL_BILINEAR}, + /* Table 46: P Picture Low rate (PQUANT > 12) MVMODE code table */ + { + GST_VC1_MVMODE_1MV_HPEL_BILINEAR, + GST_VC1_MVMODE_1MV, + GST_VC1_MVMODE_1MV_HPEL, + GST_VC1_MVMODE_INTENSITY_COMP, + GST_VC1_MVMODE_MIXED_MV} +}; + +static const guint8 vc1_mvmode2_table[2][4] = { + /* Table 50: P Picture High rate (PQUANT <= 12) MVMODE2 code table */ + { + GST_VC1_MVMODE_1MV, + GST_VC1_MVMODE_MIXED_MV, + GST_VC1_MVMODE_1MV_HPEL, + GST_VC1_MVMODE_1MV_HPEL_BILINEAR}, + /* Table 49: P Picture Low rate (PQUANT > 12) MVMODE2 code table */ + { + GST_VC1_MVMODE_1MV_HPEL_BILINEAR, + GST_VC1_MVMODE_1MV, + GST_VC1_MVMODE_1MV_HPEL, + GST_VC1_MVMODE_MIXED_MV} +}; + +/* Table 40: BFRACTION VLC Table */ +static const VLCTable vc1_bfraction_vlc_table[] = { + {GST_VC1_BFRACTION_BASIS / 2, 0x00, 3}, + {GST_VC1_BFRACTION_BASIS / 3, 0x01, 3}, + {(GST_VC1_BFRACTION_BASIS * 2) / 3, 0x02, 3}, + {GST_VC1_BFRACTION_BASIS / 4, 0x02, 3}, + {(GST_VC1_BFRACTION_BASIS * 3) / 4, 0x04, 3}, + {GST_VC1_BFRACTION_BASIS / 5, 0x05, 3}, + {(GST_VC1_BFRACTION_BASIS * 2) / 5, 0x06, 3}, + {(GST_VC1_BFRACTION_BASIS * 3) / 5, 0x70, 7}, + {(GST_VC1_BFRACTION_BASIS * 4) / 5, 0x71, 7}, + {GST_VC1_BFRACTION_BASIS / 6, 0x72, 7}, + {(GST_VC1_BFRACTION_BASIS * 5) / 6, 0x73, 7}, + {GST_VC1_BFRACTION_BASIS / 7, 0x74, 7}, + {(GST_VC1_BFRACTION_BASIS * 2) / 7, 0x75, 7}, + {(GST_VC1_BFRACTION_BASIS * 3) / 7, 0x76, 7}, + {(GST_VC1_BFRACTION_BASIS * 4) / 7, 0x77, 7}, + {(GST_VC1_BFRACTION_BASIS * 5) / 7, 0x78, 7}, + {(GST_VC1_BFRACTION_BASIS * 6) / 7, 0x79, 7}, + {GST_VC1_BFRACTION_BASIS / 8, 0x7a, 7}, + {(GST_VC1_BFRACTION_BASIS * 3) / 8, 0x7b, 7}, + {(GST_VC1_BFRACTION_BASIS * 5) / 8, 0x7c, 7}, + {(GST_VC1_BFRACTION_BASIS * 7) / 8, 0x7d, 7}, + {GST_VC1_BFRACTION_RESERVED, 0x7e, 7}, + {GST_VC1_BFRACTION_PTYPE_BI, 0x7f, 7} +}; + +/* Imode types */ +enum +{ + IMODE_RAW, + IMODE_NORM2, + IMODE_DIFF2, + IMODE_NORM6, + IMODE_DIFF6, + IMODE_ROWSKIP, + IMODE_COLSKIP +}; + +/* Table 69: IMODE VLC Codetable */ +static const VLCTable vc1_imode_vlc_table[] = { + {IMODE_NORM2, 0x02, 2}, + {IMODE_NORM6, 0x03, 2}, + {IMODE_ROWSKIP, 0x02, 3}, + {IMODE_COLSKIP, 0x03, 3}, + {IMODE_DIFF2, 0x01, 3}, + {IMODE_DIFF6, 0x01, 4}, + {IMODE_RAW, 0x00, 4} +}; + +/* Table 80: Norm-2/Diff-2 Code Table */ +static const VLCTable vc1_norm2_vlc_table[4] = { + {0, 0, 1}, + {2, 4, 3}, + {1, 5, 3}, + {3, 3, 2} +}; + +/* Table 81: Code table for 3x2 and 2x3 tiles */ +static const VLCTable vc1_norm6_vlc_table[64] = { + {0, 1, 1}, + {1, 2, 4}, + {2, 3, 4}, + {3, 0, 8}, + {4, 4, 4}, + {5, 1, 8}, + {6, 2, 8}, + {7, (2 << 5) | 7, 10}, + {8, 5, 4}, + {9, 3, 8}, + {10, 4, 8}, + {11, (2 << 5) | 11, 10}, + {12, 5, 8}, + {13, (2 << 5) | 13, 10}, + {14, (2 << 5) | 14, 10}, + {15, (3 << 8) | 14, 13}, + {16, 6, 4}, + {17, 6, 8}, + {18, 7, 8}, + {19, (2 << 5) | 19, 10}, + {20, 8, 8}, + {21, (2 << 5) | 21, 10}, + {22, (2 << 5) | 22, 10}, + {23, (3 << 8) | 13, 13}, + {24, 9, 8}, + {25, (2 << 5) | 25, 10}, + {26, (2 << 5) | 26, 10}, + {27, (3 << 8) | 12, 13}, + {28, (2 << 5) | 28, 10}, + {29, (3 << 8) | 11, 13}, + {30, (3 << 8) | 10, 13}, + {31, (3 << 4) | 7, 9}, + {32, 7, 4}, + {33, 10, 8}, + {34, 11, 8}, + {35, (2 << 5) | 3, 10}, + {36, 12, 8}, + {37, (2 << 5) | 5, 10}, + {38, (2 << 5) | 6, 10}, + {39, (3 << 8) | 9, 13}, + {40, 13, 8}, + {41, (2 << 5) | 9, 10}, + {42, (2 << 5) | 10, 10}, + {43, (3 << 8) | 8, 13}, + {44, (2 << 5) | 12, 10}, + {45, (3 << 8) | 7, 13}, + {46, (3 << 8) | 6, 13}, + {47, (3 << 4) | 6, 9}, + {48, 14, 8}, + {49, (2 << 5) | 17, 10}, + {50, (2 << 5) | 18, 10}, + {51, (3 << 8) | 5, 13}, + {52, (2 << 5) | 20, 10}, + {53, (3 << 8) | 4, 13}, + {54, (3 << 8) | 3, 13}, + {55, (3 << 4) | 5, 9}, + {56, (2 << 5) | 24, 10}, + {57, (3 << 8) | 2, 13}, + {58, (3 << 8) | 1, 13}, + {59, (3 << 4) | 4, 9}, + {60, (3 << 8) | 0, 13}, + {61, (3 << 4) | 3, 9}, + {62, (3 << 4) | 2, 9}, + {63, (3 << 1) | 1, 6} +}; + +/* SMPTE 421M Table 7 */ +typedef struct +{ + gint par_n, par_d; +} PAR; + +static PAR aspect_ratios[] = { + {0, 0}, + {1, 1}, + {12, 11}, + {10, 11}, + {16, 11}, + {40, 33}, + {24, 11}, + {20, 11}, + {32, 11}, + {80, 33}, + {18, 11}, + {15, 11}, + {64, 33}, + {160, 99}, + {0, 0}, + {0, 0} +}; + +/* SMPTE 421M Table 8 */ +static const guint framerates_n[] = { + 0, + 24 * 1000, + 25 * 1000, + 30 * 1000, + 50 * 1000, + 60 * 1000, + 48 * 1000, + 72 * 1000 +}; + +/* SMPTE 421M Table 9 */ +static const guint framerates_d[] = { + 0, + 1000, + 1001 +}; + + +static inline gboolean +decode_colskip (GstBitReader * br, guint8 * data, guint width, guint height, + guint stride, guint invert) +{ + guint x, y; + guint8 colskip, v; + + GST_DEBUG ("Parsing colskip"); + + invert &= 1; + for (x = 0; x < width; x++) { + READ_UINT8 (br, colskip, 1); + + if (data) { + if (colskip) { + for (y = 0; y < height; y++) { + READ_UINT8 (br, v, 1); + data[y * stride] = v ^ invert; + } + } else { + for (y = 0; y < height; y++) + data[y * stride] = invert; + } + data++; + } else if (colskip) + SKIP (br, height); + } + + return TRUE; + +failed: + GST_WARNING ("Failed to parse colskip"); + + return FALSE; +} + +static inline gboolean +decode_rowskip (GstBitReader * br, guint8 * data, guint width, guint height, + guint stride, guint invert) +{ + guint x, y; + guint8 rowskip, v; + + GST_DEBUG ("Parsing rowskip"); + + invert &= 1; + for (y = 0; y < height; y++) { + READ_UINT8 (br, rowskip, 1); + + if (data) { + if (!rowskip) + memset (data, invert, width); + else { + for (x = 0; x < width; x++) { + READ_UINT8 (br, v, 1); + data[x] = v ^ invert; + } + } + data += stride; + } else if (rowskip) + SKIP (br, width); + } + + return TRUE; + +failed: + GST_WARNING ("Failed to parse rowskip"); + + return FALSE; +} + +static inline gint8 +decode012 (GstBitReader * br) +{ + guint8 n; + + READ_UINT8 (br, n, 1); + + if (n == 0) + return 0; + + READ_UINT8 (br, n, 1); + + return n + 1; + +failed: + GST_WARNING ("Could not decode 0 1 2 returning -1"); + + return -1; +} + +static inline guint +calculate_nb_pan_scan_win (GstVC1AdvancedSeqHdr * advseqhdr, + GstVC1PicAdvanced * pic) +{ + if (advseqhdr->interlace && !advseqhdr->psf) { + if (advseqhdr->pulldown) + return pic->rff + 2; + + return 2; + + } else { + if (advseqhdr->pulldown) + return pic->rptfrm + 1; + + return 1; + } +} + +static gboolean +decode_refdist (GstBitReader * br, guint16 * value) +{ + guint16 tmp; + gint i = 2; + + if (!gst_bit_reader_peek_bits_uint16 (br, &tmp, i)) + goto failed; + + if (tmp < 0x03) { + READ_UINT16 (br, *value, i); + + return TRUE; + } + + do { + i++; + + if (!gst_bit_reader_peek_bits_uint16 (br, &tmp, i)) + goto failed; + + if (!(tmp >> i)) { + READ_UINT16 (br, *value, i); + + return TRUE; + } + } while (i < 16); + + +failed: + { + GST_WARNING ("Could not decode end 0 returning"); + + return FALSE; + } +} + +/*** bitplanes decoding ***/ +static gboolean +bitplane_decoding (GstBitReader * br, guint8 * data, + GstVC1SeqHdr * seqhdr, guint8 * is_raw) +{ + const guint width = seqhdr->mb_width; + const guint height = seqhdr->mb_height; + const guint stride = seqhdr->mb_stride; + guint imode, invert, invert_mask; + guint x, y, v; + guint8 *pdata = data; + + *is_raw = FALSE; + + GET_BITS (br, 1, &invert); + invert_mask = -invert; + + if (!decode_vlc (br, &imode, vc1_imode_vlc_table, + G_N_ELEMENTS (vc1_imode_vlc_table))) + goto failed; + + switch (imode) { + case IMODE_RAW: + + GST_DEBUG ("Parsing IMODE_RAW"); + + *is_raw = TRUE; + return TRUE; + + case IMODE_DIFF2: + invert_mask = 0; + /* fall-through */ + case IMODE_NORM2: + invert_mask &= 3; + + GST_DEBUG ("Parsing IMODE_DIFF2 or IMODE_NORM2 biplane"); + + x = 0; + if ((height * width) & 1) { + GET_BITS (br, 1, &v); + if (pdata) { + *pdata++ = (v ^ invert_mask) & 1; + if (++x == width) { + x = 0; + pdata += stride - width; + } + } + } + + for (y = 0; y < height * width; y += 2) { + if (!decode_vlc (br, &v, vc1_norm2_vlc_table, + G_N_ELEMENTS (vc1_norm2_vlc_table))) + goto failed; + if (pdata) { + v ^= invert_mask; + *pdata++ = v >> 1; + if (++x == width) { + x = 0; + pdata += stride - width; + } + *pdata++ = v & 1; + if (++x == width) { + x = 0; + pdata += stride - width; + } + } + } + break; + + case IMODE_DIFF6: + invert_mask = 0; + /* fall-through */ + case IMODE_NORM6: + + GST_DEBUG ("Parsing IMODE_DIFF6 or IMODE_NORM6 biplane"); + + if (!(height % 3) && (width % 3)) { /* decode 2x3 "vertical" tiles */ + for (y = 0; y < height; y += 3) { + for (x = width & 1; x < width; x += 2) { + if (!decode_vlc (br, &v, vc1_norm6_vlc_table, + G_N_ELEMENTS (vc1_norm6_vlc_table))) + goto failed; + + if (pdata) { + v ^= invert_mask; + pdata[x + 0] = v & 1; + pdata[x + 1] = (v >> 1) & 1; + pdata[x + 0 + stride] = (v >> 2) & 1; + pdata[x + 1 + stride] = (v >> 3) & 1; + pdata[x + 0 + stride * 2] = (v >> 4) & 1; + pdata[x + 1 + stride * 2] = (v >> 5) & 1; + } + } + if (pdata) + pdata += 3 * stride; + } + + x = width & 1; + y = 0; + } else { /* decode 3x2 "horizontal" tiles */ + + if (pdata) + pdata += (height & 1) * width; + for (y = height & 1; y < height; y += 2) { + for (x = width % 3; x < width; x += 3) { + if (!decode_vlc (br, &v, vc1_norm6_vlc_table, + G_N_ELEMENTS (vc1_norm6_vlc_table))) + goto failed; + + if (pdata) { + v ^= invert_mask; + pdata[x + 0] = v & 1; + pdata[x + 1] = (v >> 1) & 1; + pdata[x + 2] = (v >> 2) & 1; + pdata[x + 0 + stride] = (v >> 3) & 1; + pdata[x + 1 + stride] = (v >> 4) & 1; + pdata[x + 2 + stride] = (v >> 5) & 1; + } + } + if (pdata) + pdata += 2 * stride; + } + + x = width % 3; + y = height & 1; + } + + if (x) { + if (data) + pdata = data + y * stride; + if (!decode_colskip (br, pdata, x, height, stride, invert_mask)) + goto failed; + } + + if (y) { + if (data) + pdata = data + x; + if (!decode_rowskip (br, pdata, width, y, stride, invert_mask)) + goto failed; + } + break; + case IMODE_ROWSKIP: + + GST_DEBUG ("Parsing IMODE_ROWSKIP biplane"); + + if (!decode_rowskip (br, data, width, height, stride, invert_mask)) + goto failed; + break; + case IMODE_COLSKIP: + + GST_DEBUG ("Parsing IMODE_COLSKIP biplane"); + + if (!decode_colskip (br, data, width, height, stride, invert_mask)) + goto failed; + break; + } + + if (!data) + return TRUE; + + /* Applying diff operator */ + if (imode == IMODE_DIFF2 || imode == IMODE_DIFF6) { + pdata = data; + pdata[0] ^= invert; + + for (x = 1; x < width; x++) + pdata[x] ^= pdata[x - 1]; + + for (y = 1; y < height; y++) { + pdata[stride] ^= pdata[0]; + + for (x = 1; x < width; x++) { + if (pdata[stride + x - 1] != pdata[x]) + pdata[stride + x] ^= invert; + else + pdata[stride + x] ^= pdata[stride + x - 1]; + } + pdata += stride; + } + } + + return TRUE; + +failed: + GST_WARNING ("Failed to decode bitplane"); + + return FALSE; +} + +static gboolean +parse_vopdquant (GstBitReader * br, GstVC1FrameHdr * framehdr, guint8 dquant) +{ + GstVC1VopDquant *vopdquant = &framehdr->vopdquant; + + GST_DEBUG ("Parsing vopdquant"); + + vopdquant->dqbilevel = 0; + + if (dquant == 2) { + READ_UINT8 (br, vopdquant->dquantfrm, 1); + + READ_UINT8 (br, vopdquant->pqdiff, 3); + + if (vopdquant->pqdiff != 7) + vopdquant->altpquant = framehdr->pquant + vopdquant->pqdiff + 1; + else { + READ_UINT8 (br, vopdquant->abspq, 5); + vopdquant->altpquant = vopdquant->abspq; + } + } else { + READ_UINT8 (br, vopdquant->dquantfrm, 1); + GST_DEBUG (" %u DquantFrm %u", gst_bit_reader_get_pos (br), + vopdquant->dquantfrm); + + if (vopdquant->dquantfrm) { + READ_UINT8 (br, vopdquant->dqprofile, 1); + + switch (vopdquant->dqprofile) { + case GST_VC1_DQPROFILE_SINGLE_EDGE: + case GST_VC1_DQPROFILE_DOUBLE_EDGES: + READ_UINT8 (br, vopdquant->dqsbedge, 2); + break; + + case GST_VC1_DQPROFILE_ALL_MBS: + READ_UINT8 (br, vopdquant->dqbilevel, 1); + break; + } + + if (vopdquant->dqbilevel + || vopdquant->dqprofile != GST_VC1_DQPROFILE_ALL_MBS) { + { + READ_UINT8 (br, vopdquant->pqdiff, 3); + + if (vopdquant->pqdiff == 7) + READ_UINT8 (br, vopdquant->abspq, 5); + } + } + } + } + + return TRUE; + +failed: + GST_WARNING ("Failed to parse vopdquant"); + + return FALSE; +} + +static inline gint +scan_for_start_codes (const guint8 * data, guint size) +{ + GstByteReader br; + gst_byte_reader_init (&br, data, size); + + /* NALU not empty, so we can at least expect 1 (even 2) bytes following sc */ + return gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, + 0, size); +} + +static inline gint +get_unary (GstBitReader * br, gint stop, gint len) +{ + int i; + guint8 current = 0xff; + + for (i = 0; i < len; i++) { + gst_bit_reader_get_bits_uint8 (br, ¤t, 1); + if (current == stop) + return i; + } + + return i; +} + +static inline void +calculate_framerate_bitrate (guint8 frmrtq_postproc, guint8 bitrtq_postproc, + guint * framerate, guint * bitrate) +{ + if (frmrtq_postproc == 0 && bitrtq_postproc == 31) { + *framerate = 0; + *bitrate = 0; + } else if (frmrtq_postproc == 0 && bitrtq_postproc == 30) { + *framerate = 2; + *bitrate = 1952; + } else if (frmrtq_postproc == 1 && bitrtq_postproc == 31) { + *framerate = 6; + *bitrate = 2016; + } else { + if (frmrtq_postproc == 7) { + *framerate = 30; + } else { + *framerate = 2 + (frmrtq_postproc * 4); + } + if (bitrtq_postproc == 31) { + *bitrate = 2016; + } else { + *bitrate = 32 + (bitrtq_postproc * 64); + } + } +} + +static inline void +calculate_mb_size (GstVC1SeqHdr * seqhdr, guint width, guint height) +{ + seqhdr->mb_width = (width + 15) >> 4; + seqhdr->mb_height = (height + 15) >> 4; + seqhdr->mb_stride = seqhdr->mb_width + 1; +} + +static GstVC1ParserResult +parse_hrd_param_flag (GstBitReader * br, GstVC1HrdParam * hrd_param) +{ + guint i; + + GST_DEBUG ("Parsing Hrd param flag"); + + + if (gst_bit_reader_get_remaining (br) < 13) + goto failed; + + hrd_param->hrd_num_leaky_buckets = + gst_bit_reader_get_bits_uint8_unchecked (br, 5); + hrd_param->bit_rate_exponent = + gst_bit_reader_get_bits_uint8_unchecked (br, 4); + hrd_param->buffer_size_exponent = + gst_bit_reader_get_bits_uint8_unchecked (br, 4); + + if (gst_bit_reader_get_remaining (br) < + (32 * hrd_param->hrd_num_leaky_buckets)) + goto failed; + + for (i = 0; i < hrd_param->hrd_num_leaky_buckets; i++) { + hrd_param->hrd_rate[i] = gst_bit_reader_get_bits_uint16_unchecked (br, 16); + hrd_param->hrd_buffer[i] = + gst_bit_reader_get_bits_uint16_unchecked (br, 16); + } + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse hrd param flag"); + + return GST_VC1_PARSER_ERROR; +} + +static GstVC1ParserResult +parse_sequence_header_advanced (GstVC1SeqHdr * seqhdr, GstBitReader * br) +{ + GstVC1AdvancedSeqHdr *advanced = &seqhdr->advanced; + guint8 tmp; + + GST_DEBUG ("Parsing sequence header in advanced mode"); + + READ_UINT8 (br, tmp, 3); + advanced->level = tmp; + advanced->par_n = 0; + advanced->par_d = 0; + advanced->fps_n = 0; + advanced->fps_d = 0; + + READ_UINT8 (br, advanced->colordiff_format, 2); + READ_UINT8 (br, advanced->frmrtq_postproc, 3); + READ_UINT8 (br, advanced->bitrtq_postproc, 5); + + calculate_framerate_bitrate (advanced->frmrtq_postproc, + advanced->bitrtq_postproc, &advanced->framerate, &advanced->bitrate); + + GST_DEBUG ("level %u, colordiff_format %u , frmrtq_postproc %u," + " bitrtq_postproc %u", advanced->level, advanced->colordiff_format, + advanced->frmrtq_postproc, advanced->bitrtq_postproc); + + if (gst_bit_reader_get_remaining (br) < 32) + goto failed; + + advanced->postprocflag = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + advanced->max_coded_width = gst_bit_reader_get_bits_uint16_unchecked (br, 12); + advanced->max_coded_height = + gst_bit_reader_get_bits_uint16_unchecked (br, 12); + advanced->max_coded_width = (advanced->max_coded_width + 1) << 1; + advanced->max_coded_height = (advanced->max_coded_height + 1) << 1; + calculate_mb_size (seqhdr, advanced->max_coded_width, + advanced->max_coded_height); + advanced->pulldown = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + advanced->interlace = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + advanced->tfcntrflag = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + advanced->finterpflag = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + GST_DEBUG ("postprocflag %u, max_coded_width %u, max_coded_height %u," + "pulldown %u, interlace %u, tfcntrflag %u, finterpflag %u", + advanced->postprocflag, advanced->max_coded_width, + advanced->max_coded_height, advanced->pulldown, + advanced->interlace, advanced->tfcntrflag, advanced->finterpflag); + + /* Skipping reserved bit */ + gst_bit_reader_skip_unchecked (br, 1); + + advanced->psf = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + advanced->display_ext = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + if (advanced->display_ext) { + READ_UINT16 (br, advanced->disp_horiz_size, 14); + READ_UINT16 (br, advanced->disp_vert_size, 14); + + advanced->disp_horiz_size++; + advanced->disp_vert_size++; + + READ_UINT8 (br, advanced->aspect_ratio_flag, 1); + + if (advanced->aspect_ratio_flag) { + READ_UINT8 (br, advanced->aspect_ratio, 4); + + if (advanced->aspect_ratio == 15) { + READ_UINT8 (br, advanced->aspect_horiz_size, 8); + READ_UINT8 (br, advanced->aspect_vert_size, 8); + advanced->par_n = advanced->aspect_horiz_size; + advanced->par_d = advanced->aspect_vert_size; + } else { + advanced->par_n = aspect_ratios[advanced->aspect_ratio].par_n; + advanced->par_d = aspect_ratios[advanced->aspect_ratio].par_d; + } + } + READ_UINT8 (br, advanced->framerate_flag, 1); + if (advanced->framerate_flag) { + READ_UINT8 (br, advanced->framerateind, 1); + + if (!advanced->framerateind) { + READ_UINT8 (br, advanced->frameratenr, 8); + READ_UINT8 (br, advanced->frameratedr, 4); + } else { + READ_UINT16 (br, advanced->framerateexp, 16); + } + if (advanced->frameratenr > 0 && + advanced->frameratenr < 8 && + advanced->frameratedr > 0 && advanced->frameratedr < 3) { + advanced->fps_n = framerates_n[advanced->frameratenr]; + advanced->fps_d = framerates_d[advanced->frameratedr]; + } else { + advanced->fps_n = advanced->framerateexp + 1; + advanced->fps_d = 32; + } + } + READ_UINT8 (br, advanced->color_format_flag, 1); + + if (advanced->color_format_flag) { + if (gst_bit_reader_get_remaining (br) < 24) + goto failed; + + advanced->color_prim = gst_bit_reader_get_bits_uint8_unchecked (br, 8); + advanced->transfer_char = gst_bit_reader_get_bits_uint8_unchecked (br, 8); + advanced->matrix_coef = gst_bit_reader_get_bits_uint8_unchecked (br, 8); + } + } + READ_UINT8 (br, advanced->hrd_param_flag, 1); + if (advanced->hrd_param_flag) + return parse_hrd_param_flag (br, &advanced->hrd_param); + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse advanced headers"); + + return GST_VC1_PARSER_ERROR; +} + +static GstVC1ParserResult +parse_frame_header_advanced (GstBitReader * br, GstVC1FrameHdr * framehdr, + GstVC1SeqHdr * seqhdr, GstVC1BitPlanes * bitplanes, gboolean field2) +{ + GstVC1AdvancedSeqHdr *advhdr = &seqhdr->advanced; + GstVC1PicAdvanced *pic = &framehdr->pic.advanced; + GstVC1EntryPointHdr *entrypthdr = &advhdr->entrypoint; + guint8 mvmodeidx; + + GST_DEBUG ("Parsing Frame header advanced %u", advhdr->interlace); + + /* Set the conveninence fields */ + framehdr->profile = seqhdr->profile; + framehdr->dquant = entrypthdr->dquant; + + if (advhdr->interlace) { + gint8 fcm = decode012 (br); + + if (fcm < 0) + goto failed; + + pic->fcm = (guint8) fcm; + } else + pic->fcm = GST_VC1_FRAME_PROGRESSIVE; + + if (pic->fcm == GST_VC1_FIELD_INTERLACE) { + READ_UINT8 (br, pic->fptype, 3); + if (field2) { + switch (pic->fptype) { + case 0x00: + case 0x02: + framehdr->ptype = GST_VC1_PICTURE_TYPE_I; + case 0x01: + case 0x03: + framehdr->ptype = GST_VC1_PICTURE_TYPE_P; + case 0x04: + case 0x06: + framehdr->ptype = GST_VC1_PICTURE_TYPE_B; + case 0x05: + case 0x07: + framehdr->ptype = GST_VC1_PICTURE_TYPE_BI; + } + } else { + switch (pic->fptype) { + case 0x00: + case 0x01: + framehdr->ptype = GST_VC1_PICTURE_TYPE_I; + case 0x02: + case 0x03: + framehdr->ptype = GST_VC1_PICTURE_TYPE_P; + case 0x04: + case 0x05: + framehdr->ptype = GST_VC1_PICTURE_TYPE_B; + case 0x06: + case 0x07: + framehdr->ptype = GST_VC1_PICTURE_TYPE_BI; + } + } + } else + framehdr->ptype = (guint8) get_unary (br, 0, 4); + + if (advhdr->tfcntrflag) { + READ_UINT8 (br, pic->tfcntr, 8); + GST_DEBUG ("tfcntr %u", pic->tfcntr); + } + + if (advhdr->pulldown) { + if (!advhdr->interlace || advhdr->psf) { + + READ_UINT8 (br, pic->rptfrm, 2); + GST_DEBUG ("rptfrm %u", pic->rptfrm); + + } else { + + READ_UINT8 (br, pic->tff, 1); + READ_UINT8 (br, pic->rff, 1); + GST_DEBUG ("tff %u, rff %u", pic->tff, pic->rff); + } + } + + if (entrypthdr->panscan_flag) { + READ_UINT8 (br, pic->ps_present, 1); + + if (pic->ps_present) { + guint i, nb_pan_scan_win = calculate_nb_pan_scan_win (advhdr, pic); + + if (gst_bit_reader_get_remaining (br) < 64 * nb_pan_scan_win) + goto failed; + + for (i = 0; i < nb_pan_scan_win; i++) { + pic->ps_hoffset = gst_bit_reader_get_bits_uint32_unchecked (br, 18); + pic->ps_voffset = gst_bit_reader_get_bits_uint32_unchecked (br, 18); + pic->ps_width = gst_bit_reader_get_bits_uint16_unchecked (br, 14); + pic->ps_height = gst_bit_reader_get_bits_uint16_unchecked (br, 14); + } + } + } + + if (framehdr->ptype == GST_VC1_PICTURE_TYPE_SKIPPED) + return GST_VC1_PARSER_OK; + + READ_UINT8 (br, pic->rndctrl, 1); + + if (advhdr->interlace) { + READ_UINT8 (br, pic->uvsamp, 1); + GST_DEBUG ("uvsamp %u", pic->uvsamp); + if (pic->fcm == GST_VC1_FIELD_INTERLACE && entrypthdr->refdist_flag && + pic->fptype < 4) + decode_refdist (br, &pic->refdist); + else + pic->refdist = 0; + } + + if (advhdr->finterpflag) { + READ_UINT8 (br, framehdr->interpfrm, 1); + GST_DEBUG ("interpfrm %u", framehdr->interpfrm); + } + + if ((pic->fcm != GST_VC1_FIELD_INTERLACE && + framehdr->ptype == GST_VC1_PICTURE_TYPE_B) || + (pic->fcm == GST_VC1_FIELD_INTERLACE && (pic->fptype > 4))) { + + guint bfraction; + + if (!decode_vlc (br, &bfraction, vc1_bfraction_vlc_table, + G_N_ELEMENTS (vc1_bfraction_vlc_table))) + goto failed; + + pic->bfraction = bfraction; + GST_DEBUG ("bfraction %u", pic->bfraction); + + if (pic->bfraction == GST_VC1_BFRACTION_PTYPE_BI) { + framehdr->ptype = GST_VC1_PICTURE_TYPE_BI; + } + + } + + READ_UINT8 (br, framehdr->pqindex, 5); + if (!framehdr->pqindex) + goto failed; + + /* compute pquant */ + if (entrypthdr->quantizer == GST_VC1_QUANTIZER_IMPLICITLY) + framehdr->pquant = vc1_pquant_table[0][framehdr->pqindex]; + else + framehdr->pquant = vc1_pquant_table[1][framehdr->pqindex]; + + framehdr->pquantizer = 1; + if (entrypthdr->quantizer == GST_VC1_QUANTIZER_IMPLICITLY) + framehdr->pquantizer = framehdr->pqindex < 9; + if (entrypthdr->quantizer == GST_VC1_QUANTIZER_NON_UNIFORM) + framehdr->pquantizer = 0; + + if (framehdr->pqindex <= 8) + READ_UINT8 (br, framehdr->halfqp, 1); + else + framehdr->halfqp = 0; + + if (entrypthdr->quantizer == GST_VC1_QUANTIZER_EXPLICITLY) { + READ_UINT8 (br, framehdr->pquantizer, 1); + } + + if (advhdr->postprocflag) + READ_UINT8 (br, pic->postproc, 2); + + GST_DEBUG ("Parsing %u picture, pqindex %u, pquant %u pquantizer %u" + "halfqp %u", framehdr->ptype, framehdr->pqindex, framehdr->pquant, + framehdr->pquantizer, framehdr->halfqp); + + switch (framehdr->ptype) { + case GST_VC1_PICTURE_TYPE_I: + case GST_VC1_PICTURE_TYPE_BI: + if (pic->fcm == GST_VC1_FRAME_INTERLACE) { + if (!bitplane_decoding (br, bitplanes ? bitplanes->fieldtx : NULL, + seqhdr, &pic->fieldtx)) + goto failed; + } + + if (!bitplane_decoding (br, bitplanes ? bitplanes->acpred : NULL, + seqhdr, &pic->acpred)) + goto failed; + + if (entrypthdr->overlap && framehdr->pquant <= 8) { + pic->condover = decode012 (br); + + if (pic->condover == (guint8) - 1) + goto failed; + + else if (pic->condover == GST_VC1_CONDOVER_SELECT) { + if (!bitplane_decoding (br, bitplanes ? bitplanes->overflags : NULL, + seqhdr, &pic->overflags)) + goto failed; + + GST_DEBUG ("overflags %u", pic->overflags); + } + } + + framehdr->transacfrm = get_unary (br, 0, 2); + pic->transacfrm2 = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + if (framehdr->dquant) + parse_vopdquant (br, framehdr, framehdr->dquant); + + GST_DEBUG + ("acpred %u, condover %u, transacfrm %u, transacfrm2 %u, transdctab %u", + pic->acpred, pic->condover, framehdr->transacfrm, pic->transacfrm2, + framehdr->transdctab); + break; + + case GST_VC1_PICTURE_TYPE_B: + if (entrypthdr->extended_mv) + pic->mvrange = get_unary (br, 0, 3); + else + pic->mvrange = 0; + + if (pic->fcm != GST_VC1_FRAME_PROGRESSIVE) { + if (entrypthdr->extended_dmv) + pic->dmvrange = get_unary (br, 0, 3); + } + + if (pic->fcm == GST_VC1_FRAME_INTERLACE) + READ_UINT8 (br, pic->intcomp, 1); + else + READ_UINT8 (br, pic->mvmode, 1); + + if (pic->fcm == GST_VC1_FIELD_INTERLACE) { + + if (!bitplane_decoding (br, bitplanes ? bitplanes->forwardmb : NULL, + seqhdr, &pic->forwardmb)) + goto failed; + + } else { + if (!bitplane_decoding (br, bitplanes ? bitplanes->directmb : NULL, + seqhdr, &pic->directmb)) + goto failed; + + if (!bitplane_decoding (br, bitplanes ? bitplanes->skipmb : NULL, + seqhdr, &pic->skipmb)) + goto failed; + } + + if (pic->fcm != GST_VC1_FRAME_PROGRESSIVE) { + if (gst_bit_reader_get_remaining (br) < 7) + goto failed; + + pic->mbmodetab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + pic->imvtab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + pic->icbptab = gst_bit_reader_get_bits_uint8_unchecked (br, 3); + + if (pic->fcm == GST_VC1_FRAME_INTERLACE) + READ_UINT8 (br, pic->mvbptab2, 2); + + if (pic->fcm == GST_VC1_FRAME_INTERLACE || + (pic->fcm == GST_VC1_FIELD_INTERLACE + && pic->mvmode == GST_VC1_MVMODE_MIXED_MV)) + READ_UINT8 (br, pic->mvbptab4, 2); + + } else { + READ_UINT8 (br, pic->mvtab, 2); + READ_UINT8 (br, pic->cbptab, 2); + } + + if (framehdr->dquant) { + parse_vopdquant (br, framehdr, framehdr->dquant); + } + + if (entrypthdr->vstransform) { + READ_UINT8 (br, pic->ttmbf, 1); + + if (pic->ttmbf) { + READ_UINT8 (br, pic->ttfrm, 2); + } + } + + framehdr->transacfrm = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + GST_DEBUG ("transacfrm %u transdctab %u mvmode %u mvtab %u," + "cbptab %u directmb %u skipmb %u", framehdr->transacfrm, + framehdr->transdctab, pic->mvmode, pic->mvtab, pic->cbptab, + pic->directmb, pic->skipmb); + + break; + case GST_VC1_PICTURE_TYPE_P: + if (pic->fcm == GST_VC1_FIELD_INTERLACE) { + READ_UINT8 (br, pic->numref, 1); + + if (pic->numref) + READ_UINT8 (br, pic->reffield, 1); + } + + if (entrypthdr->extended_mv) + pic->mvrange = get_unary (br, 0, 3); + else + pic->mvrange = 0; + + if (pic->fcm != GST_VC1_FRAME_PROGRESSIVE) { + if (entrypthdr->extended_dmv) + pic->dmvrange = get_unary (br, 0, 3); + } + + if (pic->fcm == GST_VC1_FRAME_INTERLACE) { + READ_UINT8 (br, pic->mvswitch4, 1); + READ_UINT8 (br, pic->intcomp, 1); + + if (pic->intcomp) { + READ_UINT8 (br, pic->lumscale, 6); + READ_UINT8 (br, pic->lumshift, 6); + } + } else { + + mvmodeidx = framehdr->pquant > 12; + pic->mvmode = vc1_mvmode_table[mvmodeidx][get_unary (br, 1, 4)]; + + if (pic->mvmode == GST_VC1_MVMODE_INTENSITY_COMP) { + pic->mvmode2 = vc1_mvmode2_table[mvmodeidx][get_unary (br, 1, 3)]; + + if (pic->fcm == GST_VC1_FIELD_INTERLACE) + pic->intcompfield = decode012 (br); + + READ_UINT8 (br, pic->lumscale, 6); + READ_UINT8 (br, pic->lumshift, 6); + GST_DEBUG ("lumscale %u lumshift %u", pic->lumscale, pic->lumshift); + + if (pic->fcm == GST_VC1_FIELD_INTERLACE && pic->intcompfield) { + READ_UINT8 (br, pic->lumscale2, 6); + READ_UINT8 (br, pic->lumshift2, 6); + } + } + + if (pic->fcm == GST_VC1_FRAME_PROGRESSIVE) { + if (pic->mvmode == GST_VC1_MVMODE_MIXED_MV || + (pic->mvmode == GST_VC1_MVMODE_INTENSITY_COMP && + pic->mvmode2 == GST_VC1_MVMODE_MIXED_MV)) { + + if (!bitplane_decoding (br, bitplanes ? bitplanes->mvtypemb : NULL, + seqhdr, &pic->mvtypemb)) + goto failed; + + GST_DEBUG ("mvtypemb %u", pic->mvtypemb); + } + } + } + + if (pic->fcm != GST_VC1_FIELD_INTERLACE) { + if (!bitplane_decoding (br, bitplanes ? bitplanes->skipmb : NULL, + seqhdr, &pic->skipmb)) + goto failed; + } + + if (pic->fcm != GST_VC1_FRAME_PROGRESSIVE) { + if (gst_bit_reader_get_remaining (br) < 7) + goto failed; + + pic->mbmodetab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + pic->imvtab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + pic->icbptab = gst_bit_reader_get_bits_uint8_unchecked (br, 3); + + if (pic->fcm != GST_VC1_FIELD_INTERLACE) { + READ_UINT8 (br, pic->mvbptab2, 2); + + if (pic->mvswitch4) + READ_UINT8 (br, pic->mvbptab4, 2); + + } else if (pic->mvmode == GST_VC1_MVMODE_MIXED_MV) + READ_UINT8 (br, pic->mvbptab4, 2); + + } else { + if (gst_bit_reader_get_remaining (br) < 4) + goto failed; + pic->mvtab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + pic->cbptab = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + } + + if (framehdr->dquant) { + parse_vopdquant (br, framehdr, framehdr->dquant); + } + + if (entrypthdr->vstransform) { + READ_UINT8 (br, pic->ttmbf, 1); + + if (pic->ttmbf) { + READ_UINT8 (br, pic->ttfrm, 2); + } + } + + framehdr->transacfrm = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + GST_DEBUG ("transacfrm %u transdctab %u mvmode %u mvtab %u," + "cbptab %u skipmb %u", framehdr->transacfrm, framehdr->transdctab, + pic->mvmode, pic->mvtab, pic->cbptab, pic->skipmb); + + break; + + default: + goto failed; + break; + } + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse frame header"); + + return GST_VC1_PARSER_ERROR; +} + +static GstVC1ParserResult +parse_frame_header (GstBitReader * br, GstVC1FrameHdr * framehdr, + GstVC1SeqHdr * seqhdr, GstVC1BitPlanes * bitplanes) +{ + guint8 mvmodeidx, tmp; + GstVC1PicSimpleMain *pic = &framehdr->pic.simple; + GstVC1SeqStructC *structc = &seqhdr->struct_c; + + GST_DEBUG ("Parsing frame header in simple or main mode"); + + /* Set the conveninence fields */ + framehdr->profile = seqhdr->profile; + framehdr->dquant = structc->dquant; + + framehdr->interpfrm = 0; + if (structc->finterpflag) + READ_UINT8 (br, framehdr->interpfrm, 1); + + READ_UINT8 (br, pic->frmcnt, 2); + + pic->rangeredfrm = 0; + if (structc->rangered) { + READ_UINT8 (br, pic->rangeredfrm, 1); + } + + /* Figuring out the picture type */ + READ_UINT8 (br, tmp, 1); + framehdr->ptype = tmp; + + if (structc->maxbframes) { + if (!framehdr->ptype) { + READ_UINT8 (br, tmp, 1); + + if (tmp) + framehdr->ptype = GST_VC1_PICTURE_TYPE_I; + else + framehdr->ptype = GST_VC1_PICTURE_TYPE_B; + + } else + framehdr->ptype = GST_VC1_PICTURE_TYPE_P; + + } else { + if (framehdr->ptype) + framehdr->ptype = GST_VC1_PICTURE_TYPE_P; + else + framehdr->ptype = GST_VC1_PICTURE_TYPE_I; + } + + + if (framehdr->ptype == GST_VC1_PICTURE_TYPE_B) { + guint bfraction; + if (!decode_vlc (br, &bfraction, vc1_bfraction_vlc_table, + G_N_ELEMENTS (vc1_bfraction_vlc_table))) + goto failed; + + pic->bfraction = bfraction; + GST_DEBUG ("bfraction %d", pic->bfraction); + + if (pic->bfraction == GST_VC1_BFRACTION_PTYPE_BI) { + framehdr->ptype = GST_VC1_PICTURE_TYPE_BI; + } + } + + if (framehdr->ptype == GST_VC1_PICTURE_TYPE_I || + framehdr->ptype == GST_VC1_PICTURE_TYPE_BI) + READ_UINT8 (br, pic->bf, 7); + + READ_UINT8 (br, framehdr->pqindex, 5); + if (!framehdr->pqindex) + return GST_VC1_PARSER_ERROR; + + GST_DEBUG ("pqindex %u", framehdr->pqindex); + + /* compute pquant */ + if (structc->quantizer == GST_VC1_QUANTIZER_IMPLICITLY) + framehdr->pquant = vc1_pquant_table[0][framehdr->pqindex]; + else + framehdr->pquant = vc1_pquant_table[1][framehdr->pqindex]; + + GST_DEBUG ("pquant %u", framehdr->pquant); + + if (framehdr->pqindex <= 8) + READ_UINT8 (br, framehdr->halfqp, 1); + else + framehdr->halfqp = 0; + + /* Set pquantizer */ + framehdr->pquantizer = 1; + if (structc->quantizer == GST_VC1_QUANTIZER_IMPLICITLY) + framehdr->pquantizer = framehdr->pqindex < 9; + else if (structc->quantizer == GST_VC1_QUANTIZER_NON_UNIFORM) + framehdr->pquantizer = 0; + + if (structc->quantizer == GST_VC1_QUANTIZER_EXPLICITLY) + READ_UINT8 (br, framehdr->pquantizer, 1); + + if (structc->extended_mv == 1) { + pic->mvrange = get_unary (br, 0, 3); + GST_DEBUG ("mvrange %u", pic->mvrange); + } + + if (structc->multires && (framehdr->ptype == GST_VC1_PICTURE_TYPE_P || + framehdr->ptype == GST_VC1_PICTURE_TYPE_I)) { + READ_UINT8 (br, pic->respic, 2); + GST_DEBUG ("Respic %u", pic->respic); + } + + GST_DEBUG ("Parsing %u Frame, pquantizer %u, halfqp %u, rangeredfrm %u, " + "interpfrm %u", framehdr->ptype, framehdr->pquantizer, framehdr->halfqp, + pic->rangeredfrm, framehdr->interpfrm); + + switch (framehdr->ptype) { + case GST_VC1_PICTURE_TYPE_I: + case GST_VC1_PICTURE_TYPE_BI: + framehdr->transacfrm = get_unary (br, 0, 2); + pic->transacfrm2 = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + GST_DEBUG ("transacfrm %u, transacfrm2 %u, transdctab %u", + framehdr->transacfrm, pic->transacfrm2, framehdr->transdctab); + break; + + case GST_VC1_PICTURE_TYPE_P: + mvmodeidx = framehdr->pquant > 12; + pic->mvmode = vc1_mvmode_table[mvmodeidx][get_unary (br, 1, 4)]; + + if (pic->mvmode == GST_VC1_MVMODE_INTENSITY_COMP) { + pic->mvmode2 = vc1_mvmode2_table[mvmodeidx][get_unary (br, 1, 3)]; + READ_UINT8 (br, pic->lumscale, 6); + READ_UINT8 (br, pic->lumshift, 6); + GST_DEBUG ("lumscale %u lumshift %u", pic->lumscale, pic->lumshift); + } + + if (pic->mvmode == GST_VC1_MVMODE_MIXED_MV || + (pic->mvmode == GST_VC1_MVMODE_INTENSITY_COMP && + pic->mvmode2 == GST_VC1_MVMODE_MIXED_MV)) { + if (!bitplane_decoding (br, bitplanes ? bitplanes->mvtypemb : NULL, + seqhdr, &pic->mvtypemb)) + goto failed; + GST_DEBUG ("mvtypemb %u", pic->mvtypemb); + } + if (!bitplane_decoding (br, bitplanes ? bitplanes->skipmb : NULL, + seqhdr, &pic->skipmb)) + goto failed; + + READ_UINT8 (br, pic->mvtab, 2); + READ_UINT8 (br, pic->cbptab, 2); + + if (framehdr->dquant) { + parse_vopdquant (br, framehdr, framehdr->dquant); + } + + if (structc->vstransform) { + READ_UINT8 (br, pic->ttmbf, 1); + GST_DEBUG ("ttmbf %u", pic->ttmbf); + + if (pic->ttmbf) { + READ_UINT8 (br, pic->ttfrm, 2); + GST_DEBUG ("ttfrm %u", pic->ttfrm); + } + } + + framehdr->transacfrm = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + GST_DEBUG ("transacfrm %u transdctab %u mvmode %u mvtab %u," + "cbptab %u skipmb %u", framehdr->transacfrm, framehdr->transdctab, + pic->mvmode, pic->mvtab, pic->cbptab, pic->skipmb); + break; + + case GST_VC1_PICTURE_TYPE_B: + READ_UINT8 (br, pic->mvmode, 1); + if (!bitplane_decoding (br, bitplanes ? bitplanes->directmb : NULL, + seqhdr, &pic->directmb)) + goto failed; + + if (!bitplane_decoding (br, bitplanes ? bitplanes->skipmb : NULL, + seqhdr, &pic->skipmb)) + goto failed; + + READ_UINT8 (br, pic->mvtab, 2); + READ_UINT8 (br, pic->cbptab, 2); + + if (framehdr->dquant) + parse_vopdquant (br, framehdr, framehdr->dquant); + + if (structc->vstransform) { + READ_UINT8 (br, pic->ttmbf, 1); + + if (pic->ttmbf) { + READ_UINT8 (br, pic->ttfrm, 2); + } + } + + framehdr->transacfrm = get_unary (br, 0, 2); + READ_UINT8 (br, framehdr->transdctab, 1); + + GST_DEBUG ("transacfrm %u transdctab %u mvmode %u mvtab %u," + "cbptab %u directmb %u skipmb %u", framehdr->transacfrm, + framehdr->transdctab, pic->mvmode, pic->mvtab, pic->cbptab, + pic->directmb, pic->skipmb); + + break; + + default: + goto failed; + break; + } + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse Simple picture header"); + + return GST_VC1_PARSER_ERROR; +} + +static GstVC1ParserResult +parse_sequence_header_struct_a (GstBitReader * br, GstVC1SeqStructA * structa) +{ + if (gst_bit_reader_get_remaining (br) < 64) { + GST_WARNING ("Failed to parse struct A"); + + return GST_VC1_PARSER_ERROR; + } + + structa->vert_size = gst_bit_reader_get_bits_uint32_unchecked (br, 32); + structa->horiz_size = gst_bit_reader_get_bits_uint32_unchecked (br, 32); + + return GST_VC1_PARSER_OK; +} + +static GstVC1ParserResult +parse_sequence_header_struct_b (GstBitReader * br, GstVC1SeqStructB * structb) +{ + if (gst_bit_reader_get_remaining (br) < 96) { + GST_WARNING ("Failed to parse sequence header"); + + return GST_VC1_PARSER_ERROR; + } + + structb->level = gst_bit_reader_get_bits_uint8_unchecked (br, 3); + structb->cbr = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + /* res4 */ + gst_bit_reader_skip_unchecked (br, 4); + + structb->hrd_buffer = gst_bit_reader_get_bits_uint32_unchecked (br, 24); + structb->hrd_rate = gst_bit_reader_get_bits_uint32_unchecked (br, 32); + structb->framerate = gst_bit_reader_get_bits_uint32_unchecked (br, 32); + + return GST_VC1_PARSER_OK; +} + +static GstVC1ParserResult +parse_sequence_header_struct_c (GstBitReader * br, GstVC1SeqStructC * structc) +{ + guint8 old_interlaced_mode, tmp; + + READ_UINT8 (br, tmp, 2); + structc->profile = tmp; + + if (structc->profile == GST_VC1_PROFILE_ADVANCED) + return GST_VC1_PARSER_OK; + + GST_DEBUG ("Parsing sequence header in simple or main mode"); + + if (gst_bit_reader_get_remaining (br) < 29) + goto failed; + + /* Reserved bits */ + old_interlaced_mode = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + if (old_interlaced_mode) + GST_WARNING ("Old interlaced mode used"); + + structc->wmvp = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + if (structc->wmvp) + GST_DEBUG ("WMVP mode"); + + structc->frmrtq_postproc = gst_bit_reader_get_bits_uint8_unchecked (br, 3); + structc->bitrtq_postproc = gst_bit_reader_get_bits_uint8_unchecked (br, 5); + structc->loop_filter = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + calculate_framerate_bitrate (structc->frmrtq_postproc, + structc->bitrtq_postproc, &structc->framerate, &structc->bitrate); + + /* Skipping reserved3 bit */ + gst_bit_reader_skip_unchecked (br, 1); + + structc->multires = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + /* Skipping reserved4 bit */ + gst_bit_reader_skip_unchecked (br, 1); + + structc->fastuvmc = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + structc->extended_mv = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + structc->dquant = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + structc->vstransform = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + /* Skipping reserved5 bit */ + gst_bit_reader_skip_unchecked (br, 1); + + structc->overlap = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + structc->syncmarker = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + structc->rangered = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + structc->maxbframes = gst_bit_reader_get_bits_uint8_unchecked (br, 3); + structc->quantizer = gst_bit_reader_get_bits_uint8_unchecked (br, 2); + structc->finterpflag = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + GST_DEBUG ("frmrtq_postproc %u, bitrtq_postproc %u, loop_filter %u, " + "multires %u, fastuvmc %u, extended_mv %u, dquant %u, vstransform %u, " + "overlap %u, syncmarker %u, rangered %u, maxbframes %u, quantizer %u, " + "finterpflag %u", structc->frmrtq_postproc, structc->bitrtq_postproc, + structc->loop_filter, structc->multires, structc->fastuvmc, + structc->extended_mv, structc->dquant, structc->vstransform, + structc->overlap, structc->syncmarker, structc->rangered, + structc->maxbframes, structc->quantizer, structc->finterpflag); + + if (structc->wmvp) { + if (gst_bit_reader_get_remaining (br) < 29) + goto failed; + + structc->coded_width = gst_bit_reader_get_bits_uint16_unchecked (br, 11); + structc->coded_height = gst_bit_reader_get_bits_uint16_unchecked (br, 11); + structc->framerate = gst_bit_reader_get_bits_uint8_unchecked (br, 5); + gst_bit_reader_skip_unchecked (br, 1); + structc->slice_code = gst_bit_reader_get_bits_uint8_unchecked (br, 1); + + GST_DEBUG ("coded_width %u, coded_height %u, framerate %u slice_code %u", + structc->coded_width, structc->coded_height, structc->framerate, + structc->slice_code); + } + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to struct C"); + + return GST_VC1_PARSER_ERROR; +} + +/**** API ****/ +/** + * gst_vc1_identify_next_bdu: + * @data: The data to parse + * @size: the size of @data + * @bdu: (out): The #GstVC1BDU where to store parsed bdu headers + * + * Parses @data and fills @bdu fields + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_identify_next_bdu (const guint8 * data, gsize size, GstVC1BDU * bdu) +{ + gint off1, off2; + + g_return_val_if_fail (bdu != NULL, GST_VC1_PARSER_ERROR); + + if (size < 4) { + GST_DEBUG ("Can't parse, buffer has too small size %" G_GSSIZE_FORMAT, + size); + return GST_VC1_PARSER_ERROR; + } + + off1 = scan_for_start_codes (data, size); + + if (off1 < 0) { + GST_DEBUG ("No start code prefix in this buffer"); + return GST_VC1_PARSER_NO_BDU; + } + + bdu->sc_offset = off1; + + bdu->offset = off1 + 4; + bdu->data = (guint8 *) data; + bdu->type = (GstVC1StartCode) (data[bdu->offset - 1]); + + if (bdu->type == GST_VC1_END_OF_SEQ) { + GST_DEBUG ("End-of-Seq BDU found"); + bdu->size = 0; + return GST_VC1_PARSER_OK; + } + + off2 = scan_for_start_codes (data + bdu->offset, size - bdu->offset); + if (off2 < 0) { + GST_DEBUG ("Bdu start %d, No end found", bdu->offset); + + return GST_VC1_PARSER_NO_BDU_END; + } + + if (off2 > 0 && data[bdu->offset + off2 - 1] == 00) + off2--; + + bdu->size = off2; + + GST_DEBUG ("Complete bdu found. Off: %d, Size: %d", bdu->offset, bdu->size); + return GST_VC1_PARSER_OK; +} + +/** + * gst_vc1_parse_sequence_layer: + * @data: The data to parse + * @size: the size of @data + * @structa: The #GstVC1SeqLayer to set. + * + * Parses @data, and fills @seqlayer fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, + GstVC1SeqLayer * seqlayer) +{ + guint32 tmp; + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (seqlayer != NULL, GST_VC1_PARSER_ERROR); + + READ_UINT32 (&br, tmp, 8); + if (tmp != 0xC5) + goto failed; + + READ_UINT32 (&br, seqlayer->numframes, 24); + + READ_UINT32 (&br, tmp, 32); + if (tmp != 0x04) + goto failed; + + if (parse_sequence_header_struct_c (&br, &seqlayer->struct_c) == + GST_VC1_PARSER_ERROR) + goto failed; + + if (parse_sequence_header_struct_a (&br, &seqlayer->struct_a) == + GST_VC1_PARSER_ERROR) + goto failed; + + READ_UINT32 (&br, tmp, 32); + if (tmp != 0x0C) + goto failed; + + if (parse_sequence_header_struct_b (&br, &seqlayer->struct_b) == + GST_VC1_PARSER_ERROR) + goto failed; + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse sequence layer"); + + return GST_VC1_PARSER_ERROR; +} + +/** + * gst_vc1_parse_sequence_header_struct_a: + * @data: The data to parse + * @size: the size of @data + * @structa: The #GstVC1SeqStructA to set. + * + * Parses @data, and fills @structa fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_a (const guint8 * data, + gsize size, GstVC1SeqStructA * structa) +{ + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (structa != NULL, GST_VC1_PARSER_ERROR); + + return parse_sequence_header_struct_a (&br, structa); +} + +/** + * gst_vc1_parse_sequence_header_struct_b: + * @data: The data to parse + * @size: the size of @data + * @structa: The #GstVC1SeqStructB to set. + * + * Parses @data, and fills @structb fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_b (const guint8 * data, + gsize size, GstVC1SeqStructB * structb) +{ + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (structb != NULL, GST_VC1_PARSER_ERROR); + + return parse_sequence_header_struct_b (&br, structb); +} + +/** + * gst_vc1_parse_sequence_header_struct_c: + * @data: The data to parse + * @size: the size of @data + * @structc: The #GstVC1SeqStructC to set. + * + * Parses @data, and fills @structc fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_c (const guint8 * data, gsize size, + GstVC1SeqStructC * structc) +{ + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (structc != NULL, GST_VC1_PARSER_ERROR); + + return parse_sequence_header_struct_c (&br, structc); +} + +/** +* gst_vc1_parse_sequence_header: +* @data: The data to parse +* @size: the size of @data +* @seqhdr: The #GstVC1SeqHdr to set. + * + * Parses @data, and fills @seqhdr fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_sequence_header (const guint8 * data, gsize size, + GstVC1SeqHdr * seqhdr) +{ + GstBitReader br = GST_BIT_READER_INIT (data, size); + + g_return_val_if_fail (seqhdr != NULL, GST_VC1_PARSER_ERROR); + + if (parse_sequence_header_struct_c (&br, &seqhdr->struct_c) == + GST_VC1_PARSER_ERROR) + goto failed; + + /* Convenience field */ + seqhdr->profile = seqhdr->struct_c.profile; + + if (seqhdr->profile == GST_VC1_PROFILE_ADVANCED) + return parse_sequence_header_advanced (seqhdr, &br); + + /* Compute MB height and width */ + calculate_mb_size (seqhdr, seqhdr->struct_c.coded_width, + seqhdr->struct_c.coded_height); + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse sequence header"); + + return GST_VC1_PARSER_ERROR; +} + +/** + * gst_vc1_parse_entry_point_header: + * @data: The data to parse + * @size: the size of @data + * @entrypoint: (out): The #GstVC1EntryPointHdr to set. + * @seqhdr: The #GstVC1SeqHdr currently being parsed + * + * Parses @data, and sets @entrypoint fields. + * + * Returns: a #GstVC1EntryPointHdr + */ +GstVC1ParserResult +gst_vc1_parse_entry_point_header (const guint8 * data, gsize size, + GstVC1EntryPointHdr * entrypoint, GstVC1SeqHdr * seqhdr) +{ + GstBitReader br; + guint8 i; + GstVC1AdvancedSeqHdr *advanced = &seqhdr->advanced; + + g_return_val_if_fail (entrypoint != NULL, GST_VC1_PARSER_ERROR); + + gst_bit_reader_init (&br, data, size); + + if (gst_bit_reader_get_remaining (&br) < 13) + goto failed; + + entrypoint->broken_link = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->closed_entry = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->panscan_flag = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->refdist_flag = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->loopfilter = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->fastuvmc = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->extended_mv = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->dquant = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + entrypoint->vstransform = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->overlap = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + entrypoint->quantizer = gst_bit_reader_get_bits_uint8_unchecked (&br, 2); + + if (advanced->hrd_param_flag) { + if (seqhdr->advanced.hrd_param.hrd_num_leaky_buckets > + MAX_HRD_NUM_LEAKY_BUCKETS) { + GST_WARNING + ("hrd_num_leaky_buckets (%d) > MAX_HRD_NUM_LEAKY_BUCKETS (%d)", + seqhdr->advanced.hrd_param.hrd_num_leaky_buckets, + MAX_HRD_NUM_LEAKY_BUCKETS); + goto failed; + } + for (i = 0; i < seqhdr->advanced.hrd_param.hrd_num_leaky_buckets; i++) + READ_UINT8 (&br, entrypoint->hrd_full[i], 8); + } + + READ_UINT8 (&br, entrypoint->coded_size_flag, 1); + if (entrypoint->coded_size_flag) { + READ_UINT16 (&br, entrypoint->coded_width, 12); + READ_UINT16 (&br, entrypoint->coded_height, 12); + entrypoint->coded_height = (entrypoint->coded_height + 1) << 1; + entrypoint->coded_width = (entrypoint->coded_width + 1) << 1; + calculate_mb_size (seqhdr, entrypoint->coded_width, + entrypoint->coded_height); + } + + if (entrypoint->extended_mv) + READ_UINT8 (&br, entrypoint->extended_dmv, 1); + + READ_UINT8 (&br, entrypoint->range_mapy_flag, 1); + if (entrypoint->range_mapy_flag) + READ_UINT8 (&br, entrypoint->range_mapy, 3); + + READ_UINT8 (&br, entrypoint->range_mapuv_flag, 1); + if (entrypoint->range_mapy_flag) + READ_UINT8 (&br, entrypoint->range_mapuv, 3); + + advanced->entrypoint = *entrypoint; + + return GST_VC1_PARSER_OK; + +failed: + GST_WARNING ("Failed to parse entry point header"); + + return GST_VC1_PARSER_ERROR; +} + +/** + * gst_vc1_parse_frame_layer: + * @data: The data to parse + * @size: the size of @data + * @framelayer: The #GstVC1FrameLayer to fill. + * + * Parses @data, and fills @framelayer fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_frame_layer (const guint8 * data, gsize size, + GstVC1FrameLayer * framelayer) +{ + GstBitReader br = GST_BIT_READER_INIT (data, size); + + if (gst_bit_reader_get_remaining (&br) < 64) { + GST_WARNING ("Could not parse frame layer"); + + return GST_VC1_PARSER_ERROR; + } + + /* set default values */ + framelayer->skiped_p_frame = 0; + + framelayer->key = gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + gst_bit_reader_skip_unchecked (&br, 7); + + framelayer->framesize = gst_bit_reader_get_bits_uint32_unchecked (&br, 24); + + if (framelayer->framesize == 0 || framelayer->framesize == 1) + framelayer->skiped_p_frame = 1; + + /* compute next_framelayer_offset */ + framelayer->next_framelayer_offset = framelayer->framesize + 8; + + framelayer->timestamp = gst_bit_reader_get_bits_uint32_unchecked (&br, 32); + + return GST_VC1_PARSER_OK; +} + +/** + * gst_vc1_parse_frame_header: + * @data: The data to parse + * @size: the size of @data + * @framehdr: The #GstVC1FrameHdr to fill. + * @seqhdr: The #GstVC1SeqHdr currently being parsed + * @bitplanes: The #GstVC1BitPlanes to store bitplanes in or %NULL + * + * Parses @data, and fills @entrypoint fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_frame_header (const guint8 * data, gsize size, + GstVC1FrameHdr * framehdr, GstVC1SeqHdr * seqhdr, + GstVC1BitPlanes * bitplanes) +{ + GstBitReader br; + GstVC1ParserResult result; + + gst_bit_reader_init (&br, data, size); + + if (seqhdr->profile == GST_VC1_PROFILE_ADVANCED) + result = parse_frame_header_advanced (&br, framehdr, seqhdr, bitplanes, + FALSE); + else + result = parse_frame_header (&br, framehdr, seqhdr, bitplanes); + + framehdr->header_size = gst_bit_reader_get_pos (&br); + return result; +} + +/** + * gst_vc1_parse_field_header: + * @data: The data to parse + * @size: the size of @data + * @fieldhdr: The #GstVC1FrameHdr to fill. + * @seqhdr: The #GstVC1SeqHdr currently being parsed + * @bitplanes: The #GstVC1BitPlanes to store bitplanes in or %NULL + * + * Parses @data, and fills @fieldhdr fields. + * + * Returns: a #GstVC1ParserResult + */ +GstVC1ParserResult +gst_vc1_parse_field_header (const guint8 * data, gsize size, + GstVC1FrameHdr * fieldhdr, GstVC1SeqHdr * seqhdr, + GstVC1BitPlanes * bitplanes) +{ + GstBitReader br; + GstVC1ParserResult result; + + gst_bit_reader_init (&br, data, size); + + result = parse_frame_header_advanced (&br, fieldhdr, seqhdr, bitplanes, TRUE); + + return result; +} + +/** + * gst_vc1_bitplanes_new: + * @seqhdr: The #GstVC1SeqHdr from which to set @bitplanes + * + * Creates a new #GstVC1BitPlanes. It should be freed with + * gst_vc1_bitplanes_free() after use. + * + * Returns: a new #GstVC1BitPlanes + */ +GstVC1BitPlanes * +gst_vc1_bitplanes_new (void) +{ + return g_slice_new0 (GstVC1BitPlanes); +} + +/** + * gst_vc1_bitplane_free: + * @bitplanes: the #GstVC1BitPlanes to free + * + * Frees @bitplanes. + */ +void +gst_vc1_bitplanes_free (GstVC1BitPlanes * bitplanes) +{ + gst_vc1_bitplanes_free_1 (bitplanes); + g_slice_free (GstVC1BitPlanes, bitplanes); +} + +/** + * gst_vc1_bitplane_free_1: + * @bitplanes: The #GstVC1BitPlanes to free + * + * Frees @bitplanes fields. + */ +void +gst_vc1_bitplanes_free_1 (GstVC1BitPlanes * bitplanes) +{ + g_free (bitplanes->acpred); + g_free (bitplanes->fieldtx); + g_free (bitplanes->overflags); + g_free (bitplanes->mvtypemb); + g_free (bitplanes->skipmb); + g_free (bitplanes->directmb); + g_free (bitplanes->forwardmb); +} + +/** + * gst_vc1_bitplanes_ensure_size: + * @bitplanes: The #GstVC1BitPlanes to reset + * @seqhdr: The #GstVC1SeqHdr from which to set @bitplanes + * + * Fills the @bitplanes structure from @seqhdr, this function + * should be called after #gst_vc1_parse_sequence_header if + * in simple or main mode, or after #gst_vc1_parse_entry_point_header + * if in advanced mode. + * + * Returns: %TRUE if everything went fine, %FALSE otherwize + */ +gboolean +gst_vc1_bitplanes_ensure_size (GstVC1BitPlanes * bitplanes, + GstVC1SeqHdr * seqhdr) +{ + g_return_val_if_fail (bitplanes != NULL, FALSE); + g_return_val_if_fail (seqhdr != NULL, FALSE); + + if (bitplanes->size) { + bitplanes->size = seqhdr->mb_height * seqhdr->mb_stride; + bitplanes->acpred = + g_realloc_n (bitplanes->acpred, bitplanes->size, sizeof (guint8)); + bitplanes->fieldtx = + g_realloc_n (bitplanes->fieldtx, bitplanes->size, sizeof (guint8)); + bitplanes->overflags = + g_realloc_n (bitplanes->overflags, bitplanes->size, sizeof (guint8)); + bitplanes->mvtypemb = + g_realloc_n (bitplanes->mvtypemb, bitplanes->size, sizeof (guint8)); + bitplanes->skipmb = + g_realloc_n (bitplanes->skipmb, bitplanes->size, sizeof (guint8)); + bitplanes->directmb = + g_realloc_n (bitplanes->directmb, bitplanes->size, sizeof (guint8)); + bitplanes->forwardmb = + g_realloc_n (bitplanes->forwardmb, bitplanes->size, sizeof (guint8)); + } else { + bitplanes->size = seqhdr->mb_height * seqhdr->mb_stride; + bitplanes->acpred = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->fieldtx = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->overflags = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->mvtypemb = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->skipmb = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->directmb = g_malloc0 (bitplanes->size * sizeof (guint8)); + bitplanes->forwardmb = g_malloc0 (bitplanes->size * sizeof (guint8)); + } + + return TRUE; +} diff --git a/gst-libs/gst/codecparsers/gstvc1parser.h b/gst-libs/gst/codecparsers/gstvc1parser.h new file mode 100644 index 0000000..ce463d7 --- /dev/null +++ b/gst-libs/gst/codecparsers/gstvc1parser.h @@ -0,0 +1,622 @@ +/* Gstreamer + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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_VC1_PARSER_H__ +#define __GST_VC1_PARSER_H__ + +#ifndef GST_USE_UNSTABLE_API +#warning "The VC1 parsing library is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include + +G_BEGIN_DECLS + +#define MAX_HRD_NUM_LEAKY_BUCKETS 31 + +/** + * @GST_VC1_BFRACTION_BASIS: The @bfraction variable should be divided + * by this constant to have the actual value. + */ +#define GST_VC1_BFRACTION_BASIS 840 + +#define GST_VC1_BFRACTION_RESERVED (GST_VC1_BFRACTION_BASIS + 1) +#define GST_VC1_BFRACTION_PTYPE_BI (GST_VC1_BFRACTION_BASIS + 2) + +typedef enum { + GST_VC1_END_OF_SEQ = 0x0A, + GST_VC1_SLICE = 0x0B, + GST_VC1_FIELD = 0x0C, + GST_VC1_FRAME = 0x0D, + GST_VC1_ENTRYPOINT = 0x0E, + GST_VC1_SEQUENCE = 0x0F, + GST_VC1_SLICE_USER = 0x1B, + GST_VC1_FIELD_USER = 0x1C, + GST_VC1_FRAME_USER = 0x1D, + GST_VC1_ENTRY_POINT_USER = 0x1E, + GST_VC1_SEQUENCE_USER = 0x1F +} GstVC1StartCode; + +typedef enum { + GST_VC1_PROFILE_SIMPLE, + GST_VC1_PROFILE_MAIN, + GST_VC1_PROFILE_RESERVED, + GST_VC1_PROFILE_ADVANCED +} GstVC1Profile; + +typedef enum { + GST_VC1_PARSER_OK, + GST_VC1_PARSER_BROKEN_DATA, + GST_VC1_PARSER_NO_BDU, + GST_VC1_PARSER_NO_BDU_END, + GST_VC1_PARSER_ERROR, +} GstVC1ParserResult; + +typedef enum +{ + GST_VC1_PICTURE_TYPE_P, + GST_VC1_PICTURE_TYPE_B, + GST_VC1_PICTURE_TYPE_I, + GST_VC1_PICTURE_TYPE_BI, + GST_VC1_PICTURE_TYPE_SKIPPED +} GstVC1PictureType; + +typedef enum +{ + GST_VC1_LEVEL_LOW = 0, /* Simple/Main profile low level */ + GST_VC1_LEVEL_MEDIUM = 1, /* Simple/Main profile medium level */ + GST_VC1_LEVEL_HIGH = 2, /* Main profile high level */ + + GST_VC1_LEVEL_L0 = 0, /* Advanced profile level 0 */ + GST_VC1_LEVEL_L1 = 1, /* Advanced profile level 1 */ + GST_VC1_LEVEL_L2 = 2, /* Advanced profile level 2 */ + GST_VC1_LEVEL_L3 = 3, /* Advanced profile level 3 */ + GST_VC1_LEVEL_L4 = 4, /* Advanced profile level 4 */ + + /* 5 to 7 reserved */ + GST_VC1_LEVEL_UNKNOWN = 255 /* Unknown profile */ +} GstVC1Level; + +typedef enum +{ + GST_VC1_QUANTIZER_IMPLICITLY, + GST_VC1_QUANTIZER_EXPLICITLY, + GST_VC1_QUANTIZER_NON_UNIFORM, + GST_VC1_QUANTIZER_UNIFORM +} GstVC1QuantizerSpec; + +typedef enum { + GST_VC1_DQPROFILE_FOUR_EDGES, + GST_VC1_DQPROFILE_DOUBLE_EDGES, + GST_VC1_DQPROFILE_SINGLE_EDGE, + GST_VC1_DQPROFILE_ALL_MBS +} GstVC1DQProfile; + +typedef enum { + GST_VC1_CONDOVER_NONE, + GST_VC1_CONDOVER_ALL, + GST_VC1_CONDOVER_SELECT +} GstVC1Condover; + +/** + * GstVC1MvMode: + * + */ +typedef enum +{ + GST_VC1_MVMODE_1MV_HPEL_BILINEAR, + GST_VC1_MVMODE_1MV, + GST_VC1_MVMODE_1MV_HPEL, + GST_VC1_MVMODE_MIXED_MV, + GST_VC1_MVMODE_INTENSITY_COMP +} GstVC1MvMode; + +typedef enum +{ + GST_VC1_FRAME_PROGRESSIVE = 0x0, + GST_VC1_FRAME_INTERLACE = 0x10, + GST_VC1_FIELD_INTERLACE = 0x11 +} GstVC1FrameCodingMode; + +typedef struct _GstVC1SeqHdr GstVC1SeqHdr; +typedef struct _GstVC1AdvancedSeqHdr GstVC1AdvancedSeqHdr; +typedef struct _GstVC1HrdParam GstVC1HrdParam; +typedef struct _GstVC1EntryPointHdr GstVC1EntryPointHdr; + +typedef struct _GstVC1SeqLayer GstVC1SeqLayer; + +typedef struct _GstVC1SeqStructA GstVC1SeqStructA; +typedef struct _GstVC1SeqStructB GstVC1SeqStructB; +typedef struct _GstVC1SeqStructC GstVC1SeqStructC; + +/* Pictures Structures */ +typedef struct _GstVC1FrameLayer GstVC1FrameLayer; +typedef struct _GstVC1FrameHdr GstVC1FrameHdr; +typedef struct _GstVC1PicAdvanced GstVC1PicAdvanced; +typedef struct _GstVC1PicSimpleMain GstVC1PicSimpleMain; +typedef struct _GstVC1Picture GstVC1Picture; + +typedef struct _GstVC1VopDquant GstVC1VopDquant; + +typedef struct _GstVC1BitPlanes GstVC1BitPlanes; + +typedef struct _GstVC1BDU GstVC1BDU; + +struct _GstVC1HrdParam +{ + guint8 hrd_num_leaky_buckets; + guint8 bit_rate_exponent; + guint8 buffer_size_exponent; + guint16 hrd_rate[MAX_HRD_NUM_LEAKY_BUCKETS]; + guint16 hrd_buffer[MAX_HRD_NUM_LEAKY_BUCKETS]; +}; + +/** + * GstVC1EntryPointHdr: + * + * Structure for entrypoint header, this will be used only in advanced profiles + */ +struct _GstVC1EntryPointHdr +{ + guint8 broken_link; + guint8 closed_entry; + guint8 panscan_flag; + guint8 refdist_flag; + guint8 loopfilter; + guint8 fastuvmc; + guint8 extended_mv; + guint8 dquant; + guint8 vstransform; + guint8 overlap; + guint8 quantizer; + guint8 coded_size_flag; + guint16 coded_width; + guint16 coded_height; + guint8 extended_dmv; + guint8 range_mapy_flag; + guint8 range_mapy; + guint8 range_mapuv_flag; + guint8 range_mapuv; + + guint8 hrd_full[MAX_HRD_NUM_LEAKY_BUCKETS]; +}; + +/** + * GstVC1AdvancedSeqHdr: + * + * Structure for the advanced profile sequence headers specific parameters. + */ +struct _GstVC1AdvancedSeqHdr +{ + GstVC1Level level; + + guint8 frmrtq_postproc; + guint8 bitrtq_postproc; + guint8 postprocflag; + guint16 max_coded_width; + guint16 max_coded_height; + guint8 pulldown; + guint8 interlace; + guint8 tfcntrflag; + guint8 finterpflag; + guint8 psf; + guint8 display_ext; + guint16 disp_horiz_size; + guint16 disp_vert_size; + guint8 aspect_ratio_flag; + guint8 aspect_ratio; + guint8 aspect_horiz_size; + guint8 aspect_vert_size; + guint8 framerate_flag; + guint8 framerateind; + guint8 frameratenr; + guint8 frameratedr; + guint16 framerateexp; + guint8 color_format_flag; + guint8 color_prim; + guint8 transfer_char; + guint8 matrix_coef; + guint8 hrd_param_flag; + guint8 colordiff_format; + + GstVC1HrdParam hrd_param; + + /* computed */ + guint framerate; /* Around in fps, 0 if unknown*/ + guint bitrate; /* Around in kpbs, 0 if unknown*/ + guint par_n; + guint par_d; + guint fps_n; + guint fps_d; + + /* The last parsed entry point */ + GstVC1EntryPointHdr entrypoint; +}; + +struct _GstVC1SeqStructA +{ + guint32 vert_size; + guint32 horiz_size; +}; + +struct _GstVC1SeqStructB +{ + GstVC1Level level; + + guint8 cbr; + guint32 framerate; + + /* In simple and main profiles only */ + guint32 hrd_buffer; + guint32 hrd_rate; +}; + +struct _GstVC1SeqStructC +{ + GstVC1Profile profile; + + /* Only in simple and main profiles */ + guint8 frmrtq_postproc; + guint8 bitrtq_postproc; + guint8 res_sprite; + guint8 loop_filter; + guint8 multires; + guint8 fastuvmc; + guint8 extended_mv; + guint8 dquant; + guint8 vstransform; + guint8 overlap; + guint8 syncmarker; + guint8 rangered; + guint8 maxbframes; + guint8 quantizer; + guint8 finterpflag; + + /* Computed */ + guint framerate; /* Around in fps, 0 if unknown*/ + guint bitrate; /* Around in kpbs, 0 if unknown*/ + + /* This should be filled by user if previously known */ + guint16 coded_width; + /* This should be filled by user if previously known */ + guint16 coded_height; + + /* Wmvp specific */ + guint8 wmvp; /* Specify if the stream is wmp or not */ + /* In the wmvp case, the framerate is not computed but in the bistream */ + guint8 slice_code; +}; + +struct _GstVC1SeqLayer +{ + guint32 numframes; + + GstVC1SeqStructA struct_a; + GstVC1SeqStructB struct_b; + GstVC1SeqStructC struct_c; +}; + +/** + * GstVC1SeqHdr: + * + * Structure for sequence headers in any profile. + */ +struct _GstVC1SeqHdr +{ + GstVC1Profile profile; + + GstVC1SeqStructC struct_c; + + /* calculated */ + guint mb_height; + guint mb_width; + guint mb_stride; + + GstVC1AdvancedSeqHdr advanced; + +}; + +/** + * GstVC1PicSimpleMain: + * @bfaction: Should be divided by #GST_VC1_BFRACTION_BASIS + * to get the real value. + */ +struct _GstVC1PicSimpleMain +{ + guint8 frmcnt; + guint8 mvrange; + guint8 rangeredfrm; + + /* I and P pic simple and main profiles only */ + guint8 respic; + + /* I and BI pic simple and main profiles only */ + guint8 transacfrm2; + guint8 bf; + + /* B and P pic simple and main profiles only */ + guint8 mvmode; + guint8 mvtab; + guint8 ttmbf; + + /* P pic simple and main profiles only */ + guint8 mvmode2; + guint8 lumscale; + guint8 lumshift; + + guint8 cbptab; + guint8 ttfrm; + + /* B and BI picture only + * Should be divided by #GST_VC1_BFRACTION_BASIS + * to get the real value. */ + guint16 bfraction; + + /* Biplane value, those fields only mention the fact + * that the bitplane is in raw mode or not */ + guint8 mvtypemb; + guint8 skipmb; + guint8 directmb; /* B pic main profile only */ +}; + +/** + * GstVC1PicAdvanced: + * @bfaction: Should be divided by #GST_VC1_BFRACTION_BASIS + * to get the real value. + */ +struct _GstVC1PicAdvanced +{ + GstVC1FrameCodingMode fcm; + guint8 tfcntr; + + guint8 rptfrm; + guint8 tff; + guint8 rff; + guint8 ps_present; + guint32 ps_hoffset; + guint32 ps_voffset; + guint16 ps_width; + guint16 ps_height; + guint8 rndctrl; + guint8 uvsamp; + guint8 postproc; + + /* B and P picture specific */ + guint8 mvrange; + guint8 mvmode; + guint8 mvtab; + guint8 cbptab; + guint8 ttmbf; + guint8 ttfrm; + + /* B and BI picture only + * Should be divided by #GST_VC1_BFRACTION_BASIS + * to get the real value. */ + guint16 bfraction; + + /* ppic */ + guint8 mvmode2; + guint8 lumscale; + guint8 lumshift; + + /* bipic */ + guint8 bf; + guint8 condover; + guint8 transacfrm2; + + /* Biplane value, those fields only mention the fact + * that the bitplane is in raw mode or not */ + guint8 acpred; + guint8 overflags; + guint8 mvtypemb; + guint8 skipmb; + guint8 directmb; + guint8 forwardmb; /* B pic interlace field only */ + + /* For interlaced pictures only */ + guint8 fieldtx; + + /* P and B pictures */ + guint8 intcomp; + guint8 dmvrange; + guint8 mbmodetab; + guint8 imvtab; + guint8 icbptab; + guint8 mvbptab2; + guint8 mvbptab4; /* If 4mvswitch in ppic */ + + /* P picture */ + guint8 mvswitch4; + + /* For interlaced fields only */ + guint16 refdist; + guint8 fptype; /* Raw value */ + + /* P pic */ + guint8 numref; + guint8 reffield; + guint8 lumscale2; + guint8 lumshift2; + guint8 intcompfield; + +}; + +struct _GstVC1BitPlanes +{ + guint8 *acpred; + guint8 *fieldtx; + guint8 *overflags; + guint8 *mvtypemb; + guint8 *skipmb; + guint8 *directmb; + guint8 *forwardmb; + + guint size; /* Size of the arrays */ +}; + +struct _GstVC1VopDquant +{ + guint8 pqdiff; + guint8 abspq; + + /* Computed */ + guint8 altpquant; + + /* if dqant != 2*/ + guint8 dquantfrm; + guint8 dqprofile; + + /* if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE + * or GST_VC1_DQPROFILE_DOUBLE_EDGE:*/ + guint8 dqsbedge; + + /* if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE + * or GST_VC1_DQPROFILE_DOUBLE_EDGE:*/ + guint8 dqbedge; + + /* if dqprofile == GST_VC1_DQPROFILE_ALL_MBS */ + guint8 dqbilevel; + +}; + +struct _GstVC1FrameLayer +{ + guint8 key; + guint32 framesize; + + guint32 timestamp; + + /* calculated */ + guint32 next_framelayer_offset; + guint8 skiped_p_frame; +}; + +/** + * GstVC1FrameHdr: + * + * Structure that represent picture in any profile or mode. + * You should look at @ptype and @profile to know what is currently + * in use. + */ +struct _GstVC1FrameHdr +{ + /* common fields */ + GstVC1PictureType ptype; + guint8 interpfrm; + guint8 halfqp; + guint8 transacfrm; + guint8 transdctab; + guint8 pqindex; + guint8 pquantizer; + + /* Computed */ + guint8 pquant; + + /* Convenience fields */ + guint8 profile; + guint8 dquant; + + /* If dquant */ + GstVC1VopDquant vopdquant; + + union { + GstVC1PicSimpleMain simple; + GstVC1PicAdvanced advanced; + } pic; + + /* Size of the picture layer in bits */ + guint header_size; +}; + +/** + * GstVC1BDU: + * + * Structure that represents a Bitstream Data Unit. + */ +struct _GstVC1BDU +{ + GstVC1StartCode type; + guint size; + guint sc_offset; + guint offset; + guint8 * data; +}; + +GstVC1ParserResult gst_vc1_identify_next_bdu (const guint8 *data, + gsize size, + GstVC1BDU *bdu); + + +GstVC1ParserResult gst_vc1_parse_sequence_header (const guint8 *data, + gsize size, + GstVC1SeqHdr * seqhdr); + +GstVC1ParserResult gst_vc1_parse_entry_point_header (const guint8 *data, + gsize size, + GstVC1EntryPointHdr * entrypoint, + GstVC1SeqHdr *seqhdr); + +GstVC1ParserResult gst_vc1_parse_sequence_layer (const guint8 *data, + gsize size, + GstVC1SeqLayer * seqlayer); + +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_a (const guint8 *data, + gsize size, + GstVC1SeqStructA *structa); +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_b (const guint8 *data, + gsize size, + GstVC1SeqStructB *structb); + +GstVC1ParserResult +gst_vc1_parse_sequence_header_struct_c (const guint8 *data, + gsize size, + GstVC1SeqStructC *structc); + +GstVC1ParserResult gst_vc1_parse_frame_layer (const guint8 *data, + gsize size, + GstVC1FrameLayer * framelayer); + +GstVC1ParserResult gst_vc1_parse_frame_header (const guint8 *data, + gsize size, + GstVC1FrameHdr * framehdr, + GstVC1SeqHdr *seqhdr, + GstVC1BitPlanes *bitplanes); + +GstVC1ParserResult gst_vc1_parse_field_header (const guint8 *data, + gsize size, + GstVC1FrameHdr * fieldhdr, + GstVC1SeqHdr *seqhdr, + GstVC1BitPlanes *bitplanes); + +GstVC1BitPlanes * gst_vc1_bitplanes_new (void); + +void gst_vc1_bitplanes_free (GstVC1BitPlanes *bitplanes); + +void gst_vc1_bitplanes_free_1 (GstVC1BitPlanes *bitplanes); + +gboolean gst_vc1_bitplanes_ensure_size (GstVC1BitPlanes *bitplanes, + GstVC1SeqHdr *seqhdr); + +G_END_DECLS +#endif diff --git a/gst-libs/gst/codecparsers/parserutils.c b/gst-libs/gst/codecparsers/parserutils.c new file mode 100644 index 0000000..a31fe48 --- /dev/null +++ b/gst-libs/gst/codecparsers/parserutils.c @@ -0,0 +1,57 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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. + */ + +#include "parserutils.h" + +gboolean +decode_vlc (GstBitReader * br, guint * res, const VLCTable * table, + guint length) +{ + guint8 i; + guint cbits = 0; + guint32 value = 0; + + for (i = 0; i < length; i++) { + if (cbits != table[i].cbits) { + cbits = table[i].cbits; + if (!gst_bit_reader_peek_bits_uint32 (br, &value, cbits)) { + goto failed; + } + } + + if (value == table[i].cword) { + SKIP (br, cbits); + if (res) + *res = table[i].value; + + return TRUE; + } + } + + GST_DEBUG ("Did not find code"); + +failed: + { + GST_WARNING ("Could not decode VLC returning"); + + return FALSE; + } +} diff --git a/gst-libs/gst/codecparsers/parserutils.h b/gst-libs/gst/codecparsers/parserutils.h new file mode 100644 index 0000000..009b250 --- /dev/null +++ b/gst-libs/gst/codecparsers/parserutils.h @@ -0,0 +1,108 @@ +/* Gstreamer + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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 __PARSER_UTILS__ +#define __PARSER_UTILS__ + +#include +#include + +/* Parsing utils */ +#define GET_BITS(b, num, bits) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint32(b, bits, num)) \ + goto failed; \ + GST_TRACE ("parsed %d bits: %d", num, *(bits)); \ +} G_STMT_END + +#define CHECK_ALLOWED(val, min, max) G_STMT_START { \ + if (val < min || val > max) { \ + GST_WARNING ("value not in allowed range. value: %d, range %d-%d", \ + val, min, max); \ + goto failed; \ + } \ +} G_STMT_END + +#define READ_UINT8(reader, val, nbits) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint8 (reader, &val, nbits)) { \ + GST_WARNING ("failed to read uint8, nbits: %d", nbits); \ + goto failed; \ + } \ +} G_STMT_END + +#define READ_UINT16(reader, val, nbits) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint16 (reader, &val, nbits)) { \ + GST_WARNING ("failed to read uint16, nbits: %d", nbits); \ + goto failed; \ + } \ +} G_STMT_END + +#define READ_UINT32(reader, val, nbits) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint32 (reader, &val, nbits)) { \ + GST_WARNING ("failed to read uint32, nbits: %d", nbits); \ + goto failed; \ + } \ +} G_STMT_END + +#define READ_UINT64(reader, val, nbits) G_STMT_START { \ + if (!gst_bit_reader_get_bits_uint64 (reader, &val, nbits)) { \ + GST_WARNING ("failed to read uint64, nbits: %d", nbits); \ + goto failed; \ + } \ +} G_STMT_END + + +#define U_READ_UINT8(reader, val, nbits) G_STMT_START { \ + val = gst_bit_reader_get_bits_uint8_unchecked (reader, nbits); \ +} G_STMT_END + +#define U_READ_UINT16(reader, val, nbits) G_STMT_START { \ + val = gst_bit_reader_get_bits_uint16_unchecked (reader, nbits); \ +} G_STMT_END + +#define U_READ_UINT32(reader, val, nbits) G_STMT_START { \ + val = gst_bit_reader_get_bits_uint32_unchecked (reader, nbits); \ +} G_STMT_END + +#define U_READ_UINT64(reader, val, nbits) G_STMT_START { \ + val = gst_bit_reader_get_bits_uint64_unchecked (reader, nbits); \ +} G_STMT_END + +#define SKIP(reader, nbits) G_STMT_START { \ + if (!gst_bit_reader_skip (reader, nbits)) { \ + GST_WARNING ("failed to skip nbits: %d", nbits); \ + goto failed; \ + } \ +} G_STMT_END + +typedef struct _VLCTable VLCTable; + +struct _VLCTable +{ + guint value; + guint cword; + guint cbits; +}; + +gboolean +decode_vlc (GstBitReader * br, guint * res, const VLCTable * table, + guint length); + +#endif /* __PARSER_UTILS__ */ diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h new file mode 100644 index 0000000..9d54e92 --- /dev/null +++ b/gst-libs/gst/glib-compat-private.h @@ -0,0 +1,148 @@ +/* + * glib-compat.c + * Functions copied from glib 2.10 + * + * Copyright 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. + */ + +#ifndef __GLIB_COMPAT_PRIVATE_H__ +#define __GLIB_COMPAT_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +#if !GLIB_CHECK_VERSION(2,25,0) + +#if defined (_MSC_VER) && !defined(_WIN64) +typedef struct _stat32 GStatBuf; +#else +typedef struct stat GStatBuf; +#endif + +#endif + +#if GLIB_CHECK_VERSION(2,26,0) +#define GLIB_HAS_GDATETIME +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((a),(b),(c)) +#else +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((volatile gpointer *)(a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((volatile int *)(a),(b),(c)) +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_add ((a),(b)) +#else +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_exchange_and_add ((a),(b)) +#endif + +/* copies */ + +#if GLIB_CHECK_VERSION (2, 31, 0) +#define g_mutex_new gst_g_mutex_new +static inline GMutex * +gst_g_mutex_new (void) +{ + GMutex *mutex = g_slice_new (GMutex); + g_mutex_init (mutex); + return mutex; +} +#define g_mutex_free gst_g_mutex_free +static inline void +gst_g_mutex_free (GMutex *mutex) +{ + g_mutex_clear (mutex); + g_slice_free (GMutex, mutex); +} +#define g_static_rec_mutex_init gst_g_static_rec_mutex_init +static inline void +gst_g_static_rec_mutex_init (GStaticRecMutex *mutex) +{ + static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT; + + *mutex = init_mutex; +} +#define g_cond_new gst_g_cond_new +static inline GCond * +gst_g_cond_new (void) +{ + GCond *cond = g_slice_new (GCond); + g_cond_init (cond); + return cond; +} +#define g_cond_free gst_g_cond_free +static inline void +gst_g_cond_free (GCond *cond) +{ + g_cond_clear (cond); + g_slice_free (GCond, cond); +} +#define g_cond_timed_wait gst_g_cond_timed_wait +static inline gboolean +gst_g_cond_timed_wait (GCond *cond, GMutex *mutex, GTimeVal *abs_time) +{ + gint64 end_time; + + if (abs_time == NULL) { + g_cond_wait (cond, mutex); + return TRUE; + } + + end_time = abs_time->tv_sec; + end_time *= 1000000; + end_time += abs_time->tv_usec; + + /* would be nice if we had clock_rtoffset, but that didn't seem to + * make it into the kernel yet... + */ + /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and + * g_get_real_time() are returning the same clock and we'd add ~0 + */ + end_time += g_get_monotonic_time () - g_get_real_time (); + return g_cond_wait_until (cond, mutex, end_time); +} +#endif /* GLIB_CHECK_VERSION (2, 31, 0) */ + +#if GLIB_CHECK_VERSION (2, 31, 0) +#define g_thread_create gst_g_thread_create +static inline GThread * +gst_g_thread_create (GThreadFunc func, gpointer data, gboolean joinable, + GError **error) +{ + GThread *thread = g_thread_try_new ("gst-check", func, data, error); + if (!joinable) + g_thread_unref (thread); + return thread; +} +#endif /* GLIB_CHECK_VERSION (2, 31, 0) */ + +/* adaptations */ + +G_END_DECLS + +#endif diff --git a/gst-libs/gst/interfaces/Makefile.in b/gst-libs/gst/interfaces/Makefile.in index 49f00b7..7df2422 100644 --- a/gst-libs/gst/interfaces/Makefile.in +++ b/gst-libs/gst/interfaces/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -51,6 +51,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -109,6 +110,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libgstphotographyincludedir)" \ "$(DESTDIR)$(libgstphotographyincludedir)" @@ -124,8 +131,8 @@ nodist_libgstphotography_@GST_MAJORMINOR@_la_OBJECTS = \ libgstphotography_@GST_MAJORMINOR@_la_OBJECTS = \ $(am_libgstphotography_@GST_MAJORMINOR@_la_OBJECTS) \ $(nodist_libgstphotography_@GST_MAJORMINOR@_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstphotography_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -142,21 +149,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstphotography_@GST_MAJORMINOR@_la_SOURCES) \ $(nodist_libgstphotography_@GST_MAJORMINOR@_la_SOURCES) @@ -170,7 +177,6 @@ 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@ @@ -188,7 +194,6 @@ 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@ @@ -223,6 +228,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -262,6 +268,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -279,6 +286,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -287,13 +295,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -318,13 +329,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -372,6 +384,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -403,8 +416,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -428,6 +445,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -452,10 +471,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -467,6 +490,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -491,6 +518,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -526,7 +554,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -617,6 +644,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -657,7 +685,7 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstphotography-@GST_MAJORMINOR@.la: $(libgstphotography_@GST_MAJORMINOR@_la_OBJECTS) $(libgstphotography_@GST_MAJORMINOR@_la_DEPENDENCIES) +libgstphotography-@GST_MAJORMINOR@.la: $(libgstphotography_@GST_MAJORMINOR@_la_OBJECTS) $(libgstphotography_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstphotography_@GST_MAJORMINOR@_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstphotography_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstphotography_@GST_MAJORMINOR@_la_OBJECTS) $(libgstphotography_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -672,42 +700,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstphotography_@GST_MAJORMINOR@_la-photography.lo: photography.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) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstphotography_@GST_MAJORMINOR@_la-photography.lo -MD -MP -MF $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography.Tpo -c -o libgstphotography_@GST_MAJORMINOR@_la-photography.lo `test -f 'photography.c' || echo '$(srcdir)/'`photography.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography.Tpo $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='photography.c' object='libgstphotography_@GST_MAJORMINOR@_la-photography.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='photography.c' object='libgstphotography_@GST_MAJORMINOR@_la-photography.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) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstphotography_@GST_MAJORMINOR@_la-photography.lo `test -f 'photography.c' || echo '$(srcdir)/'`photography.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstphotography_@GST_MAJORMINOR@_la-photography.lo `test -f 'photography.c' || echo '$(srcdir)/'`photography.c libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo: photography-enumtypes.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) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.Tpo -c -o libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo `test -f 'photography-enumtypes.c' || echo '$(srcdir)/'`photography-enumtypes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.Tpo $(DEPDIR)/libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='photography-enumtypes.c' object='libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='photography-enumtypes.c' object='libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.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) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo `test -f 'photography-enumtypes.c' || echo '$(srcdir)/'`photography-enumtypes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstphotography_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstphotography_@GST_MAJORMINOR@_la-photography-enumtypes.lo `test -f 'photography-enumtypes.c' || echo '$(srcdir)/'`photography-enumtypes.c mostlyclean-libtool: -rm -f *.lo @@ -731,9 +754,7 @@ uninstall-libgstphotographyincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgstphotographyinclude_HEADERS)'; test -n "$(libgstphotographyincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstphotographyincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstphotographyincludedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstphotographyincludedir)'; $(am__uninstall_files_from_dir) install-nodist_libgstphotographyincludeHEADERS: $(nodist_libgstphotographyinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libgstphotographyincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstphotographyincludedir)" @@ -751,9 +772,7 @@ uninstall-nodist_libgstphotographyincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_libgstphotographyinclude_HEADERS)'; test -n "$(libgstphotographyincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstphotographyincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstphotographyincludedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstphotographyincludedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -856,10 +875,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/interfaces/photography.h b/gst-libs/gst/interfaces/photography.h index ce8fea9..4852ea3 100644 --- a/gst-libs/gst/interfaces/photography.h +++ b/gst-libs/gst/interfaces/photography.h @@ -175,7 +175,9 @@ typedef enum 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) + GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION = (1 << 11), + GST_PHOTOGRAPHY_CAPS_FLICKER_REDUCTION = (1 << 12), + GST_PHOTOGRAPHY_CAPS_ALL = (~0) } GstPhotoCaps; typedef enum diff --git a/gst-libs/gst/signalprocessor/Makefile.in b/gst-libs/gst/signalprocessor/Makefile.in index f6b954e..742fe60 100644 --- a/gst-libs/gst/signalprocessor/Makefile.in +++ b/gst-libs/gst/signalprocessor/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -101,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libgstsignalprocessor_@GST_MAJORMINOR@includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) @@ -111,8 +118,8 @@ libgstsignalprocessor_@GST_MAJORMINOR@_la_DEPENDENCIES = \ am_libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS = libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS = \ $(am_libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsignalprocessor_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +136,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsignalprocessor_@GST_MAJORMINOR@_la_SOURCES) DIST_SOURCES = $(libgstsignalprocessor_@GST_MAJORMINOR@_la_SOURCES) @@ -155,7 +162,6 @@ 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@ @@ -173,7 +179,6 @@ 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@ @@ -208,6 +213,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -247,6 +253,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -264,6 +271,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -272,13 +280,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -303,13 +314,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -357,6 +369,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -388,8 +401,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -413,6 +430,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -437,10 +456,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -452,6 +475,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -476,6 +503,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -511,7 +539,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -613,7 +640,7 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsignalprocessor-@GST_MAJORMINOR@.la: $(libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_DEPENDENCIES) +libgstsignalprocessor-@GST_MAJORMINOR@.la: $(libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstsignalprocessor_@GST_MAJORMINOR@_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsignalprocessor_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -627,34 +654,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo: gstsignalprocessor.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) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo -MD -MP -MF $(DEPDIR)/libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.Tpo -c -o libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo `test -f 'gstsignalprocessor.c' || echo '$(srcdir)/'`gstsignalprocessor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.Tpo $(DEPDIR)/libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsignalprocessor.c' object='libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsignalprocessor.c' object='libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.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) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo `test -f 'gstsignalprocessor.c' || echo '$(srcdir)/'`gstsignalprocessor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsignalprocessor_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsignalprocessor_@GST_MAJORMINOR@_la-gstsignalprocessor.lo `test -f 'gstsignalprocessor.c' || echo '$(srcdir)/'`gstsignalprocessor.c mostlyclean-libtool: -rm -f *.lo @@ -678,9 +701,7 @@ uninstall-libgstsignalprocessor_@GST_MAJORMINOR@includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgstsignalprocessor_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstsignalprocessor_@GST_MAJORMINOR@includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstsignalprocessor_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstsignalprocessor_@GST_MAJORMINOR@includedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstsignalprocessor_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -781,10 +802,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/signalprocessor/gstsignalprocessor.c b/gst-libs/gst/signalprocessor/gstsignalprocessor.c index 2cd33a4..7b7826a 100644 --- a/gst-libs/gst/signalprocessor/gstsignalprocessor.c +++ b/gst-libs/gst/signalprocessor/gstsignalprocessor.c @@ -121,6 +121,7 @@ gst_signal_processor_class_add_pad_template (GstSignalProcessorClass * klass, GST_SIGNAL_PROCESSOR_PAD_TEMPLATE (new)->channels = channels; gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass), new); + g_object_unref (new); } diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am index a31276b..7ce58a3 100644 --- a/gst-libs/gst/video/Makefile.am +++ b/gst-libs/gst/video/Makefile.am @@ -4,16 +4,23 @@ lib_LTLIBRARIES = libgstbasevideo-@GST_MAJORMINOR@.la CLEANFILES = $(BUILT_SOURCES) libgstbasevideo_@GST_MAJORMINOR@_la_SOURCES = \ - gstbasevideoutils.c \ gstbasevideocodec.c \ + gstbasevideoutils.c \ gstbasevideodecoder.c \ - gstbasevideoencoder.c + gstbasevideoencoder.c \ + gstsurfacebuffer.c \ + gstsurfaceconverter.c \ + videocontext.c libgstbasevideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video libgstbasevideo_@GST_MAJORMINOR@include_HEADERS = \ gstbasevideocodec.h \ + gstbasevideoutils.h \ gstbasevideodecoder.h \ - gstbasevideoencoder.h + gstbasevideoencoder.h \ + gstsurfacebuffer.h \ + gstsurfaceconverter.h \ + videocontext.h libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) \ diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in index 68365bb..e84adbd 100644 --- a/gst-libs/gst/video/Makefile.in +++ b/gst-libs/gst/video/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libgstbasevideo_@GST_MAJORMINOR@includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) @@ -108,14 +115,17 @@ libgstbasevideo_@GST_MAJORMINOR@_la_DEPENDENCIES = \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS = \ - libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo \ libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo \ + libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo \ libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo \ - libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo + libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo \ + libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.lo \ + libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo \ + libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS = \ $(am_libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstbasevideo_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +142,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstbasevideo_@GST_MAJORMINOR@_la_SOURCES) DIST_SOURCES = $(libgstbasevideo_@GST_MAJORMINOR@_la_SOURCES) @@ -158,7 +168,6 @@ 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@ @@ -176,7 +185,6 @@ 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@ @@ -211,6 +219,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +259,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +277,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +286,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +320,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +375,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +407,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +436,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +462,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +481,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +509,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +545,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -538,16 +568,23 @@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libgstbasevideo-@GST_MAJORMINOR@.la CLEANFILES = $(BUILT_SOURCES) libgstbasevideo_@GST_MAJORMINOR@_la_SOURCES = \ - gstbasevideoutils.c \ gstbasevideocodec.c \ + gstbasevideoutils.c \ gstbasevideodecoder.c \ - gstbasevideoencoder.c + gstbasevideoencoder.c \ + gstsurfacebuffer.c \ + gstsurfaceconverter.c \ + videocontext.c libgstbasevideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video libgstbasevideo_@GST_MAJORMINOR@include_HEADERS = \ gstbasevideocodec.h \ + gstbasevideoutils.h \ gstbasevideodecoder.h \ - gstbasevideoencoder.h + gstbasevideoencoder.h \ + gstsurfacebuffer.h \ + gstsurfaceconverter.h \ + videocontext.h libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) \ @@ -622,7 +659,7 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstbasevideo-@GST_MAJORMINOR@.la: $(libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasevideo_@GST_MAJORMINOR@_la_DEPENDENCIES) +libgstbasevideo-@GST_MAJORMINOR@.la: $(libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasevideo_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstbasevideo_@GST_MAJORMINOR@_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstbasevideo_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstbasevideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbasevideo_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -635,62 +672,79 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo: gstbasevideoutils.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo `test -f 'gstbasevideoutils.c' || echo '$(srcdir)/'`gstbasevideoutils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasevideoutils.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo `test -f 'gstbasevideoutils.c' || echo '$(srcdir)/'`gstbasevideoutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo: gstbasevideocodec.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo `test -f 'gstbasevideocodec.c' || echo '$(srcdir)/'`gstbasevideocodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasevideocodec.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasevideocodec.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo `test -f 'gstbasevideocodec.c' || echo '$(srcdir)/'`gstbasevideocodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideocodec.lo `test -f 'gstbasevideocodec.c' || echo '$(srcdir)/'`gstbasevideocodec.c + +libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo: gstbasevideoutils.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo `test -f 'gstbasevideoutils.c' || echo '$(srcdir)/'`gstbasevideoutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasevideoutils.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoutils.lo `test -f 'gstbasevideoutils.c' || echo '$(srcdir)/'`gstbasevideoutils.c libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo: gstbasevideodecoder.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasevideodecoder.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasevideodecoder.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo: gstbasevideoencoder.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo `test -f 'gstbasevideoencoder.c' || echo '$(srcdir)/'`gstbasevideoencoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasevideoencoder.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasevideoencoder.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo `test -f 'gstbasevideoencoder.c' || echo '$(srcdir)/'`gstbasevideoencoder.c + +libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.lo: gstsurfacebuffer.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.lo `test -f 'gstsurfacebuffer.c' || echo '$(srcdir)/'`gstsurfacebuffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsurfacebuffer.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstbasevideoencoder.lo `test -f 'gstbasevideoencoder.c' || echo '$(srcdir)/'`gstbasevideoencoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfacebuffer.lo `test -f 'gstsurfacebuffer.c' || echo '$(srcdir)/'`gstsurfacebuffer.c + +libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo: gstsurfaceconverter.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo `test -f 'gstsurfaceconverter.c' || echo '$(srcdir)/'`gstsurfaceconverter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsurfaceconverter.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-gstsurfaceconverter.lo `test -f 'gstsurfaceconverter.c' || echo '$(srcdir)/'`gstsurfaceconverter.c + +libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo: videocontext.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) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo -MD -MP -MF $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.Tpo -c -o libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo `test -f 'videocontext.c' || echo '$(srcdir)/'`videocontext.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.Tpo $(DEPDIR)/libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videocontext.c' object='libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideo_@GST_MAJORMINOR@_la-videocontext.lo `test -f 'videocontext.c' || echo '$(srcdir)/'`videocontext.c mostlyclean-libtool: -rm -f *.lo @@ -714,9 +768,7 @@ uninstall-libgstbasevideo_@GST_MAJORMINOR@includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgstbasevideo_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstbasevideo_@GST_MAJORMINOR@includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstbasevideo_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstbasevideo_@GST_MAJORMINOR@includedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstbasevideo_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -817,10 +869,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/video/gstbasevideocodec.c b/gst-libs/gst/video/gstbasevideocodec.c index 1b7d784..ee162be 100644 --- a/gst-libs/gst/video/gstbasevideocodec.c +++ b/gst-libs/gst/video/gstbasevideocodec.c @@ -1,4 +1,4 @@ -/* Schrodinger +/* GStreamer * Copyright (C) 2006 David Schleef * * This library is free software; you can redistribute it and/or @@ -42,15 +42,8 @@ enum static void gst_base_video_codec_finalize (GObject * object); -//static const GstQueryType *gst_base_video_codec_get_query_types (GstPad *pad); -//static gboolean gst_base_video_codec_src_query (GstPad *pad, GstQuery *query); -//static gboolean gst_base_video_codec_sink_query (GstPad *pad, GstQuery *query); -//static gboolean gst_base_video_codec_src_event (GstPad *pad, GstEvent *event); -//static gboolean gst_base_video_codec_sink_event (GstPad *pad, GstEvent *event); static GstStateChangeReturn gst_base_video_codec_change_state (GstElement * element, GstStateChange transition); -//static GstFlowReturn gst_base_video_codec_push_all (GstBaseVideoCodec *base_video_codec, -// gboolean at_eos); GST_BOILERPLATE (GstBaseVideoCodec, gst_base_video_codec, GstElement, @@ -84,15 +77,13 @@ gst_base_video_codec_init (GstBaseVideoCodec * base_video_codec, { GstPadTemplate *pad_template; - GST_DEBUG ("gst_base_video_codec_init"); + GST_DEBUG_OBJECT (base_video_codec, "gst_base_video_codec_init"); pad_template = gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink"); g_return_if_fail (pad_template != NULL); base_video_codec->sinkpad = gst_pad_new_from_template (pad_template, "sink"); - //gst_pad_set_query_function (base_video_codec->sinkpad, - // gst_base_video_codec_sink_query); gst_element_add_pad (GST_ELEMENT (base_video_codec), base_video_codec->sinkpad); @@ -106,6 +97,7 @@ gst_base_video_codec_init (GstBaseVideoCodec * base_video_codec, gst_segment_init (&base_video_codec->segment, GST_FORMAT_TIME); + g_static_rec_mutex_init (&base_video_codec->stream_lock); } static void @@ -113,376 +105,34 @@ gst_base_video_codec_reset (GstBaseVideoCodec * base_video_codec) { GList *g; - GST_DEBUG ("reset"); + GST_DEBUG_OBJECT (base_video_codec, "reset"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_codec); for (g = base_video_codec->frames; g; g = g_list_next (g)) { gst_base_video_codec_free_frame ((GstVideoFrame *) g->data); } g_list_free (base_video_codec->frames); + base_video_codec->frames = NULL; - if (base_video_codec->caps) { - gst_caps_unref (base_video_codec->caps); - base_video_codec->caps = NULL; - } + base_video_codec->bytes = 0; + base_video_codec->time = 0; + gst_buffer_replace (&base_video_codec->state.codec_data, NULL); + gst_caps_replace (&base_video_codec->state.caps, NULL); + memset (&base_video_codec->state, 0, sizeof (GstVideoState)); + base_video_codec->state.format = GST_VIDEO_FORMAT_UNKNOWN; + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_codec); } static void gst_base_video_codec_finalize (GObject * object) { - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -#ifdef unused -static const GstQueryType * -gst_base_video_codec_get_query_types (GstPad * pad) -{ - static const GstQueryType query_types[] = { - GST_QUERY_POSITION, - GST_QUERY_DURATION, - GST_QUERY_CONVERT, - 0 - }; - - return query_types; -} -#endif - -#if 0 -static gboolean -gst_base_video_codec_src_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) -{ - gboolean res; - GstBaseVideoCodec *dec; - - if (src_format == *dest_format) { - *dest_value = src_value; - return TRUE; - } - - dec = GST_BASE_VIDEO_CODEC (gst_pad_get_parent (pad)); - - if (src_format == GST_FORMAT_DEFAULT && *dest_format == GST_FORMAT_TIME) { - if (dec->fps_d != 0) { - *dest_value = gst_util_uint64_scale (granulepos_to_frame (src_value), - dec->fps_d * GST_SECOND, dec->fps_n); - res = TRUE; - } else { - res = FALSE; - } - } else { - GST_WARNING ("unhandled conversion from %d to %d", src_format, - *dest_format); - res = FALSE; - } - - gst_object_unref (dec); - - return res; -} - -static gboolean -gst_base_video_codec_sink_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) -{ - gboolean res = TRUE; - GstBaseVideoCodec *dec; - - if (src_format == *dest_format) { - *dest_value = src_value; - return TRUE; - } - - dec = GST_BASE_VIDEO_CODEC (gst_pad_get_parent (pad)); - - /* FIXME: check if we are in a decoding state */ - - switch (src_format) { - case GST_FORMAT_DEFAULT: - switch (*dest_format) { - case GST_FORMAT_TIME: - *dest_value = gst_util_uint64_scale (src_value, - dec->fps_d * GST_SECOND, dec->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, - dec->fps_n, dec->fps_d * GST_SECOND); - break; - } - default: - res = FALSE; - break; - } - break; - default: - res = FALSE; - break; - } - - gst_object_unref (dec); - - return res; -} -#endif - -#ifdef unused -static gboolean -gst_base_video_codec_src_query (GstPad * pad, GstQuery * query) -{ - GstBaseVideoCodec *base_codec; - gboolean res = FALSE; - - base_codec = GST_BASE_VIDEO_CODEC (gst_pad_get_parent (pad)); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_POSITION: - { - GstFormat format; - gint64 time; - gint64 value; - - gst_query_parse_position (query, &format, NULL); - - time = gst_util_uint64_scale (base_codec->system_frame_number, - base_codec->state.fps_n, base_codec->state.fps_d); - time += base_codec->state.segment.time; - GST_DEBUG ("query position %" GST_TIME_FORMAT, GST_TIME_ARGS (time)); - res = gst_base_video_encoded_video_convert (&base_codec->state, - GST_FORMAT_TIME, time, &format, &value); - if (!res) - goto error; - - gst_query_set_position (query, format, value); - break; - } - case GST_QUERY_DURATION: - res = gst_pad_query (GST_PAD_PEER (base_codec->sinkpad), query); - if (!res) - goto error; - break; - case GST_QUERY_CONVERT: - { - GstFormat src_fmt, dest_fmt; - gint64 src_val, dest_val; - - GST_DEBUG ("query convert"); - - gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); - res = gst_base_video_encoded_video_convert (&base_codec->state, - 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); - break; - } -done: - gst_object_unref (base_codec); - - return res; -error: - GST_DEBUG_OBJECT (base_codec, "query failed"); - goto done; -} -#endif - -#ifdef unused -static gboolean -gst_base_video_codec_sink_query (GstPad * pad, GstQuery * query) -{ - GstBaseVideoCodec *base_video_codec; - gboolean res = FALSE; - - base_video_codec = GST_BASE_VIDEO_CODEC (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_base_video_encoded_video_convert (&base_video_codec->state, - 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); - break; - } -done: - gst_object_unref (base_video_codec); - - return res; -error: - GST_DEBUG_OBJECT (base_video_codec, "query failed"); - goto done; -} -#endif + GstBaseVideoCodec *base_video_codec = GST_BASE_VIDEO_CODEC (object); -#ifdef unused -static gboolean -gst_base_video_codec_src_event (GstPad * pad, GstEvent * event) -{ - GstBaseVideoCodec *base_video_codec; - gboolean res = FALSE; - - base_video_codec = GST_BASE_VIDEO_CODEC (gst_pad_get_parent (pad)); - - 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); - gst_event_unref (event); - - tformat = GST_FORMAT_TIME; - res = gst_base_video_encoded_video_convert (&base_video_codec->state, - format, cur, &tformat, &tcur); - if (!res) - goto convert_error; - res = gst_base_video_encoded_video_convert (&base_video_codec->state, - format, stop, &tformat, &tstop); - if (!res) - goto convert_error; - - real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME, - flags, cur_type, tcur, stop_type, tstop); - - res = gst_pad_push_event (base_video_codec->sinkpad, real_seek); + g_static_rec_mutex_free (&base_video_codec->stream_lock); - break; - } -#if 0 - case GST_EVENT_QOS: - { - gdouble proportion; - GstClockTimeDiff diff; - GstClockTime timestamp; - - gst_event_parse_qos (event, &proportion, &diff, ×tamp); - - GST_OBJECT_LOCK (base_video_codec); - base_video_codec->proportion = proportion; - base_video_codec->earliest_time = timestamp + diff; - GST_OBJECT_UNLOCK (base_video_codec); - - GST_DEBUG_OBJECT (base_video_codec, - "got QoS %" GST_TIME_FORMAT ", %" G_GINT64_FORMAT, - GST_TIME_ARGS (timestamp), diff); - - res = gst_pad_push_event (base_video_codec->sinkpad, event); - break; - } -#endif - default: - res = gst_pad_push_event (base_video_codec->sinkpad, event); - break; - } -done: - gst_object_unref (base_video_codec); - return res; - -convert_error: - GST_DEBUG_OBJECT (base_video_codec, "could not convert format"); - goto done; -} -#endif - -#ifdef unused -static gboolean -gst_base_video_codec_sink_event (GstPad * pad, GstEvent * event) -{ - GstBaseVideoCodec *base_video_codec; - gboolean ret = FALSE; - - base_video_codec = GST_BASE_VIDEO_CODEC (gst_pad_get_parent (pad)); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_FLUSH_START: - ret = gst_pad_push_event (base_video_codec->srcpad, event); - break; - case GST_EVENT_FLUSH_STOP: - gst_base_video_codec_reset (base_video_codec); - ret = gst_pad_push_event (base_video_codec->srcpad, event); - break; - case GST_EVENT_EOS: - if (gst_base_video_codec_push_all (base_video_codec, - FALSE) == GST_FLOW_ERROR) { - gst_event_unref (event); - return FALSE; - } - - ret = gst_pad_push_event (base_video_codec->srcpad, event); - break; - case GST_EVENT_NEWSEGMENT: - { - gboolean update; - GstFormat format; - gdouble rate; - gint64 start, stop, time; - - gst_event_parse_new_segment (event, &update, &rate, &format, &start, - &stop, &time); - - if (format != GST_FORMAT_TIME) - goto newseg_wrong_format; - - if (rate <= 0.0) - goto newseg_wrong_rate; - - GST_DEBUG ("newsegment %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, - GST_TIME_ARGS (start), GST_TIME_ARGS (time)); - gst_segment_set_newsegment (&base_video_codec->state.segment, update, - rate, format, start, stop, time); - - ret = gst_pad_push_event (base_video_codec->srcpad, event); - break; - } - default: - ret = gst_pad_push_event (base_video_codec->srcpad, event); - break; - } -done: - gst_object_unref (base_video_codec); - return ret; - -newseg_wrong_format: - GST_DEBUG_OBJECT (base_video_codec, "received non TIME newsegment"); - gst_event_unref (event); - goto done; - -newseg_wrong_rate: - GST_DEBUG_OBJECT (base_video_codec, "negative rates not supported"); - gst_event_unref (event); - goto done; + G_OBJECT_CLASS (parent_class)->finalize (object); } -#endif - static GstStateChangeReturn gst_base_video_codec_change_state (GstElement * element, @@ -525,10 +175,12 @@ gst_base_video_codec_new_frame (GstBaseVideoCodec * base_video_codec) { GstVideoFrame *frame; - frame = g_malloc0 (sizeof (GstVideoFrame)); + frame = g_slice_new0 (GstVideoFrame); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_codec); frame->system_frame_number = base_video_codec->system_frame_number; base_video_codec->system_frame_number++; + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_codec); return frame; } @@ -536,9 +188,21 @@ gst_base_video_codec_new_frame (GstBaseVideoCodec * base_video_codec) void gst_base_video_codec_free_frame (GstVideoFrame * frame) { + g_return_if_fail (frame != NULL); + if (frame->sink_buffer) { gst_buffer_unref (frame->sink_buffer); } - g_free (frame); + if (frame->src_buffer) { + gst_buffer_unref (frame->src_buffer); + } + + g_list_foreach (frame->events, (GFunc) gst_event_unref, NULL); + g_list_free (frame->events); + + if (frame->coder_hook_destroy_notify && frame->coder_hook) + frame->coder_hook_destroy_notify (frame->coder_hook); + + g_slice_free (GstVideoFrame, frame); } diff --git a/gst-libs/gst/video/gstbasevideocodec.h b/gst-libs/gst/video/gstbasevideocodec.h index 8ef4893..074537a 100644 --- a/gst-libs/gst/video/gstbasevideocodec.h +++ b/gst-libs/gst/video/gstbasevideocodec.h @@ -79,6 +79,9 @@ G_BEGIN_DECLS */ #define GST_BASE_VIDEO_CODEC_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS +#define GST_BASE_VIDEO_CODEC_STREAM_LOCK(codec) g_static_rec_mutex_lock (&GST_BASE_VIDEO_CODEC (codec)->stream_lock) +#define GST_BASE_VIDEO_CODEC_STREAM_UNLOCK(codec) g_static_rec_mutex_unlock (&GST_BASE_VIDEO_CODEC (codec)->stream_lock) + typedef struct _GstVideoState GstVideoState; typedef struct _GstVideoFrame GstVideoFrame; typedef struct _GstBaseVideoCodec GstBaseVideoCodec; @@ -86,6 +89,7 @@ typedef struct _GstBaseVideoCodecClass GstBaseVideoCodecClass; struct _GstVideoState { + GstCaps *caps; GstVideoFormat format; int width, height; int fps_n, fps_d; @@ -100,9 +104,6 @@ struct _GstVideoState int bytes_per_picture; - //GstSegment segment; - - int picture_number; GstBuffer *codec_data; }; @@ -128,9 +129,16 @@ struct _GstVideoFrame int n_fields; void *coder_hook; + GDestroyNotify coder_hook_destroy_notify; + GstClockTime deadline; gboolean force_keyframe; + gboolean force_keyframe_headers; + + /* Events that should be pushed downstream *before* + * the next src_buffer */ + GList *events; }; struct _GstBaseVideoCodec @@ -141,16 +149,23 @@ struct _GstBaseVideoCodec GstPad *sinkpad; GstPad *srcpad; + /* protects all data processing, i.e. is locked + * in the chain function, finish_frame and when + * processing serialized events */ + GStaticRecMutex stream_lock; + guint64 system_frame_number; - GList *frames; + GList *frames; /* Protected with OBJECT_LOCK */ GstVideoState state; GstSegment segment; - GstCaps *caps; - gdouble proportion; GstClockTime earliest_time; + gboolean discont; + + gint64 bytes; + gint64 time; /* FIXME before moving to base */ void *padding[GST_PADDING_LARGE]; @@ -160,15 +175,6 @@ struct _GstBaseVideoCodecClass { GstElementClass element_class; - gboolean (*start) (GstBaseVideoCodec *codec); - gboolean (*stop) (GstBaseVideoCodec *codec); - gboolean (*reset) (GstBaseVideoCodec *codec); - GstFlowReturn (*parse_data) (GstBaseVideoCodec *codec, gboolean at_eos); - int (*scan_for_sync) (GstAdapter *adapter, gboolean at_eos, - int offset, int n); - GstFlowReturn (*shape_output) (GstBaseVideoCodec *codec, GstVideoFrame *frame); - GstCaps *(*get_caps) (GstBaseVideoCodec *codec); - /* FIXME before moving to base */ void *padding[GST_PADDING_LARGE]; }; @@ -178,17 +184,6 @@ GType gst_base_video_codec_get_type (void); GstVideoFrame * gst_base_video_codec_new_frame (GstBaseVideoCodec *base_video_codec); void gst_base_video_codec_free_frame (GstVideoFrame *frame); - -gboolean gst_base_video_rawvideo_convert (GstVideoState *state, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 *dest_value); -gboolean gst_base_video_encoded_video_convert (GstVideoState *state, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 *dest_value); - -GstClockTime gst_video_state_get_timestamp (const GstVideoState *state, - GstSegment *segment, int frame_number); - G_END_DECLS #endif diff --git a/gst-libs/gst/video/gstbasevideodecoder.c b/gst-libs/gst/video/gstbasevideodecoder.c index cf3910f..f396ca0 100644 --- a/gst-libs/gst/video/gstbasevideodecoder.c +++ b/gst-libs/gst/video/gstbasevideodecoder.c @@ -1,5 +1,8 @@ /* GStreamer * Copyright (C) 2008 David Schleef + * Copyright (C) 2011 Mark Nauwelaerts . + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: Stefan Kost * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -17,11 +20,115 @@ * Boston, MA 02111-1307, USA. */ +/** + * SECTION:gstbasevideodecoder + * @short_description: Base class for video decoders + * @see_also: #GstBaseTransform + * + * This base class is for video decoders turning encoded data into raw video + * frames. + * + * GstBaseVideoDecoder and subclass should cooperate as follows. + * + * + * Configuration + * + * Initially, GstBaseVideoDecoder calls @start when the decoder element + * is activated, which allows subclass to perform any global setup. + * + * + * GstBaseVideoDecoder calls @set_format to inform subclass of caps + * describing input video data that it is about to receive, including + * possibly configuration data. + * While unlikely, it might be called more than once, if changing input + * parameters require reconfiguration. + * + * + * GstBaseVideoDecoder calls @stop at end of all processing. + * + * + * + * + * + * Data processing + * + * Base class gathers input data, and optionally allows subclass + * to parse this into subsequently manageable chunks, typically + * corresponding to and referred to as 'frames'. + * + * + * Input frame is provided to subclass' @handle_frame. + * + * + * If codec processing results in decoded data, subclass should call + * @gst_base_video_decoder_finish_frame to have decoded data pushed + * downstream. + * + * + * + * + * Shutdown phase + * + * GstBaseVideoDecoder class calls @stop to inform the subclass that data + * parsing will be stopped. + * + * + * + * + * + * Subclass is responsible for providing pad template caps for + * source and sink pads. The pads need to be named "sink" and "src". It also + * needs to set the fixed caps on srcpad, when the format is ensured. This + * is typically when base class calls subclass' @set_format function, though + * it might be delayed until calling @gst_base_video_decoder_finish_frame. + * + * Subclass is also responsible for providing (presentation) timestamps + * (likely based on corresponding input ones). If that is not applicable + * or possible, baseclass provides limited framerate based interpolation. + * + * Similarly, the baseclass provides some limited (legacy) seeking support + * (upon explicit subclass request), as full-fledged support + * should rather be left to upstream demuxer, parser or alike. This simple + * approach caters for seeking and duration reporting using estimated input + * bitrates. + * + * Baseclass provides some support for reverse playback, in particular + * in case incoming data is not packetized or upstream does not provide + * fragments on keyframe boundaries. However, subclass should then be prepared + * for the parsing and frame processing stage to occur separately (rather + * than otherwise the latter immediately following the former), + * and should ensure the parsing stage properly marks keyframes or rely on + * upstream to do so properly for incoming data. + * + * Things that subclass need to take care of: + * + * Provide pad templates + * + * Set source pad caps when appropriate + * + * + * Configure some baseclass behaviour parameters. + * + * + * Optionally parse input data, if it is not considered packetized. + * Parse sync is obtained either by providing baseclass with a + * mask and pattern or a custom @scan_for_sync. When sync is established, + * @parse_data should invoke @gst_base_video_decoder_add_to_frame and + * @gst_base_video_decoder_have_frame as appropriate. + * + * + * Accept data in @handle_frame and provide decoded results to + * @gst_base_video_decoder_finish_frame. + * + * + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "gstbasevideodecoder.h" +#include "gstbasevideoutils.h" #include @@ -40,18 +147,14 @@ static GstFlowReturn gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf); static gboolean gst_base_video_decoder_sink_query (GstPad * pad, GstQuery * query); -//static GstFlowReturn gst_base_video_decoder_process (GstBaseVideoDecoder *base_video_decoder); static GstStateChangeReturn gst_base_video_decoder_change_state (GstElement * element, GstStateChange transition); static const GstQueryType *gst_base_video_decoder_get_query_types (GstPad * pad); static gboolean gst_base_video_decoder_src_query (GstPad * pad, GstQuery * query); -static gboolean gst_base_video_decoder_src_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, GstFormat * dest_format, - gint64 * dest_value); static void gst_base_video_decoder_reset (GstBaseVideoDecoder * - base_video_decoder); + base_video_decoder, gboolean full); static GstFlowReturn gst_base_video_decoder_have_frame_2 (GstBaseVideoDecoder * base_video_decoder); @@ -66,7 +169,8 @@ static guint64 gst_base_video_decoder_get_field_duration (GstBaseVideoDecoder * base_video_decoder, int n_fields); static GstVideoFrame *gst_base_video_decoder_new_frame (GstBaseVideoDecoder * base_video_decoder); -static void gst_base_video_decoder_free_frame (GstVideoFrame * frame); + +static void gst_base_video_decoder_clear_queues (GstBaseVideoDecoder * dec); GST_BOILERPLATE (GstBaseVideoDecoder, gst_base_video_decoder, GstBaseVideoCodec, GST_TYPE_BASE_VIDEO_CODEC); @@ -90,9 +194,8 @@ gst_base_video_decoder_class_init (GstBaseVideoDecoderClass * klass) gobject_class->finalize = gst_base_video_decoder_finalize; - gstelement_class->change_state = gst_base_video_decoder_change_state; - - parent_class = g_type_class_peek_parent (klass); + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_base_video_decoder_change_state); } static void @@ -101,74 +204,127 @@ gst_base_video_decoder_init (GstBaseVideoDecoder * base_video_decoder, { GstPad *pad; - GST_DEBUG ("gst_base_video_decoder_init"); + GST_DEBUG_OBJECT (base_video_decoder, "gst_base_video_decoder_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_decoder); - gst_pad_set_chain_function (pad, gst_base_video_decoder_chain); - gst_pad_set_event_function (pad, gst_base_video_decoder_sink_event); - gst_pad_set_setcaps_function (pad, gst_base_video_decoder_sink_setcaps); - gst_pad_set_query_function (pad, gst_base_video_decoder_sink_query); + gst_pad_set_chain_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_chain)); + gst_pad_set_event_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_sink_event)); + gst_pad_set_setcaps_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_sink_setcaps)); + gst_pad_set_query_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_sink_query)); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder); - gst_pad_set_event_function (pad, gst_base_video_decoder_src_event); - gst_pad_set_query_type_function (pad, gst_base_video_decoder_get_query_types); - gst_pad_set_query_function (pad, gst_base_video_decoder_src_query); + gst_pad_set_event_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_src_event)); + gst_pad_set_query_type_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_get_query_types)); + gst_pad_set_query_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_decoder_src_query)); gst_pad_use_fixed_caps (pad); base_video_decoder->input_adapter = gst_adapter_new (); base_video_decoder->output_adapter = gst_adapter_new (); - gst_base_video_decoder_reset (base_video_decoder); - - base_video_decoder->current_frame = - gst_base_video_decoder_new_frame (base_video_decoder); + gst_base_video_decoder_reset (base_video_decoder, TRUE); base_video_decoder->sink_clipping = TRUE; } static gboolean +gst_base_video_decoder_push_src_event (GstBaseVideoDecoder * decoder, + GstEvent * event) +{ + /* Forward non-serialized events and EOS/FLUSH_STOP immediately. + * For EOS this is required because no buffer or serialized event + * will come after EOS and nothing could trigger another + * _finish_frame() call. * + * If the subclass handles sending of EOS manually it can return + * _DROPPED from ::finish() and all other subclasses should have + * decoded/flushed all remaining data before this + * + * For FLUSH_STOP this is required because it is expected + * to be forwarded immediately and no buffers are queued anyway. + */ + if (!GST_EVENT_IS_SERIALIZED (event) + || GST_EVENT_TYPE (event) == GST_EVENT_EOS + || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) + return gst_pad_push_event (decoder->base_video_codec.srcpad, event); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (decoder); + decoder->current_frame_events = + g_list_prepend (decoder->current_frame_events, event); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (decoder); + + return TRUE; +} + +static gboolean gst_base_video_decoder_sink_setcaps (GstPad * pad, GstCaps * caps) { GstBaseVideoDecoder *base_video_decoder; GstBaseVideoDecoderClass *base_video_decoder_class; GstStructure *structure; const GValue *codec_data; - GstVideoState *state; + GstVideoState state; gboolean ret = TRUE; base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); - GST_DEBUG ("setcaps %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (base_video_decoder, "setcaps %" GST_PTR_FORMAT, caps); - state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); - if (state->codec_data) { - gst_buffer_unref (state->codec_data); - } - memset (state, 0, sizeof (GstVideoState)); + memset (&state, 0, sizeof (state)); + + state.caps = gst_caps_ref (caps); structure = gst_caps_get_structure (caps, 0); - gst_video_format_parse_caps (caps, NULL, &state->width, &state->height); - gst_video_parse_caps_framerate (caps, &state->fps_n, &state->fps_d); - gst_video_parse_caps_pixel_aspect_ratio (caps, &state->par_n, &state->par_d); + gst_video_format_parse_caps (caps, NULL, &state.width, &state.height); + /* this one fails if no framerate in caps */ + if (!gst_video_parse_caps_framerate (caps, &state.fps_n, &state.fps_d)) { + state.fps_n = 0; + state.fps_d = 1; + } + /* but the p-a-r sets 1/1 instead, which is not quite informative ... */ + if (!gst_structure_has_field (structure, "pixel-aspect-ratio") || + !gst_video_parse_caps_pixel_aspect_ratio (caps, + &state.par_n, &state.par_d)) { + state.par_n = 0; + state.par_d = 1; + } - state->have_interlaced = - gst_video_format_parse_caps_interlaced (caps, &state->interlaced); + state.have_interlaced = + gst_video_format_parse_caps_interlaced (caps, &state.interlaced); codec_data = gst_structure_get_value (structure, "codec_data"); if (codec_data && G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER) { - state->codec_data = gst_value_get_buffer (codec_data); + state.codec_data = GST_BUFFER (gst_value_dup_mini_object (codec_data)); + } + + if (base_video_decoder_class->set_format) { + ret = base_video_decoder_class->set_format (base_video_decoder, &state); } - if (base_video_decoder_class->start) { - ret = base_video_decoder_class->start (base_video_decoder); + if (ret) { + gst_buffer_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)-> + state.codec_data, NULL); + gst_caps_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state.caps, + NULL); + GST_BASE_VIDEO_CODEC (base_video_decoder)->state = state; + } else { + gst_buffer_replace (&state.codec_data, NULL); + gst_caps_replace (&state.caps, NULL); } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); g_object_unref (base_video_decoder); return ret; @@ -181,7 +337,7 @@ gst_base_video_decoder_finalize (GObject * object) base_video_decoder = GST_BASE_VIDEO_DECODER (object); - gst_base_video_decoder_reset (base_video_decoder); + GST_DEBUG_OBJECT (object, "finalize"); if (base_video_decoder->input_adapter) { g_object_unref (base_video_decoder->input_adapter); @@ -192,11 +348,46 @@ gst_base_video_decoder_finalize (GObject * object) base_video_decoder->output_adapter = NULL; } - GST_DEBUG_OBJECT (object, "finalize"); - G_OBJECT_CLASS (parent_class)->finalize (object); } +/* hard == FLUSH, otherwise discont */ +static GstFlowReturn +gst_base_video_decoder_flush (GstBaseVideoDecoder * dec, gboolean hard) +{ + GstBaseVideoDecoderClass *klass; + GstFlowReturn ret = GST_FLOW_OK; + + klass = GST_BASE_VIDEO_DECODER_GET_CLASS (dec); + + GST_LOG_OBJECT (dec, "flush hard %d", hard); + + /* Inform subclass */ + /* FIXME ? only if hard, or tell it if hard ? */ + if (klass->reset) + klass->reset (dec); + + /* FIXME make some more distinction between hard and soft, + * but subclass may not be prepared for that */ + /* FIXME perhaps also clear pending frames ?, + * but again, subclass may still come up with one of those */ + if (!hard) { + /* TODO ? finish/drain some stuff */ + } else { + gst_segment_init (&GST_BASE_VIDEO_CODEC (dec)->segment, + GST_FORMAT_UNDEFINED); + gst_base_video_decoder_clear_queues (dec); + dec->error_count = 0; + g_list_foreach (dec->current_frame_events, (GFunc) gst_event_unref, NULL); + g_list_free (dec->current_frame_events); + dec->current_frame_events = NULL; + } + /* and get (re)set for the sequel */ + gst_base_video_decoder_reset (dec, FALSE); + + return ret; +} + static gboolean gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event) { @@ -208,12 +399,17 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event) base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); + GST_DEBUG_OBJECT (base_video_decoder, + "received event %d, %s", GST_EVENT_TYPE (event), + GST_EVENT_TYPE_NAME (event)); + switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: { - if (!base_video_decoder->packetized) { - GstFlowReturn flow_ret; + GstFlowReturn flow_ret; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + if (!base_video_decoder->packetized) { do { flow_ret = base_video_decoder_class->parse_data (base_video_decoder, TRUE); @@ -221,69 +417,91 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event) } if (base_video_decoder_class->finish) { - base_video_decoder_class->finish (base_video_decoder); + flow_ret = base_video_decoder_class->finish (base_video_decoder); + } else { + flow_ret = GST_FLOW_OK; } - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - event); - } + if (flow_ret == GST_FLOW_OK) + ret = gst_base_video_decoder_push_src_event (base_video_decoder, event); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); break; + } case GST_EVENT_NEWSEGMENT: { gboolean update; - double rate; - double applied_rate; + double rate, arate; GstFormat format; gint64 start; gint64 stop; - gint64 position; + gint64 pos; GstSegment *segment = &GST_BASE_VIDEO_CODEC (base_video_decoder)->segment; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); gst_event_parse_new_segment_full (event, &update, &rate, - &applied_rate, &format, &start, &stop, &position); - - if (format != GST_FORMAT_TIME) - goto newseg_wrong_format; + &arate, &format, &start, &stop, &pos); + + if (format == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (base_video_decoder, + "received TIME NEW_SEGMENT %" GST_TIME_FORMAT + " -- %" GST_TIME_FORMAT ", pos %" GST_TIME_FORMAT + ", rate %g, applied_rate %g", + GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (pos), + rate, arate); + } else { + GstFormat dformat = GST_FORMAT_TIME; + + GST_DEBUG_OBJECT (base_video_decoder, + "received NEW_SEGMENT %" G_GINT64_FORMAT + " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT + ", rate %g, applied_rate %g", start, stop, pos, rate, arate); + /* handle newsegment as a result from our legacy simple seeking */ + /* note that initial 0 should convert to 0 in any case */ + if (base_video_decoder->do_byte_time && + gst_pad_query_convert (GST_BASE_VIDEO_CODEC_SINK_PAD + (base_video_decoder), GST_FORMAT_BYTES, start, &dformat, + &start)) { + /* best attempt convert */ + /* as these are only estimates, stop is kept open-ended to avoid + * premature cutting */ + GST_DEBUG_OBJECT (base_video_decoder, + "converted to TIME start %" GST_TIME_FORMAT, + GST_TIME_ARGS (start)); + pos = start; + stop = GST_CLOCK_TIME_NONE; + /* replace event */ + gst_event_unref (event); + event = gst_event_new_new_segment_full (update, rate, arate, + GST_FORMAT_TIME, start, stop, pos); + } else { + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + goto newseg_wrong_format; + } + } if (!update) { - gst_base_video_decoder_reset (base_video_decoder); + gst_base_video_decoder_flush (base_video_decoder, FALSE); } base_video_decoder->timestamp_offset = start; gst_segment_set_newsegment_full (segment, - update, rate, applied_rate, format, start, stop, position); - base_video_decoder->have_segment = TRUE; - - GST_DEBUG_OBJECT (base_video_decoder, - "new segment: format %d rate %g start %" GST_TIME_FORMAT - " stop %" GST_TIME_FORMAT - " position %" GST_TIME_FORMAT - " update %d", - format, rate, - GST_TIME_ARGS (segment->start), - GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time), update); + update, rate, arate, format, start, stop, pos); - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - event); - } + ret = gst_base_video_decoder_push_src_event (base_video_decoder, event); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); break; - case GST_EVENT_FLUSH_STOP:{ - GST_OBJECT_LOCK (base_video_decoder); - GST_BASE_VIDEO_CODEC (base_video_decoder)->earliest_time = - GST_CLOCK_TIME_NONE; - GST_BASE_VIDEO_CODEC (base_video_decoder)->proportion = 0.5; - gst_segment_init (&GST_BASE_VIDEO_CODEC (base_video_decoder)->segment, - GST_FORMAT_TIME); - GST_OBJECT_UNLOCK (base_video_decoder); + } + case GST_EVENT_FLUSH_STOP: + { + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + /* well, this is kind of worse than a DISCONT */ + gst_base_video_decoder_flush (base_video_decoder, TRUE); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); } default: /* FIXME this changes the order of events */ - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - event); + ret = gst_base_video_decoder_push_src_event (base_video_decoder, event); break; } @@ -299,6 +517,76 @@ newseg_wrong_format: } } +/* perform upstream byte <-> time conversion (duration, seeking) + * if subclass allows and if enough data for moderately decent conversion */ +static inline gboolean +gst_base_video_decoder_do_byte (GstBaseVideoDecoder * dec) +{ + GstBaseVideoCodec *codec = GST_BASE_VIDEO_CODEC (dec); + + return dec->do_byte_time && (codec->bytes > 0) && (codec->time > GST_SECOND); +} + +static gboolean +gst_base_video_decoder_do_seek (GstBaseVideoDecoder * dec, GstEvent * event) +{ + GstBaseVideoCodec *codec = GST_BASE_VIDEO_CODEC (dec); + GstSeekFlags flags; + GstSeekType start_type, end_type; + GstFormat format; + gdouble rate; + gint64 start, start_time, end_time; + GstSegment seek_segment; + guint32 seqnum; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, + &start_time, &end_type, &end_time); + + /* we'll handle plain open-ended flushing seeks with the simple approach */ + if (rate != 1.0) { + GST_DEBUG_OBJECT (dec, "unsupported seek: rate"); + return FALSE; + } + + if (start_type != GST_SEEK_TYPE_SET) { + GST_DEBUG_OBJECT (dec, "unsupported seek: start time"); + return FALSE; + } + + if (end_type != GST_SEEK_TYPE_NONE || + (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) { + GST_DEBUG_OBJECT (dec, "unsupported seek: end time"); + return FALSE; + } + + if (!(flags & GST_SEEK_FLAG_FLUSH)) { + GST_DEBUG_OBJECT (dec, "unsupported seek: not flushing"); + return FALSE; + } + + memcpy (&seek_segment, &codec->segment, sizeof (seek_segment)); + gst_segment_set_seek (&seek_segment, rate, format, flags, start_type, + start_time, end_type, end_time, NULL); + start_time = seek_segment.last_stop; + + format = GST_FORMAT_BYTES; + if (!gst_pad_query_convert (codec->sinkpad, GST_FORMAT_TIME, start_time, + &format, &start)) { + GST_DEBUG_OBJECT (dec, "conversion failed"); + return FALSE; + } + + seqnum = gst_event_get_seqnum (event); + event = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, -1); + gst_event_set_seqnum (event, seqnum); + + GST_DEBUG_OBJECT (dec, "seeking to %" GST_TIME_FORMAT " at byte offset %" + G_GINT64_FORMAT, GST_TIME_ARGS (start_time), start); + + return gst_pad_push_event (codec->sinkpad, event); +} + static gboolean gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event) { @@ -307,42 +595,54 @@ gst_base_video_decoder_src_event (GstPad * pad, GstEvent * event) base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); + GST_DEBUG_OBJECT (base_video_decoder, + "received event %d, %s", GST_EVENT_TYPE (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 = -1, tstop = -1; - - GST_DEBUG ("seek event"); - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, - &cur, &stop_type, &stop); - gst_event_unref (event); + gint64 tcur, tstop; + guint32 seqnum; + + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); + seqnum = gst_event_get_seqnum (event); + + /* upstream gets a chance first */ + if ((res = + gst_pad_push_event (GST_BASE_VIDEO_CODEC_SINK_PAD + (base_video_decoder), event))) + break; + + /* if upstream fails for a time seek, maybe we can help if allowed */ + if (format == GST_FORMAT_TIME) { + if (gst_base_video_decoder_do_byte (base_video_decoder)) + res = gst_base_video_decoder_do_seek (base_video_decoder, event); + break; + } + /* ... though a non-time seek can be aided as well */ + /* First bring the requested format to time */ tformat = GST_FORMAT_TIME; - res = - gst_base_video_decoder_src_convert (pad, format, cur, &tformat, - &tcur); - if (!res) + if (!(res = gst_pad_query_convert (pad, format, cur, &tformat, &tcur))) goto convert_error; - res = - gst_base_video_decoder_src_convert (pad, format, stop, &tformat, - &tstop); - if (!res) + if (!(res = gst_pad_query_convert (pad, format, stop, &tformat, &tstop))) goto convert_error; - real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME, + /* then seek with time on the peer */ + event = gst_event_new_seek (rate, GST_FORMAT_TIME, flags, cur_type, tcur, stop_type, tstop); + gst_event_set_seqnum (event, seqnum); res = gst_pad_push_event (GST_BASE_VIDEO_CODEC_SINK_PAD - (base_video_decoder), real_seek); - + (base_video_decoder), event); break; } case GST_EVENT_QOS: @@ -401,117 +701,6 @@ convert_error: goto done; } - -#if 0 -static gboolean -gst_base_video_decoder_sink_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) -{ - gboolean res = TRUE; - GstBaseVideoDecoder *enc; - - if (src_format == *dest_format) { - *dest_value = src_value; - return TRUE; - } - - enc = GST_BASE_VIDEO_DECODER (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 - -static gboolean -gst_base_video_decoder_src_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) -{ - gboolean res = TRUE; - GstBaseVideoDecoder *enc; - - if (src_format == *dest_format) { - *dest_value = src_value; - return TRUE; - } - - enc = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); - - /* FIXME: check if we are in a encoding state */ - - GST_DEBUG ("src convert"); - switch (src_format) { -#if 0 - 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; -#endif - default: - res = FALSE; - break; - } - - gst_object_unref (enc); - - return res; -} - static const GstQueryType * gst_base_video_decoder_get_query_types (GstPad * pad) { @@ -528,39 +717,74 @@ gst_base_video_decoder_get_query_types (GstPad * pad) static gboolean gst_base_video_decoder_src_query (GstPad * pad, GstQuery * query) { - GstBaseVideoDecoder *enc; + GstBaseVideoDecoder *dec; gboolean res = TRUE; - enc = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); + dec = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); - switch GST_QUERY_TYPE - (query) { + GST_LOG_OBJECT (dec, "handling query: %" GST_PTR_FORMAT, query); + + switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION: { GstFormat format; - gint64 time; - - gst_query_parse_position (query, &format, NULL); - GST_DEBUG ("query in format %d", format); - - if (format != GST_FORMAT_TIME) { - goto error; + gint64 time, value; + + /* upstream gets a chance first */ + if ((res = + gst_pad_peer_query (GST_BASE_VIDEO_CODEC_SINK_PAD (dec), + query))) { + GST_LOG_OBJECT (dec, "returning peer response"); + break; } - time = enc->last_timestamp; - time = - gst_segment_to_stream_time (&GST_BASE_VIDEO_CODEC (enc)->segment, + /* we start from the last seen time */ + time = dec->last_timestamp; + /* correct for the segment values */ + time = gst_segment_to_stream_time (&GST_BASE_VIDEO_CODEC (dec)->segment, GST_FORMAT_TIME, time); - gst_query_set_position (query, format, time); + GST_LOG_OBJECT (dec, + "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time)); - res = TRUE; + /* and convert to the final format */ + gst_query_parse_position (query, &format, NULL); + if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time, + &format, &value))) + break; + + gst_query_set_position (query, format, value); + GST_LOG_OBJECT (dec, + "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value, + format); break; } case GST_QUERY_DURATION: { - res = gst_pad_peer_query (enc->base_video_codec.sinkpad, query); + GstFormat format; + + /* upstream in any case */ + if ((res = gst_pad_query_default (pad, query))) + break; + + gst_query_parse_duration (query, &format, NULL); + /* try answering TIME by converting from BYTE if subclass allows */ + if (format == GST_FORMAT_TIME && gst_base_video_decoder_do_byte (dec)) { + gint64 value; + + format = GST_FORMAT_BYTES; + if (gst_pad_query_peer_duration (GST_BASE_VIDEO_CODEC_SINK_PAD (dec), + &format, &value)) { + GST_LOG_OBJECT (dec, "upstream size %" G_GINT64_FORMAT, value); + format = GST_FORMAT_TIME; + if (gst_pad_query_convert (GST_BASE_VIDEO_CODEC_SINK_PAD (dec), + GST_FORMAT_BYTES, value, &format, &value)) { + gst_query_set_duration (query, GST_FORMAT_TIME, value); + res = TRUE; + } + } + } break; } case GST_QUERY_CONVERT: @@ -568,12 +792,11 @@ gst_base_video_decoder_src_query (GstPad * pad, GstQuery * query) GstFormat src_fmt, dest_fmt; gint64 src_val, dest_val; - GST_DEBUG ("convert query"); + GST_DEBUG_OBJECT (dec, "convert query"); gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); - res = - gst_base_video_decoder_src_convert (pad, src_fmt, src_val, &dest_fmt, - &dest_val); + res = gst_base_video_rawvideo_convert (&GST_BASE_VIDEO_CODEC (dec)->state, + 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); @@ -581,13 +804,13 @@ gst_base_video_decoder_src_query (GstPad * pad, GstQuery * query) } default: res = gst_pad_query_default (pad, query); - } - gst_object_unref (enc); + } + gst_object_unref (dec); return res; error: - GST_ERROR_OBJECT (enc, "query failed"); - gst_object_unref (enc); + GST_ERROR_OBJECT (dec, "query failed"); + gst_object_unref (dec); return res; } @@ -599,19 +822,19 @@ gst_base_video_decoder_sink_query (GstPad * pad, GstQuery * query) base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); - GST_DEBUG_OBJECT (base_video_decoder, "sink query fps=%d/%d", - GST_BASE_VIDEO_CODEC (base_video_decoder)->state.fps_n, - GST_BASE_VIDEO_CODEC (base_video_decoder)->state.fps_d); + GST_LOG_OBJECT (base_video_decoder, "handling query: %" GST_PTR_FORMAT, + query); + switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CONVERT: { + GstBaseVideoCodec *codec = GST_BASE_VIDEO_CODEC (base_video_decoder); 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_base_video_rawvideo_convert (&GST_BASE_VIDEO_CODEC - (base_video_decoder)->state, src_fmt, src_val, &dest_fmt, &dest_val); + res = gst_base_video_encoded_video_convert (&codec->state, codec->bytes, + codec->time, 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); @@ -630,25 +853,6 @@ error: goto done; } - -#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 - typedef struct _Timestamp Timestamp; struct _Timestamp { @@ -665,7 +869,8 @@ gst_base_video_decoder_add_timestamp (GstBaseVideoDecoder * base_video_decoder, ts = g_malloc (sizeof (Timestamp)); - GST_DEBUG ("adding timestamp %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, + GST_LOG_OBJECT (base_video_decoder, + "adding timestamp %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, GST_TIME_ARGS (base_video_decoder->input_offset), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer))); @@ -703,120 +908,92 @@ gst_base_video_decoder_get_timestamp_at_offset (GstBaseVideoDecoder * } } - GST_DEBUG ("got timestamp %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, + GST_LOG_OBJECT (base_video_decoder, + "got timestamp %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, GST_TIME_ARGS (offset), GST_TIME_ARGS (*timestamp)); } static void -gst_base_video_decoder_reset (GstBaseVideoDecoder * base_video_decoder) +gst_base_video_decoder_clear_queues (GstBaseVideoDecoder * dec) { - GstBaseVideoDecoderClass *base_video_decoder_class; + g_list_foreach (dec->queued, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->queued); + dec->queued = NULL; + g_list_foreach (dec->gather, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->gather); + dec->gather = NULL; + g_list_foreach (dec->decode, (GFunc) gst_base_video_codec_free_frame, NULL); + g_list_free (dec->decode); + dec->decode = NULL; + g_list_foreach (dec->parse, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->parse); + dec->parse = NULL; + g_list_foreach (dec->parse_gather, (GFunc) gst_base_video_codec_free_frame, + NULL); + g_list_free (dec->parse_gather); + dec->parse_gather = NULL; +} - base_video_decoder_class = - GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); +static void +gst_base_video_decoder_reset (GstBaseVideoDecoder * base_video_decoder, + gboolean full) +{ + GST_DEBUG_OBJECT (base_video_decoder, "reset full %d", full); - GST_DEBUG ("reset"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); - base_video_decoder->started = FALSE; + if (full) { + gst_segment_init (&GST_BASE_VIDEO_CODEC (base_video_decoder)->segment, + GST_FORMAT_UNDEFINED); + gst_base_video_decoder_clear_queues (base_video_decoder); + base_video_decoder->error_count = 0; + } - base_video_decoder->discont = TRUE; + GST_BASE_VIDEO_CODEC (base_video_decoder)->discont = TRUE; base_video_decoder->have_sync = FALSE; base_video_decoder->timestamp_offset = GST_CLOCK_TIME_NONE; - GST_BASE_VIDEO_CODEC (base_video_decoder)->system_frame_number = 0; - base_video_decoder->presentation_frame_number = 0; - base_video_decoder->base_picture_number = 0; + base_video_decoder->field_index = 0; base_video_decoder->last_timestamp = GST_CLOCK_TIME_NONE; base_video_decoder->input_offset = 0; base_video_decoder->frame_offset = 0; - - /* This function could be called from finalize() */ - if (base_video_decoder->input_adapter) { - gst_adapter_clear (base_video_decoder->input_adapter); - } - if (base_video_decoder->output_adapter) { - gst_adapter_clear (base_video_decoder->output_adapter); - } - //gst_segment_init (&base_video_decoder->segment, GST_FORMAT_TIME); + gst_adapter_clear (base_video_decoder->input_adapter); + gst_adapter_clear (base_video_decoder->output_adapter); + g_list_foreach (base_video_decoder->timestamps, (GFunc) g_free, NULL); + g_list_free (base_video_decoder->timestamps); + base_video_decoder->timestamps = NULL; if (base_video_decoder->current_frame) { - gst_base_video_decoder_free_frame (base_video_decoder->current_frame); + gst_base_video_codec_free_frame (base_video_decoder->current_frame); base_video_decoder->current_frame = NULL; } + base_video_decoder->dropped = 0; + base_video_decoder->processed = 0; + + GST_BASE_VIDEO_CODEC (base_video_decoder)->system_frame_number = 0; + base_video_decoder->base_picture_number = 0; + GST_OBJECT_LOCK (base_video_decoder); GST_BASE_VIDEO_CODEC (base_video_decoder)->earliest_time = GST_CLOCK_TIME_NONE; GST_BASE_VIDEO_CODEC (base_video_decoder)->proportion = 0.5; GST_OBJECT_UNLOCK (base_video_decoder); - - if (base_video_decoder_class->reset) { - base_video_decoder_class->reset (base_video_decoder); - } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); } static GstFlowReturn -gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) +gst_base_video_decoder_chain_forward (GstBaseVideoDecoder * base_video_decoder, + GstBuffer * buf) { - GstBaseVideoDecoder *base_video_decoder; GstBaseVideoDecoderClass *klass; GstFlowReturn ret; - GST_DEBUG ("chain %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " size %d", - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), - GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), GST_BUFFER_SIZE (buf)); - -#if 0 - /* requiring the pad to be negotiated makes it impossible to use - * oggdemux or filesrc ! decoder */ - if (!gst_pad_is_negotiated (pad)) { - GST_DEBUG ("not negotiated"); - return GST_FLOW_NOT_NEGOTIATED; - } -#endif - - base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); klass = GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); - GST_DEBUG_OBJECT (base_video_decoder, "chain"); - - if (!base_video_decoder->have_segment) { - GstEvent *event; - GstFlowReturn ret; - - GST_WARNING_OBJECT (base_video_decoder, - "Received buffer without a new-segment. Assuming timestamps start from 0."); - - gst_segment_set_newsegment_full (&GST_BASE_VIDEO_CODEC - (base_video_decoder)->segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0, - GST_CLOCK_TIME_NONE, 0); - base_video_decoder->have_segment = TRUE; - - event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, - GST_CLOCK_TIME_NONE, 0); - - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - event); - if (!ret) { -#if 0 - /* Other base classes tend to ignore the return value */ - GST_ERROR ("new segment event ret=%d", ret); - return GST_FLOW_ERROR; -#endif - } - } - - if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT))) { - GST_DEBUG_OBJECT (base_video_decoder, "received DISCONT buffer"); - gst_base_video_decoder_reset (base_video_decoder); - } - - if (!base_video_decoder->started) { - klass->start (base_video_decoder); - base_video_decoder->started = TRUE; - } + g_return_val_if_fail (base_video_decoder->packetized || klass->parse_data, + GST_FLOW_ERROR); if (base_video_decoder->current_frame == NULL) { base_video_decoder->current_frame = @@ -828,18 +1005,12 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) } base_video_decoder->input_offset += GST_BUFFER_SIZE (buf); -#if 0 - if (base_video_decoder->timestamp_offset == GST_CLOCK_TIME_NONE && - GST_BUFFER_TIMESTAMP (buf) != GST_CLOCK_TIME_NONE) { - GST_DEBUG ("got new offset %" GST_TIME_FORMAT, - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - base_video_decoder->timestamp_offset = GST_BUFFER_TIMESTAMP (buf); - } -#endif - if (base_video_decoder->packetized) { base_video_decoder->current_frame->sink_buffer = buf; + if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) + base_video_decoder->current_frame->is_sync_point = TRUE; + ret = gst_base_video_decoder_have_frame_2 (base_video_decoder); } else { @@ -848,7 +1019,7 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) if (!base_video_decoder->have_sync) { int n, m; - GST_DEBUG ("no sync, scanning"); + GST_DEBUG_OBJECT (base_video_decoder, "no sync, scanning"); n = gst_adapter_available (base_video_decoder->input_adapter); if (klass->capture_mask != 0) { @@ -860,21 +1031,22 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) m = 0; } if (m == -1) { - GST_ERROR ("scan returned no sync"); + GST_ERROR_OBJECT (base_video_decoder, "scan returned no sync"); gst_adapter_flush (base_video_decoder->input_adapter, n - 3); - gst_object_unref (base_video_decoder); return GST_FLOW_OK; } else { if (m > 0) { if (m >= n) { - GST_ERROR ("subclass scanned past end %d >= %d", m, n); + GST_ERROR_OBJECT (base_video_decoder, + "subclass scanned past end %d >= %d", m, n); } gst_adapter_flush (base_video_decoder->input_adapter, m); if (m < n) { - GST_DEBUG ("found possible sync after %d bytes (of %d)", m, n); + GST_DEBUG_OBJECT (base_video_decoder, + "found possible sync after %d bytes (of %d)", m, n); /* this is only "maybe" sync */ base_video_decoder->have_sync = TRUE; @@ -889,76 +1061,296 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) } while (ret == GST_FLOW_OK); if (ret == GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA) { - gst_object_unref (base_video_decoder); return GST_FLOW_OK; } } - gst_object_unref (base_video_decoder); return ret; } -static GstStateChangeReturn -gst_base_video_decoder_change_state (GstElement * element, - GstStateChange transition) +static GstFlowReturn +gst_base_video_decoder_flush_decode (GstBaseVideoDecoder * dec) { - GstBaseVideoDecoder *base_video_decoder; - GstBaseVideoDecoderClass *base_video_decoder_class; - GstStateChangeReturn ret; + GstFlowReturn res = GST_FLOW_OK; + GList *walk; - base_video_decoder = GST_BASE_VIDEO_DECODER (element); - base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (element); + walk = dec->decode; - switch (transition) { - default: - break; - } + GST_DEBUG_OBJECT (dec, "flushing buffers to decode"); - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + /* clear buffer and decoder state */ + gst_base_video_decoder_flush (dec, FALSE); - switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_READY: - if (base_video_decoder_class->stop) { - base_video_decoder_class->stop (base_video_decoder); - } - gst_segment_init (&GST_BASE_VIDEO_CODEC (base_video_decoder)->segment, - GST_FORMAT_TIME); - g_list_foreach (base_video_decoder->timestamps, (GFunc) g_free, NULL); - g_list_free (base_video_decoder->timestamps); - base_video_decoder->timestamps = NULL; - break; - default: - break; - } + /* signal have_frame it should not capture frames */ + dec->process = TRUE; - return ret; -} + while (walk) { + GList *next; + GstVideoFrame *frame = (GstVideoFrame *) (walk->data); + GstBuffer *buf = frame->sink_buffer; -static void -gst_base_video_decoder_free_frame (GstVideoFrame * frame) -{ - g_return_if_fail (frame != NULL); + GST_DEBUG_OBJECT (dec, "decoding frame %p, ts %" GST_TIME_FORMAT, + buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - if (frame->sink_buffer) { - gst_buffer_unref (frame->sink_buffer); - } - if (frame->src_buffer) { - gst_buffer_unref (frame->src_buffer); + next = g_list_next (walk); + if (dec->current_frame) + gst_base_video_codec_free_frame (dec->current_frame); + dec->current_frame = frame; + /* decode buffer, resulting data prepended to queue */ + res = gst_base_video_decoder_have_frame_2 (dec); + + walk = next; } - g_free (frame); + dec->process = FALSE; + + return res; } -static GstVideoFrame * -gst_base_video_decoder_new_frame (GstBaseVideoDecoder * base_video_decoder) +static GstFlowReturn +gst_base_video_decoder_flush_parse (GstBaseVideoDecoder * dec) { - GstVideoFrame *frame; + GstFlowReturn res = GST_FLOW_OK; + GList *walk; + + walk = dec->parse; + + GST_DEBUG_OBJECT (dec, "flushing buffers to parsing"); + + /* clear buffer and decoder state */ + gst_base_video_decoder_flush (dec, FALSE); + + while (walk) { + GList *next; + GstBuffer *buf = GST_BUFFER_CAST (walk->data); + + GST_DEBUG_OBJECT (dec, "parsing buffer %p, ts %" GST_TIME_FORMAT, + buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + + next = g_list_next (walk); + /* parse buffer, resulting frames prepended to parse_gather queue */ + gst_buffer_ref (buf); + res = gst_base_video_decoder_chain_forward (dec, buf); + + /* if we generated output, we can discard the buffer, else we + * keep it in the queue */ + if (dec->parse_gather) { + GST_DEBUG_OBJECT (dec, "parsed buffer to %p", dec->parse_gather->data); + dec->parse = g_list_delete_link (dec->parse, walk); + gst_buffer_unref (buf); + } else { + GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping"); + } + walk = next; + } + + /* now we can process frames */ + GST_DEBUG_OBJECT (dec, "checking frames"); + while (dec->parse_gather) { + GstVideoFrame *frame; + + frame = (GstVideoFrame *) (dec->parse_gather->data); + /* remove from the gather list */ + dec->parse_gather = + g_list_delete_link (dec->parse_gather, dec->parse_gather); + /* copy to decode queue */ + dec->decode = g_list_prepend (dec->decode, frame); + + /* if we copied a keyframe, flush and decode the decode queue */ + if (frame->is_sync_point) { + GST_DEBUG_OBJECT (dec, "copied keyframe"); + res = gst_base_video_decoder_flush_decode (dec); + } + } + + /* now send queued data downstream */ + while (dec->queued) { + GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data); + + if (G_LIKELY (res == GST_FLOW_OK)) { + GST_DEBUG_OBJECT (dec, "pushing buffer %p of size %u, " + "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf, + GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + /* should be already, but let's be sure */ + buf = gst_buffer_make_metadata_writable (buf); + /* avoid stray DISCONT from forward processing, + * which have no meaning in reverse pushing */ + GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT); + res = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (dec), buf); + } else { + gst_buffer_unref (buf); + } + + dec->queued = g_list_delete_link (dec->queued, dec->queued); + } + + return res; +} + +static GstFlowReturn +gst_base_video_decoder_chain_reverse (GstBaseVideoDecoder * dec, + GstBuffer * buf) +{ + GstFlowReturn result = GST_FLOW_OK; + + /* if we have a discont, move buffers to the decode list */ + if (!buf || GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) { + GST_DEBUG_OBJECT (dec, "received discont"); + while (dec->gather) { + GstBuffer *gbuf; + + gbuf = GST_BUFFER_CAST (dec->gather->data); + /* remove from the gather list */ + dec->gather = g_list_delete_link (dec->gather, dec->gather); + /* copy to parse queue */ + dec->parse = g_list_prepend (dec->parse, gbuf); + } + /* parse and decode stuff in the parse queue */ + gst_base_video_decoder_flush_parse (dec); + } + + if (G_LIKELY (buf)) { + GST_DEBUG_OBJECT (dec, "gathering buffer %p of size %u, " + "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf, + GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + /* add buffer to gather queue */ + dec->gather = g_list_prepend (dec->gather, buf); + } + + return result; +} + +static GstFlowReturn +gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) +{ + GstBaseVideoDecoder *base_video_decoder; + GstFlowReturn ret = GST_FLOW_OK; - frame = g_malloc0 (sizeof (GstVideoFrame)); + base_video_decoder = GST_BASE_VIDEO_DECODER (GST_PAD_PARENT (pad)); - frame->system_frame_number = - GST_BASE_VIDEO_CODEC (base_video_decoder)->system_frame_number; - GST_BASE_VIDEO_CODEC (base_video_decoder)->system_frame_number++; + GST_LOG_OBJECT (base_video_decoder, + "chain %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " size %d", + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), GST_BUFFER_SIZE (buf)); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + + /* NOTE: + * requiring the pad to be negotiated makes it impossible to use + * oggdemux or filesrc ! decoder */ + + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.format == + GST_FORMAT_UNDEFINED) { + GstEvent *event; + GstFlowReturn ret; + + GST_WARNING_OBJECT (base_video_decoder, + "Received buffer without a new-segment. " + "Assuming timestamps start from 0."); + + gst_segment_set_newsegment_full (&GST_BASE_VIDEO_CODEC + (base_video_decoder)->segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0, + GST_CLOCK_TIME_NONE, 0); + + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, + GST_CLOCK_TIME_NONE, 0); + + ret = gst_base_video_decoder_push_src_event (base_video_decoder, event); + if (!ret) { + GST_ERROR_OBJECT (base_video_decoder, "new segment event ret=%d", ret); + ret = GST_FLOW_ERROR; + goto done; + } + } + + if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT))) { + gint64 ts, index; + + GST_DEBUG_OBJECT (base_video_decoder, "received DISCONT buffer"); + + /* track present position */ + ts = base_video_decoder->timestamp_offset; + index = base_video_decoder->field_index; + + gst_base_video_decoder_flush (base_video_decoder, FALSE); + + /* buffer may claim DISCONT loudly, if it can't tell us where we are now, + * we'll stick to where we were ... + * Particularly useful/needed for upstream BYTE based */ + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.rate > 0.0 && + !GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + GST_DEBUG_OBJECT (base_video_decoder, + "... but restoring previous ts tracking"); + base_video_decoder->timestamp_offset = ts; + base_video_decoder->field_index = index & ~1; + } + } + + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.rate > 0.0) + ret = gst_base_video_decoder_chain_forward (base_video_decoder, buf); + else + ret = gst_base_video_decoder_chain_reverse (base_video_decoder, buf); + +done: + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + return ret; +} + +static GstStateChangeReturn +gst_base_video_decoder_change_state (GstElement * element, + GstStateChange transition) +{ + GstBaseVideoDecoder *base_video_decoder; + GstBaseVideoDecoderClass *base_video_decoder_class; + GstStateChangeReturn ret; + + base_video_decoder = GST_BASE_VIDEO_DECODER (element); + base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + if (base_video_decoder_class->start) { + base_video_decoder_class->start (base_video_decoder); + } + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + if (base_video_decoder_class->stop) { + base_video_decoder_class->stop (base_video_decoder); + } + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + gst_base_video_decoder_reset (base_video_decoder, TRUE); + g_list_foreach (base_video_decoder->current_frame_events, + (GFunc) gst_event_unref, NULL); + g_list_free (base_video_decoder->current_frame_events); + base_video_decoder->current_frame_events = NULL; + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + break; + default: + break; + } + + return ret; +} + +static GstVideoFrame * +gst_base_video_decoder_new_frame (GstBaseVideoDecoder * base_video_decoder) +{ + GstVideoFrame *frame; + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + frame = + gst_base_video_codec_new_frame (GST_BASE_VIDEO_CODEC + (base_video_decoder)); frame->decode_frame_number = frame->system_frame_number - base_video_decoder->reorder_depth; @@ -968,28 +1360,56 @@ gst_base_video_decoder_new_frame (GstBaseVideoDecoder * base_video_decoder) frame->presentation_duration = GST_CLOCK_TIME_NONE; frame->n_fields = 2; + frame->events = base_video_decoder->current_frame_events; + base_video_decoder->current_frame_events = NULL; + + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + return frame; } -GstFlowReturn -gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, - GstVideoFrame * frame) +static void +gst_base_video_decoder_prepare_finish_frame (GstBaseVideoDecoder * + base_video_decoder, GstVideoFrame * frame) { - GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - GstBuffer *src_buffer; + GList *l, *events = NULL; - GST_DEBUG ("finish frame"); - GST_DEBUG ("n %d in %d out %d", +#ifndef GST_DISABLE_GST_DEBUG + GST_LOG_OBJECT (base_video_decoder, "n %d in %d out %d", g_list_length (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames), gst_adapter_available (base_video_decoder->input_adapter), gst_adapter_available (base_video_decoder->output_adapter)); +#endif - GST_DEBUG ("finish frame sync=%d pts=%" GST_TIME_FORMAT, frame->is_sync_point, + GST_LOG_OBJECT (base_video_decoder, + "finish frame sync=%d pts=%" GST_TIME_FORMAT, frame->is_sync_point, GST_TIME_ARGS (frame->presentation_timestamp)); + /* Push all pending events that arrived before this frame */ + for (l = base_video_decoder->base_video_codec.frames; l; l = l->next) { + GstVideoFrame *tmp = l->data; + + if (tmp->events) { + events = tmp->events; + tmp->events = NULL; + } + + if (tmp == frame) + break; + } + + for (l = g_list_last (events); l; l = l->prev) { + GST_LOG_OBJECT (base_video_decoder, "pushing %s event", + GST_EVENT_TYPE_NAME (l->data)); + gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), + l->data); + } + g_list_free (events); + if (GST_CLOCK_TIME_IS_VALID (frame->presentation_timestamp)) { if (frame->presentation_timestamp != base_video_decoder->timestamp_offset) { - GST_DEBUG ("sync timestamp %" GST_TIME_FORMAT " diff %" GST_TIME_FORMAT, + GST_DEBUG_OBJECT (base_video_decoder, + "sync timestamp %" GST_TIME_FORMAT " diff %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->presentation_timestamp), GST_TIME_ARGS (frame->presentation_timestamp - GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.start)); @@ -998,15 +1418,17 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, } else { /* This case is for one initial timestamp and no others, e.g., * filesrc ! decoder ! xvimagesink */ - GST_WARNING ("sync timestamp didn't change, ignoring"); + GST_WARNING_OBJECT (base_video_decoder, + "sync timestamp didn't change, ignoring"); frame->presentation_timestamp = GST_CLOCK_TIME_NONE; } } else { if (frame->is_sync_point) { - GST_WARNING ("sync point doesn't have timestamp"); + GST_WARNING_OBJECT (base_video_decoder, + "sync point doesn't have timestamp"); if (!GST_CLOCK_TIME_IS_VALID (base_video_decoder->timestamp_offset)) { - GST_WARNING - ("No base timestamp. Assuming frames start at segment start"); + GST_WARNING_OBJECT (base_video_decoder, + "No base timestamp. Assuming frames start at segment start"); base_video_decoder->timestamp_offset = GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.start; base_video_decoder->field_index &= 1; @@ -1033,12 +1455,118 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, if (GST_CLOCK_TIME_IS_VALID (base_video_decoder->last_timestamp)) { if (frame->presentation_timestamp < base_video_decoder->last_timestamp) { - GST_WARNING ("decreasing timestamp (%" GST_TIME_FORMAT " < %" + GST_WARNING_OBJECT (base_video_decoder, + "decreasing timestamp (%" GST_TIME_FORMAT " < %" GST_TIME_FORMAT ")", GST_TIME_ARGS (frame->presentation_timestamp), GST_TIME_ARGS (base_video_decoder->last_timestamp)); } } base_video_decoder->last_timestamp = frame->presentation_timestamp; +} + +static void +gst_base_video_decoder_do_finish_frame (GstBaseVideoDecoder * dec, + GstVideoFrame * frame) +{ + GST_BASE_VIDEO_CODEC (dec)->frames = + g_list_remove (GST_BASE_VIDEO_CODEC (dec)->frames, frame); + + if (frame->src_buffer) + gst_buffer_unref (frame->src_buffer); + + gst_base_video_codec_free_frame (frame); +} + +/** + * gst_base_video_decoder_drop_frame: + * @dec: a #GstBaseVideoDecoder + * @frame: the #GstVideoFrame to drop + * + * Similar to gst_base_video_decoder_finish_frame(), but drops @frame in any + * case and posts a QoS message with the frame's details on the bus. + * In any case, the frame is considered finished and released. + * + * Returns: a #GstFlowReturn, usually GST_FLOW_OK. + * + * Since: 0.10.23 + */ +GstFlowReturn +gst_base_video_decoder_drop_frame (GstBaseVideoDecoder * dec, + GstVideoFrame * frame) +{ + GstClockTime stream_time, jitter, earliest_time, qostime, timestamp; + GstSegment *segment; + GstMessage *qos_msg; + gdouble proportion; + + GST_LOG_OBJECT (dec, "drop frame"); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (dec); + + gst_base_video_decoder_prepare_finish_frame (dec, frame); + + GST_DEBUG_OBJECT (dec, "dropping frame %" GST_TIME_FORMAT, + GST_TIME_ARGS (frame->presentation_timestamp)); + + dec->dropped++; + + /* post QoS message */ + timestamp = frame->presentation_timestamp; + proportion = GST_BASE_VIDEO_CODEC (dec)->proportion; + segment = &GST_BASE_VIDEO_CODEC (dec)->segment; + stream_time = + gst_segment_to_stream_time (segment, GST_FORMAT_TIME, timestamp); + qostime = gst_segment_to_running_time (segment, GST_FORMAT_TIME, timestamp); + earliest_time = GST_BASE_VIDEO_CODEC (dec)->earliest_time; + jitter = GST_CLOCK_DIFF (qostime, earliest_time); + qos_msg = gst_message_new_qos (GST_OBJECT_CAST (dec), FALSE, + qostime, stream_time, timestamp, GST_CLOCK_TIME_NONE); + gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000); + gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS, + dec->processed, dec->dropped); + gst_element_post_message (GST_ELEMENT_CAST (dec), qos_msg); + + /* now free the frame */ + gst_base_video_decoder_do_finish_frame (dec, frame); + + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (dec); + + return GST_FLOW_OK; +} + +/** + * gst_base_video_decoder_finish_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * @frame: a decoded #GstVideoFrame + * + * @frame should have a valid decoded data buffer, whose metadata fields + * are then appropriately set according to frame data and pushed downstream. + * If no output data is provided, @frame is considered skipped. + * In any case, the frame is considered finished and released. + * + * Returns: a #GstFlowReturn resulting from sending data downstream + */ +GstFlowReturn +gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, + GstVideoFrame * frame) +{ + GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + GstBuffer *src_buffer; + GstFlowReturn ret = GST_FLOW_OK; + + GST_LOG_OBJECT (base_video_decoder, "finish frame"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + + gst_base_video_decoder_prepare_finish_frame (base_video_decoder, frame); + + base_video_decoder->processed++; + + /* no buffer data means this frame is skipped */ + if (!frame->src_buffer) { + GST_DEBUG_OBJECT (base_video_decoder, "skipping frame %" GST_TIME_FORMAT, + GST_TIME_ARGS (frame->presentation_timestamp)); + goto done; + } src_buffer = gst_buffer_make_metadata_writable (frame->src_buffer); frame->src_buffer = NULL; @@ -1063,9 +1591,9 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, GST_BUFFER_FLAG_SET (src_buffer, GST_VIDEO_BUFFER_ONEFIELD); } } - if (base_video_decoder->discont) { + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->discont) { GST_BUFFER_FLAG_SET (src_buffer, GST_BUFFER_FLAG_DISCONT); - base_video_decoder->discont = FALSE; + GST_BASE_VIDEO_CODEC (base_video_decoder)->discont = FALSE; } GST_BUFFER_TIMESTAMP (src_buffer) = frame->presentation_timestamp; @@ -1073,17 +1601,24 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, GST_BUFFER_OFFSET (src_buffer) = GST_BUFFER_OFFSET_NONE; GST_BUFFER_OFFSET_END (src_buffer) = GST_BUFFER_OFFSET_NONE; - GST_DEBUG ("pushing frame %" GST_TIME_FORMAT, - GST_TIME_ARGS (frame->presentation_timestamp)); - - GST_BASE_VIDEO_CODEC (base_video_decoder)->frames = - g_list_remove (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames, frame); + /* update rate estimate */ + GST_BASE_VIDEO_CODEC (base_video_decoder)->bytes += + GST_BUFFER_SIZE (src_buffer); + if (GST_CLOCK_TIME_IS_VALID (frame->presentation_duration)) { + GST_BASE_VIDEO_CODEC (base_video_decoder)->time += + frame->presentation_duration; + } else { + /* better none than nothing valid */ + GST_BASE_VIDEO_CODEC (base_video_decoder)->time = GST_CLOCK_TIME_NONE; + } - gst_base_video_decoder_set_src_caps (base_video_decoder); gst_buffer_set_caps (src_buffer, GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder))); - gst_base_video_decoder_free_frame (frame); + GST_LOG_OBJECT (base_video_decoder, "pushing frame ts %" GST_TIME_FORMAT + ", duration %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (src_buffer)), + GST_TIME_ARGS (GST_BUFFER_DURATION (src_buffer))); if (base_video_decoder->sink_clipping) { gint64 start = GST_BUFFER_TIMESTAMP (src_buffer); @@ -1094,7 +1629,8 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, if (gst_segment_clip (segment, GST_FORMAT_TIME, start, stop, &start, &stop)) { GST_BUFFER_TIMESTAMP (src_buffer) = start; GST_BUFFER_DURATION (src_buffer) = stop - start; - GST_DEBUG ("accepting buffer inside segment: %" GST_TIME_FORMAT + GST_LOG_OBJECT (base_video_decoder, + "accepting buffer inside segment: %" GST_TIME_FORMAT " %" GST_TIME_FORMAT " seg %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT " time %" GST_TIME_FORMAT, @@ -1104,7 +1640,8 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time)); } else { - GST_DEBUG ("dropping buffer outside segment: %" GST_TIME_FORMAT + GST_LOG_OBJECT (base_video_decoder, + "dropping buffer outside segment: %" GST_TIME_FORMAT " %" GST_TIME_FORMAT " seg %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT " time %" GST_TIME_FORMAT, @@ -1114,119 +1651,52 @@ gst_base_video_decoder_finish_frame (GstBaseVideoDecoder * base_video_decoder, GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time)); gst_buffer_unref (src_buffer); - return GST_FLOW_OK; + ret = GST_FLOW_OK; + goto done; } } - return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - src_buffer); -} - -GstFlowReturn -gst_base_video_decoder_skip_frame (GstBaseVideoDecoder * base_video_decoder, - GstVideoFrame * frame) -{ - GST_DEBUG ("finish frame"); - GST_DEBUG ("finish frame sync=%d pts=%" GST_TIME_FORMAT, frame->is_sync_point, - GST_TIME_ARGS (frame->presentation_timestamp)); + /* we got data, so note things are looking up again */ + if (G_UNLIKELY (base_video_decoder->error_count)) + base_video_decoder->error_count--; - if (GST_CLOCK_TIME_IS_VALID (frame->presentation_timestamp)) { - if (frame->presentation_timestamp != base_video_decoder->timestamp_offset) { - GST_DEBUG ("sync timestamp %" GST_TIME_FORMAT " diff %" GST_TIME_FORMAT, - GST_TIME_ARGS (frame->presentation_timestamp), - GST_TIME_ARGS (frame->presentation_timestamp - - GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.start)); - base_video_decoder->timestamp_offset = frame->presentation_timestamp; - base_video_decoder->field_index = 0; - } else { - /* This case is for one initial timestamp and no others, e.g., - * filesrc ! decoder ! xvimagesink */ - GST_WARNING ("sync timestamp didn't change, ignoring"); - frame->presentation_timestamp = GST_CLOCK_TIME_NONE; - } + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.rate < 0.0) { + GST_LOG_OBJECT (base_video_decoder, "queued buffer"); + base_video_decoder->queued = + g_list_prepend (base_video_decoder->queued, src_buffer); } else { - if (frame->is_sync_point) { - GST_WARNING ("sync point doesn't have timestamp"); - if (GST_CLOCK_TIME_IS_VALID (base_video_decoder->timestamp_offset)) { - GST_WARNING - ("No base timestamp. Assuming frames start at segment start"); - base_video_decoder->timestamp_offset = - GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.start; - base_video_decoder->field_index = 0; - } - } - } - frame->field_index = base_video_decoder->field_index; - base_video_decoder->field_index += frame->n_fields; - - if (frame->presentation_timestamp == GST_CLOCK_TIME_NONE) { - frame->presentation_timestamp = - gst_base_video_decoder_get_field_timestamp (base_video_decoder, - frame->field_index); - frame->presentation_duration = GST_CLOCK_TIME_NONE; - frame->decode_timestamp = - gst_base_video_decoder_get_timestamp (base_video_decoder, - frame->decode_frame_number); - } - if (frame->presentation_duration == GST_CLOCK_TIME_NONE) { - frame->presentation_duration = - gst_base_video_decoder_get_field_duration (base_video_decoder, - frame->n_fields); + ret = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), + src_buffer); } - base_video_decoder->last_timestamp = frame->presentation_timestamp; - - GST_DEBUG ("skipping frame %" GST_TIME_FORMAT, - GST_TIME_ARGS (frame->presentation_timestamp)); - - GST_BASE_VIDEO_CODEC (base_video_decoder)->frames = - g_list_remove (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames, frame); - - gst_base_video_decoder_free_frame (frame); - - return GST_FLOW_OK; -} - -int -gst_base_video_decoder_get_height (GstBaseVideoDecoder * base_video_decoder) -{ - GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - - return state->height; -} - -int -gst_base_video_decoder_get_width (GstBaseVideoDecoder * base_video_decoder) -{ - GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - - return state->width; -} +done: -GstFlowReturn -gst_base_video_decoder_end_of_stream (GstBaseVideoDecoder * base_video_decoder, - GstBuffer * buffer) -{ + gst_base_video_decoder_do_finish_frame (base_video_decoder, frame); - if (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames) { - GST_DEBUG ("EOS with frames left over"); - } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); - return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), - buffer); + return ret; } +/** + * gst_base_video_decoder_finish_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * @n_bytes: an encoded #GstVideoFrame + * + * Removes next @n_bytes of input data and adds it to currently parsed frame. + */ void gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder * base_video_decoder, int n_bytes) { GstBuffer *buf; - GST_DEBUG ("add to frame"); + GST_LOG_OBJECT (base_video_decoder, "add %d bytes to frame", n_bytes); if (n_bytes == 0) return; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); if (gst_adapter_available (base_video_decoder->output_adapter) == 0) { base_video_decoder->frame_offset = base_video_decoder->input_offset - gst_adapter_available (base_video_decoder->input_adapter); @@ -1234,6 +1704,7 @@ gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder * base_video_decoder, buf = gst_adapter_take_buffer (base_video_decoder->input_adapter, n_bytes); gst_adapter_push (base_video_decoder->output_adapter, buf); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); } static guint64 @@ -1242,7 +1713,7 @@ gst_base_video_decoder_get_timestamp (GstBaseVideoDecoder * base_video_decoder, { GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - if (state->fps_d == 0) { + if (state->fps_d == 0 || state->fps_n == 0) { return -1; } if (picture_number < base_video_decoder->base_picture_number) { @@ -1263,11 +1734,11 @@ gst_base_video_decoder_get_field_timestamp (GstBaseVideoDecoder * { GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - if (state->fps_d == 0) { + if (state->fps_d == 0 || state->fps_n == 0) { return GST_CLOCK_TIME_NONE; } if (field_offset < 0) { - GST_WARNING ("field offset < 0"); + GST_WARNING_OBJECT (base_video_decoder, "field offset < 0"); return GST_CLOCK_TIME_NONE; } return base_video_decoder->timestamp_offset + @@ -1281,18 +1752,26 @@ gst_base_video_decoder_get_field_duration (GstBaseVideoDecoder * { GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - if (state->fps_d == 0) { + if (state->fps_d == 0 || state->fps_n == 0) { return GST_CLOCK_TIME_NONE; } if (n_fields < 0) { - GST_WARNING ("n_fields < 0"); + GST_WARNING_OBJECT (base_video_decoder, "n_fields < 0"); return GST_CLOCK_TIME_NONE; } return gst_util_uint64_scale (n_fields, state->fps_d * GST_SECOND, state->fps_n * 2); } - +/** + * gst_base_video_decoder_have_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Gathers all data collected for currently parsed frame, gathers corresponding + * metadata and passes it along for further processing, i.e. @handle_frame. + * + * Returns: a #GstFlowReturn + */ GstFlowReturn gst_base_video_decoder_have_frame (GstBaseVideoDecoder * base_video_decoder) { @@ -1300,8 +1779,11 @@ gst_base_video_decoder_have_frame (GstBaseVideoDecoder * base_video_decoder) int n_available; GstClockTime timestamp; GstClockTime duration; + GstFlowReturn ret = GST_FLOW_OK; + + GST_LOG_OBJECT (base_video_decoder, "have_frame"); - GST_DEBUG ("have_frame"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); n_available = gst_adapter_available (base_video_decoder->output_adapter); if (n_available) { @@ -1319,7 +1801,15 @@ gst_base_video_decoder_have_frame (GstBaseVideoDecoder * base_video_decoder) GST_BUFFER_TIMESTAMP (buffer) = timestamp; GST_BUFFER_DURATION (buffer) = duration; - return gst_base_video_decoder_have_frame_2 (base_video_decoder); + GST_LOG_OBJECT (base_video_decoder, "collected frame size %d, " + "ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, + n_available, GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration)); + + ret = gst_base_video_decoder_have_frame_2 (base_video_decoder); + + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + + return ret; } static GstFlowReturn @@ -1332,16 +1822,28 @@ gst_base_video_decoder_have_frame_2 (GstBaseVideoDecoder * base_video_decoder) base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); + g_return_val_if_fail (base_video_decoder_class->handle_frame != NULL, + GST_FLOW_ERROR); + + /* capture frames and queue for later processing */ + if (GST_BASE_VIDEO_CODEC (base_video_decoder)->segment.rate < 0.0 && + !base_video_decoder->process) { + base_video_decoder->parse_gather = + g_list_prepend (base_video_decoder->parse_gather, frame); + goto exit; + } + frame->distance_from_sync = base_video_decoder->distance_from_sync; base_video_decoder->distance_from_sync++; frame->presentation_timestamp = GST_BUFFER_TIMESTAMP (frame->sink_buffer); frame->presentation_duration = GST_BUFFER_DURATION (frame->sink_buffer); - GST_DEBUG ("pts %" GST_TIME_FORMAT, + GST_LOG_OBJECT (base_video_decoder, "pts %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->presentation_timestamp)); - GST_DEBUG ("dts %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->decode_timestamp)); - GST_DEBUG ("dist %d", frame->distance_from_sync); + GST_LOG_OBJECT (base_video_decoder, "dts %" GST_TIME_FORMAT, + GST_TIME_ARGS (frame->decode_timestamp)); + GST_LOG_OBJECT (base_video_decoder, "dist %d", frame->distance_from_sync); GST_BASE_VIDEO_CODEC (base_video_decoder)->frames = g_list_append (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames, frame); @@ -1354,9 +1856,11 @@ gst_base_video_decoder_have_frame_2 (GstBaseVideoDecoder * base_video_decoder) /* do something with frame */ ret = base_video_decoder_class->handle_frame (base_video_decoder, frame); if (ret != GST_FLOW_OK) { - GST_DEBUG ("flow error!"); + GST_DEBUG_OBJECT (base_video_decoder, "flow error %s", + gst_flow_get_name (ret)); } +exit: /* create new frame */ base_video_decoder->current_frame = gst_base_video_decoder_new_frame (base_video_decoder); @@ -1364,84 +1868,139 @@ gst_base_video_decoder_have_frame_2 (GstBaseVideoDecoder * base_video_decoder) return ret; } +/** + * gst_base_video_decoder_get_state: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Returns: #GstVideoState describing format of video data. + */ GstVideoState * gst_base_video_decoder_get_state (GstBaseVideoDecoder * base_video_decoder) { return &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; - -} - -void -gst_base_video_decoder_set_state (GstBaseVideoDecoder * base_video_decoder, - GstVideoState * state) -{ - memcpy (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state, - state, sizeof (*state)); - } +/** + * gst_base_video_decoder_lost_sync: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Advances out-of-sync input data by 1 byte and marks it accordingly. + */ void gst_base_video_decoder_lost_sync (GstBaseVideoDecoder * base_video_decoder) { g_return_if_fail (GST_IS_BASE_VIDEO_DECODER (base_video_decoder)); - GST_DEBUG ("lost_sync"); + GST_DEBUG_OBJECT (base_video_decoder, "lost_sync"); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); if (gst_adapter_available (base_video_decoder->input_adapter) >= 1) { gst_adapter_flush (base_video_decoder->input_adapter, 1); } base_video_decoder->have_sync = FALSE; + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); } +/* FIXME not quite exciting; get rid of this ? */ +/** + * gst_base_video_decoder_set_sync_point: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Marks current frame as a sync point, i.e. keyframe. + */ void gst_base_video_decoder_set_sync_point (GstBaseVideoDecoder * base_video_decoder) { - GST_DEBUG ("set_sync_point"); + GST_DEBUG_OBJECT (base_video_decoder, "set_sync_point"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); base_video_decoder->current_frame->is_sync_point = TRUE; base_video_decoder->distance_from_sync = 0; + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); } +/** + * gst_base_video_decoder_get_oldest_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Returns: oldest pending unfinished #GstVideoFrame. + */ GstVideoFrame * gst_base_video_decoder_get_oldest_frame (GstBaseVideoDecoder * base_video_decoder) { GList *g; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); g = g_list_first (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); if (g == NULL) return NULL; return (GstVideoFrame *) (g->data); } +/** + * gst_base_video_decoder_get_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * @frame_number: system_frame_number of a frame + * + * Returns: pending unfinished #GstVideoFrame identified by @frame_number. + */ GstVideoFrame * gst_base_video_decoder_get_frame (GstBaseVideoDecoder * base_video_decoder, int frame_number) { GList *g; + GstVideoFrame *frame = NULL; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); for (g = g_list_first (GST_BASE_VIDEO_CODEC (base_video_decoder)->frames); g; g = g_list_next (g)) { - GstVideoFrame *frame = g->data; + GstVideoFrame *tmp = g->data; if (frame->system_frame_number == frame_number) { - return frame; + frame = tmp; + break; } } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); - return NULL; + return frame; } -void +/** + * gst_base_video_decoder_set_src_caps: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Sets src pad caps according to currently configured #GstVideoState. + * + */ +gboolean gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder * base_video_decoder) { GstCaps *caps; GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + gboolean ret; - if (GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder)) != NULL) - return; + /* minimum sense */ + g_return_val_if_fail (state->format != GST_VIDEO_FORMAT_UNKNOWN, FALSE); + g_return_val_if_fail (state->width != 0, FALSE); + g_return_val_if_fail (state->height != 0, FALSE); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + + /* sanitize */ + if (state->fps_n == 0 || state->fps_d == 0) { + state->fps_n = 0; + state->fps_d = 1; + } + if (state->par_n == 0 || state->par_d == 0) { + state->par_n = 1; + state->par_d = 1; + } caps = gst_video_format_new_caps (state->format, state->width, state->height, @@ -1449,28 +2008,46 @@ gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder * base_video_decoder) gst_caps_set_simple (caps, "interlaced", G_TYPE_BOOLEAN, state->interlaced, NULL); - GST_DEBUG ("setting caps %" GST_PTR_FORMAT, caps); - - gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), caps); + GST_DEBUG_OBJECT (base_video_decoder, "setting caps %" GST_PTR_FORMAT, caps); + ret = + gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), + caps); gst_caps_unref (caps); + + /* arrange for derived info */ + state->bytes_per_picture = + gst_video_format_get_size (state->format, state->width, state->height); + + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + + return ret; } +/** + * gst_base_video_decoder_alloc_src_buffer: + * @base_video_decoder: a #GstBaseVideoDecoder + * + * Helper function that uses gst_pad_alloc_buffer_and_set_caps + * to allocate a buffer to hold a video frame for @base_video_decoder's + * current #GstVideoState. + * + * Returns: allocated buffer + */ GstBuffer * gst_base_video_decoder_alloc_src_buffer (GstBaseVideoDecoder * base_video_decoder) { GstBuffer *buffer; GstFlowReturn flow_ret; - int num_bytes; GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + int num_bytes = state->bytes_per_picture; - gst_base_video_decoder_set_src_caps (base_video_decoder); - - num_bytes = gst_video_format_get_size (state->format, state->width, - state->height); GST_DEBUG ("alloc src buffer caps=%" GST_PTR_FORMAT, GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder))); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); + flow_ret = gst_pad_alloc_buffer_and_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), GST_BUFFER_OFFSET_NONE, num_bytes, @@ -1483,21 +2060,37 @@ gst_base_video_decoder_alloc_src_buffer (GstBaseVideoDecoder * GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder))); } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); return buffer; } +/** + * gst_base_video_decoder_alloc_src_frame: + * @base_video_decoder: a #GstBaseVideoDecoder + * @frame: a #GstVideoFrame + * + * Helper function that uses gst_pad_alloc_buffer_and_set_caps + * to allocate a buffer to hold a video frame for @base_video_decoder's + * current #GstVideoState. Subclass should already have configured video state + * and set src pad caps. + * + * Returns: result from pad alloc call + */ GstFlowReturn gst_base_video_decoder_alloc_src_frame (GstBaseVideoDecoder * base_video_decoder, GstVideoFrame * frame) { GstFlowReturn flow_ret; - int num_bytes; GstVideoState *state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + int num_bytes = state->bytes_per_picture; + + g_return_val_if_fail (state->bytes_per_picture != 0, GST_FLOW_ERROR); + g_return_val_if_fail (GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD + (base_video_decoder)) != NULL, GST_FLOW_ERROR); - gst_base_video_decoder_set_src_caps (base_video_decoder); + GST_LOG_OBJECT (base_video_decoder, "alloc buffer size %d", num_bytes); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_decoder); - num_bytes = gst_video_format_get_size (state->format, state->width, - state->height); flow_ret = gst_pad_alloc_buffer_and_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder), GST_BUFFER_OFFSET_NONE, num_bytes, @@ -1505,12 +2098,27 @@ gst_base_video_decoder_alloc_src_frame (GstBaseVideoDecoder * &frame->src_buffer); if (flow_ret != GST_FLOW_OK) { - GST_WARNING ("failed to get buffer"); + GST_WARNING_OBJECT (base_video_decoder, "failed to get buffer %s", + gst_flow_get_name (flow_ret)); } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_decoder); + return flow_ret; } +/** + * gst_base_video_decoder_get_max_decode_time: + * @base_video_decoder: a #GstBaseVideoDecoder + * @frame: a #GstVideoFrame + * + * Determines maximum possible decoding time for @frame that will + * allow it to decode and arrive in time (as determined by QoS events). + * In particular, a negative result means decoding in time is no longer possible + * and should therefore occur as soon/skippy as possible. + * + * Returns: max decoding time. + */ GstClockTimeDiff gst_base_video_decoder_get_max_decode_time (GstBaseVideoDecoder * base_video_decoder, GstVideoFrame * frame) @@ -1518,21 +2126,59 @@ gst_base_video_decoder_get_max_decode_time (GstBaseVideoDecoder * GstClockTimeDiff deadline; GstClockTime earliest_time; + GST_OBJECT_LOCK (base_video_decoder); earliest_time = GST_BASE_VIDEO_CODEC (base_video_decoder)->earliest_time; if (GST_CLOCK_TIME_IS_VALID (earliest_time)) deadline = GST_CLOCK_DIFF (earliest_time, frame->deadline); else deadline = G_MAXINT64; + GST_LOG_OBJECT (base_video_decoder, "earliest %" GST_TIME_FORMAT + ", frame deadline %" GST_TIME_FORMAT ", deadline %" GST_TIME_FORMAT, + GST_TIME_ARGS (earliest_time), GST_TIME_ARGS (frame->deadline), + GST_TIME_ARGS (deadline)); + + GST_OBJECT_UNLOCK (base_video_decoder); + return deadline; } +/** + * gst_base_video_decoder_get_oldest_frame: + * @base_video_decoder_class: a #GstBaseVideoDecoderClass + * + * Sets the mask and pattern that will be scanned for to obtain parse sync. + * Note that a non-zero @mask implies that @scan_for_sync will be ignored. + * + */ void gst_base_video_decoder_class_set_capture_pattern (GstBaseVideoDecoderClass * base_video_decoder_class, guint32 mask, guint32 pattern) { g_return_if_fail (((~mask) & pattern) == 0); + GST_DEBUG ("capture mask %08x, pattern %08x", mask, pattern); + base_video_decoder_class->capture_mask = mask; base_video_decoder_class->capture_pattern = pattern; } + +GstFlowReturn +_gst_base_video_decoder_error (GstBaseVideoDecoder * dec, gint weight, + GQuark domain, gint code, gchar * txt, gchar * dbg, const gchar * file, + const gchar * function, gint line) +{ + if (txt) + GST_WARNING_OBJECT (dec, "error: %s", txt); + if (dbg) + GST_WARNING_OBJECT (dec, "error: %s", dbg); + dec->error_count += weight; + GST_BASE_VIDEO_CODEC (dec)->discont = TRUE; + if (dec->max_errors < dec->error_count) { + gst_element_message_full (GST_ELEMENT (dec), GST_MESSAGE_ERROR, + domain, code, txt, dbg, file, function, line); + return GST_FLOW_ERROR; + } else { + return GST_FLOW_OK; + } +} diff --git a/gst-libs/gst/video/gstbasevideodecoder.h b/gst-libs/gst/video/gstbasevideodecoder.h index ff3f9fe..a3b81fe 100644 --- a/gst-libs/gst/video/gstbasevideodecoder.h +++ b/gst-libs/gst/video/gstbasevideodecoder.h @@ -1,5 +1,8 @@ /* GStreamer * Copyright (C) 2008 David Schleef + * Copyright (C) 2011 Mark Nauwelaerts . + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: Stefan Kost * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -56,125 +59,221 @@ G_BEGIN_DECLS #define GST_BASE_VIDEO_DECODER_SRC_NAME "src" /** - * * GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA: - * * - * */ + * GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA: + * + * Returned while parsing to indicate more data is needed. + **/ #define GST_BASE_VIDEO_DECODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS +/** + * GST_BASE_VIDEO_DECODER_FLOW_DROPPED: + * + * Returned when the event/buffer should be dropped. + */ +#define GST_BASE_VIDEO_DECODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1 typedef struct _GstBaseVideoDecoder GstBaseVideoDecoder; typedef struct _GstBaseVideoDecoderClass GstBaseVideoDecoderClass; + +/* do not use this one, use macro below */ +GstFlowReturn _gst_base_video_decoder_error (GstBaseVideoDecoder *dec, gint weight, + GQuark domain, gint code, + gchar *txt, gchar *debug, + const gchar *file, const gchar *function, + gint line); + +/** + * GST_BASE_VIDEO_DECODER_ERROR: + * @el: the base video decoder element that generates the error + * @weight: element defined weight of the error, added to error count + * @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError) + * @code: error code defined for that domain (see #gstreamer-GstGError) + * @text: the message to display (format string and args enclosed in + * parentheses) + * @debug: debugging information for the message (format string and args + * enclosed in parentheses) + * @ret: variable to receive return value + * + * Utility function that audio decoder elements can use in case they encountered + * a data processing error that may be fatal for the current "data unit" but + * need not prevent subsequent decoding. Such errors are counted and if there + * are too many, as configured in the context's max_errors, the pipeline will + * post an error message and the application will be requested to stop further + * media processing. Otherwise, it is considered a "glitch" and only a warning + * is logged. In either case, @ret is set to the proper value to + * return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK). + */ +#define GST_BASE_AUDIO_DECODER_ERROR(el, w, domain, code, text, debug, ret) \ +G_STMT_START { \ + gchar *__txt = _gst_element_error_printf text; \ + gchar *__dbg = _gst_element_error_printf debug; \ + GstBaseVideoDecoder *dec = GST_BASE_VIDEO_DECODER (el); \ + ret = _gst_base_video_decoder_error (dec, w, GST_ ## domain ## _ERROR, \ + GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__, \ + GST_FUNCTION, __LINE__); \ +} G_STMT_END + + +/** + * GstBaseVideoDecoder: + * + * The opaque #GstBaseVideoDecoder data structure. + */ struct _GstBaseVideoDecoder { GstBaseVideoCodec base_video_codec; - /*< private >*/ - GstAdapter *input_adapter; - GstAdapter *output_adapter; + /*< protected >*/ + gboolean sink_clipping; + gboolean do_byte_time; + gboolean packetized; + gint max_errors; - gboolean have_sync; - gboolean discont; - gboolean started; + /* parse tracking */ + /* input data */ + GstAdapter *input_adapter; + /* assembles current frame */ + GstAdapter *output_adapter; - gboolean sink_clipping; + /*< private >*/ + /* FIXME move to real private part ? + * (and introduce a context ?) */ + /* ... being tracked here; + * only available during parsing */ + /* FIXME remove and add parameter to method */ + GstVideoFrame *current_frame; + /* events that should apply to the current frame */ + GList *current_frame_events; + /* relative offset of input data */ + guint64 input_offset; + /* relative offset of frame */ + guint64 frame_offset; + /* tracking ts and offsets */ + GList *timestamps; + /* whether parsing is in sync */ + gboolean have_sync; + + /* maybe sort-of protected ? */ + + /* combine to yield (presentation) ts */ + GstClockTime timestamp_offset; + int field_index; + + /* last outgoing ts */ + GstClockTime last_timestamp; + gint error_count; + + /* reverse playback */ + /* collect input */ + GList *gather; + /* to-be-parsed */ + GList *parse; + /* collected parsed frames */ + GList *parse_gather; + /* frames to be handled == decoded */ + GList *decode; + /* collected output */ + GList *queued; + gboolean process; + + /* no comment ... */ + guint64 base_picture_number; + int reorder_depth; + int distance_from_sync; + + /* qos messages: frames dropped/processed */ + guint dropped; + guint processed; - guint64 presentation_frame_number; + /* FIXME before moving to base */ + void *padding[GST_PADDING_LARGE]; +}; - gboolean have_src_caps; +/** + * GstBaseVideoDecoderClass: + * @start: Optional. + * Called when the element starts processing. + * Allows opening external resources. + * @stop: Optional. + * Called when the element stops processing. + * Allows closing external resources. + * @set_format: Notifies subclass of incoming data format (caps). + * @scan_for_sync: Optional. + * Allows subclass to obtain sync for subsequent parsing + * by custom means (above an beyond scanning for specific + * marker and mask). + * @parse_data: Required for non-packetized input. + * Allows chopping incoming data into manageable units (frames) + * for subsequent decoding. + * @reset: Optional. + * Allows subclass (codec) to perform post-seek semantics reset. + * @handle_frame: Provides input data frame to subclass. + * @finish: Optional. + * Called to request subclass to dispatch any pending remaining + * data (e.g. at EOS). + * + * Subclasses can override any of the available virtual methods or not, as + * needed. At minimum @handle_frame needs to be overridden, and @set_format + * and likely as well. If non-packetized input is supported or expected, + * @parse needs to be overridden as well. + */ +struct _GstBaseVideoDecoderClass +{ + GstBaseVideoCodecClass base_video_codec_class; - GstVideoFrame *current_frame; + gboolean (*start) (GstBaseVideoDecoder *coder); - int distance_from_sync; - int reorder_depth; + gboolean (*stop) (GstBaseVideoDecoder *coder); - GstClockTime buffer_timestamp; + int (*scan_for_sync) (GstBaseVideoDecoder *decoder, gboolean at_eos, + int offset, int n); - GstClockTime timestamp_offset; + GstFlowReturn (*parse_data) (GstBaseVideoDecoder *decoder, gboolean at_eos); - //GstBuffer *codec_data; + gboolean (*set_format) (GstBaseVideoDecoder *coder, GstVideoState * state); - guint64 input_offset; - guint64 frame_offset; - GstClockTime last_timestamp; + gboolean (*reset) (GstBaseVideoDecoder *coder); - guint64 base_picture_number; + GstFlowReturn (*finish) (GstBaseVideoDecoder *coder); - int field_index; + GstFlowReturn (*handle_frame) (GstBaseVideoDecoder *coder, GstVideoFrame *frame); - gboolean is_delta_unit; - gboolean packetized; - GList *timestamps; - gboolean have_segment; + /*< private >*/ + guint32 capture_mask; + guint32 capture_pattern; /* FIXME before moving to base */ - void *padding[GST_PADDING_LARGE]; + void *padding[GST_PADDING_LARGE]; }; -struct _GstBaseVideoDecoderClass -{ - GstBaseVideoCodecClass base_video_codec_class; +void gst_base_video_decoder_class_set_capture_pattern (GstBaseVideoDecoderClass *klass, + guint32 mask, guint32 pattern); - gboolean (*set_format) (GstBaseVideoDecoder *coder, GstVideoFormat, - int width, int height, int fps_n, int fps_d, - int par_n, int par_d); - gboolean (*start) (GstBaseVideoDecoder *coder); - gboolean (*stop) (GstBaseVideoDecoder *coder); - gboolean (*reset) (GstBaseVideoDecoder *coder); - int (*scan_for_sync) (GstBaseVideoDecoder *decoder, gboolean at_eos, - int offset, int n); - GstFlowReturn (*parse_data) (GstBaseVideoDecoder *decoder, gboolean at_eos); - GstFlowReturn (*finish) (GstBaseVideoDecoder *coder); - GstFlowReturn (*handle_frame) (GstBaseVideoDecoder *coder, GstVideoFrame *frame); - GstFlowReturn (*shape_output) (GstBaseVideoDecoder *coder, GstVideoFrame *frame); - GstCaps *(*get_caps) (GstBaseVideoDecoder *coder); - - guint32 capture_mask; - guint32 capture_pattern; - - /* FIXME before moving to base */ - void *padding[GST_PADDING_LARGE]; -}; +GstVideoFrame *gst_base_video_decoder_get_frame (GstBaseVideoDecoder *coder, + int frame_number); +GstVideoFrame *gst_base_video_decoder_get_oldest_frame (GstBaseVideoDecoder *coder); -GType gst_base_video_decoder_get_type (void); - -void gst_base_video_decoder_class_set_capture_pattern (GstBaseVideoDecoderClass *klass, - guint32 mask, guint32 pattern); - -int gst_base_video_decoder_get_width (GstBaseVideoDecoder *coder); -int gst_base_video_decoder_get_height (GstBaseVideoDecoder *coder); - -guint64 gst_base_video_decoder_get_timestamp_offset (GstBaseVideoDecoder *coder); - -GstVideoFrame *gst_base_video_decoder_get_frame (GstBaseVideoDecoder *coder, - int frame_number); -GstVideoFrame *gst_base_video_decoder_get_oldest_frame (GstBaseVideoDecoder *coder); -void gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder *base_video_decoder, - int n_bytes); -GstFlowReturn gst_base_video_decoder_finish_frame (GstBaseVideoDecoder *base_video_decoder, - GstVideoFrame *frame); -GstFlowReturn gst_base_video_decoder_skip_frame (GstBaseVideoDecoder * base_video_decoder, - GstVideoFrame * frame); -GstFlowReturn gst_base_video_decoder_end_of_stream (GstBaseVideoDecoder *base_video_decoder, - GstBuffer *buffer); -GstFlowReturn -gst_base_video_decoder_have_frame (GstBaseVideoDecoder *base_video_decoder); -GstVideoState * gst_base_video_decoder_get_state (GstBaseVideoDecoder *base_video_decoder); -void gst_base_video_decoder_set_state (GstBaseVideoDecoder *base_video_decoder, - GstVideoState *state); -void gst_base_video_decoder_lost_sync (GstBaseVideoDecoder *base_video_decoder); -void gst_base_video_decoder_set_sync_point (GstBaseVideoDecoder *base_video_decoder); - -void gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder *base_video_decoder); - -GstBuffer * gst_base_video_decoder_alloc_src_buffer (GstBaseVideoDecoder * - base_video_decoder); -GstFlowReturn gst_base_video_decoder_alloc_src_frame (GstBaseVideoDecoder *base_video_decoder, - GstVideoFrame *frame); +void gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder *base_video_decoder, + int n_bytes); +void gst_base_video_decoder_lost_sync (GstBaseVideoDecoder *base_video_decoder); +GstFlowReturn gst_base_video_decoder_have_frame (GstBaseVideoDecoder *base_video_decoder); +void gst_base_video_decoder_set_sync_point (GstBaseVideoDecoder *base_video_decoder); +gboolean gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder *base_video_decoder); +GstBuffer *gst_base_video_decoder_alloc_src_buffer (GstBaseVideoDecoder * base_video_decoder); +GstFlowReturn gst_base_video_decoder_alloc_src_frame (GstBaseVideoDecoder *base_video_decoder, + GstVideoFrame *frame); +GstVideoState *gst_base_video_decoder_get_state (GstBaseVideoDecoder *base_video_decoder); GstClockTimeDiff gst_base_video_decoder_get_max_decode_time ( - GstBaseVideoDecoder *base_video_decoder, GstVideoFrame *frame); + GstBaseVideoDecoder *base_video_decoder, + GstVideoFrame *frame); +GstFlowReturn gst_base_video_decoder_finish_frame (GstBaseVideoDecoder *base_video_decoder, + GstVideoFrame *frame); +GstFlowReturn gst_base_video_decoder_drop_frame (GstBaseVideoDecoder *dec, + GstVideoFrame *frame); +GType gst_base_video_decoder_get_type (void); G_END_DECLS diff --git a/gst-libs/gst/video/gstbasevideoencoder.c b/gst-libs/gst/video/gstbasevideoencoder.c index 7926f53..34d0956 100644 --- a/gst-libs/gst/video/gstbasevideoencoder.c +++ b/gst-libs/gst/video/gstbasevideoencoder.c @@ -1,5 +1,8 @@ /* GStreamer * Copyright (C) 2008 David Schleef + * Copyright (C) 2011 Mark Nauwelaerts . + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: Stefan Kost * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -17,26 +20,138 @@ * Boston, MA 02111-1307, USA. */ +/** + * SECTION:gstbasevideoencoder + * @short_description: Base class for video encoders + * @see_also: #GstBaseTransform + * + * This base class is for video encoders turning raw video into + * encoded video data. + * + * GstBaseVideoEncoder and subclass should cooperate as follows. + * + * + * Configuration + * + * Initially, GstBaseVideoEncoder calls @start when the encoder element + * is activated, which allows subclass to perform any global setup. + * + * + * GstBaseVideoEncoder calls @set_format to inform subclass of the format + * of input video data that it is about to receive. Subclass should + * setup for encoding and configure base class as appropriate + * (e.g. latency). While unlikely, it might be called more than once, + * if changing input parameters require reconfiguration. Baseclass + * will ensure that processing of current configuration is finished. + * + * + * GstBaseVideoEncoder calls @stop at end of all processing. + * + * + * + * + * + * Data processing + * + * Base class collects input data and metadata into a frame and hands + * this to subclass' @handle_frame. + * + * + * If codec processing results in encoded data, subclass should call + * @gst_base_video_encoder_finish_frame to have encoded data pushed + * downstream. + * + * + * If implemented, baseclass calls subclass @shape_output which then sends + * data downstream in desired form. Otherwise, it is sent as-is. + * + * + * GstBaseVideoEncoderClass will handle both srcpad and sinkpad events. + * Sink events will be passed to subclass if @event callback has been + * provided. + * + * + * + * + * Shutdown phase + * + * GstBaseVideoEncoder class calls @stop to inform the subclass that data + * parsing will be stopped. + * + * + * + * + * + * Subclass is responsible for providing pad template caps for + * source and sink pads. The pads need to be named "sink" and "src". It should + * also be able to provide fixed src pad caps in @getcaps by the time it calls + * @gst_base_video_encoder_finish_frame. + * + * Things that subclass need to take care of: + * + * Provide pad templates + * + * Provide source pad caps before pushing the first buffer + * + * + * Accept data in @handle_frame and provide encoded results to + * @gst_base_video_encoder_finish_frame. + * + * + * + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "gstbasevideoencoder.h" +#include "gstbasevideoutils.h" + +#include GST_DEBUG_CATEGORY (basevideoencoder_debug); #define GST_CAT_DEFAULT basevideoencoder_debug +typedef struct _ForcedKeyUnitEvent ForcedKeyUnitEvent; +struct _ForcedKeyUnitEvent +{ + GstClockTime running_time; + gboolean pending; /* TRUE if this was requested already */ + gboolean all_headers; + guint count; +}; + +static void +forced_key_unit_event_free (ForcedKeyUnitEvent * evt) +{ + g_slice_free (ForcedKeyUnitEvent, evt); +} + +static ForcedKeyUnitEvent * +forced_key_unit_event_new (GstClockTime running_time, gboolean all_headers, + guint count) +{ + ForcedKeyUnitEvent *evt = g_slice_new0 (ForcedKeyUnitEvent); + + evt->running_time = running_time; + evt->all_headers = all_headers; + evt->count = count; + + return evt; +} + static void gst_base_video_encoder_finalize (GObject * object); static gboolean gst_base_video_encoder_sink_setcaps (GstPad * pad, GstCaps * caps); +static GstCaps *gst_base_video_encoder_sink_getcaps (GstPad * pad); static gboolean gst_base_video_encoder_src_event (GstPad * pad, GstEvent * event); static gboolean gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event); static GstFlowReturn gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf); -//static GstFlowReturn gst_base_video_encoder_process (GstBaseVideoEncoder *base_video_encoder); static GstStateChangeReturn gst_base_video_encoder_change_state (GstElement * element, GstStateChange transition); static const GstQueryType *gst_base_video_encoder_get_query_types (GstPad * @@ -44,9 +159,21 @@ static const GstQueryType *gst_base_video_encoder_get_query_types (GstPad * static gboolean gst_base_video_encoder_src_query (GstPad * pad, GstQuery * query); +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 (GstBaseVideoEncoder, gst_base_video_encoder, GstBaseVideoCodec, - GST_TYPE_BASE_VIDEO_CODEC); +GST_BOILERPLATE_FULL (GstBaseVideoEncoder, gst_base_video_encoder, + GstBaseVideoCodec, GST_TYPE_BASE_VIDEO_CODEC, _do_init); static void gst_base_video_encoder_base_init (gpointer g_class) @@ -67,9 +194,35 @@ gst_base_video_encoder_class_init (GstBaseVideoEncoderClass * klass) gobject_class->finalize = gst_base_video_encoder_finalize; - gstelement_class->change_state = gst_base_video_encoder_change_state; + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_base_video_encoder_change_state); +} + +static void +gst_base_video_encoder_reset (GstBaseVideoEncoder * base_video_encoder) +{ + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); + + base_video_encoder->presentation_frame_number = 0; + base_video_encoder->distance_from_sync = 0; + + g_list_foreach (base_video_encoder->force_key_unit, + (GFunc) forced_key_unit_event_free, NULL); + g_list_free (base_video_encoder->force_key_unit); + base_video_encoder->force_key_unit = NULL; + + base_video_encoder->drained = TRUE; + base_video_encoder->min_latency = 0; + base_video_encoder->max_latency = 0; + + gst_buffer_replace (&base_video_encoder->headers, NULL); + + g_list_foreach (base_video_encoder->current_frame_events, + (GFunc) gst_event_unref, NULL); + g_list_free (base_video_encoder->current_frame_events); + base_video_encoder->current_frame_events = NULL; - parent_class = g_type_class_peek_parent (klass); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); } static void @@ -78,22 +231,78 @@ gst_base_video_encoder_init (GstBaseVideoEncoder * base_video_encoder, { GstPad *pad; - GST_DEBUG ("gst_base_video_encoder_init"); + GST_DEBUG_OBJECT (base_video_encoder, "gst_base_video_encoder_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_encoder); - gst_pad_set_chain_function (pad, gst_base_video_encoder_chain); - gst_pad_set_event_function (pad, gst_base_video_encoder_sink_event); - gst_pad_set_setcaps_function (pad, gst_base_video_encoder_sink_setcaps); - //gst_pad_set_query_function (pad, gst_base_video_encoder_sink_query); + gst_pad_set_chain_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_chain)); + gst_pad_set_event_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_event)); + gst_pad_set_setcaps_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_setcaps)); + gst_pad_set_getcaps_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_getcaps)); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder); - gst_pad_set_query_type_function (pad, gst_base_video_encoder_get_query_types); - gst_pad_set_query_function (pad, gst_base_video_encoder_src_query); - gst_pad_set_event_function (pad, gst_base_video_encoder_src_event); + gst_pad_set_query_type_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_get_query_types)); + gst_pad_set_query_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_src_query)); + gst_pad_set_event_function (pad, + GST_DEBUG_FUNCPTR (gst_base_video_encoder_src_event)); - base_video_encoder->a.at_eos = FALSE; + base_video_encoder->at_eos = FALSE; + base_video_encoder->headers = NULL; + + /* encoder is expected to do so */ + base_video_encoder->sink_clipping = TRUE; +} + +void +gst_base_video_encoder_set_headers (GstBaseVideoEncoder * base_video_encoder, + GstBuffer * headers) +{ + GST_DEBUG_OBJECT (base_video_encoder, "new headers %p", headers); + gst_buffer_replace (&base_video_encoder->headers, headers); +} + +static gboolean +gst_base_video_encoder_drain (GstBaseVideoEncoder * enc) +{ + GstBaseVideoCodec *codec; + GstBaseVideoEncoderClass *enc_class; + gboolean ret = TRUE; + + codec = GST_BASE_VIDEO_CODEC (enc); + enc_class = GST_BASE_VIDEO_ENCODER_GET_CLASS (enc); + + GST_DEBUG_OBJECT (enc, "draining"); + + if (enc->drained) { + GST_DEBUG_OBJECT (enc, "already drained"); + return TRUE; + } + + if (enc_class->reset) { + GST_DEBUG_OBJECT (enc, "requesting subclass to finish"); + ret = enc_class->reset (enc); + } + /* everything should be away now */ + if (codec->frames) { + /* not fatal/impossible though if subclass/codec eats stuff */ + GST_WARNING_OBJECT (enc, "still %d frames left after draining", + g_list_length (codec->frames)); +#if 0 + /* FIXME should do this, but subclass may come up with it later on ? + * and would then need refcounting or so on frames */ + g_list_foreach (codec->frames, + (GFunc) gst_base_video_codec_free_frame, NULL); +#endif + } + + return ret; } static gboolean @@ -102,45 +311,92 @@ gst_base_video_encoder_sink_setcaps (GstPad * pad, GstCaps * caps) GstBaseVideoEncoder *base_video_encoder; GstBaseVideoEncoderClass *base_video_encoder_class; GstStructure *structure; - GstVideoState *state; + GstVideoState *state, tmp_state; gboolean ret; + gboolean changed = FALSE; base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); base_video_encoder_class = GST_BASE_VIDEO_ENCODER_GET_CLASS (base_video_encoder); - GST_DEBUG ("setcaps"); + /* subclass should do something here ... */ + g_return_val_if_fail (base_video_encoder_class->set_format != NULL, FALSE); + + GST_DEBUG_OBJECT (base_video_encoder, "setcaps %" GST_PTR_FORMAT, caps); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); state = &GST_BASE_VIDEO_CODEC (base_video_encoder)->state; + memset (&tmp_state, 0, sizeof (tmp_state)); + + tmp_state.caps = gst_caps_ref (caps); structure = gst_caps_get_structure (caps, 0); - gst_video_format_parse_caps (caps, &state->format, - &state->width, &state->height); + ret = + gst_video_format_parse_caps (caps, &tmp_state.format, &tmp_state.width, + &tmp_state.height); + if (!ret) + goto exit; - state->fps_n = 0; - state->fps_d = 1; - gst_video_parse_caps_framerate (caps, &state->fps_n, &state->fps_d); - if (state->fps_d == 0) { - state->fps_n = 0; - state->fps_d = 1; - } + changed = (tmp_state.format != state->format + || tmp_state.width != state->width || tmp_state.height != state->height); - state->par_n = 1; - state->par_d = 1; - gst_video_parse_caps_pixel_aspect_ratio (caps, &state->par_n, &state->par_d); + if (!gst_video_parse_caps_framerate (caps, &tmp_state.fps_n, + &tmp_state.fps_d)) { + tmp_state.fps_n = 0; + tmp_state.fps_d = 1; + } + changed = changed || (tmp_state.fps_n != state->fps_n + || tmp_state.fps_d != state->fps_d); - state->have_interlaced = gst_structure_get_boolean (structure, - "interlaced", &state->interlaced); + if (!gst_video_parse_caps_pixel_aspect_ratio (caps, &tmp_state.par_n, + &tmp_state.par_d)) { + tmp_state.par_n = 1; + tmp_state.par_d = 1; + } + changed = changed || (tmp_state.par_n != state->par_n + || tmp_state.par_d != state->par_d); + + tmp_state.have_interlaced = + gst_structure_get_boolean (structure, "interlaced", + &tmp_state.interlaced); + changed = changed || (tmp_state.have_interlaced != state->have_interlaced + || tmp_state.interlaced != state->interlaced); + + tmp_state.bytes_per_picture = + gst_video_format_get_size (tmp_state.format, tmp_state.width, + tmp_state.height); + tmp_state.clean_width = tmp_state.width; + tmp_state.clean_height = tmp_state.height; + tmp_state.clean_offset_left = 0; + tmp_state.clean_offset_top = 0; + + if (changed) { + /* arrange draining pending frames */ + gst_base_video_encoder_drain (base_video_encoder); + + /* and subclass should be ready to configure format at any time around */ + if (base_video_encoder_class->set_format) + ret = + base_video_encoder_class->set_format (base_video_encoder, &tmp_state); + if (ret) { + gst_caps_replace (&state->caps, NULL); + *state = tmp_state; + } + } else { + /* no need to stir things up */ + GST_DEBUG_OBJECT (base_video_encoder, + "new video format identical to configured format"); + gst_caps_unref (tmp_state.caps); + ret = TRUE; + } - state->clean_width = state->width; - state->clean_height = state->height; - state->clean_offset_left = 0; - state->clean_offset_top = 0; +exit: + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); - ret = base_video_encoder_class->set_format (base_video_encoder, - &GST_BASE_VIDEO_CODEC (base_video_encoder)->state); - if (ret) { - ret = base_video_encoder_class->start (base_video_encoder); + if (!ret) { + GST_WARNING_OBJECT (base_video_encoder, "rejected caps %" GST_PTR_FORMAT, + caps); } g_object_unref (base_video_encoder); @@ -148,38 +404,116 @@ gst_base_video_encoder_sink_setcaps (GstPad * pad, GstCaps * caps) return ret; } +static GstCaps * +gst_base_video_encoder_sink_getcaps (GstPad * pad) +{ + GstBaseVideoEncoder *base_video_encoder; + const GstCaps *templ_caps; + GstCaps *allowed; + GstCaps *fcaps, *filter_caps; + gint i, j; + + base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); + + /* FIXME: Allow subclass to override this? */ + + /* Allow downstream to specify width/height/framerate/PAR constraints + * and forward them upstream for video converters to handle + */ + templ_caps = + gst_pad_get_pad_template_caps (GST_BASE_VIDEO_CODEC_SINK_PAD + (base_video_encoder)); + allowed = + gst_pad_get_allowed_caps (GST_BASE_VIDEO_CODEC_SRC_PAD + (base_video_encoder)); + if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) { + fcaps = gst_caps_copy (templ_caps); + goto done; + } + + GST_LOG_OBJECT (base_video_encoder, "template caps %" GST_PTR_FORMAT, + templ_caps); + GST_LOG_OBJECT (base_video_encoder, "allowed caps %" GST_PTR_FORMAT, allowed); + + filter_caps = gst_caps_new_empty (); + + for (i = 0; i < gst_caps_get_size (templ_caps); i++) { + GQuark q_name = + gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i)); + + for (j = 0; j < gst_caps_get_size (allowed); j++) { + const GstStructure *allowed_s = gst_caps_get_structure (allowed, j); + const GValue *val; + GstStructure *s; + + s = gst_structure_id_empty_new (q_name); + if ((val = gst_structure_get_value (allowed_s, "width"))) + gst_structure_set_value (s, "width", val); + if ((val = gst_structure_get_value (allowed_s, "height"))) + gst_structure_set_value (s, "height", val); + if ((val = gst_structure_get_value (allowed_s, "framerate"))) + gst_structure_set_value (s, "framerate", val); + if ((val = gst_structure_get_value (allowed_s, "pixel-aspect-ratio"))) + gst_structure_set_value (s, "pixel-aspect-ratio", val); + + gst_caps_merge_structure (filter_caps, s); + } + } + + fcaps = gst_caps_intersect (filter_caps, templ_caps); + gst_caps_unref (filter_caps); + +done: + + gst_caps_replace (&allowed, NULL); + + GST_LOG_OBJECT (base_video_encoder, "Returning caps %" GST_PTR_FORMAT, fcaps); + + g_object_unref (base_video_encoder); + return fcaps; +} + static void gst_base_video_encoder_finalize (GObject * object) { + GstBaseVideoEncoder *base_video_encoder; + GST_DEBUG_OBJECT (object, "finalize"); + base_video_encoder = GST_BASE_VIDEO_ENCODER (object); + gst_buffer_replace (&base_video_encoder->headers, NULL); + G_OBJECT_CLASS (parent_class)->finalize (object); } static gboolean -gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event) +gst_base_video_encoder_sink_eventfunc (GstBaseVideoEncoder * base_video_encoder, + GstEvent * event) { - GstBaseVideoEncoder *base_video_encoder; GstBaseVideoEncoderClass *base_video_encoder_class; gboolean ret = FALSE; - base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); base_video_encoder_class = GST_BASE_VIDEO_ENCODER_GET_CLASS (base_video_encoder); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: { - base_video_encoder->a.at_eos = TRUE; + GstFlowReturn flow_ret; + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); + base_video_encoder->at_eos = TRUE; + if (base_video_encoder_class->finish) { - base_video_encoder_class->finish (base_video_encoder); + flow_ret = base_video_encoder_class->finish (base_video_encoder); + } else { + flow_ret = GST_FLOW_OK; } - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - event); - } + ret = (flow_ret == GST_BASE_VIDEO_ENCODER_FLOW_DROPPED); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); break; + } case GST_EVENT_NEWSEGMENT: { gboolean update; @@ -190,62 +524,112 @@ gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event) gint64 stop; gint64 position; - gst_event_parse_new_segment_full (event, &update, &rate, - &applied_rate, &format, &start, &stop, &position); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); + gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate, + &format, &start, &stop, &position); - if (format != GST_FORMAT_TIME) - goto newseg_wrong_format; + GST_DEBUG_OBJECT (base_video_encoder, "newseg rate %g, applied rate %g, " + "format %d, start = %" GST_TIME_FORMAT ", stop = %" GST_TIME_FORMAT + ", pos = %" GST_TIME_FORMAT, rate, applied_rate, format, + GST_TIME_ARGS (start), GST_TIME_ARGS (stop), + GST_TIME_ARGS (position)); + + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (base_video_encoder, "received non TIME newsegment"); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); + break; + } - GST_DEBUG ("new segment %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, - GST_TIME_ARGS (start), GST_TIME_ARGS (position)); + base_video_encoder->at_eos = FALSE; - base_video_encoder->a.at_eos = FALSE; gst_segment_set_newsegment_full (&GST_BASE_VIDEO_CODEC (base_video_encoder)->segment, update, rate, applied_rate, format, start, stop, position); - - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - event); - } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); break; + } case GST_EVENT_CUSTOM_DOWNSTREAM: { - const GstStructure *s; - - s = gst_event_get_structure (event); - - if (gst_structure_has_name (s, "GstForceKeyUnit")) { - GST_OBJECT_LOCK (base_video_encoder); - base_video_encoder->force_keyframe = TRUE; - GST_OBJECT_UNLOCK (base_video_encoder); + if (gst_video_event_is_force_key_unit (event)) { + GstClockTime running_time; + gboolean all_headers; + guint count; + + if (gst_video_event_parse_downstream_force_key_unit (event, + NULL, NULL, &running_time, &all_headers, &count)) { + ForcedKeyUnitEvent *fevt; + + GST_OBJECT_LOCK (base_video_encoder); + fevt = forced_key_unit_event_new (running_time, all_headers, count); + base_video_encoder->force_key_unit = + g_list_append (base_video_encoder->force_key_unit, fevt); + GST_OBJECT_UNLOCK (base_video_encoder); + + GST_DEBUG_OBJECT (base_video_encoder, + "force-key-unit event: running-time %" GST_TIME_FORMAT + ", all_headers %d, count %u", + GST_TIME_ARGS (running_time), all_headers, count); + } gst_event_unref (event); - ret = GST_FLOW_OK; - } else { - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD - (base_video_encoder), event); + ret = TRUE; } break; } default: - /* FIXME this changes the order of events */ - ret = - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - event); break; } -done: - gst_object_unref (base_video_encoder); return ret; +} -newseg_wrong_format: - { - GST_DEBUG_OBJECT (base_video_encoder, "received non TIME newsegment"); - gst_event_unref (event); - goto done; +static gboolean +gst_base_video_encoder_sink_event (GstPad * pad, GstEvent * event) +{ + GstBaseVideoEncoder *enc; + GstBaseVideoEncoderClass *klass; + gboolean handled = FALSE; + gboolean ret = TRUE; + + enc = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); + klass = GST_BASE_VIDEO_ENCODER_GET_CLASS (enc); + + GST_DEBUG_OBJECT (enc, "received event %d, %s", GST_EVENT_TYPE (event), + GST_EVENT_TYPE_NAME (event)); + + if (klass->event) + handled = klass->event (enc, event); + + if (!handled) + handled = gst_base_video_encoder_sink_eventfunc (enc, event); + + if (!handled) { + /* Forward non-serialized events and EOS/FLUSH_STOP immediately. + * For EOS this is required because no buffer or serialized event + * will come after EOS and nothing could trigger another + * _finish_frame() call. * + * If the subclass handles sending of EOS manually it can return + * _DROPPED from ::finish() and all other subclasses should have + * decoded/flushed all remaining data before this + * + * For FLUSH_STOP this is required because it is expected + * to be forwarded immediately and no buffers are queued anyway. + */ + if (!GST_EVENT_IS_SERIALIZED (event) + || GST_EVENT_TYPE (event) == GST_EVENT_EOS + || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) { + ret = gst_pad_push_event (enc->base_video_codec.srcpad, event); + } else { + GST_BASE_VIDEO_CODEC_STREAM_LOCK (enc); + enc->current_frame_events = + g_list_prepend (enc->current_frame_events, event); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (enc); + } } + + GST_DEBUG_OBJECT (enc, "event handled"); + + gst_object_unref (enc); + return ret; } static gboolean @@ -256,18 +640,32 @@ gst_base_video_encoder_src_event (GstPad * pad, GstEvent * event) base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); + GST_LOG_OBJECT (base_video_encoder, "handling event: %" GST_PTR_FORMAT, + event); + switch (GST_EVENT_TYPE (event)) { case GST_EVENT_CUSTOM_UPSTREAM: { - const GstStructure *s; - - s = gst_event_get_structure (event); - - if (gst_structure_has_name (s, "GstForceKeyUnit")) { - GST_OBJECT_LOCK (base_video_encoder); - base_video_encoder->force_keyframe = TRUE; - GST_OBJECT_UNLOCK (base_video_encoder); - + if (gst_video_event_is_force_key_unit (event)) { + GstClockTime running_time; + gboolean all_headers; + guint count; + + if (gst_video_event_parse_upstream_force_key_unit (event, + &running_time, &all_headers, &count)) { + ForcedKeyUnitEvent *fevt; + + GST_OBJECT_LOCK (base_video_encoder); + fevt = forced_key_unit_event_new (running_time, all_headers, count); + base_video_encoder->force_key_unit = + g_list_append (base_video_encoder->force_key_unit, fevt); + GST_OBJECT_UNLOCK (base_video_encoder); + + GST_DEBUG_OBJECT (base_video_encoder, + "force-key-unit event: running-time %" GST_TIME_FORMAT + ", all_headers %d, count %u", + GST_TIME_ARGS (running_time), all_headers, count); + } gst_event_unref (event); ret = TRUE; } else { @@ -292,8 +690,6 @@ static const GstQueryType * gst_base_video_encoder_get_query_types (GstPad * pad) { static const GstQueryType query_types[] = { - //GST_QUERY_POSITION, - //GST_QUERY_DURATION, GST_QUERY_CONVERT, GST_QUERY_LATENCY, 0 @@ -312,17 +708,18 @@ gst_base_video_encoder_src_query (GstPad * pad, GstQuery * query) enc = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); peerpad = gst_pad_get_peer (GST_BASE_VIDEO_CODEC_SINK_PAD (enc)); - switch GST_QUERY_TYPE - (query) { + GST_LOG_OBJECT (enc, "handling query: %" GST_PTR_FORMAT, query); + + switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CONVERT: { + GstBaseVideoCodec *codec = GST_BASE_VIDEO_CODEC (enc); 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_base_video_encoded_video_convert (&GST_BASE_VIDEO_CODEC - (enc)->state, src_fmt, src_val, &dest_fmt, &dest_val); + res = gst_base_video_encoded_video_convert (&codec->state, + codec->bytes, codec->time, 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); @@ -336,11 +733,16 @@ gst_base_video_encoder_src_query (GstPad * pad, GstQuery * query) res = gst_pad_query (peerpad, query); if (res) { gst_query_parse_latency (query, &live, &min_latency, &max_latency); + GST_DEBUG_OBJECT (enc, "Peer latency: live %d, min %" + GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live, + GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency)); + GST_OBJECT_LOCK (enc); min_latency += enc->min_latency; if (max_latency != GST_CLOCK_TIME_NONE) { max_latency += enc->max_latency; } + GST_OBJECT_UNLOCK (enc); gst_query_set_latency (query, live, min_latency, max_latency); } @@ -348,7 +750,7 @@ gst_base_video_encoder_src_query (GstPad * pad, GstQuery * query) break; default: res = gst_pad_query_default (pad, query); - } + } gst_object_unref (peerpad); gst_object_unref (enc); return res; @@ -360,38 +762,35 @@ error: return res; } -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; -} - static GstFlowReturn gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf) { GstBaseVideoEncoder *base_video_encoder; GstBaseVideoEncoderClass *klass; GstVideoFrame *frame; - - if (!gst_pad_is_negotiated (pad)) { - return GST_FLOW_NOT_NEGOTIATED; - } + GstFlowReturn ret = GST_FLOW_OK; base_video_encoder = GST_BASE_VIDEO_ENCODER (gst_pad_get_parent (pad)); klass = GST_BASE_VIDEO_ENCODER_GET_CLASS (base_video_encoder); - if (base_video_encoder->a.at_eos) { - return GST_FLOW_UNEXPECTED; + g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); + + if (!GST_PAD_CAPS (pad)) { + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } + + GST_LOG_OBJECT (base_video_encoder, + "received buffer of size %d with ts %" GST_TIME_FORMAT + ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + if (base_video_encoder->at_eos) { + ret = GST_FLOW_UNEXPECTED; + goto done; } if (base_video_encoder->sink_clipping) { @@ -402,14 +801,22 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf) if (!gst_segment_clip (&GST_BASE_VIDEO_CODEC (base_video_encoder)->segment, GST_FORMAT_TIME, start, stop, &clip_start, &clip_stop)) { - GST_DEBUG ("clipping to segment dropped frame"); + GST_DEBUG_OBJECT (base_video_encoder, + "clipping to segment dropped frame"); goto done; } } + if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT))) { + GST_LOG_OBJECT (base_video_encoder, "marked discont"); + GST_BASE_VIDEO_CODEC (base_video_encoder)->discont = TRUE; + } + frame = gst_base_video_codec_new_frame (GST_BASE_VIDEO_CODEC (base_video_encoder)); + frame->events = base_video_encoder->current_frame_events; + base_video_encoder->current_frame_events = NULL; frame->sink_buffer = buf; frame->presentation_timestamp = GST_BUFFER_TIMESTAMP (buf); frame->presentation_duration = GST_BUFFER_DURATION (buf); @@ -417,15 +824,64 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf) base_video_encoder->presentation_frame_number; base_video_encoder->presentation_frame_number++; + GST_OBJECT_LOCK (base_video_encoder); + if (base_video_encoder->force_key_unit) { + ForcedKeyUnitEvent *fevt = NULL; + GstClockTime running_time; + GList *l; + + running_time = gst_segment_to_running_time (&GST_BASE_VIDEO_CODEC + (base_video_encoder)->segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buf)); + + for (l = base_video_encoder->force_key_unit; l; l = l->next) { + ForcedKeyUnitEvent *tmp = l->data; + + /* Skip pending keyunits */ + if (tmp->pending) + continue; + + /* Simple case, keyunit ASAP */ + if (tmp->running_time == GST_CLOCK_TIME_NONE) { + fevt = tmp; + break; + } + + /* Event for before this frame */ + if (tmp->running_time <= running_time) { + fevt = tmp; + break; + } + } + + if (fevt) { + GST_DEBUG_OBJECT (base_video_encoder, + "Forcing a key unit at running time %" GST_TIME_FORMAT, + GST_TIME_ARGS (running_time)); + frame->force_keyframe = TRUE; + frame->force_keyframe_headers = fevt->all_headers; + fevt->pending = TRUE; + } + } + GST_OBJECT_UNLOCK (base_video_encoder); + GST_BASE_VIDEO_CODEC (base_video_encoder)->frames = g_list_append (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames, frame); - klass->handle_frame (base_video_encoder, frame); + /* new data, more finish needed */ + base_video_encoder->drained = FALSE; + + GST_LOG_OBJECT (base_video_encoder, "passing frame pfn %d to subclass", + frame->presentation_frame_number); + + ret = klass->handle_frame (base_video_encoder, frame); done: + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); + g_object_unref (base_video_encoder); - return GST_FLOW_OK; + return ret; } static GstStateChangeReturn @@ -440,6 +896,13 @@ gst_base_video_encoder_change_state (GstElement * element, base_video_encoder_class = GST_BASE_VIDEO_ENCODER_GET_CLASS (element); switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_base_video_encoder_reset (base_video_encoder); + if (base_video_encoder_class->start) { + if (!base_video_encoder_class->start (base_video_encoder)) + goto start_error; + } + break; default: break; } @@ -448,8 +911,10 @@ gst_base_video_encoder_change_state (GstElement * element, switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_base_video_encoder_reset (base_video_encoder); if (base_video_encoder_class->stop) { - base_video_encoder_class->stop (base_video_encoder); + if (!base_video_encoder_class->stop (base_video_encoder)) + goto stop_error; } break; default: @@ -457,18 +922,136 @@ gst_base_video_encoder_change_state (GstElement * element, } return ret; + +start_error: + GST_WARNING_OBJECT (base_video_encoder, "failed to start"); + return GST_STATE_CHANGE_FAILURE; + +stop_error: + GST_WARNING_OBJECT (base_video_encoder, "failed to stop"); + return GST_STATE_CHANGE_FAILURE; } +/** + * gst_base_video_encoder_finish_frame: + * @base_video_encoder: a #GstBaseVideoEncoder + * @frame: an encoded #GstVideoFrame + * + * @frame must have a valid encoded data buffer, whose metadata fields + * are then appropriately set according to frame data or no buffer at + * all if the frame should be dropped. + * It is subsequently pushed downstream or provided to @shape_output. + * In any case, the frame is considered finished and released. + * + * Returns: a #GstFlowReturn resulting from sending data downstream + */ GstFlowReturn gst_base_video_encoder_finish_frame (GstBaseVideoEncoder * base_video_encoder, GstVideoFrame * frame) { - GstFlowReturn ret; + GstFlowReturn ret = GST_FLOW_OK; GstBaseVideoEncoderClass *base_video_encoder_class; + GList *l; + GstBuffer *headers = NULL; base_video_encoder_class = GST_BASE_VIDEO_ENCODER_GET_CLASS (base_video_encoder); + GST_LOG_OBJECT (base_video_encoder, + "finish frame fpn %d", frame->presentation_frame_number); + + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); + + /* Push all pending events that arrived before this frame */ + for (l = base_video_encoder->base_video_codec.frames; l; l = l->next) { + GstVideoFrame *tmp = l->data; + + if (tmp->events) { + GList *k; + + for (k = g_list_last (tmp->events); k; k = k->prev) + gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), + k->data); + g_list_free (tmp->events); + tmp->events = NULL; + } + + if (tmp == frame) + break; + } + + /* no buffer data means this frame is skipped/dropped */ + if (!frame->src_buffer) { + GST_DEBUG_OBJECT (base_video_encoder, "skipping frame %" GST_TIME_FORMAT, + GST_TIME_ARGS (frame->presentation_timestamp)); + goto done; + } + + if (frame->is_sync_point && base_video_encoder->force_key_unit) { + GstClockTime stream_time, running_time; + GstEvent *ev; + ForcedKeyUnitEvent *fevt = NULL; + GList *l; + + running_time = gst_segment_to_running_time (&GST_BASE_VIDEO_CODEC + (base_video_encoder)->segment, GST_FORMAT_TIME, + frame->presentation_timestamp); + + GST_OBJECT_LOCK (base_video_encoder); + for (l = base_video_encoder->force_key_unit; l; l = l->next) { + ForcedKeyUnitEvent *tmp = l->data; + + /* Skip non-pending keyunits */ + if (!tmp->pending) + continue; + + /* Simple case, keyunit ASAP */ + if (tmp->running_time == GST_CLOCK_TIME_NONE) { + fevt = tmp; + break; + } + + /* Event for before this frame */ + if (tmp->running_time <= running_time) { + fevt = tmp; + break; + } + } + + if (fevt) { + base_video_encoder->force_key_unit = + g_list_remove (base_video_encoder->force_key_unit, fevt); + } + GST_OBJECT_UNLOCK (base_video_encoder); + + if (fevt) { + stream_time = + gst_segment_to_stream_time (&GST_BASE_VIDEO_CODEC + (base_video_encoder)->segment, GST_FORMAT_TIME, + frame->presentation_timestamp); + + ev = gst_video_event_new_downstream_force_key_unit + (frame->presentation_timestamp, stream_time, running_time, + fevt->all_headers, fevt->count); + + gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), + ev); + + if (fevt->all_headers) { + if (base_video_encoder->headers) { + headers = gst_buffer_ref (base_video_encoder->headers); + headers = gst_buffer_make_metadata_writable (headers); + } + } + + GST_DEBUG_OBJECT (base_video_encoder, + "Forced key unit: running-time %" GST_TIME_FORMAT + ", all_headers %d, count %u", + GST_TIME_ARGS (running_time), fevt->all_headers, fevt->count); + forced_key_unit_event_free (fevt); + } + } + if (frame->is_sync_point) { base_video_encoder->distance_from_sync = 0; GST_BUFFER_FLAG_UNSET (frame->src_buffer, GST_BUFFER_FLAG_DELTA_UNIT); @@ -492,48 +1075,36 @@ gst_base_video_encoder_finish_frame (GstBaseVideoEncoder * base_video_encoder, GST_BUFFER_DURATION (frame->src_buffer) = frame->presentation_duration; GST_BUFFER_OFFSET (frame->src_buffer) = frame->decode_timestamp; - GST_BASE_VIDEO_CODEC (base_video_encoder)->frames = - g_list_remove (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames, frame); - - if (!base_video_encoder->set_output_caps) { - if (base_video_encoder_class->get_caps) { - GST_BASE_VIDEO_CODEC (base_video_encoder)->caps = - base_video_encoder_class->get_caps (base_video_encoder); - } else { - GST_BASE_VIDEO_CODEC (base_video_encoder)->caps = - gst_caps_new_simple ("video/unknown", NULL); - } - gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - GST_BASE_VIDEO_CODEC (base_video_encoder)->caps); - base_video_encoder->set_output_caps = TRUE; + if (G_UNLIKELY (headers)) { + GST_BUFFER_TIMESTAMP (headers) = frame->presentation_timestamp; + GST_BUFFER_DURATION (headers) = 0; + GST_BUFFER_OFFSET (headers) = frame->decode_timestamp; } - gst_buffer_set_caps (GST_BUFFER (frame->src_buffer), - GST_BASE_VIDEO_CODEC (base_video_encoder)->caps); - - if (frame->force_keyframe) { - GstClockTime stream_time; - GstClockTime running_time; - GstStructure *s; + /* update rate estimate */ + GST_BASE_VIDEO_CODEC (base_video_encoder)->bytes += + GST_BUFFER_SIZE (frame->src_buffer); + if (GST_CLOCK_TIME_IS_VALID (frame->presentation_duration)) { + GST_BASE_VIDEO_CODEC (base_video_encoder)->time += + frame->presentation_duration; + } else { + /* better none than nothing valid */ + GST_BASE_VIDEO_CODEC (base_video_encoder)->time = GST_CLOCK_TIME_NONE; + } - running_time = - gst_segment_to_running_time (&GST_BASE_VIDEO_CODEC - (base_video_encoder)->segment, GST_FORMAT_TIME, - frame->presentation_timestamp); - stream_time = - gst_segment_to_stream_time (&GST_BASE_VIDEO_CODEC - (base_video_encoder)->segment, GST_FORMAT_TIME, - frame->presentation_timestamp); + if (G_UNLIKELY (GST_BASE_VIDEO_CODEC (base_video_encoder)->discont)) { + GST_LOG_OBJECT (base_video_encoder, "marking discont"); + GST_BUFFER_FLAG_SET (frame->src_buffer, GST_BUFFER_FLAG_DISCONT); + GST_BASE_VIDEO_CODEC (base_video_encoder)->discont = FALSE; + } - /* FIXME this should send the event that we got on the sink pad - instead of creating a new one */ - s = gst_structure_new ("GstForceKeyUnit", - "timestamp", G_TYPE_UINT64, frame->presentation_timestamp, - "stream-time", G_TYPE_UINT64, stream_time, - "running-time", G_TYPE_UINT64, running_time, NULL); + gst_buffer_set_caps (GST_BUFFER (frame->src_buffer), + GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); - gst_pad_push_event (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s)); + if (G_UNLIKELY (headers)) { + gst_buffer_set_caps (headers, + GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); + gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), headers); } if (base_video_encoder_class->shape_output) { @@ -543,63 +1114,74 @@ gst_base_video_encoder_finish_frame (GstBaseVideoEncoder * base_video_encoder, gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), frame->src_buffer); } + frame->src_buffer = NULL; - gst_base_video_codec_free_frame (frame); +done: + /* handed out */ + GST_BASE_VIDEO_CODEC (base_video_encoder)->frames = + g_list_remove (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames, frame); - return ret; -} + gst_base_video_codec_free_frame (frame); -int -gst_base_video_encoder_get_height (GstBaseVideoEncoder * base_video_encoder) -{ - return GST_BASE_VIDEO_CODEC (base_video_encoder)->state.height; -} + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); -int -gst_base_video_encoder_get_width (GstBaseVideoEncoder * base_video_encoder) -{ - return GST_BASE_VIDEO_CODEC (base_video_encoder)->state.width; + return ret; } +/** + * gst_base_video_encoder_get_state: + * @base_video_encoder: a #GstBaseVideoEncoder + * + * Returns: #GstVideoState describing format of video data. + */ const GstVideoState * gst_base_video_encoder_get_state (GstBaseVideoEncoder * base_video_encoder) { return &GST_BASE_VIDEO_CODEC (base_video_encoder)->state; } -GstFlowReturn -gst_base_video_encoder_end_of_stream (GstBaseVideoEncoder * base_video_encoder, - GstBuffer * buffer) -{ - - if (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames) { - GST_WARNING ("EOS with frames left over"); - } - - return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), - buffer); -} - +/** + * gst_base_video_encoder_set_latency: + * @base_video_encoder: a #GstBaseVideoEncoder + * @min_latency: minimum latency + * @max_latency: maximum latency + * + * Informs baseclass of encoding latency. + */ void gst_base_video_encoder_set_latency (GstBaseVideoEncoder * base_video_encoder, GstClockTime min_latency, GstClockTime max_latency) { - g_return_if_fail (min_latency >= 0); + g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min_latency)); g_return_if_fail (max_latency >= min_latency); + GST_OBJECT_LOCK (base_video_encoder); base_video_encoder->min_latency = min_latency; base_video_encoder->max_latency = max_latency; + GST_OBJECT_UNLOCK (base_video_encoder); gst_element_post_message (GST_ELEMENT_CAST (base_video_encoder), gst_message_new_latency (GST_OBJECT_CAST (base_video_encoder))); } +/** + * gst_base_video_encoder_set_latency_fields: + * @base_video_encoder: a #GstBaseVideoEncoder + * @fields: latency in fields + * + * Informs baseclass of encoding latency in terms of fields (both min + * and max latency). + */ void gst_base_video_encoder_set_latency_fields (GstBaseVideoEncoder * base_video_encoder, int n_fields) { gint64 latency; + /* 0 numerator is used for "don't know" */ + if (GST_BASE_VIDEO_CODEC (base_video_encoder)->state.fps_n == 0) + return; + latency = gst_util_uint64_scale (n_fields, GST_BASE_VIDEO_CODEC (base_video_encoder)->state.fps_d * GST_SECOND, 2 * GST_BASE_VIDEO_CODEC (base_video_encoder)->state.fps_n); @@ -608,15 +1190,26 @@ gst_base_video_encoder_set_latency_fields (GstBaseVideoEncoder * } +/** + * gst_base_video_encoder_get_oldest_frame: + * @base_video_encoder: a #GstBaseVideoEncoder + * + * Returns: oldest unfinished pending #GstVideoFrame + */ GstVideoFrame * gst_base_video_encoder_get_oldest_frame (GstBaseVideoEncoder * base_video_encoder) { GList *g; + GST_BASE_VIDEO_CODEC_STREAM_LOCK (base_video_encoder); g = g_list_first (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_encoder); if (g == NULL) return NULL; return (GstVideoFrame *) (g->data); } + +/* FIXME there could probably be more of these; + * get by presentation_number, by presentation_time ? */ diff --git a/gst-libs/gst/video/gstbasevideoencoder.h b/gst-libs/gst/video/gstbasevideoencoder.h index 228c517..6e2aa70 100644 --- a/gst-libs/gst/video/gstbasevideoencoder.h +++ b/gst-libs/gst/video/gstbasevideoencoder.h @@ -1,5 +1,8 @@ /* GStreamer * Copyright (C) 2008 David Schleef + * Copyright (C) 2011 Mark Nauwelaerts . + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: Stefan Kost * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -55,73 +58,124 @@ G_BEGIN_DECLS */ #define GST_BASE_VIDEO_ENCODER_SRC_NAME "src" +/** + * GST_BASE_VIDEO_ENCODER_FLOW_DROPPED: + * + * Returned when the event/buffer should be dropped. + */ +#define GST_BASE_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1 typedef struct _GstBaseVideoEncoder GstBaseVideoEncoder; typedef struct _GstBaseVideoEncoderClass GstBaseVideoEncoderClass; +/** + * GstBaseVideoEncoder: + * @element: the parent element. + * + * The opaque #GstBaseVideoEncoder data structure. + */ struct _GstBaseVideoEncoder { GstBaseVideoCodec base_video_codec; + /*< protected >*/ + gboolean sink_clipping; + + guint64 presentation_frame_number; + int distance_from_sync; + /*< private >*/ - gboolean sink_clipping; + /* FIXME move to real private part ? + * (and introduce a context ?) */ + gboolean drained; + gboolean at_eos; - guint64 presentation_frame_number; - int distance_from_sync; + gint64 min_latency; + gint64 max_latency; - gboolean set_output_caps; + GList *current_frame_events; - gint64 min_latency; - gint64 max_latency; + GstBuffer *headers; - gboolean force_keyframe; - union { - void *padding; - gboolean at_eos; - } a; + GList *force_key_unit; /* List of pending forced keyunits */ - /* FIXME before moving to base */ - void *padding[GST_PADDING_LARGE-1]; + void *padding[GST_PADDING_LARGE]; }; +/** + * GstBaseVideoEncoderClass: + * @start: Optional. + * Called when the element starts processing. + * Allows opening external resources. + * @stop: Optional. + * Called when the element stops processing. + * Allows closing external resources. + * @set_format: Optional. + * Notifies subclass of incoming data format. + * GstVideoState fields have already been + * set according to provided caps. + * @handle_frame: Provides input frame to subclass. + * @finish: Optional. + * Called to request subclass to dispatch any pending remaining + * data (e.g. at EOS). + * @shape_output: Optional. + * Allows subclass to push frame downstream in whatever + * shape or form it deems appropriate. If not provided, + * provided encoded frame data is simply pushed downstream. + * @event: Optional. + * Event handler on the sink pad. This function should return + * TRUE if the event was handled and should be discarded + * (i.e. not unref'ed). + * + * Subclasses can override any of the available virtual methods or not, as + * needed. At minimum @handle_frame needs to be overridden, and @set_format + * and @get_caps are likely needed as well. + */ struct _GstBaseVideoEncoderClass { - GstBaseVideoCodecClass base_video_codec_class; + GstBaseVideoCodecClass base_video_codec_class; - gboolean (*set_format) (GstBaseVideoEncoder *coder, GstVideoState *state); - gboolean (*start) (GstBaseVideoEncoder *coder); - gboolean (*stop) (GstBaseVideoEncoder *coder); - gboolean (*finish) (GstBaseVideoEncoder *coder); - gboolean (*handle_frame) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); - GstFlowReturn (*shape_output) (GstBaseVideoEncoder *coder, GstVideoFrame *frame); - GstCaps *(*get_caps) (GstBaseVideoEncoder *coder); + /*< public >*/ + /* virtual methods for subclasses */ - /* FIXME before moving to base */ - void *padding[GST_PADDING_LARGE]; -}; + gboolean (*start) (GstBaseVideoEncoder *coder); + + gboolean (*stop) (GstBaseVideoEncoder *coder); + + gboolean (*set_format) (GstBaseVideoEncoder *coder, + GstVideoState *state); -GType gst_base_video_encoder_get_type (void); + GstFlowReturn (*handle_frame) (GstBaseVideoEncoder *coder, + GstVideoFrame *frame); -int gst_base_video_encoder_get_width (GstBaseVideoEncoder *coder); -int gst_base_video_encoder_get_height (GstBaseVideoEncoder *coder); -const GstVideoState *gst_base_video_encoder_get_state (GstBaseVideoEncoder *coder); + gboolean (*reset) (GstBaseVideoEncoder *coder); + GstFlowReturn (*finish) (GstBaseVideoEncoder *coder); -guint64 gst_base_video_encoder_get_timestamp_offset (GstBaseVideoEncoder *coder); + GstFlowReturn (*shape_output) (GstBaseVideoEncoder *coder, + GstVideoFrame *frame); + + gboolean (*event) (GstBaseVideoEncoder *coder, + GstEvent *event); + + /*< private >*/ + /* FIXME before moving to base */ + gpointer _gst_reserved[GST_PADDING_LARGE]; +}; -GstVideoFrame *gst_base_video_encoder_get_frame (GstBaseVideoEncoder *coder, - int frame_number); -GstVideoFrame *gst_base_video_encoder_get_oldest_frame (GstBaseVideoEncoder *coder); -GstFlowReturn gst_base_video_encoder_finish_frame (GstBaseVideoEncoder *base_video_encoder, - GstVideoFrame *frame); -GstFlowReturn gst_base_video_encoder_end_of_stream (GstBaseVideoEncoder *base_video_encoder, - GstBuffer *buffer); +GType gst_base_video_encoder_get_type (void); -void gst_base_video_encoder_set_latency (GstBaseVideoEncoder *base_video_encoder, - GstClockTime min_latency, GstClockTime max_latency); -void gst_base_video_encoder_set_latency_fields (GstBaseVideoEncoder *base_video_encoder, - int n_fields); +const GstVideoState* gst_base_video_encoder_get_state (GstBaseVideoEncoder *coder); +GstVideoFrame* gst_base_video_encoder_get_oldest_frame (GstBaseVideoEncoder *coder); +GstFlowReturn gst_base_video_encoder_finish_frame (GstBaseVideoEncoder *base_video_encoder, + GstVideoFrame *frame); +void gst_base_video_encoder_set_latency (GstBaseVideoEncoder *base_video_encoder, + GstClockTime min_latency, GstClockTime max_latency); +void gst_base_video_encoder_set_latency_fields (GstBaseVideoEncoder *base_video_encoder, + int n_fields); +void gst_base_video_encoder_set_headers (GstBaseVideoEncoder *base_video_encoder, + GstBuffer *headers); G_END_DECLS #endif diff --git a/gst-libs/gst/video/gstbasevideoutils.c b/gst-libs/gst/video/gstbasevideoutils.c index d706394..507ad07 100644 --- a/gst-libs/gst/video/gstbasevideoutils.c +++ b/gst-libs/gst/video/gstbasevideoutils.c @@ -21,7 +21,7 @@ #include "config.h" #endif -#include "gstbasevideocodec.h" +#include "gstbasevideoutils.h" #include @@ -29,21 +29,6 @@ GST_DEBUG_CATEGORY_EXTERN (basevideocodec_debug); #define GST_CAT_DEFAULT basevideocodec_debug -#if 0 -guint64 -gst_base_video_convert_bytes_to_frames (GstVideoState * state, guint64 bytes) -{ - return gst_util_uint64_scale_int (bytes, 1, state->bytes_per_picture); -} - -guint64 -gst_base_video_convert_frames_to_bytes (GstVideoState * state, guint64 frames) -{ - return frames * state->bytes_per_picture; -} -#endif - - gboolean gst_base_video_rawvideo_convert (GstVideoState * state, GstFormat src_format, gint64 src_value, @@ -51,7 +36,10 @@ gst_base_video_rawvideo_convert (GstVideoState * state, { gboolean res = FALSE; - if (src_format == *dest_format) { + g_return_val_if_fail (dest_format != NULL, FALSE); + g_return_val_if_fail (dest_value != NULL, FALSE); + + if (src_format == *dest_format || src_value == 0 || src_value == -1) { *dest_value = src_value; return TRUE; } @@ -81,43 +69,77 @@ gst_base_video_rawvideo_convert (GstVideoState * state, *dest_value = gst_util_uint64_scale (src_value, state->fps_n, GST_SECOND * state->fps_d); res = TRUE; + } else if (src_format == GST_FORMAT_TIME && + *dest_format == GST_FORMAT_BYTES && state->fps_d != 0 && + state->bytes_per_picture != 0) { + /* convert time to frames */ + /* FIXME subtract segment time? */ + *dest_value = gst_util_uint64_scale (src_value, + state->fps_n * state->bytes_per_picture, GST_SECOND * state->fps_d); + res = TRUE; + } else if (src_format == GST_FORMAT_BYTES && + *dest_format == GST_FORMAT_TIME && state->fps_n != 0 && + state->bytes_per_picture != 0) { + /* convert frames to time */ + /* FIXME add segment time? */ + *dest_value = gst_util_uint64_scale (src_value, + GST_SECOND * state->fps_d, state->fps_n * state->bytes_per_picture); + res = TRUE; } - /* FIXME add bytes <--> time */ - return res; } gboolean gst_base_video_encoded_video_convert (GstVideoState * state, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) + gint64 bytes, gint64 time, GstFormat src_format, + gint64 src_value, GstFormat * dest_format, gint64 * dest_value) { gboolean res = FALSE; - if (src_format == *dest_format) { - *dest_value = src_value; + g_return_val_if_fail (dest_format != NULL, FALSE); + g_return_val_if_fail (dest_value != NULL, FALSE); + + if (G_UNLIKELY (src_format == *dest_format || src_value == 0 || + src_value == -1)) { + if (dest_value) + *dest_value = src_value; return TRUE; } - GST_DEBUG ("src convert"); + if (bytes <= 0 || time <= 0) { + GST_DEBUG ("not enough metadata yet to convert"); + goto exit; + } -#if 0 - if (src_format == GST_FORMAT_DEFAULT && *dest_format == GST_FORMAT_TIME) { - if (dec->fps_d != 0) { - *dest_value = gst_util_uint64_scale (granulepos_to_frame (src_value), - dec->fps_d * GST_SECOND, dec->fps_n); - res = TRUE; - } else { + switch (src_format) { + case GST_FORMAT_BYTES: + switch (*dest_format) { + case GST_FORMAT_TIME: + *dest_value = gst_util_uint64_scale (src_value, time, bytes); + res = TRUE; + break; + default: + res = FALSE; + } + break; + case GST_FORMAT_TIME: + switch (*dest_format) { + case GST_FORMAT_BYTES: + *dest_value = gst_util_uint64_scale (src_value, bytes, time); + res = TRUE; + break; + default: + res = FALSE; + } + break; + default: + GST_DEBUG ("unhandled conversion from %d to %d", src_format, + *dest_format); res = FALSE; - } - } else { - GST_WARNING ("unhandled conversion from %d to %d", src_format, - *dest_format); - res = FALSE; } -#endif +exit: return res; } diff --git a/gst-libs/gst/video/gstbasevideoutils.h b/gst-libs/gst/video/gstbasevideoutils.h new file mode 100644 index 0000000..aeca2d1 --- /dev/null +++ b/gst-libs/gst/video/gstbasevideoutils.h @@ -0,0 +1,46 @@ +/* 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_BASE_VIDEO_UTILS_H_ +#define _GST_BASE_VIDEO_UTILS_H_ + +#ifndef GST_USE_UNSTABLE_API +#warning "GstBaseVideoCodec is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include +#include +#include "gstbasevideocodec.h" + +G_BEGIN_DECLS + +gboolean gst_base_video_rawvideo_convert (GstVideoState *state, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 *dest_value); +gboolean gst_base_video_encoded_video_convert (GstVideoState * state, + gint64 bytes, gint64 time, GstFormat src_format, + gint64 src_value, GstFormat * dest_format, gint64 * dest_value); + +GstClockTime gst_video_state_get_timestamp (const GstVideoState *state, + GstSegment *segment, int frame_number); + +G_END_DECLS + +#endif diff --git a/gst-libs/gst/video/gstsurfacebuffer.c b/gst-libs/gst/video/gstsurfacebuffer.c new file mode 100644 index 0000000..61bf4ee --- /dev/null +++ b/gst-libs/gst/video/gstsurfacebuffer.c @@ -0,0 +1,88 @@ +/* GStreamer + * Copyright (C) 2011 Collabora Ltd. + * Copyright (C) 2011 Intel + * + * Author: Nicolas Dufresne + * + * 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 "gstsurfacebuffer.h" + +/** + * SECTION:gstsurfacebuffer + * @short_description: Accelerated surface base class + * + * This base class is used to abstract hardware accelerated buffers and enable + * generic convertion to standard type such as GL textures. The media type for + * those buffers is defined by #GST_VIDEO_CAPS_SURFACE. An implementation + * specific type must be set using the "type" key (e.g. type="vaapi"). + * Available convertion type are speficied using seperate boolean + * arguement (e.g. opengl=true). Having this information in the capabilities + * allow easy negotiating of such feature with other elements (e.g. a + * ClutterGstVideoSink can claim accpeting caps "video/x-surface,opengl=true"). + * + * The GstVideoContext interface is unstable API and may change in future. + * One can define GST_USE_UNSTABLE_API to acknowledge and avoid this warning. + * + */ + +G_DEFINE_TYPE (GstSurfaceBuffer, gst_surface_buffer, GST_TYPE_BUFFER); + +static GstSurfaceConverter * +gst_surface_buffer_default_create_converter (GstSurfaceBuffer * surface, + const gchar * type, GValue * dest) +{ + return NULL; +} + +static void +gst_surface_buffer_class_init (GstSurfaceBufferClass * klass) +{ + klass->create_converter = gst_surface_buffer_default_create_converter; +} + +static void +gst_surface_buffer_init (GstSurfaceBuffer * surface) +{ + /* Nothing to do */ +} + +/** + * gst_surface_buffer_create_converter: + * @buffer: a #GstSurfaceBuffer + * @type: the type to convert to + * @dest: a #GValue containing the destination to upload + * + * This method is used to create a type specific converter. The converter will + * serve as context to accelerate the data convertion. This converter object + * shall be discarded when the pipeline state changes to NULL and renewed when + * caps are changed. + * + * Returns: newly allocated #GstSurfaceConverter + */ +GstSurfaceConverter * +gst_surface_buffer_create_converter (GstSurfaceBuffer * buffer, + const gchar * type, GValue * dest) +{ + g_return_val_if_fail (GST_IS_SURFACE_BUFFER (buffer), FALSE); + return GST_SURFACE_BUFFER_GET_CLASS (buffer)->create_converter (buffer, + type, dest); +} diff --git a/gst-libs/gst/video/gstsurfacebuffer.h b/gst-libs/gst/video/gstsurfacebuffer.h new file mode 100644 index 0000000..6ce6605 --- /dev/null +++ b/gst-libs/gst/video/gstsurfacebuffer.h @@ -0,0 +1,93 @@ +/* GStreamer + * Copyright (C) 2011 Collabora Ltd. + * Copyright (C) 2011 Intel + * + * Author: Nicolas Dufresne + * + * 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_SURFACE_BUFFER_H_ +#define _GST_SURFACE_BUFFER_H_ + +#ifndef GST_USE_UNSTABLE_API +#warning "GstSurfaceBuffer is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SURFACE_BUFFER (gst_surface_buffer_get_type()) +#define GST_SURFACE_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SURFACE_BUFFER,GstSurfaceBuffer)) +#define GST_SURFACE_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SURFACE_BUFFER,GstSurfaceBufferClass)) +#define GST_SURFACE_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_SURFACE_BUFFER,GstSurfaceBufferClass)) +#define GST_IS_SURFACE_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SURFACE_BUFFER)) +#define GST_IS_SURFACE_BUFFER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SURFACE_BUFFER)) + +/** + * GST_VIDEO_CAPS_SURFACE: + * + * Base caps for GstSurfaceBuffer. Implementation specific type must be marked + * using the type attribute (e.g. type=vaapi). Available convertion shall be + * specified using boolean attributes (e.g. opengl=true). + */ +#define GST_VIDEO_CAPS_SURFACE "video/x-surface" + +typedef struct _GstSurfaceBufferClass GstSurfaceBufferClass; + +/** + * GstSurfaceBuffer: + * @parent: parent object + */ +struct _GstSurfaceBuffer +{ + GstBuffer parent; + + /*< private >*/ + void *padding[GST_PADDING]; +}; + +/** + * GstSurfaceBufferClass: + * @parent_class: parent class type. + * @create_converter: vmethod to create a converter. + * + * #GstVideoContextInterface interface. + */ +struct _GstSurfaceBufferClass +{ + GstBufferClass parent_class; + + GstSurfaceConverter * (*create_converter) (GstSurfaceBuffer *buffer, + const gchar *type, + GValue *dest); + + /*< private >*/ + void *padding[GST_PADDING]; +}; + +GType gst_surface_buffer_get_type (void); + +GstSurfaceConverter *gst_surface_buffer_create_converter (GstSurfaceBuffer *buffer, + const gchar *type, + GValue *dest); + +G_END_DECLS + +#endif diff --git a/gst-libs/gst/video/gstsurfaceconverter.c b/gst-libs/gst/video/gstsurfaceconverter.c new file mode 100644 index 0000000..c482ff1 --- /dev/null +++ b/gst-libs/gst/video/gstsurfaceconverter.c @@ -0,0 +1,80 @@ +/* GStreamer + * Copyright (C) 2011 Collabora Ltd. + * Copyright (C) 2011 Intel + * + * Author: Nicolas Dufresne + * + * 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 "gstsurfaceconverter.h" +#include "gstsurfacebuffer.h" + +/** + * SECTION:gstsurfaceconverter + * @short_description: Interface for #GstSurfaceBuffer convertion + * + * Objects implementing this interface are used as a convertion context. This + * allow element optimizing the upload by keeping required resources between + * uploads. The context must be discarded when the pipeline goes to + * #GST_STATE_NULL or renewed whenever the caps are changed. + * + * The GstVideoContext interface is unstable API and may change in future. + * One can define GST_USE_UNSTABLE_API to acknowledge and avoid this warning. + * + * + * + * Example uploading to GL texture + * |[ + * if (G_UNLIKELY (priv->converter == NULL)) + * priv->converter = gst_surface_buffer_create_converter (surface, "opengl", &value); + * + * gst_surface_converter_uplaod (priv->converter, surface); + * ]| + * + */ + +G_DEFINE_INTERFACE (GstSurfaceConverter, gst_surface_converter, G_TYPE_INVALID); + +static void +gst_surface_converter_default_init (GstSurfaceConverterInterface * iface) +{ + /* default virtual functions */ + iface->upload = NULL; +} + +/** + * gst_surface_converter_upload: + * @converter: a #GstSurfaceConverter + * @buffer: the #GstSurfaceBuffer to upload + * + * Convert and uploads the #GstSurfaceBuffer to the converter destination. + * + * Returns: #TRUE on success, #FALSE otherwise + */ +gboolean +gst_surface_converter_upload (GstSurfaceConverter * converter, + GstSurfaceBuffer * buffer) +{ + g_return_val_if_fail (GST_IS_SURFACE_CONVERTER (converter), FALSE); + g_return_val_if_fail (GST_IS_SURFACE_BUFFER (buffer), FALSE); + return GST_SURFACE_CONVERTER_GET_IFACE (converter)->upload (converter, + buffer); +} diff --git a/gst-libs/gst/video/gstsurfaceconverter.h b/gst-libs/gst/video/gstsurfaceconverter.h new file mode 100644 index 0000000..c8fdcc8 --- /dev/null +++ b/gst-libs/gst/video/gstsurfaceconverter.h @@ -0,0 +1,68 @@ +/* GStreamer + * Copyright (C) 2011 Collabora Ltd. + * Copyright (C) 2011 Intel + * + * Author: Nicolas Dufresne + * + * 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_SURFACE_CONVERTER_H_ +#define _GST_SURFACE_CONVERTER_H_ + +#ifndef GST_USE_UNSTABLE_API +#warning "GstSurfaceConverter is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include + +G_BEGIN_DECLS + +/* Forward declaration from gstsurfacebuffer.h */ +typedef struct _GstSurfaceBuffer GstSurfaceBuffer; + +#define GST_TYPE_SURFACE_CONVERTER (gst_surface_converter_get_type ()) +#define GST_SURFACE_CONVERTER(obj) (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SURFACE_CONVERTER, GstSurfaceConverter)) +#define GST_IS_SURFACE_CONVERTER(obj) (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SURFACE_CONVERTER)) +#define GST_SURFACE_CONVERTER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_SURFACE_CONVERTER, GstSurfaceConverterInterface)) + +typedef struct _GstSurfaceConverter GstSurfaceConverter; +typedef struct _GstSurfaceConverterInterface GstSurfaceConverterInterface; + +/** + * GstSurfaceConverterInterface: + * @parent: parent interface type. + * @upload: vmethod to upload #GstSurfaceBuffer. + * + * #GstSurfaceConverterInterface interface. + */ +struct _GstSurfaceConverterInterface +{ + GTypeInterface parent; + + gboolean (*upload) (GstSurfaceConverter *converter, + GstSurfaceBuffer *buffer); +}; + +GType gst_surface_converter_get_type (void); + +gboolean gst_surface_converter_upload (GstSurfaceConverter *converter, + GstSurfaceBuffer *buffer); + +G_END_DECLS + +#endif diff --git a/gst-libs/gst/video/videocontext.c b/gst-libs/gst/video/videocontext.c new file mode 100644 index 0000000..a5458a2 --- /dev/null +++ b/gst-libs/gst/video/videocontext.c @@ -0,0 +1,539 @@ +/* GStreamer + * + * Copyright (C) 2011 Intel + * Copyright (C) 2011 Collabora Ltd. + * Author: Nicolas Dufresne + * + * video-context.c: Video Context interface and helpers + * + * + * 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 "videocontext.h" + +/** + * SECTION:gstvideocontext + * @short_description: Interface to handle video library context + * + * The Video Context interface enable sharing video context (such as display + * name, X11 Display, VA-API Display, etc) between neighboor elements and the + * application. + * + * The GstVideoContext interface is unstable API and may change in future. + * One can define GST_USE_UNSTABLE_API to acknowledge and avoid this warning. + * + * + * + * For Element + * + * This interface shall be implement by group of elements that need to share + * a specific video context (like VDPAU, LibVA, OpenGL elements) or by video + * sink in order to let the application select appropriate display information + * (like the X11 display name) when those sink are auto-plugged. + * + * + * Along with implementing the interface, elements will need to query + * neighboor elements or send message to the application when preparing + * the context (see gst_video_context_prepare()). They also need to reply + * to the neighboors element queries, so the context can be shared without + * the application help. + * + * + * Elements that are guarantied to have both upstream and downstream + * neighboors element implementing the #GstVideoContext (like the gloverlay + * element in gst-plugins-opengl) is not required to also implement the + * interface. Relying on neighboors query shall be sufficient (see + * gst_video_context_run_query()). + * + * + * The query is an application query with a structure name set to + * "prepare-video-context" and an array of supported video context types set + * in the field named "types". This query shall be send downstream and + * upstream, iterating the pads in order to find neighboors regardless of a + * static (sink to src) or a dynamic (src to sink) activation. Element should + * used the helpers method gst_video_context_prepare() (or + * gst_video_context_run_query() if no GstVideoContext interface) to + * correctly execute the query . The result is set using the query helper + * functions, the structures fields name being "video-context-type" as + * string and "video-context" as a #GValue. + * + * + * If the query is not handled by any neighboor, the element should ask the + * application using the "prepare-video-context" message. The application + * may then use the interface to set the video context information. If no + * context was set, the element shall create one using default configuration. + * Elements with multiple src or sink pad shall implement proper locking to + * prevent the race of parallel queries being replied. + * + * + * Well known video-context are: "x11-display-name" a string representing the + * X11 display to use, "x11-display" the X11 Display structure, "va-display", + * the VADisplay structure and more. + * + * + * + * + * For Application + * + * In the case there is no neighboor element with video context to share, + * the element will first turn toward the application, by sending a + * "prepare-video-context" message. This message is sent along with a list + * of supported display types. The application can optionally reply to this + * message by calling appropriate setter through the #GstVideoContext + * interface. If the application supports more then one video context type, + * it should choose the first one to occure in the supported list. It's + * important to remember that the message is delivered from the streaming + * thread, and appropriate locking should be considered. If the application + * does not have a video context to share, the element will simply allocate + * one base on default settings. Usually, only applications using OpenGL + * base sink, or running on special X11 display need to share a video context. + * + * Applications sharing X11 Display structure should always initialize the + * X11 threading support using XInitThreads() as GStreamer will need to + * manipulate the display from a separeate threads. + * + * + * + * Example using ClutterVideoGstVideoSink + * + * This example is for user of ClutterGstVideoSink element, the + * ClutterGstPlayer object transparently handle this. + * + * |[ + * #if CLUTTER_WINDOWING_X11 + * static GstBusSyncReply + * on_sync_message (GstBus * bus, GstMessage * message, gpointer user_data) + * { + * Display *display = user_data; + * GstVideoContext *context; + * const gchar **types; + * + * if (gst_video_context_message_parse_prepare (message, &types, &context)) { + * gint i; + * + * for (i = 0; types[i]; i++) { + * + * if (!strcmp(types[i], "x11-display")) { + * gst_video_context_set_context_pointer (context, "x11-display", display); + * } + * else if (!strcmp(types[i], "x11-display-name")) { + * gst_video_context_set_context_string (context, "x11-display-name", + * DisplayString (display)); + * } else { + * continue; + * } + * + * gst_message_unref (message); + * return GST_BUS_DROP; + * } + * } + * + * return GST_BUS_PASS; + * } + * #endif + * + * gint + * main (gint argc, gchar **argv) + * { + * GstBin *pipeline; + * GstBus *bus; + * + * ... + * + * bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + * + * #if CLUTTER_WINDOWING_X11 + * gst_bus_set_sync_handler (priv->bus, on_sync_message, + * clutter_x11_get_default_display ()); + * #endif + * + * gst_object_unref (GST_OBJECT (priv->bus)); + * + * ... + * } + * ]| + * + * + */ + +G_DEFINE_INTERFACE (GstVideoContext, gst_video_context_iface, G_TYPE_INVALID); + +static inline GstStructure * +gst_video_context_new_structure (const gchar ** types) +{ + return gst_structure_new ("prepare-video-context", + "types", G_TYPE_STRV, types, NULL); +} + +static gboolean +gst_video_context_pad_query (gpointer item, GValue * value, gpointer user_data) +{ + GstPad *pad = GST_PAD (item); + GstQuery *query = user_data; + gboolean res; + + res = gst_pad_peer_query (pad, query); + gst_object_unref (pad); + + if (res) { + g_value_set_boolean (value, TRUE); + return FALSE; + } + + return TRUE; +} + +static void +gst_video_context_iface_default_init (GstVideoContextInterface * iface) +{ + /* default virtual functions */ + iface->set_context = NULL; +} + +/** + * gst_video_context_set_context: + * @context: an element implementing #GstVideoContext + * @type: the type of display being set + * @value: a #GValue containing the context + * + * This is a wrapper for the set_context() virtual method. It is suggested to + * use one of the helpers to avoid having to manipulate #GValue + */ +void +gst_video_context_set_context (GstVideoContext * context, const gchar * type, + const GValue * value) +{ + g_return_if_fail (GST_IS_VIDEO_CONTEXT (context)); + g_return_if_fail (GST_VIDEO_CONTEXT_GET_IFACE (context)->set_context); + + GST_VIDEO_CONTEXT_GET_IFACE (context)->set_context (context, type, value); +} + +/** + * gst_video_context_set_context_string: + * @context: an element implementing #GstVideoContext + * @type: the type of display being set + * @string: a string representing the video context + * + * This helper is commonly used for setting video context represented by a + * string like the X11 display name ("x11-display-name")/ + */ +void +gst_video_context_set_context_string (GstVideoContext * context, + const gchar * type, const gchar * string) +{ + GValue value = { 0 }; + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, string); + gst_video_context_set_context (context, type, &value); + g_value_unset (&value); +} + +/** + * gst_video_context_set_context_pointer: + * @context: an element implementing #GstVideoContext + * @type: the type of display being set + * @pointer: a pointer to the video context + * + * This helper is used for setting video context using a pointer, typically to + * a structure like the X11 Display ("x11-display") or the VADisplay + * ("vaapi-display"). + * + * Users of X11 Display should ensure that XInitThreads() was called before + * opening the display. + * + */ +void +gst_video_context_set_context_pointer (GstVideoContext * context, + const gchar * type, gpointer pointer) +{ + GValue value = { 0 }; + g_value_init (&value, G_TYPE_POINTER); + g_value_set_pointer (&value, pointer); + gst_video_context_set_context (context, type, &value); + g_value_unset (&value); +} + +/** + * gst_video_context_set_context_object: + * @context: an element implementing #GstVideoContext + * @type: the type of display being set + * @object: a #GObject resenting the display + * + * This is for video context that are #GObject, this helper allow taking + * benifit of the #GObject refcounting. It is particularly handy for element + * to have refcounting as the order in which element will stop using the + * display is not defined. + */ +void +gst_video_context_set_context_object (GstVideoContext * context, + const gchar * type, GObject * object) +{ + GValue value = { 0 }; + g_return_if_fail (G_IS_OBJECT (object)); + g_value_init (&value, G_TYPE_OBJECT); + g_value_set_object (&value, object); + gst_video_context_set_context (context, type, &value); + g_value_unset (&value); +} + +/** + * gst_video_context_prepare: + * @context: an element implementing #GstVideoContext interface + * @types: an array of supported types, prefered first + * + * This method run "prepare-video-context" custom query dowstream, and + * upstream. If * the query has a reply, it sets the context value using + * gst_video_context_set_context(). Otherwise, it sends a + * "prepare-video-context" message to the application. The element can then + * continue video context initialization. + */ +void +gst_video_context_prepare (GstVideoContext * context, const gchar ** types) +{ + GstQuery *query = gst_video_context_query_new (types); + + /* Check neighborhood, if found call GstVideoContext */ + if (gst_video_context_run_query (GST_ELEMENT (context), query)) { + const gchar *type = NULL; + const GValue *value; + gst_video_context_query_parse_value (query, &type, &value); + gst_video_context_set_context (context, type, value); + } else { + /* If no neighbor replyed, query the application */ + GstMessage *message; + GstStructure *structure; + + structure = gst_video_context_new_structure (types); + message = gst_message_new_element (GST_OBJECT (context), structure); + gst_element_post_message (GST_ELEMENT (context), message); + } + + gst_query_unref (query); +} + +/** + * gst_video_context_message_parse_prepare: + * @message: a #GstMessage + * @types: return value for supported types + * @context: return value for the element the implements #GstVideoContext + * + * This helper shall be used by application to simply handling of the + * "prepare-video-context" message. + * + * Rerturns: #FALSE is the message was not valid "prepare-video-context" + * element message, otherwise #TRUE with @types and @context set. + */ +gboolean +gst_video_context_message_parse_prepare (GstMessage * message, + const gchar *** types, GstVideoContext ** context) +{ + GstObject *src = GST_MESSAGE_SRC (message); + const GstStructure *structure; + const GValue *value; + + if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT) + return FALSE; + + if (!gst_structure_has_name (message->structure, "prepare-video-context")) + return FALSE; + + if (!GST_IS_VIDEO_CONTEXT (src)) + return FALSE; + + structure = gst_message_get_structure (message); + value = gst_structure_get_value (structure, "types"); + + if (!G_VALUE_HOLDS (value, G_TYPE_STRV)) + return FALSE; + + if (types) + *types = g_value_get_boxed (value); + + if (context) + *context = GST_VIDEO_CONTEXT (src); + + return TRUE; +} + +/** + * gst_video_context_query_new: + * @types: a string array of video context types + * + * Create a new custom #GstQuery with structure name "prepare-video-context". + */ +GstQuery * +gst_video_context_query_new (const gchar ** types) +{ + GstStructure *structure = gst_video_context_new_structure (types); + return gst_query_new_application (GST_QUERY_CUSTOM, structure); +} + +/** + * gst_video_context_run_query: + * @element: a #GstElement + * @query: a #GstQuery + * + * This helper runs the query on each downstream, then upstream pads in an + * element. This is called by gst_video_context_prepare(). This method is only + * used directly within elements that are required to have two neighboors + * elements with appropriate video context. This would be the case of + * specialized filters that only manipulate non-raw buffers (e.g. + * gldeinterlace). Those elements do not have to implement #GstVideoContext + * interface. + */ +gboolean +gst_video_context_run_query (GstElement * element, GstQuery * query) +{ + GstIterator *it; + GstIteratorFoldFunction func = gst_video_context_pad_query; + GValue res = { 0 }; + + g_value_init (&res, G_TYPE_BOOLEAN); + g_value_set_boolean (&res, FALSE); + + /* Ask downstream neighbor (mainly static pipeline case) */ + it = gst_element_iterate_src_pads (element); + + while (gst_iterator_fold (it, func, &res, query) == GST_ITERATOR_RESYNC) + gst_iterator_resync (it); + + gst_iterator_free (it); + + /* If none, ask upstream neighbor (auto-plugged case) */ + if (!g_value_get_boolean (&res)) { + it = gst_element_iterate_sink_pads (element); + + while (gst_iterator_fold (it, func, &res, query) == GST_ITERATOR_RESYNC) + gst_iterator_resync (it); + + gst_iterator_free (it); + } + + return g_value_get_boolean (&res); +} + +/** + * gst_video_context_query_get_supported_types: + * @query: a #GstQuery + * + * Returns: An array of supported video context types + */ +const gchar ** +gst_video_context_query_get_supported_types (GstQuery * query) +{ + GstStructure *structure = gst_query_get_structure (query); + const GValue *value = gst_structure_get_value (structure, "types"); + + if (G_VALUE_HOLDS (value, G_TYPE_STRV)) + return g_value_get_boxed (value); + + return NULL; +} + +/** + * gst_video_context_query_parse_value: + * @query: a #GstQuery + * @type: return video context type + * @value: return video context #GValue + * + * Helper to extract the video context type and value from a #GstQuery. + */ +void +gst_video_context_query_parse_value (GstQuery * query, const gchar ** type, + const GValue ** value) +{ + GstStructure *structure = gst_query_get_structure (query); + + if (type) + *type = gst_structure_get_string (structure, "video-context-type"); + + if (value) + *value = gst_structure_get_value (structure, "video-context"); +} + +/** + * gst_video_context_query_set_value: + * @query: a #GstQuery + * @type: the video context type + * @value: a #GValue set with video context + * + * Helper to set the video context as a #GValue inside the #GstQuery. + */ +void +gst_video_context_query_set_value (GstQuery * query, const gchar * type, + GValue * value) +{ + GstStructure *structure = gst_query_get_structure (query); + gst_structure_set (structure, "video-context-type", G_TYPE_STRING, type, + "video-context", G_TYPE_VALUE, value, NULL); +} + +/** + * gst_video_context_query_set_string: + * @query: a #GstQuery + * @type: the video context type + * @value: a string representing the video context + * + * Helper to set the video context as a string inside the #GstQuery. + */ +void +gst_video_context_query_set_string (GstQuery * query, const gchar * type, + const gchar * value) +{ + GstStructure *structure = gst_query_get_structure (query); + gst_structure_set (structure, "video-context-type", G_TYPE_STRING, type, + "video-context", G_TYPE_STRING, value, NULL); +} + +/** + * gst_video_context_query_set_pointer: + * @query: a #GstQuery + * @type: the video context type + * @value: a #gpointer representing the video context + * + * Helper to set the video context as a #gpointer inside the #GstQuery. + */ +void +gst_video_context_query_set_pointer (GstQuery * query, const gchar * type, + gpointer value) +{ + GstStructure *structure = gst_query_get_structure (query); + gst_structure_set (structure, "video-context-type", G_TYPE_STRING, type, + "video-context", G_TYPE_POINTER, value, NULL); +} + +/** + * gst_video_context_query_set_object: + * @query: a #GstQuery + * @type: the video context type + * @value: a #GObject representing the video context + * + * Helper to set the video context as a #GObject inside the #GstQuery. + */ +void +gst_video_context_query_set_object (GstQuery * query, const gchar * type, + GObject * value) +{ + GstStructure *structure = gst_query_get_structure (query); + gst_structure_set (structure, "video-context-type", G_TYPE_STRING, type, + "video-context", G_TYPE_OBJECT, value, NULL); +} diff --git a/gst-libs/gst/video/videocontext.h b/gst-libs/gst/video/videocontext.h new file mode 100644 index 0000000..5becb56 --- /dev/null +++ b/gst-libs/gst/video/videocontext.h @@ -0,0 +1,117 @@ +/* GStreamer + * + * Copyright (C) 2011 Intel + * Copyright (C) 2011 Collabora Ltd. + * Author: Nicolas Dufresne + * + * video-context.h: Video Context interface and helpers + * + * + * 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_VIDEO_CONTEXT_H__ +#define __GST_VIDEO_CONTEXT_H__ + +#ifndef GST_USE_UNSTABLE_API +#warning "The GstVideoContext interface is unstable API and may change in future." +#warning "You can define GST_USE_UNSTABLE_API to avoid this warning." +#endif + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_VIDEO_CONTEXT (gst_video_context_iface_get_type ()) +#define GST_VIDEO_CONTEXT(obj) (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_CONTEXT, GstVideoContext)) +#define GST_IS_VIDEO_CONTEXT(obj) (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_CONTEXT)) +#define GST_VIDEO_CONTEXT_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_VIDEO_CONTEXT, GstVideoContextInterface)) + +/** + * GstVideoContext: + * + * Opaque #GstVideoContext data structure. + */ +typedef struct _GstVideoContext GstVideoContext; +typedef struct _GstVideoContextInterface GstVideoContextInterface; + +/** + * GstVideoContextInterface: + * @parent: parent interface type. + * @set_context: vmethod to set video context. + * + * #GstVideoContextInterface interface. + */ +struct _GstVideoContextInterface +{ + GTypeInterface parent; + + /* virtual functions */ + void (*set_context) (GstVideoContext * context, + const gchar * type, + const GValue * value); + +}; + +GType gst_video_context_iface_get_type (void); + +/* virtual class method and associated helpers */ +void gst_video_context_set_context (GstVideoContext * context, + const gchar * type, + const GValue * value); +void gst_video_context_set_context_string (GstVideoContext * context, + const gchar * type, + const gchar * value); +void gst_video_context_set_context_pointer (GstVideoContext * context, + const gchar * type, + gpointer value); +void gst_video_context_set_context_object (GstVideoContext * context, + const gchar * type, + GObject * value); + + +/* message helpers */ +void gst_video_context_prepare (GstVideoContext *context, + const gchar ** types); + +gboolean gst_video_context_message_parse_prepare (GstMessage * message, + const gchar *** types, + GstVideoContext ** ctx); + +/* query helpers */ +GstQuery * gst_video_context_query_new (const gchar ** types); +gboolean gst_video_context_run_query (GstElement *element, + GstQuery *query); +const gchar ** gst_video_context_query_get_supported_types (GstQuery * query); +void gst_video_context_query_parse_value (GstQuery * query, + const gchar ** type, + const GValue ** value); +void gst_video_context_query_set_value (GstQuery * query, + const gchar * type, + GValue * value); +void gst_video_context_query_set_string (GstQuery * query, + const gchar * type, + const gchar * value); +void gst_video_context_query_set_pointer (GstQuery * query, + const gchar * type, + gpointer value); +void gst_video_context_query_set_object (GstQuery * query, + const gchar * type, + GObject * value); + +G_END_DECLS + +#endif /* __GST_VIDEO_CONTEXT_H__ */ diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap index a4a3535..c582f47 100644 --- a/gst-plugins-bad.doap +++ b/gst-plugins-bad.doap @@ -35,6 +35,18 @@ real live maintainer, or some actual wide use. + 0.10.23 + 0.10 + The Game Has Changed + 2012-02-20 + + + + + + + + 0.10.22 0.10 Toy Piano diff --git a/gst-plugins-bad.spec.in b/gst-plugins-bad.spec.in index 30348f2..eac41e0 100644 --- a/gst-plugins-bad.spec.in +++ b/gst-plugins-bad.spec.in @@ -1,256 +1,441 @@ -%define majorminor @GST_MAJORMINOR@ -%define gstreamer gstreamer - -%define gst_minver 0.10.0 - -Name: %{gstreamer}-plugins-bad -Version: @VERSION@ -Release: @PACKAGE_VERSION_RELEASE@.gst -Summary: GStreamer plug-ins of bad quality - -%define majorminor @GST_MAJORMINOR@ - -Group: Applications/Multimedia -License: LGPL -URL: http://gstreamer.freedesktop.org/ -Vendor: GStreamer Backpackers Team -Source: http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: %{gstreamer} >= %{gst_minver} -BuildRequires: %{gstreamer}-devel >= %{gst_minver} - -BuildRequires: gcc-c++ -@USE_LADSPA_TRUE@BuildRequires: ladspa-devel -@USE_FAAD_TRUE@BuildRequires: faad2-devel >= 2.0 -@USE_GSM_TRUE@BuildRequires: gsm-devel >= 1.0.10 -@USE_SDL_TRUE@Requires: SDL >= 1.2.0 -@USE_SWFDEC_TRUE@BuildRequires: swfdec-devel -@USE_FAAD_TRUE@Provides: gstreamer-faad = %{version}-%{release} -@USE_FAAC_TRUE@Requires: faac >= 1.23 -@USE_GSM_TRUE@Provides: gstreamer-gsm = %{version}-%{release} -@USE_LIBMMS_TRUE@Requires: libmms >= 0.1 -@USE_MYTHTV_TRUE@Requires: gmyth +%define majorminor @GST_MAJORMINOR@ +%define gstreamer gstreamer + +%define gst_minver 0.10.30 +%define gstpb_minver 0.10.30 + +Summary: GStreamer streaming media framework "bad" plug-ins +Name: gstreamer-plugins-bad +Version: @VERSION@ +Release: @PACKAGE_VERSION_RELEASE@.gst +# The freeze and nfs plugins are LGPLv2 (only) +License: LGPLv2+ and LGPLv2 +Group: Applications/Multimedia +URL: http://gstreamer.freedesktop.org/ +Source: http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Requires: %{gstreamer} >= %{gst_minver} +BuildRequires: %{gstreamer}-devel >= %{gst_minver} +BuildRequires: %{gstreamer}-plugins-base-devel >= %{gstpb_minver} + +BuildRequires: check +BuildRequires: gettext-devel +BuildRequires: PyXML +BuildRequires: libXt-devel +BuildRequires: gtk-doc + +BuildRequires: bzip2-devel +BuildRequires: celt-devel +BuildRequires: dirac-devel +BuildRequires: exempi-devel +BuildRequires: gmyth-devel >= 0.4 +BuildRequires: gsm-devel +BuildRequires: jack-audio-connection-kit-devel +BuildRequires: jasper-devel +BuildRequires: ladspa-devel +BuildRequires: libass-devel +BuildRequires: libcdaudio-devel +%ifnarch s390 s390x +BuildRequires: libdc1394-devel +%endif +BuildRequires: libdvdnav-devel +BuildRequires: libexif-devel +BuildRequires: libiptcdata-devel +BuildRequires: libkate-devel +BuildRequires: libmodplug-devel +BuildRequires: libmpcdec-devel +BuildRequires: libofa-devel +BuildRequires: liboil-devel +BuildRequires: librsvg2-devel +BuildRequires: libsndfile-devel +BuildRequires: libtimidity-devel +BuildRequires: libvpx-devel +BuildRequires: mesa-libGLU-devel +BuildRequires: openssl-devel +BuildRequires: orc-devel +BuildRequires: schroedinger-devel +BuildRequires: SDL-devel +BuildRequires: slv2-devel +BuildRequires: soundtouch-devel +Buildrequires: wavpack-devel +BuildRequires: wildmidi-devel +BuildRequires: zbar-devel +BuildRequires: libdca-devel +BuildRequires: faad2-devel +BuildRequires: xvidcore-devel +BuildRequires: libmms-devel +BuildRequires: mjpegtools-devel +BuildRequires: twolame-devel +BuildRequires: libmimic-devel + + +Obsoletes: gstreamer-plugins-flumpegdemux < 0.10.15-9 +Provides: gstreamer-plugins-flumpegdemux = %{version}-%{release} +Obsoletes: gstreamer-plugins-schroedinger < 1.0.9 +Provides: gstreamer-plugins-schroedinger = %{version}-%{release} + +Provides: gstreamer-plugins-farsight = 0.12.12-1 +Obsoletes: gstreamer-plugins-farsight < 0.12.12 + +%package free +Summary: Extra GStreamer "bad" plugins (Plugins shipped by default in Fedora) +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} + +%description free +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains plug-ins that aren't tested +well enough, or the code is not of good enough quality. %description -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 is a streaming media framework, based on graphs of elements which +operate on media data. + +This package containes the plugins which didn't fit into free or extra + +%package extras +Summary: Extra GStreamer "bad" plugins (less often used "bad" plugins) +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} +Obsoletes: gstreamer-plugins-bad-extras < %{version}-%{release} +Provides: gstreamer-plugins-bad-extras = %{version}-%{release} + +%description extras +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +gstreamer-plugins-bad contains plug-ins that aren't +tested well enough, or the code is not of good enough quality. + +This package (gstreamer-plugins-bad-extras) contains extra "bad" plugins for +sources (mythtv), sinks (jack) and effects (pitch) which are not used +very much and require additional libraries to be installed. + + +%package devel +Summary: Development files for the GStreamer media framework "bad" plug-ins +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: gstreamer-plugins-base-devel +Obsoletes: gstreamer-plugins-bad-devel < %{version}-%{release} +Provides: gstreamer-plugins-bad-devel = %{version}-%{release} + +%description devel +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains the development files for the plug-ins that +aren't tested well enough, or the code is not of good enough quality. + + +%package devel-docs +Summary: Development documentation for the GStreamer "bad" plug-ins +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Obsoletes: gstreamer-plugins-bad-devel-docs < %{version}-%{release} +Provides: gstreamer-plugins-bad-devel-docs = %{version}-%{release} + +%description devel-docs +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains the development documentation for the plug-ins that +aren't tested well enough, or the code is not of good enough quality. -This package contains GStreamer Plugins that are considered to be of bad -quality, even though they might work. %prep %setup -q -n gst-plugins-bad-%{version} %build -%configure --enable-experimental --disable-schemas-compile +%configure \ + --with-package-name="Fedora gstreamer-plugins-bad package" \ + --with-package-origin="http://gstreamer.freedesktop.org" \ + --enable-debug --disable-static --enable-gtk-doc --enable-experimental -make %{?_smp_mflags} +# %{__make} %{?_smp_mflags} +make ERROR_CFLAGS='' ERROR_CXXFLAGS='' %install -rm -rf $RPM_BUILD_ROOT +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR="%{buildroot}" +%find_lang gst-plugins-bad-%{majorminor} -%makeinstall - # Clean out files that should not be part of the rpm. -rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +%{__rm} -f %{buildroot}%{_libdir}/gstreamer-%{majorminor}/*.la +%{__rm} -f %{buildroot}%{_libdir}/*.la -%find_lang gst-plugins-bad-%{majorminor} %clean -rm -rf $RPM_BUILD_ROOT +%{__rm} -rf %{buildroot} + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig %files -f gst-plugins-bad-%{majorminor}.lang -%defattr(-, root, root) -%doc AUTHORS COPYING README REQUIREMENTS gst-plugins-bad.doap +# Plugins without external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstasfmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvdspu.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsmux.so +%ifarch %{ix86} x86_64 +%{_libdir}/gstreamer-%{majorminor}/libgstreal.so +%endif +%{_libdir}/gstreamer-%{majorminor}/libgstsiren.so -# non-core plugins without external dependencies -%{_libdir}/gstreamer-%{majorminor}/libgsttta.so -%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so +# Plugins with external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstdtsdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstfaad.so +%{_libdir}/gstreamer-%{majorminor}/libgstmms.so +%{_libdir}/gstreamer-%{majorminor}/libgstmimic.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2enc.so +%{_libdir}/gstreamer-%{majorminor}/libgstmplex.so +%{_libdir}/gstreamer-%{majorminor}/libgstxvid.so +%{_libdir}/gstreamer-%{majorminor}/libgstfaac.so + +%files free +%defattr(-,root,root,-) +%doc AUTHORS COPYING README REQUIREMENTS +#%{_datadir}/gstreamer-%{majorminor} +%{_libdir}/libgstbasevideo-%{majorminor}.so.* +%{_libdir}/libgstphotography-%{majorminor}.so.* +%{_libdir}/libgstsignalprocessor-%{majorminor}.so.* +%{_libdir}/libgstcodecparsers-%{majorminor}.so.* +# Plugins without external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstadpcmenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstaiff.so +%{_libdir}/gstreamer-%{majorminor}/libgstautoconvert.so +%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so +%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so %{_libdir}/gstreamer-%{majorminor}/libgstcdxaparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstcog.so +%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so +%{_libdir}/gstreamer-%{majorminor}/libgstdataurisrc.so +%{_libdir}/gstreamer-%{majorminor}/libgstdccp.so +%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so +%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so %{_libdir}/gstreamer-%{majorminor}/libgstfreeze.so +%{_libdir}/gstreamer-%{majorminor}/libgstfrei0r.so +%{_libdir}/gstreamer-%{majorminor}/libgstgaudieffects.so +%{_libdir}/gstreamer-%{majorminor}/libgstgeometrictransform.so +%{_libdir}/gstreamer-%{majorminor}/libgstgsettingselements.so %{_libdir}/gstreamer-%{majorminor}/libgsth264parse.so +%{_libdir}/gstreamer-%{majorminor}/libgsthdvparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstid3tag.so +%{_libdir}/gstreamer-%{majorminor}/libgstivfparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstjpegformat.so +%{_libdir}/gstreamer-%{majorminor}/libgstlegacyresample.so +%{_libdir}/gstreamer-%{majorminor}/libgstliveadder.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpeg4videoparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegdemux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegvideoparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstmve.so +%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so %{_libdir}/gstreamer-%{majorminor}/libgstnsf.so %{_libdir}/gstreamer-%{majorminor}/libgstnuvdemux.so +%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstpnm.so %{_libdir}/gstreamer-%{majorminor}/libgstrfbsrc.so -%{_libdir}/gstreamer-%{majorminor}/libgstreal.so -%{_libdir}/gstreamer-%{majorminor}/libgstmve.so -%{_libdir}/gstreamer-%{majorminor}/libgstmpegvideoparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so -%{_libdir}/gstreamer-%{majorminor}/libgstdvdspu.so -%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so -%{_libdir}/gstreamer-%{majorminor}/libgststereo.so -%{_libdir}/gstreamer-%{majorminor}/libgstvcdsrc.so -%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so -%{_libdir}/gstreamer-%{majorminor}/libgstsdpelem.so -%{_libdir}/gstreamer-%{majorminor}/libgstmpeg4videoparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstfbdevsink.so +%{_libdir}/gstreamer-%{majorminor}/libgstrtpmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstsegmentclip.so %{_libdir}/gstreamer-%{majorminor}/libgstrawparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so -%{_libdir}/gstreamer-%{majorminor}/libresindvd.so -%{_libdir}/gstreamer-%{majorminor}/libgstaiff.so -%{_libdir}/gstreamer-%{majorminor}/libgstdccp.so -%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsmux.so %{_libdir}/gstreamer-%{majorminor}/libgstscaletempoplugin.so -%{_libdir}/gstreamer-%{majorminor}/libgstmpegdemux.so -%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsdemux.so -%{_libdir}/gstreamer-%{majorminor}/libgstjp2k.so -%{_libdir}/gstreamer-%{majorminor}/libgstapexsink.so -%{_libdir}/gstreamer-%{majorminor}/libgstlegacyresample.so -%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so -%{_libdir}/gstreamer-%{majorminor}/libgstvmnc.so +%{_libdir}/gstreamer-%{majorminor}/libgstshm.so +%{_libdir}/gstreamer-%{majorminor}/libgstsdpelem.so +%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so +%{_libdir}/gstreamer-%{majorminor}/libgststereo.so +%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so +%{_libdir}/gstreamer-%{majorminor}/libgsttta.so %{_libdir}/gstreamer-%{majorminor}/libgstvideosignal.so -%{_libdir}/gstreamer-%{majorminor}/libgstautoconvert.so -%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so -%{_libdir}/gstreamer-%{majorminor}/libgstliveadder.so -%{_libdir}/gstreamer-%{majorminor}/libgstrtpmux.so -%{_libdir}/gstreamer-%{majorminor}/libgstsiren.so -%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so -%{_libdir}/gstreamer-%{majorminor}/libgstadpcmenc.so -%{_libdir}/gstreamer-%{majorminor}/libgstid3tag.so -%{_libdir}/gstreamer-%{majorminor}/libgsthdvparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so -%{_libdir}/gstreamer-%{majorminor}/libgstasfmux.so -%{_libdir}/gstreamer-%{majorminor}/libgstpnm.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideomaxrate.so %{_libdir}/gstreamer-%{majorminor}/libgstvideomeasure.so -%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so +%{_libdir}/gstreamer-%{majorminor}/libgstvmnc.so %{_libdir}/gstreamer-%{majorminor}/libgstcamerabin2.so -%{_libdir}/gstreamer-%{majorminor}/libgstcdaudio.so -%{_libdir}/gstreamer-%{majorminor}/libgstcog.so -%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so %{_libdir}/gstreamer-%{majorminor}/libgstcolorspace.so %{_libdir}/gstreamer-%{majorminor}/libgstcurl.so -%{_libdir}/gstreamer-%{majorminor}/libgstdataurisrc.so -%{_libdir}/gstreamer-%{majorminor}/libgstdirac.so +%{_libdir}/gstreamer-%{majorminor}/libgstdecklink.so %{_libdir}/gstreamer-%{majorminor}/libgstdvbsuboverlay.so %{_libdir}/gstreamer-%{majorminor}/libgstfieldanalysis.so %{_libdir}/gstreamer-%{majorminor}/libgstfragmented.so -%{_libdir}/gstreamer-%{majorminor}/libgstgaudieffects.so -%{_libdir}/gstreamer-%{majorminor}/libgstgeometrictransform.so %{_libdir}/gstreamer-%{majorminor}/libgstinterlace.so -%{_libdir}/gstreamer-%{majorminor}/libgstinvtelecine.so -%{_libdir}/gstreamer-%{majorminor}/libgstivfparse.so %{_libdir}/gstreamer-%{majorminor}/libgstjp2kdecimator.so -%{_libdir}/gstreamer-%{majorminor}/libgstjpegformat.so -%{_libdir}/gstreamer-%{majorminor}/libgstlv2.so -%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so +%{_libdir}/gstreamer-%{majorminor}/libgstlinsys.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsdemux.so %{_libdir}/gstreamer-%{majorminor}/libgstopencv.so %{_libdir}/gstreamer-%{majorminor}/libgstpatchdetect.so %{_libdir}/gstreamer-%{majorminor}/libgstrtpvp8.so %{_libdir}/gstreamer-%{majorminor}/libgstsdi.so -%{_libdir}/gstreamer-%{majorminor}/libgstsegmentclip.so -%{_libdir}/gstreamer-%{majorminor}/libgstshm.so -%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so %{_libdir}/gstreamer-%{majorminor}/libgstvideofiltersbad.so -%{_libdir}/gstreamer-%{majorminor}/libgstvideomaxrate.so %{_libdir}/gstreamer-%{majorminor}/libgstvideoparsersbad.so -%{_libdir}/gstreamer-%{majorminor}/libgstvp8.so %{_libdir}/gstreamer-%{majorminor}/libgsty4mdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenal.so +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.0 +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.0.0.0 +%{_libdir}/gstreamer-%{majorminor}/libgstaudiovisualizers.so +%{_libdir}/gstreamer-%{majorminor}/libgstfaceoverlay.so +%{_libdir}/gstreamer-%{majorminor}/libgstinter.so +%{_libdir}/gstreamer-%{majorminor}/libgstremovesilence.so + +# System (Linux) specific plugins +%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so +%{_libdir}/gstreamer-%{majorminor}/libgstvcdsrc.so + +# Plugins with external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstapexsink.so +%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so +%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so +%{_libdir}/gstreamer-%{majorminor}/libgstcdaudio.so +%{_libdir}/gstreamer-%{majorminor}/libgstcelt.so +%ifnarch s390 s390x +%{_libdir}/gstreamer-%{majorminor}/libgstdc1394.so +%endif +%{_libdir}/gstreamer-%{majorminor}/libgstdirac.so +%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so +%{_libdir}/gstreamer-%{majorminor}/libgstjp2k.so +%{_libdir}/gstreamer-%{majorminor}/libgstkate.so +%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so +%{_libdir}/gstreamer-%{majorminor}/libgstlv2.so +%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so +%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so +%{_libdir}/gstreamer-%{majorminor}/libgstofa.so +%{_libdir}/gstreamer-%{majorminor}/libresindvd.so +%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so +%{_libdir}/gstreamer-%{majorminor}/libgstschro.so +%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so +%{_libdir}/gstreamer-%{majorminor}/libgstvp8.so + +#debugging plugin +%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so + +#data for plugins +%{_datadir}/glib-2.0/schemas/org.freedesktop.gstreamer-0.10.default-elements.gschema.xml + +%files extras +%defattr(-,root,root,-) +# Plugins with external dependencies +# %{_libdir}/gstreamer-%{majorminor}/libgstjack.so +%{_libdir}/gstreamer-%{majorminor}/libgstmythtvsrc.so +%{_libdir}/gstreamer-%{majorminor}/libgstsdl.so +%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so +%{_libdir}/gstreamer-%{majorminor}/libgsttimidity.so +%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so %{_libdir}/gstreamer-%{majorminor}/libgstzbar.so -%{_libdir}/gstreamer-%{majorminor}/libgstgsettingselements.so -%{_libdir}/gstreamer-%{majorminor}/libgstlinsys.so -%{_libdir}/libgstbasecamerabinsrc-0.10.so -%{_libdir}/libgstbasecamerabinsrc-0.10.so.0 -%{_libdir}/libgstbasecamerabinsrc-0.10.so.0.0.0 +# Linux specific plugins +%{_libdir}/gstreamer-%{majorminor}/libgstfbdevsink.so +%files devel +%defattr(-,root,root,-) +%{_libdir}/libgstbasevideo-%{majorminor}.so +%{_libdir}/libgstphotography-%{majorminor}.so +%{_libdir}/libgstsignalprocessor-%{majorminor}.so +%{_libdir}/libgstcodecparsers-%{majorminor}.so +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so +%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography* +%{_includedir}/gstreamer-%{majorminor}/gst/codecparsers +%{_includedir}/gstreamer-%{majorminor}/gst/signalprocessor +%{_includedir}/gstreamer-%{majorminor}/gst/video %{_includedir}/gstreamer-%{majorminor}/gst/basecamerabinsrc/gstbasecamerasrc.h %{_includedir}/gstreamer-%{majorminor}/gst/basecamerabinsrc/gstcamerabin-enum.h %{_includedir}/gstreamer-%{majorminor}/gst/basecamerabinsrc/gstcamerabinpreview.h -%{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideocodec.h -%{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideodecoder.h -%{_includedir}/gstreamer-%{majorminor}/gst/video/gstbasevideoencoder.h -%{_includedir}/gstreamer-%{majorminor}/gst/signalprocessor/gstsignalprocessor.h - -%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography-enumtypes.h -%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography.h -%{_libdir}/libgstphotography-0.10.so -%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so -%{_libdir}/libgstphotography-%{majorminor}.so.0 -%{_libdir}/libgstphotography-%{majorminor}.so.0.0.0 -%{_libdir}/libgstbasevideo* -%{_libdir}/libgstsignalprocessor* -%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsmux.so -# hopefully very shortlived .pc file for bad -%{_libdir}/pkgconfig/gstreamer-plugins-bad-0.10.pc - -# gstreamer-plugins with external dependencies but in the main package -@USE_FAAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstfaad.so -@USE_FAAC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstfaac.so -@USE_MUSICBRAINZ_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttrm.so -@USE_SDL_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsdl.so -@USE_SWFDEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstswfdec.so -@USE_LIBMMS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmms.so -@USE_XVID_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstxvid.so -@USE_BZ2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so -@USE_NEON_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstneonhttpsrc.so -@USE_MUSEPACK_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so -@USE_GSM_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so -@USE_DTS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdtsdec.so -@USE_LADSPA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so -@USE_MYTHTV_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmythtvsrc.so -@USE_DC1394_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdc1394.so -@USE_TIMIDITY_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttimidity.so -@USE_WILDMIDI_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so -@USE_SNDFILE_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so -@USE_CELT_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcelt.so -@USE_MPEG2ENC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2enc.so -@USE_MPLEX_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmplex.so -@USE_KATE_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstkate.so -@USE_ASSRENDER_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so -@USE_PLUGIN_FREI0R_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstfrei0r.so -@USE_SCHRO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstschro.so -@USE_OFA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstofa.so + +# pkg-config files +%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-codecparsers-0.10.pc + +%files devel-docs +%defattr(-,root,root,-) +%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-plugins-%{majorminor} +%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-libs-%{majorminor} %changelog -* Thu Mar 12 2009 Christian Schaller -- Add Celt, mpeg2enc and mplex plugins to spec file +* Thu May 19 2011 Christian Schaller +- Merge in upstread Fedora RPM into git master one + +* Wed Sep 15 2010 Hans de Goede 0.10.20-3 +- Rebuild for new wildmidi + +* Mon Sep 13 2010 Dan Horák 0.10.20-2 +- no Firewire on s390(x) + +* Mon Sep 06 2010 Benjamin Otte 0.10.20-1 +- Update to 0.10.20 +- Reenable celt + +* Fri Aug 06 2010 Benjamin Otte 0.10.19-6 +- Disable NAS now that it's obsolete + +* Thu Jul 04 2010 Benjamin Otte 0.10.19-5 +- Disable celt now that an update broke it + +* Thu Jun 17 2010 Benjamin Otte 0.10.19-4 +- Move zbar to -extras. It pulls in too many deps and is not really useful. + +* Tue Jun 01 2010 Benjamin Otte 0.10.19-3 +- Put back accidentally deleted make command + +* Tue Jun 1 2010 Ville Skyttä - 0.10.19-2 +- Rebuild. + +* Mon May 31 2010 Benjamin Otte 0.10.19-1 +- Update to 0.10.19 + +* Fri May 15 2010 Benjamin Otte 0.10.18.3-1 +- Update pre-release +- Add vp8 elements + +* Fri May 15 2010 Benjamin Otte 0.10.18.2-1 +- Update to pre-release + +* Thu Apr 15 2010 Benjamin Otte 0.10.18-2 +- Include cog plugin + +* Mon Mar 08 2010 Benjamin Otte 0.10.18-1 +- Update to 0.10.18 -* Thu Oct 9 2008 Christian Schaller -- flacparse, flvmux and j2kdec plugins added +* Thu Mar 04 2010 Benjamin Otte 0.10.17.4-1 +- Update pre-release -* Mon Sep 1 2008 Christian Schaller -- Add tsmux and scaletempo plugins +* Mon Mar 01 2010 Benjamin Otte 0.10.17.3-2 +- Fix Obsoletes and add Provides for extras/devel/docs -* Fri May 2 2008 Christian Schaller -- Add Wildmidi plugin +* Thu Feb 25 2010 Benjamin Otte 0.10.17.3-1 +- Update to pre-release -* Mon Apr 14 2008 Tim-Philipp Müller -- Remove souphttpsrc plugin, which has moved to gst-plugins-good. +* Fri Feb 19 2010 Benjamin Otte 0.10.17.2-1 +- Update to prerelease -* Thu Apr 3 2008 Christian Schaller -- Add new OSSv4 plugin to SPEC file +* Sun Feb 14 2010 Benjamin Otte 0.10.17-7 +- Fix compilation problems with DSO linking (#565015) -* Tue Apr 1 2008 Tim-Philipp Müller -- Update spec file for srtenc plugin rename to subenc +* Thu Feb 04 2010 Bastien Nocera 0.10.17-6 +- Obsolete third-party packages, for upgrade purposes -* Tue Apr 1 2008 Christian Schaller -- Update spec with libgstsrtenc plugin +* Tue Feb 02 2010 Bastien Nocera 0.10.17-5 +- Another try at obsolete problems with flumpegdemux and + schroedinger (#560987) -* Wed Jan 23 2008 Christian Schaller -- Update spec with fbdev sink and rawparse, remove videoparse +* Mon Feb 01 2010 Bastien Nocera 0.10.17-4 +- Add versioned provides for flumpegdemux and schroedinger plugins -* Fri Dec 14 2007 Christian Schaller -- Update spec file with timidity, libgstdvb, libgstsdpelem, libgstspeexresample, libgstmpeg4videoparse +* Wed Jan 27 2010 Bastien Nocera 0.10.17-3 +- Modify original sources with a script to remove problematic + elements, and remove those from the filelist -* Tue Jun 12 2007 Jan Schmidt -- wavpack and qtdemux have moved to good. +* Fri Dec 04 2009 Bastien Nocera 0.10.17-2 +- Add LADSPA plugins -* Thu Mar 22 2007 Christian Schaller -- Add x264 and mpegvideoparse plugins +* Tue Nov 17 2009 Bastien Nocera 0.10.17-1 +- Update to 0.10.17 -* Fri Dec 15 2006 Thomas Vander Stichele -- add doap file -- more cleanup +* Tue Nov 10 2009 Bastien Nocera 0.10.16-2 +- Add schroedinger plugin (#530835) -* Sun Nov 27 2005 Thomas Vander Stichele -- redone for split +* Sat Nov 07 2009 Bastien Nocera 0.10.16-1 +- First version with -free name, updated to 0.10.16 diff --git a/gst/Makefile.in b/gst/Makefile.in index a083ff1..d36ef7d 100644 --- a/gst/Makefile.in +++ b/gst/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -45,6 +45,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -82,11 +83,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -134,7 +135,6 @@ 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@ @@ -152,7 +152,6 @@ 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@ @@ -187,6 +186,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -226,6 +226,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -243,6 +244,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -251,13 +253,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -282,13 +287,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -336,6 +342,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -367,8 +374,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -392,6 +403,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -416,10 +429,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -431,6 +448,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -455,6 +476,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -490,7 +512,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -537,6 +558,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -761,10 +783,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/adpcmdec/Makefile.in b/gst/adpcmdec/Makefile.in index 5077bbc..9da509b 100644 --- a/gst/adpcmdec/Makefile.in +++ b/gst/adpcmdec/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstadpcmdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstadpcmdec_la_OBJECTS = libgstadpcmdec_la-adpcmdec.lo libgstadpcmdec_la_OBJECTS = $(am_libgstadpcmdec_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstadpcmdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstadpcmdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstadpcmdec_la_SOURCES) DIST_SOURCES = $(libgstadpcmdec_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstadpcmdec.la: $(libgstadpcmdec_la_OBJECTS) $(libgstadpcmdec_la_DEPENDENCIES) +libgstadpcmdec.la: $(libgstadpcmdec_la_OBJECTS) $(libgstadpcmdec_la_DEPENDENCIES) $(EXTRA_libgstadpcmdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstadpcmdec_la_LINK) -rpath $(plugindir) $(libgstadpcmdec_la_OBJECTS) $(libgstadpcmdec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,34 +641,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstadpcmdec_la-adpcmdec.lo: adpcmdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmdec_la_CFLAGS) $(CFLAGS) -MT libgstadpcmdec_la-adpcmdec.lo -MD -MP -MF $(DEPDIR)/libgstadpcmdec_la-adpcmdec.Tpo -c -o libgstadpcmdec_la-adpcmdec.lo `test -f 'adpcmdec.c' || echo '$(srcdir)/'`adpcmdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadpcmdec_la-adpcmdec.Tpo $(DEPDIR)/libgstadpcmdec_la-adpcmdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='adpcmdec.c' object='libgstadpcmdec_la-adpcmdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='adpcmdec.c' object='libgstadpcmdec_la-adpcmdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmdec_la_CFLAGS) $(CFLAGS) -c -o libgstadpcmdec_la-adpcmdec.lo `test -f 'adpcmdec.c' || echo '$(srcdir)/'`adpcmdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmdec_la_CFLAGS) $(CFLAGS) -c -o libgstadpcmdec_la-adpcmdec.lo `test -f 'adpcmdec.c' || echo '$(srcdir)/'`adpcmdec.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +771,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/adpcmdec/adpcmdec.c b/gst/adpcmdec/adpcmdec.c index d8a8dec..b97584c 100644 --- a/gst/adpcmdec/adpcmdec.c +++ b/gst/adpcmdec/adpcmdec.c @@ -199,21 +199,21 @@ adpcmdec_sink_setcaps (GstPad * pad, GstCaps * caps) * *===================================================================== */ -static int AdaptationTable[] = { +static const int AdaptationTable[] = { 230, 230, 230, 230, 307, 409, 512, 614, 768, 614, 512, 409, 307, 230, 230, 230 }; -static int AdaptCoeff1[] = { +static const int AdaptCoeff1[] = { 256, 512, 0, 192, 240, 460, 392 }; -static int AdaptCoeff2[] = { +static const int AdaptCoeff2[] = { 0, -256, 0, 64, 0, -208, -232 }; static gint16 -read_sample (guint8 * data) +read_sample (const guint8 * data) { guint16 val = data[0] | (data[1] << 8); return *((gint16 *) & val); @@ -225,7 +225,7 @@ read_sample (guint8 * data) All buffer lengths have been verified by the caller */ static gboolean -adpcmdec_decode_ms_block (ADPCMDec * dec, int n_samples, guint8 * data, +adpcmdec_decode_ms_block (ADPCMDec * dec, int n_samples, const guint8 * data, gint16 * samples) { gint16 pred[2]; @@ -298,11 +298,11 @@ adpcmdec_decode_ms_block (ADPCMDec * dec, int n_samples, guint8 * data, return TRUE; } -static int ima_indx_adjust[16] = { +static const int ima_indx_adjust[16] = { -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8, }; -static int ima_step_size[89] = { +static const int ima_step_size[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, @@ -318,7 +318,7 @@ static int ima_step_size[89] = { All buffer lengths have been verified by the caller */ static gboolean -adpcmdec_decode_ima_block (ADPCMDec * dec, int n_samples, guint8 * data, +adpcmdec_decode_ima_block (ADPCMDec * dec, int n_samples, const guint8 * data, gint16 * samples) { gint16 stepindex[2]; @@ -378,7 +378,7 @@ adpcmdec_decode_ima_block (ADPCMDec * dec, int n_samples, guint8 * data, } static GstFlowReturn -adpcmdec_decode_block (ADPCMDec * dec, guint8 * data, int blocksize) +adpcmdec_decode_block (ADPCMDec * dec, const guint8 * data, int blocksize) { gboolean res; GstBuffer *outbuf = NULL; @@ -562,14 +562,14 @@ adpcmdec_class_init (ADPCMDecClass * klass) adpcmdec_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&adpcmdec_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&adpcmdec_src_template)); + gst_element_class_add_static_pad_template (element_class, + &adpcmdec_sink_template); + gst_element_class_add_static_pad_template (element_class, + &adpcmdec_src_template); gst_element_class_set_details_simple (element_class, "ADPCM decoder", "Codec/Decoder/Audio", "Decode MS and IMA ADPCM audio", - "Pioneers of the Inevitable "); } static gboolean diff --git a/gst/adpcmenc/Makefile.in b/gst/adpcmenc/Makefile.in index 40a4eff..02d715d 100644 --- a/gst/adpcmenc/Makefile.in +++ b/gst/adpcmenc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstadpcmenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstadpcmenc_la_OBJECTS = libgstadpcmenc_la-adpcmenc.lo libgstadpcmenc_la_OBJECTS = $(am_libgstadpcmenc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstadpcmenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstadpcmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstadpcmenc_la_SOURCES) DIST_SOURCES = $(libgstadpcmenc_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstadpcmenc.la: $(libgstadpcmenc_la_OBJECTS) $(libgstadpcmenc_la_DEPENDENCIES) +libgstadpcmenc.la: $(libgstadpcmenc_la_OBJECTS) $(libgstadpcmenc_la_DEPENDENCIES) $(EXTRA_libgstadpcmenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstadpcmenc_la_LINK) -rpath $(plugindir) $(libgstadpcmenc_la_OBJECTS) $(libgstadpcmenc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -614,34 +641,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstadpcmenc_la-adpcmenc.lo: adpcmenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmenc_la_CFLAGS) $(CFLAGS) -MT libgstadpcmenc_la-adpcmenc.lo -MD -MP -MF $(DEPDIR)/libgstadpcmenc_la-adpcmenc.Tpo -c -o libgstadpcmenc_la-adpcmenc.lo `test -f 'adpcmenc.c' || echo '$(srcdir)/'`adpcmenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadpcmenc_la-adpcmenc.Tpo $(DEPDIR)/libgstadpcmenc_la-adpcmenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='adpcmenc.c' object='libgstadpcmenc_la-adpcmenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='adpcmenc.c' object='libgstadpcmenc_la-adpcmenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmenc_la_CFLAGS) $(CFLAGS) -c -o libgstadpcmenc_la-adpcmenc.lo `test -f 'adpcmenc.c' || echo '$(srcdir)/'`adpcmenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadpcmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadpcmenc_la_CFLAGS) $(CFLAGS) -c -o libgstadpcmenc_la-adpcmenc.lo `test -f 'adpcmenc.c' || echo '$(srcdir)/'`adpcmenc.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +771,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/adpcmenc/adpcmenc.c b/gst/adpcmenc/adpcmenc.c index bc45c3d..d8ce1db 100644 --- a/gst/adpcmenc/adpcmenc.c +++ b/gst/adpcmenc/adpcmenc.c @@ -66,11 +66,11 @@ static GstStaticPadTemplate adpcmenc_src_template = #define DEFAULT_ADPCM_BLOCK_SIZE 1024 #define DEFAULT_ADPCM_LAYOUT LAYOUT_ADPCM_DVI -static int ima_indx_adjust[16] = { +static const int ima_indx_adjust[16] = { -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8, }; -static int ima_step_size[89] = { +static const int ima_step_size[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, @@ -302,7 +302,8 @@ adpcmenc_encode_ima_sample (gint16 sample, gint16 * prev_sample, } static gboolean -adpcmenc_encode_ima_block (ADPCMEnc * enc, gint16 * samples, guint8 * outbuf) +adpcmenc_encode_ima_block (ADPCMEnc * enc, const gint16 * samples, + guint8 * outbuf) { const int HEADER_SIZE = 4; gint16 prev_sample[2] = { 0, 0 }; @@ -368,7 +369,7 @@ adpcmenc_encode_ima_block (ADPCMEnc * enc, gint16 * samples, guint8 * outbuf) } static GstFlowReturn -adpcmenc_encode_block (ADPCMEnc * enc, gint16 * samples, int blocksize) +adpcmenc_encode_block (ADPCMEnc * enc, const gint16 * samples, int blocksize) { gboolean res; GstBuffer *outbuf = NULL; @@ -543,14 +544,14 @@ adpcmenc_class_init (ADPCMEncClass * klass) adpcmenc_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&adpcmenc_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&adpcmenc_src_template)); + gst_element_class_add_static_pad_template (element_class, + &adpcmenc_sink_template); + gst_element_class_add_static_pad_template (element_class, + &adpcmenc_src_template); gst_element_class_set_details_simple (element_class, "ADPCM encoder", "Codec/Encoder/Audio", "Encode ADPCM audio", - "Pioneers of the Inevitable "); } static gboolean diff --git a/gst/aiff/Makefile.am b/gst/aiff/Makefile.am index 8c4a1c5..2eb8392 100644 --- a/gst/aiff/Makefile.am +++ b/gst/aiff/Makefile.am @@ -7,6 +7,7 @@ libgstaiff_la_CFLAGS = \ $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) libgstaiff_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(LIBM) libgstaiff_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) diff --git a/gst/aiff/Makefile.in b/gst/aiff/Makefile.in index 1fd3b4a..2db1738 100644 --- a/gst/aiff/Makefile.in +++ b/gst/aiff/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,16 +101,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstaiff_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstaiff_la_OBJECTS = libgstaiff_la-aiff.lo \ libgstaiff_la-aiffmux.lo libgstaiff_la-aiffparse.lo libgstaiff_la_OBJECTS = $(am_libgstaiff_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstaiff_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstaiff_la_SOURCES) DIST_SOURCES = $(libgstaiff_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -537,6 +564,7 @@ libgstaiff_la_CFLAGS = \ $(GST_CFLAGS) libgstaiff_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(LIBM) @@ -608,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstaiff.la: $(libgstaiff_la_OBJECTS) $(libgstaiff_la_DEPENDENCIES) +libgstaiff.la: $(libgstaiff_la_OBJECTS) $(libgstaiff_la_DEPENDENCIES) $(EXTRA_libgstaiff_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaiff_la_LINK) -rpath $(plugindir) $(libgstaiff_la_OBJECTS) $(libgstaiff_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -624,50 +652,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstaiff_la-aiff.lo: aiff.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -MT libgstaiff_la-aiff.lo -MD -MP -MF $(DEPDIR)/libgstaiff_la-aiff.Tpo -c -o libgstaiff_la-aiff.lo `test -f 'aiff.c' || echo '$(srcdir)/'`aiff.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaiff_la-aiff.Tpo $(DEPDIR)/libgstaiff_la-aiff.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aiff.c' object='libgstaiff_la-aiff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aiff.c' object='libgstaiff_la-aiff.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiff.lo `test -f 'aiff.c' || echo '$(srcdir)/'`aiff.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiff.lo `test -f 'aiff.c' || echo '$(srcdir)/'`aiff.c libgstaiff_la-aiffmux.lo: aiffmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -MT libgstaiff_la-aiffmux.lo -MD -MP -MF $(DEPDIR)/libgstaiff_la-aiffmux.Tpo -c -o libgstaiff_la-aiffmux.lo `test -f 'aiffmux.c' || echo '$(srcdir)/'`aiffmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaiff_la-aiffmux.Tpo $(DEPDIR)/libgstaiff_la-aiffmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aiffmux.c' object='libgstaiff_la-aiffmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aiffmux.c' object='libgstaiff_la-aiffmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiffmux.lo `test -f 'aiffmux.c' || echo '$(srcdir)/'`aiffmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiffmux.lo `test -f 'aiffmux.c' || echo '$(srcdir)/'`aiffmux.c libgstaiff_la-aiffparse.lo: aiffparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -MT libgstaiff_la-aiffparse.lo -MD -MP -MF $(DEPDIR)/libgstaiff_la-aiffparse.Tpo -c -o libgstaiff_la-aiffparse.lo `test -f 'aiffparse.c' || echo '$(srcdir)/'`aiffparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaiff_la-aiffparse.Tpo $(DEPDIR)/libgstaiff_la-aiffparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aiffparse.c' object='libgstaiff_la-aiffparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aiffparse.c' object='libgstaiff_la-aiffparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiffparse.lo `test -f 'aiffparse.c' || echo '$(srcdir)/'`aiffparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaiff_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaiff_la_CFLAGS) $(CFLAGS) -c -o libgstaiff_la-aiffparse.lo `test -f 'aiffparse.c' || echo '$(srcdir)/'`aiffparse.c mostlyclean-libtool: -rm -f *.lo @@ -774,10 +796,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/aiff/aiff.c b/gst/aiff/aiff.c index 1e9dfe2..ba89e1a 100644 --- a/gst/aiff/aiff.c +++ b/gst/aiff/aiff.c @@ -22,6 +22,8 @@ #include "config.h" #endif +#include + #include #include "aiffparse.h" @@ -54,6 +56,8 @@ plugin_init (GstPlugin * plugin) ret &= gst_element_register (plugin, "aiffmux", GST_RANK_PRIMARY, GST_TYPE_AIFF_MUX); + gst_tag_register_musicbrainz_tags (); + return ret; } diff --git a/gst/aiff/aiffmux.c b/gst/aiff/aiffmux.c index 39770cf..0d2772a 100644 --- a/gst/aiff/aiffmux.c +++ b/gst/aiff/aiffmux.c @@ -110,10 +110,8 @@ gst_aiff_mux_base_init (gpointer gclass) "AIFF audio muxer", "Muxer/Audio", "Multiplex raw audio into AIFF", "Robert Swain "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } static GstStateChangeReturn @@ -130,6 +128,7 @@ gst_aiff_mux_change_state (GstElement * element, GstStateChange transition) aiffmux->length = 0; aiffmux->rate = 0.0; aiffmux->sent_header = FALSE; + aiffmux->overflow = FALSE; break; default: break; @@ -160,7 +159,7 @@ gst_aiff_mux_class_init (GstAiffMuxClass * klass) (AIFF_FORM_HEADER_LEN + AIFF_COMM_HEADER_LEN + AIFF_SSND_HEADER_LEN) static void -gst_aiff_mux_write_form_header (GstAiffMux * aiffmux, guint audio_data_size, +gst_aiff_mux_write_form_header (GstAiffMux * aiffmux, guint32 audio_data_size, GstByteWriter * writer) { /* ckID == 'FORM' */ @@ -228,7 +227,7 @@ gst_aiff_mux_write_ext (GstByteWriter * writer, double d) */ static void -gst_aiff_mux_write_comm_header (GstAiffMux * aiffmux, guint audio_data_size, +gst_aiff_mux_write_comm_header (GstAiffMux * aiffmux, guint32 audio_data_size, GstByteWriter * writer) { gst_byte_writer_put_uint32_le (writer, GST_MAKE_FOURCC ('C', 'O', 'M', 'M')); @@ -236,13 +235,13 @@ gst_aiff_mux_write_comm_header (GstAiffMux * aiffmux, guint audio_data_size, gst_byte_writer_put_uint16_be (writer, aiffmux->channels); /* numSampleFrames value will be overwritten when known */ gst_byte_writer_put_uint32_be (writer, - (audio_data_size * 8) / (aiffmux->width * aiffmux->channels)); + audio_data_size / (aiffmux->width / 8 * aiffmux->channels)); gst_byte_writer_put_uint16_be (writer, aiffmux->depth); gst_aiff_mux_write_ext (writer, aiffmux->rate); } static void -gst_aiff_mux_write_ssnd_header (GstAiffMux * aiffmux, guint audio_data_size, +gst_aiff_mux_write_ssnd_header (GstAiffMux * aiffmux, guint32 audio_data_size, GstByteWriter * writer) { gst_byte_writer_put_uint32_le (writer, GST_MAKE_FOURCC ('S', 'S', 'N', 'D')); @@ -255,7 +254,7 @@ gst_aiff_mux_write_ssnd_header (GstAiffMux * aiffmux, guint audio_data_size, } static GstFlowReturn -gst_aiff_mux_push_header (GstAiffMux * aiffmux, guint audio_data_size) +gst_aiff_mux_push_header (GstAiffMux * aiffmux, guint32 audio_data_size) { GstFlowReturn ret; GstBuffer *outbuf; @@ -296,12 +295,16 @@ gst_aiff_mux_chain (GstPad * pad, GstBuffer * buf) { GstAiffMux *aiffmux = GST_AIFF_MUX (GST_PAD_PARENT (pad)); GstFlowReturn flow = GST_FLOW_OK; + guint64 cur_size; if (!aiffmux->channels) { gst_buffer_unref (buf); return GST_FLOW_NOT_NEGOTIATED; } + if (G_UNLIKELY (aiffmux->overflow)) + goto overflow; + if (!aiffmux->sent_header) { /* use bogus size initially, we'll write the real * header when we get EOS and know the exact length */ @@ -316,6 +319,20 @@ gst_aiff_mux_chain (GstPad * pad, GstBuffer * buf) aiffmux->sent_header = TRUE; } + /* AIFF has an audio data size limit of slightly under 4 GB. + A value of audiosize + AIFF_HEADER_LEN - 8 is written, so + I'll error out if writing data that makes this overflow. */ + cur_size = aiffmux->length + AIFF_HEADER_LEN - 8; + if (G_UNLIKELY (cur_size + GST_BUFFER_SIZE (buf) >= G_MAXUINT32)) { + GST_ERROR_OBJECT (aiffmux, "AIFF only supports about 4 GB worth of " + "audio data, dropping any further data on the floor"); + GST_ELEMENT_WARNING (aiffmux, STREAM, MUX, ("AIFF has a 4GB size limit"), + ("AIFF only supports about 4 GB worth of audio data, " + "dropping any further data on the floor")); + aiffmux->overflow = TRUE; + goto overflow; + } + GST_LOG_OBJECT (aiffmux, "pushing %u bytes raw audio, ts=%" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); @@ -330,6 +347,13 @@ gst_aiff_mux_chain (GstPad * pad, GstBuffer * buf) flow = gst_pad_push (aiffmux->srcpad, buf); return flow; + +overflow: + { + GST_WARNING_OBJECT (aiffmux, "output file too large, dropping buffer"); + gst_buffer_unref (buf); + return GST_FLOW_OK; + } } static gboolean diff --git a/gst/aiff/aiffmux.h b/gst/aiff/aiffmux.h index 73c1d89..9c0954f 100644 --- a/gst/aiff/aiffmux.h +++ b/gst/aiff/aiffmux.h @@ -81,6 +81,7 @@ struct _GstAiffMux gdouble rate; gboolean sent_header; + gboolean overflow; }; struct _GstAiffMuxClass diff --git a/gst/aiff/aiffparse.c b/gst/aiff/aiffparse.c index a286dce..6dbee68 100644 --- a/gst/aiff/aiffparse.c +++ b/gst/aiff/aiffparse.c @@ -57,6 +57,7 @@ #include "aiffparse.h" #include +#include #include GST_DEBUG_CATEGORY (aiffparse_debug); @@ -104,10 +105,10 @@ gst_aiff_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 (&sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &src_template_factory); gst_element_class_set_details_simple (element_class, "AIFF audio demuxer", "Codec/Demuxer/Audio", @@ -163,6 +164,11 @@ gst_aiff_parse_reset (GstAiffParse * aiff) gst_adapter_clear (aiff->adapter); aiff->adapter = NULL; } + + if (aiff->tags != NULL) { + gst_tag_list_free (aiff->tags); + aiff->tags = NULL; + } } static void @@ -892,6 +898,38 @@ gst_aiff_parse_stream_headers (GstAiffParse * aiff) } break; } + case GST_MAKE_FOURCC ('I', 'D', '3', ' '):{ + GstTagList *tags; + + if (aiff->streaming) { + if (!gst_aiff_parse_peek_chunk (aiff, &tag, &size)) + return GST_FLOW_OK; + + gst_adapter_flush (aiff->adapter, 8); + aiff->offset += 8; + + buf = gst_adapter_take_buffer (aiff->adapter, size); + } else { + if ((res = gst_aiff_parse_read_chunk (aiff, + &aiff->offset, &tag, &buf)) != GST_FLOW_OK) + return res; + } + + GST_LOG_OBJECT (aiff, "ID3 chunk of size %u", GST_BUFFER_SIZE (buf)); + + tags = gst_tag_list_from_id3v2_tag (buf); + gst_buffer_unref (buf); + + GST_INFO_OBJECT (aiff, "ID3 tags: %" GST_PTR_FORMAT, tags); + + if (aiff->tags == NULL) { + aiff->tags = tags; + } else { + gst_tag_list_insert (aiff->tags, tags, GST_TAG_MERGE_APPEND); + gst_tag_list_free (tags); + } + break; + } default: gst_aiff_parse_ignore_chunk (aiff, buf, tag, size); } @@ -1117,6 +1155,11 @@ iterate_adapter: gst_pad_push_event (aiff->srcpad, aiff->start_segment); aiff->start_segment = NULL; } + if (G_UNLIKELY (aiff->tags != NULL)) { + gst_element_found_tags_for_pad (GST_ELEMENT_CAST (aiff), aiff->srcpad, + aiff->tags); + aiff->tags = NULL; + } obtained = GST_BUFFER_SIZE (buf); diff --git a/gst/aiff/aiffparse.h b/gst/aiff/aiffparse.h index b773a15..e7dda17 100644 --- a/gst/aiff/aiffparse.h +++ b/gst/aiff/aiffparse.h @@ -113,6 +113,9 @@ struct _GstAiffParse { /* discont after seek */ gboolean discont; + + /* tags */ + GstTagList *tags; }; struct _GstAiffParseClass { diff --git a/gst/asfmux/Makefile.in b/gst/asfmux/Makefile.in index 1e08c91..9960142 100644 --- a/gst/asfmux/Makefile.in +++ b/gst/asfmux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +119,8 @@ am_libgstasfmux_la_OBJECTS = libgstasfmux_la-gstasfmux.lo \ libgstasfmux_la-gstasfparse.lo libgstasfmux_la-gstrtpasfpay.lo \ libgstasfmux_la-gstasf.lo libgstasfmux_la_OBJECTS = $(am_libgstasfmux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstasfmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +136,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstasfmux_la_SOURCES) DIST_SOURCES = $(libgstasfmux_la_SOURCES) @@ -155,7 +162,6 @@ 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@ @@ -173,7 +179,6 @@ 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@ @@ -208,6 +213,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -247,6 +253,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -264,6 +271,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -272,13 +280,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -303,13 +314,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -357,6 +369,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -388,8 +401,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -413,6 +430,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -437,10 +456,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -452,6 +475,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -476,6 +503,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -511,7 +539,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -622,7 +649,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstasfmux.la: $(libgstasfmux_la_OBJECTS) $(libgstasfmux_la_DEPENDENCIES) +libgstasfmux.la: $(libgstasfmux_la_OBJECTS) $(libgstasfmux_la_DEPENDENCIES) $(EXTRA_libgstasfmux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstasfmux_la_LINK) -rpath $(plugindir) $(libgstasfmux_la_OBJECTS) $(libgstasfmux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -640,66 +667,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstasfmux_la-gstasfmux.lo: gstasfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -MT libgstasfmux_la-gstasfmux.lo -MD -MP -MF $(DEPDIR)/libgstasfmux_la-gstasfmux.Tpo -c -o libgstasfmux_la-gstasfmux.lo `test -f 'gstasfmux.c' || echo '$(srcdir)/'`gstasfmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstasfmux_la-gstasfmux.Tpo $(DEPDIR)/libgstasfmux_la-gstasfmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstasfmux.c' object='libgstasfmux_la-gstasfmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstasfmux.c' object='libgstasfmux_la-gstasfmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfmux.lo `test -f 'gstasfmux.c' || echo '$(srcdir)/'`gstasfmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfmux.lo `test -f 'gstasfmux.c' || echo '$(srcdir)/'`gstasfmux.c libgstasfmux_la-gstasfobjects.lo: gstasfobjects.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -MT libgstasfmux_la-gstasfobjects.lo -MD -MP -MF $(DEPDIR)/libgstasfmux_la-gstasfobjects.Tpo -c -o libgstasfmux_la-gstasfobjects.lo `test -f 'gstasfobjects.c' || echo '$(srcdir)/'`gstasfobjects.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstasfmux_la-gstasfobjects.Tpo $(DEPDIR)/libgstasfmux_la-gstasfobjects.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstasfobjects.c' object='libgstasfmux_la-gstasfobjects.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstasfobjects.c' object='libgstasfmux_la-gstasfobjects.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfobjects.lo `test -f 'gstasfobjects.c' || echo '$(srcdir)/'`gstasfobjects.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfobjects.lo `test -f 'gstasfobjects.c' || echo '$(srcdir)/'`gstasfobjects.c libgstasfmux_la-gstasfparse.lo: gstasfparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -MT libgstasfmux_la-gstasfparse.lo -MD -MP -MF $(DEPDIR)/libgstasfmux_la-gstasfparse.Tpo -c -o libgstasfmux_la-gstasfparse.lo `test -f 'gstasfparse.c' || echo '$(srcdir)/'`gstasfparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstasfmux_la-gstasfparse.Tpo $(DEPDIR)/libgstasfmux_la-gstasfparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstasfparse.c' object='libgstasfmux_la-gstasfparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstasfparse.c' object='libgstasfmux_la-gstasfparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfparse.lo `test -f 'gstasfparse.c' || echo '$(srcdir)/'`gstasfparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasfparse.lo `test -f 'gstasfparse.c' || echo '$(srcdir)/'`gstasfparse.c libgstasfmux_la-gstrtpasfpay.lo: gstrtpasfpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -MT libgstasfmux_la-gstrtpasfpay.lo -MD -MP -MF $(DEPDIR)/libgstasfmux_la-gstrtpasfpay.Tpo -c -o libgstasfmux_la-gstrtpasfpay.lo `test -f 'gstrtpasfpay.c' || echo '$(srcdir)/'`gstrtpasfpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstasfmux_la-gstrtpasfpay.Tpo $(DEPDIR)/libgstasfmux_la-gstrtpasfpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpasfpay.c' object='libgstasfmux_la-gstrtpasfpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpasfpay.c' object='libgstasfmux_la-gstrtpasfpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstrtpasfpay.lo `test -f 'gstrtpasfpay.c' || echo '$(srcdir)/'`gstrtpasfpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstrtpasfpay.lo `test -f 'gstrtpasfpay.c' || echo '$(srcdir)/'`gstrtpasfpay.c libgstasfmux_la-gstasf.lo: gstasf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -MT libgstasfmux_la-gstasf.lo -MD -MP -MF $(DEPDIR)/libgstasfmux_la-gstasf.Tpo -c -o libgstasfmux_la-gstasf.lo `test -f 'gstasf.c' || echo '$(srcdir)/'`gstasf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstasfmux_la-gstasf.Tpo $(DEPDIR)/libgstasfmux_la-gstasf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstasf.c' object='libgstasfmux_la-gstasf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstasf.c' object='libgstasfmux_la-gstasf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasf.lo `test -f 'gstasf.c' || echo '$(srcdir)/'`gstasf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstasfmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstasfmux_la_CFLAGS) $(CFLAGS) -c -o libgstasfmux_la-gstasf.lo `test -f 'gstasf.c' || echo '$(srcdir)/'`gstasf.c mostlyclean-libtool: -rm -f *.lo @@ -806,10 +825,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/asfmux/gstasfmux.c b/gst/asfmux/gstasfmux.c index 4027525..8e6af1d 100644 --- a/gst/asfmux/gstasfmux.c +++ b/gst/asfmux/gstasfmux.c @@ -238,12 +238,11 @@ gst_asf_mux_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 (&audio_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &audio_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_factory); gst_element_class_set_details_simple (element_class, "ASF muxer", "Codec/Muxer", diff --git a/gst/asfmux/gstasfparse.c b/gst/asfmux/gstasfparse.c index ab1f691..4f7bc59 100644 --- a/gst/asfmux/gstasfparse.c +++ b/gst/asfmux/gstasfparse.c @@ -469,10 +469,8 @@ gst_asf_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 (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "ASF parser", "Parser", "Parses ASF", "Thiago Santos "); diff --git a/gst/asfmux/gstrtpasfpay.c b/gst/asfmux/gstrtpasfpay.c index 157533f..22ad431 100644 --- a/gst/asfmux/gstrtpasfpay.c +++ b/gst/asfmux/gstrtpasfpay.c @@ -85,10 +85,10 @@ gst_rtp_asf_pay_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_rtp_asf_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_asf_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_asf_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_asf_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP ASF payloader", "Codec/Payloader/Network", "Payload-encodes ASF into RTP packets (MS_RTSP)", diff --git a/gst/audiovisualizers/Makefile.am b/gst/audiovisualizers/Makefile.am new file mode 100644 index 0000000..f6ee529 --- /dev/null +++ b/gst/audiovisualizers/Makefile.am @@ -0,0 +1,36 @@ +plugin_LTLIBRARIES = libgstaudiovisualizers.la + +libgstaudiovisualizers_la_SOURCES = plugin.c \ + gstbaseaudiovisualizer.c gstbaseaudiovisualizer.h \ + gstspacescope.c gstspacescope.h \ + gstspectrascope.c gstspectrascope.h \ + gstsynaescope.c gstsynaescope.h \ + gstwavescope.c gstwavescope.h + +libgstaudiovisualizers_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) +libgstaudiovisualizers_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + -lgstvideo-$(GST_MAJORMINOR) -lgstfft-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS) $(LIBM) +libgstaudiovisualizers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstaudiovisualizers_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstbaseaudiovisualizer.h gstdrawhelpers.h \ + gstspacescope.h gstspectrascope.h gstsynaescope.h gstwavescope.h + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT audiovisualizers -:SHARED audiovisualizers \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstaudiovisualizers_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstaudiovisualizers_la_CFLAGS) \ + -:LDFLAGS $(libgstaudiovisualizers_la_LDFLAGS) \ + $(libgstaudiovisualizers_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ + diff --git a/gst/audiovisualizers/Makefile.in b/gst/audiovisualizers/Makefile.in new file mode 100644 index 0000000..5615d0e --- /dev/null +++ b/gst/audiovisualizers/Makefile.in @@ -0,0 +1,961 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gst/audiovisualizers +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstaudiovisualizers_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstaudiovisualizers_la_OBJECTS = \ + libgstaudiovisualizers_la-plugin.lo \ + libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo \ + libgstaudiovisualizers_la-gstspacescope.lo \ + libgstaudiovisualizers_la-gstspectrascope.lo \ + libgstaudiovisualizers_la-gstsynaescope.lo \ + libgstaudiovisualizers_la-gstwavescope.lo +libgstaudiovisualizers_la_OBJECTS = \ + $(am_libgstaudiovisualizers_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstaudiovisualizers_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstaudiovisualizers_la_CFLAGS) \ + $(CFLAGS) $(libgstaudiovisualizers_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstaudiovisualizers_la_SOURCES) +DIST_SOURCES = $(libgstaudiovisualizers_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstaudiovisualizers.la +libgstaudiovisualizers_la_SOURCES = plugin.c \ + gstbaseaudiovisualizer.c gstbaseaudiovisualizer.h \ + gstspacescope.c gstspacescope.h \ + gstspectrascope.c gstspectrascope.h \ + gstsynaescope.c gstsynaescope.h \ + gstwavescope.c gstwavescope.h + +libgstaudiovisualizers_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) + +libgstaudiovisualizers_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + -lgstvideo-$(GST_MAJORMINOR) -lgstfft-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS) $(LIBM) + +libgstaudiovisualizers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstaudiovisualizers_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstbaseaudiovisualizer.h gstdrawhelpers.h \ + gstspacescope.h gstspectrascope.h gstsynaescope.h gstwavescope.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 gst/audiovisualizers/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst/audiovisualizers/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 +libgstaudiovisualizers.la: $(libgstaudiovisualizers_la_OBJECTS) $(libgstaudiovisualizers_la_DEPENDENCIES) $(EXTRA_libgstaudiovisualizers_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstaudiovisualizers_la_LINK) -rpath $(plugindir) $(libgstaudiovisualizers_la_OBJECTS) $(libgstaudiovisualizers_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_la-gstbaseaudiovisualizer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_la-gstspacescope.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_la-gstspectrascope.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_la-gstsynaescope.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_la-gstwavescope.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiovisualizers_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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstaudiovisualizers_la-plugin.lo: plugin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-plugin.Tpo -c -o libgstaudiovisualizers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-plugin.Tpo $(DEPDIR)/libgstaudiovisualizers_la-plugin.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstaudiovisualizers_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c + +libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo: gstbaseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-gstbaseaudiovisualizer.Tpo -c -o libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo `test -f 'gstbaseaudiovisualizer.c' || echo '$(srcdir)/'`gstbaseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-gstbaseaudiovisualizer.Tpo $(DEPDIR)/libgstaudiovisualizers_la-gstbaseaudiovisualizer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbaseaudiovisualizer.c' object='libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-gstbaseaudiovisualizer.lo `test -f 'gstbaseaudiovisualizer.c' || echo '$(srcdir)/'`gstbaseaudiovisualizer.c + +libgstaudiovisualizers_la-gstspacescope.lo: gstspacescope.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-gstspacescope.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-gstspacescope.Tpo -c -o libgstaudiovisualizers_la-gstspacescope.lo `test -f 'gstspacescope.c' || echo '$(srcdir)/'`gstspacescope.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-gstspacescope.Tpo $(DEPDIR)/libgstaudiovisualizers_la-gstspacescope.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspacescope.c' object='libgstaudiovisualizers_la-gstspacescope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-gstspacescope.lo `test -f 'gstspacescope.c' || echo '$(srcdir)/'`gstspacescope.c + +libgstaudiovisualizers_la-gstspectrascope.lo: gstspectrascope.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-gstspectrascope.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-gstspectrascope.Tpo -c -o libgstaudiovisualizers_la-gstspectrascope.lo `test -f 'gstspectrascope.c' || echo '$(srcdir)/'`gstspectrascope.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-gstspectrascope.Tpo $(DEPDIR)/libgstaudiovisualizers_la-gstspectrascope.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspectrascope.c' object='libgstaudiovisualizers_la-gstspectrascope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-gstspectrascope.lo `test -f 'gstspectrascope.c' || echo '$(srcdir)/'`gstspectrascope.c + +libgstaudiovisualizers_la-gstsynaescope.lo: gstsynaescope.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-gstsynaescope.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-gstsynaescope.Tpo -c -o libgstaudiovisualizers_la-gstsynaescope.lo `test -f 'gstsynaescope.c' || echo '$(srcdir)/'`gstsynaescope.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-gstsynaescope.Tpo $(DEPDIR)/libgstaudiovisualizers_la-gstsynaescope.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsynaescope.c' object='libgstaudiovisualizers_la-gstsynaescope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-gstsynaescope.lo `test -f 'gstsynaescope.c' || echo '$(srcdir)/'`gstsynaescope.c + +libgstaudiovisualizers_la-gstwavescope.lo: gstwavescope.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -MT libgstaudiovisualizers_la-gstwavescope.lo -MD -MP -MF $(DEPDIR)/libgstaudiovisualizers_la-gstwavescope.Tpo -c -o libgstaudiovisualizers_la-gstwavescope.lo `test -f 'gstwavescope.c' || echo '$(srcdir)/'`gstwavescope.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiovisualizers_la-gstwavescope.Tpo $(DEPDIR)/libgstaudiovisualizers_la-gstwavescope.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavescope.c' object='libgstaudiovisualizers_la-gstwavescope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiovisualizers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiovisualizers_la_CFLAGS) $(CFLAGS) -c -o libgstaudiovisualizers_la-gstwavescope.lo `test -f 'gstwavescope.c' || echo '$(srcdir)/'`gstwavescope.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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 audiovisualizers -:SHARED audiovisualizers \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstaudiovisualizers_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstaudiovisualizers_la_CFLAGS) \ + -:LDFLAGS $(libgstaudiovisualizers_la_LDFLAGS) \ + $(libgstaudiovisualizers_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/gst/audiovisualizers/README b/gst/audiovisualizers/README new file mode 100644 index 0000000..be2491e --- /dev/null +++ b/gst/audiovisualizers/README @@ -0,0 +1,84 @@ +A basclass for audiovisualizers. Takes care of re-fitting the audio-rate to +video-rate. It receives audio-data at the sampling-rate. It needs to render +video-frames at frame-rate. The rendering needs n audio samples (depends on +subclass). The baseclass takes care of that. + +Some effects could be enhanced by running geometrictransform/effecttc elements +afterwards. + += Feedback = +* put 'Audio' to klass as well ? + += API = + +* we have a couple of drawing helpers in gstdrawhelpers.h + (would be nice if we could use cairo) + draw_point (x,y,color); + draw_line (x1,x2,y1,y2,color); +* some more we could add: + draw_hline (x1,x2,y,color); + draw_vline (x,y1,y2,color); + draw_rect (x1,x2,y1,y2,color); + draw_box (x1,x2,y1,y2,color); // filled +* shading effects + - would be nice to use a generic 3x3 matrix operation, we don't run inplace + anyway + - this way we could also blur the background + += Elements to port = +gst-plugin-ugly/gst/synaestesia -> synaescope +gst-plugin-bad/gst/smoothwave -> wavescope +gst-plugin-good/gst/monoscope -> blend into what we have in wavescope + += Elements to add = +spectrascope - done +spacescope - stereo wavescope +- left->x, right->y - done +- polar mapping +wavescope +- we could have a bouncing line as a base, like a quix: + - two dots moving on a linear path and getting a new random dx,dy when hitting + a border + - the abs(dx/dy) - speed of movement - could be scaled by the sound level + - we would need to rotate, stretch and clip the waveform drawing to fit the + line + - we could scratch the rotate part and just stretch/squeeze x and shift/clip y + +xxxscope +- have a matrix of source and drawing-functions + - sources: audio, spectrum, audio-low, audio-mid, audio-hi + - drawing: waves (style, color), space (style,color) +- have the usual shade and move operations +- have a way to draw each operator in one or more color-channels +- we could calculate the sound-level (like in level element) and modulate + colors/movements + - for filtered low/mid/hi audio we could use different peak-falloffs + += TODO = +- element maker template +- test for baseclass + +- we probably want a VisBin like the gnome video effects +- this way we can specify pipeline fragments +- VisBin can use a videomixer to switch effects based on time or song +- VisBin can e.g. control a text-overlay to render the title into the + visualisation for a while + += Test it = + +GST_DEBUG="*:2,*scope*:4" + +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-inspect scopes + +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch audiotestsrc ! audioconvert ! wavescope ! colorspace ! ximagesink +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! wavescope ! colorspace ! ximagesink +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! wavescope style=lines shade-amount=0x00080402 ! edgetv ! vertigotv ! ximagesink + +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spacescope style=lines shade-amount=0x00080402 ! ximagesink +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spacescope style=lines shade-amount=0x00080402 ! vertigotv ! ximagesink + +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spectrascope ! colorspace ! ximagesink +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spectrascope shader=fade-and-move-up shade-amount=0x00040302 ! colorspace ! ximagesink + +GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! tee name=t ! queue ! audioconvert ! synaesthesia ! ximagesink t. ! queue ! synaescope shade-amount=0x00040404 ! colorspace ! ximagesink + diff --git a/gst/audiovisualizers/gstbaseaudiovisualizer.c b/gst/audiovisualizers/gstbaseaudiovisualizer.c new file mode 100644 index 0000000..6d42b7d --- /dev/null +++ b/gst/audiovisualizers/gstbaseaudiovisualizer.c @@ -0,0 +1,865 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstbaseaudiovisualizer.h: base class for audio visualisation elements + * + * 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. + */ +/** + * SECTION:gstbaseaudiovisualizer + * + * A basclass for scopes (visualizers). It takes care of re-fitting the + * audio-rate to video-rate and handles renegotiation (downstream video size + * changes). + * + * It also provides several background shading effects. These effects are + * applied to a previous picture before the render() implementation can draw a + * new frame. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include + +#include "gstbaseaudiovisualizer.h" + +GST_DEBUG_CATEGORY_STATIC (base_audio_visualizer_debug); +#define GST_CAT_DEFAULT (base_audio_visualizer_debug) + +#define DEFAULT_SHADER GST_BASE_AUDIO_VISUALIZER_SHADER_FADE +#define DEFAULT_SHADE_AMOUNT 0x000a0a0a + +enum +{ + PROP_0, + PROP_SHADER, + PROP_SHADE_AMOUNT +}; + +static GstBaseTransformClass *parent_class = NULL; + +static void gst_base_audio_visualizer_class_init (GstBaseAudioVisualizerClass * + klass); +static void gst_base_audio_visualizer_init (GstBaseAudioVisualizer * scope, + GstBaseAudioVisualizerClass * g_class); +static void gst_base_audio_visualizer_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_base_audio_visualizer_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); +static void gst_base_audio_visualizer_dispose (GObject * object); + +static gboolean gst_base_audio_visualizer_src_negotiate (GstBaseAudioVisualizer + * scope); +static gboolean gst_base_audio_visualizer_src_setcaps (GstPad * pad, + GstCaps * caps); +static gboolean gst_base_audio_visualizer_sink_setcaps (GstPad * pad, + GstCaps * caps); + +static GstFlowReturn gst_base_audio_visualizer_chain (GstPad * pad, + GstBuffer * buffer); +static GstStateChangeReturn gst_base_audio_visualizer_change_state (GstElement * + element, GstStateChange transition); + +/* shading functions */ + +#define GST_TYPE_BASE_AUDIO_VISUALIZER_SHADER (gst_base_audio_visualizer_shader_get_type()) +static GType +gst_base_audio_visualizer_shader_get_type (void) +{ + static GType shader_type = 0; + static const GEnumValue shaders[] = { + {GST_BASE_AUDIO_VISUALIZER_SHADER_NONE, "None", "none"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE, "Fade", "fade"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP, "Fade and move up", + "fade-and-move-up"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN, "Fade and move down", + "fade-and-move-down"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT, "Fade and move left", + "fade-and-move-left"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT, + "Fade and move right", + "fade-and-move-right"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT, + "Fade and move horizontally out", "fade-and-move-horiz-out"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN, + "Fade and move horizontally in", "fade-and-move-horiz-in"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT, + "Fade and move vertically out", "fade-and-move-vert-out"}, + {GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN, + "Fade and move vertically in", "fade-and-move-vert-in"}, + {0, NULL, NULL}, + }; + + if (G_UNLIKELY (shader_type == 0)) { + shader_type = + g_enum_register_static ("GstBaseAudioVisualizerShader", shaders); + } + return shader_type; +} + +/* we're only supporting GST_VIDEO_FORMAT_xRGB right now) */ +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + +#define SHADE1(_d, _s, _i, _r, _g, _b) \ +G_STMT_START { \ + _d[_i] = (_s[_i] > _b) ? _s[_i] - _b : 0; \ + _i++; \ + _d[_i] = (_s[_i] > _g) ? _s[_i] - _g : 0; \ + _i++; \ + _d[_i] = (_s[_i] > _r) ? _s[_i] - _r : 0; \ + _i++; \ + _d[_i++] = 0; \ +} G_STMT_END + +#define SHADE2(_d, _s, _j, _i, _r, _g, _b) \ +G_STMT_START { \ + _d[_j++] = (_s[_i] > _b) ? _s[_i] - _b : 0; \ + _i++; \ + _d[_j++] = (_s[_i] > _g) ? _s[_i] - _g : 0; \ + _i++; \ + _d[_j++] = (_s[_i] > _r) ? _s[_i] - _r : 0; \ + _i++; \ + _d[_j++] = 0; \ + _i++; \ +} G_STMT_END + +#else + +#define SHADE1(_d, _s, _i, _r, _g, _b) \ +G_STMT_START { \ + _d[_i++] = 0; \ + _d[_i] = (_s[_i] > _r) ? _s[_i] - _r : 0; \ + _i++; \ + _d[_i] = (_s[_i] > _g) ? _s[_i] - _g : 0; \ + _i++; \ + _d[_i] = (_s[_i] > _b) ? _s[_i] - _b : 0; \ + _i++; \ +} G_STMT_END + +#define SHADE2(_d, _s, _j, _i, _r, _g, _b) \ +G_STMT_START { \ + _d[_j++] = 0; \ + _i++; \ + _d[_j++] = (_s[_i] > _r) ? _s[_i] - _r : 0; \ + _i++; \ + _d[_j++] = (_s[_i] > _g) ? _s[_i] - _g : 0; \ + _i++; \ + _d[_j++] = (_s[_i] > _b) ? _s[_i] - _b : 0; \ + _i++; \ +} G_STMT_END + +#endif + +static void +shader_fade (GstBaseAudioVisualizer * scope, const guint8 * s, guint8 * d) +{ + guint i, bpf = scope->bpf; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + for (i = 0; i < bpf;) { + SHADE1 (d, s, i, r, g, b); + } +} + +static void +shader_fade_and_move_up (GstBaseAudioVisualizer * scope, const guint8 * s, + guint8 * d) +{ + guint i, j, bpf = scope->bpf; + guint bpl = 4 * scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + for (j = 0, i = bpl; i < bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } +} + +static void +shader_fade_and_move_down (GstBaseAudioVisualizer * scope, const guint8 * s, + guint8 * d) +{ + guint i, j, bpf = scope->bpf; + guint bpl = 4 * scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + for (j = bpl, i = 0; j < bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } +} + +static void +shader_fade_and_move_left (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, k, bpf = scope->bpf; + guint w = scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move to the left */ + for (j = 0, i = 4; i < bpf;) { + for (k = 0; k < w - 1; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + i += 4; + j += 4; + } +} + +static void +shader_fade_and_move_right (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, k, bpf = scope->bpf; + guint w = scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move to the left */ + for (j = 4, i = 0; i < bpf;) { + for (k = 0; k < w - 1; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + i += 4; + j += 4; + } +} + +static void +shader_fade_and_move_horiz_out (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, bpf = scope->bpf / 2; + guint bpl = 4 * scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move upper half up */ + for (j = 0, i = bpl; i < bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } + /* move lower half down */ + for (j = bpf + bpl, i = bpf; j < bpf + bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } +} + +static void +shader_fade_and_move_horiz_in (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, bpf = scope->bpf / 2; + guint bpl = 4 * scope->width; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move upper half down */ + for (i = 0, j = bpl; i < bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } + /* move lower half up */ + for (i = bpf + bpl, j = bpf; i < bpf + bpf;) { + SHADE2 (d, s, j, i, r, g, b); + } +} + +static void +shader_fade_and_move_vert_out (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, k, bpf = scope->bpf; + guint m = scope->width / 2; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move left half to the left */ + for (j = 0, i = 4; i < bpf;) { + for (k = 0; k < m; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + j += 4 * m; + i += 4 * m; + } + /* move right half to the right */ + for (j = 4 * (m + 1), i = 4 * m; j < bpf;) { + for (k = 0; k < m; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + j += 4 * m; + i += 4 * m; + } +} + +static void +shader_fade_and_move_vert_in (GstBaseAudioVisualizer * scope, + const guint8 * s, guint8 * d) +{ + guint i, j, k, bpf = scope->bpf; + guint m = scope->width / 2; + guint r = (scope->shade_amount >> 16) & 0xff; + guint g = (scope->shade_amount >> 8) & 0xff; + guint b = (scope->shade_amount >> 0) & 0xff; + + /* move left half to the right */ + for (j = 4, i = 0; j < bpf;) { + for (k = 0; k < m; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + j += 4 * m; + i += 4 * m; + } + /* move right half to the left */ + for (j = 4 * m, i = 4 * (m + 1); i < bpf;) { + for (k = 0; k < m; k++) { + SHADE2 (d, s, j, i, r, g, b); + } + j += 4 * m; + i += 4 * m; + } +} + +static void +gst_base_audio_visualizer_change_shader (GstBaseAudioVisualizer * scope) +{ + switch (scope->shader_type) { + case GST_BASE_AUDIO_VISUALIZER_SHADER_NONE: + scope->shader = NULL; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE: + scope->shader = shader_fade; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP: + scope->shader = shader_fade_and_move_up; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: + scope->shader = shader_fade_and_move_down; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: + scope->shader = shader_fade_and_move_left; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: + scope->shader = shader_fade_and_move_right; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: + scope->shader = shader_fade_and_move_horiz_out; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: + scope->shader = shader_fade_and_move_horiz_in; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: + scope->shader = shader_fade_and_move_vert_out; + break; + case GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: + scope->shader = shader_fade_and_move_vert_in; + break; + default: + GST_ERROR ("invalid shader function"); + scope->shader = NULL; + break; + } +} + +/* base class */ + +GType +gst_base_audio_visualizer_get_type (void) +{ + static volatile gsize base_audio_visualizer_type = 0; + + if (g_once_init_enter (&base_audio_visualizer_type)) { + static const GTypeInfo base_audio_visualizer_info = { + sizeof (GstBaseAudioVisualizerClass), + NULL, + NULL, + (GClassInitFunc) gst_base_audio_visualizer_class_init, + NULL, + NULL, + sizeof (GstBaseAudioVisualizer), + 0, + (GInstanceInitFunc) gst_base_audio_visualizer_init, + }; + GType _type; + + _type = g_type_register_static (GST_TYPE_ELEMENT, + "GstBaseAudioVisualizer", &base_audio_visualizer_info, + G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&base_audio_visualizer_type, _type); + } + return (GType) base_audio_visualizer_type; +} + +static void +gst_base_audio_visualizer_class_init (GstBaseAudioVisualizerClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstElementClass *element_class = (GstElementClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + GST_DEBUG_CATEGORY_INIT (base_audio_visualizer_debug, "baseaudiovisualizer", + 0, "scope audio visualisation base class"); + + gobject_class->set_property = gst_base_audio_visualizer_set_property; + gobject_class->get_property = gst_base_audio_visualizer_get_property; + gobject_class->dispose = gst_base_audio_visualizer_dispose; + + element_class->change_state = + GST_DEBUG_FUNCPTR (gst_base_audio_visualizer_change_state); + + g_object_class_install_property (gobject_class, PROP_SHADER, + g_param_spec_enum ("shader", "shader type", + "Shader function to apply on each frame", + GST_TYPE_BASE_AUDIO_VISUALIZER_SHADER, DEFAULT_SHADER, + G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_SHADE_AMOUNT, + g_param_spec_uint ("shade-amount", "shade amount", + "Shading color to use (big-endian ARGB)", 0, G_MAXUINT32, + DEFAULT_SHADE_AMOUNT, + G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_base_audio_visualizer_init (GstBaseAudioVisualizer * scope, + GstBaseAudioVisualizerClass * g_class) +{ + GstPadTemplate *pad_template; + + /* create the sink and src pads */ + pad_template = + gst_element_class_get_pad_template (GST_ELEMENT_CLASS (g_class), "sink"); + g_return_if_fail (pad_template != NULL); + scope->sinkpad = gst_pad_new_from_template (pad_template, "sink"); + gst_pad_set_chain_function (scope->sinkpad, + GST_DEBUG_FUNCPTR (gst_base_audio_visualizer_chain)); + gst_pad_set_setcaps_function (scope->sinkpad, + GST_DEBUG_FUNCPTR (gst_base_audio_visualizer_sink_setcaps)); + gst_element_add_pad (GST_ELEMENT (scope), scope->sinkpad); + + pad_template = + gst_element_class_get_pad_template (GST_ELEMENT_CLASS (g_class), "src"); + g_return_if_fail (pad_template != NULL); + scope->srcpad = gst_pad_new_from_template (pad_template, "src"); + gst_pad_set_setcaps_function (scope->srcpad, + GST_DEBUG_FUNCPTR (gst_base_audio_visualizer_src_setcaps)); + gst_element_add_pad (GST_ELEMENT (scope), scope->srcpad); + + scope->adapter = gst_adapter_new (); + scope->inbuf = gst_buffer_new (); + + /* properties */ + scope->shader_type = DEFAULT_SHADER; + gst_base_audio_visualizer_change_shader (scope); + scope->shade_amount = DEFAULT_SHADE_AMOUNT; + + /* reset the initial video state */ + scope->width = 320; + scope->height = 200; + scope->fps_n = 25; /* desired frame rate */ + scope->fps_d = 1; + scope->frame_duration = GST_CLOCK_TIME_NONE; + + /* reset the initial audio state */ + scope->rate = GST_AUDIO_DEF_RATE; + scope->channels = 2; + + scope->next_ts = GST_CLOCK_TIME_NONE; + + scope->config_lock = g_mutex_new (); +} + +static void +gst_base_audio_visualizer_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstBaseAudioVisualizer *scope = GST_BASE_AUDIO_VISUALIZER (object); + + switch (prop_id) { + case PROP_SHADER: + scope->shader_type = g_value_get_enum (value); + gst_base_audio_visualizer_change_shader (scope); + break; + case PROP_SHADE_AMOUNT: + scope->shade_amount = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_base_audio_visualizer_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstBaseAudioVisualizer *scope = GST_BASE_AUDIO_VISUALIZER (object); + + switch (prop_id) { + case PROP_SHADER: + g_value_set_enum (value, scope->shader_type); + break; + case PROP_SHADE_AMOUNT: + g_value_set_uint (value, scope->shade_amount); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_base_audio_visualizer_dispose (GObject * object) +{ + GstBaseAudioVisualizer *scope = GST_BASE_AUDIO_VISUALIZER (object); + + if (scope->adapter) { + g_object_unref (scope->adapter); + scope->adapter = NULL; + } + if (scope->inbuf) { + gst_buffer_unref (scope->inbuf); + scope->inbuf = NULL; + } + if (scope->pixelbuf) { + g_free (scope->pixelbuf); + scope->pixelbuf = NULL; + } + if (scope->config_lock) { + g_mutex_free (scope->config_lock); + scope->config_lock = NULL; + } + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static gboolean +gst_base_audio_visualizer_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstBaseAudioVisualizer *scope; + GstStructure *structure; + gint channels; + gint rate; + gboolean res = TRUE; + + scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad)); + structure = gst_caps_get_structure (caps, 0); + + if (!gst_structure_get_int (structure, "channels", &channels) || + !gst_structure_get_int (structure, "rate", &rate)) + goto missing_caps_details; + + if (channels != 2) + goto wrong_channels; + + if (rate <= 0) + goto wrong_rate; + + scope->channels = channels; + scope->rate = rate; + + GST_DEBUG_OBJECT (scope, "audio: channels %d, rate %d", + scope->channels, scope->rate); + +done: + gst_object_unref (scope); + return res; + + /* Errors */ +missing_caps_details: + { + GST_WARNING_OBJECT (scope, "missing channels or rate in the caps"); + res = FALSE; + goto done; + } +wrong_channels: + { + GST_WARNING_OBJECT (scope, "number of channels must be 2, but is %d", + channels); + res = FALSE; + goto done; + } +wrong_rate: + { + GST_WARNING_OBJECT (scope, "sample rate must be >0, but is %d", rate); + res = FALSE; + goto done; + } +} + +static gboolean +gst_base_audio_visualizer_src_negotiate (GstBaseAudioVisualizer * scope) +{ + GstCaps *othercaps, *target, *intersect; + GstStructure *structure; + const GstCaps *templ; + + templ = gst_pad_get_pad_template_caps (scope->srcpad); + + GST_DEBUG_OBJECT (scope, "performing negotiation"); + + /* see what the peer can do */ + othercaps = gst_pad_peer_get_caps (scope->srcpad); + if (othercaps) { + intersect = gst_caps_intersect (othercaps, templ); + gst_caps_unref (othercaps); + + if (gst_caps_is_empty (intersect)) + goto no_format; + + target = gst_caps_copy_nth (intersect, 0); + gst_caps_unref (intersect); + } else { + target = gst_caps_ref ((GstCaps *) templ); + } + + structure = gst_caps_get_structure (target, 0); + gst_structure_fixate_field_nearest_int (structure, "width", scope->width); + gst_structure_fixate_field_nearest_int (structure, "height", scope->height); + gst_structure_fixate_field_nearest_fraction (structure, "framerate", + scope->fps_n, scope->fps_d); + + GST_DEBUG_OBJECT (scope, "final caps are %" GST_PTR_FORMAT, target); + + gst_pad_set_caps (scope->srcpad, target); + gst_caps_unref (target); + + return TRUE; + +no_format: + { + gst_caps_unref (intersect); + return FALSE; + } +} + +static gboolean +gst_base_audio_visualizer_src_setcaps (GstPad * pad, GstCaps * caps) +{ + GstBaseAudioVisualizer *scope; + GstBaseAudioVisualizerClass *klass; + gint w, h; + gint num, denom; + GstVideoFormat format; + gboolean res = TRUE; + + scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad)); + klass = GST_BASE_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope)); + + if (!gst_video_format_parse_caps (caps, &format, &w, &h)) { + goto missing_caps_details; + } + if (!gst_video_parse_caps_framerate (caps, &num, &denom)) { + goto missing_caps_details; + } + + g_mutex_lock (scope->config_lock); + + scope->width = w; + scope->height = h; + scope->fps_n = num; + scope->fps_d = denom; + scope->video_format = format; + + scope->frame_duration = gst_util_uint64_scale_int (GST_SECOND, + scope->fps_d, scope->fps_n); + scope->spf = gst_util_uint64_scale_int (scope->rate, + scope->fps_d, scope->fps_n); + scope->req_spf = scope->spf; + + scope->bpf = w * h * 4; + + if (scope->pixelbuf) + g_free (scope->pixelbuf); + scope->pixelbuf = g_malloc0 (scope->bpf); + + if (klass->setup) + res = klass->setup (scope); + + GST_DEBUG_OBJECT (scope, "video: dimension %dx%d, framerate %d/%d", + scope->width, scope->height, scope->fps_n, scope->fps_d); + GST_DEBUG_OBJECT (scope, "blocks: spf %u, req_spf %u", + scope->spf, scope->req_spf); + + g_mutex_unlock (scope->config_lock); + +done: + gst_object_unref (scope); + return res; + + /* Errors */ +missing_caps_details: + { + GST_WARNING_OBJECT (scope, + "missing width, height or framerate in the caps"); + res = FALSE; + goto done; + } +} + +static GstFlowReturn +gst_base_audio_visualizer_chain (GstPad * pad, GstBuffer * buffer) +{ + GstFlowReturn ret = GST_FLOW_OK; + GstBaseAudioVisualizer *scope; + GstBaseAudioVisualizerClass *klass; + GstBuffer *inbuf; + guint avail, sbpf; + guint8 *adata; + gboolean (*render) (GstBaseAudioVisualizer * scope, GstBuffer * audio, + GstBuffer * video); + + scope = GST_BASE_AUDIO_VISUALIZER (gst_pad_get_parent (pad)); + klass = GST_BASE_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope)); + + render = klass->render; + + GST_LOG_OBJECT (scope, "chainfunc called"); + + /* resync on DISCONT */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) { + scope->next_ts = GST_CLOCK_TIME_NONE; + gst_adapter_clear (scope->adapter); + } + + if (GST_PAD_CAPS (scope->srcpad) == NULL) { + if (!gst_base_audio_visualizer_src_negotiate (scope)) + return GST_FLOW_NOT_NEGOTIATED; + } + + /* Match timestamps from the incoming audio */ + if (GST_BUFFER_TIMESTAMP (buffer) != GST_CLOCK_TIME_NONE) + scope->next_ts = GST_BUFFER_TIMESTAMP (buffer); + + gst_adapter_push (scope->adapter, buffer); + + g_mutex_lock (scope->config_lock); + + /* this is what we want */ + sbpf = scope->req_spf * scope->channels * sizeof (gint16); + + inbuf = scope->inbuf; + /* FIXME: the timestamp in the adapter would be different */ + gst_buffer_copy_metadata (inbuf, buffer, GST_BUFFER_COPY_ALL); + + /* this is what we have */ + avail = gst_adapter_available (scope->adapter); + GST_LOG_OBJECT (scope, "avail: %u, bpf: %u", avail, sbpf); + while (avail >= sbpf) { + GstBuffer *outbuf; + + g_mutex_unlock (scope->config_lock); + ret = gst_pad_alloc_buffer_and_set_caps (scope->srcpad, + GST_BUFFER_OFFSET_NONE, + scope->bpf, GST_PAD_CAPS (scope->srcpad), &outbuf); + g_mutex_lock (scope->config_lock); + /* recheck as the value could have changed */ + sbpf = scope->req_spf * scope->channels * sizeof (gint16); + + /* no buffer allocated, we don't care why. */ + if (ret != GST_FLOW_OK) + break; + + /* sync controlled properties */ + gst_object_sync_values (G_OBJECT (scope), scope->next_ts); + + GST_BUFFER_TIMESTAMP (outbuf) = scope->next_ts; + GST_BUFFER_DURATION (outbuf) = scope->frame_duration; + if (scope->shader) { + memcpy (GST_BUFFER_DATA (outbuf), scope->pixelbuf, scope->bpf); + } else { + memset (GST_BUFFER_DATA (outbuf), 0, scope->bpf); + } + + /* this can fail as the data size we need could have changed */ + if (!(adata = (guint8 *) gst_adapter_peek (scope->adapter, sbpf))) + break; + + GST_BUFFER_DATA (inbuf) = adata; + GST_BUFFER_SIZE (inbuf) = sbpf; + + /* call class->render() vmethod */ + if (render) { + if (!render (scope, inbuf, outbuf)) { + ret = GST_FLOW_ERROR; + } else { + /* run various post processing (shading and geometri transformation */ + if (scope->shader) { + scope->shader (scope, GST_BUFFER_DATA (outbuf), scope->pixelbuf); + } + } + } + + g_mutex_unlock (scope->config_lock); + ret = gst_pad_push (scope->srcpad, outbuf); + outbuf = NULL; + g_mutex_lock (scope->config_lock); + + /* recheck as the value could have changed */ + sbpf = scope->req_spf * scope->channels * sizeof (gint16); + GST_LOG_OBJECT (scope, "avail: %u, bpf: %u", avail, sbpf); + /* we want to take less or more, depending on spf : req_spf */ + if (avail - sbpf >= sbpf) { + gst_adapter_flush (scope->adapter, sbpf); + } else if (avail - sbpf >= 0) { + /* just flush a bit and stop */ + gst_adapter_flush (scope->adapter, (avail - sbpf)); + break; + } + avail = gst_adapter_available (scope->adapter); + + if (ret != GST_FLOW_OK) + break; + + if (scope->next_ts != GST_CLOCK_TIME_NONE) + scope->next_ts += scope->frame_duration; + } + + g_mutex_unlock (scope->config_lock); + + gst_object_unref (scope); + + return ret; +} + +static GstStateChangeReturn +gst_base_audio_visualizer_change_state (GstElement * element, + GstStateChange transition) +{ + GstBaseAudioVisualizer *scope; + + scope = GST_BASE_AUDIO_VISUALIZER (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + scope->next_ts = GST_CLOCK_TIME_NONE; + gst_adapter_clear (scope->adapter); + break; + default: + break; + } + + return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); +} diff --git a/gst/audiovisualizers/gstbaseaudiovisualizer.h b/gst/audiovisualizers/gstbaseaudiovisualizer.h new file mode 100644 index 0000000..42a4c07 --- /dev/null +++ b/gst/audiovisualizers/gstbaseaudiovisualizer.h @@ -0,0 +1,121 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstbaseaudiovisualizer.c: base class for audio visualisation elements + * + * 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. + */ + +#ifndef __GST_BASE_AUDIO_VISUALIZER_H__ +#define __GST_BASE_AUDIO_VISUALIZER_H__ + +#include +#include + +#include +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_BASE_AUDIO_VISUALIZER (gst_base_audio_visualizer_get_type()) +#define GST_BASE_AUDIO_VISUALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BASE_AUDIO_VISUALIZER,GstBaseAudioVisualizer)) +#define GST_BASE_AUDIO_VISUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BASE_AUDIO_VISUALIZER,GstBaseAudioVisualizerClass)) +#define GST_IS_SYNAESTHESIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_AUDIO_VISUALIZER)) +#define GST_IS_SYNAESTHESIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_AUDIO_VISUALIZER)) +typedef struct _GstBaseAudioVisualizer GstBaseAudioVisualizer; +typedef struct _GstBaseAudioVisualizerClass GstBaseAudioVisualizerClass; + +typedef void (*GstBaseAudioVisualizerShaderFunc)(GstBaseAudioVisualizer *scope, const guint8 *s, guint8 *d); + +/** + * GstBaseAudioVisualizerShader: + * @GST_BASE_AUDIO_VISUALIZER_SHADER_NONE: no shading + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE: plain fading + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP: fade and move up + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: fade and move down + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: fade and move left + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: fade and move right + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: fade and move horizontally out + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: fade and move horizontally in + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: fade and move vertically out + * @GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: fade and move vertically in + * + * Different types of supported background shading functions. + */ +typedef enum { + GST_BASE_AUDIO_VISUALIZER_SHADER_NONE, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT, + GST_BASE_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN +} GstBaseAudioVisualizerShader; + +struct _GstBaseAudioVisualizer +{ + GstElement parent; + + /* pads */ + GstPad *srcpad, *sinkpad; + + GstAdapter *adapter; + GstBuffer *inbuf; + guint8 *pixelbuf; + + GstBaseAudioVisualizerShader shader_type; + GstBaseAudioVisualizerShaderFunc shader; + guint32 shade_amount; + + guint64 next_ts; /* the timestamp of the next frame */ + guint64 frame_duration; + guint bpf; /* bytes per frame */ + guint bps; /* bytes per sample */ + guint spf; /* samples per video frame */ + guint req_spf; /* min samples per frame wanted by the subclass */ + + /* video state */ + GstVideoFormat video_format; + gint fps_n, fps_d; + gint width; + gint height; + gint channels; + + /* audio state */ + gint sample_rate; + gint rate; + + /* configuration mutex */ + GMutex *config_lock; +}; + +struct _GstBaseAudioVisualizerClass +{ + GstElementClass parent_class; + + /* virtual function, called whenever the format changes */ + gboolean (*setup) (GstBaseAudioVisualizer * scope); + + /* virtual function for rendering a frame */ + gboolean (*render) (GstBaseAudioVisualizer * scope, GstBuffer * audio, GstBuffer * video); +}; + +GType gst_base_audio_visualizer_get_type (void); + +G_END_DECLS +#endif /* __GST_BASE_AUDIO_VISUALIZER_H__ */ diff --git a/gst/audiovisualizers/gstdrawhelpers.h b/gst/audiovisualizers/gstdrawhelpers.h new file mode 100644 index 0000000..815fae3 --- /dev/null +++ b/gst/audiovisualizers/gstdrawhelpers.h @@ -0,0 +1,86 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Sauer + * + * gstdrawhelpers.h: simple drawing helpers + * + * 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. + */ + +/* FIXME: add versions that don't ignore alpha */ + +#define draw_dot(_vd, _x, _y, _st, _c) G_STMT_START { \ + _vd[(_y * _st) + _x] = _c; \ +} G_STMT_END + +#define draw_dot_c(_vd, _x, _y, _st, _c) G_STMT_START { \ + _vd[(_y * _st) + _x] |= _c; \ +} G_STMT_END + +#define draw_dot_aa(_vd, _x, _y, _st, _c, _f) G_STMT_START { \ + guint32 _oc, _c1, _c2, _c3; \ + \ + _oc = _vd[(_y * _st) + _x]; \ + _c3 = (_oc & 0xff) + ((_c & 0xff) * _f); \ + _c3 = MIN(_c3, 255); \ + _c2 = ((_oc & 0xff00) >> 8) + (((_c & 0xff00) >> 8) * _f); \ + _c2 = MIN(_c2, 255); \ + _c1 = ((_oc & 0xff0000) >> 16) + (((_c & 0xff0000) >> 16) * _f); \ + _c1 = MIN(_c1, 255); \ + _vd[(_y * _st) + _x] = (_c1 << 16) | (_c2 << 8) | _c3; \ +} G_STMT_END + +#define draw_line(_vd, _x1, _x2, _y1, _y2, _st, _c) G_STMT_START { \ + guint _i, _j, _x, _y; \ + gint _dx = _x2 - _x1, _dy = _y2 - _y1; \ + gfloat _f; \ + \ + _j = abs (_dx) > abs (_dy) ? abs (_dx) : abs (_dy); \ + for (_i = 0; _i < _j; _i++) { \ + _f = (gfloat) _i / (gfloat) _j; \ + _x = _x1 + _dx * _f; \ + _y = _y1 + _dy * _f; \ + draw_dot (_vd, _x, _y, _st, _c); \ + } \ +} G_STMT_END + +#define draw_line_aa(_vd, _x1, _x2, _y1, _y2, _st, _c) G_STMT_START { \ + guint _i, _j, _x, _y; \ + gint _dx = _x2 - _x1, _dy = _y2 - _y1; \ + gfloat _f, _rx, _ry, _fx, _fy; \ + \ + _j = abs (_dx) > abs (_dy) ? abs (_dx) : abs (_dy); \ + for (_i = 0; _i < _j; _i++) { \ + _f = (gfloat) _i / (gfloat) _j; \ + _rx = _x1 + _dx * _f; \ + _ry = _y1 + _dy * _f; \ + _x = (guint)_rx; \ + _y = (guint)_ry; \ + _fx = _rx - (gfloat)_x; \ + _fy = _ry - (gfloat)_y; \ + \ + _f = ((1.0 - _fx) + (1.0 - _fy)) / 2.0; \ + draw_dot_aa (_vd, _x, _y, _st, _c, _f); \ + \ + _f = (_fx + (1.0 - _fy)) / 2.0; \ + draw_dot_aa (_vd, (_x + 1), _y, _st, _c, _f); \ + \ + _f = ((1.0 - _fx) + _fy) / 2.0; \ + draw_dot_aa (_vd, _x, (_y + 1), _st, _c, _f); \ + \ + _f = (_fx + _fy) / 2.0; \ + draw_dot_aa (_vd, (_x + 1), (_y + 1), _st, _c, _f); \ + } \ +} G_STMT_END + diff --git a/gst/audiovisualizers/gstspacescope.c b/gst/audiovisualizers/gstspacescope.c new file mode 100644 index 0000000..7d44d33 --- /dev/null +++ b/gst/audiovisualizers/gstspacescope.c @@ -0,0 +1,446 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstspacescope.c: simple stereo visualizer + * + * 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. + */ +/** + * SECTION:element-spacescope + * @see_also: goom + * + * Spacescope is a simple audio visualisation element. It maps the left and + * right channel to x and y coordinates. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc ! audioconvert ! spacescope ! ximagesink + * ]| + * + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstspacescope.h" + +static GstStaticPadTemplate gst_space_scope_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB_HOST_ENDIAN) + ); + +static GstStaticPadTemplate gst_space_scope_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS) + ); + + +GST_DEBUG_CATEGORY_STATIC (space_scope_debug); +#define GST_CAT_DEFAULT space_scope_debug + +enum +{ + PROP_0, + PROP_STYLE +}; + +enum +{ + STYLE_DOTS = 0, + STYLE_LINES, + STYLE_COLOR_DOTS, + STYLE_COLOR_LINES, + NUM_STYLES +}; + +#define GST_TYPE_SPACE_SCOPE_STYLE (gst_space_scope_style_get_type ()) +static GType +gst_space_scope_style_get_type (void) +{ + static GType gtype = 0; + + if (gtype == 0) { + static const GEnumValue values[] = { + {STYLE_DOTS, "draw dots (default)", "dots"}, + {STYLE_LINES, "draw lines", "lines"}, + {STYLE_COLOR_DOTS, "draw color dots", "color-dots"}, + {STYLE_COLOR_LINES, "draw color lines", "color-lines"}, + {0, NULL, NULL} + }; + + gtype = g_enum_register_static ("GstSpaceScopeStyle", values); + } + return gtype; +} + +static void gst_space_scope_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_space_scope_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void render_dots (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_lines (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_color_dots (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_color_lines (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); + +static gboolean gst_space_scope_render (GstBaseAudioVisualizer * scope, + GstBuffer * audio, GstBuffer * video); + + +GST_BOILERPLATE (GstSpaceScope, gst_space_scope, GstBaseAudioVisualizer, + GST_TYPE_BASE_AUDIO_VISUALIZER); + +static void +gst_space_scope_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "Stereo visualizer", + "Visualization", + "Simple stereo visualizer", "Stefan Kost "); + + gst_element_class_add_static_pad_template (element_class, + &gst_space_scope_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_space_scope_sink_template); +} + +static void +gst_space_scope_class_init (GstSpaceScopeClass * g_class) +{ + GObjectClass *gobject_class = (GObjectClass *) g_class; + GstBaseAudioVisualizerClass *scope_class = + (GstBaseAudioVisualizerClass *) g_class; + + gobject_class->set_property = gst_space_scope_set_property; + gobject_class->get_property = gst_space_scope_get_property; + + scope_class->render = GST_DEBUG_FUNCPTR (gst_space_scope_render); + + g_object_class_install_property (gobject_class, PROP_STYLE, + g_param_spec_enum ("style", "drawing style", + "Drawing styles for the space scope display.", + GST_TYPE_SPACE_SCOPE_STYLE, STYLE_DOTS, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_space_scope_init (GstSpaceScope * scope, GstSpaceScopeClass * g_class) +{ + /* do nothing */ +} + +static void +gst_space_scope_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstSpaceScope *scope = GST_SPACE_SCOPE (object); + + switch (prop_id) { + case PROP_STYLE: + scope->style = g_value_get_enum (value); + switch (scope->style) { + case STYLE_DOTS: + scope->process = render_dots; + break; + case STYLE_LINES: + scope->process = render_lines; + break; + case STYLE_COLOR_DOTS: + scope->process = render_color_dots; + break; + case STYLE_COLOR_LINES: + scope->process = render_color_lines; + break; + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_space_scope_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstSpaceScope *scope = GST_SPACE_SCOPE (object); + + switch (prop_id) { + case PROP_STYLE: + g_value_set_enum (value, scope->style); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +#include "gstdrawhelpers.h" + +static void +render_dots (GstBaseAudioVisualizer * base, guint32 * vdata, gint16 * adata, + guint num_samples) +{ + guint i, s, x, y, ox, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height; + + /* draw dots 1st channel x, 2nd channel y */ + dx = w / 65536.0; + ox = w / 2; + dy = h / 65536.0; + oy = h / 2; + s = 0; + for (i = 0; i < num_samples; i++) { + x = (guint) (ox + (gfloat) adata[s++] * dx); + y = (guint) (oy + (gfloat) adata[s++] * dy); + draw_dot (vdata, x, y, w, 0x00FFFFFF); + } +} + +static void +render_lines (GstBaseAudioVisualizer * base, guint32 * vdata, gint16 * adata, + guint num_samples) +{ + guint i, s, x, y, ox, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height; + gint x2, y2; + + /* draw lines 1st channel x, 2nd channel y */ + dx = (w - 1) / 65536.0; + ox = (w - 1) / 2; + dy = (h - 1) / 65536.0; + oy = (h - 1) / 2; + s = 0; + x2 = (guint) (ox + (gfloat) adata[s++] * dx); + y2 = (guint) (oy + (gfloat) adata[s++] * dy); + for (i = 1; i < num_samples; i++) { + x = (guint) (ox + (gfloat) adata[s++] * dx); + y = (guint) (oy + (gfloat) adata[s++] * dy); + draw_line_aa (vdata, x2, x, y2, y, w, 0x00FFFFFF); + x2 = x; + y2 = y; + } +} + +#define CUTOFF_1 0.15 +#define CUTOFF_2 0.45 +#define RESONANCE (1.0/0.5) + +#define filter(il, ir) G_STMT_START { \ + f1l_h = il - (f1l_m * RESONANCE) - f1l_l; \ + f1l_m += (f1l_h * CUTOFF_1); \ + f1l_l += (f1l_m * CUTOFF_1); \ + \ + f2l_h = (f1l_m + f1l_h) - (f2l_m * RESONANCE) - f2l_l; \ + f2l_m += (f2l_h * CUTOFF_2); \ + f2l_l += (f2l_m * CUTOFF_2); \ + \ + f1r_h = ir - (f1r_m * RESONANCE) - f1r_l; \ + f1r_m += (f1r_h * CUTOFF_1); \ + f1r_l += (f1r_m * CUTOFF_1); \ + \ + f2r_h = (f1r_m + f1r_h) - (f2r_m * RESONANCE) - f2r_l; \ + f2r_m += (f2r_h * CUTOFF_2); \ + f2r_l += (f2r_m * CUTOFF_2); \ +} G_STMT_END + +static void +render_color_dots (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples) +{ + GstSpaceScope *scope = (GstSpaceScope *) base; + guint i, s; + gint x, y, ox, oy; + gfloat dx, dy; + gint w = base->width, w1 = w - 2; + gint h = base->height, h1 = h - 2; + gdouble il, ir; + gdouble f1l_l = scope->f1l_l, f1l_m = scope->f1l_m, f1l_h = scope->f1l_h; + gdouble f1r_l = scope->f1r_l, f1r_m = scope->f1r_m, f1r_h = scope->f1r_h; + gdouble f2l_l = scope->f2l_l, f2l_m = scope->f2l_m, f2l_h = scope->f2l_h; + gdouble f2r_l = scope->f2r_l, f2r_m = scope->f2r_m, f2r_h = scope->f2r_h; + + /* draw dots 1st channel x, 2nd channel y */ + ox = w / 2; + oy = h / 2; + dx = w / 65536.0; + dy = h / 65536.0; + s = 0; + for (i = 0; i < num_samples; i++) { + il = (gdouble) adata[s++]; + ir = (gdouble) adata[s++]; + + filter (il, ir); + + x = (gint) (ox + f1l_l * dx); + y = (gint) (oy + f1r_l * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x00FF0000); + + x = (gint) (ox + f2l_l * dx); + y = (gint) (oy + f2r_l * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x0000FF00); + + x = (gint) (ox + (f2l_m + f2l_h) * dx); + y = (gint) (oy + (f2r_m + f2r_h) * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x000000FF); + } + + scope->f1l_l = f1l_l; + scope->f1l_m = f1l_m; + scope->f1l_h = f1l_h; + scope->f1r_l = f1r_l; + scope->f1r_m = f1r_m; + scope->f1r_h = f1r_h; + scope->f2l_l = f2l_l; + scope->f2l_m = f2l_m; + scope->f2l_h = f2l_h; + scope->f2r_l = f2r_l; + scope->f2r_m = f2r_m; + scope->f2r_h = f2r_h; +} + +static void +render_color_lines (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples) +{ + GstSpaceScope *scope = (GstSpaceScope *) base; + guint i, s; + gint x, y, ox, oy; + gfloat dx, dy; + gint w = base->width, w1 = w - 2; + gint h = base->height, h1 = h - 2; + gdouble il, ir; + gdouble f1l_l = scope->f1l_l, f1l_m = scope->f1l_m, f1l_h = scope->f1l_h; + gdouble f1r_l = scope->f1r_l, f1r_m = scope->f1r_m, f1r_h = scope->f1r_h; + gdouble f2l_l = scope->f2l_l, f2l_m = scope->f2l_m, f2l_h = scope->f2l_h; + gdouble f2r_l = scope->f2r_l, f2r_m = scope->f2r_m, f2r_h = scope->f2r_h; + gint x2, y2, x3, y3, x4, y4; + + /* draw lines 1st channel x, 2nd channel y */ + ox = w / 2; + oy = h / 2; + dx = w / 65536.0; + dy = h / 65536.0; + s = 0; + + /* do first pixels */ + il = (gdouble) adata[s++]; + ir = (gdouble) adata[s++]; + + filter (il, ir); + + x = (gint) (ox + f1l_l * dx); + y = (gint) (oy + f1r_l * dy); + x2 = CLAMP (x, 0, w1); + y2 = CLAMP (y, 0, h1); + + x = (gint) (ox + f2l_l * dx); + y = (gint) (oy + f2r_l * dy); + x3 = CLAMP (x, 0, w1); + y3 = CLAMP (y, 0, h1); + + x = (gint) (ox + (f2l_m + f2l_h) * dx); + y = (gint) (oy + (f2r_m + f2r_h) * dy); + x4 = CLAMP (x, 0, w1); + y4 = CLAMP (y, 0, h1); + + for (i = 1; i < num_samples; i++) { + il = (gdouble) adata[s++]; + ir = (gdouble) adata[s++]; + + filter (il, ir); + + x = (gint) (ox + f1l_l * dx); + y = (gint) (oy + f1r_l * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x2, x, y2, y, w, 0x00FF0000); + x2 = x; + y2 = y; + + x = (gint) (ox + f2l_l * dx); + y = (gint) (oy + f2r_l * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x3, x, y3, y, w, 0x0000FF00); + x3 = x; + y3 = y; + + x = (gint) (ox + (f2l_m + f2l_h) * dx); + y = (gint) (oy + (f2r_m + f2r_h) * dy); + x = CLAMP (x, 0, w1); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x4, x, y4, y, w, 0x000000FF); + x4 = x; + y4 = y; + } + + scope->f1l_l = f1l_l; + scope->f1l_m = f1l_m; + scope->f1l_h = f1l_h; + scope->f1r_l = f1r_l; + scope->f1r_m = f1r_m; + scope->f1r_h = f1r_h; + scope->f2l_l = f2l_l; + scope->f2l_m = f2l_m; + scope->f2l_h = f2l_h; + scope->f2r_l = f2r_l; + scope->f2r_m = f2r_m; + scope->f2r_h = f2r_h; +} + +static gboolean +gst_space_scope_render (GstBaseAudioVisualizer * base, GstBuffer * audio, + GstBuffer * video) +{ + GstSpaceScope *scope = GST_SPACE_SCOPE (base); + guint32 *vdata = (guint32 *) GST_BUFFER_DATA (video); + gint16 *adata = (gint16 *) GST_BUFFER_DATA (audio); + guint num_samples; + + num_samples = GST_BUFFER_SIZE (audio) / (base->channels * sizeof (gint16)); + scope->process (base, vdata, adata, num_samples); + return TRUE; +} + +gboolean +gst_space_scope_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (space_scope_debug, "spacescope", 0, "spacescope"); + + return gst_element_register (plugin, "spacescope", GST_RANK_NONE, + GST_TYPE_SPACE_SCOPE); +} diff --git a/gst/audiovisualizers/gstspacescope.h b/gst/audiovisualizers/gstspacescope.h new file mode 100644 index 0000000..a2b06f7 --- /dev/null +++ b/gst/audiovisualizers/gstspacescope.h @@ -0,0 +1,62 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstspacescope.h: simple stereo visualizer + * + * 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. + */ + + +#ifndef __GST_SPACE_SCOPE_H__ +#define __GST_SPACE_SCOPE_H__ + +#include "gstbaseaudiovisualizer.h" + +G_BEGIN_DECLS +#define GST_TYPE_SPACE_SCOPE (gst_space_scope_get_type()) +#define GST_SPACE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SPACE_SCOPE,GstSpaceScope)) +#define GST_SPACE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SPACE_SCOPE,GstSpaceScopeClass)) +#define GST_IS_SPACE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SPACE_SCOPE)) +#define GST_IS_SPACE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SPACE_SCOPE)) +typedef struct _GstSpaceScope GstSpaceScope; +typedef struct _GstSpaceScopeClass GstSpaceScopeClass; + +typedef void (*GstSpaceScopeProcessFunc) (GstBaseAudioVisualizer *, guint32 *, gint16 *, guint); + +struct _GstSpaceScope +{ + GstBaseAudioVisualizer parent; + + /* < private > */ + GstSpaceScopeProcessFunc process; + gint style; + + /* filter specific data */ + gdouble f1l_l, f1l_m, f1l_h; + gdouble f1r_l, f1r_m, f1r_h; + gdouble f2l_l, f2l_m, f2l_h; + gdouble f2r_l, f2r_m, f2r_h; +}; + +struct _GstSpaceScopeClass +{ + GstBaseAudioVisualizerClass parent_class; +}; + +GType gst_space_scope_get_type (void); +gboolean gst_space_scope_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_SPACE_SCOPE_H__ */ \ No newline at end of file diff --git a/gst/audiovisualizers/gstspectrascope.c b/gst/audiovisualizers/gstspectrascope.c new file mode 100644 index 0000000..1b61f56 --- /dev/null +++ b/gst/audiovisualizers/gstspectrascope.c @@ -0,0 +1,224 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstspectrascope.c: frequency spectrum scope + * + * 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. + */ +/** + * SECTION:element-spectrascope + * @see_also: goom + * + * Spectrascope is a simple spectrum visualisation element. It renders the + * frequency spectrum as a series of bars. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc ! audioconvert ! spectrascope ! ximagesink + * ]| + * + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include + +#include "gstspectrascope.h" + +static GstStaticPadTemplate gst_spectra_scope_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB_HOST_ENDIAN) + ); + +static GstStaticPadTemplate gst_spectra_scope_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS) + ); + + +GST_DEBUG_CATEGORY_STATIC (spectra_scope_debug); +#define GST_CAT_DEFAULT spectra_scope_debug + +static void gst_spectra_scope_finalize (GObject * object); + +static gboolean gst_spectra_scope_setup (GstBaseAudioVisualizer * scope); +static gboolean gst_spectra_scope_render (GstBaseAudioVisualizer * scope, + GstBuffer * audio, GstBuffer * video); + + +GST_BOILERPLATE (GstSpectraScope, gst_spectra_scope, GstBaseAudioVisualizer, + GST_TYPE_BASE_AUDIO_VISUALIZER); + +static void +gst_spectra_scope_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, + "Frequency spectrum scope", "Visualization", + "Simple frequency spectrum scope", "Stefan Kost "); + + gst_element_class_add_static_pad_template (element_class, + &gst_spectra_scope_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_spectra_scope_sink_template); +} + +static void +gst_spectra_scope_class_init (GstSpectraScopeClass * g_class) +{ + GObjectClass *gobject_class = (GObjectClass *) g_class; + GstBaseAudioVisualizerClass *scope_class = + (GstBaseAudioVisualizerClass *) g_class; + + gobject_class->finalize = gst_spectra_scope_finalize; + + scope_class->setup = GST_DEBUG_FUNCPTR (gst_spectra_scope_setup); + scope_class->render = GST_DEBUG_FUNCPTR (gst_spectra_scope_render); +} + +static void +gst_spectra_scope_init (GstSpectraScope * scope, GstSpectraScopeClass * g_class) +{ + /* do nothing */ +} + +static void +gst_spectra_scope_finalize (GObject * object) +{ + GstSpectraScope *scope = GST_SPECTRA_SCOPE (object); + + if (scope->fft_ctx) { + gst_fft_s16_free (scope->fft_ctx); + scope->fft_ctx = NULL; + } + if (scope->freq_data) { + g_free (scope->freq_data); + scope->freq_data = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_spectra_scope_setup (GstBaseAudioVisualizer * bscope) +{ + GstSpectraScope *scope = GST_SPECTRA_SCOPE (bscope); + guint num_freq = bscope->width + 1; + + if (scope->fft_ctx) + gst_fft_s16_free (scope->fft_ctx); + g_free (scope->freq_data); + + /* we'd need this amount of samples per render() call */ + bscope->req_spf = num_freq * 2 - 2; + scope->fft_ctx = gst_fft_s16_new (bscope->req_spf, FALSE); + scope->freq_data = g_new (GstFFTS16Complex, num_freq); + + return TRUE; +} + +static inline void +add_pixel (guint32 * _p, guint32 _c) +{ + guint8 *p = (guint8 *) _p; + guint8 *c = (guint8 *) & _c; + + if (p[0] < 255 - c[0]) + p[0] += c[0]; + else + p[0] = 255; + if (p[1] < 255 - c[1]) + p[1] += c[1]; + else + p[1] = 255; + if (p[2] < 255 - c[2]) + p[2] += c[2]; + else + p[2] = 255; + if (p[3] < 255 - c[3]) + p[3] += c[3]; + else + p[3] = 255; +} + +static gboolean +gst_spectra_scope_render (GstBaseAudioVisualizer * bscope, GstBuffer * audio, + GstBuffer * video) +{ + GstSpectraScope *scope = GST_SPECTRA_SCOPE (bscope); + guint32 *vdata = (guint32 *) GST_BUFFER_DATA (video); + gint16 *adata = (gint16 *) g_memdup (GST_BUFFER_DATA (audio), + GST_BUFFER_SIZE (audio)); + GstFFTS16Complex *fdata = scope->freq_data; + guint x, y, off; + guint l, h = bscope->height - 1; + gfloat fr, fi; + guint w = bscope->width; + + if (bscope->channels > 1) { + guint ch = bscope->channels; + guint num_samples = GST_BUFFER_SIZE (audio) / (ch * sizeof (gint16)); + guint i, c, v, s = 0; + + /* deinterleave and mixdown adata */ + for (i = 0; i < num_samples; i++) { + v = 0; + for (c = 0; c < ch; c++) { + v += adata[s++]; + } + adata[i] = v / ch; + } + } + + /* run fft */ + gst_fft_s16_window (scope->fft_ctx, adata, GST_FFT_WINDOW_HAMMING); + gst_fft_s16_fft (scope->fft_ctx, adata, fdata); + g_free (adata); + + /* draw lines */ + for (x = 0; x < bscope->width; x++) { + /* figure out the range so that we don't need to clip, + * or even better do a log mapping? */ + fr = (gfloat) fdata[1 + x].r / 512.0; + fi = (gfloat) fdata[1 + x].i / 512.0; + y = (guint) (h * fabs (fr * fr + fi * fi)); + if (y > h) + y = h; + y = h - y; + off = (y * w) + x; + vdata[off] = 0x00FFFFFF; + for (l = y + 1; l <= h; l++) { + off += w; + add_pixel (&vdata[off], 0x007F7F7F); + } + } + return TRUE; +} + +gboolean +gst_spectra_scope_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (spectra_scope_debug, "spectrascope", 0, + "spectrascope"); + + return gst_element_register (plugin, "spectrascope", GST_RANK_NONE, + GST_TYPE_SPECTRA_SCOPE); +} diff --git a/gst/audiovisualizers/gstspectrascope.h b/gst/audiovisualizers/gstspectrascope.h new file mode 100644 index 0000000..3ba666a --- /dev/null +++ b/gst/audiovisualizers/gstspectrascope.h @@ -0,0 +1,54 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstspectrascope.h: simple oscilloscope + * + * 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. + */ + + +#ifndef __GST_SPECTRA_SCOPE_H__ +#define __GST_SPECTRA_SCOPE_H__ + +#include "gstbaseaudiovisualizer.h" +#include + +G_BEGIN_DECLS +#define GST_TYPE_SPECTRA_SCOPE (gst_spectra_scope_get_type()) +#define GST_SPECTRA_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SPECTRA_SCOPE,GstSpectraScope)) +#define GST_SPECTRA_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SPECTRA_SCOPE,GstSpectraScopeClass)) +#define GST_IS_SPECTRA_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SPECTRA_SCOPE)) +#define GST_IS_SPECTRA_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SPECTRA_SCOPE)) +typedef struct _GstSpectraScope GstSpectraScope; +typedef struct _GstSpectraScopeClass GstSpectraScopeClass; + +struct _GstSpectraScope +{ + GstBaseAudioVisualizer parent; + + GstFFTS16 *fft_ctx; + GstFFTS16Complex *freq_data; +}; + +struct _GstSpectraScopeClass +{ + GstBaseAudioVisualizerClass parent_class; +}; + +GType gst_spectra_scope_get_type (void); +gboolean gst_spectra_scope_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_SPECTRA_SCOPE_H__ */ \ No newline at end of file diff --git a/gst/audiovisualizers/gstsynaescope.c b/gst/audiovisualizers/gstsynaescope.c new file mode 100644 index 0000000..7364b8f --- /dev/null +++ b/gst/audiovisualizers/gstsynaescope.c @@ -0,0 +1,307 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstsynaescope.c: frequency spectrum scope + * + * 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. + */ +/** + * SECTION:element-synaescope + * @see_also: goom + * + * Synaescope is an audio visualisation element. It analyzes frequencies and + * out-of phase properties of audio and draws this as clouds of stars. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc ! audioconvert ! synaescope ! ximagesink + * ]| + * + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstsynaescope.h" + +static GstStaticPadTemplate gst_synae_scope_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB_HOST_ENDIAN) + ); + +static GstStaticPadTemplate gst_synae_scope_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS) + ); + + +GST_DEBUG_CATEGORY_STATIC (synae_scope_debug); +#define GST_CAT_DEFAULT synae_scope_debug + +static void gst_synae_scope_finalize (GObject * object); + +static gboolean gst_synae_scope_setup (GstBaseAudioVisualizer * scope); +static gboolean gst_synae_scope_render (GstBaseAudioVisualizer * scope, + GstBuffer * audio, GstBuffer * video); + + +GST_BOILERPLATE (GstSynaeScope, gst_synae_scope, GstBaseAudioVisualizer, + GST_TYPE_BASE_AUDIO_VISUALIZER); + +static void +gst_synae_scope_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "Synaescope", + "Visualization", + "Creates video visualizations of audio input, using stereo and pitch information", + "Stefan Kost "); + + gst_element_class_add_static_pad_template (element_class, + &gst_synae_scope_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_synae_scope_sink_template); +} + +static void +gst_synae_scope_class_init (GstSynaeScopeClass * g_class) +{ + GObjectClass *gobject_class = (GObjectClass *) g_class; + GstBaseAudioVisualizerClass *scope_class = + (GstBaseAudioVisualizerClass *) g_class; + + gobject_class->finalize = gst_synae_scope_finalize; + + scope_class->setup = GST_DEBUG_FUNCPTR (gst_synae_scope_setup); + scope_class->render = GST_DEBUG_FUNCPTR (gst_synae_scope_render); +} + +static void +gst_synae_scope_init (GstSynaeScope * scope, GstSynaeScopeClass * g_class) +{ + guint32 *colors = scope->colors; + guint *shade = scope->shade; + guint i, r, g, b; + +#define BOUND(x) ((x) > 255 ? 255 : (x)) +#define PEAKIFY(x) BOUND((x) - (x)*(255-(x))/255/2) + + for (i = 0; i < 256; i++) { + r = PEAKIFY ((i & 15 * 16)); + g = PEAKIFY ((i & 15) * 16 + (i & 15 * 16) / 4); + b = PEAKIFY ((i & 15) * 16); + + colors[i] = (r << 16) | (g << 8) | b; + } +#undef BOUND +#undef PEAKIFY + + for (i = 0; i < 256; i++) + shade[i] = i * 200 >> 8; +} + +static void +gst_synae_scope_finalize (GObject * object) +{ + GstSynaeScope *scope = GST_SYNAE_SCOPE (object); + + if (scope->fft_ctx) { + gst_fft_s16_free (scope->fft_ctx); + scope->fft_ctx = NULL; + } + if (scope->freq_data_l) { + g_free (scope->freq_data_l); + scope->freq_data_l = NULL; + } + if (scope->freq_data_r) { + g_free (scope->freq_data_r); + scope->freq_data_r = NULL; + } + if (scope->adata_l) { + g_free (scope->adata_l); + scope->adata_l = NULL; + } + if (scope->adata_r) { + g_free (scope->adata_r); + scope->adata_r = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_synae_scope_setup (GstBaseAudioVisualizer * bscope) +{ + GstSynaeScope *scope = GST_SYNAE_SCOPE (bscope); + guint num_freq = bscope->height + 1; + + if (scope->fft_ctx) + gst_fft_s16_free (scope->fft_ctx); + g_free (scope->freq_data_l); + g_free (scope->freq_data_r); + g_free (scope->adata_l); + g_free (scope->adata_r); + + /* FIXME: we could have horizontal or vertical layout */ + + /* we'd need this amount of samples per render() call */ + bscope->req_spf = num_freq * 2 - 2; + scope->fft_ctx = gst_fft_s16_new (bscope->req_spf, FALSE); + scope->freq_data_l = g_new (GstFFTS16Complex, num_freq); + scope->freq_data_r = g_new (GstFFTS16Complex, num_freq); + + scope->adata_l = g_new (gint16, bscope->req_spf); + scope->adata_r = g_new (gint16, bscope->req_spf); + + return TRUE; +} + +static inline void +add_pixel (guint32 * _p, guint32 _c) +{ + guint8 *p = (guint8 *) _p; + guint8 *c = (guint8 *) & _c; + + if (p[0] < 255 - c[0]) + p[0] += c[0]; + else + p[0] = 255; + if (p[1] < 255 - c[1]) + p[1] += c[1]; + else + p[1] = 255; + if (p[2] < 255 - c[2]) + p[2] += c[2]; + else + p[2] = 255; + if (p[3] < 255 - c[3]) + p[3] += c[3]; + else + p[3] = 255; +} + +static gboolean +gst_synae_scope_render (GstBaseAudioVisualizer * bscope, GstBuffer * audio, + GstBuffer * video) +{ + GstSynaeScope *scope = GST_SYNAE_SCOPE (bscope); + guint32 *vdata = (guint32 *) GST_BUFFER_DATA (video); + gint16 *adata = (gint16 *) GST_BUFFER_DATA (audio); + gint16 *adata_l = scope->adata_l; + gint16 *adata_r = scope->adata_r; + GstFFTS16Complex *fdata_l = scope->freq_data_l; + GstFFTS16Complex *fdata_r = scope->freq_data_r; + gint x, y; + guint off; + guint w = bscope->width; + guint h = bscope->height; + guint32 *colors = scope->colors, c; + guint *shade = scope->shade; + //guint w2 = w /2; + guint ch = bscope->channels; + guint num_samples = GST_BUFFER_SIZE (audio) / (ch * sizeof (gint16)); + gint i, j, b; + gint br, br1, br2; + gint clarity; + gdouble fc, r, l, rr, ll; + gdouble frl, fil, frr, fir; + const guint sl = 30; + + /* deinterleave */ + for (i = 0, j = 0; i < num_samples; i++) { + adata_l[i] = adata[j++]; + adata_r[i] = adata[j++]; + } + + /* run fft */ + /*gst_fft_s16_window (scope->fft_ctx, adata_l, GST_FFT_WINDOW_HAMMING); */ + gst_fft_s16_fft (scope->fft_ctx, adata_l, fdata_l); + /*gst_fft_s16_window (scope->fft_ctx, adata_r, GST_FFT_WINDOW_HAMMING); */ + gst_fft_s16_fft (scope->fft_ctx, adata_r, fdata_r); + + /* draw stars */ + for (y = 0; y < h; y++) { + b = h - y; + frl = (gdouble) fdata_l[b].r; + fil = (gdouble) fdata_l[b].i; + frr = (gdouble) fdata_r[b].r; + fir = (gdouble) fdata_r[b].i; + + ll = (frl + fil) * (frl + fil) + (frr - fir) * (frr - fir); + l = sqrt (ll); + rr = (frl - fil) * (frl - fil) + (frr + fir) * (frr + fir); + r = sqrt (rr); + /* out-of-phase'ness for this frequency component */ + clarity = (gint) ( + ((frl + fil) * (frl - fil) + (frr + fir) * (frr - fir)) / + (ll + rr) * 256); + fc = r + l; + + x = (guint) (r * w / fc); + /* the brighness scaling factor was picked by experimenting */ + br = b * fc * 0.01; + + br1 = br * (clarity + 128) >> 8; + br2 = br * (128 - clarity) >> 8; + br1 = CLAMP (br1, 0, 255); + br2 = CLAMP (br2, 0, 255); + + GST_DEBUG ("y %3d fc %10.6f clarity %d br %d br1 %d br2 %d", y, fc, clarity, + br, br1, br2); + + /* draw a star */ + off = (y * w) + x; + c = colors[(br1 >> 4) | (br2 & 0xf0)]; + add_pixel (&vdata[off], c); + if ((x > (sl - 1)) && (x < (w - sl)) && (y > (sl - 1)) && (y < (h - sl))) { + for (i = 1; br1 || br2; i++, br1 = shade[br1], br2 = shade[br2]) { + c = colors[(br1 >> 4) + (br2 & 0xf0)]; + add_pixel (&vdata[off - i], c); + add_pixel (&vdata[off + i], c); + add_pixel (&vdata[off - i * w], c); + add_pixel (&vdata[off + i * w], c); + } + } else { + for (i = 1; br1 || br2; i++, br1 = shade[br1], br2 = shade[br2]) { + c = colors[(br1 >> 4) | (br2 & 0xf0)]; + if (x - i > 0) + add_pixel (&vdata[off - i], c); + if (x + i < (w - 1)) + add_pixel (&vdata[off + i], c); + if (y - i > 0) + add_pixel (&vdata[off - i * w], c); + if (y + i < (h - 1)) + add_pixel (&vdata[off + i * w], c); + } + } + } + + return TRUE; +} + +gboolean +gst_synae_scope_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (synae_scope_debug, "synaescope", 0, "synaescope"); + + return gst_element_register (plugin, "synaescope", GST_RANK_NONE, + GST_TYPE_SYNAE_SCOPE); +} diff --git a/gst/audiovisualizers/gstsynaescope.h b/gst/audiovisualizers/gstsynaescope.h new file mode 100644 index 0000000..1ecbe3d --- /dev/null +++ b/gst/audiovisualizers/gstsynaescope.h @@ -0,0 +1,58 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstsynaescope.h: simple oscilloscope + * + * 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. + */ + + +#ifndef __GST_SYNAE_SCOPE_H__ +#define __GST_SYNAE_SCOPE_H__ + +#include "gstbaseaudiovisualizer.h" +#include + +G_BEGIN_DECLS +#define GST_TYPE_SYNAE_SCOPE (gst_synae_scope_get_type()) +#define GST_SYNAE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SYNAE_SCOPE,GstSynaeScope)) +#define GST_SYNAE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SYNAE_SCOPE,GstSynaeScopeClass)) +#define GST_IS_SYNAE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SYNAE_SCOPE)) +#define GST_IS_SYNAE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SYNAE_SCOPE)) +typedef struct _GstSynaeScope GstSynaeScope; +typedef struct _GstSynaeScopeClass GstSynaeScopeClass; + +struct _GstSynaeScope +{ + GstBaseAudioVisualizer parent; + + GstFFTS16 *fft_ctx; + GstFFTS16Complex *freq_data_l, *freq_data_r; + gint16 *adata_l, *adata_r; + + guint32 colors[256]; + guint shade[256]; +}; + +struct _GstSynaeScopeClass +{ + GstBaseAudioVisualizerClass parent_class; +}; + +GType gst_synae_scope_get_type (void); +gboolean gst_synae_scope_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_SYNAE_SCOPE_H__ */ \ No newline at end of file diff --git a/gst/audiovisualizers/gstwavescope.c b/gst/audiovisualizers/gstwavescope.c new file mode 100644 index 0000000..a2ee51f --- /dev/null +++ b/gst/audiovisualizers/gstwavescope.c @@ -0,0 +1,422 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstwavescope.c: simple oscilloscope + * + * 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. + */ +/** + * SECTION:element-wavescope + * @see_also: goom + * + * Wavescope is a simple audio visualisation element. It renders the waveforms + * like on an oscilloscope. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc ! audioconvert ! wavescope ! ximagesink + * ]| + * + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstwavescope.h" + +static GstStaticPadTemplate gst_wave_scope_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB_HOST_ENDIAN) + ); + +static GstStaticPadTemplate gst_wave_scope_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS) + ); + + +GST_DEBUG_CATEGORY_STATIC (wave_scope_debug); +#define GST_CAT_DEFAULT wave_scope_debug + +enum +{ + PROP_0, + PROP_STYLE +}; + +enum +{ + STYLE_DOTS = 0, + STYLE_LINES, + STYLE_COLOR_DOTS, + STYLE_COLOR_LINES, + NUM_STYLES +}; + +#define GST_TYPE_WAVE_SCOPE_STYLE (gst_wave_scope_style_get_type ()) +static GType +gst_wave_scope_style_get_type (void) +{ + static GType gtype = 0; + + if (gtype == 0) { + static const GEnumValue values[] = { + {STYLE_DOTS, "draw dots (default)", "dots"}, + {STYLE_LINES, "draw lines", "lines"}, + {STYLE_COLOR_DOTS, "draw color dots", "color-dots"}, + {STYLE_COLOR_LINES, "draw color lines", "color-lines"}, + {0, NULL, NULL} + }; + + gtype = g_enum_register_static ("GstWaveScopeStyle", values); + } + return gtype; +} + +static void gst_wave_scope_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_wave_scope_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_wave_scope_finalize (GObject * object); + +static void render_dots (GstBaseAudioVisualizer * scope, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_lines (GstBaseAudioVisualizer * scope, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_color_dots (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); +static void render_color_lines (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples); + +static gboolean gst_wave_scope_setup (GstBaseAudioVisualizer * scope); +static gboolean gst_wave_scope_render (GstBaseAudioVisualizer * base, + GstBuffer * audio, GstBuffer * video); + + +GST_BOILERPLATE (GstWaveScope, gst_wave_scope, GstBaseAudioVisualizer, + GST_TYPE_BASE_AUDIO_VISUALIZER); + +static void +gst_wave_scope_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "Waveform oscilloscope", + "Visualization", + "Simple waveform oscilloscope", "Stefan Kost "); + + gst_element_class_add_static_pad_template (element_class, + &gst_wave_scope_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_wave_scope_sink_template); +} + +static void +gst_wave_scope_class_init (GstWaveScopeClass * g_class) +{ + GObjectClass *gobject_class = (GObjectClass *) g_class; + GstBaseAudioVisualizerClass *scope_class = + (GstBaseAudioVisualizerClass *) g_class; + + gobject_class->set_property = gst_wave_scope_set_property; + gobject_class->get_property = gst_wave_scope_get_property; + gobject_class->finalize = gst_wave_scope_finalize; + + scope_class->setup = GST_DEBUG_FUNCPTR (gst_wave_scope_setup); + scope_class->render = GST_DEBUG_FUNCPTR (gst_wave_scope_render); + + g_object_class_install_property (gobject_class, PROP_STYLE, + g_param_spec_enum ("style", "drawing style", + "Drawing styles for the wave form display.", + GST_TYPE_WAVE_SCOPE_STYLE, STYLE_DOTS, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_wave_scope_init (GstWaveScope * scope, GstWaveScopeClass * g_class) +{ + /* do nothing */ +} + +static void +gst_wave_scope_finalize (GObject * object) +{ + GstWaveScope *scope = GST_WAVE_SCOPE (object); + + if (scope->flt) { + g_free (scope->flt); + scope->flt = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_wave_scope_setup (GstBaseAudioVisualizer * bscope) +{ + GstWaveScope *scope = GST_WAVE_SCOPE (bscope); + + if (scope->flt) + g_free (scope->flt); + + scope->flt = g_new0 (gdouble, 6 * bscope->channels); + + return TRUE; +} + +static void +gst_wave_scope_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstWaveScope *scope = GST_WAVE_SCOPE (object); + + switch (prop_id) { + case PROP_STYLE: + scope->style = g_value_get_enum (value); + switch (scope->style) { + case STYLE_DOTS: + scope->process = render_dots; + break; + case STYLE_LINES: + scope->process = render_lines; + break; + case STYLE_COLOR_DOTS: + scope->process = render_color_dots; + break; + case STYLE_COLOR_LINES: + scope->process = render_color_lines; + break; + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_wave_scope_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstWaveScope *scope = GST_WAVE_SCOPE (object); + + switch (prop_id) { + case PROP_STYLE: + g_value_set_enum (value, scope->style); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +#include "gstdrawhelpers.h" + +static void +render_dots (GstBaseAudioVisualizer * base, guint32 * vdata, gint16 * adata, + guint num_samples) +{ + gint channels = base->channels; + guint i, c, s, x, y, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height; + + /* draw dots */ + dx = (gfloat) w / (gfloat) num_samples; + dy = h / 65536.0; + oy = h / 2; + for (c = 0; c < channels; c++) { + s = c; + for (i = 0; i < num_samples; i++) { + x = (guint) ((gfloat) i * dx); + y = (guint) (oy + (gfloat) adata[s] * dy); + s += channels; + draw_dot (vdata, x, y, w, 0x00FFFFFF); + } + } +} + +static void +render_lines (GstBaseAudioVisualizer * base, guint32 * vdata, gint16 * adata, + guint num_samples) +{ + gint channels = base->channels; + guint i, c, s, x, y, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height; + gint x2, y2; + + /* draw lines */ + dx = (gfloat) (w - 1) / (gfloat) num_samples; + dy = (h - 1) / 65536.0; + oy = (h - 1) / 2; + for (c = 0; c < channels; c++) { + s = c; + x2 = 0; + y2 = (guint) (oy + (gfloat) adata[s] * dy); + for (i = 1; i < num_samples; i++) { + x = (guint) ((gfloat) i * dx); + y = (guint) (oy + (gfloat) adata[s] * dy); + s += channels; + draw_line_aa (vdata, x2, x, y2, y, w, 0x00FFFFFF); + x2 = x; + y2 = y; + } + } +} + +#define CUTOFF_1 0.15 +#define CUTOFF_2 0.45 +#define RESONANCE (1.0/0.5) + +#define filter(in) G_STMT_START { \ + flt[2] = in - (flt[1] * RESONANCE) - flt[0]; \ + flt[1] += (flt[2] * CUTOFF_1); \ + flt[0] += (flt[1] * CUTOFF_1); \ + \ + flt[5] = (flt[1] + flt[2]) - (flt[4] * RESONANCE) - flt[3]; \ + flt[4] += (flt[5] * CUTOFF_2); \ + flt[3] += (flt[4] * CUTOFF_2); \ +} G_STMT_END + +static void +render_color_dots (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples) +{ + GstWaveScope *scope = (GstWaveScope *) base; + gint channels = base->channels; + guint i, c, s, x, y, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height, h1 = h - 2; + gdouble *flt = scope->flt; + + /* draw dots */ + dx = (gfloat) w / (gfloat) num_samples; + dy = h / 65536.0; + oy = h / 2; + for (c = 0; c < channels; c++) { + s = c; + for (i = 0; i < num_samples; i++) { + x = (guint) ((gfloat) i * dx); + filter ((gfloat) adata[s]); + + y = (guint) (oy + flt[0] * dy); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x00FF0000); + + y = (guint) (oy + flt[3] * dy); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x0000FF00); + + y = (guint) (oy + (flt[4] + flt[5]) * dy); + y = CLAMP (y, 0, h1); + draw_dot_c (vdata, x, y, w, 0x000000FF); + + s += channels; + } + flt += 6; + } +} + +static void +render_color_lines (GstBaseAudioVisualizer * base, guint32 * vdata, + gint16 * adata, guint num_samples) +{ + GstWaveScope *scope = (GstWaveScope *) base; + gint channels = base->channels; + guint i, c, s, x, y, oy; + gfloat dx, dy; + guint w = base->width; + guint h = base->height, h1 = h - 2; + gdouble *flt = scope->flt; + gint x2, y2, y3, y4; + + /* draw lines */ + dx = (gfloat) (w - 1) / (gfloat) num_samples; + dy = (h - 1) / 65536.0; + oy = (h - 1) / 2; + for (c = 0; c < channels; c++) { + s = c; + + /* do first pixels */ + x2 = 0; + filter ((gfloat) adata[s]); + + y = (guint) (oy + flt[0] * dy); + y2 = CLAMP (y, 0, h1); + + y = (guint) (oy + flt[3] * dy); + y3 = CLAMP (y, 0, h1); + + y = (guint) (oy + (flt[4] + flt[5]) * dy); + y4 = CLAMP (y, 0, h1); + + for (i = 1; i < num_samples; i++) { + x = (guint) ((gfloat) i * dx); + filter ((gfloat) adata[s]); + + y = (guint) (oy + flt[0] * dy); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x2, x, y2, y, w, 0x00FF0000); + y2 = y; + + y = (guint) (oy + flt[3] * dy); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x2, x, y3, y, w, 0x0000FF00); + y3 = y; + + y = (guint) (oy + (flt[4] + flt[5]) * dy); + y = CLAMP (y, 0, h1); + draw_line_aa (vdata, x2, x, y4, y, w, 0x000000FF); + y4 = y; + + x2 = x; + s += channels; + } + flt += 6; + } +} + +static gboolean +gst_wave_scope_render (GstBaseAudioVisualizer * base, GstBuffer * audio, + GstBuffer * video) +{ + GstWaveScope *scope = GST_WAVE_SCOPE (base); + guint32 *vdata = (guint32 *) GST_BUFFER_DATA (video); + gint16 *adata = (gint16 *) GST_BUFFER_DATA (audio); + guint num_samples; + + num_samples = GST_BUFFER_SIZE (audio) / (base->channels * sizeof (gint16)); + scope->process (base, vdata, adata, num_samples); + return TRUE; +} + +gboolean +gst_wave_scope_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (wave_scope_debug, "wavescope", 0, "wavescope"); + + return gst_element_register (plugin, "wavescope", GST_RANK_NONE, + GST_TYPE_WAVE_SCOPE); +} diff --git a/gst/audiovisualizers/gstwavescope.h b/gst/audiovisualizers/gstwavescope.h new file mode 100644 index 0000000..42137f7 --- /dev/null +++ b/gst/audiovisualizers/gstwavescope.h @@ -0,0 +1,59 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * gstwavescope.h: simple oscilloscope + * + * 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. + */ + + +#ifndef __GST_WAVE_SCOPE_H__ +#define __GST_WAVE_SCOPE_H__ + +#include "gstbaseaudiovisualizer.h" + +G_BEGIN_DECLS +#define GST_TYPE_WAVE_SCOPE (gst_wave_scope_get_type()) +#define GST_WAVE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_WAVE_SCOPE,GstWaveScope)) +#define GST_WAVE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_WAVE_SCOPE,GstWaveScopeClass)) +#define GST_IS_WAVE_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_WAVE_SCOPE)) +#define GST_IS_WAVE_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_WAVE_SCOPE)) +typedef struct _GstWaveScope GstWaveScope; +typedef struct _GstWaveScopeClass GstWaveScopeClass; + +typedef void (*GstWaveScopeProcessFunc) (GstBaseAudioVisualizer *, guint32 *, gint16 *, guint); + +struct _GstWaveScope +{ + GstBaseAudioVisualizer parent; + + /* < private > */ + GstWaveScopeProcessFunc process; + gint style; + + /* filter specific data */ + gdouble *flt; +}; + +struct _GstWaveScopeClass +{ + GstBaseAudioVisualizerClass parent_class; +}; + +GType gst_wave_scope_get_type (void); +gboolean gst_wave_scope_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_WAVE_SCOPE_H__ */ \ No newline at end of file diff --git a/gst/audiovisualizers/plugin.c b/gst/audiovisualizers/plugin.c new file mode 100644 index 0000000..4130f97 --- /dev/null +++ b/gst/audiovisualizers/plugin.c @@ -0,0 +1,51 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * plugin.c: scopes plugin + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include + +#include "gstspacescope.h" +#include "gstspectrascope.h" +#include "gstsynaescope.h" +#include "gstwavescope.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gboolean res = TRUE; + + /* initialize gst controller library */ + gst_controller_init (NULL, NULL); + + res &= gst_space_scope_plugin_init (plugin); + res &= gst_spectra_scope_plugin_init (plugin); + res &= gst_synae_scope_plugin_init (plugin); + res &= gst_wave_scope_plugin_init (plugin); + return res; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "audiovisualizers", + "Creates video visualizations of audio input", + plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/autoconvert/Makefile.in b/gst/autoconvert/Makefile.in index b56b310..051f1d3 100644 --- a/gst/autoconvert/Makefile.in +++ b/gst/autoconvert/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstautoconvert_la_OBJECTS = \ libgstautoconvert_la-gstautovideoconvert.lo \ libgstautoconvert_la-plugin.lo libgstautoconvert_la_OBJECTS = $(am_libgstautoconvert_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstautoconvert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstautoconvert_la_SOURCES) DIST_SOURCES = $(libgstautoconvert_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -601,7 +628,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstautoconvert.la: $(libgstautoconvert_la_OBJECTS) $(libgstautoconvert_la_DEPENDENCIES) +libgstautoconvert.la: $(libgstautoconvert_la_OBJECTS) $(libgstautoconvert_la_DEPENDENCIES) $(EXTRA_libgstautoconvert_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstautoconvert_la_LINK) -rpath $(plugindir) $(libgstautoconvert_la_OBJECTS) $(libgstautoconvert_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,50 +644,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstautoconvert_la-gstautoconvert.lo: gstautoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -MT libgstautoconvert_la-gstautoconvert.lo -MD -MP -MF $(DEPDIR)/libgstautoconvert_la-gstautoconvert.Tpo -c -o libgstautoconvert_la-gstautoconvert.lo `test -f 'gstautoconvert.c' || echo '$(srcdir)/'`gstautoconvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautoconvert_la-gstautoconvert.Tpo $(DEPDIR)/libgstautoconvert_la-gstautoconvert.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautoconvert.c' object='libgstautoconvert_la-gstautoconvert.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautoconvert.c' object='libgstautoconvert_la-gstautoconvert.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-gstautoconvert.lo `test -f 'gstautoconvert.c' || echo '$(srcdir)/'`gstautoconvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-gstautoconvert.lo `test -f 'gstautoconvert.c' || echo '$(srcdir)/'`gstautoconvert.c libgstautoconvert_la-gstautovideoconvert.lo: gstautovideoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -MT libgstautoconvert_la-gstautovideoconvert.lo -MD -MP -MF $(DEPDIR)/libgstautoconvert_la-gstautovideoconvert.Tpo -c -o libgstautoconvert_la-gstautovideoconvert.lo `test -f 'gstautovideoconvert.c' || echo '$(srcdir)/'`gstautovideoconvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautoconvert_la-gstautovideoconvert.Tpo $(DEPDIR)/libgstautoconvert_la-gstautovideoconvert.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautovideoconvert.c' object='libgstautoconvert_la-gstautovideoconvert.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautovideoconvert.c' object='libgstautoconvert_la-gstautovideoconvert.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-gstautovideoconvert.lo `test -f 'gstautovideoconvert.c' || echo '$(srcdir)/'`gstautovideoconvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-gstautovideoconvert.lo `test -f 'gstautovideoconvert.c' || echo '$(srcdir)/'`gstautovideoconvert.c libgstautoconvert_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -MT libgstautoconvert_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstautoconvert_la-plugin.Tpo -c -o libgstautoconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautoconvert_la-plugin.Tpo $(DEPDIR)/libgstautoconvert_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstautoconvert_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstautoconvert_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 $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstautoconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -767,10 +788,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/autoconvert/gstautoconvert.c b/gst/autoconvert/gstautoconvert.c index 0cf7e08..43a7cc9 100644 --- a/gst/autoconvert/gstautoconvert.c +++ b/gst/autoconvert/gstautoconvert.c @@ -45,8 +45,6 @@ GST_DEBUG_CATEGORY (autoconvert_debug); #define GST_CAT_DEFAULT (autoconvert_debug) -#define DEFAULT_INITIAL_IDENTITY FALSE - #define GST_AUTOCONVERT_LOCK(ac) GST_OBJECT_LOCK (ac) #define GST_AUTOCONVERT_UNLOCK(ac) GST_OBJECT_UNLOCK (ac) @@ -83,8 +81,7 @@ enum enum { PROP_0, - PROP_FACTORIES, - PROP_INITIAL_IDENTITY + PROP_FACTORIES }; static void gst_auto_convert_set_property (GObject * object, @@ -103,6 +100,8 @@ static GstPad *gst_auto_convert_get_internal_sinkpad (GstAutoConvert * static GstPad *gst_auto_convert_get_internal_srcpad (GstAutoConvert * autoconvert); +static GstIterator *gst_auto_convert_iterate_internal_links (GstPad * pad); + static gboolean gst_auto_convert_sink_setcaps (GstPad * pad, GstCaps * caps); static GstCaps *gst_auto_convert_sink_getcaps (GstPad * pad); static GstFlowReturn gst_auto_convert_sink_chain (GstPad * pad, @@ -169,10 +168,8 @@ gst_auto_convert_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Select convertor based on caps", "Generic/Bin", @@ -199,14 +196,6 @@ gst_auto_convert_class_init (GstAutoConvertClass * klass) " elements), can only be set once", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_INITIAL_IDENTITY, - g_param_spec_boolean ("initial-identity", - "Install identity initially", - "If true, then the identity element will be installed initially " - "and used for event passing until the first data buffer arrives ", - DEFAULT_INITIAL_IDENTITY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_auto_convert_change_state); } @@ -233,6 +222,8 @@ gst_auto_convert_init (GstAutoConvert * autoconvert, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_query_type)); gst_pad_set_bufferalloc_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_buffer_alloc)); + gst_pad_set_iterate_internal_links_function (autoconvert->sinkpad, + GST_DEBUG_FUNCPTR (gst_auto_convert_iterate_internal_links)); gst_pad_set_event_function (autoconvert->srcpad, GST_DEBUG_FUNCPTR (gst_auto_convert_src_event)); @@ -240,13 +231,13 @@ gst_auto_convert_init (GstAutoConvert * autoconvert, GST_DEBUG_FUNCPTR (gst_auto_convert_src_query)); gst_pad_set_query_type_function (autoconvert->srcpad, GST_DEBUG_FUNCPTR (gst_auto_convert_src_query_type)); + gst_pad_set_iterate_internal_links_function (autoconvert->sinkpad, + GST_DEBUG_FUNCPTR (gst_auto_convert_iterate_internal_links)); gst_element_add_pad (GST_ELEMENT (autoconvert), autoconvert->sinkpad); gst_element_add_pad (GST_ELEMENT (autoconvert), autoconvert->srcpad); gst_segment_init (&autoconvert->sink_segment, GST_FORMAT_UNDEFINED); - - autoconvert->initial_identity = DEFAULT_INITIAL_IDENTITY; } static void @@ -299,11 +290,6 @@ gst_auto_convert_set_property (GObject * object, " have been set or auto-discovered"); GST_AUTOCONVERT_UNLOCK (autoconvert); break; - case PROP_INITIAL_IDENTITY: - GST_AUTOCONVERT_LOCK (autoconvert); - autoconvert->initial_identity = g_value_get_boolean (value); - GST_AUTOCONVERT_UNLOCK (autoconvert); - break; } } @@ -322,11 +308,6 @@ gst_auto_convert_get_property (GObject * object, g_value_set_pointer (value, &autoconvert->factories); GST_AUTOCONVERT_UNLOCK (autoconvert); break; - case PROP_INITIAL_IDENTITY: - GST_AUTOCONVERT_LOCK (autoconvert); - g_value_set_boolean (value, autoconvert->initial_identity); - GST_AUTOCONVERT_UNLOCK (autoconvert); - break; } } @@ -474,37 +455,12 @@ gst_auto_convert_get_subelement (GstAutoConvert * autoconvert, gboolean query_only) { GstElement *element = NULL; - gboolean initial_identity; GST_AUTOCONVERT_LOCK (autoconvert); if (autoconvert->current_subelement) element = gst_object_ref (autoconvert->current_subelement); - initial_identity = autoconvert->initial_identity; GST_AUTOCONVERT_UNLOCK (autoconvert); - if (G_UNLIKELY (!query_only && element == NULL && initial_identity)) { - /* No current sub-element - create an identity and install it */ - GstElementFactory *identity_feature; - GstElement *identity; - - GST_INFO_OBJECT (autoconvert, - "No existing child element - instantiating identity"); - /* if the identity feature doesn't exist - something is very wrong */ - identity_feature = - GST_ELEMENT_FACTORY_CAST (gst_default_registry_find_feature ("identity", - GST_TYPE_ELEMENT_FACTORY)); - identity = - gst_auto_convert_get_or_make_element_from_factory (autoconvert, - identity_feature); - if (identity - && gst_auto_convert_activate_element (autoconvert, identity, NULL)) { - GST_AUTOCONVERT_LOCK (autoconvert); - if (autoconvert->current_subelement) - element = gst_object_ref (autoconvert->current_subelement); - GST_AUTOCONVERT_UNLOCK (autoconvert); - } - } - return element; } @@ -796,6 +752,32 @@ gst_auto_convert_activate_element (GstAutoConvert * autoconvert, return TRUE; } +static GstIterator * +gst_auto_convert_iterate_internal_links (GstPad * pad) +{ + GstAutoConvert *autoconvert = GST_AUTO_CONVERT (gst_pad_get_parent (pad)); + GstIterator *it = NULL; + GstPad *internal; + + if (!autoconvert) + return NULL; + + if (pad == autoconvert->sinkpad) + internal = gst_auto_convert_get_internal_srcpad (autoconvert); + else + internal = gst_auto_convert_get_internal_sinkpad (autoconvert); + + if (internal) { + it = gst_iterator_new_single (GST_TYPE_PAD, internal, + (GstCopyFunction) gst_object_ref, (GFreeFunc) gst_object_unref); + gst_object_unref (internal); + } + + gst_object_unref (autoconvert); + + return it; +} + /* * If there is already an internal element, it will try to call set_caps on it * @@ -1094,15 +1076,6 @@ gst_auto_convert_sink_event (GstPad * pad, GstEvent * event) } internal_srcpad = gst_auto_convert_get_internal_srcpad (autoconvert); - if (internal_srcpad == NULL) { - /* Query the subelement - triggers creation of an identity if necessary */ - GstElement *subelement = - gst_auto_convert_get_subelement (autoconvert, FALSE); - if (subelement) - gst_object_unref (subelement); - internal_srcpad = gst_auto_convert_get_internal_srcpad (autoconvert); - } - if (internal_srcpad) { ret = gst_pad_push_event (internal_srcpad, event); gst_object_unref (internal_srcpad); @@ -1277,14 +1250,10 @@ gst_auto_convert_sink_getcaps (GstPad * pad) if (element_caps) { if (!gst_caps_is_any (element_caps) && !gst_caps_is_empty (element_caps)) { - GstCaps *tmpcaps = NULL; - - tmpcaps = gst_caps_union (caps, element_caps); - gst_caps_unref (caps); - caps = tmpcaps; - + gst_caps_merge (caps, element_caps); + } else { + gst_caps_unref (element_caps); } - gst_caps_unref (element_caps); } gst_object_unref (element); @@ -1298,11 +1267,7 @@ gst_auto_convert_sink_getcaps (GstPad * pad) if (static_caps && !gst_caps_is_any (static_caps) && !gst_caps_is_empty (static_caps)) { - GstCaps *tmpcaps = NULL; - - tmpcaps = gst_caps_union (caps, static_caps); - gst_caps_unref (caps); - caps = tmpcaps; + gst_caps_merge (caps, static_caps); } } } diff --git a/gst/autoconvert/gstautoconvert.h b/gst/autoconvert/gstautoconvert.h index 612bcb1..b2f3abf 100644 --- a/gst/autoconvert/gstautoconvert.h +++ b/gst/autoconvert/gstautoconvert.h @@ -56,8 +56,6 @@ struct _GstAutoConvert GList *cached_events; GstSegment sink_segment; gboolean drop_newseg; - - gboolean initial_identity; }; struct _GstAutoConvertClass diff --git a/gst/autoconvert/gstautovideoconvert.c b/gst/autoconvert/gstautovideoconvert.c index 00ee6db..cf35bb9 100644 --- a/gst/autoconvert/gstautovideoconvert.c +++ b/gst/autoconvert/gstautovideoconvert.c @@ -133,10 +133,8 @@ gst_auto_video_convert_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Select color space convertor based on caps", "Generic/Bin", diff --git a/gst/bayer/Makefile.am b/gst/bayer/Makefile.am index c62ab99..d67899e 100644 --- a/gst/bayer/Makefile.am +++ b/gst/bayer/Makefile.am @@ -1,16 +1,26 @@ plugin_LTLIBRARIES = libgstbayer.la +ORC_SOURCE=gstbayerorc +include $(top_srcdir)/common/orc.mak + +# orc-generated code creates warnings +ERROR_CFLAGS= + libgstbayer_la_SOURCES = \ gstbayer.c \ gstbayer2rgb.c \ gstrgb2bayer.c \ gstrgb2bayer.h libgstbayer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(ORC_CFLAGS) \ $(GST_CFLAGS) libgstbayer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(ORC_LIBS) \ $(GST_BASE_LIBS) libgstbayer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstbayer_la_LIBTOOLFLAGS = --tag=disable-static +nodist_libgstbayer_la_SOURCES = $(ORC_NODIST_SOURCES) + Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ @@ -18,6 +28,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -:TAGS eng debug \ -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ -:SOURCES $(libgstbayer_la_SOURCES) \ + $(nodist_libgstbayer_la_SOURCES) \ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstbayer_la_CFLAGS) \ -:LDFLAGS $(libgstbayer_la_LDFLAGS) \ $(libgstbayer_la_LIBADD) \ diff --git a/gst/bayer/Makefile.in b/gst/bayer/Makefile.in index 7f3036f..79c5198 100644 --- a/gst/bayer/Makefile.in +++ b/gst/bayer/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -15,6 +15,28 @@ @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@ @@ -34,12 +56,14 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/common/orc.mak subdir = gst/bayer -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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,16 +122,25 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstbayer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstbayer_la_OBJECTS = libgstbayer_la-gstbayer.lo \ libgstbayer_la-gstbayer2rgb.lo libgstbayer_la-gstrgb2bayer.lo -libgstbayer_la_OBJECTS = $(am_libgstbayer_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__objects_1 = libgstbayer_la-tmp-orc.lo +nodist_libgstbayer_la_OBJECTS = $(am__objects_1) +libgstbayer_la_OBJECTS = $(am_libgstbayer_la_OBJECTS) \ + $(nodist_libgstbayer_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstbayer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -123,23 +156,23 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstbayer_la_SOURCES) +SOURCES = $(libgstbayer_la_SOURCES) $(nodist_libgstbayer_la_SOURCES) DIST_SOURCES = $(libgstbayer_la_SOURCES) ETAGS = etags CTAGS = ctags @@ -148,7 +181,6 @@ 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@ @@ -166,7 +198,6 @@ 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@ @@ -201,6 +232,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -219,7 +251,9 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ERROR_CFLAGS = @ERROR_CFLAGS@ + +# orc-generated code creates warnings +ERROR_CFLAGS = ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ EXEEXT = @EXEEXT@ EXIF_CFLAGS = @EXIF_CFLAGS@ @@ -240,6 +274,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -257,6 +292,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -265,13 +301,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -296,13 +335,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -350,6 +390,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -381,8 +422,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -406,6 +451,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -430,10 +477,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -445,6 +496,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -469,6 +524,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -504,7 +560,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -526,6 +581,16 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstbayer.la +ORC_SOURCE = gstbayerorc +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 $@"; libgstbayer_la_SOURCES = \ gstbayer.c \ gstbayer2rgb.c \ @@ -533,18 +598,22 @@ libgstbayer_la_SOURCES = \ gstrgb2bayer.h libgstbayer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ + $(ORC_CFLAGS) \ $(GST_CFLAGS) libgstbayer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(ORC_LIBS) \ $(GST_BASE_LIBS) libgstbayer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstbayer_la_LIBTOOLFLAGS = --tag=disable-static -all: all-am +nodist_libgstbayer_la_SOURCES = $(ORC_NODIST_SOURCES) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(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*) \ @@ -565,6 +634,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -605,7 +675,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstbayer.la: $(libgstbayer_la_OBJECTS) $(libgstbayer_la_DEPENDENCIES) +libgstbayer.la: $(libgstbayer_la_OBJECTS) $(libgstbayer_la_DEPENDENCIES) $(EXTRA_libgstbayer_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstbayer_la_LINK) -rpath $(plugindir) $(libgstbayer_la_OBJECTS) $(libgstbayer_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,54 +687,56 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbayer_la-gstbayer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbayer_la-gstbayer2rgb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbayer_la-gstrgb2bayer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbayer_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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstbayer_la-gstbayer.lo: gstbayer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -MT libgstbayer_la-gstbayer.lo -MD -MP -MF $(DEPDIR)/libgstbayer_la-gstbayer.Tpo -c -o libgstbayer_la-gstbayer.lo `test -f 'gstbayer.c' || echo '$(srcdir)/'`gstbayer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbayer_la-gstbayer.Tpo $(DEPDIR)/libgstbayer_la-gstbayer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbayer.c' object='libgstbayer_la-gstbayer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbayer.c' object='libgstbayer_la-gstbayer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstbayer.lo `test -f 'gstbayer.c' || echo '$(srcdir)/'`gstbayer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstbayer.lo `test -f 'gstbayer.c' || echo '$(srcdir)/'`gstbayer.c libgstbayer_la-gstbayer2rgb.lo: gstbayer2rgb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -MT libgstbayer_la-gstbayer2rgb.lo -MD -MP -MF $(DEPDIR)/libgstbayer_la-gstbayer2rgb.Tpo -c -o libgstbayer_la-gstbayer2rgb.lo `test -f 'gstbayer2rgb.c' || echo '$(srcdir)/'`gstbayer2rgb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbayer_la-gstbayer2rgb.Tpo $(DEPDIR)/libgstbayer_la-gstbayer2rgb.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbayer2rgb.c' object='libgstbayer_la-gstbayer2rgb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbayer2rgb.c' object='libgstbayer_la-gstbayer2rgb.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstbayer2rgb.lo `test -f 'gstbayer2rgb.c' || echo '$(srcdir)/'`gstbayer2rgb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstbayer2rgb.lo `test -f 'gstbayer2rgb.c' || echo '$(srcdir)/'`gstbayer2rgb.c libgstbayer_la-gstrgb2bayer.lo: gstrgb2bayer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -MT libgstbayer_la-gstrgb2bayer.lo -MD -MP -MF $(DEPDIR)/libgstbayer_la-gstrgb2bayer.Tpo -c -o libgstbayer_la-gstrgb2bayer.lo `test -f 'gstrgb2bayer.c' || echo '$(srcdir)/'`gstrgb2bayer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbayer_la-gstrgb2bayer.Tpo $(DEPDIR)/libgstbayer_la-gstrgb2bayer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrgb2bayer.c' object='libgstbayer_la-gstrgb2bayer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrgb2bayer.c' object='libgstbayer_la-gstrgb2bayer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstrgb2bayer.lo `test -f 'gstrgb2bayer.c' || echo '$(srcdir)/'`gstrgb2bayer.c + +libgstbayer_la-tmp-orc.lo: tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -MT libgstbayer_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstbayer_la-tmp-orc.Tpo -c -o libgstbayer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbayer_la-tmp-orc.Tpo $(DEPDIR)/libgstbayer_la-tmp-orc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstbayer_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 $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-gstrgb2bayer.lo `test -f 'gstrgb2bayer.c' || echo '$(srcdir)/'`gstrgb2bayer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbayer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbayer_la_CFLAGS) $(CFLAGS) -c -o libgstbayer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -754,14 +826,19 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook check-am: all-am -check: check-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-am +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -771,10 +848,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -786,10 +868,11 @@ distclean-generic: 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-pluginLTLIBRARIES \ - mostlyclean-am +clean-am: clean-generic clean-libtool clean-local \ + clean-pluginLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -857,22 +940,59 @@ ps-am: uninstall-am: uninstall-pluginLTLIBRARIES -.MAKE: install-am install-strip +.MAKE: all check install 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 - + clean-libtool clean-local 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 Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ @@ -880,6 +1000,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -:TAGS eng debug \ -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ -:SOURCES $(libgstbayer_la_SOURCES) \ + $(nodist_libgstbayer_la_SOURCES) \ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstbayer_la_CFLAGS) \ -:LDFLAGS $(libgstbayer_la_LDFLAGS) \ $(libgstbayer_la_LIBADD) \ diff --git a/gst/bayer/gstbayer2rgb.c b/gst/bayer/gstbayer2rgb.c index 67aaa42..388ee2e 100644 --- a/gst/bayer/gstbayer2rgb.c +++ b/gst/bayer/gstbayer2rgb.c @@ -80,7 +80,8 @@ #include #include #include -#include "_stdint.h" +#include <_stdint.h> +#include "gstbayerorc.h" #define GST_CAT_DEFAULT gst_bayer2rgb_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); @@ -125,7 +126,6 @@ struct _GstBayer2RGBClass GstBaseTransformClass parent; }; -//#define SRC_CAPS GST_VIDEO_CAPS_RGBx #define SRC_CAPS \ GST_VIDEO_CAPS_RGBx ";" \ GST_VIDEO_CAPS_xRGB ";" \ @@ -134,9 +134,7 @@ struct _GstBayer2RGBClass GST_VIDEO_CAPS_RGBA ";" \ GST_VIDEO_CAPS_ARGB ";" \ GST_VIDEO_CAPS_BGRA ";" \ - GST_VIDEO_CAPS_ABGR ";" \ - GST_VIDEO_CAPS_RGB ";" \ - GST_VIDEO_CAPS_BGR + GST_VIDEO_CAPS_ABGR #define SINK_CAPS "video/x-raw-bayer,format=(string){bggr,grbg,gbrg,rggb}," \ "width=(int)[1,MAX],height=(int)[1,MAX],framerate=(fraction)[0/1,MAX]" @@ -173,18 +171,23 @@ static void gst_bayer2rgb_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GstPadTemplate *pad_template; gst_element_class_set_details_simple (element_class, "Bayer to RGB decoder for cameras", "Filter/Converter/Video", "Converts video/x-raw-bayer to video/x-raw-rgb", "William Brack "); - gst_element_class_add_pad_template (element_class, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - gst_caps_from_string (SRC_CAPS))); - gst_element_class_add_pad_template (element_class, + gst_caps_from_string (SRC_CAPS)); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); + pad_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - gst_caps_from_string (SINK_CAPS))); + gst_caps_from_string (SINK_CAPS)); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); } static void @@ -365,7 +368,6 @@ gst_bayer2rgb_get_unit_size (GstBaseTransform * base, GstCaps * caps, name = gst_structure_get_name (structure); /* Our name must be either video/x-raw-bayer video/x-raw-rgb */ if (strcmp (name, "video/x-raw-rgb")) { - /* For bayer, we handle only BA81 (BGGR), which is BPP=24 */ *size = GST_ROUND_UP_4 (width) * height; return TRUE; } else { @@ -382,284 +384,108 @@ gst_bayer2rgb_get_unit_size (GstBaseTransform * base, GstCaps * caps, return FALSE; } -/* - * We define values for the colors, just to make the code more readable. - */ -#define RED 0 /* Pure red element */ -#define GREENB 1 /* Green element which is on a blue line */ -#define BLUE 2 /* Pure blue element */ -#define GREENR 3 /* Green element which is on a red line */ - -static int -get_pixel_type (GstBayer2RGB * filter, int x, int y) -{ - int type; - - if (((x ^ filter->format) & 1)) { - if ((y ^ (filter->format >> 1)) & 1) - type = RED; - else - type = GREENB; - } else { - if ((y ^ (filter->format >> 1)) & 1) - type = GREENR; - else - type = BLUE; - } - return type; -} - -/* Routine to generate the top and bottom edges (not including corners) */ static void -hborder (uint8_t * input, uint8_t * output, int bot_top, - int typ, GstBayer2RGB * filter) +gst_bayer2rgb_split_and_upsample_horiz (guint8 * dest0, guint8 * dest1, + const guint8 * src, int n) { - uint8_t *op; /* output pointer */ - uint8_t *ip; /* input pointer */ - uint8_t *nx; /* next line pointer */ - int ix; /* loop index */ - - op = output + (bot_top * filter->width * (filter->height - 1) + 1) * - filter->pixsize; - ip = input + bot_top * filter->stride * (filter->height - 1); - /* calculate minus or plus one line, depending upon bot_top flag */ - nx = ip + (1 - 2 * bot_top) * filter->stride; - /* Stepping horizontally */ - for (ix = 1; ix < filter->width - 1; ix++, op += filter->pixsize) { - switch (typ) { - case RED: - op[filter->r_off] = ip[ix]; - op[filter->g_off] = (ip[ix + 1] + ip[ix - 1] + nx[ix] + 1) / 3; - op[filter->b_off] = (nx[ix + 1] + nx[ix - 1] + 1) / 2; - typ = GREENR; - break; - case GREENR: - op[filter->r_off] = (ip[ix + 1] + ip[ix - 1] + 1) / 2; - op[filter->g_off] = ip[ix]; - op[filter->b_off] = nx[ix]; - typ = RED; - break; - case GREENB: - op[filter->r_off] = nx[ix]; - op[filter->g_off] = ip[ix]; - op[filter->b_off] = (ip[ix + 1] + ip[ix - 1] + 1) / 2; - typ = BLUE; - break; - case BLUE: - op[filter->r_off] = (nx[ix + 1] + nx[ix - 1] + 1) / 2; - op[filter->g_off] = (ip[ix + 1] + ip[ix - 1] + nx[ix] + 1) / 3; - op[filter->b_off] = ip[ix]; - typ = GREENB; - break; - } - } -} + int i; + + dest0[0] = src[0]; + dest1[0] = src[1]; + dest0[1] = (src[0] + src[2] + 1) >> 1; + dest1[1] = src[1]; + +#if defined(__i386__) || defined(__amd64__) + gst_bayer_horiz_upsample_unaligned (dest0 + 2, dest1 + 2, src + 1, + (n - 4) >> 1); +#else + gst_bayer_horiz_upsample (dest0 + 2, dest1 + 2, src + 2, (n - 4) >> 1); +#endif -/* Routine to generate the left and right edges, not including corners */ -static void -vborder (uint8_t * input, uint8_t * output, int right_left, - int typ, GstBayer2RGB * filter) -{ - uint8_t *op; /* output pointer */ - uint8_t *ip; /* input pointer */ - uint8_t *la; /* line above pointer */ - uint8_t *lb; /* line below pointer */ - int ix; /* loop index */ - int lr; /* 'left-right' flag - +1 is right, -1 is left */ - - lr = (1 - 2 * right_left); - /* stepping vertically */ - for (ix = 1; ix < filter->height - 1; ix++) { - ip = input + right_left * (filter->width - 1) + ix * filter->stride; - op = output + (right_left * (filter->width - 1) + ix * filter->width) * - filter->pixsize; - la = ip + filter->stride; - lb = ip - filter->stride; - switch (typ) { - case RED: - op[filter->r_off] = ip[0]; - op[filter->g_off] = (la[0] + ip[lr] + lb[0] + 1) / 3; - op[filter->b_off] = (la[lr] + lb[lr] + 1) / 2; - typ = GREENB; - break; - case GREENR: - op[filter->r_off] = ip[lr]; - op[filter->g_off] = ip[0]; - op[filter->b_off] = (la[lr] + lb[lr] + 1) / 2; - typ = BLUE; - break; - case GREENB: - op[filter->r_off] = (la[lr] + lb[lr] + 1) / 2; - op[filter->g_off] = ip[0]; - op[filter->b_off] = ip[lr]; - typ = RED; - break; - case BLUE: - op[filter->r_off] = (la[lr] + lb[lr] + 1) / 2; - op[filter->g_off] = (la[0] + ip[lr] + lb[0] + 1) / 3; - op[filter->b_off] = ip[0]; - typ = GREENR; - break; + for (i = n - 2; i < n; i++) { + if ((i & 1) == 0) { + dest0[i] = src[i]; + dest1[i] = src[i - 1]; + } else { + dest0[i] = src[i - 1]; + dest1[i] = src[i]; } } } -/* Produce the four (top, bottom, left, right) edges */ -static void -do_row0_col0 (uint8_t * input, uint8_t * output, GstBayer2RGB * filter) -{ - /* Horizontal edges */ - hborder (input, output, 0, get_pixel_type (filter, 1, 0), filter); - hborder (input, output, 1, get_pixel_type (filter, 1, filter->height - 1), - filter); - - /* Vertical edges */ - vborder (input, output, 0, get_pixel_type (filter, 0, 1), filter); - vborder (input, output, 1, get_pixel_type (filter, filter->width - 1, 1), - filter); -} +typedef void (*process_func) (guint8 * d0, const guint8 * s0, const guint8 * s1, + const guint8 * s2, const guint8 * s3, const guint8 * s4, const guint8 * s5, + int n); static void -corner (uint8_t * input, uint8_t * output, int x, int y, - int xd, int yd, int typ, GstBayer2RGB * filter) +gst_bayer2rgb_process (GstBayer2RGB * bayer2rgb, uint8_t * dest, + int dest_stride, uint8_t * src, int src_stride) { - uint8_t *ip; /* input pointer */ - uint8_t *op; /* output pointer */ - uint8_t *nx; /* adjacent line */ - - op = output + y * filter->width * filter->pixsize + x * filter->pixsize; - ip = input + y * filter->stride + x; - nx = ip + yd * filter->stride; - switch (typ) { - case RED: - op[filter->r_off] = ip[0]; - op[filter->g_off] = (nx[0] + ip[xd] + 1) / 2; - op[filter->b_off] = nx[xd]; - break; - case GREENR: - op[filter->r_off] = ip[xd]; - op[filter->g_off] = ip[0]; - op[filter->b_off] = nx[0]; - break; - case GREENB: - op[filter->r_off] = nx[0]; - op[filter->g_off] = ip[0]; - op[filter->b_off] = ip[xd]; - break; - case BLUE: - op[filter->r_off] = nx[xd]; - op[filter->g_off] = (nx[0] + ip[xd] + 1) / 2; - op[filter->b_off] = ip[0]; - break; + int j; + guint8 *tmp; + process_func merge[2] = { NULL, NULL }; + int r_off, g_off, b_off; + + /* We exploit some symmetry in the functions here. The base functions + * are all named for the BGGR arrangement. For RGGB, we swap the + * red offset and blue offset in the output. For GRBG, we swap the + * order of the merge functions. For GBRG, do both. */ + r_off = bayer2rgb->r_off; + g_off = bayer2rgb->g_off; + b_off = bayer2rgb->b_off; + if (bayer2rgb->format == GST_BAYER_2_RGB_FORMAT_RGGB || + bayer2rgb->format == GST_BAYER_2_RGB_FORMAT_GBRG) { + r_off = bayer2rgb->b_off; + b_off = bayer2rgb->r_off; } -} -static void -do_corners (uint8_t * input, uint8_t * output, GstBayer2RGB * filter) -{ - /* Top left */ - corner (input, output, 0, 0, 1, 1, get_pixel_type (filter, 0, 0), filter); - /* Bottom left */ - corner (input, output, 0, filter->height - 1, 1, -1, - get_pixel_type (filter, 0, filter->height - 1), filter); - /* Top right */ - corner (input, output, filter->width - 1, 0, -1, 0, - get_pixel_type (filter, filter->width - 1, 0), filter); - /* Bottom right */ - corner (input, output, filter->width - 1, filter->height - 1, -1, -1, - get_pixel_type (filter, filter->width - 1, filter->height - 1), filter); -} + if (r_off == 2 && g_off == 1 && b_off == 0) { + merge[0] = gst_bayer_merge_bg_bgra; + merge[1] = gst_bayer_merge_gr_bgra; + } else if (r_off == 3 && g_off == 2 && b_off == 1) { + merge[0] = gst_bayer_merge_bg_abgr; + merge[1] = gst_bayer_merge_gr_abgr; + } else if (r_off == 1 && g_off == 2 && b_off == 3) { + merge[0] = gst_bayer_merge_bg_argb; + merge[1] = gst_bayer_merge_gr_argb; + } else if (r_off == 0 && g_off == 1 && b_off == 2) { + merge[0] = gst_bayer_merge_bg_rgba; + merge[1] = gst_bayer_merge_gr_rgba; + } + if (bayer2rgb->format == GST_BAYER_2_RGB_FORMAT_GRBG || + bayer2rgb->format == GST_BAYER_2_RGB_FORMAT_GBRG) { + process_func tmp = merge[0]; + merge[0] = merge[1]; + merge[1] = tmp; + } -static void -do_body (uint8_t * input, uint8_t * output, GstBayer2RGB * filter) -{ - int ip, op; /* input and output pointers */ - int w, h; /* loop indices */ - int type; /* calculated colour of current element */ - int a1, a2; - int v1, v2, h1, h2; + tmp = g_malloc (2 * 4 * bayer2rgb->width); +#define LINE(x) (tmp + ((x)&7) * bayer2rgb->width) - /* - * We are processing row (line) by row, starting with the second - * row and continuing through the next to last. Each row is processed - * column by column, starting with the second and continuing through - * to the next to last. - */ - for (h = 1; h < filter->height - 1; h++) { - /* - * Remember we are processing "row by row". For each row, we need - * to set the type of the first element to be processed. Since we - * have already processed the edges, the "first element" will be - * the pixel at position (1,1). Assuming BG format, this should - * be RED for odd-numbered rows and GREENB for even rows. - */ - type = get_pixel_type (filter, 1, h); - /* Calculate the starting position for the row */ - op = h * filter->width * filter->pixsize; /* output (converted) pos */ - ip = h * filter->stride; /* input (bayer data) pos */ - for (w = 1; w < filter->width - 1; w++) { - op += filter->pixsize; /* we are processing "horizontally" */ - ip++; - switch (type) { - case RED: - output[op + filter->r_off] = input[ip]; - output[op + filter->b_off] = (input[ip - filter->stride - 1] + - input[ip - filter->stride + 1] + - input[ip + filter->stride - 1] + - input[ip + filter->stride + 1] + 2) / 4; - v1 = input[ip + filter->stride]; - v2 = input[ip - filter->stride]; - h1 = input[ip + 1]; - h2 = input[ip - 1]; - a1 = abs (v1 - v2); - a2 = abs (h1 - h2); - if (a1 < a2) - output[op + filter->g_off] = (v1 + v2 + 1) / 2; - else if (a1 > a2) - output[op + filter->g_off] = (h1 + h2 + 1) / 2; - else - output[op + filter->g_off] = (v1 + h1 + v2 + h2 + 2) / 4; - type = GREENR; - break; - case GREENR: - output[op + filter->r_off] = (input[ip + 1] + input[ip - 1] + 1) / 2; - output[op + filter->g_off] = input[ip]; - output[op + filter->b_off] = (input[ip - filter->stride] + - input[ip + filter->stride] + 1) / 2; - type = RED; - break; - case GREENB: - output[op + filter->r_off] = (input[ip - filter->stride] + - input[ip + filter->stride] + 1) / 2; - output[op + filter->g_off] = input[ip]; - output[op + filter->b_off] = (input[ip + 1] + input[ip - 1] + 1) / 2; - type = BLUE; - break; - case BLUE: - output[op + filter->r_off] = (input[ip - filter->stride - 1] + - input[ip - filter->stride + 1] + - input[ip + filter->stride - 1] + - input[ip + filter->stride + 1] + 2) / 4; - output[op + filter->b_off] = input[ip]; - v1 = input[ip + filter->stride]; - v2 = input[ip - filter->stride]; - h1 = input[ip + 1]; - h2 = input[ip - 1]; - a1 = abs (v1 - v2); - a2 = abs (h1 - h2); - if (a1 < a2) - output[op + filter->g_off] = (v1 + v2 + 1) / 2; - else if (a1 > a2) - output[op + filter->g_off] = (h1 + h2 + 1) / 2; - else - output[op + filter->g_off] = (v1 + h1 + v2 + h2 + 2) / 4; - type = GREENB; - break; - } + gst_bayer2rgb_split_and_upsample_horiz (LINE (3 * 2 + 0), LINE (3 * 2 + 1), + src + 1 * src_stride, bayer2rgb->width); + j = 0; + gst_bayer2rgb_split_and_upsample_horiz (LINE (j * 2 + 0), LINE (j * 2 + 1), + src + j * src_stride, bayer2rgb->width); + + for (j = 0; j < bayer2rgb->height; j++) { + if (j < bayer2rgb->height - 1) { + gst_bayer2rgb_split_and_upsample_horiz (LINE ((j + 1) * 2 + 0), + LINE ((j + 1) * 2 + 1), src + (j + 1) * src_stride, bayer2rgb->width); } + + merge[j & 1] (dest + j * dest_stride, + LINE (j * 2 - 2), LINE (j * 2 - 1), + LINE (j * 2 + 0), LINE (j * 2 + 1), + LINE (j * 2 + 2), LINE (j * 2 + 3), bayer2rgb->width >> 1); } + + g_free (tmp); } + + + static GstFlowReturn gst_bayer2rgb_transform (GstBaseTransform * base, GstBuffer * inbuf, GstBuffer * outbuf) @@ -677,9 +503,8 @@ gst_bayer2rgb_transform (GstBaseTransform * base, GstBuffer * inbuf, GST_DEBUG ("transforming buffer"); input = (uint8_t *) GST_BUFFER_DATA (inbuf); output = (uint8_t *) GST_BUFFER_DATA (outbuf); - do_corners (input, output, filter); - do_row0_col0 (input, output, filter); - do_body (input, output, filter); + gst_bayer2rgb_process (filter, output, filter->width * 4, + input, filter->width); GST_OBJECT_UNLOCK (filter); return GST_FLOW_OK; diff --git a/gst/bayer/gstbayerorc-dist.c b/gst/bayer/gstbayerorc-dist.c new file mode 100644 index 0000000..de016e3 --- /dev/null +++ b/gst/bayer/gstbayerorc-dist.c @@ -0,0 +1,3212 @@ + +/* autogenerated from gstbayerorc.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 gst_bayer_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, + guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); +void gst_bayer_horiz_upsample (guint8 * ORC_RESTRICT d1, + guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); +void gst_bayer_merge_bg_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, 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 */ + + + +/* gst_bayer_horiz_upsample_unaligned */ +#ifdef DISABLE_ORC +void +gst_bayer_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, + guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + orc_union16 var42; + orc_int8 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + + ptr0 = (orc_union16 *) d1; + ptr1 = (orc_union16 *) d2; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 2: loadoffw */ + var42 = ptr4[i + 1]; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var42.i; + var43 = _src.x2[1]; + var44 = _src.x2[0]; + } + /* 4: avgub */ + var45 = ((orc_uint8) var40 + (orc_uint8) var43 + 1) >> 1; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var40; + _dest.x2[1] = var45; + var38.i = _dest.i; + } + /* 6: storew */ + ptr0[i] = var38; + /* 7: avgub */ + var46 = ((orc_uint8) var41 + (orc_uint8) var44 + 1) >> 1; + /* 8: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var46; + _dest.x2[1] = var44; + var39.i = _dest.i; + } + /* 9: storew */ + ptr1[i] = var39; + } + +} + +#else +static void +_backup_gst_bayer_horiz_upsample_unaligned (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + orc_union16 var42; + orc_int8 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr1 = (orc_union16 *) ex->arrays[1]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 2: loadoffw */ + var42 = ptr4[i + 1]; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var42.i; + var43 = _src.x2[1]; + var44 = _src.x2[0]; + } + /* 4: avgub */ + var45 = ((orc_uint8) var40 + (orc_uint8) var43 + 1) >> 1; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var40; + _dest.x2[1] = var45; + var38.i = _dest.i; + } + /* 6: storew */ + ptr0[i] = var38; + /* 7: avgub */ + var46 = ((orc_uint8) var41 + (orc_uint8) var44 + 1) >> 1; + /* 8: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var46; + _dest.x2[1] = var44; + var39.i = _dest.i; + } + /* 9: storew */ + ptr1[i] = var39; + } + +} + +void +gst_bayer_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, + guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_horiz_upsample_unaligned"); + orc_program_set_backup_function (p, + _backup_gst_bayer_horiz_upsample_unaligned); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_constant (p, 4, 0x00000001, "c1"); + 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, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_C1, ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D2, 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_D2] = d2; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_horiz_upsample */ +#ifdef DISABLE_ORC +void +gst_bayer_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, + const guint8 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + orc_union16 var47; + orc_int8 var48; + orc_int8 var49; + orc_int8 var50; + orc_int8 var51; + + ptr0 = (orc_union16 *) d1; + ptr1 = (orc_union16 *) d2; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadoffw */ + var42 = ptr4[i + -1]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var42.i; + var43 = _src.x2[1]; + var44 = _src.x2[0]; + } + /* 2: loadw */ + var39 = ptr4[i]; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var45 = _src.x2[1]; + var46 = _src.x2[0]; + } + /* 4: loadoffw */ + var47 = ptr4[i + 1]; + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var47.i; + var48 = _src.x2[1]; + var49 = _src.x2[0]; + } + /* 6: avgub */ + var50 = ((orc_uint8) var46 + (orc_uint8) var49 + 1) >> 1; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var46; + _dest.x2[1] = var50; + var40.i = _dest.i; + } + /* 8: storew */ + ptr0[i] = var40; + /* 9: avgub */ + var51 = ((orc_uint8) var43 + (orc_uint8) var45 + 1) >> 1; + /* 10: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var51; + _dest.x2[1] = var45; + var41.i = _dest.i; + } + /* 11: storew */ + ptr1[i] = var41; + } + +} + +#else +static void +_backup_gst_bayer_horiz_upsample (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + orc_union16 var47; + orc_int8 var48; + orc_int8 var49; + orc_int8 var50; + orc_int8 var51; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr1 = (orc_union16 *) ex->arrays[1]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadoffw */ + var42 = ptr4[i + -1]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var42.i; + var43 = _src.x2[1]; + var44 = _src.x2[0]; + } + /* 2: loadw */ + var39 = ptr4[i]; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var45 = _src.x2[1]; + var46 = _src.x2[0]; + } + /* 4: loadoffw */ + var47 = ptr4[i + 1]; + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var47.i; + var48 = _src.x2[1]; + var49 = _src.x2[0]; + } + /* 6: avgub */ + var50 = ((orc_uint8) var46 + (orc_uint8) var49 + 1) >> 1; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var46; + _dest.x2[1] = var50; + var40.i = _dest.i; + } + /* 8: storew */ + ptr0[i] = var40; + /* 9: avgub */ + var51 = ((orc_uint8) var43 + (orc_uint8) var45 + 1) >> 1; + /* 10: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var51; + _dest.x2[1] = var45; + var41.i = _dest.i; + } + /* 11: storew */ + ptr1[i] = var41; + } + +} + +void +gst_bayer_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, + const guint8 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_horiz_upsample"); + orc_program_set_backup_function (p, _backup_gst_bayer_horiz_upsample); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_constant (p, 4, 0xffffffff, "c1"); + orc_program_add_constant (p, 4, 0x00000001, "c2"); + 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_add_temporary (p, 1, "t6"); + orc_program_add_temporary (p, 1, "t7"); + + orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_C1, 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, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_C2, ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T5, + 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; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_bg_bgra */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_bg_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: loadw */ + var44 = ptr6[i]; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_bg_bgra (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: loadw */ + var44 = ptr6[i]; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_bg_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_bg_bgra"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_bg_bgra); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x000000ff, "c1"); + orc_program_add_constant (p, 4, 0x0000ff00, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_gr_bgra */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_gr_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 15: loadw */ + var44 = ptr7[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_gr_bgra (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 15: loadw */ + var44 = ptr7[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_gr_bgra (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_gr_bgra"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_gr_bgra); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x0000ff00, "c1"); + orc_program_add_constant (p, 4, 0x000000ff, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_S4, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_bg_abgr */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_bg_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: loadw */ + var45 = ptr6[i]; + /* 16: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var47.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var47.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_bg_abgr (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: loadw */ + var45 = ptr6[i]; + /* 16: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var47.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var47.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_bg_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_bg_abgr"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_bg_abgr); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x000000ff, "c1"); + orc_program_add_constant (p, 4, 0x0000ff00, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T4, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_gr_abgr */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_gr_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var47.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var47.x2[1]; + var54.x2[1] = _dest.i; + } + /* 16: loadw */ + var45 = ptr7[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_gr_abgr (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var47.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var47.x2[1]; + var54.x2[1] = _dest.i; + } + /* 16: loadw */ + var45 = ptr7[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_gr_abgr (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_gr_abgr"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_gr_abgr); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x0000ff00, "c1"); + orc_program_add_constant (p, 4, 0x000000ff, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T4, ORC_VAR_S4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_bg_rgba */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_bg_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 15: loadw */ + var44 = ptr6[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_bg_rgba (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 15: loadw */ + var44 = ptr6[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_bg_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_bg_rgba"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_bg_rgba); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x000000ff, "c1"); + orc_program_add_constant (p, 4, 0x0000ff00, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_gr_rgba */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_gr_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: loadw */ + var44 = ptr7[i]; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_gr_rgba (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 16: loadpb */ + var45.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var45.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 14: loadw */ + var44 = ptr7[i]; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var53.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var53.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var47.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_gr_rgba (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_gr_rgba"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_gr_rgba); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x0000ff00, "c1"); + orc_program_add_constant (p, 4, 0x000000ff, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_S4, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_bg_argb */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_bg_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var47.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var47.x2[1]; + var54.x2[1] = _dest.i; + } + /* 16: loadw */ + var45 = ptr6[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_bg_argb (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 11: loadpw */ + var43.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr5[i]; + /* 1: loadw */ + var38 = ptr9[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr4[i]; + /* 4: loadw */ + var40 = ptr8[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr7[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var47.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var47.x2[1]; + var54.x2[1] = _dest.i; + } + /* 16: loadw */ + var45 = ptr6[i]; + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var45.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var45.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_bg_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_bg_argb"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_bg_argb); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x000000ff, "c1"); + orc_program_add_constant (p, 4, 0x0000ff00, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T4, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif + + +/* gst_bayer_merge_gr_argb */ +#ifdef DISABLE_ORC +void +gst_bayer_merge_gr_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + int i; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_union16 *) s3; + ptr7 = (orc_union16 *) s4; + ptr8 = (orc_union16 *) s5; + ptr9 = (orc_union16 *) s6; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: loadw */ + var45 = ptr7[i]; + /* 16: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var47.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var47.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +#else +static void +_backup_gst_bayer_merge_gr_argb (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + const orc_union16 *ORC_RESTRICT ptr7; + const orc_union16 *ORC_RESTRICT ptr8; + const orc_union16 *ORC_RESTRICT ptr9; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union64 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union32 var54; + orc_union32 var55; + + ptr0 = (orc_union64 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_union16 *) ex->arrays[6]; + ptr7 = (orc_union16 *) ex->arrays[7]; + ptr8 = (orc_union16 *) ex->arrays[8]; + ptr9 = (orc_union16 *) ex->arrays[9]; + + /* 9: loadpw */ + var42.i = (int) 0x0000ff00; /* 65280 or 3.22526e-319f */ + /* 11: loadpw */ + var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 14: loadpb */ + var44.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var44.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: loadw */ + var38 = ptr8[i]; + /* 2: avgub */ + var47.x2[0] = ((orc_uint8) var37.x2[0] + (orc_uint8) var38.x2[0] + 1) >> 1; + var47.x2[1] = ((orc_uint8) var37.x2[1] + (orc_uint8) var38.x2[1] + 1) >> 1; + /* 3: loadw */ + var39 = ptr5[i]; + /* 4: loadw */ + var40 = ptr9[i]; + /* 5: avgub */ + var48.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1; + var48.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1; + /* 6: loadw */ + var41 = ptr6[i]; + /* 7: copyw */ + var49.i = var41.i; + /* 8: avgub */ + var50.x2[0] = ((orc_uint8) var48.x2[0] + (orc_uint8) var49.x2[0] + 1) >> 1; + var50.x2[1] = ((orc_uint8) var48.x2[1] + (orc_uint8) var49.x2[1] + 1) >> 1; + /* 10: andw */ + var51.i = var50.i & var42.i; + /* 12: andw */ + var52.i = var49.i & var43.i; + /* 13: orw */ + var53.i = var52.i | var51.i; + /* 15: loadw */ + var45 = ptr7[i]; + /* 16: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var45.x2[0]; + var54.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var45.x2[1]; + var54.x2[1] = _dest.i; + } + /* 17: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[0]; + _dest.x2[1] = var47.x2[0]; + var55.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var53.x2[1]; + _dest.x2[1] = var47.x2[1]; + var55.x2[1] = _dest.i; + } + /* 18: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[0]; + _dest.x2[1] = var55.x2[0]; + var46.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var54.x2[1]; + _dest.x2[1] = var55.x2[1]; + var46.x2[1] = _dest.i; + } + /* 19: storeq */ + ptr0[i] = var46; + } + +} + +void +gst_bayer_merge_gr_argb (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, + const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static volatile 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, "gst_bayer_merge_gr_argb"); + orc_program_set_backup_function (p, _backup_gst_bayer_merge_gr_argb); + orc_program_add_destination (p, 8, "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_source (p, 2, "s4"); + orc_program_add_source (p, 2, "s5"); + orc_program_add_source (p, 2, "s6"); + orc_program_add_constant (p, 4, 0x0000ff00, "c1"); + orc_program_add_constant (p, 4, 0x000000ff, "c2"); + 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_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_S5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_S2, ORC_VAR_S6, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "andw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "orw", 0, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C2, ORC_VAR_S4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_T4, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 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; + 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; + ex->arrays[ORC_VAR_S6] = (void *) s6; + + func = p->code_exec; + func (ex); +} +#endif diff --git a/gst/bayer/gstbayerorc-dist.h b/gst/bayer/gstbayerorc-dist.h new file mode 100644 index 0000000..5e8b865 --- /dev/null +++ b/gst/bayer/gstbayerorc-dist.h @@ -0,0 +1,86 @@ + +/* autogenerated from gstbayerorc.orc */ + +#ifndef _GSTBAYERORC_H_ +#define _GSTBAYERORC_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 gst_bayer_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); +void gst_bayer_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); +void gst_bayer_merge_bg_bgra (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_bgra (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_abgr (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_abgr (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_rgba (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_rgba (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_bg_argb (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); +void gst_bayer_merge_gr_argb (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/gst/bayer/gstbayerorc.orc b/gst/bayer/gstbayerorc.orc new file mode 100644 index 0000000..e57436b --- /dev/null +++ b/gst/bayer/gstbayerorc.orc @@ -0,0 +1,252 @@ + + +.function gst_bayer_horiz_upsample_unaligned +.dest 2 d0 guint8 +.dest 2 d1 guint8 +.source 2 s guint8 +.temp 2 t +.temp 1 b +.temp 1 c +.temp 1 d +.temp 1 e + +splitwb c, b, s +loadoffw t, s, 1 +splitwb e, d, t +avgub e, c, e +mergebw d0, c, e +avgub b, b, d +mergebw d1, b, d + + +.function gst_bayer_horiz_upsample +.dest 2 d0 guint8 +.dest 2 d1 guint8 +.source 2 s guint8 +.temp 2 t +.temp 1 a +.temp 1 b +.temp 1 c +.temp 1 d +.temp 1 e +.temp 1 f + +loadoffw t, s, -1 +splitwb b, a, t +splitwb d, c, s +loadoffw t, s, 1 +splitwb f, e, t +avgub e, c, e +mergebw d0, c, e +avgub b, b, d +mergebw d1, b, d + + +.function gst_bayer_merge_bg_bgra +.dest 8 d guint8 +.source 2 g0 guint8 +.source 2 r0 guint8 +.source 2 b1 guint8 +.source 2 g1 guint8 +.source 2 g2 guint8 +.source 2 r2 guint8 +.temp 4 ra +.temp 4 bg +.temp 2 r +.temp 2 g +.temp 2 t + +x2 avgub r, r0, r2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 255 +andw t, t, 65280 +orw g, t, g +x2 mergebw bg, b1, g +x2 mergebw ra, r, 255 +x2 mergewl d, bg, ra + + +.function gst_bayer_merge_gr_bgra +.dest 8 d guint8 +.source 2 b0 guint8 +.source 2 g0 guint8 +.source 2 g1 guint8 +.source 2 r1 guint8 +.source 2 b2 guint8 +.source 2 g2 guint8 +.temp 4 ra +.temp 4 bg +.temp 2 b +.temp 2 g +.temp 2 t + +x2 avgub b, b0, b2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 65280 +andw t, t, 255 +orw g, t, g +x2 mergebw bg, b, g +x2 mergebw ra, r1, 255 +x2 mergewl d, bg, ra + + +.function gst_bayer_merge_bg_abgr +.dest 8 d guint8 +.source 2 g0 guint8 +.source 2 r0 guint8 +.source 2 b1 guint8 +.source 2 g1 guint8 +.source 2 g2 guint8 +.source 2 r2 guint8 +.temp 4 ab +.temp 4 gr +.temp 2 r +.temp 2 g +.temp 2 t + +x2 avgub r, r0, r2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 255 +andw t, t, 65280 +orw g, t, g +x2 mergebw ab, 255, b1 +x2 mergebw gr, g, r +x2 mergewl d, ab, gr + + +.function gst_bayer_merge_gr_abgr +.dest 8 d guint8 +.source 2 b0 guint8 +.source 2 g0 guint8 +.source 2 g1 guint8 +.source 2 r1 guint8 +.source 2 b2 guint8 +.source 2 g2 guint8 +.temp 4 ab +.temp 4 gr +.temp 2 b +.temp 2 g +.temp 2 t + +x2 avgub b, b0, b2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 65280 +andw t, t, 255 +orw g, t, g +x2 mergebw ab, 255, b +x2 mergebw gr, g, r1 +x2 mergewl d, ab, gr + + +.function gst_bayer_merge_bg_rgba +.dest 8 d guint8 +.source 2 g0 guint8 +.source 2 r0 guint8 +.source 2 b1 guint8 +.source 2 g1 guint8 +.source 2 g2 guint8 +.source 2 r2 guint8 +.temp 4 rg +.temp 4 ba +.temp 2 r +.temp 2 g +.temp 2 t + +x2 avgub r, r0, r2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 255 +andw t, t, 65280 +orw g, t, g +x2 mergebw rg, r, g +x2 mergebw ba, b1, 255 +x2 mergewl d, rg, ba + + +.function gst_bayer_merge_gr_rgba +.dest 8 d guint8 +.source 2 b0 guint8 +.source 2 g0 guint8 +.source 2 g1 guint8 +.source 2 r1 guint8 +.source 2 b2 guint8 +.source 2 g2 guint8 +.temp 4 rg +.temp 4 ba +.temp 2 b +.temp 2 g +.temp 2 t + +x2 avgub b, b0, b2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 65280 +andw t, t, 255 +orw g, t, g +x2 mergebw rg, r1, g +x2 mergebw ba, b, 255 +x2 mergewl d, rg, ba + + +.function gst_bayer_merge_bg_argb +.dest 8 d guint8 +.source 2 g0 guint8 +.source 2 r0 guint8 +.source 2 b1 guint8 +.source 2 g1 guint8 +.source 2 g2 guint8 +.source 2 r2 guint8 +.temp 4 ar +.temp 4 gb +.temp 2 r +.temp 2 g +.temp 2 t + +x2 avgub r, r0, r2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 255 +andw t, t, 65280 +orw g, t, g +x2 mergebw ar, 255, r +x2 mergebw gb, g, b1 +x2 mergewl d, ar, gb + + +.function gst_bayer_merge_gr_argb +.dest 8 d guint8 +.source 2 b0 guint8 +.source 2 g0 guint8 +.source 2 g1 guint8 +.source 2 r1 guint8 +.source 2 b2 guint8 +.source 2 g2 guint8 +.temp 4 ar +.temp 4 gb +.temp 2 b +.temp 2 g +.temp 2 t + +x2 avgub b, b0, b2 +x2 avgub g, g0, g2 +copyw t, g1 +x2 avgub g, g, t +andw g, g, 65280 +andw t, t, 255 +orw g, t, g +x2 mergebw ar, 255, r1 +x2 mergebw gb, g, b +x2 mergewl d, ar, gb + + diff --git a/gst/bayer/gstrgb2bayer.c b/gst/bayer/gstrgb2bayer.c index 819d0e6..fb7e9cb 100644 --- a/gst/bayer/gstrgb2bayer.c +++ b/gst/bayer/gstrgb2bayer.c @@ -92,10 +92,10 @@ gst_rgb2bayer_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_rgb2bayer_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rgb2bayer_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rgb2bayer_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rgb2bayer_sink_template); gst_element_class_set_details_simple (element_class, "RGB to Bayer converter", diff --git a/gst/camerabin/Makefile.in b/gst/camerabin/Makefile.in index 706dad1..9461fed 100644 --- a/gst/camerabin/Makefile.in +++ b/gst/camerabin/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -51,6 +51,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -109,6 +110,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -127,8 +134,8 @@ am__objects_1 = libgstcamerabin_la-gstcamerabin-marshal.lo nodist_libgstcamerabin_la_OBJECTS = $(am__objects_1) libgstcamerabin_la_OBJECTS = $(am_libgstcamerabin_la_OBJECTS) \ $(nodist_libgstcamerabin_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcamerabin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -144,21 +151,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcamerabin_la_SOURCES) \ $(nodist_libgstcamerabin_la_SOURCES) @@ -171,7 +178,6 @@ 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@ @@ -189,7 +195,6 @@ 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@ @@ -224,6 +229,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -263,6 +269,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -280,6 +287,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -288,13 +296,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -319,13 +330,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -373,6 +385,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -404,8 +417,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -429,6 +446,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -453,10 +472,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -468,6 +491,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -492,6 +519,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -527,7 +555,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -615,6 +642,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -655,7 +683,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcamerabin.la: $(libgstcamerabin_la_OBJECTS) $(libgstcamerabin_la_DEPENDENCIES) +libgstcamerabin.la: $(libgstcamerabin_la_OBJECTS) $(libgstcamerabin_la_DEPENDENCIES) $(EXTRA_libgstcamerabin_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcamerabin_la_LINK) -rpath $(plugindir) $(libgstcamerabin_la_OBJECTS) $(libgstcamerabin_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -677,98 +705,86 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcamerabin_la-gstcamerabin.lo: gstcamerabin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-gstcamerabin.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-gstcamerabin.Tpo -c -o libgstcamerabin_la-gstcamerabin.lo `test -f 'gstcamerabin.c' || echo '$(srcdir)/'`gstcamerabin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-gstcamerabin.Tpo $(DEPDIR)/libgstcamerabin_la-gstcamerabin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabin.c' object='libgstcamerabin_la-gstcamerabin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabin.c' object='libgstcamerabin_la-gstcamerabin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin.lo `test -f 'gstcamerabin.c' || echo '$(srcdir)/'`gstcamerabin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin.lo `test -f 'gstcamerabin.c' || echo '$(srcdir)/'`gstcamerabin.c libgstcamerabin_la-gstcamerabincolorbalance.lo: gstcamerabincolorbalance.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-gstcamerabincolorbalance.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-gstcamerabincolorbalance.Tpo -c -o libgstcamerabin_la-gstcamerabincolorbalance.lo `test -f 'gstcamerabincolorbalance.c' || echo '$(srcdir)/'`gstcamerabincolorbalance.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-gstcamerabincolorbalance.Tpo $(DEPDIR)/libgstcamerabin_la-gstcamerabincolorbalance.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabincolorbalance.c' object='libgstcamerabin_la-gstcamerabincolorbalance.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabincolorbalance.c' object='libgstcamerabin_la-gstcamerabincolorbalance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabincolorbalance.lo `test -f 'gstcamerabincolorbalance.c' || echo '$(srcdir)/'`gstcamerabincolorbalance.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabincolorbalance.lo `test -f 'gstcamerabincolorbalance.c' || echo '$(srcdir)/'`gstcamerabincolorbalance.c libgstcamerabin_la-gstinputselector.lo: gstinputselector.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-gstinputselector.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-gstinputselector.Tpo -c -o libgstcamerabin_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-gstinputselector.Tpo $(DEPDIR)/libgstcamerabin_la-gstinputselector.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstinputselector.c' object='libgstcamerabin_la-gstinputselector.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstinputselector.c' object='libgstcamerabin_la-gstinputselector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c libgstcamerabin_la-camerabinimage.lo: camerabinimage.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-camerabinimage.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-camerabinimage.Tpo -c -o libgstcamerabin_la-camerabinimage.lo `test -f 'camerabinimage.c' || echo '$(srcdir)/'`camerabinimage.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-camerabinimage.Tpo $(DEPDIR)/libgstcamerabin_la-camerabinimage.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camerabinimage.c' object='libgstcamerabin_la-camerabinimage.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camerabinimage.c' object='libgstcamerabin_la-camerabinimage.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinimage.lo `test -f 'camerabinimage.c' || echo '$(srcdir)/'`camerabinimage.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinimage.lo `test -f 'camerabinimage.c' || echo '$(srcdir)/'`camerabinimage.c libgstcamerabin_la-camerabinvideo.lo: camerabinvideo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-camerabinvideo.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-camerabinvideo.Tpo -c -o libgstcamerabin_la-camerabinvideo.lo `test -f 'camerabinvideo.c' || echo '$(srcdir)/'`camerabinvideo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-camerabinvideo.Tpo $(DEPDIR)/libgstcamerabin_la-camerabinvideo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camerabinvideo.c' object='libgstcamerabin_la-camerabinvideo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camerabinvideo.c' object='libgstcamerabin_la-camerabinvideo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinvideo.lo `test -f 'camerabinvideo.c' || echo '$(srcdir)/'`camerabinvideo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinvideo.lo `test -f 'camerabinvideo.c' || echo '$(srcdir)/'`camerabinvideo.c libgstcamerabin_la-camerabingeneral.lo: camerabingeneral.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-camerabingeneral.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-camerabingeneral.Tpo -c -o libgstcamerabin_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-camerabingeneral.Tpo $(DEPDIR)/libgstcamerabin_la-camerabingeneral.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camerabingeneral.c' object='libgstcamerabin_la-camerabingeneral.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camerabingeneral.c' object='libgstcamerabin_la-camerabingeneral.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c libgstcamerabin_la-camerabinpreview.lo: camerabinpreview.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-camerabinpreview.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-camerabinpreview.Tpo -c -o libgstcamerabin_la-camerabinpreview.lo `test -f 'camerabinpreview.c' || echo '$(srcdir)/'`camerabinpreview.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-camerabinpreview.Tpo $(DEPDIR)/libgstcamerabin_la-camerabinpreview.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camerabinpreview.c' object='libgstcamerabin_la-camerabinpreview.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camerabinpreview.c' object='libgstcamerabin_la-camerabinpreview.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinpreview.lo `test -f 'camerabinpreview.c' || echo '$(srcdir)/'`camerabinpreview.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-camerabinpreview.lo `test -f 'camerabinpreview.c' || echo '$(srcdir)/'`camerabinpreview.c libgstcamerabin_la-gstcamerabin-enum.lo: gstcamerabin-enum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-gstcamerabin-enum.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-gstcamerabin-enum.Tpo -c -o libgstcamerabin_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-gstcamerabin-enum.Tpo $(DEPDIR)/libgstcamerabin_la-gstcamerabin-enum.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabin-enum.c' object='libgstcamerabin_la-gstcamerabin-enum.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabin-enum.c' object='libgstcamerabin_la-gstcamerabin-enum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin-enum.lo `test -f 'gstcamerabin-enum.c' || echo '$(srcdir)/'`gstcamerabin-enum.c libgstcamerabin_la-gstcamerabin-marshal.lo: gstcamerabin-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin_la-gstcamerabin-marshal.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin_la-gstcamerabin-marshal.Tpo -c -o libgstcamerabin_la-gstcamerabin-marshal.lo `test -f 'gstcamerabin-marshal.c' || echo '$(srcdir)/'`gstcamerabin-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin_la-gstcamerabin-marshal.Tpo $(DEPDIR)/libgstcamerabin_la-gstcamerabin-marshal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabin-marshal.c' object='libgstcamerabin_la-gstcamerabin-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabin-marshal.c' object='libgstcamerabin_la-gstcamerabin-marshal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin-marshal.lo `test -f 'gstcamerabin-marshal.c' || echo '$(srcdir)/'`gstcamerabin-marshal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin_la-gstcamerabin-marshal.lo `test -f 'gstcamerabin-marshal.c' || echo '$(srcdir)/'`gstcamerabin-marshal.c mostlyclean-libtool: -rm -f *.lo @@ -877,10 +893,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/camerabin/camerabinimage.c b/gst/camerabin/camerabinimage.c index 6325205..c69a5c3 100644 --- a/gst/camerabin/camerabinimage.c +++ b/gst/camerabin/camerabinimage.c @@ -61,7 +61,7 @@ #define DEFAULT_SINK "filesink" #define DEFAULT_ENC "jpegenc" -#define DEFAULT_META_MUX "jifmux" +#define DEFAULT_FORMATTER "jifmux" #define DEFAULT_FLAGS GST_CAMERABIN_FLAG_IMAGE_COLOR_CONVERSION enum @@ -102,8 +102,7 @@ gst_camerabin_image_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); gst_element_class_set_details_simple (eklass, "Image capture bin for camerabin", "Bin/Image", "Process and store image data", @@ -150,7 +149,8 @@ gst_camerabin_image_init (GstCameraBinImage * img, img->csp = NULL; img->enc = NULL; img->app_enc = NULL; - img->meta_mux = NULL; + img->formatter = NULL; + img->app_formatter = NULL; img->sink = NULL; /* Create src and sink ghost pads */ @@ -180,12 +180,21 @@ gst_camerabin_image_dispose (GstCameraBinImage * img) img->sink = NULL; } - if (img->meta_mux) { + if (img->formatter) { GST_LOG_OBJECT (img, "disposing %s with refcount %d", - GST_ELEMENT_NAME (img->meta_mux), - GST_OBJECT_REFCOUNT_VALUE (img->meta_mux)); - gst_object_unref (img->meta_mux); - img->meta_mux = NULL; + GST_ELEMENT_NAME (img->formatter), + GST_OBJECT_REFCOUNT_VALUE (img->formatter)); + gst_object_unref (img->formatter); + img->formatter = NULL; + } + + if (img->app_formatter) { + gst_object_sink (img->app_formatter); + GST_LOG_OBJECT (img, "disposing %s with refcount %d", + GST_ELEMENT_NAME (img->app_formatter), + GST_OBJECT_REFCOUNT_VALUE (img->app_formatter)); + gst_object_unref (img->app_formatter); + img->app_formatter = NULL; } if (img->enc) { @@ -399,12 +408,12 @@ gst_camerabin_image_prepare_elements (GstCameraBinImage * imagebin) } /* Create metadata muxer element */ - if (!prepare_element (&imagebin->elements, DEFAULT_META_MUX, NULL, - &imagebin->meta_mux)) { + if (!prepare_element (&imagebin->elements, DEFAULT_FORMATTER, + imagebin->app_formatter, &imagebin->formatter)) { goto done; } else if (!imagebin->metadata_probe_id) { /* Add probe for default XMP metadata writing */ - sinkpad = gst_element_get_static_pad (imagebin->meta_mux, "sink"); + sinkpad = gst_element_get_static_pad (imagebin->formatter, "sink"); imagebin->metadata_probe_id = gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (metadata_write_probe), imagebin); @@ -468,7 +477,9 @@ metadata_write_probe (GstPad * pad, GstBuffer * buffer, gpointer u_data) g_return_val_if_fail (img != NULL, TRUE); - setter = GST_TAG_SETTER (img->meta_mux); + if (GST_IS_TAG_SETTER (img->formatter)) { + setter = GST_TAG_SETTER (img->formatter); + } if (!setter) { GST_WARNING_OBJECT (img, "setting tags failed"); @@ -717,6 +728,19 @@ gst_camerabin_image_set_postproc (GstCameraBinImage * img, } void +gst_camerabin_image_set_formatter (GstCameraBinImage * img, + GstElement * formatter) +{ + GstElement **app_formatter; + GST_DEBUG ("setting image formatter %" GST_PTR_FORMAT, formatter); + + app_formatter = &img->app_formatter; + GST_OBJECT_LOCK (img); + gst_object_replace ((GstObject **) app_formatter, GST_OBJECT (formatter)); + GST_OBJECT_UNLOCK (img); +} + +void gst_camerabin_image_set_flags (GstCameraBinImage * img, GstCameraBinFlags flags) { GST_DEBUG_OBJECT (img, "setting image flags: %d", flags); @@ -738,6 +762,13 @@ gst_camerabin_image_get_encoder (GstCameraBinImage * img) } GstElement * +gst_camerabin_image_get_formatter (GstCameraBinImage * img) +{ + /* Prefer formatter that is currently in use */ + return img->formatter ? img->formatter : img->app_formatter; +} + +GstElement * gst_camerabin_image_get_postproc (GstCameraBinImage * img) { return img->post; diff --git a/gst/camerabin/camerabinimage.h b/gst/camerabin/camerabinimage.h index b116d09..754c4bb 100644 --- a/gst/camerabin/camerabinimage.h +++ b/gst/camerabin/camerabinimage.h @@ -55,7 +55,8 @@ struct _GstCameraBinImage GstElement *csp; GstElement *enc; GstElement *app_enc; - GstElement *meta_mux; + GstElement *formatter; + GstElement *app_formatter; GstElement *sink; GstCameraBinFlags flags; @@ -77,6 +78,9 @@ gst_camerabin_image_set_postproc (GstCameraBinImage * img, GstElement * postproc); void +gst_camerabin_image_set_formatter (GstCameraBinImage * img, GstElement * formatter); + +void gst_camerabin_image_set_flags (GstCameraBinImage * img, GstCameraBinFlags flags); @@ -84,6 +88,8 @@ GstElement *gst_camerabin_image_get_encoder (GstCameraBinImage * img); GstElement *gst_camerabin_image_get_postproc (GstCameraBinImage * img); +GstElement *gst_camerabin_image_get_formatter (GstCameraBinImage * img); + gboolean gst_camerabin_image_prepare_elements (GstCameraBinImage * imagebin); G_END_DECLS diff --git a/gst/camerabin/camerabinvideo.c b/gst/camerabin/camerabinvideo.c index 93e570d..a98807b 100644 --- a/gst/camerabin/camerabinvideo.c +++ b/gst/camerabin/camerabinvideo.c @@ -118,10 +118,8 @@ gst_camerabin_video_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); + gst_element_class_add_static_pad_template (eklass, &src_template); gst_element_class_set_details_simple (eklass, "Video capture bin for camerabin", "Bin/Video", "Process and store video data", @@ -637,6 +635,13 @@ gst_camerabin_video_create_elements (GstCameraBinVideo * vid) G_CALLBACK (gst_camerabin_drop_eos_probe), vid); gst_object_unref (vid_srcpad); + /* audio source is not always present and might be set to NULL during operation */ + if (vid->aud_src + && g_object_class_find_property (G_OBJECT_GET_CLASS (vid->aud_src), + "provide-clock")) { + g_object_set (vid->aud_src, "provide-clock", FALSE, NULL); + } + GST_DEBUG ("created video elements"); return TRUE; diff --git a/gst/camerabin/gstcamerabin-enum.h b/gst/camerabin/gstcamerabin-enum.h index 69d7ba2..b848047 100644 --- a/gst/camerabin/gstcamerabin-enum.h +++ b/gst/camerabin/gstcamerabin-enum.h @@ -35,6 +35,7 @@ enum ARG_ZOOM, ARG_IMAGE_POST, ARG_IMAGE_ENC, + ARG_IMAGE_FORMATTER, ARG_VIDEO_POST, ARG_VIDEO_ENC, ARG_AUDIO_ENC, diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c index 99b1b54..a17e02c 100644 --- a/gst/camerabin/gstcamerabin.c +++ b/gst/camerabin/gstcamerabin.c @@ -84,6 +84,8 @@ * 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. + * GstCameraBin must be in the PLAYING state before #GstCameraBin::capture-start + * is called. * * * @@ -208,9 +210,10 @@ static guint camerabin_signals[LAST_SIGNAL]; #define DEFAULT_FLAGS GST_CAMERABIN_FLAG_SOURCE_RESIZE | \ GST_CAMERABIN_FLAG_VIEWFINDER_SCALE | \ - GST_CAMERABIN_FLAG_AUDIO_CONVERSION | \ + GST_CAMERABIN_FLAG_VIEWFINDER_COLOR_CONVERSION | \ GST_CAMERABIN_FLAG_IMAGE_COLOR_CONVERSION | \ - GST_CAMERABIN_FLAG_VIDEO_COLOR_CONVERSION + GST_CAMERABIN_FLAG_VIDEO_COLOR_CONVERSION | \ + GST_CAMERABIN_FLAG_AUDIO_CONVERSION /* Using "bilinear" as default zoom method */ #define CAMERABIN_DEFAULT_ZOOM_METHOD 1 @@ -234,25 +237,37 @@ static guint camerabin_signals[LAST_SIGNAL]; GST_DEBUG_OBJECT ((c), "Processing counter incremented to: %d", \ (c)->processing_counter); \ if ((c)->processing_counter == 1) \ - g_object_notify (G_OBJECT (c), "idle"); \ + g_object_notify (G_OBJECT (c), "idle"); #define CAMERABIN_PROCESSING_DEC_UNLOCKED(c) \ (c)->processing_counter -= 1; \ GST_DEBUG_OBJECT ((c), "Processing counter decremented to: %d", \ (c)->processing_counter); \ g_assert ((c)->processing_counter >= 0); \ - if ((c)->processing_counter == 0) \ - g_object_notify (G_OBJECT (c), "idle"); \ + if ((c)->processing_counter == 0) { \ + g_cond_signal ((c)->idle_cond); \ + g_object_notify (G_OBJECT (c), "idle"); \ + } #define CAMERABIN_PROCESSING_INC(c) \ g_mutex_lock ((c)->capture_mutex); \ CAMERABIN_PROCESSING_INC_UNLOCKED ((c)); \ - g_mutex_unlock ((c)->capture_mutex); \ + g_mutex_unlock ((c)->capture_mutex); #define CAMERABIN_PROCESSING_DEC(c) \ g_mutex_lock ((c)->capture_mutex); \ CAMERABIN_PROCESSING_DEC_UNLOCKED ((c)); \ - g_mutex_unlock ((c)->capture_mutex); \ + g_mutex_unlock ((c)->capture_mutex); + +#define CAMERABIN_PROCESSING_WAIT_IDLE(c) \ + g_mutex_lock ((c)->capture_mutex); \ + if ((c)->processing_counter > 0) { \ + GST_DEBUG_OBJECT ((c), "Waiting for processing operations to finish %d", \ + (c)->processing_counter); \ + g_cond_wait ((c)->idle_cond, (c)->capture_mutex); \ + GST_DEBUG_OBJECT ((c), "Processing operations finished"); \ + } \ + g_mutex_unlock ((c)->capture_mutex); /* * static helper functions declaration @@ -931,6 +946,10 @@ camerabin_dispose_elements (GstCameraBin * camera) g_cond_free (camera->cond); camera->cond = NULL; } + if (camera->idle_cond) { + g_cond_free (camera->idle_cond); + camera->idle_cond = NULL; + } if (camera->filename) { g_string_free (camera->filename, TRUE); camera->filename = NULL; @@ -1605,6 +1624,9 @@ reset_video_capture_caps (GstCameraBin * camera) /* Interrupt ongoing capture */ gst_camerabin_do_stop (camera); + /* prevent image captures from being lost */ + CAMERABIN_PROCESSING_WAIT_IDLE (camera); + gst_element_get_state (GST_ELEMENT (camera), &state, &pending, 0); if (state == GST_STATE_PAUSED || state == GST_STATE_PLAYING) { GST_INFO_OBJECT (camera, @@ -1641,6 +1663,7 @@ static void gst_camerabin_start_video_recording (GstCameraBin * camera) { GstStateChangeReturn state_ret; + GstCameraBinVideo *vidbin = (GstCameraBinVideo *) camera->vidbin; /* FIXME: how to ensure resolution and fps is supported by CPU? * use a queue overrun signal? */ @@ -1654,9 +1677,14 @@ gst_camerabin_start_video_recording (GstCameraBin * camera) gst_camerabin_rewrite_tags (camera); /* Pause the pipeline in order to distribute new clock in paused_to_playing */ + /* Audio source needs to go to null to reset the ringbuffer */ + if (vidbin->aud_src) + gst_element_set_state (vidbin->aud_src, GST_STATE_NULL); state_ret = gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PAUSED); if (state_ret != GST_STATE_CHANGE_FAILURE) { + GstClock *clock = gst_element_get_clock (GST_ELEMENT (camera)); + g_mutex_lock (camera->capture_mutex); camera->capturing = TRUE; g_mutex_unlock (camera->capture_mutex); @@ -1672,6 +1700,11 @@ gst_camerabin_start_video_recording (GstCameraBin * camera) g_object_set (G_OBJECT (camera->src_vid_src), "capture-mode", 2, NULL); } + /* Clock might be distributed as NULL to audiosrc, messing timestamping */ + if (vidbin->aud_src) + gst_element_set_clock (vidbin->aud_src, clock); + gst_object_unref (clock); + /* videobin will not go to playing if file is not writable */ if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -1811,7 +1844,6 @@ gst_camerabin_have_img_buffer (GstPad * pad, GstMiniObject * obj, if (GST_IS_BUFFER (obj)) { GstBuffer *buffer = GST_BUFFER_CAST (obj); GstStructure *fn_ev_struct = NULL; - gboolean ret = TRUE; GstPad *os_sink = NULL; GST_LOG ("got buffer %p with size %d", buffer, GST_BUFFER_SIZE (buffer)); @@ -1823,7 +1855,6 @@ gst_camerabin_have_img_buffer (GstPad * pad, GstMiniObject * obj, /* Image filename should be set by now */ if (g_str_equal (camera->filename->str, "")) { GST_DEBUG_OBJECT (camera, "filename not set, dropping buffer"); - ret = FALSE; CAMERABIN_PROCESSING_DEC_UNLOCKED (camera); goto done; } @@ -2851,6 +2882,19 @@ gst_camerabin_class_init (GstCameraBinClass * klass) GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** + * GstCameraBin:image-formatter: + * + * Set up an image formatter (for example, jifmux) element. + * This property can only be set while #GstCameraBin is in NULL state. + * The ownership of the element will be taken by #GstCameraBin. + */ + + g_object_class_install_property (gobject_class, ARG_IMAGE_FORMATTER, + g_param_spec_object ("image-formatter", "Image formatter", + "Image formatter GStreamer element (default is jifmux)", + GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** * GstCameraBin:video-post-processing: * * Set up an element to do video post processing. @@ -3324,6 +3368,7 @@ gst_camerabin_init (GstCameraBin * camera, GstCameraBinClass * gclass) /* concurrency control */ camera->capture_mutex = g_mutex_new (); camera->cond = g_cond_new (); + camera->idle_cond = g_cond_new (); camera->processing_counter = 0; /* pad names for output and input selectors */ @@ -3482,6 +3527,14 @@ gst_camerabin_set_property (GObject * object, guint prop_id, gst_camerabin_image_set_encoder (GST_CAMERABIN_IMAGE (camera->imgbin), g_value_get_object (value)); break; + case ARG_IMAGE_FORMATTER: + if (GST_STATE (camera->imgbin) != GST_STATE_NULL) { + GST_WARNING_OBJECT (camera, + "can't use set element until next image bin NULL to READY state change"); + } + gst_camerabin_image_set_formatter (GST_CAMERABIN_IMAGE (camera->imgbin), + g_value_get_object (value)); + break; case ARG_VF_SINK: if (GST_STATE (camera) != GST_STATE_NULL) { GST_ELEMENT_ERROR (camera, CORE, FAILED, @@ -3724,6 +3777,11 @@ gst_camerabin_get_property (GObject * object, guint prop_id, gst_camerabin_image_get_encoder (GST_CAMERABIN_IMAGE (camera->imgbin))); break; + case ARG_IMAGE_FORMATTER: + g_value_set_object (value, + gst_camerabin_image_get_formatter (GST_CAMERABIN_IMAGE + (camera->imgbin))); + break; case ARG_VIDEO_POST: g_value_set_object (value, gst_camerabin_video_get_post (GST_CAMERABIN_VIDEO (camera->vidbin))); @@ -3886,8 +3944,10 @@ gst_camerabin_change_state (GstElement * element, GstStateChange transition) } /* reset processing counter */ - GST_DEBUG_OBJECT (camera, "Reset processing counter to 0"); + GST_DEBUG_OBJECT (camera, "Reset processing counter from %d to 0", + camera->processing_counter); camera->processing_counter = 0; + g_cond_signal (camera->idle_cond); g_object_notify (G_OBJECT (camera), "idle"); g_mutex_unlock (camera->capture_mutex); diff --git a/gst/camerabin/gstcamerabin.h b/gst/camerabin/gstcamerabin.h index 066545c..1c0a075 100644 --- a/gst/camerabin/gstcamerabin.h +++ b/gst/camerabin/gstcamerabin.h @@ -129,6 +129,7 @@ struct _GstCameraBin /* concurrency control */ GMutex *capture_mutex; GCond *cond; + GCond *idle_cond; gboolean capturing; gboolean eos_handled; /* everytime a new capture is started this is incremented, when it is diff --git a/gst/camerabin/gstinputselector.c b/gst/camerabin/gstinputselector.c index ef4e236..62ee380 100644 --- a/gst/camerabin/gstinputselector.c +++ b/gst/camerabin/gstinputselector.c @@ -745,10 +745,10 @@ gst_input_selector_base_init (GstInputSelectorClass * klass) "Julien Moutte , " "Jan Schmidt , " "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_input_selector_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_input_selector_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_input_selector_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &gst_input_selector_src_factory); } static void diff --git a/gst/camerabin2/Makefile.am b/gst/camerabin2/Makefile.am index 400641c..3433263 100644 --- a/gst/camerabin2/Makefile.am +++ b/gst/camerabin2/Makefile.am @@ -1,7 +1,6 @@ plugin_LTLIBRARIES = libgstcamerabin2.la libgstcamerabin2_la_SOURCES = gstviewfinderbin.c \ - gstimagecapturebin.c \ camerabingeneral.c \ gstwrappercamerabinsrc.c \ gstcamerabin2.c \ @@ -23,7 +22,6 @@ libgstcamerabin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstcamerabin2_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gstviewfinderbin.h \ - gstimagecapturebin.h \ camerabingeneral.h \ gstwrappercamerabinsrc.h \ gstcamerabin2.h diff --git a/gst/camerabin2/Makefile.in b/gst/camerabin2/Makefile.in index a5fc15c..da31479 100644 --- a/gst/camerabin2/Makefile.in +++ b/gst/camerabin2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,14 +116,13 @@ libgstcamerabin2_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgs $(am__DEPENDENCIES_1) am_libgstcamerabin2_la_OBJECTS = \ libgstcamerabin2_la-gstviewfinderbin.lo \ - libgstcamerabin2_la-gstimagecapturebin.lo \ libgstcamerabin2_la-camerabingeneral.lo \ libgstcamerabin2_la-gstwrappercamerabinsrc.lo \ libgstcamerabin2_la-gstcamerabin2.lo \ libgstcamerabin2_la-gstplugin.lo libgstcamerabin2_la_OBJECTS = $(am_libgstcamerabin2_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcamerabin2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -132,21 +138,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcamerabin2_la_SOURCES) DIST_SOURCES = $(libgstcamerabin2_la_SOURCES) @@ -158,7 +164,6 @@ 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@ @@ -176,7 +181,6 @@ 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@ @@ -211,6 +215,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +255,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +273,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +282,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +316,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +371,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +403,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +432,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +458,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +477,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +505,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +541,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -537,7 +563,6 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstcamerabin2.la libgstcamerabin2_la_SOURCES = gstviewfinderbin.c \ - gstimagecapturebin.c \ camerabingeneral.c \ gstwrappercamerabinsrc.c \ gstcamerabin2.c \ @@ -558,7 +583,6 @@ libgstcamerabin2_la_LIBADD = \ libgstcamerabin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstcamerabin2_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gstviewfinderbin.h \ - gstimagecapturebin.h \ camerabingeneral.h \ gstwrappercamerabinsrc.h \ gstcamerabin2.h @@ -628,7 +652,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcamerabin2.la: $(libgstcamerabin2_la_OBJECTS) $(libgstcamerabin2_la_DEPENDENCIES) +libgstcamerabin2.la: $(libgstcamerabin2_la_OBJECTS) $(libgstcamerabin2_la_DEPENDENCIES) $(EXTRA_libgstcamerabin2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcamerabin2_la_LINK) -rpath $(plugindir) $(libgstcamerabin2_la_OBJECTS) $(libgstcamerabin2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -639,7 +663,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-camerabingeneral.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-gstcamerabin2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-gstimagecapturebin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-gstplugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-gstviewfinderbin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcamerabin2_la-gstwrappercamerabinsrc.Plo@am__quote@ @@ -647,74 +670,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcamerabin2_la-gstviewfinderbin.lo: gstviewfinderbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-gstviewfinderbin.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-gstviewfinderbin.Tpo -c -o libgstcamerabin2_la-gstviewfinderbin.lo `test -f 'gstviewfinderbin.c' || echo '$(srcdir)/'`gstviewfinderbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-gstviewfinderbin.Tpo $(DEPDIR)/libgstcamerabin2_la-gstviewfinderbin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstviewfinderbin.c' object='libgstcamerabin2_la-gstviewfinderbin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstviewfinderbin.c' object='libgstcamerabin2_la-gstviewfinderbin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstviewfinderbin.lo `test -f 'gstviewfinderbin.c' || echo '$(srcdir)/'`gstviewfinderbin.c - -libgstcamerabin2_la-gstimagecapturebin.lo: gstimagecapturebin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-gstimagecapturebin.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-gstimagecapturebin.Tpo -c -o libgstcamerabin2_la-gstimagecapturebin.lo `test -f 'gstimagecapturebin.c' || echo '$(srcdir)/'`gstimagecapturebin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-gstimagecapturebin.Tpo $(DEPDIR)/libgstcamerabin2_la-gstimagecapturebin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstimagecapturebin.c' object='libgstcamerabin2_la-gstimagecapturebin.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstimagecapturebin.lo `test -f 'gstimagecapturebin.c' || echo '$(srcdir)/'`gstimagecapturebin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstviewfinderbin.lo `test -f 'gstviewfinderbin.c' || echo '$(srcdir)/'`gstviewfinderbin.c libgstcamerabin2_la-camerabingeneral.lo: camerabingeneral.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-camerabingeneral.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-camerabingeneral.Tpo -c -o libgstcamerabin2_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-camerabingeneral.Tpo $(DEPDIR)/libgstcamerabin2_la-camerabingeneral.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camerabingeneral.c' object='libgstcamerabin2_la-camerabingeneral.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camerabingeneral.c' object='libgstcamerabin2_la-camerabingeneral.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-camerabingeneral.lo `test -f 'camerabingeneral.c' || echo '$(srcdir)/'`camerabingeneral.c libgstcamerabin2_la-gstwrappercamerabinsrc.lo: gstwrappercamerabinsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-gstwrappercamerabinsrc.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-gstwrappercamerabinsrc.Tpo -c -o libgstcamerabin2_la-gstwrappercamerabinsrc.lo `test -f 'gstwrappercamerabinsrc.c' || echo '$(srcdir)/'`gstwrappercamerabinsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-gstwrappercamerabinsrc.Tpo $(DEPDIR)/libgstcamerabin2_la-gstwrappercamerabinsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwrappercamerabinsrc.c' object='libgstcamerabin2_la-gstwrappercamerabinsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwrappercamerabinsrc.c' object='libgstcamerabin2_la-gstwrappercamerabinsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstwrappercamerabinsrc.lo `test -f 'gstwrappercamerabinsrc.c' || echo '$(srcdir)/'`gstwrappercamerabinsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstwrappercamerabinsrc.lo `test -f 'gstwrappercamerabinsrc.c' || echo '$(srcdir)/'`gstwrappercamerabinsrc.c libgstcamerabin2_la-gstcamerabin2.lo: gstcamerabin2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-gstcamerabin2.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-gstcamerabin2.Tpo -c -o libgstcamerabin2_la-gstcamerabin2.lo `test -f 'gstcamerabin2.c' || echo '$(srcdir)/'`gstcamerabin2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-gstcamerabin2.Tpo $(DEPDIR)/libgstcamerabin2_la-gstcamerabin2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcamerabin2.c' object='libgstcamerabin2_la-gstcamerabin2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcamerabin2.c' object='libgstcamerabin2_la-gstcamerabin2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstcamerabin2.lo `test -f 'gstcamerabin2.c' || echo '$(srcdir)/'`gstcamerabin2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstcamerabin2.lo `test -f 'gstcamerabin2.c' || echo '$(srcdir)/'`gstcamerabin2.c libgstcamerabin2_la-gstplugin.lo: gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -MT libgstcamerabin2_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstcamerabin2_la-gstplugin.Tpo -c -o libgstcamerabin2_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcamerabin2_la-gstplugin.Tpo $(DEPDIR)/libgstcamerabin2_la-gstplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplugin.c' object='libgstcamerabin2_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplugin.c' object='libgstcamerabin2_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcamerabin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcamerabin2_la_CFLAGS) $(CFLAGS) -c -o libgstcamerabin2_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c mostlyclean-libtool: -rm -f *.lo @@ -821,10 +828,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/camerabin2/camerabingeneral.c b/gst/camerabin2/camerabingeneral.c index f57d6e9..046ccd7 100644 --- a/gst/camerabin2/camerabingeneral.c +++ b/gst/camerabin2/camerabingeneral.c @@ -20,16 +20,22 @@ /** * SECTION:camerabingeneral - * @short_description: helper functions for #GstCameraBin and it's modules + * @short_description: helper functions for #GstCameraBin2 and it's modules * - * Common helper functions for #GstCameraBin, #GstCameraBinImage and - * #GstCameraBinVideo. + * Common helper functions for #GstCameraBin2, #GstCameraBin2Image and + * #GstCameraBin2Video. * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include +#include + #include "camerabingeneral.h" /** @@ -119,7 +125,8 @@ gst_camerabin_try_add_element (GstBin * bin, const gchar * srcpad, GST_DEBUG_PAD_NAME (bin_pad)); bin_elem = gst_pad_get_parent_element (bin_pad); gst_object_unref (bin_pad); - if (!gst_element_link_pads (bin_elem, srcpad, new_elem, dstpad)) { + if (!gst_element_link_pads_full (bin_elem, srcpad, new_elem, dstpad, + GST_PAD_LINK_CHECK_CAPS)) { gst_object_ref (new_elem); gst_bin_remove (bin, new_elem); ret = FALSE; @@ -155,8 +162,9 @@ gst_camerabin_create_and_add_element (GstBin * bin, const gchar * elem_name, new_elem = gst_element_factory_make (elem_name, instance_name); if (!new_elem) { - GST_ELEMENT_ERROR (bin, CORE, MISSING_PLUGIN, (NULL), - ("could not create \"%s\" element.", elem_name)); + GST_ELEMENT_ERROR (bin, CORE, MISSING_PLUGIN, + (_("Missing element '%s' - check your GStreamer installation."), + elem_name), (NULL)); } else if (!gst_camerabin_add_element (bin, new_elem)) { new_elem = NULL; } @@ -250,29 +258,3 @@ gst_camerabin_remove_elements_from_bin (GstBin * bin) } gst_iterator_free (iter); } - -/** - * gst_camerabin_drop_eos_probe: - * @pad: pad receiving the event - * @event: received event - * @u_data: not used - * - * Event probe that drop all eos events. - * - * Returns: FALSE to drop the event, TRUE otherwise - */ -gboolean -gst_camerabin_drop_eos_probe (GstPad * pad, GstEvent * event, gpointer u_data) -{ - gboolean ret = TRUE; - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_EOS: - GST_DEBUG ("dropping eos in %s:%s", GST_DEBUG_PAD_NAME (pad)); - ret = FALSE; - break; - default: - break; - } - return ret; -} diff --git a/gst/camerabin2/camerabingeneral.h b/gst/camerabin2/camerabingeneral.h index 5c08154..a770045 100644 --- a/gst/camerabin2/camerabingeneral.h +++ b/gst/camerabin2/camerabingeneral.h @@ -34,6 +34,4 @@ GstElement * gst_camerabin_setup_default_element (GstBin * bin, GstElement *user void gst_camerabin_remove_elements_from_bin (GstBin * bin); -gboolean gst_camerabin_drop_eos_probe (GstPad * pad, GstEvent * event, gpointer u_data); - #endif /* #ifndef __CAMERABIN_GENERAL_H_ */ diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index 315a37e..7d5f8f4 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -17,12 +17,119 @@ * Boston, MA 02111-1307, USA. */ /** - * SECTION:element-gstcamerabin2 + * SECTION:element-camerabin2 * - * The gstcamerabin2 element does FIXME stuff. + * CameraBin2 is a high-level camera object that encapsulates gstreamer + * elements, providing an API for controlling a digital camera. * - * Note that camerabin2 is still UNSTABLE, EXPERIMENTAL and under heavy + * + * Note that camerabin2 is still UNSTABLE and under * development. + * + * + * CameraBin2 has the following main features: + * + * + * Record videos + * + * + * Capture pictures + * + * + * Display a viewfinder + * + * + * Post preview images for each capture (video and image) + * + * + * + * + * Usage + * + * Camerabin2 can be created using gst_element_factory_make() just like + * any other element. Video or image capture mode can be selected using + * the #GstCameraBin2:mode property and the file to save the capture is + * selected using #GstCameraBin2:location property. + * + * After creating camerabin2, applications might want to do some + * customization (there's a section about this below), then select + * the desired mode and start capturing. + * + * In image capture mode, just send a #GstCameraBin:start-capture and a + * picture will be captured. When the picture is stored on the selected + * location, a %GST_MESSAGE_ELEMENT named 'image-done' will be posted on + * the #GstBus. + * + * In video capture mode, send a #GstCameraBin2:start-capture to start + * recording, then send a #GstCameraBin2:stop-capture to stop recording. + * Note that both signals are asynchronous, so, calling + * #GstCameraBin2:stop-capture doesn't guarantee that the video has been + * properly finished yet. Applications should wait for the 'video-done' + * message to be posted on the bus. + * + * In both modes, if #GstCameraBin2:post-previews is %TRUE, a #GstBuffer + * will be post to the #GstBus in a field named 'buffer', in a + * 'preview-image' message of type %GST_MESSAGE_ELEMENT. + * + * + + * + * Customization + * + * Camerabin2 provides various customization properties, allowing the user + * to set custom filters, selecting the viewfinder sink and formats to + * use to encode the captured images/videos. + * + * #GstEncodingProfiles are used to tell camerabin2 which formats it + * should encode the captures to, those should be set to + * #GstCameraBin2:image-profile and #GstCameraBin2:video-profile. Default is + * jpeg for images, and ogg (theora and vorbis) for video. If a profile without + * an audio stream is set for video, audio will be disabled on recordings. + * + * #GstCameraBin2:preview-caps can be used to select which format preview + * images should be posted on the #GstBus. It has to be a raw video format. + * + * Camerabin2 has a #GstCameraBin2:camera-source property so applications can + * set their source that will provide buffers for the viewfinder and for + * captures. This camera source is a special type of source that has 3 pads. + * To use a 'regular' source with a single pad you should use + * #GstWrapperCameraBinSource, it will adapt your source and provide 3 pads. + * + * Applications can also select the desired viewfinder sink using + * #GstCameraBin2:viewfinder-sink, it is also possible to select the audio + * source using #GstCameraBin2:audio-source. + * + * The viewfinder resolution can be configured using + * #GstCameraBin2:viewfinder-caps, these #GstCaps should be a subset of + * #GstCameraBin2:viewfinder-supported-caps. + * + * To select the desired resolution for captures, camerabin2 provides + * #GstCameraBin2:image-capture-caps and #GstCameraBin2:video-capture-caps, + * these caps must be a subset of what the source can produce. The allowed + * caps can be probed using #GstCameraBin2:image-capture-supported-caps and + * #GstCameraBin2:video-capture-supported-caps. In an analogous way, there + * are #GstCameraBin2:audio-capture-caps and + * #GstCameraBin2:audio-capture-supported-caps. + * + * Camerabin2 also allows applications to insert custom #GstElements on any + * of its branches: video capture, image capture, viewfinder and preview. + * Check #GstCameraBin2:video-filter, #GstCameraBin2:image-filter, + * #GstCameraBin2:viewfinder-filter and #GstCameraBin2:preview-filter. + * + * + * + * + * Example launch line + * + * Unfortunatelly, camerabin2 can't be really used from gst-launch, as you need + * to send signals to control it. The following pipeline might be able + * to show the viewfinder using all the default elements. + * |[ + * gst-launch -v -m camerabin2 + * ]| + * + * + */ /* @@ -56,24 +163,34 @@ #include #include "gstcamerabin2.h" +#include +#include -#define GST_CAMERA_BIN_PROCESSING_INC(c) \ +#if GLIB_CHECK_VERSION(2,29,6) +#define gst_camerabin2_atomic_int_add g_atomic_int_add +#else +#define gst_camerabin2_atomic_int_add g_atomic_int_exchange_and_add +#endif + +#define GST_CAMERA_BIN2_PROCESSING_INC(c) \ { \ - gint bef = g_atomic_int_exchange_and_add (&c->processing_counter, 1); \ + gint bef = gst_camerabin2_atomic_int_add (&c->processing_counter, 1); \ if (bef == 0) \ g_object_notify (G_OBJECT (c), "idle"); \ GST_DEBUG_OBJECT ((c), "Processing counter incremented to: %d", \ bef + 1); \ } -#define GST_CAMERA_BIN_PROCESSING_DEC(c) \ +#define GST_CAMERA_BIN2_PROCESSING_DEC(c) \ { \ - if (g_atomic_int_dec_and_test (&c->processing_counter)) \ + if (g_atomic_int_dec_and_test (&c->processing_counter)) { \ g_object_notify (G_OBJECT (c), "idle"); \ + GST_DEBUG_OBJECT ((c), "Camerabin now idle"); \ + } \ GST_DEBUG_OBJECT ((c), "Processing counter decremented"); \ } -#define GST_CAMERA_BIN_RESET_PROCESSING_COUNTER(c) \ +#define GST_CAMERA_BIN2_RESET_PROCESSING_COUNTER(c) \ { \ g_atomic_int_set (&c->processing_counter, 0); \ GST_DEBUG_OBJECT ((c), "Processing counter reset"); \ @@ -110,9 +227,10 @@ enum PROP_AUDIO_CAPTURE_CAPS, PROP_ZOOM, PROP_MAX_ZOOM, - PROP_IMAGE_CAPTURE_ENCODER, - PROP_IMAGE_CAPTURE_MUXER, - PROP_IDLE + PROP_IMAGE_ENCODING_PROFILE, + PROP_IDLE, + PROP_FLAGS, + PROP_AUDIO_FILTER }; enum @@ -126,11 +244,11 @@ enum static guint camerabin_signals[LAST_SIGNAL]; #define DEFAULT_MODE MODE_IMAGE -#define DEFAULT_VID_LOCATION "vid_%d" -#define DEFAULT_IMG_LOCATION "img_%d" -#define DEFAULT_POST_PREVIEWS TRUE +#define DEFAULT_LOCATION "cap_%d" +#define DEFAULT_POST_PREVIEWS FALSE #define DEFAULT_MUTE_AUDIO FALSE #define DEFAULT_IDLE TRUE +#define DEFAULT_FLAGS 0 #define DEFAULT_AUDIO_SRC "autoaudiosrc" @@ -140,16 +258,48 @@ static guint camerabin_signals[LAST_SIGNAL]; ********************************/ static GstPipelineClass *parent_class; -static void gst_camera_bin_class_init (GstCameraBinClass * klass); +static void gst_camera_bin_class_init (GstCameraBin2Class * klass); static void gst_camera_bin_base_init (gpointer klass); -static void gst_camera_bin_init (GstCameraBin * camera); +static void gst_camera_bin_init (GstCameraBin2 * camera); static void gst_camera_bin_dispose (GObject * object); static void gst_camera_bin_finalize (GObject * object); static void gst_camera_bin_handle_message (GstBin * bin, GstMessage * message); +static gboolean gst_camera_bin_send_event (GstElement * element, + GstEvent * event); + +#define C_FLAGS(v) ((guint) v) +#define GST_TYPE_CAM_FLAGS (gst_cam_flags_get_type()) +static GType +gst_cam_flags_get_type (void) +{ + static const GFlagsValue values[] = { + {C_FLAGS (GST_CAM_FLAG_NO_AUDIO_CONVERSION), "Do not use audio conversion " + "elements", "no-audio-conversion"}, + {C_FLAGS (GST_CAM_FLAG_NO_VIDEO_CONVERSION), "Do not use video conversion " + "elements", "no-video-conversion"}, + {C_FLAGS (GST_CAM_FLAG_NO_VIEWFINDER_CONVERSION), + "Do not use viewfinder conversion " "elements", + "no-viewfinder-conversion"}, + {C_FLAGS (GST_CAM_FLAG_NO_IMAGE_CONVERSION), "Do not use image conversion " + "elements", "no-image-conversion"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_flags_register_static ("GstCamFlags", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} GType -gst_camera_bin_get_type (void) +gst_camera_bin2_get_type (void) { static GType gst_camera_bin_type = 0; static const GInterfaceInfo camerabin_tagsetter_info = { @@ -160,13 +310,13 @@ gst_camera_bin_get_type (void) if (!gst_camera_bin_type) { static const GTypeInfo gst_camera_bin_info = { - sizeof (GstCameraBinClass), + sizeof (GstCameraBin2Class), (GBaseInitFunc) gst_camera_bin_base_init, NULL, (GClassInitFunc) gst_camera_bin_class_init, NULL, NULL, - sizeof (GstCameraBin), + sizeof (GstCameraBin2), 0, (GInstanceInitFunc) gst_camera_bin_init, NULL @@ -203,67 +353,144 @@ gst_camera_bin_new_event_renegotiate (void) gst_structure_new ("renegotiate", NULL)); } +static GstEvent * +gst_camera_bin_new_event_file_location (const gchar * location) +{ + return gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, + gst_structure_new ("new-location", "location", G_TYPE_STRING, location, + NULL)); +} + static void -gst_camera_bin_start_capture (GstCameraBin * camerabin) +gst_camera_bin_start_capture (GstCameraBin2 * camerabin) { const GstTagList *taglist; - + gint capture_index = camerabin->capture_index; + gchar *location = NULL; GST_DEBUG_OBJECT (camerabin, "Received start-capture"); - GST_CAMERA_BIN_PROCESSING_INC (camerabin); - taglist = gst_tag_setter_get_tag_list (GST_TAG_SETTER (camerabin)); - if (taglist) { - GstPad *active_pad; + /* check that we have a valid location */ + if (camerabin->mode == MODE_VIDEO) { + if (camerabin->location == NULL) { + GST_ELEMENT_ERROR (camerabin, RESOURCE, OPEN_WRITE, + (_("File location is set to NULL, please set it to a valid filename")), (NULL)); + return; + } - GST_DEBUG_OBJECT (camerabin, "Pushing tags from application: %" - GST_PTR_FORMAT, taglist); + g_mutex_lock (camerabin->video_capture_mutex); + while (camerabin->video_state == GST_CAMERA_BIN_VIDEO_FINISHING) { + g_cond_wait (camerabin->video_state_cond, camerabin->video_capture_mutex); + } + if (camerabin->video_state != GST_CAMERA_BIN_VIDEO_IDLE) { + GST_WARNING_OBJECT (camerabin, "Another video recording is ongoing" + " (state %d), cannot start a new one", camerabin->video_state); + g_mutex_unlock (camerabin->video_capture_mutex); + return; + } + camerabin->video_state = GST_CAMERA_BIN_VIDEO_STARTING; + } - if (camerabin->mode == MODE_IMAGE) { - active_pad = gst_element_get_static_pad (camerabin->src, - GST_BASE_CAMERA_SRC_IMAGE_PAD_NAME); - } else { - active_pad = gst_element_get_static_pad (camerabin->src, - GST_BASE_CAMERA_SRC_VIDEO_PAD_NAME); + GST_CAMERA_BIN2_PROCESSING_INC (camerabin); + + if (camerabin->location) + location = g_strdup_printf (camerabin->location, capture_index); + + if (camerabin->mode == MODE_VIDEO) { + if (camerabin->audio_src) { + GstClock *clock = gst_pipeline_get_clock (GST_PIPELINE_CAST (camerabin)); + + gst_element_set_state (camerabin->audio_src, GST_STATE_PAUSED); + + gst_element_set_base_time (camerabin->audio_src, + gst_element_get_base_time (GST_ELEMENT_CAST (camerabin))); + if (clock) { + gst_element_set_clock (camerabin->audio_src, clock); + gst_object_unref (clock); + } } + } else { + /* store the next capture buffer filename */ + g_mutex_lock (camerabin->image_capture_mutex); + camerabin->image_location_list = + g_slist_append (camerabin->image_location_list, g_strdup (location)); + g_mutex_unlock (camerabin->image_capture_mutex); + } - gst_pad_push_event (active_pad, - gst_event_new_tag (gst_tag_list_copy (taglist))); - gst_object_unref (active_pad); + if (camerabin->post_previews) { + /* Count processing of preview images too */ + GST_CAMERA_BIN2_PROCESSING_INC (camerabin); + /* store the next preview filename */ + g_mutex_lock (camerabin->preview_list_mutex); + camerabin->preview_location_list = + g_slist_append (camerabin->preview_location_list, location); + g_mutex_unlock (camerabin->preview_list_mutex); + } else { + g_free (location); } - if (camerabin->mode == MODE_VIDEO && camerabin->audio_src) { - gst_element_set_state (camerabin->audio_src, GST_STATE_READY); - /* need to reset eos status (pads could be flushing) */ - gst_element_set_state (camerabin->audio_queue, GST_STATE_READY); - gst_element_set_state (camerabin->audio_convert, GST_STATE_READY); - gst_element_set_state (camerabin->audio_capsfilter, GST_STATE_READY); - gst_element_set_state (camerabin->audio_volume, GST_STATE_READY); + g_signal_emit_by_name (camerabin->src, "start-capture", NULL); + if (camerabin->mode == MODE_VIDEO) { + camerabin->audio_send_newseg = TRUE; + if (camerabin->audio_src) + gst_element_set_state (camerabin->audio_src, GST_STATE_PLAYING); - gst_element_sync_state_with_parent (camerabin->audio_queue); - gst_element_sync_state_with_parent (camerabin->audio_convert); - gst_element_sync_state_with_parent (camerabin->audio_capsfilter); - gst_element_sync_state_with_parent (camerabin->audio_volume); + camerabin->video_state = GST_CAMERA_BIN_VIDEO_RECORDING; + g_mutex_unlock (camerabin->video_capture_mutex); } - g_signal_emit_by_name (camerabin->src, "start-capture", NULL); - if (camerabin->mode == MODE_VIDEO && camerabin->audio_src) - gst_element_set_state (camerabin->audio_src, GST_STATE_PLAYING); + /* + * We have to push tags after start capture because the video elements + * might be flushing from the previous capture and are reset only on the + * notify from ready for capture going to FALSE + */ + taglist = gst_tag_setter_get_tag_list (GST_TAG_SETTER (camerabin)); + GST_DEBUG_OBJECT (camerabin, "Have tags from application: %" + GST_PTR_FORMAT, taglist); + + if (camerabin->mode == MODE_IMAGE) { + /* Store image tags in a list and push them later, this prevents + start_capture() from blocking in pad_push_event call */ + g_mutex_lock (camerabin->image_capture_mutex); + camerabin->image_tags_list = + g_slist_append (camerabin->image_tags_list, + taglist ? gst_tag_list_copy (taglist) : NULL); + g_mutex_unlock (camerabin->image_capture_mutex); + } else if (taglist) { + GstPad *active_pad; + + active_pad = gst_element_get_static_pad (camerabin->src, + GST_BASE_CAMERA_SRC_VIDEO_PAD_NAME); + gst_pad_push_event (active_pad, + gst_event_new_tag (gst_tag_list_copy (taglist))); + + gst_object_unref (active_pad); + } + + GST_DEBUG_OBJECT (camerabin, "Start-capture end"); } static void -gst_camera_bin_stop_capture (GstCameraBin * camerabin) +gst_camera_bin_stop_capture (GstCameraBin2 * camerabin) { GST_DEBUG_OBJECT (camerabin, "Received stop-capture"); - if (camerabin->src) - g_signal_emit_by_name (camerabin->src, "stop-capture", NULL); - - if (camerabin->mode == MODE_VIDEO && camerabin->audio_src) { - gst_element_send_event (camerabin->audio_src, gst_event_new_eos ()); + if (camerabin->mode == MODE_VIDEO) { + g_mutex_lock (camerabin->video_capture_mutex); + if (camerabin->video_state == GST_CAMERA_BIN_VIDEO_RECORDING) { + if (camerabin->src) + g_signal_emit_by_name (camerabin->src, "stop-capture", NULL); + + camerabin->video_state = GST_CAMERA_BIN_VIDEO_FINISHING; + if (camerabin->audio_src) { + camerabin->audio_drop_eos = FALSE; + gst_element_send_event (camerabin->audio_src, gst_event_new_eos ()); + } + } + g_mutex_unlock (camerabin->video_capture_mutex); } } static void -gst_camera_bin_change_mode (GstCameraBin * camerabin, gint mode) +gst_camera_bin_change_mode (GstCameraBin2 * camerabin, gint mode) { if (mode == camerabin->mode) return; @@ -281,40 +508,42 @@ static void gst_camera_bin_src_notify_readyforcapture (GObject * obj, GParamSpec * pspec, gpointer user_data) { - GstCameraBin *camera = GST_CAMERA_BIN_CAST (user_data); + GstCameraBin2 *camera = GST_CAMERA_BIN2_CAST (user_data); gboolean ready; - if (camera->mode == MODE_VIDEO) { - g_object_get (camera->src, "ready-for-capture", &ready, NULL); - if (!ready) { - gchar *location; + g_object_get (camera->src, "ready-for-capture", &ready, NULL); + if (!ready) { + gchar *location = NULL; - /* a video recording is about to start, we reset the videobin to clear eos/flushing state - * also need to clean the queue ! capsfilter before it */ - gst_element_set_state (camera->encodebin, GST_STATE_NULL); + if (camera->mode == MODE_VIDEO) { + /* a video recording is about to start, change the filesink location */ gst_element_set_state (camera->videosink, GST_STATE_NULL); - gst_element_set_state (camera->videobin_queue, GST_STATE_NULL); - gst_element_set_state (camera->videobin_capsfilter, GST_STATE_NULL); - location = - g_strdup_printf (camera->video_location, camera->video_index++); + location = g_strdup_printf (camera->location, camera->capture_index); GST_DEBUG_OBJECT (camera, "Switching videobin location to %s", location); g_object_set (camera->videosink, "location", location, NULL); g_free (location); - gst_element_set_state (camera->encodebin, GST_STATE_PLAYING); - gst_element_set_state (camera->videosink, GST_STATE_PLAYING); - gst_element_set_state (camera->videobin_capsfilter, GST_STATE_PLAYING); - gst_element_set_state (camera->videobin_queue, GST_STATE_PLAYING); + if (gst_element_set_state (camera->videosink, GST_STATE_PLAYING) == + GST_STATE_CHANGE_FAILURE) { + /* Resets the latest state change return, that would be a failure + * and could cause problems in a camerabin2 state change */ + gst_element_set_state (camera->videosink, GST_STATE_NULL); + } } + + camera->capture_index++; } } static void gst_camera_bin_dispose (GObject * object) { - GstCameraBin *camerabin = GST_CAMERA_BIN_CAST (object); + GstCameraBin2 *camerabin = GST_CAMERA_BIN2_CAST (object); - g_free (camerabin->image_location); - g_free (camerabin->video_location); + g_free (camerabin->location); + g_mutex_free (camerabin->preview_list_mutex); + g_mutex_free (camerabin->image_capture_mutex); + g_mutex_free (camerabin->video_capture_mutex); + g_cond_free (camerabin->video_state_cond); if (camerabin->src_capture_notify_id) g_signal_handler_disconnect (camerabin->src, @@ -331,10 +560,6 @@ gst_camera_bin_dispose (GObject * object) if (camerabin->audio_capsfilter) gst_object_unref (camerabin->audio_capsfilter); - if (camerabin->audio_queue) - gst_object_unref (camerabin->audio_queue); - if (camerabin->audio_convert) - gst_object_unref (camerabin->audio_convert); if (camerabin->audio_volume) gst_object_unref (camerabin->audio_volume); @@ -345,29 +570,24 @@ gst_camera_bin_dispose (GObject * object) if (camerabin->viewfinderbin_capsfilter) gst_object_unref (camerabin->viewfinderbin_capsfilter); - if (camerabin->encodebin_signal_id) - g_signal_handler_disconnect (camerabin->encodebin, - camerabin->encodebin_signal_id); - - if (camerabin->videosink_probe) { - GstPad *pad = gst_element_get_static_pad (camerabin->videosink, "sink"); - gst_pad_remove_data_probe (pad, camerabin->videosink_probe); - gst_object_unref (pad); - } + if (camerabin->video_encodebin_signal_id) + g_signal_handler_disconnect (camerabin->video_encodebin, + camerabin->video_encodebin_signal_id); if (camerabin->videosink) gst_object_unref (camerabin->videosink); - if (camerabin->encodebin) - gst_object_unref (camerabin->encodebin); - if (camerabin->videobin_queue) - gst_object_unref (camerabin->videobin_queue); + if (camerabin->video_encodebin) + gst_object_unref (camerabin->video_encodebin); if (camerabin->videobin_capsfilter) gst_object_unref (camerabin->videobin_capsfilter); - if (camerabin->imagebin) - gst_object_unref (camerabin->imagebin); - if (camerabin->imagebin_queue) - gst_object_unref (camerabin->imagebin_queue); + if (camerabin->image_encodebin_signal_id) + g_signal_handler_disconnect (camerabin->image_encodebin, + camerabin->image_encodebin_signal_id); + if (camerabin->imagesink) + gst_object_unref (camerabin->imagesink); + if (camerabin->image_encodebin) + gst_object_unref (camerabin->image_encodebin); if (camerabin->imagebin_capsfilter) gst_object_unref (camerabin->imagebin_capsfilter); @@ -377,9 +597,13 @@ gst_camera_bin_dispose (GObject * object) gst_object_unref (camerabin->image_filter); if (camerabin->viewfinder_filter) gst_object_unref (camerabin->viewfinder_filter); + if (camerabin->audio_filter) + gst_object_unref (camerabin->audio_filter); if (camerabin->user_video_filter) gst_object_unref (camerabin->user_video_filter); + if (camerabin->user_audio_filter) + gst_object_unref (camerabin->user_audio_filter); if (camerabin->user_image_filter) gst_object_unref (camerabin->user_image_filter); if (camerabin->user_viewfinder_filter) @@ -387,6 +611,8 @@ gst_camera_bin_dispose (GObject * object) if (camerabin->video_profile) gst_encoding_profile_unref (camerabin->video_profile); + if (camerabin->image_profile) + gst_encoding_profile_unref (camerabin->image_profile); if (camerabin->preview_caps) gst_caps_replace (&camerabin->preview_caps, NULL); @@ -415,7 +641,7 @@ gst_camera_bin_base_init (gpointer g_class) } static void -gst_camera_bin_class_init (GstCameraBinClass * klass) +gst_camera_bin_class_init (GstCameraBin2Class * klass) { GObjectClass *object_class; GstElementClass *element_class; @@ -432,6 +658,7 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) object_class->get_property = gst_camera_bin_get_property; element_class->change_state = GST_DEBUG_FUNCPTR (gst_camera_bin_change_state); + element_class->send_event = GST_DEBUG_FUNCPTR (gst_camera_bin_send_event); bin_class->handle_message = gst_camera_bin_handle_message; @@ -439,7 +666,7 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) klass->stop_capture = gst_camera_bin_stop_capture; /** - * GstCameraBin:mode: + * GstCameraBin2:mode: * * Set the mode of operation: still image capturing or video recording. */ @@ -453,17 +680,19 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) g_param_spec_string ("location", "Location", "Location to save the captured files. A %d might be used on the" "filename as a placeholder for a numeric index of the capture." - "Default for images is img_%d and vid_%d for videos", - DEFAULT_IMG_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + "Default is cap_%d", + DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_CAMERA_SRC, - g_param_spec_object ("camera-src", "Camera source", - "The camera source element to be used", + g_param_spec_object ("camera-source", "Camera source", + "The camera source element to be used. It is only taken into use on" + " the next null to ready transition", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_AUDIO_SRC, - g_param_spec_object ("audio-src", "Audio source", - "The audio source element to be used on video recordings", + g_param_spec_object ("audio-source", "Audio source", + "The audio source element to be used on video recordings. It is only" + " taken into use on the next null to ready transition", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_MUTE_AUDIO, @@ -549,6 +778,12 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) " (Should be set on NULL state)", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (object_class, PROP_AUDIO_FILTER, + g_param_spec_object ("audio-filter", "Audio filter", + "The element that will process captured audio buffers when recording" + ". (Should be set on NULL state)", + GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (object_class, PROP_PREVIEW_FILTER, g_param_spec_object ("preview-filter", "Preview filter", "The element that will process preview buffers." @@ -557,7 +792,8 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) g_object_class_install_property (object_class, PROP_VIEWFINDER_SINK, g_param_spec_object ("viewfinder-sink", "Viewfinder sink", - "The video sink of the viewfinder.", + "The video sink of the viewfinder. It is only taken into use" + " on the next null to ready transition", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, @@ -580,26 +816,21 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) /* TODO * Review before stable - * - We use a profile for video recording properties and here we have - * elements for image capture. This is slightly inconsistent. * - One problem with using encodebin for images here is how jifmux * autoplugging works. We need to give it a higher rank and fix its * caps (it has image/jpeg on sink and src pads). Preliminary tests * show that jifmux is picked if image/jpeg is the caps of a container * profile. So this could work. * - There seems to be a problem with encodebin for images currently as - * it autoplugs a videorate that ony starts outputing buffers after + * it autoplugs a videorate that only starts outputing buffers after * getting the 2nd buffer. */ - g_object_class_install_property (object_class, PROP_IMAGE_CAPTURE_ENCODER, - g_param_spec_object ("image-capture-encoder", "Image capture encoder", - "The image encoder element to be used on image captures.", - GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (object_class, PROP_IMAGE_ENCODING_PROFILE, + gst_param_spec_mini_object ("image-profile", "Image Profile", + "The GstEncodingProfile to use for image captures.", + GST_TYPE_ENCODING_PROFILE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (object_class, PROP_IMAGE_CAPTURE_MUXER, - g_param_spec_object ("image-capture-muxer", "Image capture encoder", - "The image encoder element to be used on image captures.", - GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_IDLE, g_param_spec_boolean ("idle", "Idle", @@ -621,8 +852,18 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) "The caps that the camera source can produce on the viewfinder pad", GST_TYPE_CAPS, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + * GstCameraBin:flags + * + * Control the behaviour of encodebin. + */ + g_object_class_install_property (object_class, PROP_FLAGS, + g_param_spec_flags ("flags", "Flags", "Flags to control behaviour", + GST_TYPE_CAM_FLAGS, DEFAULT_FLAGS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** - * GstCameraBin::capture-start: + * GstCameraBin2::capture-start: * @camera: the camera bin element * * Starts image capture or video recording depending on the Mode. @@ -631,32 +872,35 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) g_signal_new ("start-capture", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GstCameraBinClass, start_capture), + G_STRUCT_OFFSET (GstCameraBin2Class, start_capture), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** - * GstCameraBin::capture-stop: + * GstCameraBin2::capture-stop: * @camera: the camera bin element */ camerabin_signals[STOP_CAPTURE_SIGNAL] = g_signal_new ("stop-capture", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GstCameraBinClass, stop_capture), + G_STRUCT_OFFSET (GstCameraBin2Class, stop_capture), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void -gst_camera_bin_init (GstCameraBin * camera) +gst_camera_bin_init (GstCameraBin2 * camera) { camera->post_previews = DEFAULT_POST_PREVIEWS; camera->mode = DEFAULT_MODE; - camera->video_location = g_strdup (DEFAULT_VID_LOCATION); - camera->image_location = g_strdup (DEFAULT_IMG_LOCATION); + camera->location = g_strdup (DEFAULT_LOCATION); camera->viewfinderbin = gst_element_factory_make ("viewfinderbin", "vf-bin"); - camera->imagebin = gst_element_factory_make ("imagecapturebin", "imagebin"); camera->zoom = DEFAULT_ZOOM; camera->max_zoom = MAX_ZOOM; + camera->flags = DEFAULT_FLAGS; + camera->preview_list_mutex = g_mutex_new (); + camera->image_capture_mutex = g_mutex_new (); + camera->video_capture_mutex = g_mutex_new (); + camera->video_state_cond = g_cond_new (); /* capsfilters are created here as we proxy their caps properties and * this way we avoid having to store the caps while on NULL state to @@ -681,7 +925,7 @@ gst_camera_bin_init (GstCameraBin * camera) } static void -gst_image_capture_bin_post_image_done (GstCameraBin * camera, +gst_image_capture_bin_post_image_done (GstCameraBin2 * camera, const gchar * filename) { GstMessage *msg; @@ -697,20 +941,135 @@ gst_image_capture_bin_post_image_done (GstCameraBin * camera, } static void +gst_video_capture_bin_post_video_done (GstCameraBin2 * camera) +{ + GstMessage *msg; + + msg = gst_message_new_element (GST_OBJECT_CAST (camera), + gst_structure_new ("video-done", NULL)); + + if (!gst_element_post_message (GST_ELEMENT_CAST (camera), msg)) + GST_WARNING_OBJECT (camera, "Failed to post video-done message"); +} + +static void +gst_camera_bin_skip_next_preview (GstCameraBin2 * camerabin) +{ + gchar *location; + + g_mutex_lock (camerabin->preview_list_mutex); + if (camerabin->preview_location_list) { + location = camerabin->preview_location_list->data; + GST_DEBUG_OBJECT (camerabin, "Skipping preview for %s", location); + g_free (location); + camerabin->preview_location_list = + g_slist_delete_link (camerabin->preview_location_list, + camerabin->preview_location_list); + GST_CAMERA_BIN2_PROCESSING_DEC (camerabin); + } else { + GST_WARNING_OBJECT (camerabin, "No previews to skip"); + } + g_mutex_unlock (camerabin->preview_list_mutex); +} + +static gpointer +gst_camera_bin_video_reset_elements (gpointer u_data) +{ + GstCameraBin2 *camerabin = GST_CAMERA_BIN2_CAST (u_data); + + GST_DEBUG_OBJECT (camerabin, "Resetting video elements state"); + g_mutex_lock (camerabin->video_capture_mutex); + + /* reset element states to clear eos/flushing pads */ + gst_element_set_state (camerabin->video_encodebin, GST_STATE_READY); + gst_element_set_state (camerabin->videobin_capsfilter, GST_STATE_READY); + if (camerabin->video_filter) { + gst_element_set_state (camerabin->video_filter, GST_STATE_READY); + gst_element_sync_state_with_parent (camerabin->video_filter); + } + gst_element_sync_state_with_parent (camerabin->videobin_capsfilter); + gst_element_sync_state_with_parent (camerabin->video_encodebin); + + if (camerabin->audio_src) { + gst_element_set_state (camerabin->audio_capsfilter, GST_STATE_READY); + gst_element_set_state (camerabin->audio_volume, GST_STATE_READY); + + /* FIXME We need to set audiosrc to null to make it resync the ringbuffer + * while bug https://bugzilla.gnome.org/show_bug.cgi?id=648359 isn't + * fixed. + * + * Also, we don't reinit the audiosrc to keep audio devices from being open + * and running until we really need them */ + gst_element_set_state (camerabin->audio_src, GST_STATE_NULL); + + if (camerabin->audio_filter) { + gst_element_set_state (camerabin->audio_filter, GST_STATE_READY); + gst_element_sync_state_with_parent (camerabin->audio_filter); + } + + gst_element_sync_state_with_parent (camerabin->audio_capsfilter); + gst_element_sync_state_with_parent (camerabin->audio_volume); + + } + + GST_DEBUG_OBJECT (camerabin, "Setting video state to idle"); + camerabin->video_state = GST_CAMERA_BIN_VIDEO_IDLE; + g_cond_signal (camerabin->video_state_cond); + g_mutex_unlock (camerabin->video_capture_mutex); + + gst_object_unref (camerabin); + return NULL; +} + +static void gst_camera_bin_handle_message (GstBin * bin, GstMessage * message) { + GstCameraBin2 *camerabin = GST_CAMERA_BIN2_CAST (bin); + gboolean dec_counter = FALSE; + switch (GST_MESSAGE_TYPE (message)) { case GST_MESSAGE_ELEMENT:{ const GstStructure *structure = gst_message_get_structure (message); const gchar *filename; if (gst_structure_has_name (structure, "GstMultiFileSink")) { - GST_CAMERA_BIN_PROCESSING_DEC (GST_CAMERA_BIN_CAST (bin)); filename = gst_structure_get_string (structure, "filename"); + GST_DEBUG_OBJECT (bin, "Got file save message from multifilesink, " + "image %s has been saved", filename); if (filename) { - gst_image_capture_bin_post_image_done (GST_CAMERA_BIN_CAST (bin), + gst_image_capture_bin_post_image_done (GST_CAMERA_BIN2_CAST (bin), filename); } + dec_counter = TRUE; + } else if (gst_structure_has_name (structure, "preview-image")) { + gchar *location = NULL; + + g_mutex_lock (camerabin->preview_list_mutex); + if (camerabin->preview_location_list) { + location = camerabin->preview_location_list->data; + camerabin->preview_location_list = + g_slist_delete_link (camerabin->preview_location_list, + camerabin->preview_location_list); + GST_DEBUG_OBJECT (camerabin, "Adding preview location to preview " + "message '%s'", location); + } else { + GST_WARNING_OBJECT (camerabin, "Unexpected preview message received, " + "won't be able to put location field into the message. This can " + "happen if the source is posting previews while camerabin2 is " + "shutting down"); + } + g_mutex_unlock (camerabin->preview_list_mutex); + + if (location) { + GValue value = { 0 }; + g_value_init (&value, G_TYPE_STRING); + g_value_take_string (&value, location); + gst_structure_take_value ((GstStructure *) structure, "location", + &value); + } + + GST_LOG_OBJECT (bin, "received preview-image message"); + dec_counter = TRUE; } } break; @@ -721,15 +1080,38 @@ gst_camera_bin_handle_message (GstBin * bin, GstMessage * message) gst_message_parse_warning (message, &err, &debug); if (err->domain == GST_RESOURCE_ERROR) { /* some capturing failed */ - GST_CAMERA_BIN_PROCESSING_DEC (GST_CAMERA_BIN_CAST (bin)); + GST_WARNING_OBJECT (bin, "Capture failed, reason: %s - %s", + err->message, debug); + if (camerabin->post_previews) { + gst_camera_bin_skip_next_preview (camerabin); + } + dec_counter = TRUE; } + g_error_free (err); + g_free (debug); } break; case GST_MESSAGE_EOS:{ GstElement *src = GST_ELEMENT (GST_MESSAGE_SRC (message)); - if (src == GST_CAMERA_BIN_CAST (bin)->videosink) { + if (src == GST_CAMERA_BIN2_CAST (bin)->videosink) { + + g_mutex_lock (camerabin->video_capture_mutex); GST_DEBUG_OBJECT (bin, "EOS from video branch"); - GST_CAMERA_BIN_PROCESSING_DEC (GST_CAMERA_BIN_CAST (bin)); + g_assert (camerabin->video_state == GST_CAMERA_BIN_VIDEO_FINISHING); + + gst_video_capture_bin_post_video_done (GST_CAMERA_BIN2_CAST (bin)); + dec_counter = TRUE; + + if (!g_thread_create (gst_camera_bin_video_reset_elements, + gst_object_ref (camerabin), FALSE, NULL)) { + GST_WARNING_OBJECT (camerabin, "Failed to create thread to " + "reset video elements' state, video recordings may not work " + "anymore"); + gst_object_unref (camerabin); + camerabin->video_state = GST_CAMERA_BIN_VIDEO_IDLE; + } + + g_mutex_unlock (camerabin->video_capture_mutex); } } break; @@ -738,6 +1120,9 @@ gst_camera_bin_handle_message (GstBin * bin, GstMessage * message) } if (message) GST_BIN_CLASS (parent_class)->handle_message (bin, message); + + if (dec_counter) + GST_CAMERA_BIN2_PROCESSING_DEC (camerabin); } /* @@ -750,9 +1135,10 @@ gst_camera_bin_handle_message (GstBin * bin, GstMessage * message) * Where current_filter and new_filter might or might not be NULL */ static void -gst_camera_bin_check_and_replace_filter (GstCameraBin * camera, +gst_camera_bin_check_and_replace_filter (GstCameraBin2 * camera, GstElement ** current_filter, GstElement * new_filter, - GstElement * previous_element, GstElement * next_element) + GstElement * previous_element, GstElement * next_element, + const gchar * prev_elem_pad) { if (*current_filter == new_filter) { GST_DEBUG_OBJECT (camera, "Current filter is the same as the previous, " @@ -776,15 +1162,27 @@ gst_camera_bin_check_and_replace_filter (GstCameraBin * camera, if (new_filter) { *current_filter = gst_object_ref (new_filter); gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (new_filter)); - gst_element_link_many (previous_element, new_filter, next_element, NULL); + } + + if (prev_elem_pad) { + if (new_filter) { + gst_element_link_pads (previous_element, prev_elem_pad, new_filter, NULL); + gst_element_link (new_filter, next_element); + } else { + gst_element_link_pads (previous_element, prev_elem_pad, next_element, + NULL); + } } else { - gst_element_link (previous_element, next_element); + if (new_filter) + gst_element_link_many (previous_element, new_filter, next_element, NULL); + else + gst_element_link (previous_element, next_element); } } static void encodebin_element_added (GstElement * encodebin, GstElement * new_element, - GstCameraBin * camera) + GstCameraBin2 * camera) { GstElementFactory *factory = gst_element_get_factory (new_element); @@ -794,20 +1192,26 @@ encodebin_element_added (GstElement * encodebin, GstElement * new_element, g_object_set (new_element, "skip-to-first", TRUE, NULL); } } + + if (gst_element_implements_interface (new_element, GST_TYPE_TAG_SETTER)) { + GstTagSetter *tagsetter = GST_TAG_SETTER (new_element); + + gst_tag_setter_set_tag_merge_mode (tagsetter, GST_TAG_MERGE_REPLACE); + } } #define VIDEO_PAD 1 #define AUDIO_PAD 2 static GstPad * -encodebin_find_pad (GstCameraBin * camera, gint pad_type) +encodebin_find_pad (GstCameraBin2 * camera, GstElement * encodebin, + gint pad_type) { GstPad *pad = NULL; GstIterator *iter; gboolean done; - GstElement *encodebin = camera->encodebin; GST_DEBUG_OBJECT (camera, "Looking at encodebin pads, searching for %s pad", - VIDEO_PAD ? "video" : "audio"); + pad_type == VIDEO_PAD ? "video" : "audio"); iter = gst_element_iterate_sink_pads (encodebin); done = FALSE; @@ -858,14 +1262,13 @@ encodebin_find_pad (GstCameraBin * camera, gint pad_type) pad = gst_element_request_pad (encodebin, tmpl, NULL, NULL); GST_DEBUG_OBJECT (camera, "Got pad: %s", pad ? GST_PAD_NAME (pad) : "null"); - gst_object_unref (tmpl); } return pad; } static gboolean -gst_camera_bin_video_profile_has_audio (GstCameraBin * camera) +gst_camera_bin_video_profile_has_audio (GstCameraBin2 * camera) { const GList *list; @@ -887,20 +1290,26 @@ gst_camera_bin_video_profile_has_audio (GstCameraBin * camera) } static GstPadLinkReturn -gst_camera_bin_link_encodebin (GstCameraBin * camera, GstElement * element, - gint padtype) +gst_camera_bin_link_encodebin (GstCameraBin2 * camera, GstElement * encodebin, + GstElement * element, gint padtype) { GstPadLinkReturn ret; GstPad *srcpad; GstPad *sinkpad = NULL; srcpad = gst_element_get_static_pad (element, "src"); - sinkpad = encodebin_find_pad (camera, padtype); - g_assert (srcpad != NULL); - g_assert (sinkpad != NULL); - ret = gst_pad_link (srcpad, sinkpad); + sinkpad = encodebin_find_pad (camera, encodebin, padtype); + + /* there may be no available sink pad for encodebin in some situations: + * e.g. missing elements or incompatible padtype */ + if (sinkpad == NULL) { + gst_object_unref (srcpad); + return GST_PAD_LINK_REFUSED; + } + + ret = gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_CAPS); gst_object_unref (sinkpad); gst_object_unref (srcpad); @@ -911,18 +1320,171 @@ static void gst_camera_bin_src_notify_max_zoom_cb (GObject * self, GParamSpec * pspec, gpointer user_data) { - GstCameraBin *camera = (GstCameraBin *) user_data; + GstCameraBin2 *camera = (GstCameraBin2 *) user_data; g_object_get (self, "max-zoom", &camera->max_zoom, NULL); GST_DEBUG_OBJECT (camera, "Max zoom updated to %f", camera->max_zoom); g_object_notify (G_OBJECT (camera), "max-zoom"); } +static void +gst_camera_bin_src_notify_zoom_cb (GObject * self, GParamSpec * pspec, + gpointer user_data) +{ + GstCameraBin2 *camera = (GstCameraBin2 *) user_data; + + g_object_get (self, "zoom", &camera->zoom, NULL); + GST_DEBUG_OBJECT (camera, "Zoom updated to %f", camera->zoom); + g_object_notify (G_OBJECT (camera), "zoom"); +} + +static gboolean +gst_camera_bin_image_src_buffer_probe (GstPad * pad, GstBuffer * buf, + gpointer data) +{ + gboolean ret = TRUE; + GstCameraBin2 *camerabin = data; + GstEvent *evt; + gchar *location = NULL; + GstPad *peer; + GstTagList *tags; + + g_mutex_lock (camerabin->image_capture_mutex); + + /* Push pending image tags */ + if (camerabin->image_tags_list) { + tags = camerabin->image_tags_list->data; + camerabin->image_tags_list = + g_slist_delete_link (camerabin->image_tags_list, + camerabin->image_tags_list); + GST_DEBUG_OBJECT (camerabin, "Pushing tags from application: %" + GST_PTR_FORMAT, tags); + if (tags) { + peer = gst_pad_get_peer (pad); + gst_pad_send_event (peer, gst_event_new_tag (tags)); + gst_object_unref (peer); + } + } else { + GST_DEBUG_OBJECT (camerabin, "No tags from application to send"); + } + + /* Push image location event */ + if (camerabin->image_location_list) { + location = camerabin->image_location_list->data; + camerabin->image_location_list = + g_slist_delete_link (camerabin->image_location_list, + camerabin->image_location_list); + GST_DEBUG_OBJECT (camerabin, "Sending image location change to '%s'", + location); + } else { + GST_DEBUG_OBJECT (camerabin, "No filename location change to send"); + g_mutex_unlock (camerabin->image_capture_mutex); + return ret; + } + g_mutex_unlock (camerabin->image_capture_mutex); + + if (location) { + evt = gst_camera_bin_new_event_file_location (location); + peer = gst_pad_get_peer (pad); + gst_pad_send_event (peer, evt); + gst_object_unref (peer); + g_free (location); + } else { + /* This means we don't have to encode the capture, it is used for + * signaling the application just wants the preview */ + ret = FALSE; + GST_CAMERA_BIN2_PROCESSING_DEC (camerabin); + } + + return ret; +} + + +static gboolean +gst_camera_bin_image_sink_event_probe (GstPad * pad, GstEvent * event, + gpointer data) +{ + GstCameraBin2 *camerabin = data; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_DOWNSTREAM:{ + if (gst_event_has_name (event, "new-location")) { + const GstStructure *structure = gst_event_get_structure (event); + const gchar *filename = gst_structure_get_string (structure, + "location"); + + gst_element_set_state (camerabin->imagesink, GST_STATE_NULL); + GST_DEBUG_OBJECT (camerabin, "Setting filename to imagesink: %s", + filename); + g_object_set (camerabin->imagesink, "location", filename, NULL); + if (gst_element_set_state (camerabin->imagesink, GST_STATE_PLAYING) == + GST_STATE_CHANGE_FAILURE) { + /* Resets the latest state change return, that would be a failure + * and could cause problems in a camerabin2 state change */ + gst_element_set_state (camerabin->imagesink, GST_STATE_NULL); + } + } + } + break; + default: + break; + } + + return TRUE; +} + +static gboolean +gst_camera_bin_audio_src_data_probe (GstPad * pad, GstMiniObject * obj, + gpointer data) +{ + GstCameraBin2 *camera = data; + gboolean ret = TRUE; + + if (GST_IS_BUFFER (obj)) { + if (G_UNLIKELY (camera->audio_send_newseg)) { + GstBuffer *buf = GST_BUFFER_CAST (obj); + GstClockTime ts = GST_BUFFER_TIMESTAMP (buf); + GstPad *peer; + + if (!GST_CLOCK_TIME_IS_VALID (ts)) { + ts = 0; + } + + peer = gst_pad_get_peer (pad); + g_return_val_if_fail (peer != NULL, TRUE); + + gst_pad_send_event (peer, gst_event_new_new_segment (FALSE, 1.0, + GST_FORMAT_TIME, ts, -1, 0)); + + gst_object_unref (peer); + + camera->audio_send_newseg = FALSE; + } + } else { + GstEvent *event = GST_EVENT_CAST (obj); + if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) { + /* we only let an EOS pass when the user is stopping a capture */ + if (camera->audio_drop_eos) { + ret = FALSE; + } else { + camera->audio_drop_eos = TRUE; + /* should already be false, but reinforce in case no buffers get + * pushed */ + camera->audio_send_newseg = FALSE; + } + } else if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) { + ret = FALSE; + } + } + + return ret; +} + /** * gst_camera_bin_create_elements: - * @param camera: the #GstCameraBin + * @param camera: the #GstCameraBin2 * - * Creates all elements inside #GstCameraBin + * Creates all elements inside #GstCameraBin2 * * Each of the pads on the camera source is linked as follows: * .pad ! queue ! capsfilter ! correspondingbin @@ -931,29 +1493,46 @@ gst_camera_bin_src_notify_max_zoom_cb (GObject * self, GParamSpec * pspec, * the camera source pad. */ static gboolean -gst_camera_bin_create_elements (GstCameraBin * camera) +gst_camera_bin_create_elements (GstCameraBin2 * camera) { gboolean new_src = FALSE; gboolean new_audio_src = FALSE; gboolean has_audio; gboolean profile_switched = FALSE; + const gchar *missing_element_name; + gint encbin_flags = 0; if (!camera->elements_created) { - /* TODO check that elements created in _init were really created */ - /* TODO add proper missing plugin error handling */ + /* Check that elements created in _init were really created */ + if (!(camera->audio_capsfilter && camera->videobin_capsfilter && + camera->imagebin_capsfilter && camera->viewfinderbin_capsfilter)) { + missing_element_name = "capsfilter"; + goto missing_element; + } - camera->encodebin = gst_element_factory_make ("encodebin", NULL); - camera->encodebin_signal_id = g_signal_connect (camera->encodebin, - "element-added", (GCallback) encodebin_element_added, camera); + camera->video_encodebin = + gst_element_factory_make ("encodebin", "video-encodebin"); + if (!camera->video_encodebin) { + missing_element_name = "encodebin"; + goto missing_element; + } + camera->video_encodebin_signal_id = + g_signal_connect (camera->video_encodebin, "element-added", + (GCallback) encodebin_element_added, camera); camera->videosink = gst_element_factory_make ("filesink", "videobin-filesink"); + if (!camera->videosink) { + missing_element_name = "filesink"; + goto missing_element; + } g_object_set (camera->videosink, "async", FALSE, NULL); /* audio elements */ - camera->audio_queue = gst_element_factory_make ("queue", "audio-queue"); - camera->audio_convert = gst_element_factory_make ("audioconvert", - "audio-convert"); + if (!camera->audio_volume) { + missing_element_name = "volume"; + goto missing_element; + } if (camera->video_profile == NULL) { GstEncodingContainerProfile *prof; @@ -981,39 +1560,89 @@ gst_camera_bin_create_elements (GstCameraBin * camera) gst_caps_unref (caps); camera->video_profile = (GstEncodingProfile *) prof; - camera->profile_switch = TRUE; + camera->video_profile_switch = TRUE; + } + + camera->image_encodebin = + gst_element_factory_make ("encodebin", "image-encodebin"); + if (!camera->image_encodebin) { + missing_element_name = "encodebin"; + goto missing_element; + } + /* durations have no meaning for image captures */ + g_object_set (camera->image_encodebin, "queue-time-max", (guint64) 0, NULL); + + camera->image_encodebin_signal_id = + g_signal_connect (camera->image_encodebin, "element-added", + (GCallback) encodebin_element_added, camera); + + camera->imagesink = + gst_element_factory_make ("multifilesink", "imagebin-filesink"); + if (!camera->imagesink) { + missing_element_name = "multifilesink"; + goto missing_element; + } + g_object_set (camera->imagesink, "async", FALSE, "post-messages", TRUE, + NULL); + + if (camera->image_profile == NULL) { + GstEncodingContainerProfile *prof; + GstEncodingVideoProfile *vprof; + GstCaps *caps; + + caps = gst_caps_new_simple ("image/jpeg", NULL); + vprof = gst_encoding_video_profile_new (caps, NULL, NULL, 1); + gst_encoding_video_profile_set_variableframerate (vprof, TRUE); + + prof = gst_encoding_container_profile_new ("jpeg", "jpeg container", caps, + NULL); + gst_encoding_container_profile_add_profile (prof, + (GstEncodingProfile *) vprof); + + gst_caps_unref (caps); + camera->image_profile = (GstEncodingProfile *) prof; + camera->image_profile_switch = TRUE; } - camera->videobin_queue = - gst_element_factory_make ("queue", "videobin-queue"); - camera->imagebin_queue = - gst_element_factory_make ("queue", "imagebin-queue"); camera->viewfinderbin_queue = gst_element_factory_make ("queue", "viewfinderbin-queue"); + if (!camera->viewfinderbin_queue) { + missing_element_name = "queue"; + goto missing_element; + } g_object_set (camera->viewfinderbin_queue, "leaky", 2, "silent", TRUE, - NULL); - g_object_set (camera->imagebin_queue, "max-size-time", (guint64) 0, - "silent", TRUE, NULL); - g_object_set (camera->videobin_queue, "silent", TRUE, NULL); + "max-size-time", (guint64) 0, "max-size-bytes", (guint) 0, + "max-size-buffers", (guint) 1, NULL); gst_bin_add_many (GST_BIN_CAST (camera), - gst_object_ref (camera->encodebin), + gst_object_ref (camera->video_encodebin), gst_object_ref (camera->videosink), - gst_object_ref (camera->imagebin), - gst_object_ref (camera->videobin_queue), - gst_object_ref (camera->imagebin_queue), + gst_object_ref (camera->image_encodebin), + gst_object_ref (camera->imagesink), gst_object_ref (camera->viewfinderbin_queue), NULL); - /* Linking can be optimized TODO */ - gst_element_link_many (camera->videobin_queue, camera->videobin_capsfilter, - NULL); - gst_element_link (camera->encodebin, camera->videosink); + gst_element_link_pads_full (camera->video_encodebin, "src", + camera->videosink, "sink", GST_PAD_LINK_CHECK_NOTHING); + gst_element_link_pads_full (camera->image_encodebin, "src", + camera->imagesink, "sink", GST_PAD_LINK_CHECK_NOTHING); + gst_element_link_pads_full (camera->viewfinderbin_queue, "src", + camera->viewfinderbin_capsfilter, "sink", GST_PAD_LINK_CHECK_CAPS); + gst_element_link_pads_full (camera->viewfinderbin_capsfilter, "src", + camera->viewfinderbin, "sink", GST_PAD_LINK_CHECK_CAPS); + + { + /* set an event probe to watch for custom location changes */ + GstPad *srcpad; + + srcpad = gst_element_get_static_pad (camera->image_encodebin, "src"); + + gst_pad_add_event_probe (srcpad, + (GCallback) gst_camera_bin_image_sink_event_probe, camera); + + gst_object_unref (srcpad); + } - gst_element_link_many (camera->imagebin_queue, camera->imagebin_capsfilter, - camera->imagebin, NULL); - gst_element_link_many (camera->viewfinderbin_queue, - camera->viewfinderbin_capsfilter, camera->viewfinderbin, NULL); /* * Video can't get into playing as its internal filesink will open * a file for writing and leave it empty if unused. @@ -1024,21 +1653,56 @@ gst_camera_bin_create_elements (GstCameraBin * camera) * starting recording, so we should prepare the video bin. */ gst_element_set_locked_state (camera->videosink, TRUE); + gst_element_set_locked_state (camera->imagesink, TRUE); - g_object_set (camera->videosink, "location", camera->video_location, NULL); - g_object_set (camera->imagebin, "location", camera->image_location, NULL); + g_object_set (camera->videosink, "location", camera->location, NULL); + g_object_set (camera->imagesink, "location", camera->location, NULL); } - if (camera->profile_switch) { - GST_DEBUG_OBJECT (camera, "Switching encodebin's profile"); - g_object_set (camera->encodebin, "profile", camera->video_profile, NULL); - gst_camera_bin_link_encodebin (camera, camera->videobin_capsfilter, - VIDEO_PAD); - camera->profile_switch = FALSE; + + /* propagate the flags property by translating appropriate values + * to GstEncFlags values */ + if (camera->flags & GST_CAM_FLAG_NO_AUDIO_CONVERSION) + encbin_flags |= (1 << 0); + if (camera->flags & GST_CAM_FLAG_NO_VIDEO_CONVERSION) + encbin_flags |= (1 << 1); + g_object_set (camera->video_encodebin, "flags", encbin_flags, NULL); + + /* image encodebin has only video branch so disable its conversion elements + * appropriately */ + if (camera->flags & GST_CAM_FLAG_NO_IMAGE_CONVERSION) + g_object_set (camera->image_encodebin, "flags", (1 << 1), NULL); + + g_object_set (camera->viewfinderbin, "disable-converters", + camera->flags & GST_CAM_FLAG_NO_VIEWFINDER_CONVERSION ? TRUE : FALSE, + NULL); + + if (camera->video_profile_switch) { + GST_DEBUG_OBJECT (camera, "Switching video-encodebin's profile"); + g_object_set (camera->video_encodebin, "profile", camera->video_profile, + NULL); + if (GST_PAD_LINK_FAILED (gst_camera_bin_link_encodebin (camera, + camera->video_encodebin, camera->videobin_capsfilter, + VIDEO_PAD))) { + goto fail; + } + camera->video_profile_switch = FALSE; /* used to trigger relinking further down */ profile_switched = TRUE; } + if (camera->image_profile_switch) { + GST_DEBUG_OBJECT (camera, "Switching image-encodebin's profile"); + g_object_set (camera->image_encodebin, "profile", camera->image_profile, + NULL); + if (GST_PAD_LINK_FAILED (gst_camera_bin_link_encodebin (camera, + camera->image_encodebin, camera->imagebin_capsfilter, + VIDEO_PAD))) { + goto fail; + } + camera->image_profile_switch = FALSE; + } + /* check if we need to replace the camera src */ if (camera->src) { if (camera->user_src && camera->user_src != camera->src) { @@ -1073,32 +1737,49 @@ gst_camera_bin_create_elements (GstCameraBin * camera) "preview-caps", camera->preview_caps, "preview-filter", camera->preview_filter, NULL); } + g_signal_connect (G_OBJECT (camera->src), "notify::zoom", + (GCallback) gst_camera_bin_src_notify_zoom_cb, camera); g_object_set (camera->src, "zoom", camera->zoom, NULL); g_signal_connect (G_OBJECT (camera->src), "notify::max-zoom", (GCallback) gst_camera_bin_src_notify_max_zoom_cb, camera); } if (new_src) { + GstPad *imgsrc = gst_element_get_static_pad (camera->src, "imgsrc"); + gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->src)); camera->src_capture_notify_id = g_signal_connect (G_OBJECT (camera->src), "notify::ready-for-capture", G_CALLBACK (gst_camera_bin_src_notify_readyforcapture), camera); gst_element_link_pads (camera->src, "vfsrc", camera->viewfinderbin_queue, "sink"); - gst_element_link_pads (camera->src, "imgsrc", camera->imagebin_queue, - "sink"); - gst_element_link_pads (camera->src, "vidsrc", camera->videobin_queue, - "sink"); + + if (!gst_element_link_pads (camera->src, "imgsrc", + camera->imagebin_capsfilter, "sink")) { + GST_ERROR_OBJECT (camera, + "Failed to link camera source's imgsrc pad to image bin capsfilter"); + goto fail; + } + if (!gst_element_link_pads (camera->src, "vidsrc", + camera->videobin_capsfilter, "sink")) { + GST_ERROR_OBJECT (camera, + "Failed to link camera source's vidsrc pad to video bin capsfilter"); + goto fail; + } + + gst_pad_add_buffer_probe (imgsrc, + (GCallback) gst_camera_bin_image_src_buffer_probe, camera); + gst_object_unref (imgsrc); } gst_camera_bin_check_and_replace_filter (camera, &camera->image_filter, - camera->user_image_filter, camera->imagebin_queue, - camera->imagebin_capsfilter); + camera->user_image_filter, camera->src, camera->imagebin_capsfilter, + "imgsrc"); gst_camera_bin_check_and_replace_filter (camera, &camera->video_filter, - camera->user_video_filter, camera->videobin_queue, - camera->videobin_capsfilter); + camera->user_video_filter, camera->src, camera->videobin_capsfilter, + "vidsrc"); gst_camera_bin_check_and_replace_filter (camera, &camera->viewfinder_filter, camera->user_viewfinder_filter, camera->viewfinderbin_queue, - camera->viewfinderbin_capsfilter); + camera->viewfinderbin_capsfilter, NULL); /* check if we need to replace the camera audio src */ has_audio = gst_camera_bin_video_profile_has_audio (camera); @@ -1106,10 +1787,8 @@ gst_camera_bin_create_elements (GstCameraBin * camera) if ((camera->user_audio_src && camera->user_audio_src != camera->audio_src) || !has_audio) { gst_bin_remove (GST_BIN_CAST (camera), camera->audio_src); - gst_bin_remove (GST_BIN_CAST (camera), camera->audio_queue); gst_bin_remove (GST_BIN_CAST (camera), camera->audio_volume); gst_bin_remove (GST_BIN_CAST (camera), camera->audio_capsfilter); - gst_bin_remove (GST_BIN_CAST (camera), camera->audio_convert); gst_object_unref (camera->audio_src); camera->audio_src = NULL; } @@ -1121,6 +1800,10 @@ gst_camera_bin_create_elements (GstCameraBin * camera) } else { camera->audio_src = gst_element_factory_make (DEFAULT_AUDIO_SRC, "audiosrc"); + if (!camera->audio_src) { + missing_element_name = DEFAULT_AUDIO_SRC; + goto missing_element; + } } gst_element_set_locked_state (camera->audio_src, TRUE); @@ -1128,31 +1811,76 @@ gst_camera_bin_create_elements (GstCameraBin * camera) } if (new_audio_src) { + GstPad *srcpad; + + if (g_object_class_find_property (G_OBJECT_GET_CLASS (camera->audio_src), + "provide-clock")) { + g_object_set (camera->audio_src, "provide-clock", FALSE, NULL); + } gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->audio_src)); - gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->audio_queue)); gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->audio_volume)); gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->audio_capsfilter)); - gst_bin_add (GST_BIN_CAST (camera), gst_object_ref (camera->audio_convert)); - gst_element_link_many (camera->audio_src, camera->audio_queue, - camera->audio_volume, - camera->audio_capsfilter, camera->audio_convert, NULL); + gst_element_link_pads_full (camera->audio_src, "src", + camera->audio_volume, "sink", GST_PAD_LINK_CHECK_CAPS); + gst_element_link_pads_full (camera->audio_volume, "src", + camera->audio_capsfilter, "sink", GST_PAD_LINK_CHECK_CAPS); + + srcpad = gst_element_get_static_pad (camera->audio_src, "src"); + + /* 1) drop EOS for audiosrc elements that push them on state_changes + * (basesrc does this) + * 2) Fix newsegment events to have start time = first buffer ts */ + gst_pad_add_data_probe (srcpad, + (GCallback) gst_camera_bin_audio_src_data_probe, camera); + + gst_object_unref (srcpad); + } + if (has_audio) { + gst_camera_bin_check_and_replace_filter (camera, &camera->audio_filter, + camera->user_audio_filter, camera->audio_src, camera->audio_volume, + "src"); } if ((profile_switched && has_audio) || new_audio_src) { - gst_camera_bin_link_encodebin (camera, camera->audio_convert, AUDIO_PAD); + if (GST_PAD_LINK_FAILED (gst_camera_bin_link_encodebin (camera, + camera->video_encodebin, camera->audio_capsfilter, + AUDIO_PAD))) { + goto fail; + } } camera->elements_created = TRUE; return TRUE; + +missing_element: + gst_element_post_message (GST_ELEMENT_CAST (camera), + gst_missing_element_message_new (GST_ELEMENT_CAST (camera), + missing_element_name)); + GST_ELEMENT_ERROR (camera, CORE, MISSING_PLUGIN, + (_("Missing element '%s' - check your GStreamer installation."), + missing_element_name), (NULL)); + goto fail; + +fail: + /* FIXME properly clean up */ + return FALSE; +} + +static void +_gst_tag_list_free_maybe (GstTagList * taglist) +{ + if (taglist) + gst_tag_list_free (taglist); } static GstStateChangeReturn gst_camera_bin_change_state (GstElement * element, GstStateChange trans) { GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstCameraBin *camera = GST_CAMERA_BIN_CAST (element); + GstCameraBin2 *camera = GST_CAMERA_BIN2_CAST (element); + switch (trans) { case GST_STATE_CHANGE_NULL_TO_READY: @@ -1161,7 +1889,19 @@ gst_camera_bin_change_state (GstElement * element, GstStateChange trans) } break; case GST_STATE_CHANGE_READY_TO_PAUSED: - GST_CAMERA_BIN_RESET_PROCESSING_COUNTER (camera); + GST_CAMERA_BIN2_RESET_PROCESSING_COUNTER (camera); + camera->audio_drop_eos = TRUE; + camera->audio_send_newseg = FALSE; + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + if (GST_STATE (camera->videosink) >= GST_STATE_PAUSED) + gst_element_set_state (camera->videosink, GST_STATE_READY); + if (GST_STATE (camera->imagesink) >= GST_STATE_PAUSED) + gst_element_set_state (camera->imagesink, GST_STATE_READY); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_element_set_state (camera->videosink, GST_STATE_NULL); + gst_element_set_state (camera->imagesink, GST_STATE_NULL); break; default: break; @@ -1171,30 +1911,41 @@ gst_camera_bin_change_state (GstElement * element, GstStateChange trans) switch (trans) { case GST_STATE_CHANGE_PAUSED_TO_READY: - if (GST_STATE (camera->videosink) >= GST_STATE_PAUSED) - gst_element_set_state (camera->videosink, GST_STATE_READY); if (camera->audio_src && GST_STATE (camera->audio_src) >= GST_STATE_READY) gst_element_set_state (camera->audio_src, GST_STATE_READY); gst_tag_setter_reset_tags (GST_TAG_SETTER (camera)); - GST_CAMERA_BIN_RESET_PROCESSING_COUNTER (camera); + GST_CAMERA_BIN2_RESET_PROCESSING_COUNTER (camera); + camera->video_state = GST_CAMERA_BIN_VIDEO_IDLE; + + g_mutex_lock (camera->image_capture_mutex); + g_slist_foreach (camera->image_location_list, (GFunc) g_free, NULL); + g_slist_free (camera->image_location_list); + camera->image_location_list = NULL; + + g_slist_foreach (camera->image_tags_list, + (GFunc) _gst_tag_list_free_maybe, NULL); + g_slist_free (camera->image_tags_list); + camera->image_tags_list = NULL; + g_mutex_unlock (camera->image_capture_mutex); + + g_mutex_lock (camera->preview_list_mutex); + g_slist_foreach (camera->preview_location_list, (GFunc) g_free, NULL); + g_slist_free (camera->preview_location_list); + camera->preview_location_list = NULL; + g_mutex_unlock (camera->preview_list_mutex); /* explicitly set to READY as they might be outside of the bin */ - gst_element_set_state (camera->audio_queue, GST_STATE_READY); gst_element_set_state (camera->audio_volume, GST_STATE_READY); gst_element_set_state (camera->audio_capsfilter, GST_STATE_READY); - gst_element_set_state (camera->audio_convert, GST_STATE_READY); break; case GST_STATE_CHANGE_READY_TO_NULL: - gst_element_set_state (camera->videosink, GST_STATE_NULL); if (camera->audio_src) gst_element_set_state (camera->audio_src, GST_STATE_NULL); /* explicitly set to NULL as they might be outside of the bin */ - gst_element_set_state (camera->audio_queue, GST_STATE_NULL); gst_element_set_state (camera->audio_volume, GST_STATE_NULL); gst_element_set_state (camera->audio_capsfilter, GST_STATE_NULL); - gst_element_set_state (camera->audio_convert, GST_STATE_NULL); break; default: @@ -1204,24 +1955,55 @@ gst_camera_bin_change_state (GstElement * element, GstStateChange trans) return ret; } +static gboolean +gst_camera_bin_send_event (GstElement * element, GstEvent * event) +{ + GstCameraBin2 *camera = GST_CAMERA_BIN2_CAST (element); + gboolean res; + + /* avoid losing our ref to send_event */ + gst_event_ref (event); + + res = GST_ELEMENT_CLASS (parent_class)->send_event (element, event); + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + { + GstState current; + + if (camera->videosink) { + gst_element_get_state (camera->videosink, ¤t, NULL, 0); + if (current <= GST_STATE_READY) + gst_element_post_message (camera->videosink, + gst_message_new_eos (GST_OBJECT (camera->videosink))); + } + if (camera->imagesink) { + gst_element_get_state (camera->imagesink, ¤t, NULL, 0); + if (current <= GST_STATE_READY) + gst_element_post_message (camera->imagesink, + gst_message_new_eos (GST_OBJECT (camera->imagesink))); + } + break; + } + + default: + break; + } + + gst_event_unref (event); + return res; +} + static void -gst_camera_bin_set_location (GstCameraBin * camera, const gchar * location) +gst_camera_bin_set_location (GstCameraBin2 * camera, const gchar * location) { GST_DEBUG_OBJECT (camera, "Setting mode %d location to %s", camera->mode, location); - if (camera->mode == MODE_IMAGE) { - if (camera->imagebin) - g_object_set (camera->imagebin, "location", location, NULL); - g_free (camera->image_location); - camera->image_location = g_strdup (location); - } else { - g_free (camera->video_location); - camera->video_location = g_strdup (location); - } + g_free (camera->location); + camera->location = g_strdup (location); } static void -gst_camera_bin_set_audio_src (GstCameraBin * camera, GstElement * src) +gst_camera_bin_set_audio_src (GstCameraBin2 * camera, GstElement * src) { GST_DEBUG_OBJECT (GST_OBJECT (camera), "Setting audio source %" GST_PTR_FORMAT, src); @@ -1235,7 +2017,7 @@ gst_camera_bin_set_audio_src (GstCameraBin * camera, GstElement * src) } static void -gst_camera_bin_set_camera_src (GstCameraBin * camera, GstElement * src) +gst_camera_bin_set_camera_src (GstCameraBin2 * camera, GstElement * src) { GST_DEBUG_OBJECT (GST_OBJECT (camera), "Setting camera source %" GST_PTR_FORMAT, src); @@ -1252,7 +2034,7 @@ static void gst_camera_bin_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { - GstCameraBin *camera = GST_CAMERA_BIN_CAST (object); + GstCameraBin2 *camera = GST_CAMERA_BIN2_CAST (object); switch (prop_id) { case PROP_MODE: @@ -1276,8 +2058,12 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, "Setting audio capture caps to %" GST_PTR_FORMAT, gst_value_get_caps (value)); - g_object_set (camera->audio_capsfilter, "caps", - gst_value_get_caps (value), NULL); + if (G_LIKELY (camera->audio_capsfilter)) { + g_object_set (camera->audio_capsfilter, "caps", + gst_value_get_caps (value), NULL); + } else { + GST_WARNING_OBJECT (camera, "Audio capsfilter missing"); + } } break; case PROP_IMAGE_CAPTURE_CAPS:{ @@ -1292,13 +2078,18 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, "Setting image capture caps to %" GST_PTR_FORMAT, gst_value_get_caps (value)); + if (G_LIKELY (camera->imagebin_capsfilter)) { + g_object_set (camera->imagebin_capsfilter, "caps", + gst_value_get_caps (value), NULL); + } else { + GST_WARNING_OBJECT (camera, "Image capsfilter missing"); + } + /* set the capsfilter caps and notify the src to renegotiate */ - g_object_set (camera->imagebin_capsfilter, "caps", - gst_value_get_caps (value), NULL); if (pad) { GST_DEBUG_OBJECT (camera, "Pushing renegotiate on %s", GST_PAD_NAME (pad)); - GST_PAD_EVENTFUNC (pad) (pad, gst_camera_bin_new_event_renegotiate ()); + gst_pad_send_event (pad, gst_camera_bin_new_event_renegotiate ()); gst_object_unref (pad); } } @@ -1316,12 +2107,17 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, gst_value_get_caps (value)); /* set the capsfilter caps and notify the src to renegotiate */ - g_object_set (camera->videobin_capsfilter, "caps", - gst_value_get_caps (value), NULL); + if (G_LIKELY (camera->videobin_capsfilter)) { + g_object_set (camera->videobin_capsfilter, "caps", + gst_value_get_caps (value), NULL); + } else { + GST_WARNING_OBJECT (camera, "Video capsfilter missing"); + } + if (pad) { GST_DEBUG_OBJECT (camera, "Pushing renegotiate on %s", GST_PAD_NAME (pad)); - GST_PAD_EVENTFUNC (pad) (pad, gst_camera_bin_new_event_renegotiate ()); + gst_pad_send_event (pad, gst_camera_bin_new_event_renegotiate ()); gst_object_unref (pad); } } @@ -1339,12 +2135,17 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, gst_value_get_caps (value)); /* set the capsfilter caps and notify the src to renegotiate */ - g_object_set (camera->viewfinderbin_capsfilter, "caps", - gst_value_get_caps (value), NULL); + if (G_LIKELY (camera->viewfinderbin_capsfilter)) { + g_object_set (camera->viewfinderbin_capsfilter, "caps", + gst_value_get_caps (value), NULL); + } else { + GST_WARNING_OBJECT (camera, "Viewfinder capsfilter missing"); + } + if (pad) { GST_DEBUG_OBJECT (camera, "Pushing renegotiate on %s", GST_PAD_NAME (pad)); - GST_PAD_EVENTFUNC (pad) (pad, gst_camera_bin_new_event_renegotiate ()); + gst_pad_send_event (pad, gst_camera_bin_new_event_renegotiate ()); gst_object_unref (pad); } } @@ -1370,7 +2171,7 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, gst_encoding_profile_unref (camera->video_profile); camera->video_profile = (GstEncodingProfile *) gst_value_dup_mini_object (value); - camera->profile_switch = TRUE; + camera->video_profile_switch = TRUE; break; case PROP_IMAGE_FILTER: if (camera->user_image_filter) @@ -1401,6 +2202,12 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, g_object_set (camera->src, "preview-filter", camera->preview_filter, NULL); break; + case PROP_AUDIO_FILTER: + if (camera->user_audio_filter) + g_object_unref (camera->user_audio_filter); + + camera->user_audio_filter = g_value_dup_object (value); + break; case PROP_VIEWFINDER_SINK: g_object_set (camera->viewfinderbin, "video-sink", g_value_get_object (value), NULL); @@ -1416,13 +2223,15 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, if (camera->src) g_object_set (camera->src, "zoom", camera->zoom, NULL); break; - case PROP_IMAGE_CAPTURE_ENCODER: - g_object_set (camera->imagebin, "image-encoder", - g_value_get_object (value), NULL); + case PROP_IMAGE_ENCODING_PROFILE: + if (camera->image_profile) + gst_encoding_profile_unref (camera->image_profile); + camera->image_profile = + (GstEncodingProfile *) gst_value_dup_mini_object (value); + camera->image_profile_switch = TRUE; break; - case PROP_IMAGE_CAPTURE_MUXER: - g_object_set (camera->imagebin, "image-muxer", - g_value_get_object (value), NULL); + case PROP_FLAGS: + camera->flags = g_value_get_flags (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1434,24 +2243,20 @@ static void gst_camera_bin_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - GstCameraBin *camera = GST_CAMERA_BIN_CAST (object); + GstCameraBin2 *camera = GST_CAMERA_BIN2_CAST (object); switch (prop_id) { case PROP_MODE: g_value_set_enum (value, camera->mode); break; case PROP_LOCATION: - if (camera->mode == MODE_VIDEO) { - g_value_set_string (value, camera->video_location); - } else { - g_value_set_string (value, camera->image_location); - } + g_value_set_string (value, camera->location); break; case PROP_CAMERA_SRC: - g_value_set_object (value, camera->src); + g_value_set_object (value, camera->user_src); break; case PROP_AUDIO_SRC: - g_value_set_object (value, camera->audio_src); + g_value_set_object (value, camera->user_audio_src); break; case PROP_MUTE_AUDIO:{ gboolean mute; @@ -1508,28 +2313,44 @@ gst_camera_bin_get_property (GObject * object, guint prop_id, break; case PROP_AUDIO_CAPTURE_CAPS:{ GstCaps *caps = NULL; - g_object_get (camera->audio_capsfilter, "caps", &caps, NULL); + if (G_LIKELY (camera->audio_capsfilter)) { + g_object_get (camera->audio_capsfilter, "caps", &caps, NULL); + } else { + GST_WARNING ("Missing audio capsfilter"); + } gst_value_set_caps (value, caps); gst_caps_unref (caps); } break; case PROP_IMAGE_CAPTURE_CAPS:{ GstCaps *caps = NULL; - g_object_get (camera->imagebin_capsfilter, "caps", &caps, NULL); + if (G_LIKELY (camera->imagebin_capsfilter)) { + g_object_get (camera->imagebin_capsfilter, "caps", &caps, NULL); + } else { + GST_WARNING ("Missing imagebin capsfilter"); + } gst_value_set_caps (value, caps); gst_caps_unref (caps); } break; case PROP_VIDEO_CAPTURE_CAPS:{ GstCaps *caps = NULL; - g_object_get (camera->videobin_capsfilter, "caps", &caps, NULL); + if (G_LIKELY (camera->videobin_capsfilter)) { + g_object_get (camera->videobin_capsfilter, "caps", &caps, NULL); + } else { + GST_WARNING ("Missing imagebin capsfilter"); + } gst_value_set_caps (value, caps); gst_caps_unref (caps); } break; case PROP_VIEWFINDER_CAPS:{ GstCaps *caps = NULL; - g_object_get (camera->viewfinderbin_capsfilter, "caps", &caps, NULL); + if (G_LIKELY (camera->viewfinderbin_capsfilter)) { + g_object_get (camera->viewfinderbin_capsfilter, "caps", &caps, NULL); + } else { + GST_WARNING ("Missing imagebin capsfilter"); + } gst_value_set_caps (value, caps); gst_caps_unref (caps); } @@ -1548,16 +2369,20 @@ gst_camera_bin_get_property (GObject * object, guint prop_id, } break; case PROP_VIDEO_FILTER: - if (camera->video_filter) - g_value_set_object (value, camera->video_filter); + if (camera->user_video_filter) + g_value_set_object (value, camera->user_video_filter); break; case PROP_IMAGE_FILTER: - if (camera->image_filter) - g_value_set_object (value, camera->image_filter); + if (camera->user_image_filter) + g_value_set_object (value, camera->user_image_filter); break; case PROP_VIEWFINDER_FILTER: - if (camera->viewfinder_filter) - g_value_set_object (value, camera->viewfinder_filter); + if (camera->user_viewfinder_filter) + g_value_set_object (value, camera->user_viewfinder_filter); + break; + case PROP_AUDIO_FILTER: + if (camera->user_audio_filter) + g_value_set_object (value, camera->user_audio_filter); break; case PROP_PREVIEW_FILTER: if (camera->preview_filter) @@ -1576,24 +2401,19 @@ gst_camera_bin_get_property (GObject * object, guint prop_id, case PROP_MAX_ZOOM: g_value_set_float (value, camera->max_zoom); break; - case PROP_IMAGE_CAPTURE_ENCODER:{ - GstElement *enc; - - g_object_get (camera->imagebin, "image-encoder", &enc, NULL); - g_value_take_object (value, enc); - break; - } - case PROP_IMAGE_CAPTURE_MUXER:{ - GstElement *mux; - - g_object_get (camera->imagebin, "image-muxer", &mux, NULL); - g_value_take_object (value, mux); + case PROP_IMAGE_ENCODING_PROFILE: + if (camera->image_profile) { + gst_value_set_mini_object (value, + (GstMiniObject *) camera->image_profile); + } break; - } case PROP_IDLE: g_value_set_boolean (value, g_atomic_int_get (&camera->processing_counter) == 0); break; + case PROP_FLAGS: + g_value_set_flags (value, camera->flags); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1601,10 +2421,10 @@ gst_camera_bin_get_property (GObject * object, guint prop_id, } gboolean -gst_camera_bin_plugin_init (GstPlugin * plugin) +gst_camera_bin2_plugin_init (GstPlugin * plugin) { GST_DEBUG_CATEGORY_INIT (gst_camera_bin_debug, "camerabin2", 0, "CameraBin2"); return gst_element_register (plugin, "camerabin2", GST_RANK_NONE, - gst_camera_bin_get_type ()); + gst_camera_bin2_get_type ()); } diff --git a/gst/camerabin2/gstcamerabin2.h b/gst/camerabin2/gstcamerabin2.h index 05961e2..29e1c9a 100644 --- a/gst/camerabin2/gstcamerabin2.h +++ b/gst/camerabin2/gstcamerabin2.h @@ -16,25 +16,47 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ -#ifndef _GST_CAMERA_BIN_H_ -#define _GST_CAMERA_BIN_H_ +#ifndef _GST_CAMERA_BIN2_H_ +#define _GST_CAMERA_BIN2_H_ #include #include G_BEGIN_DECLS -#define GST_TYPE_CAMERA_BIN (gst_camera_bin_get_type()) -#define GST_CAMERA_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CAMERA_BIN,GstCameraBin)) -#define GST_CAMERA_BIN_CAST(obj) ((GstCameraBin *) obj) -#define GST_CAMERA_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CAMERA_BIN,GstCameraBinClass)) -#define GST_IS_CAMERA_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CAMERA_BIN)) -#define GST_IS_CAMERA_BIN_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CAMERA_BIN)) +#define GST_TYPE_CAMERA_BIN2 (gst_camera_bin2_get_type()) +#define GST_CAMERA_BIN2(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CAMERA_BIN2,GstCameraBin2)) +#define GST_CAMERA_BIN2_CAST(obj) ((GstCameraBin2 *) obj) +#define GST_CAMERA_BIN2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CAMERA_BIN2,GstCameraBin2Class)) +#define GST_IS_CAMERA_BIN2(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CAMERA_BIN2)) +#define GST_IS_CAMERA_BIN2_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CAMERA_BIN2)) -typedef struct _GstCameraBin GstCameraBin; -typedef struct _GstCameraBinClass GstCameraBinClass; +typedef enum +{ + /* matches GstEncFlags GST_ENC_FLAG_NO_AUDIO_CONVERSION in encodebin */ + GST_CAM_FLAG_NO_AUDIO_CONVERSION = (1 << 0), + /* matches GstEncFlags GST_ENC_FLAG_NO_VIDEO_CONVERSION in encodebin */ + GST_CAM_FLAG_NO_VIDEO_CONVERSION = (1 << 1), + /* maps to 'disable-converters' property in viewfinderbin */ + GST_CAM_FLAG_NO_VIEWFINDER_CONVERSION = (1 << 2), + /* maps to GstEncFlags GST_ENC_FLAG_NO_VIDEO_CONVERSION in the image bin's + * encodebin */ + GST_CAM_FLAG_NO_IMAGE_CONVERSION = (1 << 3) +} GstCamFlags; + + +typedef enum _GstCameraBinVideoState +{ + GST_CAMERA_BIN_VIDEO_IDLE=0, + GST_CAMERA_BIN_VIDEO_STARTING=1, + GST_CAMERA_BIN_VIDEO_RECORDING=2, + GST_CAMERA_BIN_VIDEO_FINISHING=3 +} GstCameraBinVideoState; -struct _GstCameraBin +typedef struct _GstCameraBin2 GstCameraBin2; +typedef struct _GstCameraBin2Class GstCameraBin2Class; + +struct _GstCameraBin2 { GstPipeline pipeline; @@ -42,67 +64,100 @@ struct _GstCameraBin GstElement *user_src; gulong src_capture_notify_id; - GstElement *encodebin; - gulong encodebin_signal_id; + GstElement *video_encodebin; + gulong video_encodebin_signal_id; GstElement *videosink; - gulong videosink_probe; - GstElement *videobin_queue; GstElement *videobin_capsfilter; GstElement *viewfinderbin; GstElement *viewfinderbin_queue; GstElement *viewfinderbin_capsfilter; - GstElement *imagebin; - GstElement *imagebin_queue; + GstElement *image_encodebin; + gulong image_encodebin_signal_id; + GstElement *imagesink; GstElement *imagebin_capsfilter; GstElement *video_filter; GstElement *image_filter; GstElement *viewfinder_filter; + GstElement *audio_filter; GstElement *user_video_filter; GstElement *user_image_filter; GstElement *user_viewfinder_filter; + GstElement *user_audio_filter; GstElement *audio_src; GstElement *user_audio_src; - GstElement *audio_queue; GstElement *audio_volume; GstElement *audio_capsfilter; - GstElement *audio_convert; gint processing_counter; /* atomic int */ - /* Index of the auto incrementing file index for video recordings */ - gint video_index; - - gboolean profile_switch; + /* Index of the auto incrementing file index for captures */ + gint capture_index; + + GMutex *image_capture_mutex; + /* stores list of image locations to be pushed to the image sink + * as file location change notifications, they are pushed before + * each buffer capture */ + GSList *image_location_list; + /* Store also tags and push them before each captured image */ + GSList *image_tags_list; + + /* + * Similar to above, but used for giving names to previews + * + * Need to protect with a mutex as this list is used when the + * camera-source posts a preview image. As we have no control + * on how the camera-source will behave (we can only tell how + * it should), the preview location list might be used in an + * inconsistent way. + * One example is the camera-source posting a preview image after + * camerabin2 was put to ready, when this preview list will be + * freed and set to NULL. Concurrent access might lead to crashes in + * this situation. (Concurrency from the state-change freeing the + * list and the message handling function looking at preview names) + */ + GSList *preview_location_list; + GMutex *preview_list_mutex; + + gboolean video_profile_switch; + gboolean image_profile_switch; + + gboolean audio_drop_eos; + gboolean audio_send_newseg; + + GMutex *video_capture_mutex; + GCond *video_state_cond; + GstCameraBinVideoState video_state; /* properties */ gint mode; - gchar *video_location; - gchar *image_location; + gchar *location; gboolean post_previews; GstCaps *preview_caps; GstElement *preview_filter; GstEncodingProfile *video_profile; + GstEncodingProfile *image_profile; gfloat zoom; gfloat max_zoom; + GstCamFlags flags; gboolean elements_created; }; -struct _GstCameraBinClass +struct _GstCameraBin2Class { GstPipelineClass pipeline_class; /* Action signals */ - void (*start_capture) (GstCameraBin * camera); - void (*stop_capture) (GstCameraBin * camera); + void (*start_capture) (GstCameraBin2 * camera); + void (*stop_capture) (GstCameraBin2 * camera); }; -GType gst_camera_bin_get_type (void); -gboolean gst_camera_bin_plugin_init (GstPlugin * plugin); +GType gst_camera_bin2_get_type (void); +gboolean gst_camera_bin2_plugin_init (GstPlugin * plugin); G_END_DECLS diff --git a/gst/camerabin2/gstimagecapturebin.c b/gst/camerabin2/gstimagecapturebin.c deleted file mode 100644 index b4aba2a..0000000 --- a/gst/camerabin2/gstimagecapturebin.c +++ /dev/null @@ -1,352 +0,0 @@ -/* GStreamer - * Copyright (C) 2010 Thiago Santos - * - * 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-gstimagecapturebin - * - * The gstimagecapturebin element does FIXME stuff. - * - * - * Example launch line - * |[ - * gst-launch -v videotestsrc num-buffers=3 ! imagecapturebin - * ]| - * FIXME Describe what the pipeline does. - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gstimagecapturebin.h" -#include "camerabingeneral.h" - -/* prototypes */ - - -enum -{ - PROP_0, - PROP_LOCATION, - PROP_ENCODER, - PROP_MUXER -}; - -#define DEFAULT_LOCATION "img_%d" -#define DEFAULT_COLORSPACE "ffmpegcolorspace" -#define DEFAULT_ENCODER "jpegenc" -#define DEFAULT_MUXER "jifmux" -#define DEFAULT_SINK "multifilesink" - -/* pad templates */ - -static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-yuv; video/x-raw-rgb") - ); - -/* class initialization */ - -GST_BOILERPLATE (GstImageCaptureBin, gst_image_capture_bin, GstBin, - GST_TYPE_BIN); - -/* GObject callbacks */ -static void gst_image_capture_bin_dispose (GObject * object); -static void gst_image_capture_bin_finalize (GObject * object); - -/* Element class functions */ -static GstStateChangeReturn -gst_image_capture_bin_change_state (GstElement * element, GstStateChange trans); - -static void -gst_image_capture_bin_set_encoder (GstImageCaptureBin * imagebin, - GstElement * encoder) -{ - GST_DEBUG_OBJECT (GST_OBJECT (imagebin), - "Setting image encoder %" GST_PTR_FORMAT, encoder); - - if (imagebin->user_encoder) - g_object_unref (imagebin->user_encoder); - - if (encoder) - g_object_ref (encoder); - - imagebin->user_encoder = encoder; -} - -static void -gst_image_capture_bin_set_muxer (GstImageCaptureBin * imagebin, - GstElement * muxer) -{ - GST_DEBUG_OBJECT (GST_OBJECT (imagebin), - "Setting image muxer %" GST_PTR_FORMAT, muxer); - - if (imagebin->user_muxer) - g_object_unref (imagebin->user_muxer); - - if (muxer) - g_object_ref (muxer); - - imagebin->user_muxer = muxer; -} - -static void -gst_image_capture_bin_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstImageCaptureBin *imagebin = GST_IMAGE_CAPTURE_BIN_CAST (object); - - switch (prop_id) { - case PROP_LOCATION: - g_free (imagebin->location); - imagebin->location = g_value_dup_string (value); - GST_DEBUG_OBJECT (imagebin, "setting location to %s", imagebin->location); - if (imagebin->sink) { - g_object_set (imagebin->sink, "location", imagebin->location, NULL); - } - break; - case PROP_ENCODER: - gst_image_capture_bin_set_encoder (imagebin, g_value_get_object (value)); - break; - case PROP_MUXER: - gst_image_capture_bin_set_muxer (imagebin, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_image_capture_bin_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstImageCaptureBin *imagebin = GST_IMAGE_CAPTURE_BIN_CAST (object); - - switch (prop_id) { - case PROP_LOCATION: - g_value_set_string (value, imagebin->location); - break; - case PROP_ENCODER: - g_value_set_object (value, imagebin->encoder); - break; - case PROP_MUXER: - g_value_set_object (value, imagebin->muxer); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_image_capture_bin_finalize (GObject * object) -{ - GstImageCaptureBin *imgbin = GST_IMAGE_CAPTURE_BIN_CAST (object); - - g_free (imgbin->location); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -gst_image_capture_bin_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_template)); - - gst_element_class_set_details_simple (element_class, "Image Capture Bin", - "Sink/Video", "Image Capture Bin used in camerabin2", - "Thiago Santos "); -} - -static void -gst_image_capture_bin_class_init (GstImageCaptureBinClass * klass) -{ - GObjectClass *gobject_class; - GstElementClass *element_class; - - gobject_class = G_OBJECT_CLASS (klass); - element_class = GST_ELEMENT_CLASS (klass); - - gobject_class->dispose = gst_image_capture_bin_dispose; - gobject_class->finalize = gst_image_capture_bin_finalize; - gobject_class->set_property = gst_image_capture_bin_set_property; - gobject_class->get_property = gst_image_capture_bin_get_property; - - element_class->change_state = - GST_DEBUG_FUNCPTR (gst_image_capture_bin_change_state); - - g_object_class_install_property (gobject_class, PROP_LOCATION, - g_param_spec_string ("location", "Location", - "Location to save the captured files. A %%d can be used as a " - "placeholder for a capture count", - DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (gobject_class, PROP_ENCODER, - g_param_spec_object ("image-encoder", "Image encoder", - "Image encoder GStreamer element (default is jpegenc)", - GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (gobject_class, PROP_MUXER, - g_param_spec_object ("image-muxer", "Image muxer", - "Image muxer GStreamer element (default is jifmux)", - GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -} - -static void -gst_image_capture_bin_init (GstImageCaptureBin * imagebin, - GstImageCaptureBinClass * imagebin_class) -{ - GstPadTemplate *tmpl; - - tmpl = gst_static_pad_template_get (&sink_template); - imagebin->ghostpad = gst_ghost_pad_new_no_target_from_template ("sink", tmpl); - gst_object_unref (tmpl); - gst_element_add_pad (GST_ELEMENT_CAST (imagebin), imagebin->ghostpad); - - imagebin->sink = NULL; - - imagebin->location = g_strdup (DEFAULT_LOCATION); - imagebin->encoder = NULL; - imagebin->user_encoder = NULL; - imagebin->muxer = NULL; - imagebin->user_muxer = NULL; -} - -static void -gst_image_capture_bin_dispose (GObject * object) -{ - GstImageCaptureBin *imagebin = GST_IMAGE_CAPTURE_BIN_CAST (object); - - if (imagebin->user_encoder) { - gst_object_unref (imagebin->user_encoder); - imagebin->user_encoder = NULL; - } - - if (imagebin->user_muxer) { - gst_object_unref (imagebin->user_muxer); - imagebin->user_muxer = NULL; - } - G_OBJECT_CLASS (parent_class)->dispose ((GObject *) imagebin); -} - -static gboolean -gst_image_capture_bin_create_elements (GstImageCaptureBin * imagebin) -{ - GstElement *colorspace; - GstPad *pad = NULL; - - if (imagebin->elements_created) - return TRUE; - - /* create elements */ - colorspace = - gst_camerabin_create_and_add_element (GST_BIN (imagebin), - DEFAULT_COLORSPACE, "imagebin-colorspace"); - if (!colorspace) - goto error; - - if (imagebin->user_encoder) { - imagebin->encoder = imagebin->user_encoder; - if (!gst_camerabin_add_element (GST_BIN (imagebin), imagebin->encoder)) { - goto error; - } - } else { - imagebin->encoder = - gst_camerabin_create_and_add_element (GST_BIN (imagebin), - DEFAULT_ENCODER, "imagebin-encoder"); - if (!imagebin->encoder) - goto error; - } - - if (imagebin->user_muxer) { - imagebin->muxer = imagebin->user_muxer; - if (!gst_camerabin_add_element (GST_BIN (imagebin), imagebin->muxer)) { - goto error; - } - } else { - imagebin->muxer = - gst_camerabin_create_and_add_element (GST_BIN (imagebin), - DEFAULT_MUXER, "imagebin-muxer"); - if (!imagebin->muxer) - goto error; - } - - imagebin->sink = - gst_camerabin_create_and_add_element (GST_BIN (imagebin), DEFAULT_SINK, - "imagebin-sink"); - if (!imagebin->sink) - goto error; - - g_object_set (imagebin->sink, "location", imagebin->location, "async", FALSE, - "post-messages", TRUE, NULL); - - /* add ghostpad */ - pad = gst_element_get_static_pad (colorspace, "sink"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (imagebin->ghostpad), pad)) - goto error; - gst_object_unref (pad); - - imagebin->elements_created = TRUE; - return TRUE; - -error: - if (pad) - gst_object_unref (pad); - return FALSE; -} - -static GstStateChangeReturn -gst_image_capture_bin_change_state (GstElement * element, GstStateChange trans) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstImageCaptureBin *imagebin = GST_IMAGE_CAPTURE_BIN_CAST (element); - - switch (trans) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!gst_image_capture_bin_create_elements (imagebin)) { - return GST_STATE_CHANGE_FAILURE; - } - break; - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, trans); - - switch (trans) { - case GST_STATE_CHANGE_READY_TO_NULL: - break; - default: - break; - } - - return ret; -} - -gboolean -gst_image_capture_bin_plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "imagecapturebin", GST_RANK_NONE, - gst_image_capture_bin_get_type ()); -} diff --git a/gst/camerabin2/gstimagecapturebin.h b/gst/camerabin2/gstimagecapturebin.h deleted file mode 100644 index 98a28e9..0000000 --- a/gst/camerabin2/gstimagecapturebin.h +++ /dev/null @@ -1,63 +0,0 @@ -/* GStreamer - * Copyright (C) 2010 Thiago Santos - * - * 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_IMAGE_CAPTURE_BIN_H_ -#define _GST_IMAGE_CAPTURE_BIN_H_ - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_IMAGE_CAPTURE_BIN (gst_image_capture_bin_get_type()) -#define GST_IMAGE_CAPTURE_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_IMAGE_CAPTURE_BIN,GstImageCaptureBin)) -#define GST_IMAGE_CAPTURE_BIN_CAST(obj) ((GstImageCaptureBin *) obj) -#define GST_IMAGE_CAPTURE_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_IMAGE_CAPTURE_BIN,GstImageCaptureBinClass)) -#define GST_IS_IMAGE_CAPTURE_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_IMAGE_CAPTURE_BIN)) -#define GST_IS_IMAGE_CAPTURE_BIN_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_IMAGE_CAPTURE_BIN)) - -typedef struct _GstImageCaptureBin GstImageCaptureBin; -typedef struct _GstImageCaptureBinClass GstImageCaptureBinClass; - -struct _GstImageCaptureBin -{ - GstBin bin; - - GstPad *ghostpad; - GstElement *sink; - - /* props */ - gchar *location; - GstElement *encoder; - GstElement *user_encoder; - GstElement *muxer; - GstElement *user_muxer; - - gboolean elements_created; -}; - -struct _GstImageCaptureBinClass -{ - GstBinClass bin_class; -}; - -GType gst_image_capture_bin_get_type (void); -gboolean gst_image_capture_bin_plugin_init (GstPlugin * plugin); - -G_END_DECLS - -#endif diff --git a/gst/camerabin2/gstplugin.c b/gst/camerabin2/gstplugin.c index 56fa78f..c4eaf2f 100644 --- a/gst/camerabin2/gstplugin.c +++ b/gst/camerabin2/gstplugin.c @@ -24,7 +24,6 @@ #endif #include "gstviewfinderbin.h" -#include "gstimagecapturebin.h" #include "gstwrappercamerabinsrc.h" #include "gstcamerabin2.h" @@ -33,11 +32,9 @@ plugin_init (GstPlugin * plugin) { if (!gst_viewfinder_bin_plugin_init (plugin)) return FALSE; - if (!gst_image_capture_bin_plugin_init (plugin)) - return FALSE; if (!gst_wrapper_camera_bin_src_plugin_init (plugin)) return FALSE; - if (!gst_camera_bin_plugin_init (plugin)) + if (!gst_camera_bin2_plugin_init (plugin)) return FALSE; return TRUE; diff --git a/gst/camerabin2/gstviewfinderbin.c b/gst/camerabin2/gstviewfinderbin.c index e03631e..abf996b 100644 --- a/gst/camerabin2/gstviewfinderbin.c +++ b/gst/camerabin2/gstviewfinderbin.c @@ -35,19 +35,23 @@ #endif #include "gstviewfinderbin.h" +#include "camerabingeneral.h" +#include + +#include GST_DEBUG_CATEGORY_STATIC (gst_viewfinder_bin_debug); #define GST_CAT_DEFAULT gst_viewfinder_bin_debug -/* prototypes */ - - enum { PROP_0, PROP_VIDEO_SINK, + PROP_DISABLE_CONVERTERS }; +#define DEFAULT_DISABLE_CONVERTERS FALSE + /* pad templates */ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", @@ -96,8 +100,8 @@ gst_viewfinder_bin_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_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Viewfinder Bin", "Sink/Video", "Viewfinder Bin used in camerabin2", @@ -124,6 +128,12 @@ gst_viewfinder_bin_class_init (GstViewfinderBinClass * klass) g_param_spec_object ("video-sink", "Video Sink", "the video output element to use (NULL = default)", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_klass, PROP_DISABLE_CONVERTERS, + g_param_spec_boolean ("disable-converters", "Disable conversion elements", + "If video converters should be disabled (must be set on NULL)", + DEFAULT_DISABLE_CONVERTERS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } static void @@ -136,6 +146,8 @@ gst_viewfinder_bin_init (GstViewfinderBin * viewfinderbin, gst_object_unref (templ); gst_element_add_pad (GST_ELEMENT_CAST (viewfinderbin), viewfinderbin->ghostpad); + + viewfinderbin->disable_converters = DEFAULT_DISABLE_CONVERTERS; } static gboolean @@ -143,41 +155,15 @@ gst_viewfinder_bin_create_elements (GstViewfinderBin * vfbin) { GstElement *csp = NULL; GstElement *videoscale = NULL; - GstPad *pad = NULL; - gboolean added = FALSE; + GstPad *firstpad = NULL; + const gchar *missing_element_name; + gboolean newsink = FALSE; + gboolean updated_converters = FALSE; GST_DEBUG_OBJECT (vfbin, "Creating internal elements"); - if (!vfbin->elements_created) { - /* create elements */ - csp = gst_element_factory_make ("ffmpegcolorspace", "vfbin-csp"); - if (!csp) - goto error; - - videoscale = gst_element_factory_make ("videoscale", "vfbin-videoscale"); - if (!videoscale) - goto error; - - GST_DEBUG_OBJECT (vfbin, "Internal elements created, proceding to linking"); - - /* add and link */ - gst_bin_add_many (GST_BIN_CAST (vfbin), csp, videoscale, NULL); - added = TRUE; - if (!gst_element_link (csp, videoscale)) - goto error; - - /* add ghostpad */ - pad = gst_element_get_static_pad (csp, "sink"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (vfbin->ghostpad), pad)) - goto error; - gst_object_unref (pad); - - vfbin->elements_created = TRUE; - GST_DEBUG_OBJECT (vfbin, "Elements succesfully created and linked"); - } - + /* First check if we need to add/replace the internal sink */ if (vfbin->video_sink) { - /* check if we need to replace the current one */ if (vfbin->user_video_sink && vfbin->video_sink != vfbin->user_video_sink) { gst_bin_remove (GST_BIN_CAST (vfbin), vfbin->video_sink); gst_object_unref (vfbin->video_sink); @@ -188,35 +174,115 @@ gst_viewfinder_bin_create_elements (GstViewfinderBin * vfbin) if (!vfbin->video_sink) { if (vfbin->user_video_sink) vfbin->video_sink = gst_object_ref (vfbin->user_video_sink); - else + else { vfbin->video_sink = gst_element_factory_make ("autovideosink", "vfbin-sink"); + if (!vfbin->video_sink) { + missing_element_name = "autovideosink"; + goto missing_element; + } + } gst_bin_add (GST_BIN_CAST (vfbin), gst_object_ref (vfbin->video_sink)); + newsink = TRUE; + } + + /* check if we want add/remove the conversion elements */ + if (vfbin->elements_created && vfbin->disable_converters) { + /* remove the elements, user doesn't want them */ + + gst_ghost_pad_set_target (GST_GHOST_PAD (vfbin->ghostpad), NULL); + csp = gst_bin_get_by_name (GST_BIN_CAST (vfbin), "vfbin-csp"); + videoscale = gst_bin_get_by_name (GST_BIN_CAST (vfbin), "vfbin-videoscale"); + + gst_bin_remove (GST_BIN_CAST (vfbin), csp); + gst_bin_remove (GST_BIN_CAST (vfbin), videoscale); + + gst_object_unref (csp); + gst_object_unref (videoscale); - if (!videoscale) + updated_converters = TRUE; + } else if (!vfbin->elements_created && !vfbin->disable_converters) { + gst_ghost_pad_set_target (GST_GHOST_PAD (vfbin->ghostpad), NULL); + + /* add the elements, user wants them */ + csp = gst_element_factory_make ("ffmpegcolorspace", "vfbin-csp"); + if (!csp) { + missing_element_name = "ffmpegcolorspace"; + goto missing_element; + } + gst_bin_add (GST_BIN_CAST (vfbin), csp); + + videoscale = gst_element_factory_make ("videoscale", "vfbin->videoscale"); + if (!videoscale) { + missing_element_name = "videoscale"; + goto missing_element; + } + gst_bin_add (GST_BIN_CAST (vfbin), videoscale); + + gst_element_link_pads_full (csp, "src", videoscale, "sink", + GST_PAD_LINK_CHECK_NOTHING); + + vfbin->elements_created = TRUE; + GST_DEBUG_OBJECT (vfbin, "Elements succesfully created and linked"); + + updated_converters = TRUE; + } + /* otherwise, just leave it as is */ + + /* if sink was replaced -> link it to the internal converters */ + if (newsink && !vfbin->disable_converters) { + gboolean unref = FALSE; + if (!videoscale) { videoscale = gst_bin_get_by_name (GST_BIN_CAST (vfbin), - "vfbin-videoscale"); + "vfbin-videscale"); + unref = TRUE; + } - if (!gst_element_link_pads (videoscale, "src", vfbin->video_sink, "sink")) { - GST_WARNING_OBJECT (vfbin, "Failed to link the new sink"); + if (!gst_element_link_pads_full (videoscale, "src", vfbin->video_sink, + "sink", GST_PAD_LINK_CHECK_CAPS)) { + GST_ELEMENT_ERROR (vfbin, CORE, NEGOTIATION, (NULL), + ("linking videoscale and viewfindersink failed")); } + + if (unref) + gst_object_unref (videoscale); + videoscale = NULL; + } + + /* Check if we need a new ghostpad target */ + if (updated_converters || (newsink && vfbin->disable_converters)) { + if (vfbin->disable_converters) { + firstpad = gst_element_get_static_pad (vfbin->video_sink, "sink"); + } else { + /* csp should always exist at this point */ + firstpad = gst_element_get_static_pad (csp, "sink"); + } + } + + /* need to change the ghostpad target if firstpad is set */ + if (firstpad) { + if (!gst_ghost_pad_set_target (GST_GHOST_PAD (vfbin->ghostpad), firstpad)) + goto error; + gst_object_unref (firstpad); + firstpad = NULL; } return TRUE; +missing_element: + gst_element_post_message (GST_ELEMENT_CAST (vfbin), + gst_missing_element_message_new (GST_ELEMENT_CAST (vfbin), + missing_element_name)); + GST_ELEMENT_ERROR (vfbin, CORE, MISSING_PLUGIN, + (_("Missing element '%s' - check your GStreamer installation."), + missing_element_name), (NULL)); + goto error; + error: GST_WARNING_OBJECT (vfbin, "Creating internal elements failed"); - if (pad) - gst_object_unref (pad); - if (!added) { - if (csp) - gst_object_unref (csp); - if (videoscale) - gst_object_unref (videoscale); - } else { - gst_bin_remove_many (GST_BIN_CAST (vfbin), csp, videoscale, NULL); - } + if (firstpad) + gst_object_unref (firstpad); return FALSE; } @@ -273,6 +339,9 @@ gst_viewfinder_bin_set_property (GObject * object, guint prop_id, case PROP_VIDEO_SINK: gst_viewfinder_bin_set_video_sink (vfbin, g_value_get_object (value)); break; + case PROP_DISABLE_CONVERTERS: + vfbin->disable_converters = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -289,6 +358,9 @@ gst_viewfinder_bin_get_property (GObject * object, guint prop_id, case PROP_VIDEO_SINK: g_value_set_object (value, vfbin->video_sink); break; + case PROP_DISABLE_CONVERTERS: + g_value_set_boolean (value, vfbin->disable_converters); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; diff --git a/gst/camerabin2/gstviewfinderbin.h b/gst/camerabin2/gstviewfinderbin.h index 6369219..33b2944 100644 --- a/gst/camerabin2/gstviewfinderbin.h +++ b/gst/camerabin2/gstviewfinderbin.h @@ -43,6 +43,8 @@ struct _GstViewfinderBin GstElement *user_video_sink; gboolean elements_created; + + gboolean disable_converters; }; struct _GstViewfinderBinClass diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 2cf6ac4..e1d481d 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -31,13 +31,16 @@ # include #endif +#include + #include "gstwrappercamerabinsrc.h" #include "camerabingeneral.h" enum { PROP_0, - PROP_VIDEO_SRC + PROP_VIDEO_SRC, + PROP_VIDEO_SRC_FILTER }; GST_DEBUG_CATEGORY (wrapper_camera_bin_src_debug); @@ -58,6 +61,10 @@ gst_wrapper_camera_bin_src_dispose (GObject * object) gst_object_unref (self->app_vid_src); self->app_vid_src = NULL; } + if (self->app_vid_filter) { + gst_object_unref (self->app_vid_filter); + self->app_vid_filter = NULL; + } gst_caps_replace (&self->image_capture_caps, NULL); G_OBJECT_CLASS (parent_class)->dispose (object); @@ -89,6 +96,19 @@ gst_wrapper_camera_bin_src_set_property (GObject * object, gst_object_ref (self->app_vid_src); } break; + case PROP_VIDEO_SRC_FILTER: + if (GST_STATE (self) != GST_STATE_NULL) { + GST_ELEMENT_ERROR (self, CORE, FAILED, + ("camerasrc must be in NULL state when setting the video source filter element"), + (NULL)); + } else { + if (self->app_vid_filter) + gst_object_unref (self->app_vid_filter); + self->app_vid_filter = g_value_get_object (value); + if (self->app_vid_filter) + gst_object_ref (self->app_vid_filter); + } + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec); break; @@ -108,6 +128,12 @@ gst_wrapper_camera_bin_src_get_property (GObject * object, else g_value_set_object (value, self->app_vid_src); break; + case PROP_VIDEO_SRC_FILTER: + if (self->video_filter) + g_value_set_object (value, self->video_filter); + else + g_value_set_object (value, self->app_vid_filter); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec); break; @@ -126,13 +152,22 @@ gst_wrapper_camera_bin_reset_video_src_caps (GstWrapperCameraBinSrc * self, clock = gst_element_get_clock (self->src_vid_src); base_time = gst_element_get_base_time (self->src_vid_src); - gst_element_set_state (self->src_vid_src, GST_STATE_READY); + /* Ideally, we should only need to get the source to READY here, + * but it seems v4l2src isn't happy with this. Putting to NULL makes + * it work. + * + * TODO fix this in v4l2src + */ + gst_element_set_state (self->src_vid_src, GST_STATE_NULL); set_capsfilter_caps (self, caps); self->drop_newseg = TRUE; GST_DEBUG_OBJECT (self, "Bringing source up"); - gst_element_sync_state_with_parent (self->src_vid_src); + if (!gst_element_sync_state_with_parent (self->src_vid_src)) { + GST_WARNING_OBJECT (self, "Failed to reset source caps"); + gst_element_set_state (self->src_vid_src, GST_STATE_NULL); + } if (clock) { gst_element_set_clock (self->src_vid_src, clock); @@ -229,9 +264,17 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstBuffer * buffer, if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_DONE) { /* NOP */ } else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_STARTING) { + GstClockTime ts; + GST_DEBUG_OBJECT (self, "Starting video recording"); self->video_rec_status = GST_VIDEO_RECORDING_STATUS_RUNNING; + ts = GST_BUFFER_TIMESTAMP (buffer); + if (!GST_CLOCK_TIME_IS_VALID (ts)) + ts = 0; + gst_pad_push_event (self->vidsrc, gst_event_new_new_segment (FALSE, 1.0, + GST_FORMAT_TIME, ts, -1, 0)); + /* post preview */ GST_DEBUG_OBJECT (self, "Posting preview for video"); gst_base_camera_src_post_preview (camerasrc, buffer); @@ -352,7 +395,8 @@ gst_wrapper_camera_bin_src_max_zoom_cb (GObject * self, GParamSpec * pspec, * @bcamsrc: camerasrc object * * This function creates and links the elements of the camerasrc bin - * videosrc ! cspconv ! capsfilter ! crop ! scale ! capsfilter ! tee name=t ! + * videosrc ! cspconv ! srcfilter ! cspconv ! capsfilter ! crop ! scale ! \ + * capsfilter ! tee name=t * t. ! ... (viewfinder pad) * t. ! output-selector name=outsel * outsel. ! (image pad) @@ -366,8 +410,10 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc) GstWrapperCameraBinSrc *self = GST_WRAPPER_CAMERA_BIN_SRC (bcamsrc); GstBin *cbin = GST_BIN (bcamsrc); GstElement *tee; + GstElement *filter_csp; + GstElement *src_csp; + GstElement *capsfilter; gboolean ret = FALSE; - GstElement *videoscale; GstPad *vf_pad; GstPad *tee_capture_pad; GstPad *src_caps_src_pad; @@ -445,17 +491,9 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc) /* viewfinder pad */ vf_pad = gst_element_get_request_pad (tee, "src%d"); g_object_set (tee, "alloc-pad", vf_pad, NULL); + gst_ghost_pad_set_target (GST_GHOST_PAD (self->vfsrc), vf_pad); gst_object_unref (vf_pad); - /* the viewfinder should always work, so we add some converters to it */ - if (!gst_camerabin_create_and_add_element (cbin, "ffmpegcolorspace", - "viewfinder-colorspace")) - goto done; - if (!(videoscale = - gst_camerabin_create_and_add_element (cbin, "videoscale", - "viewfinder-scale"))) - goto done; - /* image/video pad from tee */ tee_capture_pad = gst_element_get_request_pad (tee, "src%d"); @@ -498,15 +536,43 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc) NULL); } - /* hook-up the vf ghostpad */ - vf_pad = gst_element_get_static_pad (videoscale, "src"); - gst_ghost_pad_set_target (GST_GHOST_PAD (self->vfsrc), vf_pad); - gst_object_unref (vf_pad); + gst_pad_set_active (self->vfsrc, TRUE); gst_pad_set_active (self->imgsrc, TRUE); /* XXX ??? */ gst_pad_set_active (self->vidsrc, TRUE); /* XXX ??? */ } + + /* Do this even if pipeline is constructed */ + + if (self->video_filter) { + /* check if we need to replace the current one */ + if (self->video_filter != self->app_vid_filter) { + gst_bin_remove (cbin, self->video_filter); + gst_object_unref (self->video_filter); + self->video_filter = NULL; + filter_csp = gst_bin_get_by_name (cbin, "filter-colorspace"); + gst_bin_remove (cbin, filter_csp); + gst_object_unref (filter_csp); + filter_csp = NULL; + } + } + + if (!self->video_filter) { + if (self->app_vid_filter) { + self->video_filter = gst_object_ref (self->app_vid_filter); + filter_csp = gst_element_factory_make ("ffmpegcolorspace", + "filter-colorspace"); + gst_bin_add_many (cbin, self->video_filter, filter_csp, NULL); + src_csp = gst_bin_get_by_name (cbin, "src-colorspace"); + capsfilter = gst_bin_get_by_name (cbin, "src-capsfilter"); + if (gst_pad_is_linked (gst_element_get_static_pad (src_csp, "src"))) + gst_element_unlink (src_csp, capsfilter); + if (!gst_element_link_many (src_csp, self->video_filter, filter_csp, + capsfilter, NULL)) + goto done; + } + } ret = TRUE; self->elements_created = TRUE; done: @@ -648,7 +714,9 @@ static gboolean start_image_capture (GstWrapperCameraBinSrc * self) { GstBaseCameraSrc *bcamsrc = GST_BASE_CAMERA_SRC (self); - GstPhotography *photography = gst_base_camera_src_get_photography (bcamsrc); + GstPhotography *photography = + (GstPhotography *) gst_bin_get_by_interface (GST_BIN_CAST (bcamsrc), + GST_TYPE_PHOTOGRAPHY); gboolean ret = FALSE; GstCaps *caps; @@ -689,7 +757,9 @@ static gboolean gst_wrapper_camera_bin_src_set_mode (GstBaseCameraSrc * bcamsrc, GstCameraBinMode mode) { - GstPhotography *photography = gst_base_camera_src_get_photography (bcamsrc); + GstPhotography *photography = + (GstPhotography *) gst_bin_get_by_interface (GST_BIN_CAST (bcamsrc), + GST_TYPE_PHOTOGRAPHY); GstWrapperCameraBinSrc *self = GST_WRAPPER_CAMERA_BIN_SRC (bcamsrc); if (self->output_selector) { @@ -795,73 +865,6 @@ gst_wrapper_camera_bin_src_set_zoom (GstBaseCameraSrc * bcamsrc, gfloat zoom) } } -static GstCaps * -gst_wrapper_camera_bin_src_get_allowed_input_caps (GstBaseCameraSrc * bcamsrc) -{ - GstWrapperCameraBinSrc *self = GST_WRAPPER_CAMERA_BIN_SRC (bcamsrc); - GstCaps *caps = NULL; - GstPad *pad = NULL, *peer_pad = NULL; - GstState state; - GstElement *videosrc; - - videosrc = self->src_vid_src ? self->src_vid_src : self->app_vid_src; - - if (!videosrc) { - GST_WARNING_OBJECT (self, "no videosrc, can't get allowed caps"); - goto failed; - } - - if (self->allowed_caps) { - GST_DEBUG_OBJECT (self, "returning cached caps"); - goto done; - } - - pad = gst_element_get_static_pad (videosrc, "src"); - - if (!pad) { - GST_WARNING_OBJECT (self, "no srcpad in videosrc"); - goto failed; - } - - state = GST_STATE (videosrc); - - /* Make this function work also in NULL state */ - if (state == GST_STATE_NULL) { - GST_DEBUG_OBJECT (self, "setting videosrc to ready temporarily"); - peer_pad = gst_pad_get_peer (pad); - if (peer_pad) { - gst_pad_unlink (pad, peer_pad); - } - /* Set videosrc to READY to open video device */ - gst_element_set_locked_state (videosrc, TRUE); - gst_element_set_state (videosrc, GST_STATE_READY); - } - - self->allowed_caps = gst_pad_get_caps (pad); - - /* Restore state and re-link if necessary */ - if (state == GST_STATE_NULL) { - GST_DEBUG_OBJECT (self, "restoring videosrc state %d", state); - /* Reset videosrc to NULL state, some drivers seem to need this */ - gst_element_set_state (videosrc, GST_STATE_NULL); - if (peer_pad) { - gst_pad_link (pad, peer_pad); - gst_object_unref (peer_pad); - } - gst_element_set_locked_state (videosrc, FALSE); - } - - gst_object_unref (pad); - -done: - if (self->allowed_caps) { - caps = gst_caps_copy (self->allowed_caps); - } - GST_DEBUG_OBJECT (self, "allowed caps:%" GST_PTR_FORMAT, caps); -failed: - return caps; -} - /** * update_aspect_filter: * @self: camerasrc object @@ -1099,9 +1102,13 @@ gst_wrapper_camera_bin_src_class_init (GstWrapperCameraBinSrcClass * klass) /* g_object_class_install_property .... */ g_object_class_install_property (gobject_class, PROP_VIDEO_SRC, - g_param_spec_object ("video-src", "Video source", + g_param_spec_object ("video-source", "Video source", "The video source element to be used", GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_VIDEO_SRC_FILTER, + g_param_spec_object ("video-source-filter", "Video source filter", + "Optional video source filter element", + GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstelement_class->change_state = gst_wrapper_camera_bin_src_change_state; @@ -1109,8 +1116,6 @@ gst_wrapper_camera_bin_src_class_init (GstWrapperCameraBinSrcClass * klass) gst_wrapper_camera_bin_src_construct_pipeline; gstbasecamerasrc_class->set_zoom = gst_wrapper_camera_bin_src_set_zoom; gstbasecamerasrc_class->set_mode = gst_wrapper_camera_bin_src_set_mode; - gstbasecamerasrc_class->get_allowed_input_caps = - gst_wrapper_camera_bin_src_get_allowed_input_caps; gstbasecamerasrc_class->start_capture = gst_wrapper_camera_bin_src_start_capture; gstbasecamerasrc_class->stop_capture = @@ -1148,6 +1153,7 @@ gst_wrapper_camera_bin_src_init (GstWrapperCameraBinSrc * self, self->video_renegotiate = TRUE; self->image_renegotiate = TRUE; self->mode = GST_BASE_CAMERA_SRC_CAST (self)->mode; + self->app_vid_filter = NULL; } gboolean diff --git a/gst/camerabin2/gstwrappercamerabinsrc.h b/gst/camerabin2/gstwrappercamerabinsrc.h index ccc1ef6..71f3451 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.h +++ b/gst/camerabin2/gstwrappercamerabinsrc.h @@ -74,6 +74,7 @@ struct _GstWrapperCameraBinSrc /* source elements */ GstElement *src_vid_src; + GstElement *video_filter; GstElement *src_filter; GstElement *src_zoom_crop; GstElement *src_zoom_scale; @@ -94,6 +95,7 @@ struct _GstWrapperCameraBinSrc /* Application configurable elements */ GstElement *app_vid_src; + GstElement *app_vid_filter; /* Caps that videosrc supports */ GstCaps *allowed_caps; diff --git a/gst/cdxaparse/Makefile.in b/gst/cdxaparse/Makefile.in index 4ea659d..4bd677b 100644 --- a/gst/cdxaparse/Makefile.in +++ b/gst/cdxaparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstcdxaparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstcdxaparse_la_OBJECTS = libgstcdxaparse_la-gstcdxaparse.lo \ libgstcdxaparse_la-gstvcdparse.lo libgstcdxaparse_la_OBJECTS = $(am_libgstcdxaparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcdxaparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcdxaparse_la_SOURCES) DIST_SOURCES = $(libgstcdxaparse_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -615,7 +642,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcdxaparse.la: $(libgstcdxaparse_la_OBJECTS) $(libgstcdxaparse_la_DEPENDENCIES) +libgstcdxaparse.la: $(libgstcdxaparse_la_OBJECTS) $(libgstcdxaparse_la_DEPENDENCIES) $(EXTRA_libgstcdxaparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcdxaparse_la_LINK) -rpath $(plugindir) $(libgstcdxaparse_la_OBJECTS) $(libgstcdxaparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -630,42 +657,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcdxaparse_la-gstcdxaparse.lo: gstcdxaparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -MT libgstcdxaparse_la-gstcdxaparse.lo -MD -MP -MF $(DEPDIR)/libgstcdxaparse_la-gstcdxaparse.Tpo -c -o libgstcdxaparse_la-gstcdxaparse.lo `test -f 'gstcdxaparse.c' || echo '$(srcdir)/'`gstcdxaparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdxaparse_la-gstcdxaparse.Tpo $(DEPDIR)/libgstcdxaparse_la-gstcdxaparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcdxaparse.c' object='libgstcdxaparse_la-gstcdxaparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcdxaparse.c' object='libgstcdxaparse_la-gstcdxaparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -c -o libgstcdxaparse_la-gstcdxaparse.lo `test -f 'gstcdxaparse.c' || echo '$(srcdir)/'`gstcdxaparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -c -o libgstcdxaparse_la-gstcdxaparse.lo `test -f 'gstcdxaparse.c' || echo '$(srcdir)/'`gstcdxaparse.c libgstcdxaparse_la-gstvcdparse.lo: gstvcdparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -MT libgstcdxaparse_la-gstvcdparse.lo -MD -MP -MF $(DEPDIR)/libgstcdxaparse_la-gstvcdparse.Tpo -c -o libgstcdxaparse_la-gstvcdparse.lo `test -f 'gstvcdparse.c' || echo '$(srcdir)/'`gstvcdparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdxaparse_la-gstvcdparse.Tpo $(DEPDIR)/libgstcdxaparse_la-gstvcdparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvcdparse.c' object='libgstcdxaparse_la-gstvcdparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvcdparse.c' object='libgstcdxaparse_la-gstvcdparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -c -o libgstcdxaparse_la-gstvcdparse.lo `test -f 'gstvcdparse.c' || echo '$(srcdir)/'`gstvcdparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdxaparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdxaparse_la_CFLAGS) $(CFLAGS) -c -o libgstcdxaparse_la-gstvcdparse.lo `test -f 'gstvcdparse.c' || echo '$(srcdir)/'`gstvcdparse.c mostlyclean-libtool: -rm -f *.lo @@ -772,10 +794,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/cdxaparse/gstcdxaparse.c b/gst/cdxaparse/gstcdxaparse.c index efcda21..1f997b7 100644 --- a/gst/cdxaparse/gstcdxaparse.c +++ b/gst/cdxaparse/gstcdxaparse.c @@ -71,10 +71,10 @@ gst_cdxa_parse_base_init (gpointer g_class) "Wim Taymans "); /* register src pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &src_template_factory); } static void diff --git a/gst/cdxaparse/gstvcdparse.c b/gst/cdxaparse/gstvcdparse.c index 4bf148b..601cb6b 100644 --- a/gst/cdxaparse/gstvcdparse.c +++ b/gst/cdxaparse/gstvcdparse.c @@ -55,10 +55,8 @@ gst_vcd_parse_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_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "(S)VCD stream parser", "Codec/Parser", "Strip (S)VCD stream from its sync headers", diff --git a/gst/coloreffects/Makefile.in b/gst/coloreffects/Makefile.in index e04a785..c31e73e 100644 --- a/gst/coloreffects/Makefile.in +++ b/gst/coloreffects/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstcoloreffects_la_OBJECTS = libgstcoloreffects_la-gstplugin.lo \ libgstcoloreffects_la-gstcoloreffects.lo \ libgstcoloreffects_la-gstchromahold.lo libgstcoloreffects_la_OBJECTS = $(am_libgstcoloreffects_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcoloreffects_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcoloreffects_la_SOURCES) DIST_SOURCES = $(libgstcoloreffects_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -616,7 +643,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcoloreffects.la: $(libgstcoloreffects_la_OBJECTS) $(libgstcoloreffects_la_DEPENDENCIES) +libgstcoloreffects.la: $(libgstcoloreffects_la_OBJECTS) $(libgstcoloreffects_la_DEPENDENCIES) $(EXTRA_libgstcoloreffects_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcoloreffects_la_LINK) -rpath $(plugindir) $(libgstcoloreffects_la_OBJECTS) $(libgstcoloreffects_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -632,50 +659,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcoloreffects_la-gstplugin.lo: gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -MT libgstcoloreffects_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstcoloreffects_la-gstplugin.Tpo -c -o libgstcoloreffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoloreffects_la-gstplugin.Tpo $(DEPDIR)/libgstcoloreffects_la-gstplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplugin.c' object='libgstcoloreffects_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplugin.c' object='libgstcoloreffects_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c libgstcoloreffects_la-gstcoloreffects.lo: gstcoloreffects.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -MT libgstcoloreffects_la-gstcoloreffects.lo -MD -MP -MF $(DEPDIR)/libgstcoloreffects_la-gstcoloreffects.Tpo -c -o libgstcoloreffects_la-gstcoloreffects.lo `test -f 'gstcoloreffects.c' || echo '$(srcdir)/'`gstcoloreffects.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoloreffects_la-gstcoloreffects.Tpo $(DEPDIR)/libgstcoloreffects_la-gstcoloreffects.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcoloreffects.c' object='libgstcoloreffects_la-gstcoloreffects.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcoloreffects.c' object='libgstcoloreffects_la-gstcoloreffects.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstcoloreffects.lo `test -f 'gstcoloreffects.c' || echo '$(srcdir)/'`gstcoloreffects.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstcoloreffects.lo `test -f 'gstcoloreffects.c' || echo '$(srcdir)/'`gstcoloreffects.c libgstcoloreffects_la-gstchromahold.lo: gstchromahold.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -MT libgstcoloreffects_la-gstchromahold.lo -MD -MP -MF $(DEPDIR)/libgstcoloreffects_la-gstchromahold.Tpo -c -o libgstcoloreffects_la-gstchromahold.lo `test -f 'gstchromahold.c' || echo '$(srcdir)/'`gstchromahold.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoloreffects_la-gstchromahold.Tpo $(DEPDIR)/libgstcoloreffects_la-gstchromahold.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstchromahold.c' object='libgstcoloreffects_la-gstchromahold.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstchromahold.c' object='libgstcoloreffects_la-gstchromahold.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstchromahold.lo `test -f 'gstchromahold.c' || echo '$(srcdir)/'`gstchromahold.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoloreffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoloreffects_la_CFLAGS) $(CFLAGS) -c -o libgstcoloreffects_la-gstchromahold.lo `test -f 'gstchromahold.c' || echo '$(srcdir)/'`gstchromahold.c mostlyclean-libtool: -rm -f *.lo @@ -782,10 +803,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/coloreffects/gstchromahold.c b/gst/coloreffects/gstchromahold.c index 3e8c1fa..e6e7c40 100644 --- a/gst/coloreffects/gstchromahold.c +++ b/gst/coloreffects/gstchromahold.c @@ -91,7 +91,8 @@ static GstStaticPadTemplate gst_chroma_hold_sink_template = } G_STMT_END #define GST_CHROMA_HOLD_UNLOCK(self) G_STMT_START { \ - GST_LOG_OBJECT (self, "Unlocking chromahold from thread %p", g_thread_self ()); \ + GST_LOG_OBJECT (self, "Unlocking chromahold from thread %p", \ + g_thread_self ()); \ g_static_mutex_unlock (&self->lock); \ } G_STMT_END @@ -127,10 +128,10 @@ gst_chroma_hold_base_init (gpointer g_class) "Removes all color information except for one color", "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_chroma_hold_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_chroma_hold_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_chroma_hold_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_chroma_hold_src_template); GST_DEBUG_CATEGORY_INIT (gst_chroma_hold_debug, "chromahold", 0, "chromahold - Removes all color information except for one color"); diff --git a/gst/coloreffects/gstchromahold.h b/gst/coloreffects/gstchromahold.h index a189113..429db13 100644 --- a/gst/coloreffects/gstchromahold.h +++ b/gst/coloreffects/gstchromahold.h @@ -31,7 +31,6 @@ #include G_BEGIN_DECLS - #define GST_TYPE_CHROMA_HOLD \ (gst_chroma_hold_get_type()) #define GST_CHROMA_HOLD(obj) \ @@ -42,7 +41,6 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CHROMA_HOLD)) #define GST_IS_CHROMA_HOLD_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CHROMA_HOLD)) - typedef struct _GstChromaHold GstChromaHold; typedef struct _GstChromaHoldClass GstChromaHoldClass; @@ -64,7 +62,8 @@ struct _GstChromaHold guint tolerance; /* processing function */ - void (*process) (guint8 *dest, gint width, gint height, GstChromaHold *chroma_hold); + void (*process) (guint8 * dest, gint width, gint height, + GstChromaHold * chroma_hold); /* pre-calculated values */ gint hue; @@ -78,5 +77,4 @@ struct _GstChromaHoldClass GType gst_chroma_hold_get_type (void); G_END_DECLS - #endif /* __GST_CHROMA_HOLD_H__ */ diff --git a/gst/coloreffects/gstcoloreffects.c b/gst/coloreffects/gstcoloreffects.c index 4c872c6..0941df1 100644 --- a/gst/coloreffects/gstcoloreffects.c +++ b/gst/coloreffects/gstcoloreffects.c @@ -25,7 +25,8 @@ * * Example launch line * |[ - * gst-launch -v videotestsrc ! coloreffects preset=heat ! ffmpegcolorspace ! autovideosink + * gst-launch -v videotestsrc ! coloreffects preset=heat ! ffmpegcolorspace ! + * autovideosink * ]| This pipeline shows the effect of coloreffects on a test stream. * */ @@ -264,7 +265,8 @@ static const gint cog_rgb_to_ycbcr_matrix_8bit_sdtv[] = { 112, -94, -18, 32768, }; -#define APPLY_MATRIX(m,o,v1,v2,v3) ((m[o*4] * v1 + m[o*4+1] * v2 + m[o*4+2] * v3 + m[o*4+3]) >> 8) +#define APPLY_MATRIX(m,o,v1,v2,v3) ((m[o*4] * v1 + m[o*4+1] * v2 + \ + m[o*4+2] * v3 + m[o*4+3]) >> 8) static void gst_color_effects_transform_rgb (GstColorEffects * filter, guint8 * data) @@ -306,7 +308,8 @@ gst_color_effects_transform_rgb (GstColorEffects * filter, guint8 * data) /* 0.2126 R + 0.7152 G + 0.0722 B */ luma = ((r << 8) * 54) + ((g << 8) * 183) + ((b << 8) * 19); luma >>= 16; /* get integer part */ - luma *= 3; /* times 3 to retrieve the correct pixel from the lut */ + luma *= 3; /* times 3 to retrieve the correct pixel from + * the lut */ /* map luma to lookup table */ /* src.luma |-> table[luma].rgb */ data[offsets[0]] = filter->table[luma]; @@ -503,10 +506,10 @@ gst_color_effects_base_init (gpointer g_class) "Color Look-up Table filter", "Filippo Argiolas "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_color_effects_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_color_effects_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_color_effects_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_color_effects_src_template); } static void diff --git a/gst/coloreffects/gstcoloreffects.h b/gst/coloreffects/gstcoloreffects.h index b549ff1..04e52a9 100644 --- a/gst/coloreffects/gstcoloreffects.h +++ b/gst/coloreffects/gstcoloreffects.h @@ -77,7 +77,7 @@ struct _GstColorEffects gint height; gint size; - void (*process) (GstColorEffects *filter, guint8 *data); + void (*process) (GstColorEffects * filter, guint8 * data); }; struct _GstColorEffectsClass diff --git a/gst/colorspace/Makefile.in b/gst/colorspace/Makefile.in index 2ae0c9f..989ed80 100644 --- a/gst/colorspace/Makefile.in +++ b/gst/colorspace/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -64,6 +64,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -122,6 +123,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -134,8 +141,8 @@ am__objects_1 = libgstcolorspace_la-tmp-orc.lo nodist_libgstcolorspace_la_OBJECTS = $(am__objects_1) libgstcolorspace_la_OBJECTS = $(am_libgstcolorspace_la_OBJECTS) \ $(nodist_libgstcolorspace_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcolorspace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -151,21 +158,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcolorspace_la_SOURCES) \ $(nodist_libgstcolorspace_la_SOURCES) @@ -178,7 +185,6 @@ 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@ @@ -196,7 +202,6 @@ 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@ @@ -231,6 +236,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -270,6 +276,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -287,6 +294,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -295,13 +303,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -326,13 +337,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -380,6 +392,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -411,8 +424,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -436,6 +453,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -460,10 +479,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -475,6 +498,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -499,6 +526,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -534,7 +562,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,6 +635,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -648,7 +676,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcolorspace.la: $(libgstcolorspace_la_OBJECTS) $(libgstcolorspace_la_DEPENDENCIES) +libgstcolorspace.la: $(libgstcolorspace_la_OBJECTS) $(libgstcolorspace_la_DEPENDENCIES) $(EXTRA_libgstcolorspace_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcolorspace_la_LINK) -rpath $(plugindir) $(libgstcolorspace_la_OBJECTS) $(libgstcolorspace_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -664,50 +692,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcolorspace_la-gstcolorspace.lo: gstcolorspace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstcolorspace_la-gstcolorspace.lo -MD -MP -MF $(DEPDIR)/libgstcolorspace_la-gstcolorspace.Tpo -c -o libgstcolorspace_la-gstcolorspace.lo `test -f 'gstcolorspace.c' || echo '$(srcdir)/'`gstcolorspace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcolorspace_la-gstcolorspace.Tpo $(DEPDIR)/libgstcolorspace_la-gstcolorspace.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcolorspace.c' object='libgstcolorspace_la-gstcolorspace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcolorspace.c' object='libgstcolorspace_la-gstcolorspace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-gstcolorspace.lo `test -f 'gstcolorspace.c' || echo '$(srcdir)/'`gstcolorspace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-gstcolorspace.lo `test -f 'gstcolorspace.c' || echo '$(srcdir)/'`gstcolorspace.c libgstcolorspace_la-colorspace.lo: colorspace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstcolorspace_la-colorspace.lo -MD -MP -MF $(DEPDIR)/libgstcolorspace_la-colorspace.Tpo -c -o libgstcolorspace_la-colorspace.lo `test -f 'colorspace.c' || echo '$(srcdir)/'`colorspace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcolorspace_la-colorspace.Tpo $(DEPDIR)/libgstcolorspace_la-colorspace.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='colorspace.c' object='libgstcolorspace_la-colorspace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorspace.c' object='libgstcolorspace_la-colorspace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-colorspace.lo `test -f 'colorspace.c' || echo '$(srcdir)/'`colorspace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-colorspace.lo `test -f 'colorspace.c' || echo '$(srcdir)/'`colorspace.c libgstcolorspace_la-tmp-orc.lo: tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstcolorspace_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstcolorspace_la-tmp-orc.Tpo -c -o libgstcolorspace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcolorspace_la-tmp-orc.Tpo $(DEPDIR)/libgstcolorspace_la-tmp-orc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstcolorspace_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstcolorspace_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 $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstcolorspace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -819,10 +841,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/colorspace/colorspace.c b/gst/colorspace/colorspace.c index 8bcd2c4..15b6caf 100644 --- a/gst/colorspace/colorspace.c +++ b/gst/colorspace/colorspace.c @@ -49,7 +49,8 @@ colorspace_convert_new (GstVideoFormat to_format, ColorSpaceColorSpec to_spec, || to_spec == COLOR_SPEC_RGB, NULL); g_return_val_if_fail (!gst_video_format_is_yuv (to_format) || to_spec == COLOR_SPEC_YUV_BT709 - || to_spec == COLOR_SPEC_YUV_BT470_6, NULL); + || to_spec == COLOR_SPEC_YUV_BT470_6 + || to_spec == COLOR_SPEC_YUV_JPEG, NULL); g_return_val_if_fail (gst_video_format_is_rgb (to_format) || gst_video_format_is_yuv (to_format) || (gst_video_format_is_gray (to_format) && @@ -59,7 +60,8 @@ colorspace_convert_new (GstVideoFormat to_format, ColorSpaceColorSpec to_spec, || from_spec == COLOR_SPEC_RGB, NULL); g_return_val_if_fail (!gst_video_format_is_yuv (from_format) || from_spec == COLOR_SPEC_YUV_BT709 - || from_spec == COLOR_SPEC_YUV_BT470_6, NULL); + || from_spec == COLOR_SPEC_YUV_BT470_6 + || from_spec == COLOR_SPEC_YUV_JPEG, NULL); g_return_val_if_fail (gst_video_format_is_rgb (from_format) || gst_video_format_is_yuv (from_format) || (gst_video_format_is_gray (from_format) && @@ -1306,7 +1308,7 @@ putline16_r210 (ColorspaceConvert * convert, guint8 * dest, const guint16 * src, { int i; guint8 *destline = FRAME_GET_LINE (dest, 0, j); - for (i = 0; i < convert->width / 2; i++) { + for (i = 0; i < convert->width; i++) { guint32 x = 0; x |= (src[i * 4 + 1] & 0xffc0) << 14; x |= (src[i * 4 + 2] & 0xffc0) << 4; @@ -1830,7 +1832,7 @@ convert_I420_YUY2 (ColorspaceConvert * convert, guint8 * dest, { int i; - for (i = 0; i < convert->height; i += 2) { + for (i = 0; i < GST_ROUND_DOWN_2 (convert->height); i += 2) { cogorc_convert_I420_YUY2 (FRAME_GET_LINE (dest, 0, i), FRAME_GET_LINE (dest, 0, i + 1), FRAME_GET_LINE (src, 0, i), @@ -1838,6 +1840,12 @@ convert_I420_YUY2 (ColorspaceConvert * convert, guint8 * dest, FRAME_GET_LINE (src, 1, i >> 1), FRAME_GET_LINE (src, 2, i >> 1), (convert->width + 1) / 2); } + + /* now handle last line */ + if (convert->height & 1) { + getline_I420 (convert, convert->tmpline, src, convert->height - 1); + putline_YUY2 (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1846,7 +1854,7 @@ convert_I420_UYVY (ColorspaceConvert * convert, guint8 * dest, { int i; - for (i = 0; i < convert->height; i += 2) { + for (i = 0; i < GST_ROUND_DOWN_2 (convert->height); i += 2) { cogorc_convert_I420_UYVY (FRAME_GET_LINE (dest, 0, i), FRAME_GET_LINE (dest, 0, i + 1), FRAME_GET_LINE (src, 0, i), @@ -1854,6 +1862,12 @@ convert_I420_UYVY (ColorspaceConvert * convert, guint8 * dest, FRAME_GET_LINE (src, 1, i >> 1), FRAME_GET_LINE (src, 2, i >> 1), (convert->width + 1) / 2); } + + /* now handle last line */ + if (convert->height & 1) { + getline_I420 (convert, convert->tmpline, src, convert->height - 1); + putline_UYVY (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1862,7 +1876,7 @@ convert_I420_AYUV (ColorspaceConvert * convert, guint8 * dest, { int i; - for (i = 0; i < convert->height; i += 2) { + for (i = 0; i < GST_ROUND_DOWN_2 (convert->height); i += 2) { cogorc_convert_I420_AYUV (FRAME_GET_LINE (dest, 0, i), FRAME_GET_LINE (dest, 0, i + 1), FRAME_GET_LINE (src, 0, i), @@ -1870,6 +1884,12 @@ convert_I420_AYUV (ColorspaceConvert * convert, guint8 * dest, FRAME_GET_LINE (src, 1, i >> 1), FRAME_GET_LINE (src, 2, i >> 1), convert->width); } + + /* now handle last line */ + if (convert->height & 1) { + getline_I420 (convert, convert->tmpline, src, convert->height - 1); + putline_AYUV (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1902,23 +1922,31 @@ convert_I420_Y444 (ColorspaceConvert * convert, guint8 * dest, cogorc_planar_chroma_420_444 (FRAME_GET_LINE (dest, 1, 0), 2 * convert->dest_stride[1], FRAME_GET_LINE (dest, 1, 1), 2 * convert->dest_stride[1], FRAME_GET_LINE (src, 1, 0), - convert->src_stride[1], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->src_stride[1], (convert->width + 1) / 2, convert->height / 2); cogorc_planar_chroma_420_444 (FRAME_GET_LINE (dest, 2, 0), 2 * convert->dest_stride[2], FRAME_GET_LINE (dest, 2, 1), 2 * convert->dest_stride[2], FRAME_GET_LINE (src, 2, 0), - convert->src_stride[2], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->src_stride[2], (convert->width + 1) / 2, convert->height / 2); + + /* now handle last line */ + if (convert->height & 1) { + getline_I420 (convert, convert->tmpline, src, convert->height - 1); + putline_Y444 (convert, dest, convert->tmpline, convert->height - 1); + } } static void convert_YUY2_I420 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src) { - int i; + int i, h; - for (i = 0; i < convert->height; i += 2) { + h = convert->height; + if (convert->width & 1) + h--; + + for (i = 0; i < h; i += 2) { cogorc_convert_YUY2_I420 (FRAME_GET_LINE (dest, 0, i), FRAME_GET_LINE (dest, 0, i + 1), FRAME_GET_LINE (dest, 1, i >> 1), @@ -1926,6 +1954,12 @@ convert_YUY2_I420 (ColorspaceConvert * convert, guint8 * dest, FRAME_GET_LINE (src, 0, i), FRAME_GET_LINE (src, 0, i + 1), (convert->width + 1) / 2); } + + /* now handle last line */ + if (convert->height & 1) { + getline_YUY2 (convert, convert->tmpline, src, convert->height - 1); + putline_I420 (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1934,7 +1968,14 @@ convert_YUY2_AYUV (ColorspaceConvert * convert, guint8 * dest, { cogorc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0), - convert->src_stride[0], (convert->width + 1) / 2, convert->height); + convert->src_stride[0], (convert->width + 1) / 2, + convert->height & 1 ? convert->height - 1 : convert->height); + + /* now handle last line */ + if (convert->height & 1) { + getline_YUY2 (convert, convert->tmpline, src, convert->height - 1); + putline_AYUV (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1966,7 +2007,7 @@ convert_UYVY_I420 (ColorspaceConvert * convert, guint8 * dest, { int i; - for (i = 0; i < convert->height; i += 2) { + for (i = 0; i < GST_ROUND_DOWN_2 (convert->height); i += 2) { cogorc_convert_UYVY_I420 (FRAME_GET_LINE (dest, 0, i), FRAME_GET_LINE (dest, 0, i + 1), FRAME_GET_LINE (dest, 1, i >> 1), @@ -1974,6 +2015,12 @@ convert_UYVY_I420 (ColorspaceConvert * convert, guint8 * dest, FRAME_GET_LINE (src, 0, i), FRAME_GET_LINE (src, 0, i + 1), (convert->width + 1) / 2); } + + /* now handle last line */ + if (convert->height & 1) { + getline_UYVY (convert, convert->tmpline, src, convert->height - 1); + putline_I420 (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -1982,7 +2029,14 @@ convert_UYVY_AYUV (ColorspaceConvert * convert, guint8 * dest, { cogorc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0), - convert->src_stride[0], (convert->width + 1) / 2, convert->height); + convert->src_stride[0], (convert->width + 1) / 2, + convert->height & 1 ? convert->height - 1 : convert->height); + + /* now handle last line */ + if (convert->height & 1) { + getline_UYVY (convert, convert->tmpline, src, convert->height - 1); + putline_AYUV (convert, dest, convert->tmpline, convert->height - 1); + } } static void @@ -2055,7 +2109,15 @@ convert_AYUV_Y42B (ColorspaceConvert * convert, guint8 * dest, convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0), convert->dest_stride[1], FRAME_GET_LINE (dest, 2, 0), convert->dest_stride[2], FRAME_GET_LINE (src, 0, 0), - convert->src_stride[0], (convert->width + 1) / 2, convert->height); + convert->src_stride[0], (convert->width + 1) / 2, + convert->height & 1 ? convert->height - 1 : convert->height); + + /* now handle last line */ + if (convert->height & 1) { + getline_AYUV (convert, convert->tmpline, src, convert->height - 1); + putline_Y42B (convert, dest, convert->tmpline, convert->height - 1); + } + } static void @@ -2081,13 +2143,20 @@ convert_Y42B_I420 (ColorspaceConvert * convert, guint8 * dest, convert->dest_stride[1], FRAME_GET_LINE (src, 1, 0), 2 * convert->src_stride[1], FRAME_GET_LINE (src, 1, 1), 2 * convert->src_stride[1], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->height / 2); cogorc_planar_chroma_422_420 (FRAME_GET_LINE (dest, 2, 0), convert->dest_stride[2], FRAME_GET_LINE (src, 2, 0), 2 * convert->src_stride[2], FRAME_GET_LINE (src, 2, 1), 2 * convert->src_stride[2], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->height / 2); + + /* now handle last line */ + if (convert->height & 1) { + getline_Y42B (convert, convert->tmpline, src, convert->height - 1); + putline_I420 (convert, dest, convert->tmpline, convert->height - 1); + } + } static void @@ -2152,13 +2221,19 @@ convert_Y444_I420 (ColorspaceConvert * convert, guint8 * dest, convert->dest_stride[1], FRAME_GET_LINE (src, 1, 0), 2 * convert->src_stride[1], FRAME_GET_LINE (src, 1, 1), 2 * convert->src_stride[1], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->height / 2); cogorc_planar_chroma_444_420 (FRAME_GET_LINE (dest, 2, 0), convert->dest_stride[2], FRAME_GET_LINE (src, 2, 0), 2 * convert->src_stride[2], FRAME_GET_LINE (src, 2, 1), 2 * convert->src_stride[2], (convert->width + 1) / 2, - (convert->height + 1) / 2); + convert->height / 2); + + /* now handle last line */ + if (convert->height & 1) { + getline_Y444 (convert, convert->tmpline, src, convert->height - 1); + putline_I420 (convert, dest, convert->tmpline, convert->height - 1); + } } static void diff --git a/gst/colorspace/colorspace.h b/gst/colorspace/colorspace.h index 05bcc18..7ae8892 100644 --- a/gst/colorspace/colorspace.h +++ b/gst/colorspace/colorspace.h @@ -32,7 +32,8 @@ typedef enum { COLOR_SPEC_RGB, COLOR_SPEC_GRAY, COLOR_SPEC_YUV_BT470_6, - COLOR_SPEC_YUV_BT709 + COLOR_SPEC_YUV_BT709, + COLOR_SPEC_YUV_JPEG } ColorSpaceColorSpec; typedef enum { diff --git a/gst/colorspace/gstcolorspace.c b/gst/colorspace/gstcolorspace.c index 6b512b5..c1d68e7 100644 --- a/gst/colorspace/gstcolorspace.c +++ b/gst/colorspace/gstcolorspace.c @@ -278,6 +278,8 @@ gst_csp_set_caps (GstBaseTransform * btrans, GstCaps * incaps, if (matrix && g_str_equal (matrix, "hdtv")) in_spec = COLOR_SPEC_YUV_BT709; + else if (matrix && g_str_equal (matrix, "jpeg")) + in_spec = COLOR_SPEC_YUV_JPEG; else in_spec = COLOR_SPEC_YUV_BT470_6; } else { @@ -308,6 +310,8 @@ gst_csp_set_caps (GstBaseTransform * btrans, GstCaps * incaps, if (matrix && g_str_equal (matrix, "hdtv")) out_spec = COLOR_SPEC_YUV_BT709; + else if (matrix && g_str_equal (matrix, "jpeg")) + out_spec = COLOR_SPEC_YUV_JPEG; else out_spec = COLOR_SPEC_YUV_BT470_6; } else { @@ -412,10 +416,10 @@ gst_csp_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_csp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_csp_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_csp_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_csp_sink_template); gst_element_class_set_details_simple (element_class, " Colorspace converter", "Filter/Converter/Video", diff --git a/gst/colorspace/gstcolorspaceorc-dist.c b/gst/colorspace/gstcolorspaceorc-dist.c index 06d75b2..70ca8d1 100644 --- a/gst/colorspace/gstcolorspaceorc-dist.c +++ b/gst/colorspace/gstcolorspaceorc-dist.c @@ -142,10 +142,10 @@ 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 guint8 * ORC_RESTRICT s1, +void orc_pack_123x (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); -void orc_pack_x123 (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, +void orc_pack_x123 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); void cogorc_combine2_u8 (guint8 * ORC_RESTRICT d1, @@ -434,7 +434,7 @@ cogorc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -538,7 +538,7 @@ cogorc_downsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -749,7 +749,7 @@ cogorc_downsample_horiz_cosite_3tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -965,7 +965,7 @@ cogorc_downsample_420_jpeg (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1090,7 +1090,7 @@ cogorc_downsample_vert_halfsite_2tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1267,7 +1267,7 @@ cogorc_downsample_vert_cosite_3tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1500,7 +1500,7 @@ cogorc_downsample_vert_halfsite_4tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1644,7 +1644,7 @@ cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1772,7 +1772,7 @@ cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1882,7 +1882,7 @@ cogorc_upsample_vert_avgub (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1984,7 +1984,7 @@ orc_unpack_yuyv_y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2098,7 +2098,7 @@ orc_unpack_yuyv_u (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2215,7 +2215,7 @@ orc_unpack_yuyv_v (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2406,7 +2406,7 @@ orc_pack_yuyv (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2525,7 +2525,7 @@ orc_unpack_uyvy_y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2639,7 +2639,7 @@ orc_unpack_uyvy_u (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2756,7 +2756,7 @@ orc_unpack_uyvy_v (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2947,7 +2947,7 @@ orc_pack_uyvy (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3128,7 +3128,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3351,7 +3351,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3590,7 +3590,7 @@ 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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -3825,7 +3825,7 @@ orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int p4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4100,7 +4100,7 @@ orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4350,7 +4350,7 @@ orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4587,7 +4587,7 @@ orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p2, int p3, int p4, int p5, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4660,7 +4660,7 @@ orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, /* orc_pack_123x */ #ifdef DISABLE_ORC void -orc_pack_123x (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, +orc_pack_123x (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n) { @@ -4780,12 +4780,12 @@ _backup_orc_pack_123x (OrcExecutor * ORC_RESTRICT ex) } void -orc_pack_123x (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, +orc_pack_123x (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -4834,7 +4834,7 @@ orc_pack_123x (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, /* orc_pack_x123 */ #ifdef DISABLE_ORC void -orc_pack_x123 (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, +orc_pack_x123 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n) { @@ -4954,12 +4954,12 @@ _backup_orc_pack_x123 (OrcExecutor * ORC_RESTRICT ex) } void -orc_pack_x123 (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, +orc_pack_x123 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5121,7 +5121,7 @@ cogorc_combine2_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 volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5340,7 +5340,7 @@ cogorc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5551,7 +5551,7 @@ cogorc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -5782,7 +5782,7 @@ cogorc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6015,7 +6015,7 @@ cogorc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6137,7 +6137,7 @@ cogorc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6262,7 +6262,7 @@ cogorc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6380,7 +6380,7 @@ cogorc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6491,7 +6491,7 @@ cogorc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6615,7 +6615,7 @@ cogorc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6764,7 +6764,7 @@ cogorc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -6889,7 +6889,7 @@ cogorc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7099,7 +7099,7 @@ cogorc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7317,7 +7317,7 @@ cogorc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7491,7 +7491,7 @@ cogorc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7663,7 +7663,7 @@ cogorc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -7847,7 +7847,7 @@ cogorc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8037,7 +8037,7 @@ cogorc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8264,7 +8264,7 @@ cogorc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8624,7 +8624,7 @@ cogorc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -8871,7 +8871,7 @@ cogorc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9093,7 +9093,7 @@ cogorc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9323,7 +9323,7 @@ cogorc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9506,7 +9506,7 @@ cogorc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9683,7 +9683,7 @@ cogorc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -9857,7 +9857,7 @@ cogorc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10083,7 +10083,7 @@ cogorc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10307,7 +10307,7 @@ cogorc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10530,7 +10530,7 @@ cogorc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -10721,7 +10721,7 @@ cogorc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11167,7 +11167,7 @@ cogorc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -11689,7 +11689,7 @@ cogorc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -12211,7 +12211,7 @@ cogorc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -12733,7 +12733,7 @@ cogorc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -13242,7 +13242,7 @@ cogorc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -13793,7 +13793,7 @@ cogorc_convert_I420_BGRA_avg (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s5, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14059,7 +14059,7 @@ cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14278,7 +14278,7 @@ cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14494,7 +14494,7 @@ cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14701,7 +14701,7 @@ cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -14914,7 +14914,7 @@ cogorc_getline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15129,7 +15129,7 @@ cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15304,7 +15304,7 @@ cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15445,7 +15445,7 @@ cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15586,7 +15586,7 @@ cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15686,7 +15686,7 @@ cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -15874,7 +15874,7 @@ cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -16080,7 +16080,7 @@ cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -16280,7 +16280,7 @@ cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -16471,7 +16471,7 @@ cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -16649,7 +16649,7 @@ cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s4, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -16901,7 +16901,7 @@ cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -17117,7 +17117,7 @@ cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -17330,7 +17330,7 @@ cogorc_putline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -17539,7 +17539,7 @@ cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -17752,7 +17752,7 @@ cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -17920,7 +17920,7 @@ cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18044,7 +18044,7 @@ cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18173,7 +18173,7 @@ cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18274,7 +18274,7 @@ cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18462,7 +18462,7 @@ cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18668,7 +18668,7 @@ cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -18860,7 +18860,7 @@ cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -19052,7 +19052,7 @@ cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -19335,7 +19335,7 @@ cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); diff --git a/gst/colorspace/gstcolorspaceorc-dist.h b/gst/colorspace/gstcolorspaceorc-dist.h index 2384b52..ac4ea5b 100644 --- a/gst/colorspace/gstcolorspaceorc-dist.h +++ b/gst/colorspace/gstcolorspaceorc-dist.h @@ -92,8 +92,8 @@ void orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, c 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 guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); -void orc_pack_x123 (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); +void orc_pack_123x (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); +void orc_pack_x123 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int n); void cogorc_combine2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int p2, int n); void cogorc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n); void cogorc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n); diff --git a/gst/dataurisrc/Makefile.in b/gst/dataurisrc/Makefile.in index fab7fc8..71621e6 100644 --- a/gst/dataurisrc/Makefile.in +++ b/gst/dataurisrc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstdataurisrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstdataurisrc_la_OBJECTS = libgstdataurisrc_la-gstdataurisrc.lo libgstdataurisrc_la_OBJECTS = $(am_libgstdataurisrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdataurisrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdataurisrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdataurisrc_la_SOURCES) DIST_SOURCES = $(libgstdataurisrc_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -595,7 +622,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdataurisrc.la: $(libgstdataurisrc_la_OBJECTS) $(libgstdataurisrc_la_DEPENDENCIES) +libgstdataurisrc.la: $(libgstdataurisrc_la_OBJECTS) $(libgstdataurisrc_la_DEPENDENCIES) $(EXTRA_libgstdataurisrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdataurisrc_la_LINK) -rpath $(plugindir) $(libgstdataurisrc_la_OBJECTS) $(libgstdataurisrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -609,34 +636,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdataurisrc_la-gstdataurisrc.lo: gstdataurisrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdataurisrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdataurisrc_la_CFLAGS) $(CFLAGS) -MT libgstdataurisrc_la-gstdataurisrc.lo -MD -MP -MF $(DEPDIR)/libgstdataurisrc_la-gstdataurisrc.Tpo -c -o libgstdataurisrc_la-gstdataurisrc.lo `test -f 'gstdataurisrc.c' || echo '$(srcdir)/'`gstdataurisrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdataurisrc_la-gstdataurisrc.Tpo $(DEPDIR)/libgstdataurisrc_la-gstdataurisrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdataurisrc.c' object='libgstdataurisrc_la-gstdataurisrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdataurisrc.c' object='libgstdataurisrc_la-gstdataurisrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdataurisrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdataurisrc_la_CFLAGS) $(CFLAGS) -c -o libgstdataurisrc_la-gstdataurisrc.lo `test -f 'gstdataurisrc.c' || echo '$(srcdir)/'`gstdataurisrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdataurisrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdataurisrc_la_CFLAGS) $(CFLAGS) -c -o libgstdataurisrc_la-gstdataurisrc.lo `test -f 'gstdataurisrc.c' || echo '$(srcdir)/'`gstdataurisrc.c mostlyclean-libtool: -rm -f *.lo @@ -743,10 +766,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/dataurisrc/gstdataurisrc.c b/gst/dataurisrc/gstdataurisrc.c index 446ca84..4589bcc 100644 --- a/gst/dataurisrc/gstdataurisrc.c +++ b/gst/dataurisrc/gstdataurisrc.c @@ -98,8 +98,7 @@ gst_data_uri_src_base_init (gpointer klass) { GstElementClass *element_class = (GstElementClass *) (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "data: URI source element", "Source", "Handles data: uris", "Philippe Normand , " diff --git a/gst/dccp/Makefile.in b/gst/dccp/Makefile.in index bda61f1..cbd291e 100644 --- a/gst/dccp/Makefile.in +++ b/gst/dccp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +120,8 @@ am_libgstdccp_la_OBJECTS = libgstdccp_la-gstdccpplugin.lo \ libgstdccp_la-gstdccpclientsink.lo \ libgstdccp_la-gstdccpclientsrc.lo libgstdccp_la_OBJECTS = $(am_libgstdccp_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdccp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +137,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdccp_la_SOURCES) DIST_SOURCES = $(libgstdccp_la_SOURCES) @@ -156,7 +163,6 @@ 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@ @@ -174,7 +180,6 @@ 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@ @@ -209,6 +214,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -248,6 +254,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -265,6 +272,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -273,13 +281,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -304,13 +315,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -358,6 +370,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -389,8 +402,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -414,6 +431,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -438,10 +457,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -453,6 +476,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -477,6 +504,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -512,7 +540,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -623,7 +650,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdccp.la: $(libgstdccp_la_OBJECTS) $(libgstdccp_la_DEPENDENCIES) +libgstdccp.la: $(libgstdccp_la_OBJECTS) $(libgstdccp_la_DEPENDENCIES) $(EXTRA_libgstdccp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdccp_la_LINK) -rpath $(plugindir) $(libgstdccp_la_OBJECTS) $(libgstdccp_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -642,74 +669,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdccp_la-gstdccpplugin.lo: gstdccpplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccpplugin.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccpplugin.Tpo -c -o libgstdccp_la-gstdccpplugin.lo `test -f 'gstdccpplugin.c' || echo '$(srcdir)/'`gstdccpplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccpplugin.Tpo $(DEPDIR)/libgstdccp_la-gstdccpplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccpplugin.c' object='libgstdccp_la-gstdccpplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccpplugin.c' object='libgstdccp_la-gstdccpplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpplugin.lo `test -f 'gstdccpplugin.c' || echo '$(srcdir)/'`gstdccpplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpplugin.lo `test -f 'gstdccpplugin.c' || echo '$(srcdir)/'`gstdccpplugin.c libgstdccp_la-gstdccp.lo: gstdccp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccp.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccp.Tpo -c -o libgstdccp_la-gstdccp.lo `test -f 'gstdccp.c' || echo '$(srcdir)/'`gstdccp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccp.Tpo $(DEPDIR)/libgstdccp_la-gstdccp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccp.c' object='libgstdccp_la-gstdccp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccp.c' object='libgstdccp_la-gstdccp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccp.lo `test -f 'gstdccp.c' || echo '$(srcdir)/'`gstdccp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccp.lo `test -f 'gstdccp.c' || echo '$(srcdir)/'`gstdccp.c libgstdccp_la-gstdccpserversink.lo: gstdccpserversink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccpserversink.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccpserversink.Tpo -c -o libgstdccp_la-gstdccpserversink.lo `test -f 'gstdccpserversink.c' || echo '$(srcdir)/'`gstdccpserversink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccpserversink.Tpo $(DEPDIR)/libgstdccp_la-gstdccpserversink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccpserversink.c' object='libgstdccp_la-gstdccpserversink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccpserversink.c' object='libgstdccp_la-gstdccpserversink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpserversink.lo `test -f 'gstdccpserversink.c' || echo '$(srcdir)/'`gstdccpserversink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpserversink.lo `test -f 'gstdccpserversink.c' || echo '$(srcdir)/'`gstdccpserversink.c libgstdccp_la-gstdccpserversrc.lo: gstdccpserversrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccpserversrc.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccpserversrc.Tpo -c -o libgstdccp_la-gstdccpserversrc.lo `test -f 'gstdccpserversrc.c' || echo '$(srcdir)/'`gstdccpserversrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccpserversrc.Tpo $(DEPDIR)/libgstdccp_la-gstdccpserversrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccpserversrc.c' object='libgstdccp_la-gstdccpserversrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccpserversrc.c' object='libgstdccp_la-gstdccpserversrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpserversrc.lo `test -f 'gstdccpserversrc.c' || echo '$(srcdir)/'`gstdccpserversrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpserversrc.lo `test -f 'gstdccpserversrc.c' || echo '$(srcdir)/'`gstdccpserversrc.c libgstdccp_la-gstdccpclientsink.lo: gstdccpclientsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccpclientsink.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccpclientsink.Tpo -c -o libgstdccp_la-gstdccpclientsink.lo `test -f 'gstdccpclientsink.c' || echo '$(srcdir)/'`gstdccpclientsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccpclientsink.Tpo $(DEPDIR)/libgstdccp_la-gstdccpclientsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccpclientsink.c' object='libgstdccp_la-gstdccpclientsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccpclientsink.c' object='libgstdccp_la-gstdccpclientsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpclientsink.lo `test -f 'gstdccpclientsink.c' || echo '$(srcdir)/'`gstdccpclientsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpclientsink.lo `test -f 'gstdccpclientsink.c' || echo '$(srcdir)/'`gstdccpclientsink.c libgstdccp_la-gstdccpclientsrc.lo: gstdccpclientsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -MT libgstdccp_la-gstdccpclientsrc.lo -MD -MP -MF $(DEPDIR)/libgstdccp_la-gstdccpclientsrc.Tpo -c -o libgstdccp_la-gstdccpclientsrc.lo `test -f 'gstdccpclientsrc.c' || echo '$(srcdir)/'`gstdccpclientsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdccp_la-gstdccpclientsrc.Tpo $(DEPDIR)/libgstdccp_la-gstdccpclientsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdccpclientsrc.c' object='libgstdccp_la-gstdccpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdccpclientsrc.c' object='libgstdccp_la-gstdccpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpclientsrc.lo `test -f 'gstdccpclientsrc.c' || echo '$(srcdir)/'`gstdccpclientsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdccp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdccp_la_CFLAGS) $(CFLAGS) -c -o libgstdccp_la-gstdccpclientsrc.lo `test -f 'gstdccpclientsrc.c' || echo '$(srcdir)/'`gstdccpclientsrc.c mostlyclean-libtool: -rm -f *.lo @@ -816,10 +834,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/dccp/gstdccp_common.h b/gst/dccp/gstdccp_common.h index a2c2ca2..cc4c16a 100644 --- a/gst/dccp/gstdccp_common.h +++ b/gst/dccp/gstdccp_common.h @@ -29,7 +29,9 @@ #else /* ws2_32.dll has getaddrinfo and freeaddrinfo on Windows XP and later. * minwg32 headers check WINVER before allowing the use of these */ +#ifndef WINVER # define WINVER 0x0501 +#endif # include # include #ifndef socklen_t @@ -37,6 +39,7 @@ #endif #endif #include +#include <_stdint.h> #include #include diff --git a/gst/dccp/gstdccpclientsink.c b/gst/dccp/gstdccpclientsink.c index a890dcb..c684c21 100644 --- a/gst/dccp/gstdccpclientsink.c +++ b/gst/dccp/gstdccpclientsink.c @@ -73,6 +73,7 @@ static gboolean gst_dccp_client_sink_stop (GstBaseSink * bsink); static gboolean gst_dccp_client_sink_start (GstBaseSink * bsink); static GstFlowReturn gst_dccp_client_sink_render (GstBaseSink * bsink, GstBuffer * buf); +static void gst_dccp_client_sink_finalize (GObject * gobject); GST_DEBUG_CATEGORY_STATIC (dccpclientsink_debug); @@ -167,6 +168,16 @@ gst_dccp_client_sink_get_property (GObject * object, guint prop_id, } } +static void +gst_dccp_client_sink_finalize (GObject * gobject) +{ + GstDCCPClientSink *this = GST_DCCP_CLIENT_SINK (gobject); + + g_free (this->host); + + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + /* * Starts the element. If the sockfd property was not the default, this method * will create a new socket and connect to the server. @@ -228,8 +239,7 @@ gst_dccp_client_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_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "DCCP client sink", "Sink/Network", @@ -276,6 +286,7 @@ gst_dccp_client_sink_class_init (GstDCCPClientSinkClass * klass) gobject_class->set_property = gst_dccp_client_sink_set_property; gobject_class->get_property = gst_dccp_client_sink_get_property; + gobject_class->finalize = gst_dccp_client_sink_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT, g_param_spec_int ("port", "Port", diff --git a/gst/dccp/gstdccpclientsrc.c b/gst/dccp/gstdccpclientsrc.c index 55f9185..f95d9a7 100644 --- a/gst/dccp/gstdccpclientsrc.c +++ b/gst/dccp/gstdccpclientsrc.c @@ -272,8 +272,7 @@ gst_dccp_client_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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "DCCP client source", "Source/Network", diff --git a/gst/dccp/gstdccpserversink.c b/gst/dccp/gstdccpserversink.c index 089fe3a..bb0e6f7 100644 --- a/gst/dccp/gstdccpserversink.c +++ b/gst/dccp/gstdccpserversink.c @@ -336,8 +336,7 @@ gst_dccp_server_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_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "DCCP server sink", "Sink/Network", diff --git a/gst/dccp/gstdccpserversrc.c b/gst/dccp/gstdccpserversrc.c index 5dbb633..aa9256d 100644 --- a/gst/dccp/gstdccpserversrc.c +++ b/gst/dccp/gstdccpserversrc.c @@ -262,8 +262,7 @@ gst_dccp_server_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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "DCCP server source", "Source/Network", diff --git a/gst/debugutils/Makefile.am b/gst/debugutils/Makefile.am index d8a025d..eadb82e 100644 --- a/gst/debugutils/Makefile.am +++ b/gst/debugutils/Makefile.am @@ -15,15 +15,21 @@ EXTRA_DIST = debugutils-marshal.list plugin_LTLIBRARIES = libgstdebugutilsbad.la libgstdebugutilsbad_la_SOURCES = \ + gstdebugspy.c \ fpsdisplaysink.c \ debugutilsbad.c \ gstchecksumsink.c \ gstchecksumsink.h \ gstchopmydata.c \ - gstchopmydata.h + gstchopmydata.h \ + gstcompare.c \ + gstcompare.h \ + gstdebugspy.h + nodist_libgstdebugutilsbad_la_SOURCES = $(BUILT_SOURCES) libgstdebugutilsbad_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) libgstdebugutilsbad_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) \ -lgstinterfaces-$(GST_MAJORMINOR) $(GST_LIBS) libgstdebugutilsbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstdebugutilsbad_la_LIBTOOLFLAGS = --tag=disable-static @@ -42,4 +48,4 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ - > $@ \ No newline at end of file + > $@ diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in index 2261e1d..a31ed70 100644 --- a/gst/debugutils/Makefile.in +++ b/gst/debugutils/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -50,6 +50,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -108,24 +109,32 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstdebugutilsbad_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstdebugutilsbad_la_OBJECTS = \ + libgstdebugutilsbad_la-gstdebugspy.lo \ libgstdebugutilsbad_la-fpsdisplaysink.lo \ libgstdebugutilsbad_la-debugutilsbad.lo \ libgstdebugutilsbad_la-gstchecksumsink.lo \ - libgstdebugutilsbad_la-gstchopmydata.lo + libgstdebugutilsbad_la-gstchopmydata.lo \ + libgstdebugutilsbad_la-gstcompare.lo am__objects_1 = libgstdebugutilsbad_la-debugutils-marshal.lo am__objects_2 = am__objects_3 = $(am__objects_1) $(am__objects_2) nodist_libgstdebugutilsbad_la_OBJECTS = $(am__objects_3) libgstdebugutilsbad_la_OBJECTS = $(am_libgstdebugutilsbad_la_OBJECTS) \ $(nodist_libgstdebugutilsbad_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdebugutilsbad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -141,21 +150,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdebugutilsbad_la_SOURCES) \ $(nodist_libgstdebugutilsbad_la_SOURCES) @@ -168,7 +177,6 @@ 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@ @@ -186,7 +194,6 @@ 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@ @@ -221,6 +228,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -260,6 +268,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -277,6 +286,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -285,13 +295,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -316,13 +329,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -370,6 +384,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -401,8 +416,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -426,6 +445,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -450,10 +471,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -465,6 +490,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -489,6 +518,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -524,7 +554,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -555,16 +584,21 @@ CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = debugutils-marshal.list plugin_LTLIBRARIES = libgstdebugutilsbad.la libgstdebugutilsbad_la_SOURCES = \ + gstdebugspy.c \ fpsdisplaysink.c \ debugutilsbad.c \ gstchecksumsink.c \ gstchecksumsink.h \ gstchopmydata.c \ - gstchopmydata.h + gstchopmydata.h \ + gstcompare.c \ + gstcompare.h \ + gstdebugspy.h nodist_libgstdebugutilsbad_la_SOURCES = $(BUILT_SOURCES) libgstdebugutilsbad_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) libgstdebugutilsbad_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) \ -lgstinterfaces-$(GST_MAJORMINOR) $(GST_LIBS) libgstdebugutilsbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) @@ -596,6 +630,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -636,7 +671,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdebugutilsbad.la: $(libgstdebugutilsbad_la_OBJECTS) $(libgstdebugutilsbad_la_DEPENDENCIES) +libgstdebugutilsbad.la: $(libgstdebugutilsbad_la_OBJECTS) $(libgstdebugutilsbad_la_DEPENDENCIES) $(EXTRA_libgstdebugutilsbad_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdebugutilsbad_la_LINK) -rpath $(plugindir) $(libgstdebugutilsbad_la_OBJECTS) $(libgstdebugutilsbad_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -650,70 +685,78 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdebugutilsbad_la-fpsdisplaysink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdebugutilsbad_la-gstchecksumsink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdebugutilsbad_la-gstchopmydata.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdebugutilsbad_la-gstcompare.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdebugutilsbad_la-gstdebugspy.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstdebugutilsbad_la-gstdebugspy.lo: gstdebugspy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-gstdebugspy.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-gstdebugspy.Tpo -c -o libgstdebugutilsbad_la-gstdebugspy.lo `test -f 'gstdebugspy.c' || echo '$(srcdir)/'`gstdebugspy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-gstdebugspy.Tpo $(DEPDIR)/libgstdebugutilsbad_la-gstdebugspy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdebugspy.c' object='libgstdebugutilsbad_la-gstdebugspy.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstdebugspy.lo `test -f 'gstdebugspy.c' || echo '$(srcdir)/'`gstdebugspy.c libgstdebugutilsbad_la-fpsdisplaysink.lo: fpsdisplaysink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-fpsdisplaysink.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-fpsdisplaysink.Tpo -c -o libgstdebugutilsbad_la-fpsdisplaysink.lo `test -f 'fpsdisplaysink.c' || echo '$(srcdir)/'`fpsdisplaysink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-fpsdisplaysink.Tpo $(DEPDIR)/libgstdebugutilsbad_la-fpsdisplaysink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fpsdisplaysink.c' object='libgstdebugutilsbad_la-fpsdisplaysink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fpsdisplaysink.c' object='libgstdebugutilsbad_la-fpsdisplaysink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-fpsdisplaysink.lo `test -f 'fpsdisplaysink.c' || echo '$(srcdir)/'`fpsdisplaysink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-fpsdisplaysink.lo `test -f 'fpsdisplaysink.c' || echo '$(srcdir)/'`fpsdisplaysink.c libgstdebugutilsbad_la-debugutilsbad.lo: debugutilsbad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-debugutilsbad.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-debugutilsbad.Tpo -c -o libgstdebugutilsbad_la-debugutilsbad.lo `test -f 'debugutilsbad.c' || echo '$(srcdir)/'`debugutilsbad.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-debugutilsbad.Tpo $(DEPDIR)/libgstdebugutilsbad_la-debugutilsbad.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debugutilsbad.c' object='libgstdebugutilsbad_la-debugutilsbad.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='debugutilsbad.c' object='libgstdebugutilsbad_la-debugutilsbad.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-debugutilsbad.lo `test -f 'debugutilsbad.c' || echo '$(srcdir)/'`debugutilsbad.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-debugutilsbad.lo `test -f 'debugutilsbad.c' || echo '$(srcdir)/'`debugutilsbad.c libgstdebugutilsbad_la-gstchecksumsink.lo: gstchecksumsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-gstchecksumsink.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-gstchecksumsink.Tpo -c -o libgstdebugutilsbad_la-gstchecksumsink.lo `test -f 'gstchecksumsink.c' || echo '$(srcdir)/'`gstchecksumsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-gstchecksumsink.Tpo $(DEPDIR)/libgstdebugutilsbad_la-gstchecksumsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstchecksumsink.c' object='libgstdebugutilsbad_la-gstchecksumsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstchecksumsink.c' object='libgstdebugutilsbad_la-gstchecksumsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstchecksumsink.lo `test -f 'gstchecksumsink.c' || echo '$(srcdir)/'`gstchecksumsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstchecksumsink.lo `test -f 'gstchecksumsink.c' || echo '$(srcdir)/'`gstchecksumsink.c libgstdebugutilsbad_la-gstchopmydata.lo: gstchopmydata.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-gstchopmydata.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-gstchopmydata.Tpo -c -o libgstdebugutilsbad_la-gstchopmydata.lo `test -f 'gstchopmydata.c' || echo '$(srcdir)/'`gstchopmydata.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-gstchopmydata.Tpo $(DEPDIR)/libgstdebugutilsbad_la-gstchopmydata.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstchopmydata.c' object='libgstdebugutilsbad_la-gstchopmydata.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstchopmydata.c' object='libgstdebugutilsbad_la-gstchopmydata.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstchopmydata.lo `test -f 'gstchopmydata.c' || echo '$(srcdir)/'`gstchopmydata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstchopmydata.lo `test -f 'gstchopmydata.c' || echo '$(srcdir)/'`gstchopmydata.c + +libgstdebugutilsbad_la-gstcompare.lo: gstcompare.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-gstcompare.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-gstcompare.Tpo -c -o libgstdebugutilsbad_la-gstcompare.lo `test -f 'gstcompare.c' || echo '$(srcdir)/'`gstcompare.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-gstcompare.Tpo $(DEPDIR)/libgstdebugutilsbad_la-gstcompare.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcompare.c' object='libgstdebugutilsbad_la-gstcompare.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-gstcompare.lo `test -f 'gstcompare.c' || echo '$(srcdir)/'`gstcompare.c libgstdebugutilsbad_la-debugutils-marshal.lo: debugutils-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -MT libgstdebugutilsbad_la-debugutils-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdebugutilsbad_la-debugutils-marshal.Tpo -c -o libgstdebugutilsbad_la-debugutils-marshal.lo `test -f 'debugutils-marshal.c' || echo '$(srcdir)/'`debugutils-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebugutilsbad_la-debugutils-marshal.Tpo $(DEPDIR)/libgstdebugutilsbad_la-debugutils-marshal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debugutils-marshal.c' object='libgstdebugutilsbad_la-debugutils-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='debugutils-marshal.c' object='libgstdebugutilsbad_la-debugutils-marshal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-debugutils-marshal.lo `test -f 'debugutils-marshal.c' || echo '$(srcdir)/'`debugutils-marshal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebugutilsbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebugutilsbad_la_CFLAGS) $(CFLAGS) -c -o libgstdebugutilsbad_la-debugutils-marshal.lo `test -f 'debugutils-marshal.c' || echo '$(srcdir)/'`debugutils-marshal.c mostlyclean-libtool: -rm -f *.lo @@ -822,10 +865,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/debugutils/debugutilsbad.c b/gst/debugutils/debugutilsbad.c index 3ceec51..2ee7f93 100644 --- a/gst/debugutils/debugutilsbad.c +++ b/gst/debugutils/debugutilsbad.c @@ -26,6 +26,8 @@ GType gst_checksum_sink_get_type (void); GType fps_display_sink_get_type (void); GType gst_chop_my_data_get_type (void); +GType gst_compare_get_type (void); +GType gst_debug_spy_get_type (void); static gboolean plugin_init (GstPlugin * plugin) @@ -36,6 +38,11 @@ plugin_init (GstPlugin * plugin) fps_display_sink_get_type ()); gst_element_register (plugin, "chopmydata", GST_RANK_NONE, gst_chop_my_data_get_type ()); + gst_element_register (plugin, "compare", GST_RANK_NONE, + gst_compare_get_type ()); + gst_element_register (plugin, "debugspy", GST_RANK_NONE, + gst_debug_spy_get_type ()); + return TRUE; } diff --git a/gst/debugutils/fpsdisplaysink.c b/gst/debugutils/fpsdisplaysink.c index 489d881..8fe8915 100644 --- a/gst/debugutils/fpsdisplaysink.c +++ b/gst/debugutils/fpsdisplaysink.c @@ -205,8 +205,8 @@ fps_display_sink_class_init (GstFPSDisplaySinkClass * klass) gstelement_klass->change_state = fps_display_sink_change_state; - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&fps_display_sink_template)); + gst_element_class_add_static_pad_template (gstelement_klass, + &fps_display_sink_template); gst_element_class_set_details_simple (gstelement_klass, "Measure and show framerate on videosink", "Sink/Video", diff --git a/gst/debugutils/gstchecksumsink.c b/gst/debugutils/gstchecksumsink.c index bf9fba6..5beef5a 100644 --- a/gst/debugutils/gstchecksumsink.c +++ b/gst/debugutils/gstchecksumsink.c @@ -55,10 +55,10 @@ gst_checksum_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 (&gst_checksum_sink_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_checksum_sink_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_checksum_sink_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_checksum_sink_sink_template); gst_element_class_set_details_simple (element_class, "Checksum sink", "Debug/Sink", "Calculates a checksum for buffers", diff --git a/gst/debugutils/gstchopmydata.c b/gst/debugutils/gstchopmydata.c index 16109ad..48da58f 100644 --- a/gst/debugutils/gstchopmydata.c +++ b/gst/debugutils/gstchopmydata.c @@ -98,10 +98,10 @@ gst_chop_my_data_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_chop_my_data_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_chop_my_data_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_chop_my_data_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_chop_my_data_sink_template); gst_element_class_set_details_simple (element_class, "FIXME", "Generic", "FIXME", "David Schleef "); diff --git a/gst/debugutils/gstcompare.c b/gst/debugutils/gstcompare.c new file mode 100644 index 0000000..92b8fa4 --- /dev/null +++ b/gst/debugutils/gstcompare.c @@ -0,0 +1,662 @@ +/* GStreamer Element + * + * Copyright 2011 Collabora Ltd. + * @author: Mark Nauwelaerts + * Copyright 2011 Nokia Corp. + * + * 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 "gstcompare.h" + +GST_DEBUG_CATEGORY_STATIC (compare_debug); +#define GST_CAT_DEFAULT compare_debug + + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +static GstStaticPadTemplate check_sink_factory = +GST_STATIC_PAD_TEMPLATE ("check", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +enum GstCompareMethod +{ + GST_COMPARE_METHOD_MEM, + GST_COMPARE_METHOD_MAX, + GST_COMPARE_METHOD_SSIM +}; + +#define GST_COMPARE_METHOD_TYPE (gst_compare_method_get_type()) +static GType +gst_compare_method_get_type (void) +{ + static GType method_type = 0; + + static const GEnumValue method_types[] = { + {GST_COMPARE_METHOD_MEM, "Memory", "mem"}, + {GST_COMPARE_METHOD_MAX, "Maximum metric", "max"}, + {GST_COMPARE_METHOD_SSIM, "SSIM (raw video)", "ssim"}, + {0, NULL, NULL} + }; + + if (!method_type) { + method_type = g_enum_register_static ("GstCompareMethod", method_types); + } + return method_type; +} + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_META, + PROP_OFFSET_TS, + PROP_METHOD, + PROP_THRESHOLD, + PROP_UPPER, + PROP_LAST +}; + +#define DEFAULT_META GST_BUFFER_COPY_ALL +#define DEFAULT_OFFSET_TS FALSE +#define DEFAULT_METHOD GST_COMPARE_METHOD_MEM +#define DEFAULT_THRESHOLD 0 +#define DEFAULT_UPPER TRUE + +static void gst_compare_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_compare_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static void gst_compare_reset (GstCompare * overlay); + +static GstCaps *gst_compare_getcaps (GstPad * pad); +static GstFlowReturn gst_compare_collect_pads (GstCollectPads * cpads, + GstCompare * comp); + +static GstStateChangeReturn gst_compare_change_state (GstElement * element, + GstStateChange transition); + +GST_BOILERPLATE (GstCompare, gst_compare, GstElement, GST_TYPE_ELEMENT); + + +static void +gst_compare_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, + &check_sink_factory); + gst_element_class_set_details_simple (element_class, "Compare buffers", + "Filter/Debug", "Compares incoming buffers", + "Mark Nauwelaerts "); +} + +static void +gst_compare_finalize (GObject * object) +{ + GstCompare *comp = GST_COMPARE (object); + + gst_object_unref (comp->cpads); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_compare_class_init (GstCompareClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + GST_DEBUG_CATEGORY_INIT (compare_debug, "compare", 0, "Compare buffers"); + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_compare_change_state); + + gobject_class->set_property = gst_compare_set_property; + gobject_class->get_property = gst_compare_get_property; + gobject_class->finalize = gst_compare_finalize; + + g_object_class_install_property (gobject_class, PROP_META, + g_param_spec_flags ("meta", "Compare Meta", + "Indicates which metadata should be compared", + gst_buffer_copy_flags_get_type (), DEFAULT_META, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_OFFSET_TS, + g_param_spec_boolean ("offset-ts", "Offsets Timestamps", + "Consider OFFSET and OFFSET_END part of timestamp metadata", + DEFAULT_OFFSET_TS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_METHOD, + g_param_spec_enum ("method", "Content Compare Method", + "Method to compare buffer content", + GST_COMPARE_METHOD_TYPE, DEFAULT_METHOD, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_THRESHOLD, + g_param_spec_double ("threshold", "Content Threshold", + "Threshold beyond which to consider content different as determined by content-method", + 0, G_MAXDOUBLE, DEFAULT_THRESHOLD, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_UPPER, + g_param_spec_boolean ("upper", "Threshold Upper Bound", + "Whether threshold value is upper bound or lower bound for difference measure", + DEFAULT_UPPER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_compare_init (GstCompare * comp, GstCompareClass * klass) +{ + comp->cpads = gst_collect_pads_new (); + gst_collect_pads_set_function (comp->cpads, + (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_compare_collect_pads), + comp); + + comp->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_pad_set_getcaps_function (comp->sinkpad, gst_compare_getcaps); + gst_element_add_pad (GST_ELEMENT (comp), comp->sinkpad); + + comp->checkpad = + gst_pad_new_from_static_template (&check_sink_factory, "check"); + gst_pad_set_getcaps_function (comp->checkpad, gst_compare_getcaps); + gst_element_add_pad (GST_ELEMENT (comp), comp->checkpad); + + gst_collect_pads_add_pad_full (comp->cpads, comp->sinkpad, + sizeof (GstCollectData), NULL); + gst_collect_pads_add_pad_full (comp->cpads, comp->checkpad, + sizeof (GstCollectData), NULL); + + comp->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_getcaps_function (comp->srcpad, gst_compare_getcaps); + gst_element_add_pad (GST_ELEMENT (comp), comp->srcpad); + + /* init properties */ + comp->meta = DEFAULT_META; + comp->offset_ts = DEFAULT_OFFSET_TS; + comp->method = DEFAULT_METHOD; + comp->threshold = DEFAULT_THRESHOLD; + comp->upper = DEFAULT_UPPER; + + gst_compare_reset (comp); +} + +static void +gst_compare_reset (GstCompare * comp) +{ +} + +static GstCaps * +gst_compare_getcaps (GstPad * pad) +{ + GstCompare *comp; + GstPad *otherpad; + GstCaps *result; + + comp = GST_COMPARE (gst_pad_get_parent (pad)); + if (G_UNLIKELY (comp == NULL)) + return gst_caps_new_any (); + + otherpad = (pad == comp->srcpad ? comp->sinkpad : comp->srcpad); + result = gst_pad_peer_get_caps (otherpad); + if (result == NULL) + result = gst_caps_new_any (); + + gst_object_unref (comp); + + return result; +} + +static void +gst_compare_meta (GstCompare * comp, GstBuffer * buf1, GstBuffer * buf2) +{ + gint flags = 0; + + if (comp->meta & GST_BUFFER_COPY_FLAGS) { + if (GST_BUFFER_FLAGS (buf1) != GST_BUFFER_FLAGS (buf2)) { + flags |= GST_BUFFER_COPY_FLAGS; + GST_DEBUG_OBJECT (comp, "flags %d != flags %d", GST_BUFFER_FLAGS (buf1), + GST_BUFFER_FLAGS (buf2)); + } + } + if (comp->meta & GST_BUFFER_COPY_TIMESTAMPS) { + if (GST_BUFFER_TIMESTAMP (buf1) != GST_BUFFER_TIMESTAMP (buf2)) { + flags |= GST_BUFFER_COPY_TIMESTAMPS; + GST_DEBUG_OBJECT (comp, + "ts %" GST_TIME_FORMAT " != ts %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf1)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf2))); + } + if (GST_BUFFER_DURATION (buf1) != GST_BUFFER_DURATION (buf2)) { + flags |= GST_BUFFER_COPY_TIMESTAMPS; + GST_DEBUG_OBJECT (comp, + "dur %" GST_TIME_FORMAT " != dur %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_DURATION (buf1)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf2))); + } + if (comp->offset_ts) { + if (GST_BUFFER_OFFSET (buf1) != GST_BUFFER_OFFSET (buf2)) { + flags |= GST_BUFFER_COPY_TIMESTAMPS; + GST_DEBUG_OBJECT (comp, + "offset %" G_GINT64_FORMAT " != offset %" G_GINT64_FORMAT, + GST_BUFFER_OFFSET (buf1), GST_BUFFER_OFFSET (buf2)); + } + if (GST_BUFFER_OFFSET_END (buf1) != GST_BUFFER_OFFSET_END (buf2)) { + flags |= GST_BUFFER_COPY_TIMESTAMPS; + GST_DEBUG_OBJECT (comp, + "offset_end %" G_GINT64_FORMAT " != offset_end %" G_GINT64_FORMAT, + GST_BUFFER_OFFSET_END (buf1), GST_BUFFER_OFFSET_END (buf2)); + } + } + } + if (comp->meta & GST_BUFFER_COPY_CAPS) { + if (!gst_caps_is_equal (GST_BUFFER_CAPS (buf1), GST_BUFFER_CAPS (buf2))) { + flags |= GST_BUFFER_COPY_CAPS; + GST_DEBUG_OBJECT (comp, + "caps %" GST_PTR_FORMAT " != caps %" GST_PTR_FORMAT, + GST_BUFFER_CAPS (buf1), GST_BUFFER_CAPS (buf2)); + } + } + + /* signal mismatch by debug and message */ + if (flags) { + GST_WARNING_OBJECT (comp, "buffers %p and %p failed metadata match %d", + buf1, buf2, flags); + + gst_element_post_message (GST_ELEMENT (comp), + gst_message_new_element (GST_OBJECT (comp), + gst_structure_new ("delta", "meta", G_TYPE_INT, flags, NULL))); + } +} + +/* when comparing contents, it is already ensured sizes are equal */ + +static gint +gst_compare_mem (GstCompare * comp, GstBuffer * buf1, GstBuffer * buf2) +{ + return memcmp (GST_BUFFER_DATA (buf1), GST_BUFFER_DATA (buf2), + GST_BUFFER_SIZE (buf1)) ? 1 : 0; +} + +static gint +gst_compare_max (GstCompare * comp, GstBuffer * buf1, GstBuffer * buf2) +{ + gint i, delta = 0; + gint8 *data1, *data2; + + data1 = (gint8 *) GST_BUFFER_DATA (buf1); + data2 = (gint8 *) GST_BUFFER_DATA (buf2); + + /* primitive loop */ + for (i = 0; i < GST_BUFFER_SIZE (buf1); i++) { + gint diff = ABS (*data1 - *data2); + if (diff > 0) + GST_LOG_OBJECT (comp, "diff at %d = %d", i, diff); + delta = MAX (delta, ABS (*data1 - *data2)); + data1++; + data2++; + } + + return delta; +} + +static double +gst_compare_ssim_window (GstCompare * comp, guint8 * data1, guint8 * data2, + gint width, gint height, gint step, gint stride) +{ + gint count = 0, i, j; + gint sum1 = 0, sum2 = 0, ssum1 = 0, ssum2 = 0, acov = 0; + gdouble avg1, avg2, var1, var2, cov; + + const gdouble k1 = 0.01; + const gdouble k2 = 0.03; + const gdouble L = 255.0; + const gdouble c1 = (k1 * L) * (k1 * L); + const gdouble c2 = (k2 * L) * (k2 * L); + + /* plain and simple; no fancy optimizations */ + for (i = 0; i < height; i++) { + for (j = 0; j < width; j++) { + sum1 += *data1; + sum2 += *data2; + ssum1 += *data1 * *data1; + ssum2 += *data2 * *data2; + acov += *data1 * *data2; + count++; + data1 += step; + data2 += step; + } + data1 -= j * step; + data2 -= j * step; + data1 += stride; + data2 += stride; + } + + avg1 = sum1 / count; + avg2 = sum2 / count; + var1 = ssum1 / count - avg1 * avg1; + var2 = ssum2 / count - avg2 * avg2; + cov = acov / count - avg1 * avg2; + + return (2 * avg1 * avg2 + c1) * (2 * cov + c2) / + ((avg1 * avg1 + avg2 * avg2 + c1) * (var1 + var2 + c2)); +} + +/* @width etc are for the particular component */ +static gdouble +gst_compare_ssim_component (GstCompare * comp, guint8 * data1, guint8 * data2, + gint width, gint height, gint step, gint stride) +{ + const gint window = 16; + gdouble ssim_sum = 0; + gint count = 0, i, j; + + for (j = 0; j + (window / 2) < height; j += (window / 2)) { + for (i = 0; i + (window / 2) < width; i += (window / 2)) { + gdouble ssim; + + ssim = gst_compare_ssim_window (comp, data1 + step * i + j * stride, + data2 + step * i + j * stride, + MIN (window, width - i), MIN (window, height - j), step, stride); + GST_LOG_OBJECT (comp, "ssim for %dx%d at (%d, %d) = %f", window, window, + i, j, ssim); + ssim_sum += ssim; + count++; + } + } + + return (ssim_sum / count); +} + +static gdouble +gst_compare_ssim (GstCompare * comp, GstBuffer * buf1, GstBuffer * buf2) +{ + GstCaps *caps; + GstVideoFormat format, f; + gint width, height, w, h, i, comps; + gdouble cssim[4], ssim, c[4] = { 1.0, 0.0, 0.0, 0.0 }; + guint8 *data1, *data2; + + caps = GST_BUFFER_CAPS (buf1); + if (!caps) + goto invalid_input; + + if (!gst_video_format_parse_caps (caps, &format, &width, &height)) + goto invalid_input; + + caps = GST_BUFFER_CAPS (buf2); + if (!caps) + goto invalid_input; + + if (!gst_video_format_parse_caps (caps, &f, &w, &h)) + goto invalid_input; + + if (f != format || w != width || h != height) + return comp->threshold + 1; + + comps = gst_video_format_is_gray (format) ? 1 : 3; + if (gst_video_format_has_alpha (format)) + comps += 1; + + /* note that some are reported both yuv and gray */ + for (i = 0; i < comps; ++i) + c[i] = 1.0; + /* increase luma weight if yuv */ + if (gst_video_format_is_yuv (format) && (comps > 1)) + c[0] = comps - 1; + for (i = 0; i < comps; ++i) + c[i] /= (gst_video_format_is_yuv (format) && (comps > 1)) ? + 2 * (comps - 1) : comps; + + data1 = GST_BUFFER_DATA (buf1); + data2 = GST_BUFFER_DATA (buf2); + for (i = 0; i < comps; i++) { + gint offset, cw, ch, step, stride; + + /* only support most common formats */ + if (gst_video_format_get_component_depth (format, i) != 8) + goto unsupported_input; + offset = gst_video_format_get_component_offset (format, i, width, height); + cw = gst_video_format_get_component_width (format, i, width); + ch = gst_video_format_get_component_height (format, i, height); + step = gst_video_format_get_pixel_stride (format, i); + stride = gst_video_format_get_row_stride (format, i, width); + + GST_LOG_OBJECT (comp, "component %d", i); + cssim[i] = gst_compare_ssim_component (comp, data1 + offset, data2 + offset, + cw, ch, step, stride); + GST_LOG_OBJECT (comp, "ssim[%d] = %f", i, cssim[i]); + } + +#ifndef GST_DISABLE_GST_DEBUG + for (i = 0; i < 4; i++) { + GST_DEBUG_OBJECT (comp, "ssim[%d] = %f, c[%d] = %f", i, cssim[i], i, c[i]); + } +#endif + + ssim = cssim[0] * c[0] + cssim[1] * c[1] + cssim[2] * c[2] + cssim[3] * c[3]; + + return ssim; + + /* ERRORS */ +invalid_input: + { + GST_ERROR_OBJECT (comp, "ssim method needs raw video input"); + return 0; + } +unsupported_input: + { + GST_ERROR_OBJECT (comp, "raw video format not supported %" GST_PTR_FORMAT, + caps); + return 0; + } +} + +static void +gst_compare_buffers (GstCompare * comp, GstBuffer * buf1, GstBuffer * buf2) +{ + gdouble delta = 0; + + /* first check metadata */ + gst_compare_meta (comp, buf1, buf2); + + /* check content according to method */ + /* but at least size should match */ + if (GST_BUFFER_SIZE (buf1) != GST_BUFFER_SIZE (buf2)) { + delta = comp->threshold + 1; + } else { + GST_MEMDUMP_OBJECT (comp, "buffer 1", GST_BUFFER_DATA (buf1), + GST_BUFFER_SIZE (buf1)); + GST_MEMDUMP_OBJECT (comp, "buffer 2", GST_BUFFER_DATA (buf2), + GST_BUFFER_SIZE (buf2)); + switch (comp->method) { + case GST_COMPARE_METHOD_MEM: + delta = gst_compare_mem (comp, buf1, buf2); + break; + case GST_COMPARE_METHOD_MAX: + delta = gst_compare_max (comp, buf1, buf2); + break; + case GST_COMPARE_METHOD_SSIM: + delta = gst_compare_ssim (comp, buf1, buf2); + break; + default: + g_assert_not_reached (); + break; + } + } + + if ((comp->upper && delta > comp->threshold) || + (!comp->upper && delta < comp->threshold)) { + GST_WARNING_OBJECT (comp, "buffers %p and %p failed content match %f", + buf1, buf2, delta); + + gst_element_post_message (GST_ELEMENT (comp), + gst_message_new_element (GST_OBJECT (comp), + gst_structure_new ("delta", "content", G_TYPE_DOUBLE, delta, + NULL))); + } +} + +static GstFlowReturn +gst_compare_collect_pads (GstCollectPads * cpads, GstCompare * comp) +{ + GstBuffer *buf1, *buf2; + + buf1 = gst_collect_pads_pop (comp->cpads, + gst_pad_get_element_private (comp->sinkpad)); + + buf2 = gst_collect_pads_pop (comp->cpads, + gst_pad_get_element_private (comp->checkpad)); + + if (!buf1 && !buf2) { + gst_pad_push_event (comp->srcpad, gst_event_new_eos ()); + return GST_FLOW_UNEXPECTED; + } else if (buf1 && buf2) { + gst_compare_buffers (comp, buf1, buf2); + } else { + GST_WARNING_OBJECT (comp, "buffer %p != NULL", buf1 ? buf1 : buf2); + + comp->count++; + gst_element_post_message (GST_ELEMENT (comp), + gst_message_new_element (GST_OBJECT (comp), + gst_structure_new ("delta", "count", G_TYPE_INT, comp->count, + NULL))); + } + + if (buf1) + gst_pad_push (comp->srcpad, buf1); + + if (buf2) + gst_buffer_unref (buf2); + + return GST_FLOW_OK; +} + +static void +gst_compare_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCompare *comp = GST_COMPARE (object); + + switch (prop_id) { + case PROP_META: + comp->meta = g_value_get_flags (value); + break; + case PROP_OFFSET_TS: + comp->offset_ts = g_value_get_boolean (value); + break; + case PROP_METHOD: + comp->method = g_value_get_enum (value); + break; + case PROP_THRESHOLD: + comp->threshold = g_value_get_double (value); + break; + case PROP_UPPER: + comp->upper = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_compare_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstCompare *comp = GST_COMPARE (object); + + switch (prop_id) { + case PROP_META: + g_value_set_flags (value, comp->meta); + break; + case PROP_OFFSET_TS: + g_value_set_boolean (value, comp->offset_ts); + break; + case PROP_METHOD: + g_value_set_enum (value, comp->method); + break; + case PROP_THRESHOLD: + g_value_set_double (value, comp->threshold); + break; + case PROP_UPPER: + g_value_set_boolean (value, comp->upper); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_compare_change_state (GstElement * element, GstStateChange transition) +{ + GstCompare *comp = GST_COMPARE (element); + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_collect_pads_start (comp->cpads); + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_collect_pads_stop (comp->cpads); + break; + default: + break; + } + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_compare_reset (comp); + break; + default: + break; + } + + return GST_STATE_CHANGE_SUCCESS; +} diff --git a/gst/debugutils/gstcompare.h b/gst/debugutils/gstcompare.h new file mode 100644 index 0000000..bee5108 --- /dev/null +++ b/gst/debugutils/gstcompare.h @@ -0,0 +1,75 @@ +/* GStreamer Element + * + * Copyright 2011 Collabora Ltd. + * @author: Mark Nauwelaerts + * Copyright 2011 Nokia Corp. + * + * 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_COMPARE_H__ +#define __GST_COMPARE_H__ + + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_COMPARE \ + (gst_compare_get_type()) +#define GST_COMPARE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_COMPARE, GstCompare)) +#define GST_COMPARE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_COMPARE, GstCompareClass)) +#define GST_COMPARE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_COMPARE, GstCompareClass)) +#define GST_IS_COMPARE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_COMPARE)) +#define GST_IS_COMPARE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_COMPARE)) + +typedef struct _GstCompare GstCompare; +typedef struct _GstCompareClass GstCompareClass; + +struct _GstCompare { + GstElement element; + + GstPad *srcpad; + GstPad *sinkpad; + GstPad *checkpad; + + GstCollectPads *cpads; + + gint count; + + /* properties */ + GstBufferCopyFlags meta; + gboolean offset_ts; + gint method; + gdouble threshold; + gboolean upper; +}; + +struct _GstCompareClass { + GstElementClass parent_class; +}; + +GType gst_compare_get_type(void); + +G_END_DECLS + +#endif /* __GST_COMPARE_H__ */ diff --git a/gst/debugutils/gstdebugspy.c b/gst/debugutils/gstdebugspy.c new file mode 100644 index 0000000..0823f6c --- /dev/null +++ b/gst/debugutils/gstdebugspy.c @@ -0,0 +1,238 @@ +/* + * GStreamer + * Copyright (C) 2005 Thomas Vander Stichele + * Copyright (C) 2005 Ronald S. Bultje + * Copyright (C) 2011 Igalia S.L. + * + * 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-debugspy + * + * A spy element that can provide information on buffers going through it, with + * bus messages. + * + * + * Example launch line + * |[ + * gst-launch -m videotestsrc ! debugspy ! fakesink + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include "gstdebugspy.h" + +GST_DEBUG_CATEGORY_STATIC (gst_debug_spy_debug); +#define GST_CAT_DEFAULT gst_debug_spy_debug + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_SILENT, + PROP_CHECKSUM_TYPE +}; + +/* create a GType for GChecksumType */ +#define GST_DEBUG_SPY_CHECKSUM_TYPE (gst_debug_spy_checksum_get_type()) +static GType +gst_debug_spy_checksum_get_type (void) +{ + static GType checksum_type = 0; + + static const GEnumValue checksum_values[] = { + {G_CHECKSUM_MD5, "Use the MD5 hashing algorithm", "md5"}, + {G_CHECKSUM_SHA1, "Use the SHA-1 hashing algorithm", "sha1"}, + {G_CHECKSUM_SHA256, "Use the SHA-256 hashing algorithm", "sha256"}, + {0, NULL, NULL} + }; + + if (!checksum_type) + checksum_type = g_enum_register_static ("GChecksumType", checksum_values); + + return checksum_type; +} + +/* the capabilities of the inputs and outputs. + * + * describe the real formats here. + */ +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("ANY") + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("ANY") + ); + +GST_BOILERPLATE (GstDebugSpy, gst_debug_spy, GstBaseTransform, + GST_TYPE_BASE_TRANSFORM); + +static void gst_debug_spy_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_debug_spy_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static GstFlowReturn gst_debug_spy_transform_ip (GstBaseTransform * transform, + GstBuffer * buf); + +/* GObject vmethod implementations */ + +static void +gst_debug_spy_base_init (gpointer gclass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + GST_DEBUG_CATEGORY_INIT (gst_debug_spy_debug, "debugspy", 0, "debugspy"); + + gst_element_class_set_details_simple (element_class, + "DebugSpy", + "Filter/Analyzer/Debug", + "DebugSpy provides information on buffers with bus messages", + "Guillaume Emont "); + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); +} + +/* initialize the debugspy's class */ +static void +gst_debug_spy_class_init (GstDebugSpyClass * klass) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *base_transform_class; + + gobject_class = (GObjectClass *) klass; + base_transform_class = (GstBaseTransformClass *) klass; + + gobject_class->set_property = gst_debug_spy_set_property; + gobject_class->get_property = gst_debug_spy_get_property; + + base_transform_class->passthrough_on_same_caps = TRUE; + base_transform_class->transform_ip = gst_debug_spy_transform_ip; + + g_object_class_install_property (gobject_class, PROP_SILENT, + g_param_spec_boolean ("silent", "Silent", "Produce verbose output ?", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_CHECKSUM_TYPE, + g_param_spec_enum ("checksum-type", "Checksum TYpe", + "Checksum algorithm to use", GST_DEBUG_SPY_CHECKSUM_TYPE, + G_CHECKSUM_SHA1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + +} + +/* initialize the new element + * instantiate pads and add them to element + * set pad calback functions + * initialize instance structure + */ +static void +gst_debug_spy_init (GstDebugSpy * debugspy, GstDebugSpyClass * gclass) +{ + debugspy->silent = FALSE; + debugspy->checksum_type = G_CHECKSUM_SHA1; +} + +static void +gst_debug_spy_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstDebugSpy *debugspy = GST_DEBUGSPY (object); + + switch (prop_id) { + case PROP_SILENT: + debugspy->silent = g_value_get_boolean (value); + break; + case PROP_CHECKSUM_TYPE: + debugspy->checksum_type = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_debug_spy_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstDebugSpy *debugspy = GST_DEBUGSPY (object); + + switch (prop_id) { + case PROP_SILENT: + g_value_set_boolean (value, debugspy->silent); + break; + case PROP_CHECKSUM_TYPE: + g_value_set_enum (value, debugspy->checksum_type); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* GstBaseTransform vmethod implementations */ + +static GstFlowReturn +gst_debug_spy_transform_ip (GstBaseTransform * transform, GstBuffer * buf) +{ + GstDebugSpy *debugspy = GST_DEBUGSPY (transform); + + if (debugspy->silent == FALSE) { + gchar *checksum; + GstMessage *message; + GstStructure *message_structure; + + checksum = g_compute_checksum_for_data (debugspy->checksum_type, + GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + + message_structure = gst_structure_new ("buffer", + "checksum", G_TYPE_STRING, checksum, + "timestamp", GST_TYPE_CLOCK_TIME, GST_BUFFER_TIMESTAMP (buf), + "duration", GST_TYPE_CLOCK_TIME, GST_BUFFER_DURATION (buf), + "offset", G_TYPE_UINT64, GST_BUFFER_OFFSET (buf), + "offset_end", G_TYPE_UINT64, GST_BUFFER_OFFSET_END (buf), + "size", G_TYPE_UINT, GST_BUFFER_SIZE (buf), + "caps", GST_TYPE_CAPS, GST_BUFFER_CAPS (buf), NULL); + + g_free (checksum); + + message = + gst_message_new_element (GST_OBJECT (transform), message_structure); + + gst_element_post_message (GST_ELEMENT (transform), message); + + } + + return GST_FLOW_OK; +} diff --git a/gst/debugutils/gstdebugspy.h b/gst/debugutils/gstdebugspy.h new file mode 100644 index 0000000..3f59b63 --- /dev/null +++ b/gst/debugutils/gstdebugspy.h @@ -0,0 +1,63 @@ +/* + * GStreamer + * Copyright (C) 2005 Thomas Vander Stichele + * Copyright (C) 2005 Ronald S. Bultje + * Copyright (C) 2011 Igalia S.L. +* + * 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_DEBUGSPY_H__ +#define __GST_DEBUGSPY_H__ + +#include +#include + +G_BEGIN_DECLS + +/* #defines don't like whitespacey bits */ +#define GST_TYPE_DEBUGSPY \ + (gst_debug_spy_get_type()) +#define GST_DEBUGSPY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DEBUGSPY,GstDebugSpy)) +#define GST_DEBUGSPY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DEBUGSPY,GstDebugSpyClass)) +#define GST_IS_DEBUGSPY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DEBUGSPY)) +#define GST_IS_DEBUGSPY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEBUGSPY)) + +typedef struct _GstDebugSpy GstDebugSpy; +typedef struct _GstDebugSpyClass GstDebugSpyClass; + +struct _GstDebugSpy +{ + GstBaseTransform transform; + + gboolean silent; + GChecksumType checksum_type; +}; + +struct _GstDebugSpyClass +{ + GstBaseTransformClass parent_class; +}; + +GType gst_debug_spy_get_type (void); + +G_END_DECLS + +#endif /* __GST_DEBUGSPY_H__ */ diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in index 7e16925..7f2fca9 100644 --- a/gst/dtmf/Makefile.in +++ b/gst/dtmf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstdtmf_la_OBJECTS = libgstdtmf_la-gstdtmfsrc.lo \ libgstdtmf_la-gstrtpdtmfdepay.lo libgstdtmf_la-tone_detect.lo \ libgstdtmf_la-gstdtmf.lo libgstdtmf_la_OBJECTS = $(am_libgstdtmf_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdtmf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdtmf_la_SOURCES) DIST_SOURCES = $(libgstdtmf_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -619,7 +646,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdtmf.la: $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_DEPENDENCIES) +libgstdtmf.la: $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_DEPENDENCIES) $(EXTRA_libgstdtmf_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdtmf_la_LINK) -rpath $(plugindir) $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -638,74 +665,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdtmf_la-gstdtmfsrc.lo: gstdtmfsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdtmfsrc.c' object='libgstdtmf_la-gstdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdtmfsrc.c' object='libgstdtmf_la-gstdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c libgstdtmf_la-gstdtmfdetect.lo: gstdtmfdetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmfdetect.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmfdetect.Tpo -c -o libgstdtmf_la-gstdtmfdetect.lo `test -f 'gstdtmfdetect.c' || echo '$(srcdir)/'`gstdtmfdetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmfdetect.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmfdetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdtmfdetect.c' object='libgstdtmf_la-gstdtmfdetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdtmfdetect.c' object='libgstdtmf_la-gstdtmfdetect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfdetect.lo `test -f 'gstdtmfdetect.c' || echo '$(srcdir)/'`gstdtmfdetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfdetect.lo `test -f 'gstdtmfdetect.c' || echo '$(srcdir)/'`gstdtmfdetect.c libgstdtmf_la-gstrtpdtmfsrc.lo: gstrtpdtmfsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdtmfsrc.c' object='libgstdtmf_la-gstrtpdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfsrc.c' object='libgstdtmf_la-gstrtpdtmfsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c libgstdtmf_la-gstrtpdtmfdepay.lo: gstrtpdtmfdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfdepay.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdtmfdepay.c' object='libgstdtmf_la-gstrtpdtmfdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfdepay.c' object='libgstdtmf_la-gstrtpdtmfdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c libgstdtmf_la-tone_detect.lo: tone_detect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-tone_detect.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-tone_detect.Tpo -c -o libgstdtmf_la-tone_detect.lo `test -f 'tone_detect.c' || echo '$(srcdir)/'`tone_detect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-tone_detect.Tpo $(DEPDIR)/libgstdtmf_la-tone_detect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tone_detect.c' object='libgstdtmf_la-tone_detect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tone_detect.c' object='libgstdtmf_la-tone_detect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-tone_detect.lo `test -f 'tone_detect.c' || echo '$(srcdir)/'`tone_detect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-tone_detect.lo `test -f 'tone_detect.c' || echo '$(srcdir)/'`tone_detect.c libgstdtmf_la-gstdtmf.lo: gstdtmf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmf.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdtmf.c' object='libgstdtmf_la-gstdtmf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdtmf.c' object='libgstdtmf_la-gstdtmf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c mostlyclean-libtool: -rm -f *.lo @@ -812,10 +830,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/dtmf/gstdtmfcommon.h b/gst/dtmf/gstdtmfcommon.h index aff881b..82617d7 100644 --- a/gst/dtmf/gstdtmfcommon.h +++ b/gst/dtmf/gstdtmfcommon.h @@ -9,9 +9,9 @@ #define MAX_VOLUME 36 #define MIN_EVENT 0 -#define MAX_EVENT 16 +#define MAX_EVENT 15 #define MIN_EVENT_STRING "0" -#define MAX_EVENT_STRING "16" +#define MAX_EVENT_STRING "15" #ifndef M_PI #define M_PI 3.14159265358979323846 /* pi */ diff --git a/gst/dtmf/gstdtmfdetect.c b/gst/dtmf/gstdtmfdetect.c index 0bb9242..7d76aa0 100644 --- a/gst/dtmf/gstdtmfdetect.c +++ b/gst/dtmf/gstdtmfdetect.c @@ -118,10 +118,8 @@ gst_dtmf_detect_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "DTMF detector element", "Filter/Analyzer/Audio", diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c index 79525b5..e3face8 100644 --- a/gst/dtmf/gstdtmfsrc.c +++ b/gst/dtmf/gstdtmfsrc.c @@ -65,7 +65,7 @@ * * number * G_TYPE_INT - * 0-16 + * 0-15 * The event number. * * @@ -110,6 +110,12 @@ * gst_element_send_event (pipeline, event); * * + * When a DTMF tone actually starts or stop, a "dtmf-event-processed" + * element #GstMessage with the same fields as the "dtmf-event" + * #GstEvent that was used to request the event. Also, if any event + * has not been processed when the element goes from the PAUSED to the + * READY state, then a "dtmf-event-dropped" message is posted on the + * #GstBus in the order that they were received. */ #ifdef HAVE_CONFIG_H @@ -235,8 +241,8 @@ gst_dtmf_src_base_init (gpointer g_class) GST_DEBUG_CATEGORY_INIT (gst_dtmf_src_debug, "dtmfsrc", 0, "dtmfsrc element"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_dtmf_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_dtmf_src_template); gst_element_class_set_details_simple (element_class, "DTMF tone generator", "Source/Audio", @@ -323,6 +329,10 @@ gst_dtmf_src_handle_dtmf_event (GstDTMFSrc * dtmfsrc, gint event_type; gboolean start; gint method; + GstClockTime last_stop; + gint event_number; + gint event_volume; + gboolean correct_order; if (!gst_structure_get_int (event_structure, "type", &event_type) || !gst_structure_get_boolean (event_structure, "start", &start) || @@ -335,14 +345,25 @@ gst_dtmf_src_handle_dtmf_event (GstDTMFSrc * dtmfsrc, } } - if (start) { - gint event_number; - gint event_volume; - + if (start) if (!gst_structure_get_int (event_structure, "number", &event_number) || !gst_structure_get_int (event_structure, "volume", &event_volume)) goto failure; + + GST_OBJECT_LOCK (dtmfsrc); + if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop)) + dtmfsrc->last_stop = last_stop; + else + dtmfsrc->last_stop = GST_CLOCK_TIME_NONE; + correct_order = (start != dtmfsrc->last_event_was_start); + dtmfsrc->last_event_was_start = start; + GST_OBJECT_UNLOCK (dtmfsrc); + + if (!correct_order) + goto failure; + + if (start) { GST_DEBUG_OBJECT (dtmfsrc, "Received start event %d with volume %d", event_number, event_volume); gst_dtmf_src_add_start_event (dtmfsrc, event_number, event_volume); @@ -447,19 +468,37 @@ gst_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value, static void gst_dtmf_prepare_timestamps (GstDTMFSrc * dtmfsrc) { - GstClock *clock; + GstClockTime last_stop; + GstClockTime timestamp; + + GST_OBJECT_LOCK (dtmfsrc); + last_stop = dtmfsrc->last_stop; + GST_OBJECT_UNLOCK (dtmfsrc); - clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); - if (clock != NULL) { - dtmfsrc->timestamp = gst_clock_get_time (clock) - - gst_element_get_base_time (GST_ELEMENT (dtmfsrc)); - gst_object_unref (clock); + if (GST_CLOCK_TIME_IS_VALID (last_stop)) { + timestamp = last_stop; } else { - gchar *dtmf_name = gst_element_get_name (dtmfsrc); - GST_ERROR_OBJECT (dtmfsrc, "No clock set for element %s", dtmf_name); - dtmfsrc->timestamp = GST_CLOCK_TIME_NONE; - g_free (dtmf_name); + GstClock *clock; + + /* If there is no valid start time, lets use now as the start time */ + + clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); + if (clock != NULL) { + timestamp = gst_clock_get_time (clock) + - gst_element_get_base_time (GST_ELEMENT (dtmfsrc)); + gst_object_unref (clock); + } else { + gchar *dtmf_name = gst_element_get_name (dtmfsrc); + GST_ERROR_OBJECT (dtmfsrc, "No clock set for element %s", dtmf_name); + dtmfsrc->timestamp = GST_CLOCK_TIME_NONE; + g_free (dtmf_name); + return; + } } + + /* Make sure the timestamp always goes forward */ + if (timestamp > dtmfsrc->timestamp) + dtmfsrc->timestamp = timestamp; } static void @@ -584,6 +623,12 @@ gst_dtmf_src_create_next_tone_packet (GstDTMFSrc * dtmfsrc, /* timestamp and duration of GstBuffer */ GST_BUFFER_DURATION (buf) = dtmfsrc->interval * GST_MSECOND; GST_BUFFER_TIMESTAMP (buf) = dtmfsrc->timestamp; + + GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration " + " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT, + event->event_number, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + dtmfsrc->timestamp += GST_BUFFER_DURATION (buf); /* Set caps on the buffer before pushing it */ @@ -592,6 +637,35 @@ gst_dtmf_src_create_next_tone_packet (GstDTMFSrc * dtmfsrc, return buf; } +static void +gst_dtmf_src_post_message (GstDTMFSrc * dtmfsrc, const gchar * message_name, + GstDTMFSrcEvent * event) +{ + GstStructure *s = NULL; + + switch (event->event_type) { + case DTMF_EVENT_TYPE_START: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, + "method", G_TYPE_INT, 2, + "start", G_TYPE_BOOLEAN, TRUE, + "number", G_TYPE_INT, event->event_number, + "volume", G_TYPE_INT, event->volume, NULL); + break; + case DTMF_EVENT_TYPE_STOP: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 2, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + break; + case DTMF_EVENT_TYPE_PAUSE_TASK: + return; + } + + if (s) + gst_element_post_message (GST_ELEMENT (dtmfsrc), + gst_message_new_element (GST_OBJECT (dtmfsrc), s)); +} + static GstFlowReturn gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, guint length, GstBuffer ** buffer) @@ -617,6 +691,7 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, case DTMF_EVENT_TYPE_STOP: GST_WARNING_OBJECT (dtmfsrc, "Received a DTMF stop event when already stopped"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); break; case DTMF_EVENT_TYPE_START: gst_dtmf_prepare_timestamps (dtmfsrc); @@ -624,6 +699,8 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, event->packet_count = 0; dtmfsrc->last_event = event; event = NULL; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", + dtmfsrc->last_event); break; case DTMF_EVENT_TYPE_PAUSE_TASK: /* @@ -651,10 +728,12 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, case DTMF_EVENT_TYPE_START: GST_WARNING_OBJECT (dtmfsrc, "Received two consecutive DTMF start events"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); break; case DTMF_EVENT_TYPE_STOP: g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event); dtmfsrc->last_event = NULL; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", event); break; case DTMF_EVENT_TYPE_PAUSE_TASK: /* @@ -820,9 +899,12 @@ gst_dtmf_src_change_state (GstElement * element, GstStateChange transition) event = g_async_queue_try_pop (dtmfsrc->event_queue); while (event != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); g_slice_free (GstDTMFSrcEvent, event); event = g_async_queue_try_pop (dtmfsrc->event_queue); } + dtmfsrc->last_event_was_start = FALSE; + dtmfsrc->timestamp = 0; no_preroll = TRUE; break; default: @@ -844,9 +926,11 @@ gst_dtmf_src_change_state (GstElement * element, GstStateChange transition) event = g_async_queue_try_pop (dtmfsrc->event_queue); while (event != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); g_slice_free (GstDTMFSrcEvent, event); event = g_async_queue_try_pop (dtmfsrc->event_queue); } + dtmfsrc->last_event_was_start = FALSE; break; default: diff --git a/gst/dtmf/gstdtmfsrc.h b/gst/dtmf/gstdtmfsrc.h index aa5d35a..ce69bf4 100644 --- a/gst/dtmf/gstdtmfsrc.h +++ b/gst/dtmf/gstdtmfsrc.h @@ -74,6 +74,7 @@ struct _GstDTMFSrc GstBaseSrc parent; GAsyncQueue *event_queue; GstDTMFSrcEvent *last_event; + gboolean last_event_was_start; guint16 interval; GstClockTime timestamp; @@ -81,6 +82,8 @@ struct _GstDTMFSrc gboolean paused; GstClockID clockid; + GstClockTime last_stop; + gint sample_rate; }; diff --git a/gst/dtmf/gstrtpdtmfcommon.h b/gst/dtmf/gstrtpdtmfcommon.h deleted file mode 100644 index c1ab82e..0000000 --- a/gst/dtmf/gstrtpdtmfcommon.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __GST_RTP_DTMF_COMMON_H__ -#define __GST_RTP_DTMF_COMMON_H__ - - -typedef struct -{ - unsigned event:8; /* Current DTMF event */ -#if G_BYTE_ORDER == G_LITTLE_ENDIAN - unsigned volume:6; /* power level of the tone, in dBm0 */ - unsigned r:1; /* Reserved-bit */ - unsigned e:1; /* End-bit */ -#elif G_BYTE_ORDER == G_BIG_ENDIAN - unsigned e:1; /* End-bit */ - unsigned r:1; /* Reserved-bit */ - unsigned volume:6; /* power level of the tone, in dBm0 */ -#else -#error "G_BYTE_ORDER should be big or little endian." -#endif - unsigned duration:16; /* Duration of digit, in timestamp units */ -} GstRTPDTMFPayload; - -#endif /* __GST_RTP_DTMF_COMMON_H__ */ diff --git a/gst/dtmf/gstrtpdtmfdepay.c b/gst/dtmf/gstrtpdtmfdepay.c index 603416d..da1ec2f 100644 --- a/gst/dtmf/gstrtpdtmfdepay.c +++ b/gst/dtmf/gstrtpdtmfdepay.c @@ -216,10 +216,10 @@ gst_rtp_dtmf_depay_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_rtp_dtmf_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dtmf_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dtmf_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dtmf_depay_sink_template); GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_depay_debug, diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c index c7e1c1f..605aca4 100644 --- a/gst/dtmf/gstrtpdtmfsrc.c +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -63,7 +63,7 @@ * * number * G_TYPE_INT - * 0-16 + * 0-15 * The event number. * * @@ -108,7 +108,13 @@ * gst_element_send_event (pipeline, event); * * - */ + * When a DTMF tone actually starts or stop, a "dtmf-event-processed" + * element #GstMessage with the same fields as the "dtmf-event" + * #GstEvent that was used to request the event. Also, if any event + * has not been processed when the element goes from the PAUSED to the + * READY state, then a "dtmf-event-dropped" message is posted on the + * #GstBus in the order that they were received. + */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -122,9 +128,7 @@ #include "gstrtpdtmfsrc.h" #define GST_RTP_DTMF_TYPE_EVENT 1 -#define DEFAULT_PACKET_INTERVAL 50 /* ms */ -#define MIN_PACKET_INTERVAL 10 /* ms */ -#define MAX_PACKET_INTERVAL 50 /* ms */ +#define DEFAULT_PTIME 40 /* ms */ #define DEFAULT_SSRC -1 #define DEFAULT_PT 96 #define DEFAULT_TIMESTAMP_OFFSET -1 @@ -155,7 +159,6 @@ enum PROP_CLOCK_RATE, PROP_TIMESTAMP, PROP_SEQNUM, - PROP_INTERVAL, PROP_REDUNDANCY }; @@ -205,8 +208,8 @@ gst_rtp_dtmf_src_base_init (gpointer g_class) GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_src_debug, "rtpdtmfsrc", 0, "rtpdtmfsrc element"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dtmf_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dtmf_src_template); gst_element_class_set_details_simple (element_class, "RTP DTMF packet generator", "Source/Network", @@ -264,11 +267,6 @@ gst_rtp_dtmf_src_class_init (GstRTPDTMFSrcClass * klass) g_param_spec_uint ("pt", "payload type", "The payload type of the packets", 0, 0x80, DEFAULT_PT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INTERVAL, - g_param_spec_uint ("interval", "Interval between rtp packets", - "Interval in ms between two rtp packets", MIN_PACKET_INTERVAL, - MAX_PACKET_INTERVAL, DEFAULT_PACKET_INTERVAL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_REDUNDANCY, g_param_spec_uint ("packet-redundancy", "Packet Redundancy", "Number of packets to send to indicate start and stop dtmf events", @@ -309,7 +307,7 @@ gst_rtp_dtmf_src_init (GstRTPDTMFSrc * object, GstRTPDTMFSrcClass * g_class) object->ts_offset = DEFAULT_TIMESTAMP_OFFSET; object->pt = DEFAULT_PT; object->clock_rate = DEFAULT_CLOCK_RATE; - object->interval = DEFAULT_PACKET_INTERVAL; + object->ptime = DEFAULT_PTIME; object->packet_redundancy = DEFAULT_PACKET_REDUNDANCY; object->event_queue = @@ -342,6 +340,10 @@ gst_rtp_dtmf_src_handle_dtmf_event (GstRTPDTMFSrc * dtmfsrc, gint event_type; gboolean start; gint method; + GstClockTime last_stop; + gint event_number; + gint event_volume; + gboolean correct_order; if (!gst_structure_get_int (event_structure, "type", &event_type) || !gst_structure_get_boolean (event_structure, "start", &start) || @@ -354,10 +356,24 @@ gst_rtp_dtmf_src_handle_dtmf_event (GstRTPDTMFSrc * dtmfsrc, } } - if (start) { - gint event_number; - gint event_volume; + if (start) + if (!gst_structure_get_int (event_structure, "number", &event_number) || + !gst_structure_get_int (event_structure, "volume", &event_volume)) + goto failure; + + GST_OBJECT_LOCK (dtmfsrc); + if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop)) + dtmfsrc->last_stop = last_stop; + else + dtmfsrc->last_stop = GST_CLOCK_TIME_NONE; + correct_order = (start != dtmfsrc->last_event_was_start); + dtmfsrc->last_event_was_start = start; + GST_OBJECT_UNLOCK (dtmfsrc); + if (!correct_order) + goto failure; + + if (start) { if (!gst_structure_get_int (event_structure, "number", &event_number) || !gst_structure_get_int (event_structure, "volume", &event_volume)) goto failure; @@ -448,9 +464,6 @@ gst_rtp_dtmf_src_set_property (GObject * object, guint prop_id, dtmfsrc->pt = g_value_get_uint (value); dtmfsrc->dirty = TRUE; break; - case PROP_INTERVAL: - dtmfsrc->interval = g_value_get_uint (value); - break; case PROP_REDUNDANCY: dtmfsrc->packet_redundancy = g_value_get_uint (value); break; @@ -490,9 +503,6 @@ gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value, case PROP_SEQNUM: g_value_set_uint (value, dtmfsrc->seqnum); break; - case PROP_INTERVAL: - g_value_set_uint (value, dtmfsrc->interval); - break; case PROP_REDUNDANCY: g_value_set_uint (value, dtmfsrc->packet_redundancy); break; @@ -502,29 +512,40 @@ gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value, } } -static void +static gboolean gst_rtp_dtmf_prepare_timestamps (GstRTPDTMFSrc * dtmfsrc) { - GstClock *clock; + GstClockTime last_stop; + + GST_OBJECT_LOCK (dtmfsrc); + last_stop = dtmfsrc->last_stop; + GST_OBJECT_UNLOCK (dtmfsrc); - clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); - if (clock != NULL) { - dtmfsrc->timestamp = gst_clock_get_time (clock) - + (MIN_INTER_DIGIT_INTERVAL * GST_MSECOND) + if (GST_CLOCK_TIME_IS_VALID (last_stop)) { + dtmfsrc->start_timestamp = last_stop; + } else { + GstClock *clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc)); + + if (clock == NULL) + return FALSE; + + dtmfsrc->start_timestamp = gst_clock_get_time (clock) - gst_element_get_base_time (GST_ELEMENT (dtmfsrc)); - dtmfsrc->start_timestamp = dtmfsrc->timestamp; gst_object_unref (clock); - } else { - gchar *dtmf_name = gst_element_get_name (dtmfsrc); - GST_ERROR_OBJECT (dtmfsrc, "No clock set for element %s", dtmf_name); - dtmfsrc->timestamp = GST_CLOCK_TIME_NONE; - g_free (dtmf_name); } + /* If the last stop was in the past, then lets add the buffers together */ + if (dtmfsrc->start_timestamp < dtmfsrc->timestamp) + dtmfsrc->start_timestamp = dtmfsrc->timestamp; + + dtmfsrc->timestamp = dtmfsrc->start_timestamp; + dtmfsrc->rtp_timestamp = dtmfsrc->ts_base + gst_util_uint64_scale_int (gst_segment_to_running_time (&GST_BASE_SRC (dtmfsrc)->segment, GST_FORMAT_TIME, dtmfsrc->timestamp), dtmfsrc->clock_rate, GST_SECOND); + + return TRUE; } @@ -539,7 +560,7 @@ gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc, gint event_number, event->payload = g_slice_new0 (GstRTPDTMFPayload); event->payload->event = CLAMP (event_number, MIN_EVENT, MAX_EVENT); event->payload->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME); - event->payload->duration = dtmfsrc->interval * dtmfsrc->clock_rate / 1000; + event->payload->duration = dtmfsrc->ptime * dtmfsrc->clock_rate / 1000; g_async_queue_push (dtmfsrc->event_queue, event); } @@ -586,30 +607,40 @@ gst_rtp_dtmf_prepare_buffer_data (GstRTPDTMFSrc * dtmfsrc, GstBuffer * buf) if (dtmfsrc->redundancy_count > 1) GST_BUFFER_DURATION (buf) = 0; else - GST_BUFFER_DURATION (buf) = dtmfsrc->interval * GST_MSECOND; + GST_BUFFER_DURATION (buf) = dtmfsrc->ptime * GST_MSECOND; GST_BUFFER_TIMESTAMP (buf) = dtmfsrc->timestamp; - dtmfsrc->timestamp += GST_BUFFER_DURATION (buf); payload = (GstRTPDTMFPayload *) gst_rtp_buffer_get_payload (buf); /* copy payload and convert to network-byte order */ g_memmove (payload, dtmfsrc->payload, sizeof (GstRTPDTMFPayload)); - /* Force the packet duration to a certain minumum - * if its the end of the event - */ - if (payload->e && - payload->duration < MIN_PULSE_DURATION * dtmfsrc->clock_rate / 1000) - payload->duration = MIN_PULSE_DURATION * dtmfsrc->clock_rate / 1000; payload->duration = g_htons (payload->duration); + if (dtmfsrc->redundancy_count <= 1 && dtmfsrc->last_packet) { + GstClockTime inter_digit_interval = MIN_INTER_DIGIT_INTERVAL; + + if (inter_digit_interval % dtmfsrc->ptime != 0) + inter_digit_interval += dtmfsrc->ptime - + (MIN_INTER_DIGIT_INTERVAL % dtmfsrc->ptime); + + GST_BUFFER_DURATION (buf) += inter_digit_interval * GST_MSECOND; + } + + GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration " + " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT "(rtp ts:%u dur:%u)", + dtmfsrc->payload->event, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), dtmfsrc->rtp_timestamp, + dtmfsrc->payload->duration); /* duration of DTMF payloadfor the NEXT packet */ /* not updated for redundant packets */ - if (dtmfsrc->redundancy_count == 0) - dtmfsrc->payload->duration += - dtmfsrc->interval * dtmfsrc->clock_rate / 1000; + if (dtmfsrc->redundancy_count <= 1) + dtmfsrc->payload->duration += dtmfsrc->ptime * dtmfsrc->clock_rate / 1000; + + if (GST_CLOCK_TIME_IS_VALID (dtmfsrc->timestamp)) + dtmfsrc->timestamp += GST_BUFFER_DURATION (buf); } @@ -629,6 +660,37 @@ gst_rtp_dtmf_src_create_next_rtp_packet (GstRTPDTMFSrc * dtmfsrc) return buf; } + +static void +gst_dtmf_src_post_message (GstRTPDTMFSrc * dtmfsrc, const gchar * message_name, + GstRTPDTMFSrcEvent * event) +{ + GstStructure *s = NULL; + + switch (event->event_type) { + case RTP_DTMF_EVENT_TYPE_START: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, + "method", G_TYPE_INT, 1, + "start", G_TYPE_BOOLEAN, TRUE, + "number", G_TYPE_INT, event->payload->event, + "volume", G_TYPE_INT, event->payload->volume, NULL); + break; + case RTP_DTMF_EVENT_TYPE_STOP: + s = gst_structure_new (message_name, + "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1, + "start", G_TYPE_BOOLEAN, FALSE, NULL); + break; + case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: + return; + } + + if (s) + gst_element_post_message (GST_ELEMENT (dtmfsrc), + gst_message_new_element (GST_OBJECT (dtmfsrc), s)); +} + + static GstFlowReturn gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, guint length, GstBuffer ** buffer) @@ -653,6 +715,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, case RTP_DTMF_EVENT_TYPE_STOP: GST_WARNING_OBJECT (dtmfsrc, "Received a DTMF stop event when already stopped"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); break; case RTP_DTMF_EVENT_TYPE_START: @@ -660,8 +723,10 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, dtmfsrc->last_packet = FALSE; /* Set the redundancy on the first packet */ dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy; - gst_rtp_dtmf_prepare_timestamps (dtmfsrc); + if (!gst_rtp_dtmf_prepare_timestamps (dtmfsrc)) + goto no_clock; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", event); dtmfsrc->payload = event->payload; event->payload = NULL; break; @@ -695,6 +760,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, case RTP_DTMF_EVENT_TYPE_START: GST_WARNING_OBJECT (dtmfsrc, "Received two consecutive DTMF start events"); + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); break; case RTP_DTMF_EVENT_TYPE_STOP: @@ -702,6 +768,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, dtmfsrc->last_packet = TRUE; /* Set the redundancy on the last packet */ dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy; + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", event); break; case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: @@ -727,6 +794,8 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, GST_DEBUG_OBJECT (dtmfsrc, "Processed events, now lets wait on the clock"); clock = gst_element_get_clock (GST_ELEMENT (basesrc)); + if (!clock) + goto no_clock; clockid = gst_clock_new_single_shot_id (clock, dtmfsrc->timestamp + gst_element_get_base_time (GST_ELEMENT (dtmfsrc))); gst_object_unref (clock); @@ -793,6 +862,12 @@ paused: } else { return GST_FLOW_WRONG_STATE; } + +no_clock: + GST_ELEMENT_ERROR (dtmfsrc, STREAM, MUX, ("No available clock"), + ("No available clock")); + gst_pad_pause_task (GST_BASE_SRC_PAD (dtmfsrc)); + return GST_FLOW_ERROR; } @@ -913,6 +988,23 @@ gst_rtp_dtmf_src_negotiate (GstBaseSrc * basesrc) GST_LOG_OBJECT (dtmfsrc, "using internal seqnum-base %u", dtmfsrc->seqnum_base); } + + if (gst_structure_has_field_typed (s, "ptime", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "ptime"); + dtmfsrc->ptime = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer ptime %u", dtmfsrc->ptime); + } else if (gst_structure_has_field_typed (s, "maxptime", G_TYPE_UINT)) { + value = gst_structure_get_value (s, "maxptime"); + dtmfsrc->ptime = g_value_get_uint (value); + GST_LOG_OBJECT (dtmfsrc, "using peer maxptime as ptime %u", + dtmfsrc->ptime); + } else { + /* FIXME, fixate_nearest_uint would be even better */ + gst_structure_set (s, "ptime", G_TYPE_UINT, dtmfsrc->ptime, NULL); + GST_LOG_OBJECT (dtmfsrc, "using internal ptime %u", dtmfsrc->ptime); + } + + GST_DEBUG_OBJECT (dtmfsrc, "with peer caps: %" GST_PTR_FORMAT, srccaps); } @@ -945,6 +1037,7 @@ gst_rtp_dtmf_src_ready_to_paused (GstRTPDTMFSrc * dtmfsrc) else dtmfsrc->ts_base = dtmfsrc->ts_offset; + dtmfsrc->timestamp = 0; } static GstStateChangeReturn @@ -962,8 +1055,11 @@ gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition) gst_rtp_dtmf_src_ready_to_paused (dtmfsrc); /* Flushing the event queue */ - while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) + while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); gst_rtp_dtmf_src_event_free (event); + } + dtmfsrc->last_event_was_start = FALSE; no_preroll = TRUE; break; @@ -983,8 +1079,11 @@ gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PAUSED_TO_READY: /* Flushing the event queue */ - while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) + while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) { + gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event); gst_rtp_dtmf_src_event_free (event); + } + dtmfsrc->last_event_was_start = FALSE; /* Indicate that we don't do PRE_ROLL */ break; diff --git a/gst/dtmf/gstrtpdtmfsrc.h b/gst/dtmf/gstrtpdtmfsrc.h index d04c6ec..5bc0e3e 100644 --- a/gst/dtmf/gstrtpdtmfsrc.h +++ b/gst/dtmf/gstrtpdtmfsrc.h @@ -90,9 +90,12 @@ struct _GstRTPDTMFSrc guint pt; guint ssrc; guint current_ssrc; - guint16 interval; + guint16 ptime; guint16 packet_redundancy; guint32 clock_rate; + gboolean last_event_was_start; + + GstClockTime last_stop; gboolean dirty; guint16 redundancy_count; diff --git a/gst/dvbsuboverlay/Makefile.in b/gst/dvbsuboverlay/Makefile.in index ec2560f..fb679b2 100644 --- a/gst/dvbsuboverlay/Makefile.in +++ b/gst/dvbsuboverlay/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstdvbsuboverlay_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstdvbsuboverlay_la_OBJECTS = libgstdvbsuboverlay_la-dvb-sub.lo \ libgstdvbsuboverlay_la-gstdvbsuboverlay.lo libgstdvbsuboverlay_la_OBJECTS = $(am_libgstdvbsuboverlay_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdvbsuboverlay_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdvbsuboverlay_la_SOURCES) DIST_SOURCES = $(libgstdvbsuboverlay_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,7 +627,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdvbsuboverlay.la: $(libgstdvbsuboverlay_la_OBJECTS) $(libgstdvbsuboverlay_la_DEPENDENCIES) +libgstdvbsuboverlay.la: $(libgstdvbsuboverlay_la_OBJECTS) $(libgstdvbsuboverlay_la_DEPENDENCIES) $(EXTRA_libgstdvbsuboverlay_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdvbsuboverlay_la_LINK) -rpath $(plugindir) $(libgstdvbsuboverlay_la_OBJECTS) $(libgstdvbsuboverlay_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -615,42 +642,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdvbsuboverlay_la-dvb-sub.lo: dvb-sub.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -MT libgstdvbsuboverlay_la-dvb-sub.lo -MD -MP -MF $(DEPDIR)/libgstdvbsuboverlay_la-dvb-sub.Tpo -c -o libgstdvbsuboverlay_la-dvb-sub.lo `test -f 'dvb-sub.c' || echo '$(srcdir)/'`dvb-sub.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvbsuboverlay_la-dvb-sub.Tpo $(DEPDIR)/libgstdvbsuboverlay_la-dvb-sub.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvb-sub.c' object='libgstdvbsuboverlay_la-dvb-sub.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dvb-sub.c' object='libgstdvbsuboverlay_la-dvb-sub.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -c -o libgstdvbsuboverlay_la-dvb-sub.lo `test -f 'dvb-sub.c' || echo '$(srcdir)/'`dvb-sub.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -c -o libgstdvbsuboverlay_la-dvb-sub.lo `test -f 'dvb-sub.c' || echo '$(srcdir)/'`dvb-sub.c libgstdvbsuboverlay_la-gstdvbsuboverlay.lo: gstdvbsuboverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -MT libgstdvbsuboverlay_la-gstdvbsuboverlay.lo -MD -MP -MF $(DEPDIR)/libgstdvbsuboverlay_la-gstdvbsuboverlay.Tpo -c -o libgstdvbsuboverlay_la-gstdvbsuboverlay.lo `test -f 'gstdvbsuboverlay.c' || echo '$(srcdir)/'`gstdvbsuboverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvbsuboverlay_la-gstdvbsuboverlay.Tpo $(DEPDIR)/libgstdvbsuboverlay_la-gstdvbsuboverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvbsuboverlay.c' object='libgstdvbsuboverlay_la-gstdvbsuboverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvbsuboverlay.c' object='libgstdvbsuboverlay_la-gstdvbsuboverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -c -o libgstdvbsuboverlay_la-gstdvbsuboverlay.lo `test -f 'gstdvbsuboverlay.c' || echo '$(srcdir)/'`gstdvbsuboverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvbsuboverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvbsuboverlay_la_CFLAGS) $(CFLAGS) -c -o libgstdvbsuboverlay_la-gstdvbsuboverlay.lo `test -f 'gstdvbsuboverlay.c' || echo '$(srcdir)/'`gstdvbsuboverlay.c mostlyclean-libtool: -rm -f *.lo @@ -757,10 +779,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/dvbsuboverlay/dvb-sub.c b/gst/dvbsuboverlay/dvb-sub.c index a0ef3e1..3431a8c 100644 --- a/gst/dvbsuboverlay/dvb-sub.c +++ b/gst/dvbsuboverlay/dvb-sub.c @@ -1,7 +1,6 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ -/* - * libdvbsub - DVB subtitle decoding +/* dvb-sub.c - DVB subtitle decoding * Copyright (C) Mart Raudsepp 2009 + * Copyright (C) 2010 ONELAN Ltd. * * Heavily uses code algorithms ported from ffmpeg's libavcodec/dvbsubdec.c, * especially the segment parsers. The original license applies to this diff --git a/gst/dvbsuboverlay/gstdvbsuboverlay.c b/gst/dvbsuboverlay/gstdvbsuboverlay.c index 5dc04cb..3c2cab3 100644 --- a/gst/dvbsuboverlay/gstdvbsuboverlay.c +++ b/gst/dvbsuboverlay/gstdvbsuboverlay.c @@ -1,5 +1,6 @@ /* GStreamer DVB subtitles overlay * Copyright (c) 2010 Mart Raudsepp + * Copyright (c) 2010 ONELAN Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -119,12 +120,11 @@ gst_dvbsub_overlay_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &text_sink_factory); gst_element_class_set_details_simple (element_class, "DVB Subtitles Overlay", diff --git a/gst/dvbsuboverlay/gstdvbsuboverlay.h b/gst/dvbsuboverlay/gstdvbsuboverlay.h index 19835c6..012c728 100644 --- a/gst/dvbsuboverlay/gstdvbsuboverlay.h +++ b/gst/dvbsuboverlay/gstdvbsuboverlay.h @@ -1,5 +1,6 @@ /* GStreamer DVB subtitles overlay * Copyright (c) 2010 Mart Raudsepp + * Copyright (c) 2010 ONELAN Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License diff --git a/gst/dvdspu/Makefile.in b/gst/dvdspu/Makefile.in index 5741480..5b67094 100644 --- a/gst/dvdspu/Makefile.in +++ b/gst/dvdspu/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstdvdspu_la_OBJECTS = libgstdvdspu_la-gstdvdspu.lo \ libgstdvdspu_la-gstspu-vobsub-render.lo \ libgstdvdspu_la-gstspu-pgs.lo libgstdvdspu_la_OBJECTS = $(am_libgstdvdspu_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdvdspu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdvdspu_la_SOURCES) DIST_SOURCES = $(libgstdvdspu_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -606,7 +633,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdvdspu.la: $(libgstdvdspu_la_OBJECTS) $(libgstdvdspu_la_DEPENDENCIES) +libgstdvdspu.la: $(libgstdvdspu_la_OBJECTS) $(libgstdvdspu_la_DEPENDENCIES) $(EXTRA_libgstdvdspu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdvdspu_la_LINK) -rpath $(plugindir) $(libgstdvdspu_la_OBJECTS) $(libgstdvdspu_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -624,66 +651,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdvdspu_la-gstdvdspu.lo: gstdvdspu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -MT libgstdvdspu_la-gstdvdspu.lo -MD -MP -MF $(DEPDIR)/libgstdvdspu_la-gstdvdspu.Tpo -c -o libgstdvdspu_la-gstdvdspu.lo `test -f 'gstdvdspu.c' || echo '$(srcdir)/'`gstdvdspu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvdspu_la-gstdvdspu.Tpo $(DEPDIR)/libgstdvdspu_la-gstdvdspu.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvdspu.c' object='libgstdvdspu_la-gstdvdspu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvdspu.c' object='libgstdvdspu_la-gstdvdspu.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstdvdspu.lo `test -f 'gstdvdspu.c' || echo '$(srcdir)/'`gstdvdspu.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstdvdspu.lo `test -f 'gstdvdspu.c' || echo '$(srcdir)/'`gstdvdspu.c libgstdvdspu_la-gstdvdspu-render.lo: gstdvdspu-render.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -MT libgstdvdspu_la-gstdvdspu-render.lo -MD -MP -MF $(DEPDIR)/libgstdvdspu_la-gstdvdspu-render.Tpo -c -o libgstdvdspu_la-gstdvdspu-render.lo `test -f 'gstdvdspu-render.c' || echo '$(srcdir)/'`gstdvdspu-render.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvdspu_la-gstdvdspu-render.Tpo $(DEPDIR)/libgstdvdspu_la-gstdvdspu-render.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvdspu-render.c' object='libgstdvdspu_la-gstdvdspu-render.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvdspu-render.c' object='libgstdvdspu_la-gstdvdspu-render.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstdvdspu-render.lo `test -f 'gstdvdspu-render.c' || echo '$(srcdir)/'`gstdvdspu-render.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstdvdspu-render.lo `test -f 'gstdvdspu-render.c' || echo '$(srcdir)/'`gstdvdspu-render.c libgstdvdspu_la-gstspu-vobsub.lo: gstspu-vobsub.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -MT libgstdvdspu_la-gstspu-vobsub.lo -MD -MP -MF $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub.Tpo -c -o libgstdvdspu_la-gstspu-vobsub.lo `test -f 'gstspu-vobsub.c' || echo '$(srcdir)/'`gstspu-vobsub.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub.Tpo $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspu-vobsub.c' object='libgstdvdspu_la-gstspu-vobsub.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspu-vobsub.c' object='libgstdvdspu_la-gstspu-vobsub.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-vobsub.lo `test -f 'gstspu-vobsub.c' || echo '$(srcdir)/'`gstspu-vobsub.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-vobsub.lo `test -f 'gstspu-vobsub.c' || echo '$(srcdir)/'`gstspu-vobsub.c libgstdvdspu_la-gstspu-vobsub-render.lo: gstspu-vobsub-render.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -MT libgstdvdspu_la-gstspu-vobsub-render.lo -MD -MP -MF $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub-render.Tpo -c -o libgstdvdspu_la-gstspu-vobsub-render.lo `test -f 'gstspu-vobsub-render.c' || echo '$(srcdir)/'`gstspu-vobsub-render.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub-render.Tpo $(DEPDIR)/libgstdvdspu_la-gstspu-vobsub-render.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspu-vobsub-render.c' object='libgstdvdspu_la-gstspu-vobsub-render.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspu-vobsub-render.c' object='libgstdvdspu_la-gstspu-vobsub-render.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-vobsub-render.lo `test -f 'gstspu-vobsub-render.c' || echo '$(srcdir)/'`gstspu-vobsub-render.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-vobsub-render.lo `test -f 'gstspu-vobsub-render.c' || echo '$(srcdir)/'`gstspu-vobsub-render.c libgstdvdspu_la-gstspu-pgs.lo: gstspu-pgs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -MT libgstdvdspu_la-gstspu-pgs.lo -MD -MP -MF $(DEPDIR)/libgstdvdspu_la-gstspu-pgs.Tpo -c -o libgstdvdspu_la-gstspu-pgs.lo `test -f 'gstspu-pgs.c' || echo '$(srcdir)/'`gstspu-pgs.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvdspu_la-gstspu-pgs.Tpo $(DEPDIR)/libgstdvdspu_la-gstspu-pgs.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspu-pgs.c' object='libgstdvdspu_la-gstspu-pgs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspu-pgs.c' object='libgstdvdspu_la-gstspu-pgs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-pgs.lo `test -f 'gstspu-pgs.c' || echo '$(srcdir)/'`gstspu-pgs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvdspu_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvdspu_la_CFLAGS) $(CFLAGS) -c -o libgstdvdspu_la-gstspu-pgs.lo `test -f 'gstspu-pgs.c' || echo '$(srcdir)/'`gstspu-pgs.c mostlyclean-libtool: -rm -f *.lo @@ -790,10 +809,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/dvdspu/gstdvdspu.c b/gst/dvdspu/gstdvdspu.c index 89b63d8..f57d3c2 100644 --- a/gst/dvdspu/gstdvdspu.c +++ b/gst/dvdspu/gstdvdspu.c @@ -118,12 +118,11 @@ gst_dvd_spu_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 (&video_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&subpic_sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &subpic_sink_factory); gst_element_class_set_details_simple (element_class, "Sub-picture Overlay", "Mixer/Video/Overlay/SubPicture/DVD/Bluray", "Parses Sub-Picture command streams and renders the SPU overlay " diff --git a/gst/dvdspu/gstspu-pgs.c b/gst/dvdspu/gstspu-pgs.c index b860b29..a244ac9 100644 --- a/gst/dvdspu/gstspu-pgs.c +++ b/gst/dvdspu/gstspu-pgs.c @@ -81,8 +81,9 @@ dump_bytes (guint8 * data, guint16 len) static void dump_rle_data (GstDVDSpu * dvdspu, guint8 * data, guint32 len) { + guint16 obj_h G_GNUC_UNUSED; + guint16 obj_w; guint8 *end = data + len; - guint16 obj_w, obj_h; guint x = 0; if (data + 4 > end) @@ -175,7 +176,8 @@ pgs_composition_object_render (PgsCompositionObject * obj, SpuState * state, SpuColour *colour; guint8 *planes[3]; /* YUV frame pointers */ guint8 *data, *end; - guint16 obj_w, obj_h; + guint16 obj_w; + guint16 obj_h G_GNUC_UNUSED; guint x, y, i, min_x, max_x; if (G_UNLIKELY (obj->rle_data == NULL || obj->rle_data_size == 0 @@ -461,8 +463,8 @@ parse_set_palette (GstDVDSpu * dvdspu, guint8 type, guint8 * payload, const gint PGS_PALETTE_ENTRY_SIZE = 5; guint8 *end = payload + len; - guint8 palette_id; - guint8 palette_version; + guint8 palette_id G_GNUC_UNUSED; + guint8 palette_version G_GNUC_UNUSED; gint n_entries, i; if (len < 2) /* Palette command too short */ @@ -520,7 +522,7 @@ parse_set_window (GstDVDSpu * dvdspu, guint8 type, guint8 * payload, { SpuState *state = &dvdspu->spu_state; guint8 *end = payload + len; - guint8 win_count, win_id; + guint8 win_count, win_id G_GNUC_UNUSED; gint i; if (payload + 1 > end) diff --git a/gst/dvdspu/gstspu-vobsub.c b/gst/dvdspu/gstspu-vobsub.c index 1757feb..0a2380c 100644 --- a/gst/dvdspu/gstspu-vobsub.c +++ b/gst/dvdspu/gstspu-vobsub.c @@ -187,10 +187,10 @@ gst_dvd_spu_exec_cmd_blk (GstDVDSpu * dvdspu, guint8 * data, guint8 * end) if (G_UNLIKELY (data + 7 >= end)) return; /* Invalid SET_DAREA cmd at the end of the blk */ - r->top = ((data[4] & 0x3f) << 4) | ((data[5] & 0xe0) >> 4); - r->left = ((data[1] & 0x3f) << 4) | ((data[2] & 0xf0) >> 4); - r->right = ((data[2] & 0x03) << 8) | data[3]; - r->bottom = ((data[5] & 0x03) << 8) | data[6]; + r->top = ((data[4] & 0xff) << 4) | ((data[5] & 0xf0) >> 4); + r->left = ((data[1] & 0xff) << 4) | ((data[2] & 0xf0) >> 4); + r->right = ((data[2] & 0x0f) << 8) | data[3]; + r->bottom = ((data[5] & 0x0f) << 8) | data[6]; GST_DEBUG_OBJECT (dvdspu, " Set Display Area top %u left %u bottom %u right %u", r->top, diff --git a/gst/faceoverlay/Makefile.am b/gst/faceoverlay/Makefile.am new file mode 100644 index 0000000..30b780c --- /dev/null +++ b/gst/faceoverlay/Makefile.am @@ -0,0 +1,13 @@ +plugin_LTLIBRARIES = libgstfaceoverlay.la + +# sources used to compile this plug-in +libgstfaceoverlay_la_SOURCES = gstfaceoverlay.c + +# compiler and linker flags used to compile this plugin, set in configure.ac +libgstfaceoverlay_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstfaceoverlay_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_LIBS) +libgstfaceoverlay_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaceoverlay_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstfaceoverlay.h diff --git a/gst/invtelecine/Makefile.in b/gst/faceoverlay/Makefile.in similarity index 82% rename from gst/invtelecine/Makefile.in rename to gst/faceoverlay/Makefile.in index 2f6a9c1..df49f4a 100644 --- a/gst/invtelecine/Makefile.in +++ b/gst/faceoverlay/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -15,6 +15,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -34,12 +35,14 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = gst/invtelecine -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +subdir = gst/faceoverlay +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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,21 +101,27 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = -libgstinvtelecine_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_libgstinvtelecine_la_OBJECTS = \ - libgstinvtelecine_la-gstinvtelecine.lo -libgstinvtelecine_la_OBJECTS = $(am_libgstinvtelecine_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +libgstfaceoverlay_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstfaceoverlay_la_OBJECTS = \ + libgstfaceoverlay_la-gstfaceoverlay.lo +libgstfaceoverlay_la_OBJECTS = $(am_libgstfaceoverlay_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -libgstinvtelecine_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(libgstinvtelecine_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(libgstinvtelecine_la_CFLAGS) $(CFLAGS) \ - $(libgstinvtelecine_la_LDFLAGS) $(LDFLAGS) -o $@ +libgstfaceoverlay_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstfaceoverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstfaceoverlay_la_CFLAGS) $(CFLAGS) \ + $(libgstfaceoverlay_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -123,24 +132,25 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstinvtelecine_la_SOURCES) -DIST_SOURCES = $(libgstinvtelecine_la_SOURCES) +SOURCES = $(libgstfaceoverlay_la_SOURCES) +DIST_SOURCES = $(libgstfaceoverlay_la_SOURCES) +HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -148,7 +158,6 @@ 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@ @@ -166,7 +175,6 @@ 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@ @@ -201,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -240,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -257,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -265,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -296,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -350,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -381,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -406,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -430,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -445,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -469,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -504,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -525,21 +555,19 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -plugin_LTLIBRARIES = libgstinvtelecine.la -libgstinvtelecine_la_SOURCES = \ - gstinvtelecine.c +plugin_LTLIBRARIES = libgstfaceoverlay.la -libgstinvtelecine_la_CFLAGS = \ - $(GST_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) +# sources used to compile this plug-in +libgstfaceoverlay_la_SOURCES = gstfaceoverlay.c -libgstinvtelecine_la_LIBADD = \ - $(GST_LIBS) \ - $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ - $(LIBM) +# compiler and linker flags used to compile this plugin, set in configure.ac +libgstfaceoverlay_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstfaceoverlay_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_LIBS) +libgstfaceoverlay_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaceoverlay_la_LIBTOOLFLAGS = --tag=disable-static -libgstinvtelecine_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstinvtelecine_la_LIBTOOLFLAGS = --tag=disable-static +# headers we need but don't want installed +noinst_HEADERS = gstfaceoverlay.h all: all-am .SUFFIXES: @@ -553,9 +581,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/invtelecine/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/faceoverlay/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu gst/invtelecine/Makefile + $(AUTOMAKE) --gnu gst/faceoverlay/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -605,8 +633,8 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstinvtelecine.la: $(libgstinvtelecine_la_OBJECTS) $(libgstinvtelecine_la_DEPENDENCIES) - $(AM_V_CCLD)$(libgstinvtelecine_la_LINK) -rpath $(plugindir) $(libgstinvtelecine_la_OBJECTS) $(libgstinvtelecine_la_LIBADD) $(LIBS) +libgstfaceoverlay.la: $(libgstfaceoverlay_la_OBJECTS) $(libgstfaceoverlay_la_DEPENDENCIES) $(EXTRA_libgstfaceoverlay_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstfaceoverlay_la_LINK) -rpath $(plugindir) $(libgstfaceoverlay_la_OBJECTS) $(libgstfaceoverlay_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -614,39 +642,35 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinvtelecine_la-gstinvtelecine.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstfaceoverlay_la-gstfaceoverlay.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -libgstinvtelecine_la-gstinvtelecine.lo: gstinvtelecine.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinvtelecine_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinvtelecine_la_CFLAGS) $(CFLAGS) -MT libgstinvtelecine_la-gstinvtelecine.lo -MD -MP -MF $(DEPDIR)/libgstinvtelecine_la-gstinvtelecine.Tpo -c -o libgstinvtelecine_la-gstinvtelecine.lo `test -f 'gstinvtelecine.c' || echo '$(srcdir)/'`gstinvtelecine.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinvtelecine_la-gstinvtelecine.Tpo $(DEPDIR)/libgstinvtelecine_la-gstinvtelecine.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstinvtelecine.c' object='libgstinvtelecine_la-gstinvtelecine.lo' libtool=yes @AMDEPBACKSLASH@ +libgstfaceoverlay_la-gstfaceoverlay.lo: gstfaceoverlay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaceoverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaceoverlay_la_CFLAGS) $(CFLAGS) -MT libgstfaceoverlay_la-gstfaceoverlay.lo -MD -MP -MF $(DEPDIR)/libgstfaceoverlay_la-gstfaceoverlay.Tpo -c -o libgstfaceoverlay_la-gstfaceoverlay.lo `test -f 'gstfaceoverlay.c' || echo '$(srcdir)/'`gstfaceoverlay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfaceoverlay_la-gstfaceoverlay.Tpo $(DEPDIR)/libgstfaceoverlay_la-gstfaceoverlay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfaceoverlay.c' object='libgstfaceoverlay_la-gstfaceoverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinvtelecine_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinvtelecine_la_CFLAGS) $(CFLAGS) -c -o libgstinvtelecine_la-gstinvtelecine.lo `test -f 'gstinvtelecine.c' || echo '$(srcdir)/'`gstinvtelecine.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaceoverlay_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaceoverlay_la_CFLAGS) $(CFLAGS) -c -o libgstfaceoverlay_la-gstfaceoverlay.lo `test -f 'gstfaceoverlay.c' || echo '$(srcdir)/'`gstfaceoverlay.c mostlyclean-libtool: -rm -f *.lo @@ -738,7 +762,7 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile $(LTLIBRARIES) +all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -753,10 +777,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -856,20 +885,6 @@ uninstall-am: uninstall-pluginLTLIBRARIES tags uninstall uninstall-am uninstall-pluginLTLIBRARIES -Android.mk: Makefile.am $(BUILT_SOURCES) - androgenizer \ - -:PROJECT libgstinvtelecine -:SHARED libgstinvtelecine \ - -:TAGS eng debug \ - -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ - -:SOURCES $(libgstinvtelecine_la_SOURCES) \ - -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstinvtelecine_la_CFLAGS) \ - -:LDFLAGS $(libgstinvtelecine_la_LDFLAGS) \ - $(libgstinvtelecine_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/gst/faceoverlay/gstfaceoverlay.c b/gst/faceoverlay/gstfaceoverlay.c new file mode 100644 index 0000000..209f656 --- /dev/null +++ b/gst/faceoverlay/gstfaceoverlay.c @@ -0,0 +1,498 @@ +/* + * GStreamer faceoverlay plugin + * Copyright (C) 2011 Laura Lucas Alday + * + * 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-faceoverlay + * + * Overlays a SVG image over a detected face in a video stream. + * x, y, w, and h properties are optional, and change the image position and + * size relative to the detected face position and size. + * + * + * Example launch line + * |[ + * gst-launch autovideosrc ! ffmpegcolorspace ! faceoverlay location=/path/to/gnome-video-effects/pixmaps/bow.svg x=-5 y=-15 w=0.3 h=0.1 ! ffmpegcolorspace ! autovideosink + + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include "gstfaceoverlay.h" + +GST_DEBUG_CATEGORY_STATIC (gst_face_overlay_debug); +#define GST_CAT_DEFAULT gst_face_overlay_debug + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +#define GST_STR_VIDEO_CAPS GST_VIDEO_CAPS_BGRA +#else +#define GST_STR_VIDEO_CAPS GST_VIDEO_CAPS_ARGB +#endif + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_LOCATION, + PROP_X, + PROP_Y, + PROP_W, + PROP_H +}; + +/* the capabilities of the inputs and outputs. */ +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_STR_VIDEO_CAPS) + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_STR_VIDEO_CAPS) + ); + +GST_BOILERPLATE (GstFaceOverlay, gst_face_overlay, GstBin, GST_TYPE_BIN); + +static void gst_face_overlay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_face_overlay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_face_overlay_message_handler (GstBin * bin, + GstMessage * message); +static GstStateChangeReturn gst_face_overlay_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_face_overlay_create_children (GstFaceOverlay * filter); +static gboolean gst_face_overlay_reset (GstFaceOverlay * filter); +static gboolean gst_face_overlay_create_pad (GstFaceOverlay * filter, + GstPad * filter_pad, const char *pad_name, GstElement * child_element); +static gboolean toggle_pads_link_state (GstPad * pad1, GstPad * pad2); + + +static gboolean +toggle_pads_link_state (GstPad * pad1, GstPad * pad2) +{ + gboolean ok = TRUE; + + if (gst_pad_is_linked (pad1)) { + if (gst_pad_get_direction (pad1) == GST_PAD_SINK) + gst_pad_unlink (pad2, pad1); + else + gst_pad_unlink (pad1, pad2); + } else { + if (gst_pad_get_direction (pad1) == GST_PAD_SINK) + ok &= (gst_pad_link (pad2, pad1) == 0); + else + ok &= (gst_pad_link (pad1, pad2) == 0); + } + + return ok; +} + +/* Unlinks and removes the pad that was created in gst_face_overlay_init () + * and adds the internal element ghost pad instead */ +static gboolean +gst_face_overlay_create_pad (GstFaceOverlay * filter, GstPad * filter_pad, + const char *pad_name, GstElement * child_element) +{ + GstPad *peer = NULL; + GstPad *pad = NULL; + gboolean ok = TRUE; + + /* get the outside world pad connected to faceoverlay src/sink pad */ + peer = gst_pad_get_peer (filter_pad); + + /* unlink and remove the faceoverlay src/sink pad */ + toggle_pads_link_state (peer, filter_pad); + + gst_element_remove_pad (GST_ELEMENT (filter), filter_pad); + + /* add a ghost pad pointing to the child element pad (facedetect sink or + * svg_overlay src depending on filter_pad direction) and add it to + * faceoverlay bin */ + pad = gst_element_get_static_pad (child_element, pad_name); + filter_pad = gst_ghost_pad_new (pad_name, pad); + gst_object_unref (GST_OBJECT (pad)); + + gst_element_add_pad (GST_ELEMENT (filter), filter_pad); + + /* link the child element pad to the outside world thru the ghost pad */ + toggle_pads_link_state (peer, filter_pad); + + g_object_unref (peer); + + return ok; +} + +static gboolean +gst_face_overlay_reset (GstFaceOverlay * filter) +{ + gst_element_set_state (filter->face_detect, GST_STATE_NULL); + gst_bin_remove (GST_BIN (filter), filter->face_detect); + filter->face_detect = NULL; + + gst_element_set_state (filter->svg_overlay, GST_STATE_NULL); + gst_bin_remove (GST_BIN (filter), filter->svg_overlay); + filter->svg_overlay = NULL; + + gst_element_set_state (filter->colorspace, GST_STATE_NULL); + gst_bin_remove (GST_BIN (filter), filter->colorspace); + filter->colorspace = NULL; + + return TRUE; +} + +static gboolean +gst_face_overlay_create_children (GstFaceOverlay * filter) +{ + gboolean ret = TRUE; + + if ((filter->colorspace = gst_element_factory_make ("ffmpegcolorspace", + NULL)) == NULL) { + return FALSE; + } + + if ((filter->face_detect = gst_element_factory_make ("facedetect", + NULL)) == NULL) { + return FALSE; + } + g_object_set (filter->face_detect, "display", 0, NULL); + + if ((filter->svg_overlay = gst_element_factory_make ("rsvgoverlay", + NULL)) == NULL) { + return FALSE; + } + + gst_bin_add_many (GST_BIN (filter), + filter->face_detect, filter->colorspace, filter->svg_overlay, NULL); + + ret &= gst_element_link_pads (filter->face_detect, "src", + filter->colorspace, "sink"); + ret &= gst_element_link_pads (filter->colorspace, "src", + filter->svg_overlay, "sink"); + + ret &= gst_face_overlay_create_pad (filter, filter->sinkpad, "sink", + filter->face_detect); + ret &= gst_face_overlay_create_pad (filter, filter->srcpad, "src", + filter->svg_overlay); + + return ret; + +} + +static GstStateChangeReturn +gst_face_overlay_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstFaceOverlay *filter = GST_FACEOVERLAY (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_face_overlay_create_children (filter)) + return GST_STATE_CHANGE_FAILURE; + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_face_overlay_reset (filter); + break; + default: + break; + } + + return ret; +} + +static void +gst_face_overlay_message_handler (GstBin * bin, GstMessage * message) +{ + if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT && + strcmp (gst_structure_get_name (message->structure), "facedetect") == 0) { + GstFaceOverlay *filter = GST_FACEOVERLAY (bin); + + /* optionally draw the image once every two messages for better performance + * filter->process_message = !filter->process_message; + * if(!filter->process_message) + * return; + */ + + guint x, y, width, height; + int delta_x, delta_y, svg_x, svg_y, svg_width, svg_height; + const GstStructure *face; + int face_count; + + face_count = + gst_value_list_get_size (gst_structure_get_value (message->structure, + "faces")); + + /* The last face in the list seems to be the right one, objects mistakenly + * detected as faces for a couple of frames seem to be in the list + * beginning. TODO: needs confirmation. */ + face = + gst_value_get_structure (gst_value_list_get_value + (gst_structure_get_value (message->structure, "faces"), + face_count - 1)); + gst_structure_get_uint (face, "x", &x); + gst_structure_get_uint (face, "y", &y); + gst_structure_get_uint (face, "width", &width); + gst_structure_get_uint (face, "height", &height); + + /* Apply x and y offsets relative to face position and size. + * Set image width and height as a fraction of face width and height. + * Cast to int since face position and size will never be bigger than + * G_MAX_INT and we may have negative values as svg_x or svg_y */ + + delta_x = (int) (filter->x * (int) width); + svg_x = (int) x + delta_x; + + delta_y = (int) (filter->y * (int) height); + svg_y = (int) y + delta_y; + + svg_width = (int) width *filter->w; + svg_height = (int) height *filter->h; + + g_object_set (filter->svg_overlay, + "location", filter->location, + "x", svg_x, "y", svg_y, "width", svg_width, "height", svg_height, NULL); + + } + + GST_BIN_CLASS (parent_class)->handle_message (bin, message); +} + +/* GObject vmethod implementations */ +/* the _base_init() function is meant to initialize class and child class + * properties during each new child class creation */ +static void +gst_face_overlay_base_init (gpointer gclass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_set_details_simple (element_class, + "faceoverlay", + "Filter/Editor/Video", + "Overlays SVG graphics over a detected face in a video stream", + "Laura Lucas Alday "); + + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); +} + +/* initialize the faceoverlay's class */ +/* the _class_init() function is used to initialise the class only once + * (specifying what signals, arguments and virtual functions the class has and + * setting up global state) */ +static void +gst_face_overlay_class_init (GstFaceOverlayClass * klass) +{ + GObjectClass *gobject_class; + GstBinClass *gstbin_class; + GstElementClass *gstelement_class; + + gobject_class = G_OBJECT_CLASS (klass); + gstbin_class = GST_BIN_CLASS (klass); + gstelement_class = GST_ELEMENT_CLASS (klass); + + gobject_class->set_property = gst_face_overlay_set_property; + gobject_class->get_property = gst_face_overlay_get_property; + + g_object_class_install_property (gobject_class, PROP_LOCATION, + g_param_spec_string ("location", "Location", + "Location of SVG file to use for face overlay", + "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_X, + g_param_spec_float ("x", "face x offset", + "Specify image x relative to detected face x.", -G_MAXFLOAT, + G_MAXFLOAT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_Y, + g_param_spec_float ("y", "face y offset", + "Specify image y relative to detected face y.", -G_MAXFLOAT, + G_MAXFLOAT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_W, + g_param_spec_float ("w", "face width percent", + "Specify image width relative to face width.", 0, G_MAXFLOAT, 1, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_H, + g_param_spec_float ("h", "face height percent", + "Specify image height relative to face height.", 0, G_MAXFLOAT, 1, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstbin_class->handle_message = + GST_DEBUG_FUNCPTR (gst_face_overlay_message_handler); + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_face_overlay_change_state); + +} + +/* initialize the new element + * instantiate pads and add them to element + * set pad calback functions + * initialize instance structure + * the _init() function is used to initialise a specific instance of this type. + */ +static void +gst_face_overlay_init (GstFaceOverlay * filter, GstFaceOverlayClass * gclass) +{ + filter->x = 0; + filter->y = 0; + filter->w = 1; + filter->h = 1; + filter->colorspace = NULL; + filter->svg_overlay = NULL; + filter->face_detect = NULL; + filter->location = NULL; + filter->process_message = TRUE; + + filter->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); + + filter->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); + +} + +static void +gst_face_overlay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstFaceOverlay *filter = GST_FACEOVERLAY (object); + + switch (prop_id) { + case PROP_LOCATION: + filter->location = g_value_dup_string (value); + break; + case PROP_X: + filter->x = g_value_get_float (value); + break; + case PROP_Y: + filter->y = g_value_get_float (value); + break; + case PROP_W: + filter->w = g_value_get_float (value); + break; + case PROP_H: + filter->h = g_value_get_float (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_face_overlay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstFaceOverlay *filter = GST_FACEOVERLAY (object); + + switch (prop_id) { + case PROP_LOCATION: + g_value_set_string (value, filter->location); + break; + case PROP_X: + g_value_set_float (value, filter->x); + break; + case PROP_Y: + g_value_set_float (value, filter->y); + break; + case PROP_W: + g_value_set_float (value, filter->w); + break; + case PROP_H: + g_value_set_float (value, filter->h); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* entry point to initialize the plug-in + * initialize the plug-in itself + * register the element factories and other features + */ +static gboolean +faceoverlay_init (GstPlugin * faceoverlay) +{ + /* debug category for fltering log messages */ + GST_DEBUG_CATEGORY_INIT (gst_face_overlay_debug, "faceoverlay", + 0, "SVG Face Overlay"); + + return gst_element_register (faceoverlay, "faceoverlay", GST_RANK_NONE, + GST_TYPE_FACEOVERLAY); +} + +/* PACKAGE: this is usually set by autotools depending on some _INIT macro + * in configure.ac and then written into and defined in config.h, but we can + * just set it ourselves here in case someone doesn't use autotools to + * compile this code. GST_PLUGIN_DEFINE needs PACKAGE to be defined. + */ +#ifndef PACKAGE +#define PACKAGE "faceoverlay" +#endif + +/* gstreamer looks for this structure to register plugins */ +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "faceoverlay", + "SVG Face Overlay", + faceoverlay_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/") diff --git a/gst/faceoverlay/gstfaceoverlay.h b/gst/faceoverlay/gstfaceoverlay.h new file mode 100644 index 0000000..7b8e50c --- /dev/null +++ b/gst/faceoverlay/gstfaceoverlay.h @@ -0,0 +1,91 @@ +/* + * GStreamer faceoverlay plugin + * Copyright (C) 2011 Laura Lucas Alday + * + * 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_FACEOVERLAY_H__ +#define __GST_FACEOVERLAY_H__ + +#include + +G_BEGIN_DECLS +/* #defines don't like whitespacey bits */ +#define GST_TYPE_FACEOVERLAY \ + (gst_face_overlay_get_type()) +#define GST_FACEOVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FACEOVERLAY,GstFaceOverlay)) +#define GST_FACEOVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FACEOVERLAY,GstFaceOverlayClass)) +#define GST_IS_FACEOVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FACEOVERLAY)) +#define GST_IS_FACEOVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FACEOVERLAY)) +typedef struct _GstFaceOverlay GstFaceOverlay; +typedef struct _GstFaceOverlayClass GstFaceOverlayClass; + +struct _GstFaceOverlay +{ + GstBin parent; + + GstPad *sinkpad, *srcpad; + + GstElement *face_detect; + GstElement *colorspace; + GstElement *svg_overlay; + + gboolean process_message; + + gchar *location; + gfloat x; + gfloat y; + gfloat w; + gfloat h; +}; + +struct _GstFaceOverlayClass +{ + GstBinClass parent_class; +}; + +GType gst_face_overlay_get_type (void); + +G_END_DECLS +#endif /* __GST_FACEOVERLAY_H__ */ diff --git a/gst/festival/Makefile.in b/gst/festival/Makefile.in index b065443..8204bbb 100644 --- a/gst/festival/Makefile.in +++ b/gst/festival/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstfestival_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstfestival_la_OBJECTS = libgstfestival_la-gstfestival.lo libgstfestival_la_OBJECTS = $(am_libgstfestival_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfestival_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfestival_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfestival_la_SOURCES) DIST_SOURCES = $(libgstfestival_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -605,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfestival.la: $(libgstfestival_la_OBJECTS) $(libgstfestival_la_DEPENDENCIES) +libgstfestival.la: $(libgstfestival_la_OBJECTS) $(libgstfestival_la_DEPENDENCIES) $(EXTRA_libgstfestival_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfestival_la_LINK) -rpath $(plugindir) $(libgstfestival_la_OBJECTS) $(libgstfestival_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -619,34 +646,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfestival_la-gstfestival.lo: gstfestival.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfestival_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfestival_la_CFLAGS) $(CFLAGS) -MT libgstfestival_la-gstfestival.lo -MD -MP -MF $(DEPDIR)/libgstfestival_la-gstfestival.Tpo -c -o libgstfestival_la-gstfestival.lo `test -f 'gstfestival.c' || echo '$(srcdir)/'`gstfestival.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfestival_la-gstfestival.Tpo $(DEPDIR)/libgstfestival_la-gstfestival.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfestival.c' object='libgstfestival_la-gstfestival.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfestival.c' object='libgstfestival_la-gstfestival.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfestival_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfestival_la_CFLAGS) $(CFLAGS) -c -o libgstfestival_la-gstfestival.lo `test -f 'gstfestival.c' || echo '$(srcdir)/'`gstfestival.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfestival_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfestival_la_CFLAGS) $(CFLAGS) -c -o libgstfestival_la-gstfestival.lo `test -f 'gstfestival.c' || echo '$(srcdir)/'`gstfestival.c mostlyclean-libtool: -rm -f *.lo @@ -753,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/festival/gstfestival.c b/gst/festival/gstfestival.c index dbecfdb..47b371b 100644 --- a/gst/festival/gstfestival.c +++ b/gst/festival/gstfestival.c @@ -184,10 +184,10 @@ gst_festival_base_init (gpointer g_class) GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); /* register pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &src_template_factory); gst_element_class_set_details_simple (element_class, "Festival Text-to-Speech synthesizer", "Filter/Effect/Audio", @@ -297,21 +297,29 @@ gst_festival_chain (GstPad * pad, GstBuffer * buf) GstFlowReturn ret = GST_FLOW_OK; GstFestival *festival; guint8 *p, *ep; + gint f; FILE *fd; festival = GST_FESTIVAL (GST_PAD_PARENT (pad)); GST_LOG_OBJECT (festival, "Got text buffer, %u bytes", GST_BUFFER_SIZE (buf)); - fd = fdopen (dup (festival->info->server_fd), "wb"); + f = dup (festival->info->server_fd); + if (f < 0) + goto fail_open; + fd = fdopen (f, "wb"); + if (fd == NULL) { + close (f); + goto fail_open; + } /* Copy text over to server, escaping any quotes */ fprintf (fd, "(Parameter.set 'Audio_Required_Rate 16000)\n"); fflush (fd); GST_DEBUG_OBJECT (festival, "issued Parameter.set command"); if (read_response (festival) == FALSE) { - ret = GST_FLOW_ERROR; - goto out; + fclose (fd); + goto fail_read; } fprintf (fd, "(tts_textall \""); @@ -331,11 +339,25 @@ gst_festival_chain (GstPad * pad, GstBuffer * buf) /* Read back info from server */ if (read_response (festival) == FALSE) - ret = GST_FLOW_ERROR; + goto fail_read; out: gst_buffer_unref (buf); return ret; + + /* ERRORS */ +fail_open: + { + GST_ELEMENT_ERROR (festival, RESOURCE, OPEN_WRITE, (NULL), (NULL)); + ret = GST_FLOW_ERROR; + goto out; + } +fail_read: + { + GST_ELEMENT_ERROR (festival, RESOURCE, READ, (NULL), (NULL)); + ret = GST_FLOW_ERROR; + goto out; + } } static FT_Info * diff --git a/gst/fieldanalysis/Makefile.in b/gst/fieldanalysis/Makefile.in index defb646..c9c0cf1 100644 --- a/gst/fieldanalysis/Makefile.in +++ b/gst/fieldanalysis/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -64,6 +64,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -122,6 +123,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -134,8 +141,8 @@ am__objects_1 = libgstfieldanalysis_la-tmp-orc.lo nodist_libgstfieldanalysis_la_OBJECTS = $(am__objects_1) libgstfieldanalysis_la_OBJECTS = $(am_libgstfieldanalysis_la_OBJECTS) \ $(nodist_libgstfieldanalysis_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfieldanalysis_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -151,21 +158,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfieldanalysis_la_SOURCES) \ $(nodist_libgstfieldanalysis_la_SOURCES) @@ -178,7 +185,6 @@ 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@ @@ -196,7 +202,6 @@ 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@ @@ -231,6 +236,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -270,6 +276,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -287,6 +294,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -295,13 +303,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -326,13 +337,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -380,6 +392,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -411,8 +424,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -436,6 +453,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -460,10 +479,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -475,6 +498,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -499,6 +526,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -534,7 +562,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -611,6 +638,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -651,7 +679,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfieldanalysis.la: $(libgstfieldanalysis_la_OBJECTS) $(libgstfieldanalysis_la_DEPENDENCIES) +libgstfieldanalysis.la: $(libgstfieldanalysis_la_OBJECTS) $(libgstfieldanalysis_la_DEPENDENCIES) $(EXTRA_libgstfieldanalysis_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfieldanalysis_la_LINK) -rpath $(plugindir) $(libgstfieldanalysis_la_OBJECTS) $(libgstfieldanalysis_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -666,42 +694,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfieldanalysis_la-gstfieldanalysis.lo: gstfieldanalysis.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -MT libgstfieldanalysis_la-gstfieldanalysis.lo -MD -MP -MF $(DEPDIR)/libgstfieldanalysis_la-gstfieldanalysis.Tpo -c -o libgstfieldanalysis_la-gstfieldanalysis.lo `test -f 'gstfieldanalysis.c' || echo '$(srcdir)/'`gstfieldanalysis.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfieldanalysis_la-gstfieldanalysis.Tpo $(DEPDIR)/libgstfieldanalysis_la-gstfieldanalysis.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfieldanalysis.c' object='libgstfieldanalysis_la-gstfieldanalysis.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfieldanalysis.c' object='libgstfieldanalysis_la-gstfieldanalysis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -c -o libgstfieldanalysis_la-gstfieldanalysis.lo `test -f 'gstfieldanalysis.c' || echo '$(srcdir)/'`gstfieldanalysis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -c -o libgstfieldanalysis_la-gstfieldanalysis.lo `test -f 'gstfieldanalysis.c' || echo '$(srcdir)/'`gstfieldanalysis.c libgstfieldanalysis_la-tmp-orc.lo: tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -MT libgstfieldanalysis_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstfieldanalysis_la-tmp-orc.Tpo -c -o libgstfieldanalysis_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfieldanalysis_la-tmp-orc.Tpo $(DEPDIR)/libgstfieldanalysis_la-tmp-orc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstfieldanalysis_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstfieldanalysis_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 $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -c -o libgstfieldanalysis_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfieldanalysis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfieldanalysis_la_CFLAGS) $(CFLAGS) -c -o libgstfieldanalysis_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -813,10 +836,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/fieldanalysis/gstfieldanalysis.c b/gst/fieldanalysis/gstfieldanalysis.c index 7f8a059..404fcfa 100644 --- a/gst/fieldanalysis/gstfieldanalysis.c +++ b/gst/fieldanalysis/gstfieldanalysis.c @@ -136,10 +136,8 @@ gst_field_analysis_base_init (gpointer gclass) "Analyse fields from video frames to identify if they are progressive/telecined/interlaced", "Robert Swain "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } typedef enum @@ -313,9 +311,8 @@ static guint64 block_score_for_row_5_tap (GstFieldAnalysis * filter, static gfloat opposite_parity_windowed_comb (GstFieldAnalysis * filter, FieldAnalysisFields * fields); - static void -gst_field_analysis_reset (GstFieldAnalysis * filter) +gst_field_analysis_empty_queue (GstFieldAnalysis * filter) { if (filter->frames) { guint length = g_queue_get_length (filter->frames); @@ -327,6 +324,12 @@ gst_field_analysis_reset (GstFieldAnalysis * filter) length--; } } +} + +static void +gst_field_analysis_reset (GstFieldAnalysis * filter) +{ + gst_field_analysis_empty_queue (filter); GST_DEBUG_OBJECT (filter, "Resetting context"); memset (filter->results, 0, 2 * sizeof (FieldAnalysis)); filter->is_telecine = FALSE; @@ -1711,7 +1714,7 @@ gst_field_analysis_chain (GstPad * pad, GstBuffer * buf) } } - gst_field_analysis_reset (filter); + gst_field_analysis_empty_queue (filter); if (ret != GST_FLOW_OK) { GST_DEBUG_OBJECT (filter, diff --git a/gst/freeverb/Makefile.am b/gst/freeverb/Makefile.am new file mode 100644 index 0000000..73706a2 --- /dev/null +++ b/gst/freeverb/Makefile.am @@ -0,0 +1,28 @@ +plugin_LTLIBRARIES = libgstfreeverb.la + +# sources used to compile this plug-in +libgstfreeverb_la_SOURCES = gstfreeverb.c + +# flags used to compile this plugin +# add other _CFLAGS and _LIBS as needed +libgstfreeverb_la_CFLAGS = $(GST_CFLAGS) $(GST_CONTROLLER_CFLAGS) +libgstfreeverb_la_LIBADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS) +libgstfreeverb_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfreeverb_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstfreeverb.h + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstfreeverb -:SHARED libgstfreeverb \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstfreeverb_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstfreeverb_la_CFLAGS) \ + -:LDFLAGS $(libgstfreeverb_la_LDFLAGS) \ + $(libgstfreeverb_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ diff --git a/gst/freeverb/Makefile.in b/gst/freeverb/Makefile.in new file mode 100644 index 0000000..a48e430 --- /dev/null +++ b/gst/freeverb/Makefile.in @@ -0,0 +1,904 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gst/freeverb +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstfreeverb_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstfreeverb_la_OBJECTS = libgstfreeverb_la-gstfreeverb.lo +libgstfreeverb_la_OBJECTS = $(am_libgstfreeverb_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstfreeverb_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstfreeverb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstfreeverb_la_CFLAGS) $(CFLAGS) \ + $(libgstfreeverb_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstfreeverb_la_SOURCES) +DIST_SOURCES = $(libgstfreeverb_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstfreeverb.la + +# sources used to compile this plug-in +libgstfreeverb_la_SOURCES = gstfreeverb.c + +# flags used to compile this plugin +# add other _CFLAGS and _LIBS as needed +libgstfreeverb_la_CFLAGS = $(GST_CFLAGS) $(GST_CONTROLLER_CFLAGS) +libgstfreeverb_la_LIBADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS) +libgstfreeverb_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfreeverb_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstfreeverb.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 gst/freeverb/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst/freeverb/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 +libgstfreeverb.la: $(libgstfreeverb_la_OBJECTS) $(libgstfreeverb_la_DEPENDENCIES) $(EXTRA_libgstfreeverb_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstfreeverb_la_LINK) -rpath $(plugindir) $(libgstfreeverb_la_OBJECTS) $(libgstfreeverb_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstfreeverb_la-gstfreeverb.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstfreeverb_la-gstfreeverb.lo: gstfreeverb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfreeverb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfreeverb_la_CFLAGS) $(CFLAGS) -MT libgstfreeverb_la-gstfreeverb.lo -MD -MP -MF $(DEPDIR)/libgstfreeverb_la-gstfreeverb.Tpo -c -o libgstfreeverb_la-gstfreeverb.lo `test -f 'gstfreeverb.c' || echo '$(srcdir)/'`gstfreeverb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfreeverb_la-gstfreeverb.Tpo $(DEPDIR)/libgstfreeverb_la-gstfreeverb.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfreeverb.c' object='libgstfreeverb_la-gstfreeverb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfreeverb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfreeverb_la_CFLAGS) $(CFLAGS) -c -o libgstfreeverb_la-gstfreeverb.lo `test -f 'gstfreeverb.c' || echo '$(srcdir)/'`gstfreeverb.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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 libgstfreeverb -:SHARED libgstfreeverb \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstfreeverb_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstfreeverb_la_CFLAGS) \ + -:LDFLAGS $(libgstfreeverb_la_LDFLAGS) \ + $(libgstfreeverb_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/gst/freeverb/gstfreeverb.c b/gst/freeverb/gstfreeverb.c new file mode 100644 index 0000000..1255eb8 --- /dev/null +++ b/gst/freeverb/gstfreeverb.c @@ -0,0 +1,972 @@ +/* + * GStreamer + * Copyright (C) 2011 Stefan Sauer + * + * 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. + */ +/* + * Freeverb + * + * Written by Jezar at Dreampoint, June 2000 + * http://www.dreampoint.co.uk + * This code is public domain + * + * Translated to C by Peter Hanappe, Mai 2001 + * Transformed into a GStreamer plugin by Stefan Sauer, Nov 2011 + */ + +/** + * SECTION:element-freeverb + * + * Reverberation/room effect. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc wave=saw ! freeverb ! autoaudiosink + * gst-launch filesrc location="melo1.ogg" ! decodebin ! audioconvert ! freeverb ! autoaudiosink + * ]| + * + */ + +/* FIXME: + * - add mono-to-mono, then we might also need stereo-to-mono ? + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include +#include +#include + +#include "gstfreeverb.h" + +#define GST_CAT_DEFAULT gst_freeverb_debug +GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); + +enum +{ + PROP_0, + PROP_ROOM_SIZE, + PROP_DAMPING, + PROP_PAN_WIDTH, + PROP_LEVEL +}; + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-float, " + "rate = (int) [ 1, MAX ], " + "channels = (int) [ 1, 2 ], " + "endianness = (int) BYTE_ORDER, " "width = (int) 32; " + "audio/x-raw-int, " + "rate = (int) [ 1, MAX ], " + "channels = (int) [ 1, 2 ], " + "endianness = (int) BYTE_ORDER, " + "width = (int) 16, " "depth = (int) 16, " "signed = (boolean) true") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-float, " + "rate = (int) [ 1, MAX ], " + "channels = (int) 2, " + "endianness = (int) BYTE_ORDER, " "width = (int) 32; " + "audio/x-raw-int, " + "rate = (int) [ 1, MAX ], " + "channels = (int) 2, " + "endianness = (int) BYTE_ORDER, " + "width = (int) 16, " "depth = (int) 16, " "signed = (boolean) true") + ); + +#define _do_init(type) { \ + const GInterfaceInfo preset_interface_info = { NULL, NULL, NULL }; \ + g_type_add_interface_static (type, GST_TYPE_PRESET, &preset_interface_info); \ + \ + GST_DEBUG_CATEGORY_INIT (gst_freeverb_debug, "freeverb", 0, \ + "freeverb element"); \ +} + +GST_BOILERPLATE_FULL (GstFreeverb, gst_freeverb, GstBaseTransform, + GST_TYPE_BASE_TRANSFORM, _do_init); + +static void gst_freeverb_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_freeverb_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void gst_freeverb_finalize (GObject * object); + +static gboolean gst_freeverb_get_unit_size (GstBaseTransform * base, + GstCaps * caps, guint * size); +static GstCaps *gst_freeverb_transform_caps (GstBaseTransform * base, + GstPadDirection direction, GstCaps * caps); +static gboolean gst_freeverb_set_caps (GstBaseTransform * base, + GstCaps * incaps, GstCaps * outcaps); + +static GstFlowReturn gst_freeverb_transform (GstBaseTransform * base, + GstBuffer * inbuf, GstBuffer * outbuf); + +static gboolean gst_freeverb_transform_m2s_int (GstFreeverb * filter, + gint16 * idata, gint16 * odata, guint num_samples); +static gboolean gst_freeverb_transform_s2s_int (GstFreeverb * filter, + gint16 * idata, gint16 * odata, guint num_samples); +static gboolean gst_freeverb_transform_m2s_float (GstFreeverb * filter, + gfloat * idata, gfloat * odata, guint num_samples); +static gboolean gst_freeverb_transform_s2s_float (GstFreeverb * filter, + gfloat * idata, gfloat * odata, guint num_samples); + + +/* Table with processing functions: [channels][format] */ +static GstFreeverbProcessFunc process_functions[2][2] = { + { + (GstFreeverbProcessFunc) gst_freeverb_transform_m2s_int, + (GstFreeverbProcessFunc) gst_freeverb_transform_m2s_float, + }, + { + (GstFreeverbProcessFunc) gst_freeverb_transform_s2s_int, + (GstFreeverbProcessFunc) gst_freeverb_transform_s2s_float, + } +}; + +/*************************************************************** + * + * REVERB + */ + +/* Denormalising: + * + * Another method fixes the problem cheaper: Use a small DC-offset in + * the filter calculations. Now the signals converge not against 0, + * but against the offset. The constant offset is invisible from the + * outside world (i.e. it does not appear at the output. There is a + * very small turn-on transient response, which should not cause + * problems. + */ + +//#define DC_OFFSET 0 +#define DC_OFFSET 1e-8 +//#define DC_OFFSET 0.001f + +/* all pass filter */ + +typedef struct _freeverb_allpass +{ + gfloat feedback; + gfloat *buffer; + gint bufsize; + gint bufidx; +} freeverb_allpass; + +static void +freeverb_allpass_setbuffer (freeverb_allpass * allpass, gint size) +{ + allpass->bufidx = 0; + allpass->buffer = g_new (gfloat, size); + allpass->bufsize = size; +} + +static void +freeverb_allpass_release (freeverb_allpass * allpass) +{ + g_free (allpass->buffer); +} + +static void +freeverb_allpass_init (freeverb_allpass * allpass) +{ + gint i, len = allpass->bufsize; + gfloat *buf = allpass->buffer; + + for (i = 0; i < len; i++) { + buf[i] = DC_OFFSET; /* this is not 100 % correct. */ + } +} + +static void +freeverb_allpass_setfeedback (freeverb_allpass * allpass, gfloat val) +{ + allpass->feedback = val; +} + +/* +static gfloat +freeverb_allpass_getfeedback(freeverb_allpass* allpass) +{ + return allpass->feedback; +}*/ + +#define freeverb_allpass_process(_allpass, _input_1) \ +{ \ + gfloat output; \ + gfloat bufout; \ + bufout = _allpass.buffer[_allpass.bufidx]; \ + output = bufout-_input_1; \ + _allpass.buffer[_allpass.bufidx] = _input_1 + (bufout * _allpass.feedback); \ + if (++_allpass.bufidx >= _allpass.bufsize) { \ + _allpass.bufidx = 0; \ + } \ + _input_1 = output; \ +} + +/* comb filter */ + +typedef struct _freeverb_comb +{ + gfloat feedback; + gfloat filterstore; + gfloat damp1; + gfloat damp2; + gfloat *buffer; + gint bufsize; + gint bufidx; +} freeverb_comb; + +static void +freeverb_comb_setbuffer (freeverb_comb * comb, gint size) +{ + comb->filterstore = 0; + comb->bufidx = 0; + comb->buffer = g_new (gfloat, size); + comb->bufsize = size; +} + +static void +freeverb_comb_release (freeverb_comb * comb) +{ + g_free (comb->buffer); +} + +static void +freeverb_comb_init (freeverb_comb * comb) +{ + gint i, len = comb->bufsize; + gfloat *buf = comb->buffer; + + for (i = 0; i < len; i++) { + buf[i] = DC_OFFSET; /* This is not 100 % correct. */ + } +} + +static void +freeverb_comb_setdamp (freeverb_comb * comb, gfloat val) +{ + comb->damp1 = val; + comb->damp2 = 1 - val; +} + +/* +static gfloat +freeverb_comb_getdamp(freeverb_comb* comb) +{ + return comb->damp1; +}*/ + +static void +freeverb_comb_setfeedback (freeverb_comb * comb, gfloat val) +{ + comb->feedback = val; +} + +/* +static gfloat +freeverb_comb_getfeedback(freeverb_comb* comb) +{ + return comb->feedback; +}*/ + +#define freeverb_comb_process(_comb, _input_1, _output) \ +{ \ + gfloat _tmp = _comb.buffer[_comb.bufidx]; \ + _comb.filterstore = (_tmp * _comb.damp2) + (_comb.filterstore * _comb.damp1); \ + _comb.buffer[_comb.bufidx] = _input_1 + (_comb.filterstore * _comb.feedback); \ + if (++_comb.bufidx >= _comb.bufsize) { \ + _comb.bufidx = 0; \ + } \ + _output += _tmp; \ +} + +#define numcombs 8 +#define numallpasses 4 +#define fixedgain 0.015f +#define scalewet 1.0f +#define scaledry 1.0f +#define scaledamp 1.0f +#define scaleroom 0.28f +#define offsetroom 0.7f +#define stereospread 23 + +/* These values assume 44.1KHz sample rate + * they will need scaling for 96KHz (or other) sample rates. + * The values were obtained by listening tests. + */ +#define combtuningL1 1116 +#define combtuningR1 (1116 + stereospread) +#define combtuningL2 1188 +#define combtuningR2 (1188 + stereospread) +#define combtuningL3 1277 +#define combtuningR3 (1277 + stereospread) +#define combtuningL4 1356 +#define combtuningR4 (1356 + stereospread) +#define combtuningL5 1422 +#define combtuningR5 (1422 + stereospread) +#define combtuningL6 1491 +#define combtuningR6 (1491 + stereospread) +#define combtuningL7 1557 +#define combtuningR7 (1557 + stereospread) +#define combtuningL8 1617 +#define combtuningR8 (1617 + stereospread) +#define allpasstuningL1 556 +#define allpasstuningR1 (556 + stereospread) +#define allpasstuningL2 441 +#define allpasstuningR2 (441 + stereospread) +#define allpasstuningL3 341 +#define allpasstuningR3 (341 + stereospread) +#define allpasstuningL4 225 +#define allpasstuningR4 (225 + stereospread) + +struct _GstFreeverbPrivate +{ + gfloat roomsize; + gfloat damp; + gfloat wet, wet1, wet2, dry; + gfloat width; + gfloat gain; + /* + The following are all declared inline + to remove the need for dynamic allocation + with its subsequent error-checking messiness + */ + /* Comb filters */ + freeverb_comb combL[numcombs]; + freeverb_comb combR[numcombs]; + /* Allpass filters */ + freeverb_allpass allpassL[numallpasses]; + freeverb_allpass allpassR[numallpasses]; +}; + +static void +freeverb_revmodel_init (GstFreeverb * filter) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i; + + for (i = 0; i < numcombs; i++) { + freeverb_comb_init (&priv->combL[i]); + freeverb_comb_init (&priv->combR[i]); + } + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_init (&priv->allpassL[i]); + freeverb_allpass_init (&priv->allpassR[i]); + } +} + +static void +freeverb_revmodel_free (GstFreeverb * filter) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i; + + for (i = 0; i < numcombs; i++) { + freeverb_comb_release (&priv->combL[i]); + freeverb_comb_release (&priv->combR[i]); + } + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_release (&priv->allpassL[i]); + freeverb_allpass_release (&priv->allpassR[i]); + } +} + +/* GObject vmethod implementations */ + +static void +gst_freeverb_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, "Stereo positioning", + "Filter/Effect/Audio", + "Reverberation/room effect", "Stefan Sauer "); +} + +static void +gst_freeverb_class_init (GstFreeverbClass * klass) +{ + GObjectClass *gobject_class; + + g_type_class_add_private (klass, sizeof (GstFreeverbPrivate)); + + gobject_class = (GObjectClass *) klass; + gobject_class->set_property = gst_freeverb_set_property; + gobject_class->get_property = gst_freeverb_get_property; + gobject_class->finalize = gst_freeverb_finalize; + + g_object_class_install_property (gobject_class, PROP_ROOM_SIZE, + g_param_spec_float ("room-size", "Room size", + "Size of the simulated room", 0.0, 1.0, 0.5, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DAMPING, + g_param_spec_float ("damping", "Damping", "Damping of high frequencies", + 0.0, 1.0, 0.2, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PAN_WIDTH, + g_param_spec_float ("width", "Width", "Stereo panorama width", 0.0, 1.0, + 1.0, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_LEVEL, + g_param_spec_float ("level", "Level", "dry/wet level", 0.0, 1.0, 0.5, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | + G_PARAM_STATIC_STRINGS)); + + GST_BASE_TRANSFORM_CLASS (klass)->get_unit_size = + GST_DEBUG_FUNCPTR (gst_freeverb_get_unit_size); + GST_BASE_TRANSFORM_CLASS (klass)->transform_caps = + GST_DEBUG_FUNCPTR (gst_freeverb_transform_caps); + GST_BASE_TRANSFORM_CLASS (klass)->set_caps = + GST_DEBUG_FUNCPTR (gst_freeverb_set_caps); + GST_BASE_TRANSFORM_CLASS (klass)->transform = + GST_DEBUG_FUNCPTR (gst_freeverb_transform); +} + +static void +gst_freeverb_init (GstFreeverb * filter, GstFreeverbClass * klass) +{ + filter->priv = + G_TYPE_INSTANCE_GET_PRIVATE (filter, GST_TYPE_FREEVERB, + GstFreeverbPrivate); + + filter->width = 0; + filter->channels = 0; + filter->format_float = FALSE; + filter->process = NULL; + + gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (filter), TRUE); + + freeverb_revmodel_init (filter); +} + +static void +gst_freeverb_finalize (GObject * object) +{ + GstFreeverb *filter = GST_FREEVERB (object); + + freeverb_revmodel_free (filter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_freeverb_set_process_function (GstFreeverb * filter) +{ + gint channel_index, format_index; + + /* set processing function */ + channel_index = filter->channels - 1; + if (channel_index > 1 || channel_index < 0) { + filter->process = NULL; + return FALSE; + } + + format_index = (filter->format_float) ? 1 : 0; + + filter->process = process_functions[channel_index][format_index]; + + g_assert (filter->process); + return TRUE; +} + +static void +gst_freeverb_init_rev_model (GstFreeverb * filter) +{ + gfloat srfactor = filter->rate / 44100.0f; + GstFreeverbPrivate *priv = filter->priv; + + freeverb_revmodel_free (filter); + + priv->gain = fixedgain; + + freeverb_comb_setbuffer (&priv->combL[0], combtuningL1 * srfactor); + freeverb_comb_setbuffer (&priv->combR[0], combtuningR1 * srfactor); + freeverb_comb_setbuffer (&priv->combL[1], combtuningL2 * srfactor); + freeverb_comb_setbuffer (&priv->combR[1], combtuningR2 * srfactor); + freeverb_comb_setbuffer (&priv->combL[2], combtuningL3 * srfactor); + freeverb_comb_setbuffer (&priv->combR[2], combtuningR3 * srfactor); + freeverb_comb_setbuffer (&priv->combL[3], combtuningL4 * srfactor); + freeverb_comb_setbuffer (&priv->combR[3], combtuningR4 * srfactor); + freeverb_comb_setbuffer (&priv->combL[4], combtuningL5 * srfactor); + freeverb_comb_setbuffer (&priv->combR[4], combtuningR5 * srfactor); + freeverb_comb_setbuffer (&priv->combL[5], combtuningL6 * srfactor); + freeverb_comb_setbuffer (&priv->combR[5], combtuningR6 * srfactor); + freeverb_comb_setbuffer (&priv->combL[6], combtuningL7 * srfactor); + freeverb_comb_setbuffer (&priv->combR[6], combtuningR7 * srfactor); + freeverb_comb_setbuffer (&priv->combL[7], combtuningL8 * srfactor); + freeverb_comb_setbuffer (&priv->combR[7], combtuningR8 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassL[0], allpasstuningL1 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassR[0], allpasstuningR1 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassL[1], allpasstuningL2 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassR[1], allpasstuningR2 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassL[2], allpasstuningL3 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassR[2], allpasstuningR3 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassL[3], allpasstuningL4 * srfactor); + freeverb_allpass_setbuffer (&priv->allpassR[3], allpasstuningR4 * srfactor); + + /* clear buffers */ + freeverb_revmodel_init (filter); + + /* set default values */ + freeverb_allpass_setfeedback (&priv->allpassL[0], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassR[0], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassL[1], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassR[1], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassL[2], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassR[2], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassL[3], 0.5f); + freeverb_allpass_setfeedback (&priv->allpassR[3], 0.5f); +} + +static void +gst_freeverb_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstFreeverb *filter = GST_FREEVERB (object); + GstFreeverbPrivate *priv = filter->priv; + gint i; + + switch (prop_id) { + case PROP_ROOM_SIZE: + filter->room_size = g_value_get_float (value); + priv->roomsize = (filter->room_size * scaleroom) + offsetroom; + for (i = 0; i < numcombs; i++) { + freeverb_comb_setfeedback (&priv->combL[i], priv->roomsize); + freeverb_comb_setfeedback (&priv->combR[i], priv->roomsize); + } + break; + case PROP_DAMPING: + filter->damping = g_value_get_float (value); + priv->damp = filter->damping * scaledamp; + for (i = 0; i < numcombs; i++) { + freeverb_comb_setdamp (&priv->combL[i], priv->damp); + freeverb_comb_setdamp (&priv->combR[i], priv->damp); + } + break; + case PROP_PAN_WIDTH: + filter->pan_width = g_value_get_float (value); + priv->width = filter->pan_width; + priv->wet1 = priv->wet * (priv->width / 2.0f + 0.5f); + priv->wet2 = priv->wet * ((1.0f - priv->width) / 2.0f); + break; + case PROP_LEVEL: + filter->level = g_value_get_float (value); + priv->wet = filter->level * scalewet; + priv->dry = (1.0 - filter->level) * scaledry; + priv->wet1 = priv->wet * (priv->width / 2.0f + 0.5f); + priv->wet2 = priv->wet * ((1.0f - priv->width) / 2.0f); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_freeverb_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstFreeverb *filter = GST_FREEVERB (object); + + switch (prop_id) { + case PROP_ROOM_SIZE: + g_value_set_float (value, filter->room_size); + break; + case PROP_DAMPING: + g_value_set_float (value, filter->damping); + break; + case PROP_PAN_WIDTH: + g_value_set_float (value, filter->pan_width); + break; + case PROP_LEVEL: + g_value_set_float (value, filter->level); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* GstBaseTransform vmethod implementations */ + +static gboolean +gst_freeverb_get_unit_size (GstBaseTransform * base, GstCaps * caps, + guint * size) +{ + gint width, channels; + GstStructure *structure; + gboolean ret; + + g_assert (size); + + /* this works for both float and int */ + structure = gst_caps_get_structure (caps, 0); + ret = gst_structure_get_int (structure, "width", &width); + ret &= gst_structure_get_int (structure, "channels", &channels); + + *size = width * channels / 8; + + GST_INFO_OBJECT (base, "unit size: %u", *size); + + return ret; +} + +static GstCaps * +gst_freeverb_transform_caps (GstBaseTransform * base, + GstPadDirection direction, GstCaps * caps) +{ + GstCaps *res; + GstStructure *structure; + + /* transform caps gives one single caps so we can just replace + * the channel property with our range. */ + res = gst_caps_copy (caps); + structure = gst_caps_get_structure (res, 0); + if (direction == GST_PAD_SRC) { + GST_INFO_OBJECT (base, "allow 1-2 channels"); + gst_structure_set (structure, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL); + } else { + GST_INFO_OBJECT (base, "allow 2 channels"); + gst_structure_set (structure, "channels", G_TYPE_INT, 2, NULL); + } + + return res; +} + +static gboolean +gst_freeverb_set_caps (GstBaseTransform * base, GstCaps * incaps, + GstCaps * outcaps) +{ + GstFreeverb *filter = GST_FREEVERB (base); + const GstStructure *structure; + gboolean ret; + gint width, rate; + const gchar *fmt; + + /*GST_INFO ("incaps are %" GST_PTR_FORMAT, incaps); */ + + structure = gst_caps_get_structure (incaps, 0); + ret = gst_structure_get_int (structure, "channels", &filter->channels); + if (!ret) + goto no_channels; + + ret = gst_structure_get_int (structure, "width", &width); + if (!ret) + goto no_width; + filter->width = width / 8; + + ret = gst_structure_get_int (structure, "rate", &rate); + if (!ret) + goto no_rate; + filter->rate = rate; + + fmt = gst_structure_get_name (structure); + if (!strcmp (fmt, "audio/x-raw-int")) + filter->format_float = FALSE; + else + filter->format_float = TRUE; + + GST_DEBUG_OBJECT (filter, "try to process %s input_1 with %d channels", fmt, + filter->channels); + + ret = gst_freeverb_set_process_function (filter); + if (!ret) + GST_WARNING_OBJECT (filter, "can't process input_1 with %d channels", + filter->channels); + + gst_freeverb_init_rev_model (filter); + filter->drained = FALSE; + GST_INFO_OBJECT (base, "model configured"); + + return ret; + +no_channels: + GST_DEBUG_OBJECT (filter, "no channels in caps"); + return ret; +no_width: + GST_DEBUG_OBJECT (filter, "no width in caps"); + return ret; +no_rate: + GST_DEBUG_OBJECT (filter, "no rate in caps"); + return ret; +} + +static gboolean +gst_freeverb_transform_m2s_int (GstFreeverb * filter, + gint16 * idata, gint16 * odata, guint num_samples) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i, k; + gfloat out_l1, out_r1, input_1; + gfloat out_l2, out_r2, input_2; + gboolean drained = TRUE; + + for (k = 0; k < num_samples; k++) { + + out_l1 = out_r1 = 0.0; + + /* The original Freeverb code expects a stereo signal and 'input_1' + * is set to the sum of the left and right input_1 sample. Since + * this code works on a mono signal, 'input_1' is set to twice the + * input_1 sample. */ + input_2 = (gfloat) * idata++; + input_1 = (2.0f * input_2 + DC_OFFSET) * priv->gain; + + /* Accumulate comb filters in parallel */ + for (i = 0; i < numcombs; i++) { + freeverb_comb_process (priv->combL[i], input_1, out_l1); + freeverb_comb_process (priv->combR[i], input_1, out_r1); + } + /* Feed through allpasses in series */ + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_process (priv->allpassL[i], out_l1); + freeverb_allpass_process (priv->allpassR[i], out_r1); + } + + /* Remove the DC offset */ + out_l1 -= DC_OFFSET; + out_r1 -= DC_OFFSET; + + /* Calculate output */ + out_l2 = out_l1 * priv->wet1 + out_r1 * priv->wet2 + input_2 * priv->dry; + out_r2 = out_r1 * priv->wet1 + out_l1 * priv->wet2 + input_2 * priv->dry; + *odata++ = (gint16) CLAMP (out_l2, G_MININT16, G_MAXINT16); + *odata++ = (gint16) CLAMP (out_r2, G_MININT16, G_MAXINT16); + + if (abs (out_l2) > 0 || abs (out_r2) > 0) + drained = FALSE; + } + return drained; +} + +static gboolean +gst_freeverb_transform_s2s_int (GstFreeverb * filter, + gint16 * idata, gint16 * odata, guint num_samples) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i, k; + gfloat out_l1, out_r1, input_1l, input_1r; + gfloat out_l2, out_r2, input_2l, input_2r; + gboolean drained = TRUE; + + for (k = 0; k < num_samples; k++) { + + out_l1 = out_r1 = 0.0; + + input_2l = (gfloat) * idata++; + input_2r = (gfloat) * idata++; + input_1l = (input_2l + DC_OFFSET) * priv->gain; + input_1r = (input_2r + DC_OFFSET) * priv->gain; + + /* Accumulate comb filters in parallel */ + for (i = 0; i < numcombs; i++) { + freeverb_comb_process (priv->combL[i], input_1l, out_l1); + freeverb_comb_process (priv->combR[i], input_1r, out_r1); + } + /* Feed through allpasses in series */ + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_process (priv->allpassL[i], out_l1); + freeverb_allpass_process (priv->allpassR[i], out_r1); + } + + /* Remove the DC offset */ + out_l1 -= DC_OFFSET; + out_r1 -= DC_OFFSET; + + /* Calculate output */ + out_l2 = out_l1 * priv->wet1 + out_r1 * priv->wet2 + input_2l * priv->dry; + out_r2 = out_r1 * priv->wet1 + out_l1 * priv->wet2 + input_2r * priv->dry; + *odata++ = (gint16) CLAMP (out_l2, G_MININT16, G_MAXINT16); + *odata++ = (gint16) CLAMP (out_r2, G_MININT16, G_MAXINT16); + + if (abs (out_l2) > 0 || abs (out_r2) > 0) + drained = FALSE; + } + return drained; +} + +static gboolean +gst_freeverb_transform_m2s_float (GstFreeverb * filter, + gfloat * idata, gfloat * odata, guint num_samples) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i, k; + gfloat out_l1, out_r1, input_1; + gfloat out_l2, out_r2, input_2; + gboolean drained = TRUE; + + for (k = 0; k < num_samples; k++) { + + out_l1 = out_r1 = 0.0; + + /* The original Freeverb code expects a stereo signal and 'input_1' + * is set to the sum of the left and right input_1 sample. Since + * this code works on a mono signal, 'input_1' is set to twice the + * input_1 sample. */ + input_2 = *idata++; + input_1 = (2.0f * input_2 + DC_OFFSET) * priv->gain; + + /* Accumulate comb filters in parallel */ + for (i = 0; i < numcombs; i++) { + freeverb_comb_process (priv->combL[i], input_1, out_l1); + freeverb_comb_process (priv->combR[i], input_1, out_r1); + } + /* Feed through allpasses in series */ + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_process (priv->allpassL[i], out_l1); + freeverb_allpass_process (priv->allpassR[i], out_r1); + } + + /* Remove the DC offset */ + out_l1 -= DC_OFFSET; + out_r1 -= DC_OFFSET; + + /* Calculate output */ + out_l2 = out_l1 * priv->wet1 + out_r1 * priv->wet2 + input_2 * priv->dry; + out_r2 = out_r1 * priv->wet1 + out_l1 * priv->wet2 + input_2 * priv->dry; + *odata++ = out_l2; + *odata++ = out_r2; + + if (fabs (out_l2) > 0 || fabs (out_r2) > 0) + drained = FALSE; + } + return drained; +} + +static gboolean +gst_freeverb_transform_s2s_float (GstFreeverb * filter, + gfloat * idata, gfloat * odata, guint num_samples) +{ + GstFreeverbPrivate *priv = filter->priv; + gint i, k; + gfloat out_l1, out_r1, input_1l, input_1r; + gfloat out_l2, out_r2, input_2l, input_2r; + gboolean drained = TRUE; + + for (k = 0; k < num_samples; k++) { + + out_l1 = out_r1 = 0.0; + + input_2l = *idata++; + input_2r = *idata++; + input_1l = (input_2l + DC_OFFSET) * priv->gain; + input_1r = (input_2r + DC_OFFSET) * priv->gain; + + /* Accumulate comb filters in parallel */ + for (i = 0; i < numcombs; i++) { + freeverb_comb_process (priv->combL[i], input_1l, out_l1); + freeverb_comb_process (priv->combR[i], input_1r, out_r1); + } + /* Feed through allpasses in series */ + for (i = 0; i < numallpasses; i++) { + freeverb_allpass_process (priv->allpassL[i], out_l1); + freeverb_allpass_process (priv->allpassR[i], out_r1); + } + + /* Remove the DC offset */ + out_l1 -= DC_OFFSET; + out_r1 -= DC_OFFSET; + + /* Calculate output */ + out_l2 = out_l1 * priv->wet1 + out_r1 * priv->wet2 + input_2l * priv->dry; + out_r2 = out_r1 * priv->wet1 + out_l1 * priv->wet2 + input_2r * priv->dry; + *odata++ = out_l2; + *odata++ = out_r2; + + if (fabs (out_l2) > 0 || fabs (out_r2) > 0) + drained = FALSE; + } + return drained; +} + +/* this function does the actual processing + */ +static GstFlowReturn +gst_freeverb_transform (GstBaseTransform * base, GstBuffer * inbuf, + GstBuffer * outbuf) +{ + GstFreeverb *filter = GST_FREEVERB (base); + guint num_samples = GST_BUFFER_SIZE (outbuf) / (2 * filter->width); + GstClockTime timestamp; + + timestamp = GST_BUFFER_TIMESTAMP (inbuf); + timestamp = + gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, timestamp); + + GST_DEBUG_OBJECT (filter, "processing %u samples at %" GST_TIME_FORMAT, + num_samples, GST_TIME_ARGS (timestamp)); + + if (GST_CLOCK_TIME_IS_VALID (timestamp)) + gst_object_sync_values (G_OBJECT (filter), timestamp); + + if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DISCONT))) { + filter->drained = FALSE; + } + if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP))) { + if (filter->drained) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP); + memset (GST_BUFFER_DATA (outbuf), 0, GST_BUFFER_SIZE (outbuf)); + return GST_FLOW_OK; + } + } else { + filter->drained = FALSE; + } + + filter->drained = filter->process (filter, GST_BUFFER_DATA (inbuf), + GST_BUFFER_DATA (outbuf), num_samples); + + if (filter->drained) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP); + } + + return GST_FLOW_OK; +} + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gst_controller_init (NULL, NULL); + + return gst_element_register (plugin, "freeverb", + GST_RANK_NONE, GST_TYPE_FREEVERB); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "freeverb", + "Reverberation/room effect", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/freeverb/gstfreeverb.h b/gst/freeverb/gstfreeverb.h new file mode 100644 index 0000000..23e3940 --- /dev/null +++ b/gst/freeverb/gstfreeverb.h @@ -0,0 +1,71 @@ +/* + * GStreamer + * Copyright (C) 2011 Stefan Sauer + * + * 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_FREEVERB_H__ +#define __GST_FREEVERB_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_FREEVERB (gst_freeverb_get_type()) +#define GST_FREEVERB(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FREEVERB,GstFreeverb)) +#define GST_IS_FREEVERB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FREEVERB)) +#define GST_FREEVERB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_FREEVERB,GstFreeverbClass)) +#define GST_IS_FREEVERB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_FREEVERB)) +#define GST_FREEVERB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_FREEVERB,GstFreeverbClass)) + +typedef struct _GstFreeverb GstFreeverb; +typedef struct _GstFreeverbClass GstFreeverbClass; +typedef struct _GstFreeverbPrivate GstFreeverbPrivate; + +typedef gboolean (*GstFreeverbProcessFunc)(GstFreeverb*, guint8*, guint8*, guint); + +struct _GstFreeverb { + GstBaseTransform element; + + /* < private > */ + gfloat room_size; + gfloat damping; + gfloat pan_width; + gfloat level; + + GstFreeverbProcessFunc process; + gint channels; + gboolean format_float; + gint width; + gint method; + gint rate; + + gboolean drained; + + GstFreeverbPrivate *priv; +}; + +struct _GstFreeverbClass { + GstBaseTransformClass parent_class; +}; + +GType gst_freeverb_get_type (void); + +G_END_DECLS + +#endif /* __GST_FREEVERB_H__ */ diff --git a/gst/freeze/Makefile.in b/gst/freeze/Makefile.in index 5976bde..406465a 100644 --- a/gst/freeze/Makefile.in +++ b/gst/freeze/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,14 +101,20 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstfreeze_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgstfreeze_la_OBJECTS = libgstfreeze_la-gstfreeze.lo libgstfreeze_la_OBJECTS = $(am_libgstfreeze_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfreeze_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -123,21 +130,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfreeze_la_SOURCES) DIST_SOURCES = $(libgstfreeze_la_SOURCES) @@ -149,7 +156,6 @@ 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@ @@ -167,7 +173,6 @@ 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@ @@ -202,6 +207,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -241,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -258,6 +265,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -266,13 +274,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -297,13 +308,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -351,6 +363,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -382,8 +395,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -407,6 +424,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -431,10 +450,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -446,6 +469,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -470,6 +497,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -505,7 +533,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -598,7 +625,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfreeze.la: $(libgstfreeze_la_OBJECTS) $(libgstfreeze_la_DEPENDENCIES) +libgstfreeze.la: $(libgstfreeze_la_OBJECTS) $(libgstfreeze_la_DEPENDENCIES) $(EXTRA_libgstfreeze_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfreeze_la_LINK) -rpath $(plugindir) $(libgstfreeze_la_OBJECTS) $(libgstfreeze_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -612,34 +639,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfreeze_la-gstfreeze.lo: gstfreeze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfreeze_la_CFLAGS) $(CFLAGS) -MT libgstfreeze_la-gstfreeze.lo -MD -MP -MF $(DEPDIR)/libgstfreeze_la-gstfreeze.Tpo -c -o libgstfreeze_la-gstfreeze.lo `test -f 'gstfreeze.c' || echo '$(srcdir)/'`gstfreeze.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfreeze_la-gstfreeze.Tpo $(DEPDIR)/libgstfreeze_la-gstfreeze.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfreeze.c' object='libgstfreeze_la-gstfreeze.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfreeze.c' object='libgstfreeze_la-gstfreeze.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfreeze_la_CFLAGS) $(CFLAGS) -c -o libgstfreeze_la-gstfreeze.lo `test -f 'gstfreeze.c' || echo '$(srcdir)/'`gstfreeze.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfreeze_la_CFLAGS) $(CFLAGS) -c -o libgstfreeze_la-gstfreeze.lo `test -f 'gstfreeze.c' || echo '$(srcdir)/'`gstfreeze.c mostlyclean-libtool: -rm -f *.lo @@ -746,10 +769,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/freeze/gstfreeze.c b/gst/freeze/gstfreeze.c index 0d63eb7..c7884f8 100644 --- a/gst/freeze/gstfreeze.c +++ b/gst/freeze/gstfreeze.c @@ -89,10 +89,10 @@ gst_freeze_base_init (gpointer klass) "Gergely Nagy ," " Renato Filho "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_freeze_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_freeze_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_freeze_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_freeze_src_template); } diff --git a/gst/frei0r/Makefile.in b/gst/frei0r/Makefile.in index 9dba472..3430b72 100644 --- a/gst/frei0r/Makefile.in +++ b/gst/frei0r/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstfrei0r_la_OBJECTS = libgstfrei0r_la-gstfrei0r.lo \ libgstfrei0r_la-gstfrei0rsrc.lo \ libgstfrei0r_la-gstfrei0rmixer.lo libgstfrei0r_la_OBJECTS = $(am_libgstfrei0r_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfrei0r_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfrei0r_la_SOURCES) DIST_SOURCES = $(libgstfrei0r_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -610,7 +637,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfrei0r.la: $(libgstfrei0r_la_OBJECTS) $(libgstfrei0r_la_DEPENDENCIES) +libgstfrei0r.la: $(libgstfrei0r_la_OBJECTS) $(libgstfrei0r_la_DEPENDENCIES) $(EXTRA_libgstfrei0r_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfrei0r_la_LINK) -rpath $(plugindir) $(libgstfrei0r_la_OBJECTS) $(libgstfrei0r_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -627,58 +654,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfrei0r_la-gstfrei0r.lo: gstfrei0r.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -MT libgstfrei0r_la-gstfrei0r.lo -MD -MP -MF $(DEPDIR)/libgstfrei0r_la-gstfrei0r.Tpo -c -o libgstfrei0r_la-gstfrei0r.lo `test -f 'gstfrei0r.c' || echo '$(srcdir)/'`gstfrei0r.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfrei0r_la-gstfrei0r.Tpo $(DEPDIR)/libgstfrei0r_la-gstfrei0r.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfrei0r.c' object='libgstfrei0r_la-gstfrei0r.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfrei0r.c' object='libgstfrei0r_la-gstfrei0r.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0r.lo `test -f 'gstfrei0r.c' || echo '$(srcdir)/'`gstfrei0r.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0r.lo `test -f 'gstfrei0r.c' || echo '$(srcdir)/'`gstfrei0r.c libgstfrei0r_la-gstfrei0rfilter.lo: gstfrei0rfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -MT libgstfrei0r_la-gstfrei0rfilter.lo -MD -MP -MF $(DEPDIR)/libgstfrei0r_la-gstfrei0rfilter.Tpo -c -o libgstfrei0r_la-gstfrei0rfilter.lo `test -f 'gstfrei0rfilter.c' || echo '$(srcdir)/'`gstfrei0rfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfrei0r_la-gstfrei0rfilter.Tpo $(DEPDIR)/libgstfrei0r_la-gstfrei0rfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfrei0rfilter.c' object='libgstfrei0r_la-gstfrei0rfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfrei0rfilter.c' object='libgstfrei0r_la-gstfrei0rfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rfilter.lo `test -f 'gstfrei0rfilter.c' || echo '$(srcdir)/'`gstfrei0rfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rfilter.lo `test -f 'gstfrei0rfilter.c' || echo '$(srcdir)/'`gstfrei0rfilter.c libgstfrei0r_la-gstfrei0rsrc.lo: gstfrei0rsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -MT libgstfrei0r_la-gstfrei0rsrc.lo -MD -MP -MF $(DEPDIR)/libgstfrei0r_la-gstfrei0rsrc.Tpo -c -o libgstfrei0r_la-gstfrei0rsrc.lo `test -f 'gstfrei0rsrc.c' || echo '$(srcdir)/'`gstfrei0rsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfrei0r_la-gstfrei0rsrc.Tpo $(DEPDIR)/libgstfrei0r_la-gstfrei0rsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfrei0rsrc.c' object='libgstfrei0r_la-gstfrei0rsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfrei0rsrc.c' object='libgstfrei0r_la-gstfrei0rsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rsrc.lo `test -f 'gstfrei0rsrc.c' || echo '$(srcdir)/'`gstfrei0rsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rsrc.lo `test -f 'gstfrei0rsrc.c' || echo '$(srcdir)/'`gstfrei0rsrc.c libgstfrei0r_la-gstfrei0rmixer.lo: gstfrei0rmixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -MT libgstfrei0r_la-gstfrei0rmixer.lo -MD -MP -MF $(DEPDIR)/libgstfrei0r_la-gstfrei0rmixer.Tpo -c -o libgstfrei0r_la-gstfrei0rmixer.lo `test -f 'gstfrei0rmixer.c' || echo '$(srcdir)/'`gstfrei0rmixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfrei0r_la-gstfrei0rmixer.Tpo $(DEPDIR)/libgstfrei0r_la-gstfrei0rmixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfrei0rmixer.c' object='libgstfrei0r_la-gstfrei0rmixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfrei0rmixer.c' object='libgstfrei0r_la-gstfrei0rmixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rmixer.lo `test -f 'gstfrei0rmixer.c' || echo '$(srcdir)/'`gstfrei0rmixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfrei0r_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfrei0r_la_CFLAGS) $(CFLAGS) -c -o libgstfrei0r_la-gstfrei0rmixer.lo `test -f 'gstfrei0rmixer.c' || echo '$(srcdir)/'`gstfrei0rmixer.c mostlyclean-libtool: -rm -f *.lo @@ -785,10 +805,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/frei0r/gstfrei0r.c b/gst/frei0r/gstfrei0r.c index c7a9c71..a6763cd 100644 --- a/gst/frei0r/gstfrei0r.c +++ b/gst/frei0r/gstfrei0r.c @@ -105,7 +105,8 @@ gst_frei0r_klass_install_properties (GObjectClass * gobject_class, case F0R_PARAM_BOOL: g_object_class_install_property (gobject_class, count++, g_param_spec_boolean (prop_name, param_info->name, - param_info->explanation, properties[i].default_value.data.b, + param_info->explanation, + properties[i].default_value.data.b ? TRUE : FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); properties[i].n_prop_ids = 1; break; diff --git a/gst/frei0r/gstfrei0rfilter.c b/gst/frei0r/gstfrei0rfilter.c index 54989c8..15aded1 100644 --- a/gst/frei0r/gstfrei0rfilter.c +++ b/gst/frei0r/gstfrei0rfilter.c @@ -206,9 +206,11 @@ gst_frei0r_filter_class_init (GstFrei0rFilterClass * klass, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, gst_caps_ref (caps)); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); templ = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); gsttrans_class->set_caps = GST_DEBUG_FUNCPTR (gst_frei0r_filter_set_caps); gsttrans_class->stop = GST_DEBUG_FUNCPTR (gst_frei0r_filter_stop); diff --git a/gst/frei0r/gstfrei0rmixer.c b/gst/frei0r/gstfrei0rmixer.c index 9c8e605..3f0a77d 100644 --- a/gst/frei0r/gstfrei0rmixer.c +++ b/gst/frei0r/gstfrei0rmixer.c @@ -675,22 +675,26 @@ gst_frei0r_mixer_class_init (GstFrei0rMixerClass * klass, gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, gst_caps_ref (caps)); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); templ = gst_pad_template_new ("sink_0", GST_PAD_SINK, GST_PAD_ALWAYS, gst_caps_ref (caps)); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); templ = gst_pad_template_new ("sink_1", GST_PAD_SINK, GST_PAD_ALWAYS, gst_caps_ref (caps)); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); if (klass->info->plugin_type == F0R_PLUGIN_TYPE_MIXER3) { templ = gst_pad_template_new ("sink_2", GST_PAD_SINK, GST_PAD_ALWAYS, gst_caps_ref (caps)); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); } gst_caps_unref (caps); diff --git a/gst/frei0r/gstfrei0rsrc.c b/gst/frei0r/gstfrei0rsrc.c index c74e260..cfbd42f 100644 --- a/gst/frei0r/gstfrei0rsrc.c +++ b/gst/frei0r/gstfrei0rsrc.c @@ -366,6 +366,7 @@ gst_frei0r_src_class_init (GstFrei0rSrcClass * klass, templ = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, caps); gst_element_class_add_pad_template (gstelement_class, templ); + gst_object_unref (templ); gstbasesrc_class->set_caps = gst_frei0r_src_set_caps; gstbasesrc_class->get_caps = gst_frei0r_src_get_caps; diff --git a/gst/gaudieffects/Makefile.in b/gst/gaudieffects/Makefile.in index 077a868..51780e5 100644 --- a/gst/gaudieffects/Makefile.in +++ b/gst/gaudieffects/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +122,8 @@ am_libgstgaudieffects_la_OBJECTS = libgstgaudieffects_la-gstburn.lo \ libgstgaudieffects_la-gstsolarize.lo \ libgstgaudieffects_la-gstplugin.lo libgstgaudieffects_la_OBJECTS = $(am_libgstgaudieffects_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgaudieffects_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -132,21 +139,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgaudieffects_la_SOURCES) DIST_SOURCES = $(libgstgaudieffects_la_SOURCES) @@ -158,7 +165,6 @@ 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@ @@ -176,7 +182,6 @@ 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@ @@ -211,6 +216,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +256,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +274,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +283,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +317,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +372,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +404,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +433,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +459,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +478,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +506,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +542,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -615,7 +642,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgaudieffects.la: $(libgstgaudieffects_la_OBJECTS) $(libgstgaudieffects_la_DEPENDENCIES) +libgstgaudieffects.la: $(libgstgaudieffects_la_OBJECTS) $(libgstgaudieffects_la_DEPENDENCIES) $(EXTRA_libgstgaudieffects_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgaudieffects_la_LINK) -rpath $(plugindir) $(libgstgaudieffects_la_OBJECTS) $(libgstgaudieffects_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -636,90 +663,79 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgaudieffects_la-gstburn.lo: gstburn.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstburn.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstburn.Tpo -c -o libgstgaudieffects_la-gstburn.lo `test -f 'gstburn.c' || echo '$(srcdir)/'`gstburn.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstburn.Tpo $(DEPDIR)/libgstgaudieffects_la-gstburn.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstburn.c' object='libgstgaudieffects_la-gstburn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstburn.c' object='libgstgaudieffects_la-gstburn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstburn.lo `test -f 'gstburn.c' || echo '$(srcdir)/'`gstburn.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstburn.lo `test -f 'gstburn.c' || echo '$(srcdir)/'`gstburn.c libgstgaudieffects_la-gstchromium.lo: gstchromium.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstchromium.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstchromium.Tpo -c -o libgstgaudieffects_la-gstchromium.lo `test -f 'gstchromium.c' || echo '$(srcdir)/'`gstchromium.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstchromium.Tpo $(DEPDIR)/libgstgaudieffects_la-gstchromium.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstchromium.c' object='libgstgaudieffects_la-gstchromium.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstchromium.c' object='libgstgaudieffects_la-gstchromium.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstchromium.lo `test -f 'gstchromium.c' || echo '$(srcdir)/'`gstchromium.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstchromium.lo `test -f 'gstchromium.c' || echo '$(srcdir)/'`gstchromium.c libgstgaudieffects_la-gstdilate.lo: gstdilate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstdilate.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstdilate.Tpo -c -o libgstgaudieffects_la-gstdilate.lo `test -f 'gstdilate.c' || echo '$(srcdir)/'`gstdilate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstdilate.Tpo $(DEPDIR)/libgstgaudieffects_la-gstdilate.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdilate.c' object='libgstgaudieffects_la-gstdilate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdilate.c' object='libgstgaudieffects_la-gstdilate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstdilate.lo `test -f 'gstdilate.c' || echo '$(srcdir)/'`gstdilate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstdilate.lo `test -f 'gstdilate.c' || echo '$(srcdir)/'`gstdilate.c libgstgaudieffects_la-gstdodge.lo: gstdodge.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstdodge.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstdodge.Tpo -c -o libgstgaudieffects_la-gstdodge.lo `test -f 'gstdodge.c' || echo '$(srcdir)/'`gstdodge.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstdodge.Tpo $(DEPDIR)/libgstgaudieffects_la-gstdodge.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdodge.c' object='libgstgaudieffects_la-gstdodge.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdodge.c' object='libgstgaudieffects_la-gstdodge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstdodge.lo `test -f 'gstdodge.c' || echo '$(srcdir)/'`gstdodge.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstdodge.lo `test -f 'gstdodge.c' || echo '$(srcdir)/'`gstdodge.c libgstgaudieffects_la-gstexclusion.lo: gstexclusion.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstexclusion.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstexclusion.Tpo -c -o libgstgaudieffects_la-gstexclusion.lo `test -f 'gstexclusion.c' || echo '$(srcdir)/'`gstexclusion.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstexclusion.Tpo $(DEPDIR)/libgstgaudieffects_la-gstexclusion.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstexclusion.c' object='libgstgaudieffects_la-gstexclusion.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstexclusion.c' object='libgstgaudieffects_la-gstexclusion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstexclusion.lo `test -f 'gstexclusion.c' || echo '$(srcdir)/'`gstexclusion.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstexclusion.lo `test -f 'gstexclusion.c' || echo '$(srcdir)/'`gstexclusion.c libgstgaudieffects_la-gstgaussblur.lo: gstgaussblur.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstgaussblur.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstgaussblur.Tpo -c -o libgstgaudieffects_la-gstgaussblur.lo `test -f 'gstgaussblur.c' || echo '$(srcdir)/'`gstgaussblur.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstgaussblur.Tpo $(DEPDIR)/libgstgaudieffects_la-gstgaussblur.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgaussblur.c' object='libgstgaudieffects_la-gstgaussblur.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgaussblur.c' object='libgstgaudieffects_la-gstgaussblur.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstgaussblur.lo `test -f 'gstgaussblur.c' || echo '$(srcdir)/'`gstgaussblur.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstgaussblur.lo `test -f 'gstgaussblur.c' || echo '$(srcdir)/'`gstgaussblur.c libgstgaudieffects_la-gstsolarize.lo: gstsolarize.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstsolarize.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstsolarize.Tpo -c -o libgstgaudieffects_la-gstsolarize.lo `test -f 'gstsolarize.c' || echo '$(srcdir)/'`gstsolarize.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstsolarize.Tpo $(DEPDIR)/libgstgaudieffects_la-gstsolarize.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsolarize.c' object='libgstgaudieffects_la-gstsolarize.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsolarize.c' object='libgstgaudieffects_la-gstsolarize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstsolarize.lo `test -f 'gstsolarize.c' || echo '$(srcdir)/'`gstsolarize.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstsolarize.lo `test -f 'gstsolarize.c' || echo '$(srcdir)/'`gstsolarize.c libgstgaudieffects_la-gstplugin.lo: gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -MT libgstgaudieffects_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstgaudieffects_la-gstplugin.Tpo -c -o libgstgaudieffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgaudieffects_la-gstplugin.Tpo $(DEPDIR)/libgstgaudieffects_la-gstplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplugin.c' object='libgstgaudieffects_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplugin.c' object='libgstgaudieffects_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgaudieffects_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgaudieffects_la_CFLAGS) $(CFLAGS) -c -o libgstgaudieffects_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c mostlyclean-libtool: -rm -f *.lo @@ -826,10 +842,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/gaudieffects/gstburn.c b/gst/gaudieffects/gstburn.c index 3d76935..9bd3bce 100644 --- a/gst/gaudieffects/gstburn.c +++ b/gst/gaudieffects/gstburn.c @@ -138,10 +138,8 @@ gst_burn_base_init (gpointer gclass) "Burn adjusts the colors in the video signal.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the burn's class. */ diff --git a/gst/gaudieffects/gstchromium.c b/gst/gaudieffects/gstchromium.c index 94d3b15..fc91dba 100644 --- a/gst/gaudieffects/gstchromium.c +++ b/gst/gaudieffects/gstchromium.c @@ -154,10 +154,8 @@ gst_chromium_base_init (gpointer gclass) "Chromium breaks the colors of the video signal.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the chromium's class. */ diff --git a/gst/gaudieffects/gstdilate.c b/gst/gaudieffects/gstdilate.c index c89123c..72e6eb0 100644 --- a/gst/gaudieffects/gstdilate.c +++ b/gst/gaudieffects/gstdilate.c @@ -139,10 +139,8 @@ gst_dilate_base_init (gpointer gclass) "Dilate copies the brightest pixel around.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the dilate's class. */ diff --git a/gst/gaudieffects/gstdodge.c b/gst/gaudieffects/gstdodge.c index ff61aa7..64cfd01 100644 --- a/gst/gaudieffects/gstdodge.c +++ b/gst/gaudieffects/gstdodge.c @@ -135,10 +135,8 @@ gst_dodge_base_init (gpointer gclass) "Dodge saturates the colors in the video signal.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the dodge's class. */ diff --git a/gst/gaudieffects/gstexclusion.c b/gst/gaudieffects/gstexclusion.c index 0b8f5d5..4d5fc7a 100644 --- a/gst/gaudieffects/gstexclusion.c +++ b/gst/gaudieffects/gstexclusion.c @@ -140,10 +140,8 @@ gst_exclusion_base_init (gpointer gclass) "Exclusion exclodes the colors in the video signal.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the exclusion's class. */ diff --git a/gst/gaudieffects/gstgaussblur.c b/gst/gaudieffects/gstgaussblur.c index 6b1223e..2409f75 100644 --- a/gst/gaudieffects/gstgaussblur.c +++ b/gst/gaudieffects/gstgaussblur.c @@ -71,10 +71,8 @@ gauss_blur_base_init (gpointer gclass) "Perform Gaussian blur/sharpen on a video", "Jan Schmidt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } static void diff --git a/gst/gaudieffects/gstsolarize.c b/gst/gaudieffects/gstsolarize.c index 8cce8db..0c96137 100644 --- a/gst/gaudieffects/gstsolarize.c +++ b/gst/gaudieffects/gstsolarize.c @@ -144,10 +144,8 @@ gst_solarize_base_init (gpointer gclass) "Solarize tunable inverse in the video signal.", "Luis de Bethencourt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* Initialize the solarize's class. */ diff --git a/gst/geometrictransform/Makefile.in b/gst/geometrictransform/Makefile.in index 2f5bfad..4f2a30c 100644 --- a/gst/geometrictransform/Makefile.in +++ b/gst/geometrictransform/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -128,8 +135,8 @@ am_libgstgeometrictransform_la_OBJECTS = \ libgstgeometrictransform_la-gstfisheye.lo libgstgeometrictransform_la_OBJECTS = \ $(am_libgstgeometrictransform_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgeometrictransform_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -146,21 +153,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgeometrictransform_la_SOURCES) DIST_SOURCES = $(libgstgeometrictransform_la_SOURCES) @@ -172,7 +179,6 @@ 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@ @@ -190,7 +196,6 @@ 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@ @@ -225,6 +230,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -264,6 +270,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -281,6 +288,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -289,13 +297,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -320,13 +331,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -374,6 +386,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -405,8 +418,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -430,6 +447,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -454,10 +473,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -469,6 +492,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -493,6 +520,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -528,7 +556,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -667,7 +694,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgeometrictransform.la: $(libgstgeometrictransform_la_OBJECTS) $(libgstgeometrictransform_la_DEPENDENCIES) +libgstgeometrictransform.la: $(libgstgeometrictransform_la_OBJECTS) $(libgstgeometrictransform_la_DEPENDENCIES) $(EXTRA_libgstgeometrictransform_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgeometrictransform_la_LINK) -rpath $(plugindir) $(libgstgeometrictransform_la_OBJECTS) $(libgstgeometrictransform_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -699,178 +726,156 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgeometrictransform_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-plugin.Tpo -c -o libgstgeometrictransform_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-plugin.Tpo $(DEPDIR)/libgstgeometrictransform_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstgeometrictransform_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstgeometrictransform_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 $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libgstgeometrictransform_la-gstgeometrictransform.lo: gstgeometrictransform.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstgeometrictransform.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstgeometrictransform.Tpo -c -o libgstgeometrictransform_la-gstgeometrictransform.lo `test -f 'gstgeometrictransform.c' || echo '$(srcdir)/'`gstgeometrictransform.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstgeometrictransform.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstgeometrictransform.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgeometrictransform.c' object='libgstgeometrictransform_la-gstgeometrictransform.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgeometrictransform.c' object='libgstgeometrictransform_la-gstgeometrictransform.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstgeometrictransform.lo `test -f 'gstgeometrictransform.c' || echo '$(srcdir)/'`gstgeometrictransform.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstgeometrictransform.lo `test -f 'gstgeometrictransform.c' || echo '$(srcdir)/'`gstgeometrictransform.c libgstgeometrictransform_la-gstcirclegeometrictransform.lo: gstcirclegeometrictransform.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstcirclegeometrictransform.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstcirclegeometrictransform.Tpo -c -o libgstgeometrictransform_la-gstcirclegeometrictransform.lo `test -f 'gstcirclegeometrictransform.c' || echo '$(srcdir)/'`gstcirclegeometrictransform.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstcirclegeometrictransform.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstcirclegeometrictransform.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcirclegeometrictransform.c' object='libgstgeometrictransform_la-gstcirclegeometrictransform.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcirclegeometrictransform.c' object='libgstgeometrictransform_la-gstcirclegeometrictransform.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstcirclegeometrictransform.lo `test -f 'gstcirclegeometrictransform.c' || echo '$(srcdir)/'`gstcirclegeometrictransform.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstcirclegeometrictransform.lo `test -f 'gstcirclegeometrictransform.c' || echo '$(srcdir)/'`gstcirclegeometrictransform.c libgstgeometrictransform_la-geometricmath.lo: geometricmath.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-geometricmath.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-geometricmath.Tpo -c -o libgstgeometrictransform_la-geometricmath.lo `test -f 'geometricmath.c' || echo '$(srcdir)/'`geometricmath.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-geometricmath.Tpo $(DEPDIR)/libgstgeometrictransform_la-geometricmath.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='geometricmath.c' object='libgstgeometrictransform_la-geometricmath.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='geometricmath.c' object='libgstgeometrictransform_la-geometricmath.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-geometricmath.lo `test -f 'geometricmath.c' || echo '$(srcdir)/'`geometricmath.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-geometricmath.lo `test -f 'geometricmath.c' || echo '$(srcdir)/'`geometricmath.c libgstgeometrictransform_la-gstcircle.lo: gstcircle.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstcircle.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstcircle.Tpo -c -o libgstgeometrictransform_la-gstcircle.lo `test -f 'gstcircle.c' || echo '$(srcdir)/'`gstcircle.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstcircle.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstcircle.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcircle.c' object='libgstgeometrictransform_la-gstcircle.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcircle.c' object='libgstgeometrictransform_la-gstcircle.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstcircle.lo `test -f 'gstcircle.c' || echo '$(srcdir)/'`gstcircle.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstcircle.lo `test -f 'gstcircle.c' || echo '$(srcdir)/'`gstcircle.c libgstgeometrictransform_la-gstdiffuse.lo: gstdiffuse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstdiffuse.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstdiffuse.Tpo -c -o libgstgeometrictransform_la-gstdiffuse.lo `test -f 'gstdiffuse.c' || echo '$(srcdir)/'`gstdiffuse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstdiffuse.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstdiffuse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiffuse.c' object='libgstgeometrictransform_la-gstdiffuse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdiffuse.c' object='libgstgeometrictransform_la-gstdiffuse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstdiffuse.lo `test -f 'gstdiffuse.c' || echo '$(srcdir)/'`gstdiffuse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstdiffuse.lo `test -f 'gstdiffuse.c' || echo '$(srcdir)/'`gstdiffuse.c libgstgeometrictransform_la-gstkaleidoscope.lo: gstkaleidoscope.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstkaleidoscope.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstkaleidoscope.Tpo -c -o libgstgeometrictransform_la-gstkaleidoscope.lo `test -f 'gstkaleidoscope.c' || echo '$(srcdir)/'`gstkaleidoscope.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstkaleidoscope.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstkaleidoscope.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkaleidoscope.c' object='libgstgeometrictransform_la-gstkaleidoscope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstkaleidoscope.c' object='libgstgeometrictransform_la-gstkaleidoscope.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstkaleidoscope.lo `test -f 'gstkaleidoscope.c' || echo '$(srcdir)/'`gstkaleidoscope.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstkaleidoscope.lo `test -f 'gstkaleidoscope.c' || echo '$(srcdir)/'`gstkaleidoscope.c libgstgeometrictransform_la-gstmarble.lo: gstmarble.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstmarble.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstmarble.Tpo -c -o libgstgeometrictransform_la-gstmarble.lo `test -f 'gstmarble.c' || echo '$(srcdir)/'`gstmarble.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstmarble.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstmarble.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmarble.c' object='libgstgeometrictransform_la-gstmarble.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmarble.c' object='libgstgeometrictransform_la-gstmarble.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstmarble.lo `test -f 'gstmarble.c' || echo '$(srcdir)/'`gstmarble.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstmarble.lo `test -f 'gstmarble.c' || echo '$(srcdir)/'`gstmarble.c libgstgeometrictransform_la-gstpinch.lo: gstpinch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstpinch.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstpinch.Tpo -c -o libgstgeometrictransform_la-gstpinch.lo `test -f 'gstpinch.c' || echo '$(srcdir)/'`gstpinch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstpinch.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstpinch.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpinch.c' object='libgstgeometrictransform_la-gstpinch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpinch.c' object='libgstgeometrictransform_la-gstpinch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstpinch.lo `test -f 'gstpinch.c' || echo '$(srcdir)/'`gstpinch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstpinch.lo `test -f 'gstpinch.c' || echo '$(srcdir)/'`gstpinch.c libgstgeometrictransform_la-gstrotate.lo: gstrotate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstrotate.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstrotate.Tpo -c -o libgstgeometrictransform_la-gstrotate.lo `test -f 'gstrotate.c' || echo '$(srcdir)/'`gstrotate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstrotate.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstrotate.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrotate.c' object='libgstgeometrictransform_la-gstrotate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrotate.c' object='libgstgeometrictransform_la-gstrotate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstrotate.lo `test -f 'gstrotate.c' || echo '$(srcdir)/'`gstrotate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstrotate.lo `test -f 'gstrotate.c' || echo '$(srcdir)/'`gstrotate.c libgstgeometrictransform_la-gstsphere.lo: gstsphere.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstsphere.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstsphere.Tpo -c -o libgstgeometrictransform_la-gstsphere.lo `test -f 'gstsphere.c' || echo '$(srcdir)/'`gstsphere.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstsphere.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstsphere.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsphere.c' object='libgstgeometrictransform_la-gstsphere.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsphere.c' object='libgstgeometrictransform_la-gstsphere.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstsphere.lo `test -f 'gstsphere.c' || echo '$(srcdir)/'`gstsphere.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstsphere.lo `test -f 'gstsphere.c' || echo '$(srcdir)/'`gstsphere.c libgstgeometrictransform_la-gsttwirl.lo: gsttwirl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gsttwirl.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gsttwirl.Tpo -c -o libgstgeometrictransform_la-gsttwirl.lo `test -f 'gsttwirl.c' || echo '$(srcdir)/'`gsttwirl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gsttwirl.Tpo $(DEPDIR)/libgstgeometrictransform_la-gsttwirl.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttwirl.c' object='libgstgeometrictransform_la-gsttwirl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttwirl.c' object='libgstgeometrictransform_la-gsttwirl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gsttwirl.lo `test -f 'gsttwirl.c' || echo '$(srcdir)/'`gsttwirl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gsttwirl.lo `test -f 'gsttwirl.c' || echo '$(srcdir)/'`gsttwirl.c libgstgeometrictransform_la-gstwaterripple.lo: gstwaterripple.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstwaterripple.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstwaterripple.Tpo -c -o libgstgeometrictransform_la-gstwaterripple.lo `test -f 'gstwaterripple.c' || echo '$(srcdir)/'`gstwaterripple.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstwaterripple.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstwaterripple.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwaterripple.c' object='libgstgeometrictransform_la-gstwaterripple.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwaterripple.c' object='libgstgeometrictransform_la-gstwaterripple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstwaterripple.lo `test -f 'gstwaterripple.c' || echo '$(srcdir)/'`gstwaterripple.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstwaterripple.lo `test -f 'gstwaterripple.c' || echo '$(srcdir)/'`gstwaterripple.c libgstgeometrictransform_la-gststretch.lo: gststretch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gststretch.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gststretch.Tpo -c -o libgstgeometrictransform_la-gststretch.lo `test -f 'gststretch.c' || echo '$(srcdir)/'`gststretch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gststretch.Tpo $(DEPDIR)/libgstgeometrictransform_la-gststretch.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststretch.c' object='libgstgeometrictransform_la-gststretch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststretch.c' object='libgstgeometrictransform_la-gststretch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gststretch.lo `test -f 'gststretch.c' || echo '$(srcdir)/'`gststretch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gststretch.lo `test -f 'gststretch.c' || echo '$(srcdir)/'`gststretch.c libgstgeometrictransform_la-gstbulge.lo: gstbulge.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstbulge.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstbulge.Tpo -c -o libgstgeometrictransform_la-gstbulge.lo `test -f 'gstbulge.c' || echo '$(srcdir)/'`gstbulge.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstbulge.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstbulge.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbulge.c' object='libgstgeometrictransform_la-gstbulge.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbulge.c' object='libgstgeometrictransform_la-gstbulge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstbulge.lo `test -f 'gstbulge.c' || echo '$(srcdir)/'`gstbulge.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstbulge.lo `test -f 'gstbulge.c' || echo '$(srcdir)/'`gstbulge.c libgstgeometrictransform_la-gsttunnel.lo: gsttunnel.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gsttunnel.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gsttunnel.Tpo -c -o libgstgeometrictransform_la-gsttunnel.lo `test -f 'gsttunnel.c' || echo '$(srcdir)/'`gsttunnel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gsttunnel.Tpo $(DEPDIR)/libgstgeometrictransform_la-gsttunnel.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttunnel.c' object='libgstgeometrictransform_la-gsttunnel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttunnel.c' object='libgstgeometrictransform_la-gsttunnel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gsttunnel.lo `test -f 'gsttunnel.c' || echo '$(srcdir)/'`gsttunnel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gsttunnel.lo `test -f 'gsttunnel.c' || echo '$(srcdir)/'`gsttunnel.c libgstgeometrictransform_la-gstsquare.lo: gstsquare.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstsquare.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstsquare.Tpo -c -o libgstgeometrictransform_la-gstsquare.lo `test -f 'gstsquare.c' || echo '$(srcdir)/'`gstsquare.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstsquare.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstsquare.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsquare.c' object='libgstgeometrictransform_la-gstsquare.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsquare.c' object='libgstgeometrictransform_la-gstsquare.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstsquare.lo `test -f 'gstsquare.c' || echo '$(srcdir)/'`gstsquare.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstsquare.lo `test -f 'gstsquare.c' || echo '$(srcdir)/'`gstsquare.c libgstgeometrictransform_la-gstmirror.lo: gstmirror.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstmirror.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstmirror.Tpo -c -o libgstgeometrictransform_la-gstmirror.lo `test -f 'gstmirror.c' || echo '$(srcdir)/'`gstmirror.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstmirror.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstmirror.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmirror.c' object='libgstgeometrictransform_la-gstmirror.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmirror.c' object='libgstgeometrictransform_la-gstmirror.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstmirror.lo `test -f 'gstmirror.c' || echo '$(srcdir)/'`gstmirror.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstmirror.lo `test -f 'gstmirror.c' || echo '$(srcdir)/'`gstmirror.c libgstgeometrictransform_la-gstfisheye.lo: gstfisheye.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -MT libgstgeometrictransform_la-gstfisheye.lo -MD -MP -MF $(DEPDIR)/libgstgeometrictransform_la-gstfisheye.Tpo -c -o libgstgeometrictransform_la-gstfisheye.lo `test -f 'gstfisheye.c' || echo '$(srcdir)/'`gstfisheye.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgeometrictransform_la-gstfisheye.Tpo $(DEPDIR)/libgstgeometrictransform_la-gstfisheye.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfisheye.c' object='libgstgeometrictransform_la-gstfisheye.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfisheye.c' object='libgstgeometrictransform_la-gstfisheye.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstfisheye.lo `test -f 'gstfisheye.c' || echo '$(srcdir)/'`gstfisheye.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgeometrictransform_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgeometrictransform_la_CFLAGS) $(CFLAGS) -c -o libgstgeometrictransform_la-gstfisheye.lo `test -f 'gstfisheye.c' || echo '$(srcdir)/'`gstfisheye.c mostlyclean-libtool: -rm -f *.lo @@ -977,10 +982,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/geometrictransform/gstfisheye.c b/gst/geometrictransform/gstfisheye.c index 7f38858..46318b0 100644 --- a/gst/geometrictransform/gstfisheye.c +++ b/gst/geometrictransform/gstfisheye.c @@ -67,7 +67,7 @@ gst_fisheye_base_init (gpointer gclass) "fisheye", "Transform/Effect/Video", "Split the image into two halves and reflect one over each other", - "Filippo Argiolas "); } static gboolean diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c index 01e57c3..8e78de7 100644 --- a/gst/geometrictransform/gstgeometrictransform.c +++ b/gst/geometrictransform/gstgeometrictransform.c @@ -357,10 +357,10 @@ gst_geometric_transform_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_geometric_transform_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_geometric_transform_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_geometric_transform_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_geometric_transform_src_template); } static void diff --git a/gst/geometrictransform/gstmirror.c b/gst/geometrictransform/gstmirror.c index 43d102c..a06adf0 100644 --- a/gst/geometrictransform/gstmirror.c +++ b/gst/geometrictransform/gstmirror.c @@ -132,7 +132,7 @@ gst_mirror_base_init (gpointer gclass) "mirror", "Transform/Effect/Video", "Split the image into two halves and reflect one over each other", - "Filippo Argiolas "); } static gboolean diff --git a/gst/geometrictransform/gstrotate.c b/gst/geometrictransform/gstrotate.c index 6c5ba62..764feb5 100644 --- a/gst/geometrictransform/gstrotate.c +++ b/gst/geometrictransform/gstrotate.c @@ -134,7 +134,7 @@ gst_rotate_base_init (gpointer gclass) gst_element_class_set_details_simple (element_class, "rotate", "Transform/Effect/Video", - "Warps the picture into an arc shaped form", + "Rotates the picture by an arbitrary angle", "Thiago Santos"); } @@ -154,7 +154,7 @@ rotate_map (GstGeometricTransform * gt, gint x, gint y, gdouble * in_x, h = gt->height; /* our parameters */ - ar = rotate->angle * G_PI / 180.0; /* angle of rotation, degrees to radians */ + ar = rotate->angle; /* angle of rotation */ /* get in and out centers */ cox = 0.5 * w; diff --git a/gst/geometrictransform/gstsquare.c b/gst/geometrictransform/gstsquare.c index eda6f43..a7b2fc5 100644 --- a/gst/geometrictransform/gstsquare.c +++ b/gst/geometrictransform/gstsquare.c @@ -146,7 +146,7 @@ gst_square_base_init (gpointer gclass) "square", "Transform/Effect/Video", "Distort center part of the image into a square", - "Filippo Argiolas "); } static gboolean diff --git a/gst/h264parse/Makefile.in b/gst/h264parse/Makefile.in index 79ba3f8..24b809a 100644 --- a/gst/h264parse/Makefile.in +++ b/gst/h264parse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgsth264parse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgsth264parse_la_OBJECTS = libgsth264parse_la-gsth264parse.lo libgsth264parse_la_OBJECTS = $(am_libgsth264parse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsth264parse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsth264parse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsth264parse_la_SOURCES) DIST_SOURCES = $(libgsth264parse_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsth264parse.la: $(libgsth264parse_la_OBJECTS) $(libgsth264parse_la_DEPENDENCIES) +libgsth264parse.la: $(libgsth264parse_la_OBJECTS) $(libgsth264parse_la_DEPENDENCIES) $(EXTRA_libgsth264parse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsth264parse_la_LINK) -rpath $(plugindir) $(libgsth264parse_la_OBJECTS) $(libgsth264parse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +644,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsth264parse_la-gsth264parse.lo: gsth264parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsth264parse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsth264parse_la_CFLAGS) $(CFLAGS) -MT libgsth264parse_la-gsth264parse.lo -MD -MP -MF $(DEPDIR)/libgsth264parse_la-gsth264parse.Tpo -c -o libgsth264parse_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsth264parse_la-gsth264parse.Tpo $(DEPDIR)/libgsth264parse_la-gsth264parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsth264parse.c' object='libgsth264parse_la-gsth264parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsth264parse.c' object='libgsth264parse_la-gsth264parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsth264parse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsth264parse_la_CFLAGS) $(CFLAGS) -c -o libgsth264parse_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsth264parse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsth264parse_la_CFLAGS) $(CFLAGS) -c -o libgsth264parse_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c mostlyclean-libtool: -rm -f *.lo @@ -751,10 +774,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/h264parse/gsth264parse.c b/gst/h264parse/gsth264parse.c index a73522b..8ae6075 100644 --- a/gst/h264parse/gsth264parse.c +++ b/gst/h264parse/gsth264parse.c @@ -358,10 +358,7 @@ gst_h264_parse_get_pps (GstH264Parse * h, guint8 pps_id) { GstH264Pps *pps; g_return_val_if_fail (h != NULL, NULL); - if (pps_id >= MAX_PPS_COUNT) { - GST_DEBUG_OBJECT (h, "requested pps_id=%04x out of range", pps_id); - return NULL; - } + pps = h->pps_buffers[pps_id]; if (pps == NULL) { GST_DEBUG_OBJECT (h, "Creating pps with pps_id=%04x", pps_id); @@ -665,10 +662,15 @@ gst_nal_decode_sps (GstH264Parse * h, GstNalBs * bs) static gboolean gst_nal_decode_pps (GstH264Parse * h, GstNalBs * bs) { - guint8 pps_id; + gint pps_id; GstH264Pps *pps = NULL; pps_id = gst_nal_bs_read_ue (bs); + if (pps_id >= MAX_PPS_COUNT) { + GST_DEBUG_OBJECT (h, "requested pps_id=%04x out of range", pps_id); + return FALSE; + } + pps = gst_h264_parse_get_pps (h, pps_id); if (pps == NULL) { return FALSE; @@ -893,10 +895,10 @@ gst_h264_parse_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, + &srctemplate); + gst_element_class_add_static_pad_template (gstelement_class, + &sinktemplate); gst_element_class_set_details_simple (gstelement_class, "H264Parse", "Codec/Parser/Video", "Parses raw h264 stream", @@ -1132,11 +1134,11 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) num_sps++; /* size bytes also count */ sps_size += GST_BUFFER_SIZE (nal) - 4 + 2; - if (GST_BUFFER_SIZE (nal) >= 7) { + if (GST_BUFFER_SIZE (nal) >= 8) { found = TRUE; - profile_idc = (GST_BUFFER_DATA (nal))[4]; - profile_comp = (GST_BUFFER_DATA (nal))[5]; - level_idc = (GST_BUFFER_DATA (nal))[6]; + profile_idc = (GST_BUFFER_DATA (nal))[5]; + profile_comp = (GST_BUFFER_DATA (nal))[6]; + level_idc = (GST_BUFFER_DATA (nal))[7]; } } } @@ -1311,16 +1313,18 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) alignment = "au"; } else { if (h264parse->packetized) { - /* if packetized input, take upstream alignment if validly provided, - * otherwise assume au aligned ... */ - alignment = gst_structure_get_string (structure, "alignment"); - if (!alignment || (alignment && - strcmp (alignment, "au") != 0 && - strcmp (alignment, "nal") != 0)) { - if (h264parse->split_packetized) - alignment = "nal"; - else + if (h264parse->split_packetized) + alignment = "nal"; + else { + /* if packetized input is not split, + * take upstream alignment if validly provided, + * otherwise assume au aligned ... */ + alignment = gst_structure_get_string (structure, "alignment"); + if (!alignment || (alignment && + strcmp (alignment, "au") != 0 && + strcmp (alignment, "nal") != 0)) { alignment = "au"; + } } } else { alignment = "nal"; @@ -1600,6 +1604,8 @@ gst_h264_parse_push_codec_buffer (GstH264Parse * h264parse, GstBuffer * nal, static GstFlowReturn gst_h264_parse_push_buffer (GstH264Parse * h264parse, GstBuffer * buf) { + GstFlowReturn res = GST_FLOW_OK; + /* We can send pending events if this is the first call, since we now have * caps for the srcpad */ if (G_UNLIKELY (h264parse->pending_segment != NULL)) { @@ -1617,6 +1623,33 @@ gst_h264_parse_push_buffer (GstH264Parse * h264parse, GstBuffer * buf) } } + if (G_UNLIKELY (h264parse->width == 0 || h264parse->height == 0)) { + GST_DEBUG ("Delaying actual push until we are configured"); + h264parse->gather = g_list_append (h264parse->gather, buf); + goto beach; + } + + if (G_UNLIKELY (h264parse->gather)) { + GList *pendingbuffers = h264parse->gather; + GList *tmp; + + GST_DEBUG ("Pushing out pending buffers"); + + /* Yes, we're recursively calling in... */ + h264parse->gather = NULL; + for (tmp = pendingbuffers; tmp; tmp = tmp->next) { + res = gst_h264_parse_push_buffer (h264parse, (GstBuffer *) tmp->data); + if (res != GST_FLOW_OK && res != GST_FLOW_NOT_LINKED) + break; + } + g_list_free (pendingbuffers); + + if (res != GST_FLOW_OK && res != GST_FLOW_NOT_LINKED) { + gst_buffer_unref (buf); + goto beach; + } + } + /* start of picture is good time to slip in codec_data NALUs * (when outputting NALS and transforming to bytestream) */ if (G_UNLIKELY (h264parse->codec_nals && h264parse->picture_start)) { @@ -1738,7 +1771,10 @@ gst_h264_parse_push_buffer (GstH264Parse * h264parse, GstBuffer * buf) } gst_buffer_set_caps (buf, h264parse->src_caps); - return gst_pad_push (h264parse->srcpad, buf); + res = gst_pad_push (h264parse->srcpad, buf); + +beach: + return res; } /* takes over ownership of nal and returns fresh buffer */ diff --git a/gst/h264parse/gsth264parse.h b/gst/h264parse/gsth264parse.h index e245ea0..e2fae84 100644 --- a/gst/h264parse/gsth264parse.h +++ b/gst/h264parse/gsth264parse.h @@ -48,7 +48,7 @@ typedef struct _GstH264Sps GstH264Sps; typedef struct _GstH264Pps GstH264Pps; #define MAX_SPS_COUNT 32 -#define MAX_PPS_COUNT 32 +#define MAX_PPS_COUNT 256 #define CLOCK_BASE 9LL #define CLOCK_FREQ (CLOCK_BASE * 10000) diff --git a/gst/hdvparse/Makefile.in b/gst/hdvparse/Makefile.in index a556efb..96c4dfb 100644 --- a/gst/hdvparse/Makefile.in +++ b/gst/hdvparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgsthdvparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgsthdvparse_la_OBJECTS = libgsthdvparse_la-gsthdvparse.lo libgsthdvparse_la_OBJECTS = $(am_libgsthdvparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsthdvparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsthdvparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsthdvparse_la_SOURCES) DIST_SOURCES = $(libgsthdvparse_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsthdvparse.la: $(libgsthdvparse_la_OBJECTS) $(libgsthdvparse_la_DEPENDENCIES) +libgsthdvparse.la: $(libgsthdvparse_la_OBJECTS) $(libgsthdvparse_la_DEPENDENCIES) $(EXTRA_libgsthdvparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsthdvparse_la_LINK) -rpath $(plugindir) $(libgsthdvparse_la_OBJECTS) $(libgsthdvparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +644,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsthdvparse_la-gsthdvparse.lo: gsthdvparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthdvparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthdvparse_la_CFLAGS) $(CFLAGS) -MT libgsthdvparse_la-gsthdvparse.lo -MD -MP -MF $(DEPDIR)/libgsthdvparse_la-gsthdvparse.Tpo -c -o libgsthdvparse_la-gsthdvparse.lo `test -f 'gsthdvparse.c' || echo '$(srcdir)/'`gsthdvparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsthdvparse_la-gsthdvparse.Tpo $(DEPDIR)/libgsthdvparse_la-gsthdvparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthdvparse.c' object='libgsthdvparse_la-gsthdvparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthdvparse.c' object='libgsthdvparse_la-gsthdvparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthdvparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthdvparse_la_CFLAGS) $(CFLAGS) -c -o libgsthdvparse_la-gsthdvparse.lo `test -f 'gsthdvparse.c' || echo '$(srcdir)/'`gsthdvparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthdvparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthdvparse_la_CFLAGS) $(CFLAGS) -c -o libgsthdvparse_la-gsthdvparse.lo `test -f 'gsthdvparse.c' || echo '$(srcdir)/'`gsthdvparse.c mostlyclean-libtool: -rm -f *.lo @@ -751,10 +774,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/hdvparse/gsthdvparse.c b/gst/hdvparse/gsthdvparse.c index 9a610f7..28e6209 100644 --- a/gst/hdvparse/gsthdvparse.c +++ b/gst/hdvparse/gsthdvparse.c @@ -116,10 +116,9 @@ gst_hdvparse_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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "HDVParser", "Data/Parser", "HDV private stream Parser", "Edward Hervey "); diff --git a/gst/hls/Makefile.am b/gst/hls/Makefile.am index 687b568..dcad69d 100644 --- a/gst/hls/Makefile.am +++ b/gst/hls/Makefile.am @@ -4,17 +4,21 @@ plugin_LTLIBRARIES = libgstfragmented.la libgstfragmented_la_SOURCES = \ m3u8.c \ gsthlsdemux.c \ + gstfragment.c \ + gsturidownloader.c \ gstfragmentedplugin.c -libgstfragmented_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(SOUP_CFLAGS) -libgstfragmented_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(SOUP_LIBS) +libgstfragmented_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) $(CRYPTO_CFLAGS) +libgstfragmented_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(SOUP_LIBS) $(CRYPTO_LIBS) libgstfragmented_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -no-undefined libgstfragmented_la_LIBTOOLFLAGS = --tag=disable-static # headers we need but don't want installed noinst_HEADERS = \ gstfragmented.h \ + gstfragment.h \ gsthlsdemux.h \ + gsturidownloader.h \ m3u8.h Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/hls/Makefile.in b/gst/hls/Makefile.in index 910cd18..caba7c6 100644 --- a/gst/hls/Makefile.in +++ b/gst/hls/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstfragmented_la_OBJECTS = libgstfragmented_la-m3u8.lo \ libgstfragmented_la-gsthlsdemux.lo \ libgstfragmented_la-gstfragmentedplugin.lo libgstfragmented_la_OBJECTS = $(am_libgstfragmented_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfragmented_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfragmented_la_SOURCES) DIST_SOURCES = $(libgstfragmented_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -611,7 +638,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfragmented.la: $(libgstfragmented_la_OBJECTS) $(libgstfragmented_la_DEPENDENCIES) +libgstfragmented.la: $(libgstfragmented_la_OBJECTS) $(libgstfragmented_la_DEPENDENCIES) $(EXTRA_libgstfragmented_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfragmented_la_LINK) -rpath $(plugindir) $(libgstfragmented_la_OBJECTS) $(libgstfragmented_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -627,50 +654,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfragmented_la-m3u8.lo: m3u8.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -MT libgstfragmented_la-m3u8.lo -MD -MP -MF $(DEPDIR)/libgstfragmented_la-m3u8.Tpo -c -o libgstfragmented_la-m3u8.lo `test -f 'm3u8.c' || echo '$(srcdir)/'`m3u8.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfragmented_la-m3u8.Tpo $(DEPDIR)/libgstfragmented_la-m3u8.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='m3u8.c' object='libgstfragmented_la-m3u8.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='m3u8.c' object='libgstfragmented_la-m3u8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-m3u8.lo `test -f 'm3u8.c' || echo '$(srcdir)/'`m3u8.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-m3u8.lo `test -f 'm3u8.c' || echo '$(srcdir)/'`m3u8.c libgstfragmented_la-gsthlsdemux.lo: gsthlsdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -MT libgstfragmented_la-gsthlsdemux.lo -MD -MP -MF $(DEPDIR)/libgstfragmented_la-gsthlsdemux.Tpo -c -o libgstfragmented_la-gsthlsdemux.lo `test -f 'gsthlsdemux.c' || echo '$(srcdir)/'`gsthlsdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfragmented_la-gsthlsdemux.Tpo $(DEPDIR)/libgstfragmented_la-gsthlsdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthlsdemux.c' object='libgstfragmented_la-gsthlsdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthlsdemux.c' object='libgstfragmented_la-gsthlsdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-gsthlsdemux.lo `test -f 'gsthlsdemux.c' || echo '$(srcdir)/'`gsthlsdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-gsthlsdemux.lo `test -f 'gsthlsdemux.c' || echo '$(srcdir)/'`gsthlsdemux.c libgstfragmented_la-gstfragmentedplugin.lo: gstfragmentedplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -MT libgstfragmented_la-gstfragmentedplugin.lo -MD -MP -MF $(DEPDIR)/libgstfragmented_la-gstfragmentedplugin.Tpo -c -o libgstfragmented_la-gstfragmentedplugin.lo `test -f 'gstfragmentedplugin.c' || echo '$(srcdir)/'`gstfragmentedplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfragmented_la-gstfragmentedplugin.Tpo $(DEPDIR)/libgstfragmented_la-gstfragmentedplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfragmentedplugin.c' object='libgstfragmented_la-gstfragmentedplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfragmentedplugin.c' object='libgstfragmented_la-gstfragmentedplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-gstfragmentedplugin.lo `test -f 'gstfragmentedplugin.c' || echo '$(srcdir)/'`gstfragmentedplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfragmented_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfragmented_la_CFLAGS) $(CFLAGS) -c -o libgstfragmented_la-gstfragmentedplugin.lo `test -f 'gstfragmentedplugin.c' || echo '$(srcdir)/'`gstfragmentedplugin.c mostlyclean-libtool: -rm -f *.lo @@ -777,10 +798,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/hls/gstfragment.c b/gst/hls/gstfragment.c new file mode 100644 index 0000000..927012a --- /dev/null +++ b/gst/hls/gstfragment.c @@ -0,0 +1,208 @@ +/* GStreamer + * Copyright (C) 2011 Andoni Morales Alastruey + * + * gstfragment.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. + */ + +#include +#include "gstfragmented.h" +#include "gstfragment.h" + +#define GST_CAT_DEFAULT fragmented_debug + +#define GST_FRAGMENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_FRAGMENT, GstFragmentPrivate)) + +enum +{ + PROP_0, + PROP_INDEX, + PROP_NAME, + PROP_DURATION, + PROP_DISCONTINOUS, + PROP_BUFFER_LIST, + PROP_LAST +}; + +struct _GstFragmentPrivate +{ + gsize accumulated_size; + GstBufferList *buffer_list; + GstBufferListIterator *buffer_iterator; +}; + +G_DEFINE_TYPE (GstFragment, gst_fragment, G_TYPE_OBJECT); + +static void gst_fragment_dispose (GObject * object); +static void gst_fragment_finalize (GObject * object); + +static void +gst_fragment_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec) +{ + GstFragment *fragment = GST_FRAGMENT (object); + + switch (property_id) { + case PROP_INDEX: + g_value_set_uint (value, fragment->index); + break; + + case PROP_NAME: + g_value_set_string (value, fragment->name); + break; + + case PROP_DURATION: + g_value_set_uint64 (value, fragment->stop_time - fragment->start_time); + break; + + case PROP_DISCONTINOUS: + g_value_set_boolean (value, fragment->discontinuous); + break; + + case PROP_BUFFER_LIST: + g_value_set_object (value, gst_fragment_get_buffer_list (fragment)); + break; + + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gst_fragment_class_init (GstFragmentClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (GstFragmentPrivate)); + + gobject_class->get_property = gst_fragment_get_property; + gobject_class->dispose = gst_fragment_dispose; + gobject_class->finalize = gst_fragment_finalize; + + g_object_class_install_property (gobject_class, PROP_INDEX, + g_param_spec_uint ("index", "Index", "Index of the fragment", 0, + G_MAXUINT, 0, G_PARAM_READABLE)); + + g_object_class_install_property (gobject_class, PROP_NAME, + g_param_spec_string ("name", "Name", + "Name of the fragment (eg:fragment-12.ts)", NULL, G_PARAM_READABLE)); + + g_object_class_install_property (gobject_class, PROP_DISCONTINOUS, + g_param_spec_boolean ("discontinuous", "Discontinous", + "Whether this fragment has a discontinuity or not", + FALSE, G_PARAM_READABLE)); + + g_object_class_install_property (gobject_class, PROP_DURATION, + g_param_spec_uint64 ("duration", "Fragment duration", + "Duration of the fragment", 0, G_MAXUINT64, 0, G_PARAM_READABLE)); + + g_object_class_install_property (gobject_class, PROP_BUFFER_LIST, + g_param_spec_object ("buffer-list", "Buffer List", + "A list with the fragment's buffers", GST_TYPE_FRAGMENT, + G_PARAM_READABLE)); +} + +static void +gst_fragment_init (GstFragment * fragment) +{ + GstFragmentPrivate *priv; + + fragment->priv = priv = GST_FRAGMENT_GET_PRIVATE (fragment); + + priv->buffer_list = gst_buffer_list_new (); + priv->buffer_iterator = gst_buffer_list_iterate (priv->buffer_list); + priv->accumulated_size = 0; + gst_buffer_list_iterator_add_group (priv->buffer_iterator); + fragment->download_start_time = gst_util_get_timestamp (); + fragment->start_time = 0; + fragment->stop_time = 0; + fragment->index = 0; + fragment->name = g_strdup (""); + fragment->completed = FALSE; + fragment->discontinuous = FALSE; +} + +GstFragment * +gst_fragment_new (void) +{ + return GST_FRAGMENT (g_object_new (GST_TYPE_FRAGMENT, NULL)); +} + +static void +gst_fragment_finalize (GObject * gobject) +{ + GstFragment *fragment = GST_FRAGMENT (gobject); + + g_free (fragment->name); + + G_OBJECT_CLASS (gst_fragment_parent_class)->finalize (gobject); +} + +void +gst_fragment_dispose (GObject * object) +{ + GstFragmentPrivate *priv = GST_FRAGMENT (object)->priv; + + if (priv->buffer_list != NULL) { + gst_buffer_list_iterator_free (priv->buffer_iterator); + gst_buffer_list_unref (priv->buffer_list); + priv->buffer_list = NULL; + } + + G_OBJECT_CLASS (gst_fragment_parent_class)->dispose (object); +} + +GstBufferList * +gst_fragment_get_buffer_list (GstFragment * fragment) +{ + g_return_val_if_fail (fragment != NULL, NULL); + + if (!fragment->completed) + return NULL; + + gst_buffer_list_ref (fragment->priv->buffer_list); + return fragment->priv->buffer_list; +} + +gboolean +gst_fragment_add_buffer (GstFragment * fragment, GstBuffer * buffer) +{ + g_return_val_if_fail (fragment != NULL, FALSE); + g_return_val_if_fail (buffer != NULL, FALSE); + + if (fragment->completed) { + GST_WARNING ("Fragment is completed, could not add more buffers"); + return FALSE; + } + + GST_DEBUG ("Adding new buffer to the fragment"); + /* We steal the buffers you pass in */ + gst_buffer_list_iterator_add (fragment->priv->buffer_iterator, buffer); + + fragment->priv->accumulated_size += GST_BUFFER_SIZE (buffer); + return TRUE; +} + +gsize +gst_fragment_get_total_size (GstFragment * fragment) +{ + g_return_val_if_fail (GST_IS_FRAGMENT (fragment), 0); + + return fragment->priv->accumulated_size; +} diff --git a/gst/hls/gstfragment.h b/gst/hls/gstfragment.h new file mode 100644 index 0000000..93aca9a --- /dev/null +++ b/gst/hls/gstfragment.h @@ -0,0 +1,70 @@ +/* GStreamer + * Copyright (C) 2011 Andoni Morales Alastruey + * + * gstfragment.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 __GSTFRAGMENT_H__ +#define __GSTFRAGMENT_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_FRAGMENT (gst_fragment_get_type()) +#define GST_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FRAGMENT,GstFragment)) +#define GST_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FRAGMENT,GstFragmentClass)) +#define GST_IS_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FRAGMENT)) +#define GST_IS_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FRAGMENT)) + +typedef struct _GstFragment GstFragment; +typedef struct _GstFragmentPrivate GstFragmentPrivate; +typedef struct _GstFragmentClass GstFragmentClass; + +struct _GstFragment +{ + GObject parent; + + gchar * name; /* Name of the fragment */ + gboolean completed; /* Whether the fragment is complete or not */ + guint64 download_start_time; /* Epoch time when the download started */ + guint64 download_stop_time; /* Epoch time when the download finished */ + guint64 start_time; /* Start time of the fragment */ + guint64 stop_time; /* Stop time of the fragment */ + gboolean index; /* Index of the fragment */ + gboolean discontinuous; /* Whether this fragment is discontinuous or not */ + + GstFragmentPrivate *priv; +}; + +struct _GstFragmentClass +{ + GObjectClass parent_class; +}; + +GType gst_fragment_get_type (void); + +GstBufferList * gst_fragment_get_buffer_list (GstFragment *fragment); +gboolean gst_fragment_set_headers (GstFragment *fragment, GstBuffer **buffer, guint count); +gboolean gst_fragment_add_buffer (GstFragment *fragment, GstBuffer *buffer); +gsize gst_fragment_get_total_size (GstFragment * fragment); +GstFragment * gst_fragment_new (void); + +G_END_DECLS +#endif /* __GSTFRAGMENT_H__ */ diff --git a/gst/hls/gsthlsdemux.c b/gst/hls/gsthlsdemux.c index ce1f409..0529c92 100644 --- a/gst/hls/gsthlsdemux.c +++ b/gst/hls/gsthlsdemux.c @@ -1,6 +1,9 @@ /* GStreamer * Copyright (C) 2010 Marc-Andre Lureau * Copyright (C) 2010 Andoni Morales Alastruey + * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. + * Author: Youness Alaoui , Collabora Ltd. + * Author: Sebastian Dröge , Collabora Ltd. * * Gsthlsdemux.c: * @@ -38,14 +41,18 @@ # include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS #include #include +#include #include "gsthlsdemux.h" -static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src%d", GST_PAD_SRC, - GST_PAD_ALWAYS, + GST_PAD_SOMETIMES, GST_STATIC_CAPS_ANY); static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", @@ -53,11 +60,6 @@ static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-hls")); -static GstStaticPadTemplate fetchertemplate = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - GST_DEBUG_CATEGORY_STATIC (gst_hls_demux_debug); #define GST_CAT_DEFAULT gst_hls_demux_debug @@ -66,7 +68,8 @@ enum PROP_0, PROP_FRAGMENTS_CACHE, - PROP_BITRATE_SWITCH_TOLERANCE, + PROP_BITRATE_LIMIT, + PROP_CONNECTION_SPEED, PROP_LAST }; @@ -74,7 +77,11 @@ static const float update_interval_factor[] = { 1, 0.5, 1.5, 3 }; #define DEFAULT_FRAGMENTS_CACHE 3 #define DEFAULT_FAILED_COUNT 3 -#define DEFAULT_BITRATE_SWITCH_TOLERANCE 0.4 +#define DEFAULT_BITRATE_LIMIT 0.8 +#define DEFAULT_CONNECTION_SPEED 0 +#ifdef GST_EXT_HLS_MODIFICATION +#define DEFAULT_FIRST_FRAGMENTS_CACHE 2 +#endif /* GObject */ static void gst_hls_demux_set_property (GObject * object, guint prop_id, @@ -88,32 +95,24 @@ static GstStateChangeReturn gst_hls_demux_change_state (GstElement * element, GstStateChange transition); /* GstHLSDemux */ -static GstBusSyncReply gst_hls_demux_fetcher_bus_handler (GstBus * bus, - GstMessage * message, gpointer data); static GstFlowReturn gst_hls_demux_chain (GstPad * pad, GstBuffer * buf); static gboolean gst_hls_demux_sink_event (GstPad * pad, GstEvent * event); static gboolean gst_hls_demux_src_event (GstPad * pad, GstEvent * event); static gboolean gst_hls_demux_src_query (GstPad * pad, GstQuery * query); -static GstFlowReturn gst_hls_demux_fetcher_chain (GstPad * pad, - GstBuffer * buf); -static gboolean gst_hls_demux_fetcher_sink_event (GstPad * pad, - GstEvent * event); -static void gst_hls_demux_loop (GstHLSDemux * demux); +static void gst_hls_demux_stream_loop (GstHLSDemux * demux); +static void gst_hls_demux_updates_loop (GstHLSDemux * demux); static void gst_hls_demux_stop (GstHLSDemux * demux); -static void gst_hls_demux_stop_fetcher (GstHLSDemux * demux, - gboolean cancelled); -static gboolean gst_hls_demux_start_update (GstHLSDemux * demux); static gboolean gst_hls_demux_cache_fragments (GstHLSDemux * demux); static gboolean gst_hls_demux_schedule (GstHLSDemux * demux); static gboolean gst_hls_demux_switch_playlist (GstHLSDemux * demux); static gboolean gst_hls_demux_get_next_fragment (GstHLSDemux * demux, - gboolean retry); + gboolean caching); static gboolean gst_hls_demux_update_playlist (GstHLSDemux * demux, - gboolean retry); + gboolean update); static void gst_hls_demux_reset (GstHLSDemux * demux, gboolean dispose); static gboolean gst_hls_demux_set_location (GstHLSDemux * demux, const gchar * uri); -static gchar *gst_hls_src_buf_to_utf8_playlist (gchar * string, guint size); +static gchar *gst_hls_src_buf_to_utf8_playlist (GstBuffer * buf); static void _do_init (GType type) @@ -130,11 +129,9 @@ gst_hls_demux_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_add_static_pad_template (element_class, &srctemplate); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "HLS Demuxer", @@ -149,25 +146,37 @@ gst_hls_demux_dispose (GObject * obj) { GstHLSDemux *demux = GST_HLS_DEMUX (obj); - g_cond_free (demux->fetcher_cond); - g_mutex_free (demux->fetcher_lock); - - g_cond_free (demux->thread_cond); - g_mutex_free (demux->thread_lock); + if (demux->stream_task) { + if (GST_TASK_STATE (demux->stream_task) != GST_TASK_STOPPED) { + GST_DEBUG_OBJECT (demux, "Leaving streaming task"); + gst_task_stop (demux->stream_task); + gst_task_join (demux->stream_task); + } + gst_object_unref (demux->stream_task); + g_static_rec_mutex_free (&demux->stream_lock); + demux->stream_task = NULL; + } - if (GST_TASK_STATE (demux->task) != GST_TASK_STOPPED) { - gst_task_stop (demux->task); - gst_task_join (demux->task); + if (demux->updates_task) { + if (GST_TASK_STATE (demux->updates_task) != GST_TASK_STOPPED) { + GST_DEBUG_OBJECT (demux, "Leaving updates task"); + gst_task_stop (demux->updates_task); + gst_task_join (demux->updates_task); + } + gst_object_unref (demux->updates_task); + g_mutex_free (demux->updates_timed_lock); + g_static_rec_mutex_free (&demux->updates_lock); + demux->updates_task = NULL; } - gst_object_unref (demux->task); - g_static_rec_mutex_free (&demux->task_lock); - gst_object_unref (demux->fetcher_bus); - gst_object_unref (demux->fetcherpad); + if (demux->downloader != NULL) { + g_object_unref (demux->downloader); + demux->downloader = NULL; + } gst_hls_demux_reset (demux, TRUE); - gst_object_unref (demux->download); + g_queue_free (demux->queue); G_OBJECT_CLASS (parent_class)->dispose (obj); } @@ -191,12 +200,17 @@ gst_hls_demux_class_init (GstHLSDemuxClass * klass) 2, G_MAXUINT, DEFAULT_FRAGMENTS_CACHE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_BITRATE_SWITCH_TOLERANCE, - g_param_spec_float ("bitrate-switch-tolerance", - "Bitrate switch tolerance", - "Tolerance with respect of the fragment duration to switch to " - "a different bitrate if the client is too slow/fast.", - 0, 1, DEFAULT_BITRATE_SWITCH_TOLERANCE, + g_object_class_install_property (gobject_class, PROP_BITRATE_LIMIT, + g_param_spec_float ("bitrate-limit", + "Bitrate limit in %", + "Limit of the available bitrate to use when switching to alternates.", + 0, 1, DEFAULT_BITRATE_LIMIT, + 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_MAXUINT / 1000, DEFAULT_CONNECTION_SPEED, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstelement_class->change_state = @@ -214,41 +228,30 @@ gst_hls_demux_init (GstHLSDemux * demux, GstHLSDemuxClass * klass) GST_DEBUG_FUNCPTR (gst_hls_demux_sink_event)); gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad); - /* demux pad */ - demux->srcpad = gst_pad_new_from_static_template (&srctemplate, "src"); - gst_pad_set_event_function (demux->srcpad, - GST_DEBUG_FUNCPTR (gst_hls_demux_src_event)); - gst_pad_set_query_function (demux->srcpad, - GST_DEBUG_FUNCPTR (gst_hls_demux_src_query)); - gst_pad_set_element_private (demux->srcpad, demux); - gst_element_add_pad (GST_ELEMENT (demux), demux->srcpad); + /* Downloader */ + demux->downloader = gst_uri_downloader_new (); - /* fetcher pad */ - demux->fetcherpad = - gst_pad_new_from_static_template (&fetchertemplate, "sink"); - gst_pad_set_chain_function (demux->fetcherpad, - GST_DEBUG_FUNCPTR (gst_hls_demux_fetcher_chain)); - gst_pad_set_event_function (demux->fetcherpad, - GST_DEBUG_FUNCPTR (gst_hls_demux_fetcher_sink_event)); - gst_pad_set_element_private (demux->fetcherpad, demux); - gst_pad_activate_push (demux->fetcherpad, TRUE); + demux->do_typefind = TRUE; /* Properties */ demux->fragments_cache = DEFAULT_FRAGMENTS_CACHE; - demux->bitrate_switch_tol = DEFAULT_BITRATE_SWITCH_TOLERANCE; - - demux->download = gst_adapter_new (); - demux->fetcher_bus = gst_bus_new (); - gst_bus_set_sync_handler (demux->fetcher_bus, - gst_hls_demux_fetcher_bus_handler, demux); - demux->thread_cond = g_cond_new (); - demux->thread_lock = g_mutex_new (); - demux->fetcher_cond = g_cond_new (); - demux->fetcher_lock = g_mutex_new (); + demux->bitrate_limit = DEFAULT_BITRATE_LIMIT; + demux->connection_speed = DEFAULT_CONNECTION_SPEED; + demux->queue = g_queue_new (); - g_static_rec_mutex_init (&demux->task_lock); - demux->task = gst_task_create ((GstTaskFunction) gst_hls_demux_loop, demux); - gst_task_set_lock (demux->task, &demux->task_lock); + + /* Updates task */ + g_static_rec_mutex_init (&demux->updates_lock); + demux->updates_task = + gst_task_create ((GstTaskFunction) gst_hls_demux_updates_loop, demux); + gst_task_set_lock (demux->updates_task, &demux->updates_lock); + demux->updates_timed_lock = g_mutex_new (); + + /* Streaming task */ + g_static_rec_mutex_init (&demux->stream_lock); + demux->stream_task = + gst_task_create ((GstTaskFunction) gst_hls_demux_stream_loop, demux); + gst_task_set_lock (demux->stream_task, &demux->stream_lock); } static void @@ -261,8 +264,11 @@ gst_hls_demux_set_property (GObject * object, guint prop_id, case PROP_FRAGMENTS_CACHE: demux->fragments_cache = g_value_get_uint (value); break; - case PROP_BITRATE_SWITCH_TOLERANCE: - demux->bitrate_switch_tol = g_value_get_float (value); + case PROP_BITRATE_LIMIT: + demux->bitrate_limit = g_value_get_float (value); + break; + case PROP_CONNECTION_SPEED: + demux->connection_speed = g_value_get_uint (value) * 1000; break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -280,8 +286,11 @@ gst_hls_demux_get_property (GObject * object, guint prop_id, GValue * value, case PROP_FRAGMENTS_CACHE: g_value_set_uint (value, demux->fragments_cache); break; - case PROP_BITRATE_SWITCH_TOLERANCE: - g_value_set_float (value, demux->bitrate_switch_tol); + case PROP_BITRATE_LIMIT: + g_value_set_float (value, demux->bitrate_limit); + break; + case PROP_CONNECTION_SPEED: + g_value_set_uint (value, demux->connection_speed / 1000); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -296,9 +305,17 @@ gst_hls_demux_change_state (GstElement * element, GstStateChange transition) GstHLSDemux *demux = GST_HLS_DEMUX (element); switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: + case GST_STATE_CHANGE_READY_TO_PAUSED: gst_hls_demux_reset (demux, FALSE); break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + /* Start the streaming loop in paused only if we already received + the main playlist. It might have been stopped if we were in PAUSED + state and we filled our queue with enough cached fragments + */ + if (gst_m3u8_client_get_uri (demux->client)[0] != '\0') + gst_task_start (demux->updates_task); + break; default: break; } @@ -306,9 +323,14 @@ gst_hls_demux_change_state (GstElement * element, GstStateChange transition) ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + gst_task_stop (demux->updates_task); + break; case GST_STATE_CHANGE_PAUSED_TO_READY: demux->cancelled = TRUE; - g_cond_signal (demux->fetcher_cond); + gst_hls_demux_stop (demux); + gst_task_join (demux->stream_task); + gst_hls_demux_reset (demux, FALSE); break; default: break; @@ -319,11 +341,103 @@ gst_hls_demux_change_state (GstElement * element, GstStateChange transition) static gboolean gst_hls_demux_src_event (GstPad * pad, GstEvent * event) { + GstHLSDemux *demux; + + demux = GST_HLS_DEMUX (gst_pad_get_element_private (pad)); + switch (event->type) { - /* FIXME: ignore seek event for the moment */ case GST_EVENT_SEEK: - gst_event_unref (event); - return FALSE; + { + gdouble rate; + GstFormat format; + GstSeekFlags flags; + GstSeekType start_type, stop_type; + gint64 start, stop; + GList *walk; + GstClockTime position, current_pos, target_pos; + gint current_sequence; + GstM3U8MediaFile *file; + + GST_INFO_OBJECT (demux, "Received GST_EVENT_SEEK"); + + if (gst_m3u8_client_is_live (demux->client)) { + GST_WARNING_OBJECT (demux, "Received seek event for live stream"); + return FALSE; + } + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + if (format != GST_FORMAT_TIME) + return FALSE; + + GST_DEBUG_OBJECT (demux, "seek event, rate: %f start: %" GST_TIME_FORMAT + " stop: %" GST_TIME_FORMAT, rate, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop)); + + GST_M3U8_CLIENT_LOCK (demux->client); + file = GST_M3U8_MEDIA_FILE (demux->client->current->files->data); + current_sequence = file->sequence; + current_pos = 0; + target_pos = (GstClockTime) start; + for (walk = demux->client->current->files; walk; walk = walk->next) { + file = walk->data; + + current_sequence = file->sequence; + if (current_pos <= target_pos + && target_pos < current_pos + file->duration) { + break; + } + current_pos += file->duration; + } + GST_M3U8_CLIENT_UNLOCK (demux->client); + + if (walk == NULL) { + GST_WARNING_OBJECT (demux, "Could not find seeked fragment"); + return FALSE; + } + + if (flags & GST_SEEK_FLAG_FLUSH) { + GST_DEBUG_OBJECT (demux, "sending flush start"); + gst_pad_push_event (demux->srcpad, gst_event_new_flush_start ()); + } + + demux->cancelled = TRUE; + gst_task_pause (demux->stream_task); + gst_uri_downloader_cancel (demux->downloader); + gst_task_stop (demux->updates_task); + gst_task_pause (demux->stream_task); + + /* wait for streaming to finish */ + g_static_rec_mutex_lock (&demux->stream_lock); + + demux->need_cache = TRUE; + while (!g_queue_is_empty (demux->queue)) { + GstBufferList *buf_list = g_queue_pop_head (demux->queue); + gst_buffer_list_unref (buf_list); + } + g_queue_clear (demux->queue); + + GST_M3U8_CLIENT_LOCK (demux->client); + GST_DEBUG_OBJECT (demux, "seeking to sequence %d", current_sequence); + demux->client->sequence = current_sequence; + gst_m3u8_client_get_current_position (demux->client, &position); + demux->position_shift = start - position; + demux->need_segment = TRUE; + GST_M3U8_CLIENT_UNLOCK (demux->client); + + + if (flags & GST_SEEK_FLAG_FLUSH) { + GST_DEBUG_OBJECT (demux, "sending flush stop"); + gst_pad_push_event (demux->srcpad, gst_event_new_flush_stop ()); + } + + demux->cancelled = FALSE; + gst_task_start (demux->stream_task); + g_static_rec_mutex_unlock (&demux->stream_lock); + + return TRUE; + } default: break; } @@ -334,15 +448,22 @@ gst_hls_demux_src_event (GstPad * pad, GstEvent * event) static gboolean gst_hls_demux_sink_event (GstPad * pad, GstEvent * event) { - GstHLSDemux *demux = GST_HLS_DEMUX (gst_pad_get_parent (pad)); + GstHLSDemux *demux; GstQuery *query; gboolean ret; gchar *uri; + demux = GST_HLS_DEMUX (gst_pad_get_parent (pad)); switch (event->type) { case GST_EVENT_EOS:{ - gchar *playlist; + gchar *playlist = NULL; +#ifdef GST_EXT_HLS_MODIFICATION + GstPad *peer = gst_pad_get_peer (demux->sinkpad); + GObject *src = G_OBJECT (gst_pad_get_parent (peer)); + + g_object_get (src, "cookies", &demux->cookies, NULL); +#endif if (demux->playlist == NULL) { GST_WARNING_OBJECT (demux, "Received EOS without a playlist."); @@ -361,34 +482,44 @@ gst_hls_demux_sink_event (GstPad * pad, GstEvent * event) } gst_query_unref (query); - playlist = gst_hls_src_buf_to_utf8_playlist ((gchar *) - GST_BUFFER_DATA (demux->playlist), GST_BUFFER_SIZE (demux->playlist)); - gst_buffer_unref (demux->playlist); + playlist = gst_hls_src_buf_to_utf8_playlist (demux->playlist); + demux->playlist = NULL; if (playlist == NULL) { GST_WARNING_OBJECT (demux, "Error validating first playlist."); } else if (!gst_m3u8_client_update (demux->client, playlist)) { /* In most cases, this will happen if we set a wrong url in the * source element and we have received the 404 HTML response instead of * the playlist */ - GST_ELEMENT_ERROR (demux, STREAM, DECODE, ("Invalid playlist."), NULL); + GST_ELEMENT_ERROR (demux, STREAM, DECODE, ("Invalid playlist."), + (NULL)); + gst_object_unref (demux); return FALSE; } if (!ret && gst_m3u8_client_is_live (demux->client)) { GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, ("Failed querying the playlist uri, " - "required for live sources."), NULL); + "required for live sources."), (NULL)); + gst_object_unref (demux); return FALSE; } - gst_task_start (demux->task); + gst_task_start (demux->stream_task); gst_event_unref (event); + gst_object_unref (demux); return TRUE; } + case GST_EVENT_NEWSEGMENT: + /* Swallow newsegments, we'll push our own */ + gst_event_unref (event); + gst_object_unref (demux); + return TRUE; default: break; } + gst_object_unref (demux); + return gst_pad_event_default (pad, event); } @@ -405,7 +536,7 @@ gst_hls_demux_src_query (GstPad * pad, GstQuery * query) switch (query->type) { case GST_QUERY_DURATION:{ - GstClockTime duration; + GstClockTime duration = -1; GstFormat fmt; gst_query_parse_duration (query, &fmt, NULL); @@ -416,30 +547,38 @@ gst_hls_demux_src_query (GstPad * pad, GstQuery * query) ret = TRUE; } } + GST_INFO_OBJECT (hlsdemux, "GST_QUERY_DURATION returns %s with duration %" + GST_TIME_FORMAT, ret ? "TRUE" : "FALSE", GST_TIME_ARGS (duration)); break; } case GST_QUERY_URI: if (hlsdemux->client) { /* FIXME: Do we answer with the variant playlist, with the current * playlist or the the uri of the least downlowaded fragment? */ - gst_query_set_uri (query, hlsdemux->client->current->uri); + gst_query_set_uri (query, gst_m3u8_client_get_uri (hlsdemux->client)); ret = TRUE; } break; case GST_QUERY_SEEKING:{ GstFormat fmt; - gint stop = -1; + gint64 stop = -1; gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + GST_INFO_OBJECT (hlsdemux, "Received GST_QUERY_SEEKING with format %d", + fmt); if (fmt == GST_FORMAT_TIME) { GstClockTime duration; duration = gst_m3u8_client_get_duration (hlsdemux->client); if (GST_CLOCK_TIME_IS_VALID (duration) && duration > 0) stop = duration; + + gst_query_set_seeking (query, fmt, + !gst_m3u8_client_is_live (hlsdemux->client), 0, stop); + ret = TRUE; + GST_INFO_OBJECT (hlsdemux, "GST_QUERY_SEEKING returning with stop : %" + GST_TIME_FORMAT, GST_TIME_ARGS (stop)); } - gst_query_set_seeking (query, fmt, FALSE, 0, stop); - ret = TRUE; break; } default: @@ -452,26 +591,6 @@ gst_hls_demux_src_query (GstPad * pad, GstQuery * query) return ret; } -static gboolean -gst_hls_demux_fetcher_sink_event (GstPad * pad, GstEvent * event) -{ - GstHLSDemux *demux = GST_HLS_DEMUX (gst_pad_get_element_private (pad)); - - switch (event->type) { - case GST_EVENT_EOS:{ - GST_DEBUG_OBJECT (demux, "Got EOS on the fetcher pad"); - /* signal we have fetched the URI */ - if (!demux->cancelled) - g_cond_signal (demux->fetcher_cond); - } - default: - break; - } - - gst_event_unref (event); - return FALSE; -} - static GstFlowReturn gst_hls_demux_chain (GstPad * pad, GstBuffer * buf) { @@ -487,77 +606,67 @@ gst_hls_demux_chain (GstPad * pad, GstBuffer * buf) return GST_FLOW_OK; } -static GstFlowReturn -gst_hls_demux_fetcher_chain (GstPad * pad, GstBuffer * buf) +static void +gst_hls_demux_stop (GstHLSDemux * demux) { - GstHLSDemux *demux = GST_HLS_DEMUX (gst_pad_get_element_private (pad)); - - /* The source element can be an http source element. In case we get a 404, - * the html response will be sent downstream and the adapter - * will not be null, which might make us think that the request proceed - * successfully. But it will also post an error message in the bus that - * is handled synchronously and that will set demux->fetcher_error to TRUE, - * which is used to discard this buffer with the html response. */ - if (demux->fetcher_error) { - goto done; - } + gst_uri_downloader_cancel (demux->downloader); - GST_LOG_OBJECT (demux, "The uri fetcher received a new buffer of size %u", - GST_BUFFER_SIZE (buf)); - gst_adapter_push (demux->download, buf); - -done: - { - return GST_FLOW_OK; + if (GST_TASK_STATE (demux->updates_task) != GST_TASK_STOPPED) { + demux->stop_stream_task = TRUE; + gst_task_stop (demux->updates_task); + GST_TASK_SIGNAL (demux->updates_task); } + + if (GST_TASK_STATE (demux->stream_task) != GST_TASK_STOPPED) + gst_task_stop (demux->stream_task); } static void -gst_hls_demux_stop_fetcher (GstHLSDemux * demux, gboolean cancelled) +switch_pads (GstHLSDemux * demux, GstCaps * newcaps) { - GstPad *pad; + GstPad *oldpad = demux->srcpad; + + GST_DEBUG ("Switching pads (oldpad:%p) with caps: %" GST_PTR_FORMAT, oldpad, + newcaps); + + /* FIXME: This is a workaround for a bug in playsink. + * If we're switching from an audio-only or video-only fragment + * to an audio-video segment, the new sink doesn't know about + * the current running time and audio/video will go out of sync. + * + * This should be fixed in playsink by distributing the + * current running time to newly created sinks and is + * fixed in 0.11 with the new segments. + */ + if (demux->srcpad) + gst_pad_push_event (demux->srcpad, gst_event_new_flush_stop ()); - /* When the fetcher is stopped while it's downloading, we will get an EOS that - * unblocks the fetcher thread and tries to stop it again from that thread. - * Here we check if the fetcher as already been stopped before continuing */ - if (demux->fetcher == NULL || demux->stopping_fetcher) - return; + /* First create and activate new pad */ + demux->srcpad = gst_pad_new_from_static_template (&srctemplate, NULL); + gst_pad_set_event_function (demux->srcpad, + GST_DEBUG_FUNCPTR (gst_hls_demux_src_event)); + gst_pad_set_query_function (demux->srcpad, + GST_DEBUG_FUNCPTR (gst_hls_demux_src_query)); + gst_pad_set_element_private (demux->srcpad, demux); + gst_pad_set_active (demux->srcpad, TRUE); + gst_pad_set_caps (demux->srcpad, newcaps); + gst_element_add_pad (GST_ELEMENT (demux), demux->srcpad); - GST_DEBUG_OBJECT (demux, "Stopping fetcher."); - demux->stopping_fetcher = TRUE; - /* set the element state to NULL */ - gst_element_set_state (demux->fetcher, GST_STATE_NULL); - gst_element_get_state (demux->fetcher, NULL, NULL, GST_CLOCK_TIME_NONE); - /* unlink it from the internal pad */ - pad = gst_pad_get_peer (demux->fetcherpad); - if (pad) { - gst_pad_unlink (pad, demux->fetcherpad); - gst_object_unref (pad); - } - /* and finally unref it */ - gst_object_unref (demux->fetcher); - demux->fetcher = NULL; - - /* if we stopped it to cancell a download, free the cached buffer */ - if (cancelled && !gst_adapter_available (demux->download)) { - gst_adapter_clear (demux->download); - /* signal the fetcher thread that the download has finished/cancelled */ - g_cond_signal (demux->fetcher_cond); - } -} + gst_element_no_more_pads (GST_ELEMENT (demux)); -static void -gst_hls_demux_stop (GstHLSDemux * demux) -{ - gst_hls_demux_stop_fetcher (demux, TRUE); - if (GST_TASK_STATE (demux->task) != GST_TASK_STOPPED) - gst_task_stop (demux->task); - g_cond_signal (demux->thread_cond); + if (oldpad) { + /* Push out EOS */ + gst_pad_push_event (oldpad, gst_event_new_eos ()); + gst_pad_set_active (oldpad, FALSE); + gst_element_remove_pad (GST_ELEMENT (demux), oldpad); + } } static void -gst_hls_demux_loop (GstHLSDemux * demux) +gst_hls_demux_stream_loop (GstHLSDemux * demux) { + GstFragment *fragment; + GstBufferList *buffer_list; GstBuffer *buf; GstFlowReturn ret; @@ -571,8 +680,9 @@ gst_hls_demux_loop (GstHLSDemux * demux) if (!gst_hls_demux_cache_fragments (demux)) goto cache_error; - /* we can start now the updates thread */ - gst_hls_demux_start_update (demux); + /* we can start now the updates thread (only if on playing) */ + if (GST_STATE (demux) == GST_STATE_PLAYING) + gst_task_start (demux->updates_task); GST_INFO_OBJECT (demux, "First fragments cached successfully"); } @@ -580,17 +690,47 @@ gst_hls_demux_loop (GstHLSDemux * demux) if (demux->end_of_playlist) goto end_of_playlist; - GST_TASK_WAIT (demux->task); - /* If the queue is still empty check again if it's the end of the - * playlist in case we reached it after beeing woken up */ - if (g_queue_is_empty (demux->queue) && demux->end_of_playlist) - goto end_of_playlist; + goto pause_task; + } + + fragment = g_queue_pop_head (demux->queue); + buffer_list = gst_fragment_get_buffer_list (fragment); + /* Work with the first buffer of the list */ + buf = gst_buffer_list_get (buffer_list, 0, 0); + + /* Figure out if we need to create/switch pads */ + if (G_UNLIKELY (!demux->srcpad +#ifdef GST_EXT_HLS_MODIFICATION + || ((GST_BUFFER_CAPS (buf)) + && (!gst_caps_is_equal_fixed (GST_BUFFER_CAPS (buf), + GST_PAD_CAPS (demux->srcpad)))) +#else + || !gst_caps_is_equal_fixed (GST_BUFFER_CAPS (buf), + GST_PAD_CAPS (demux->srcpad)) +#endif + || demux->need_segment)) { + switch_pads (demux, GST_BUFFER_CAPS (buf)); + demux->need_segment = TRUE; + } + g_object_unref (fragment); + + if (demux->need_segment) { + GstClockTime start = GST_BUFFER_TIMESTAMP (buf); + + start += demux->position_shift; + /* And send a newsegment */ + GST_DEBUG_OBJECT (demux, "Sending new-segment. segment start:%" + GST_TIME_FORMAT, GST_TIME_ARGS (start)); + gst_pad_push_event (demux->srcpad, + gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, + start, GST_CLOCK_TIME_NONE, start)); + demux->need_segment = FALSE; + demux->position_shift = 0; } - buf = g_queue_pop_head (demux->queue); - ret = gst_pad_push (demux->srcpad, buf); + ret = gst_pad_push_list (demux->srcpad, buffer_list); if (ret != GST_FLOW_OK) - goto error; + goto error_pushing; return; @@ -604,69 +744,38 @@ end_of_playlist: cache_error: { - GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, - ("Could not cache the first fragments"), NULL); - gst_hls_demux_stop (demux); + gst_task_pause (demux->stream_task); + if (!demux->cancelled) { + GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, + ("Could not cache the first fragments"), (NULL)); + gst_hls_demux_stop (demux); + } return; } -error: +error_pushing: { /* FIXME: handle error */ + GST_DEBUG_OBJECT (demux, "Error pushing buffer: %s... stopping task", + gst_flow_get_name (ret)); gst_hls_demux_stop (demux); return; } -} - -static GstBusSyncReply -gst_hls_demux_fetcher_bus_handler (GstBus * bus, - GstMessage * message, gpointer data) -{ - GstHLSDemux *demux = GST_HLS_DEMUX (data); - - if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR) { - demux->fetcher_error = TRUE; - g_cond_signal (demux->fetcher_cond); - } - - gst_message_unref (message); - return GST_BUS_DROP; -} - -static gboolean -gst_hls_demux_make_fetcher (GstHLSDemux * demux, const gchar * uri) -{ - GstPad *pad; - - if (!gst_uri_is_valid (uri)) - return FALSE; - - GST_DEBUG_OBJECT (demux, "Creating fetcher for the URI:%s", uri); - demux->fetcher = gst_element_make_from_uri (GST_URI_SRC, uri, NULL); - if (!demux->fetcher) - return FALSE; - - demux->fetcher_error = FALSE; - demux->stopping_fetcher = FALSE; - gst_element_set_bus (GST_ELEMENT (demux->fetcher), demux->fetcher_bus); - g_object_set (G_OBJECT (demux->fetcher), "location", uri, NULL); - pad = gst_element_get_static_pad (demux->fetcher, "src"); - if (pad) { - gst_pad_link (pad, demux->fetcherpad); - gst_object_unref (pad); +pause_task: + { + gst_task_pause (demux->stream_task); + return; } - return TRUE; } static void gst_hls_demux_reset (GstHLSDemux * demux, gboolean dispose) { demux->need_cache = TRUE; - demux->thread_return = FALSE; - demux->accumulated_delay = 0; demux->end_of_playlist = FALSE; demux->cancelled = FALSE; + demux->do_typefind = TRUE; if (demux->input_caps) { gst_caps_unref (demux->input_caps); @@ -678,20 +787,23 @@ gst_hls_demux_reset (GstHLSDemux * demux, gboolean dispose) demux->playlist = NULL; } - gst_adapter_clear (demux->download); - - if (demux->client) + if (demux->client) { gst_m3u8_client_free (demux->client); + demux->client = NULL; + } if (!dispose) { demux->client = gst_m3u8_client_new (""); } while (!g_queue_is_empty (demux->queue)) { - GstBuffer *buf = g_queue_pop_head (demux->queue); - gst_buffer_unref (buf); + GstFragment *fragment = g_queue_pop_head (demux->queue); + g_object_unref (fragment); } g_queue_clear (demux->queue); + + demux->position_shift = 0; + demux->need_segment = TRUE; } static gboolean @@ -704,8 +816,8 @@ gst_hls_demux_set_location (GstHLSDemux * demux, const gchar * uri) return TRUE; } -static gboolean -gst_hls_demux_update_thread (GstHLSDemux * demux) +void +gst_hls_demux_updates_loop (GstHLSDemux * demux) { /* Loop for the updates. It's started when the first fragments are cached and * schedules the next update of the playlist (for lives sources) and the next @@ -713,25 +825,32 @@ gst_hls_demux_update_thread (GstHLSDemux * demux) * download time with the next scheduled update to check if we can or should * switch to a different bitrate */ - g_mutex_lock (demux->thread_lock); + g_mutex_lock (demux->updates_timed_lock); + GST_DEBUG_OBJECT (demux, "Started updates task"); while (TRUE) { - /* block until the next scheduled update or the signal to quit this thread */ - if (g_cond_timed_wait (demux->thread_cond, demux->thread_lock, - &demux->next_update)) { + /* schedule the next update */ + gst_hls_demux_schedule (demux); + + /* block until the next scheduled update or the signal to quit this thread */ + if (g_cond_timed_wait (GST_TASK_GET_COND (demux->updates_task), + demux->updates_timed_lock, &demux->next_update)) { goto quit; } - /* update the playlist for live sources */ if (gst_m3u8_client_is_live (demux->client)) { if (!gst_hls_demux_update_playlist (demux, TRUE)) { - GST_ERROR_OBJECT (demux, "Could not update the playlist"); - goto quit; + demux->client->update_failed_count++; + if (demux->client->update_failed_count < DEFAULT_FAILED_COUNT) { + GST_WARNING_OBJECT (demux, "Could not update the playlist"); + continue; + } else { + GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, + ("Could not update the playlist"), (NULL)); + goto quit; + } } } - /* schedule the next update */ - gst_hls_demux_schedule (demux); - /* if it's a live source and the playlist couldn't be updated, there aren't * more fragments in the playlist, so we just wait for the next schedulled * update */ @@ -744,54 +863,85 @@ gst_hls_demux_update_thread (GstHLSDemux * demux) } /* fetch the next fragment */ - if (!gst_hls_demux_get_next_fragment (demux, TRUE)) { - if (!demux->end_of_playlist && !demux->cancelled) - GST_ERROR_OBJECT (demux, "Could not fetch the next fragment"); - goto quit; +#ifdef GST_EXT_HLS_MODIFICATION + while (g_queue_get_length(demux->queue) < demux->fragments_cache) { + GST_INFO_OBJECT (demux, "demux->queue (%d) < demux->fragments_cache (%d). fetch next fragment", + g_queue_get_length(demux->queue), demux->fragments_cache); + if (!gst_hls_demux_get_next_fragment (demux, FALSE)) { + if (!demux->end_of_playlist && !demux->cancelled) { + demux->client->update_failed_count++; + if (demux->client->update_failed_count < DEFAULT_FAILED_COUNT) { + GST_WARNING_OBJECT (demux, "Could not fetch the next fragment (%d)", demux->client->update_failed_count); + break; + } else { + GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, + ("Could not fetch the next fragment"), (NULL)); + goto quit; + } + } + GST_INFO_OBJECT (demux, "Got end_of_playlist = %d, cancelled = %d", demux->end_of_playlist, demux->cancelled); + break; + } else { + demux->client->update_failed_count = 0; + + /* try to switch to another bitrate if needed */ + gst_hls_demux_switch_playlist (demux); + } } +#else + if (g_queue_is_empty (demux->queue)) { + if (!gst_hls_demux_get_next_fragment (demux, FALSE)) { + if (!demux->end_of_playlist && !demux->cancelled) { + demux->client->update_failed_count++; + if (demux->client->update_failed_count < DEFAULT_FAILED_COUNT) { + GST_WARNING_OBJECT (demux, "Could not fetch the next fragment"); + continue; + } else { + GST_ELEMENT_ERROR (demux, RESOURCE, NOT_FOUND, + ("Could not fetch the next fragment"), (NULL)); + goto quit; + } + } + } else { + demux->client->update_failed_count = 0; - /* try to switch to another bitrate if needed */ - gst_hls_demux_switch_playlist (demux); + /* try to switch to another bitrate if needed */ + gst_hls_demux_switch_playlist (demux); + } + } +#endif } quit: { - g_mutex_unlock (demux->thread_lock); - return TRUE; + GST_DEBUG_OBJECT (demux, "Stopped updates task"); + gst_hls_demux_stop (demux); + g_mutex_unlock (demux->updates_timed_lock); } } static gboolean -gst_hls_demux_start_update (GstHLSDemux * demux) -{ - GError *error; - - /* creates a new thread for the updates */ - demux->updates_thread = g_thread_create ( - (GThreadFunc) gst_hls_demux_update_thread, demux, TRUE, &error); - return (error != NULL); -} - -static gboolean gst_hls_demux_cache_fragments (GstHLSDemux * demux) { gint i; - /* Start parsing the main playlist */ - gst_m3u8_client_set_current (demux->client, demux->client->main); - - if (gst_m3u8_client_is_live (demux->client)) { - if (!gst_hls_demux_update_playlist (demux, FALSE)) { - GST_ERROR_OBJECT (demux, "Could not fetch the main playlist %s", - demux->client->main->uri); - return FALSE; - } - } - /* If this playlist is a variant playlist, select the first one * and update it */ if (gst_m3u8_client_has_variant_playlist (demux->client)) { - GstM3U8 *child = demux->client->main->lists->data; + GstM3U8 *child = NULL; + + if (demux->connection_speed == 0) { + + GST_M3U8_CLIENT_LOCK (demux->client); + child = demux->client->main->current_variant->data; + GST_M3U8_CLIENT_UNLOCK (demux->client); + } else { + GList *tmp = gst_m3u8_client_get_playlist_for_bitrate (demux->client, + demux->connection_speed); + + child = GST_M3U8 (tmp->data); + } + gst_m3u8_client_set_current (demux->client, child); if (!gst_hls_demux_update_playlist (demux, FALSE)) { GST_ERROR_OBJECT (demux, "Could not fetch the child playlist %s", @@ -800,19 +950,33 @@ gst_hls_demux_cache_fragments (GstHLSDemux * demux) } } - /* If it's a live source, set the sequence number to the end of the list - * and substract the 'fragmets_cache' to start from the last fragment*/ - if (gst_m3u8_client_is_live (demux->client)) { - demux->client->sequence += g_list_length (demux->client->current->files); - if (demux->client->sequence >= demux->fragments_cache) - demux->client->sequence -= demux->fragments_cache; - else - demux->client->sequence = 0; + if (!gst_m3u8_client_is_live (demux->client)) { + GstClockTime duration = gst_m3u8_client_get_duration (demux->client); + + GST_DEBUG_OBJECT (demux, "Sending duration message : %" GST_TIME_FORMAT, + GST_TIME_ARGS (duration)); + if (duration != GST_CLOCK_TIME_NONE) + gst_element_post_message (GST_ELEMENT (demux), + gst_message_new_duration (GST_OBJECT (demux), + GST_FORMAT_TIME, duration)); } /* Cache the first fragments */ - for (i = 0; i < demux->fragments_cache - 1; i++) { - if (!gst_hls_demux_get_next_fragment (demux, FALSE)) { +#ifdef GST_EXT_HLS_MODIFICATION + for (i = 0; i < DEFAULT_FIRST_FRAGMENTS_CACHE; i++) { + gst_element_post_message (GST_ELEMENT (demux), + gst_message_new_buffering (GST_OBJECT (demux), + 100 * i / DEFAULT_FIRST_FRAGMENTS_CACHE)); +#else + for (i = 0; i < demux->fragments_cache; i++) { + gst_element_post_message (GST_ELEMENT (demux), + gst_message_new_buffering (GST_OBJECT (demux), + 100 * i / demux->fragments_cache)); +#endif + g_get_current_time (&demux->next_update); + if (!gst_hls_demux_get_next_fragment (demux, TRUE)) { + if (demux->end_of_playlist) + break; if (!demux->cancelled) GST_ERROR_OBJECT (demux, "Error caching the first fragments"); return FALSE; @@ -820,131 +984,170 @@ gst_hls_demux_cache_fragments (GstHLSDemux * demux) /* make sure we stop caching fragments if something cancelled it */ if (demux->cancelled) return FALSE; + + gst_hls_demux_switch_playlist (demux); } + gst_element_post_message (GST_ELEMENT (demux), + gst_message_new_buffering (GST_OBJECT (demux), 100)); g_get_current_time (&demux->next_update); demux->need_cache = FALSE; return TRUE; -} - -static gboolean -gst_hls_demux_fetch_location (GstHLSDemux * demux, const gchar * uri) -{ - GstStateChangeReturn ret; - gboolean bret = FALSE; - - g_mutex_lock (demux->fetcher_lock); - - if (!gst_hls_demux_make_fetcher (demux, uri)) { - goto uri_error; - } - - ret = gst_element_set_state (demux->fetcher, GST_STATE_PLAYING); - if (ret == GST_STATE_CHANGE_FAILURE) - goto state_change_error; - - /* wait until we have fetched the uri */ - GST_DEBUG_OBJECT (demux, "Waiting to fetch the URI"); - g_cond_wait (demux->fetcher_cond, demux->fetcher_lock); - - gst_hls_demux_stop_fetcher (demux, FALSE); - - if (gst_adapter_available (demux->download)) { - GST_INFO_OBJECT (demux, "URI fetched successfully"); - bret = TRUE; - } - goto quit; - -uri_error: - { - GST_ELEMENT_ERROR (demux, RESOURCE, OPEN_READ, - ("Could not create an element to fetch the given URI."), ("URI: \"%s\"", - uri)); - bret = FALSE; - goto quit; - } - -state_change_error: - { - GST_ELEMENT_ERROR (demux, CORE, STATE_CHANGE, - ("Error changing state of the fetcher element."), NULL); - bret = FALSE; - goto quit; - } -quit: - { - g_mutex_unlock (demux->fetcher_lock); - return bret; - } } static gchar * -gst_hls_src_buf_to_utf8_playlist (gchar * data, guint size) +gst_hls_src_buf_to_utf8_playlist (GstBuffer * buf) { + gint size; + gchar *data; gchar *playlist; + data = (gchar *) GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + if (!g_utf8_validate (data, size, NULL)) - return NULL; + goto validate_error; /* alloc size + 1 to end with a null character */ playlist = g_malloc0 (size + 1); memcpy (playlist, data, size + 1); + + gst_buffer_unref (buf); return playlist; + +validate_error: + gst_buffer_unref (buf); + return NULL; } static gboolean -gst_hls_demux_update_playlist (GstHLSDemux * demux, gboolean retry) +gst_hls_demux_update_playlist (GstHLSDemux * demux, gboolean update) { - const guint8 *data; + GstFragment *download; + GstBufferListIterator *it; + GstBuffer *buf; gchar *playlist; - guint avail; + gboolean updated = FALSE; + + const gchar *uri = gst_m3u8_client_get_current_uri (demux->client); - GST_INFO_OBJECT (demux, "Updating the playlist %s", - demux->client->current->uri); - if (!gst_hls_demux_fetch_location (demux, demux->client->current->uri)) +#ifdef GST_EXT_HLS_MODIFICATION + download = gst_uri_downloader_fetch_uri (demux->downloader, uri, + &demux->cookies); +#else + download = gst_uri_downloader_fetch_uri (demux->downloader, uri); +#endif + + if (download == NULL) return FALSE; - avail = gst_adapter_available (demux->download); - data = gst_adapter_peek (demux->download, avail); - playlist = gst_hls_src_buf_to_utf8_playlist ((gchar *) data, avail); - gst_adapter_clear (demux->download); + /* Merge all the buffers in the list to build a unique buffer with the + * playlist */ + it = gst_buffer_list_iterate (gst_fragment_get_buffer_list (download)); + gst_buffer_list_iterator_next_group (it); + buf = gst_buffer_list_iterator_merge_group (it); + + playlist = gst_hls_src_buf_to_utf8_playlist (buf); + gst_buffer_list_iterator_free (it); + g_object_unref (download); + if (playlist == NULL) { GST_WARNING_OBJECT (demux, "Couldn't not validate playlist encoding"); return FALSE; } - gst_m3u8_client_update (demux->client, playlist); - return TRUE; + + updated = gst_m3u8_client_update (demux->client, playlist); + + /* If it's a live source, do not let the sequence number go beyond + * three fragments before the end of the list */ + if (updated && update == FALSE && demux->client->current && + gst_m3u8_client_is_live (demux->client)) { + guint last_sequence; + + GST_M3U8_CLIENT_LOCK (demux->client); + last_sequence = + GST_M3U8_MEDIA_FILE (g_list_last (demux->client->current-> + files)->data)->sequence; + + if (demux->client->sequence >= last_sequence - 3) { + GST_DEBUG_OBJECT (demux, "Sequence is beyond playlist. Moving back to %d", + last_sequence - 3); + demux->need_segment = TRUE; + demux->client->sequence = last_sequence - 3; + } + GST_M3U8_CLIENT_UNLOCK (demux->client); + } + + return updated; } static gboolean -gst_hls_demux_change_playlist (GstHLSDemux * demux, gboolean is_fast) +gst_hls_demux_change_playlist (GstHLSDemux * demux, guint max_bitrate) { - GList *list; - GstStructure *s; + GList *previous_variant, *current_variant; + gint old_bandwidth, new_bandwidth; - if (is_fast) - list = g_list_next (demux->client->main->lists); - else - list = g_list_previous (demux->client->main->lists); + /* If user specifies a connection speed never use a playlist with a bandwidth + * superior than it */ + if (demux->connection_speed != 0 && max_bitrate > demux->connection_speed) + max_bitrate = demux->connection_speed; + + previous_variant = demux->client->main->current_variant; + current_variant = gst_m3u8_client_get_playlist_for_bitrate (demux->client, + max_bitrate); + +retry_failover_protection: + old_bandwidth = GST_M3U8 (previous_variant->data)->bandwidth; + new_bandwidth = GST_M3U8 (current_variant->data)->bandwidth; /* Don't do anything else if the playlist is the same */ - if (!list || list->data == demux->client->current) + if (new_bandwidth == old_bandwidth) { return TRUE; + } + + demux->client->main->current_variant = current_variant; + GST_M3U8_CLIENT_UNLOCK (demux->client); + + gst_m3u8_client_set_current (demux->client, current_variant->data); + + GST_INFO_OBJECT (demux, "Client was on %dbps, max allowed is %dbps, switching" + " to bitrate %dbps", old_bandwidth, max_bitrate, new_bandwidth); + + if (gst_hls_demux_update_playlist (demux, FALSE)) { + GstStructure *s; - demux->client->main->lists = list; + s = gst_structure_new ("playlist", + "uri", G_TYPE_STRING, gst_m3u8_client_get_current_uri (demux->client), + "bitrate", G_TYPE_INT, new_bandwidth, NULL); + gst_element_post_message (GST_ELEMENT_CAST (demux), + gst_message_new_element (GST_OBJECT_CAST (demux), s)); + } else { + GList *failover = NULL; - gst_m3u8_client_set_current (demux->client, demux->client->main->lists->data); - gst_hls_demux_update_playlist (demux, TRUE); - GST_INFO_OBJECT (demux, "Client is %s, switching to bitrate %d", - is_fast ? "fast" : "slow", demux->client->current->bandwidth); + GST_INFO_OBJECT (demux, "Unable to update playlist. Switching back"); + GST_M3U8_CLIENT_LOCK (demux->client); - s = gst_structure_new ("playlist", - "uri", G_TYPE_STRING, demux->client->current->uri, - "bitrate", G_TYPE_INT, demux->client->current->bandwidth, NULL); - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_element (GST_OBJECT_CAST (demux), s)); + failover = g_list_previous (current_variant); + if (failover && new_bandwidth == GST_M3U8 (failover->data)->bandwidth) { + current_variant = failover; + goto retry_failover_protection; + } + + demux->client->main->current_variant = previous_variant; + GST_M3U8_CLIENT_UNLOCK (demux->client); + gst_m3u8_client_set_current (demux->client, previous_variant->data); + /* Try a lower bitrate (or stop if we just tried the lowest) */ + if (new_bandwidth == + GST_M3U8 (g_list_first (demux->client->main->lists)->data)->bandwidth) + return FALSE; + else + return gst_hls_demux_change_playlist (demux, new_bandwidth - 1); + } + + /* Force typefinding since we might have changed media type */ + demux->do_typefind = TRUE; return TRUE; } @@ -970,7 +1173,8 @@ gst_hls_demux_schedule (GstHLSDemux * demux) /* schedule the next update using the target duration field of the * playlist */ g_time_val_add (&demux->next_update, - demux->client->current->targetduration * update_factor * 1000000); + gst_m3u8_client_get_target_duration (demux->client) + / GST_SECOND * G_USEC_PER_SEC * update_factor); GST_DEBUG_OBJECT (demux, "Next update scheduled at %s", g_time_val_to_iso8601 (&demux->next_update)); @@ -981,76 +1185,192 @@ static gboolean gst_hls_demux_switch_playlist (GstHLSDemux * demux) { GTimeVal now; - gint64 diff, limit; - - g_get_current_time (&now); - if (!demux->client->main->lists) + GstClockTime diff; + gsize size; + gint bitrate; + GstFragment *fragment = g_queue_peek_tail (demux->queue); + + GST_M3U8_CLIENT_LOCK (demux->client); + if (!demux->client->main->lists) { + GST_M3U8_CLIENT_UNLOCK (demux->client); return TRUE; + } + GST_M3U8_CLIENT_UNLOCK (demux->client); /* compare the time when the fragment was downloaded with the time when it was * scheduled */ - diff = (GST_TIMEVAL_TO_TIME (demux->next_update) - GST_TIMEVAL_TO_TIME (now)); - limit = demux->client->current->targetduration * GST_SECOND * - demux->bitrate_switch_tol; - - /* if we are on time switch to a higher bitrate */ - if (diff > limit) { - gst_hls_demux_change_playlist (demux, TRUE); - } else if (diff < 0) { - /* if the client is too slow wait until it has accumulated a certain delay to - * switch to a lower bitrate */ - demux->accumulated_delay -= diff; - if (demux->accumulated_delay >= limit) { - gst_hls_demux_change_playlist (demux, FALSE); - } else if (demux->accumulated_delay < 0) { - demux->accumulated_delay = 0; + g_get_current_time (&now); + diff = (GST_TIMEVAL_TO_TIME (now) - GST_TIMEVAL_TO_TIME (demux->next_update)); + size = gst_fragment_get_total_size (fragment); + bitrate = (size * 8) / ((double) diff / GST_SECOND); + + GST_DEBUG ("Downloaded %d bytes in %" GST_TIME_FORMAT ". Bitrate is : %d", + size, GST_TIME_ARGS (diff), bitrate); + + return gst_hls_demux_change_playlist (demux, bitrate * demux->bitrate_limit); +} + +static gboolean +gst_hls_demux_decrypt_buffer_list (GstHLSDemux * demux, + GstBufferList * buffer_list) +{ + GstBufferListIterator *it; + gint remain_size; + GstBuffer *buf, *remained_buf, *in_buf, *out_buf; + gint in_size, out_size; + + remained_buf = NULL; + it = gst_buffer_list_iterate (buffer_list); + gst_buffer_list_iterator_next_group (it); + while (buf = gst_buffer_list_iterator_next (it)) { + if (remained_buf) { + in_buf = gst_buffer_merge (remained_buf, buf); + gst_buffer_unref (remained_buf); + remained_buf = NULL; + } else { + in_buf = buf; + } + + in_size = GST_BUFFER_SIZE (in_buf); + remain_size = in_size % GST_HLS_DEMUX_AES_BLOCK_SIZE; + + if (remain_size) { + remained_buf = gst_buffer_new_and_alloc (remain_size); + memcpy (GST_BUFFER_DATA (remained_buf), + GST_BUFFER_DATA (in_buf) + in_size - remain_size, remain_size); } + + out_size = in_size - remain_size + GST_HLS_DEMUX_AES_BLOCK_SIZE; + out_buf = gst_buffer_new_and_alloc (out_size); + + if (!gst_m3u8_client_decrypt_update (demux->client, GST_BUFFER_DATA (out_buf), + &out_size, GST_BUFFER_DATA (in_buf), in_size - remain_size)) { + gst_buffer_unref (in_buf); + gst_buffer_unref (out_buf); + gst_buffer_list_iterator_free (it); + return FALSE; + } + + GST_BUFFER_SIZE (out_buf) = out_size; + GST_BUFFER_TIMESTAMP (out_buf) = GST_CLOCK_TIME_NONE; + GST_BUFFER_DURATION (out_buf) = GST_CLOCK_TIME_NONE; + GST_BUFFER_FLAGS (out_buf) = GST_BUFFER_FLAGS (in_buf); + + gst_buffer_list_iterator_take (it, out_buf); + if (in_buf != buf) + gst_buffer_unref (in_buf); + } + if (remained_buf) { + GST_WARNING_OBJECT (demux, "remained buffer should be empty!"); + gst_buffer_unref (remained_buf); } + gst_buffer_list_iterator_free (it); + return TRUE; } static gboolean -gst_hls_demux_get_next_fragment (GstHLSDemux * demux, gboolean retry) +gst_hls_demux_get_next_fragment (GstHLSDemux * demux, gboolean caching) { - GstBuffer *buf; - guint avail; + GstFragment *download; const gchar *next_fragment_uri; + GstM3U8Key *next_fragment_key; GstClockTime duration; + GstClockTime timestamp; + GstBufferList *buffer_list; + GstBufferListIterator *it; + GstBuffer *buf; gboolean discont; if (!gst_m3u8_client_get_next_fragment (demux->client, &discont, - &next_fragment_uri, &duration)) { + &next_fragment_uri, &duration, ×tamp, &next_fragment_key)) { GST_INFO_OBJECT (demux, "This playlist doesn't contain more fragments"); demux->end_of_playlist = TRUE; - GST_TASK_SIGNAL (demux->task); + gst_task_start (demux->stream_task); return FALSE; } + if (next_fragment_key && !next_fragment_key->data) { + GST_INFO_OBJECT (demux, "Fetching next fragment key %s", + next_fragment_key->uri); + +#ifdef GST_EXT_HLS_MODIFICATION + download = gst_uri_downloader_fetch_uri (demux->downloader, + next_fragment_key->uri, &demux->cookies); +#else + download = gst_uri_downloader_fetch_uri (demux->downloader, + next_fragment_key->uri); +#endif + + if (download == NULL) + goto error; + + buffer_list = gst_fragment_get_buffer_list (download); + it = gst_buffer_list_iterate (buffer_list); + gst_buffer_list_iterator_next_group (it); + buf = gst_buffer_list_iterator_merge_group (it); + next_fragment_key->data = GST_BUFFER_DATA (buf); + gst_buffer_list_iterator_free (it); + gst_buffer_list_unref (buffer_list); + + gst_m3u8_client_decrypt_init (demux->client, next_fragment_key); + } + GST_INFO_OBJECT (demux, "Fetching next fragment %s", next_fragment_uri); - if (!gst_hls_demux_fetch_location (demux, next_fragment_uri)) - return FALSE; +#ifdef GST_EXT_HLS_MODIFICATION + download = gst_uri_downloader_fetch_uri (demux->downloader, + next_fragment_uri, &demux->cookies); +#else + download = gst_uri_downloader_fetch_uri (demux->downloader, + next_fragment_uri); +#endif + + if (download == NULL) + goto error; + + buffer_list = gst_fragment_get_buffer_list (download); + + if (next_fragment_key && next_fragment_key->data) { + if (!gst_hls_demux_decrypt_buffer_list (demux, buffer_list)) + goto error; + } - avail = gst_adapter_available (demux->download); - buf = gst_adapter_take_buffer (demux->download, avail); + buf = gst_buffer_list_get (buffer_list, 0, 0); GST_BUFFER_DURATION (buf) = duration; + GST_BUFFER_TIMESTAMP (buf) = timestamp; - if (G_UNLIKELY (demux->input_caps == NULL)) { - demux->input_caps = gst_type_find_helper_for_buffer (NULL, buf, NULL); - if (demux->input_caps) { - gst_pad_set_caps (demux->srcpad, demux->input_caps); + /* We actually need to do this every time we switch bitrate */ + if (G_UNLIKELY (demux->do_typefind)) { + GstCaps *caps = gst_type_find_helper_for_buffer (NULL, buf, NULL); + + if (!demux->input_caps || !gst_caps_is_equal (caps, demux->input_caps)) { + gst_caps_replace (&demux->input_caps, caps); + /* gst_pad_set_caps (demux->srcpad, demux->input_caps); */ GST_INFO_OBJECT (demux, "Input source caps: %" GST_PTR_FORMAT, demux->input_caps); + demux->do_typefind = FALSE; } + gst_caps_unref (caps); } + gst_buffer_set_caps (buf, demux->input_caps); if (discont) { GST_DEBUG_OBJECT (demux, "Marking fragment as discontinuous"); GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT); } - g_queue_push_tail (demux->queue, buf); - GST_TASK_SIGNAL (demux->task); - gst_adapter_clear (demux->download); + g_queue_push_tail (demux->queue, download); + gst_buffer_list_unref (buffer_list); + if (!caching) { + GST_TASK_SIGNAL (demux->updates_task); + gst_task_start (demux->stream_task); + } return TRUE; + +error: + { + gst_hls_demux_stop (demux); + return FALSE; + } } diff --git a/gst/hls/gsthlsdemux.h b/gst/hls/gsthlsdemux.h index caf6437..a33e1c7 100644 --- a/gst/hls/gsthlsdemux.h +++ b/gst/hls/gsthlsdemux.h @@ -27,6 +27,8 @@ #include #include #include "m3u8.h" +#include "gstfragmented.h" +#include "gsturidownloader.h" G_BEGIN_DECLS #define GST_TYPE_HLS_DEMUX \ @@ -42,6 +44,8 @@ G_BEGIN_DECLS typedef struct _GstHLSDemux GstHLSDemux; typedef struct _GstHLSDemuxClass GstHLSDemuxClass; +#define GST_HLS_DEMUX_AES_BLOCK_SIZE 16 + /** * GstHLSDemux: * @@ -51,42 +55,41 @@ struct _GstHLSDemux { GstElement parent; - GstTask *task; - GStaticRecMutex task_lock; GstPad *srcpad; GstPad *sinkpad; + GstBuffer *playlist; GstCaps *input_caps; + GstUriDownloader *downloader; GstM3U8Client *client; /* M3U8 client */ GQueue *queue; /* Queue storing the fetched fragments */ gboolean need_cache; /* Wheter we need to cache some fragments before starting to push data */ gboolean end_of_playlist; - + gboolean do_typefind; /* Whether we need to typefind the next buffer */ /* Properties */ guint fragments_cache; /* number of fragments needed to be cached to start playing */ - gfloat bitrate_switch_tol; /* tolerance with respect to the fragment duration to switch the bitarate*/ + gfloat bitrate_limit; /* limit of the available bitrate to use */ + guint connection_speed; /* Network connection speed in kbps (0 = unknown) */ - /* Updates thread */ - GThread *updates_thread; /* Thread handling the playlist and fragments updates */ - GMutex *thread_lock; /* Thread lock */ - GCond *thread_cond; /* Signals the thread to quit */ - gboolean thread_return; /* Instructs the thread to return after the thread_quit condition is meet */ - GTimeVal next_update; /* Time of the next update */ - gint64 accumulated_delay; /* Delay accumulated fetching fragments, used to decide a playlist switch */ + /* Streaming task */ + GstTask *stream_task; + GStaticRecMutex stream_lock; + gboolean stop_stream_task; - /* Fragments fetcher */ - GstElement *fetcher; - GstBus *fetcher_bus; - GstPad *fetcherpad; - GMutex *fetcher_lock; - GCond *fetcher_cond; - GTimeVal *timeout; - gboolean fetcher_error; - gboolean stopping_fetcher; + /* Updates task */ + GstTask *updates_task; + GStaticRecMutex updates_lock; + GMutex *updates_timed_lock; + GTimeVal next_update; /* Time of the next update */ gboolean cancelled; - GstAdapter *download; + /* Position in the stream */ + GstClockTime position_shift; + gboolean need_segment; +#ifdef GST_EXT_HLS_MODIFICATION + gchar **cookies; +#endif }; struct _GstHLSDemuxClass diff --git a/gst/hls/gsturidownloader.c b/gst/hls/gsturidownloader.c new file mode 100644 index 0000000..4f86a5e --- /dev/null +++ b/gst/hls/gsturidownloader.c @@ -0,0 +1,365 @@ +/* GStreamer + * Copyright (C) 2011 Andoni Morales Alastruey + * + * gstfragment.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. + */ + +#include +#include "gstfragmented.h" +#include "gstfragment.h" +#include "gsturidownloader.h" + +GST_DEBUG_CATEGORY_STATIC (uridownloader_debug); +#define GST_CAT_DEFAULT (uridownloader_debug) + +#define GST_URI_DOWNLOADER_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ + GST_TYPE_URI_DOWNLOADER, GstUriDownloaderPrivate)) + +struct _GstUriDownloaderPrivate +{ + /* Fragments fetcher */ + GstElement *urisrc; + GstBus *bus; + GstPad *pad; + GTimeVal *timeout; + GstFragment *download; + GMutex *lock; + GCond *cond; +}; + +static void gst_uri_downloader_finalize (GObject * object); +static void gst_uri_downloader_dispose (GObject * object); + +static GstFlowReturn gst_uri_downloader_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_uri_downloader_sink_event (GstPad * pad, GstEvent * event); +static GstBusSyncReply gst_uri_downloader_bus_handler (GstBus * bus, + GstMessage * message, gpointer data); + +static GstStaticPadTemplate sinkpadtemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +#define _do_init \ +{ \ + GST_DEBUG_CATEGORY_INIT (uridownloader_debug, "uridownloader", 0, "URI downloader"); \ +} + +G_DEFINE_TYPE_WITH_CODE (GstUriDownloader, gst_uri_downloader, GST_TYPE_OBJECT, + _do_init); + +static void +gst_uri_downloader_class_init (GstUriDownloaderClass * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + + g_type_class_add_private (klass, sizeof (GstUriDownloaderPrivate)); + + gobject_class->dispose = gst_uri_downloader_dispose; + gobject_class->finalize = gst_uri_downloader_finalize; +} + +static void +gst_uri_downloader_init (GstUriDownloader * downloader) +{ + downloader->priv = GST_URI_DOWNLOADER_GET_PRIVATE (downloader); + + /* Initialize the sink pad. This pad will be connected to the src pad of the + * element created with gst_element_make_from_uri and will handle the download */ + downloader->priv->pad = + gst_pad_new_from_static_template (&sinkpadtemplate, "sink"); + gst_pad_set_chain_function (downloader->priv->pad, + GST_DEBUG_FUNCPTR (gst_uri_downloader_chain)); + gst_pad_set_event_function (downloader->priv->pad, + GST_DEBUG_FUNCPTR (gst_uri_downloader_sink_event)); + gst_pad_set_element_private (downloader->priv->pad, downloader); + gst_pad_set_active (downloader->priv->pad, TRUE); + + /* Create a bus to handle error and warning message from the source element */ + downloader->priv->bus = gst_bus_new (); + + downloader->priv->lock = g_mutex_new (); + downloader->priv->cond = g_cond_new (); +} + +static void +gst_uri_downloader_dispose (GObject * object) +{ + GstUriDownloader *downloader = GST_URI_DOWNLOADER (object); + + if (downloader->priv->urisrc != NULL) { + gst_object_unref (downloader->priv->urisrc); + downloader->priv->urisrc = NULL; + } + + if (downloader->priv->bus != NULL) { + gst_object_unref (downloader->priv->bus); + downloader->priv->bus = NULL; + } + + if (downloader->priv->pad) { + gst_object_unref (downloader->priv->pad); + downloader->priv->pad = NULL; + } + + if (downloader->priv->download) { + g_object_unref (downloader->priv->download); + downloader->priv->download = NULL; + } + + G_OBJECT_CLASS (gst_uri_downloader_parent_class)->dispose (object); +} + +static void +gst_uri_downloader_finalize (GObject * object) +{ + GstUriDownloader *downloader = GST_URI_DOWNLOADER (object); + + g_mutex_free (downloader->priv->lock); + g_cond_free (downloader->priv->cond); + + G_OBJECT_CLASS (gst_uri_downloader_parent_class)->finalize (object); +} + +GstUriDownloader * +gst_uri_downloader_new (void) +{ + return g_object_new (GST_TYPE_URI_DOWNLOADER, NULL); +} + +static gboolean +gst_uri_downloader_sink_event (GstPad * pad, GstEvent * event) +{ + gboolean ret = FALSE; + GstUriDownloader *downloader; + + downloader = GST_URI_DOWNLOADER (gst_pad_get_element_private (pad)); + + switch (event->type) { + case GST_EVENT_EOS:{ + GST_OBJECT_LOCK (downloader); + GST_DEBUG_OBJECT (downloader, "Got EOS on the fetcher pad"); + if (downloader->priv->download != NULL) { + /* signal we have fetched the URI */ + downloader->priv->download->completed = TRUE; + downloader->priv->download->download_stop_time = + gst_util_get_timestamp (); + GST_OBJECT_UNLOCK (downloader); + GST_DEBUG_OBJECT (downloader, "Signaling chain funtion"); + g_cond_signal (downloader->priv->cond); + } else { + GST_OBJECT_UNLOCK (downloader); + } + gst_event_unref (event); + break; + } + default: + ret = gst_pad_event_default (pad, event); + break; + } + + return ret; +} + +static GstBusSyncReply +gst_uri_downloader_bus_handler (GstBus * bus, + GstMessage * message, gpointer data) +{ + GstUriDownloader *downloader = (GstUriDownloader *) (data); + + if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR || + GST_MESSAGE_TYPE (message) == GST_MESSAGE_WARNING) { + GError *err = NULL; + gchar *dbg_info = NULL; + + gst_message_parse_error (message, &err, &dbg_info); + GST_WARNING_OBJECT (downloader, + "Received error: %s from %s, the download will be cancelled", + GST_OBJECT_NAME (message->src), err->message); + GST_DEBUG ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none"); + g_error_free (err); + g_free (dbg_info); + + /* remove the sync handler to avoid duplicated messages */ + gst_bus_set_sync_handler (downloader->priv->bus, NULL, NULL); + gst_uri_downloader_cancel (downloader); + } + + gst_message_unref (message); + return GST_BUS_DROP; +} + +static GstFlowReturn +gst_uri_downloader_chain (GstPad * pad, GstBuffer * buf) +{ + GstUriDownloader *downloader; + + downloader = GST_URI_DOWNLOADER (gst_pad_get_element_private (pad)); + + /* HTML errors (404, 500, etc...) are also pushed through this pad as + * response but the source element will also post a warning or error message + * in the bus, which is handled synchronously cancelling the download. + */ + GST_OBJECT_LOCK (downloader); + if (downloader->priv->download == NULL) { + /* Download cancelled, quit */ + GST_OBJECT_UNLOCK (downloader); + goto done; + } + + GST_LOG_OBJECT (downloader, "The uri fetcher received a new buffer " + "of size %u", GST_BUFFER_SIZE (buf)); + if (!gst_fragment_add_buffer (downloader->priv->download, buf)) + GST_WARNING_OBJECT (downloader, "Could not add buffer to fragment"); + GST_OBJECT_UNLOCK (downloader); + +done: + { + return GST_FLOW_OK; + } +} + +static void +gst_uri_downloader_stop (GstUriDownloader * downloader) +{ + GstPad *pad; + + GST_DEBUG_OBJECT (downloader, "Stopping source element"); + + /* remove the bus' sync handler */ + gst_bus_set_sync_handler (downloader->priv->bus, NULL, NULL); + /* unlink the source element from the internal pad */ + pad = gst_pad_get_peer (downloader->priv->pad); + if (pad) { + gst_pad_unlink (pad, downloader->priv->pad); + gst_object_unref (pad); + } + /* set the element state to NULL */ + gst_element_set_state (downloader->priv->urisrc, GST_STATE_NULL); + gst_element_get_state (downloader->priv->urisrc, NULL, NULL, + GST_CLOCK_TIME_NONE); +} + +void +gst_uri_downloader_cancel (GstUriDownloader * downloader) +{ + GST_OBJECT_LOCK (downloader); + if (downloader->priv->download != NULL) { + GST_DEBUG_OBJECT (downloader, "Cancelling download"); + g_object_unref (downloader->priv->download); + downloader->priv->download = NULL; + GST_OBJECT_UNLOCK (downloader); + GST_DEBUG_OBJECT (downloader, "Signaling chain funtion"); + g_cond_signal (downloader->priv->cond); + } else { + GST_OBJECT_UNLOCK (downloader); + GST_DEBUG_OBJECT (downloader, + "Trying to cancell a download that was alredy cancelled"); + } +} + +static gboolean +gst_uri_downloader_set_uri (GstUriDownloader * downloader, const gchar * uri) +{ + GstPad *pad; + + if (!gst_uri_is_valid (uri)) + return FALSE; + + GST_DEBUG_OBJECT (downloader, "Creating source element for the URI:%s", uri); + downloader->priv->urisrc = gst_element_make_from_uri (GST_URI_SRC, uri, NULL); + if (!downloader->priv->urisrc) + return FALSE; + + /* add a sync handler for the bus messages to detect errors in the download */ + gst_element_set_bus (GST_ELEMENT (downloader->priv->urisrc), + downloader->priv->bus); + gst_bus_set_sync_handler (downloader->priv->bus, + gst_uri_downloader_bus_handler, downloader); + + pad = gst_element_get_static_pad (downloader->priv->urisrc, "src"); + if (!pad) + return FALSE; + gst_pad_link (pad, downloader->priv->pad); + gst_object_unref (pad); + return TRUE; +} + +GstFragment * +#ifdef GST_EXT_HLS_MODIFICATION +gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri, gchar ***cookies) +#else +gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri) +#endif +{ + GstStateChangeReturn ret; + GstFragment *download = NULL; + + g_mutex_lock (downloader->priv->lock); + + if (!gst_uri_downloader_set_uri (downloader, uri)) { + goto quit; + } + + downloader->priv->download = gst_fragment_new (); + + ret = gst_element_set_state (downloader->priv->urisrc, GST_STATE_PLAYING); + if (ret == GST_STATE_CHANGE_FAILURE) { + g_object_unref (downloader->priv->download); + downloader->priv->download = NULL; + goto quit; + } + +#ifdef GST_EXT_HLS_MODIFICATION + g_object_set (downloader->priv->urisrc, "cookies", *cookies, NULL); +#endif + + /* wait until: + * - the download succeed (EOS in the src pad) + * - the download failed (Error message on the fetcher bus) + * - the download was canceled + */ + GST_DEBUG_OBJECT (downloader, "Waiting to fetch the URI"); + g_cond_wait (downloader->priv->cond, downloader->priv->lock); + +#ifdef GST_EXT_HLS_MODIFICATION + if (*cookies) + g_strfreev (*cookies); + g_object_get (downloader->priv->urisrc, "cookies", cookies, NULL); +#endif + + GST_OBJECT_LOCK (downloader); + download = downloader->priv->download; + downloader->priv->download = NULL; + GST_OBJECT_UNLOCK (downloader); + + if (download != NULL) + GST_INFO_OBJECT (downloader, "URI fetched successfully"); + else + GST_INFO_OBJECT (downloader, "Error fetching URI"); + +quit: + { + gst_uri_downloader_stop (downloader); + g_mutex_unlock (downloader->priv->lock); + return download; + } +} diff --git a/gst/hls/gsturidownloader.h b/gst/hls/gsturidownloader.h new file mode 100644 index 0000000..5886215 --- /dev/null +++ b/gst/hls/gsturidownloader.h @@ -0,0 +1,68 @@ +/* GStreamer + * Copyright (C) 2011 Andoni Morales Alastruey + * + * gsturidownloader.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. + * + * Youshould 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 __GSTURI_DOWNLOADER_H__ +#define __GSTURI_DOWNLOADER_H__ + +#include +#include +#include "gstfragment.h" + +G_BEGIN_DECLS + +#define GST_TYPE_URI_DOWNLOADER (gst_uri_downloader_get_type()) +#define GST_URI_DOWNLOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_URI_DOWNLOADER,GstUriDownloader)) +#define GST_URI_DOWNLOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_URI_DOWNLOADER,GstUriDownloaderClass)) +#define GST_IS_URI_DOWNLOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_URI_DOWNLOADER)) +#define GST_IS_URI_DOWNLOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_URI_DOWNLOADER)) + +typedef struct _GstUriDownloader GstUriDownloader; +typedef struct _GstUriDownloaderPrivate GstUriDownloaderPrivate; +typedef struct _GstUriDownloaderClass GstUriDownloaderClass; + +struct _GstUriDownloader +{ + GstObject parent; + + GstUriDownloaderPrivate *priv; +}; + +struct _GstUriDownloaderClass +{ + GstObjectClass parent_class; + + /*< private >*/ + gpointer _gst_reserved[GST_PADDING]; +}; + +GType gst_uri_downloader_get_type (void); + +GstUriDownloader * gst_uri_downloader_new (void); +#ifdef GST_EXT_HLS_MODIFICATION +GstFragment * gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri, gchar ***cookies); +#else +GstFragment * gst_uri_downloader_fetch_uri (GstUriDownloader * downloader, const gchar * uri); +#endif +void gst_uri_downloader_cancel (GstUriDownloader *downloader); +void gst_uri_downloader_free (GstUriDownloader *downloader); + +G_END_DECLS +#endif /* __GSTURIDOWNLOADER_H__ */ diff --git a/gst/hls/m3u8.c b/gst/hls/m3u8.c index cb6bf59..a2a57e6 100644 --- a/gst/hls/m3u8.c +++ b/gst/hls/m3u8.c @@ -20,9 +20,11 @@ */ #include +#include #include #include +#include #include "gstfragmented.h" #include "m3u8.h" @@ -33,8 +35,11 @@ static void gst_m3u8_free (GstM3U8 * m3u8); static gboolean gst_m3u8_update (GstM3U8 * m3u8, gchar * data, gboolean * updated); static GstM3U8MediaFile *gst_m3u8_media_file_new (gchar * uri, - gchar * title, gint duration, guint sequence); + gchar * title, GstClockTime duration, guint sequence); static void gst_m3u8_media_file_free (GstM3U8MediaFile * self); +static GstM3U8Key *gst_m3u8_key_new (GstM3U8EncryptionMethod method, + gchar * uri, guint8 *iv, guint sequence); +static void gst_m3u8_key_free (GstM3U8Key * self); static GstM3U8 * gst_m3u8_new (void) @@ -64,10 +69,14 @@ gst_m3u8_free (GstM3U8 * self) g_free (self->uri); g_free (self->allowcache); g_free (self->codecs); + g_free (self->cipher_ctx); g_list_foreach (self->files, (GFunc) gst_m3u8_media_file_free, NULL); g_list_free (self->files); + g_list_foreach (self->keys, (GFunc) gst_m3u8_key_free, NULL); + g_list_free (self->keys); + g_free (self->last_data); g_list_foreach (self->lists, (GFunc) gst_m3u8_free, NULL); g_list_free (self->lists); @@ -76,7 +85,7 @@ gst_m3u8_free (GstM3U8 * self) } static GstM3U8MediaFile * -gst_m3u8_media_file_new (gchar * uri, gchar * title, gint duration, +gst_m3u8_media_file_new (gchar * uri, gchar * title, GstClockTime duration, guint sequence) { GstM3U8MediaFile *file; @@ -100,29 +109,162 @@ gst_m3u8_media_file_free (GstM3U8MediaFile * self) g_free (self); } +static GstM3U8Key * +gst_m3u8_key_new (GstM3U8EncryptionMethod method, gchar * uri, + guint8 *iv, guint sequence) +{ + GstM3U8Key *key; + + key = g_new0 (GstM3U8Key, 1); + key->method = method; + key->uri = uri; + key->iv = iv; + key->sequence = sequence; + key->data = NULL; + + return key; +} + +static void +gst_m3u8_key_free (GstM3U8Key * self) +{ + g_return_if_fail (self != NULL); + + g_free (self->uri); + g_free (self->iv); + g_free (self->data); + g_free (self); +} + static gboolean int_from_string (gchar * ptr, gchar ** endptr, gint * val) { gchar *end; + glong ret; + + g_return_val_if_fail (ptr != NULL, FALSE); + g_return_val_if_fail (val != NULL, FALSE); + + errno = 0; + ret = strtol (ptr, &end, 10); + if ((errno == ERANGE && (ret == LONG_MAX || ret == LONG_MIN)) + || (errno != 0 && ret == 0)) { + GST_WARNING ("%s", g_strerror (errno)); + return FALSE; + } + + if (ret > G_MAXINT) { + GST_WARNING ("%s", g_strerror (ERANGE)); + return FALSE; + } + + if (endptr) + *endptr = end; + + *val = (gint) ret; + + return end != ptr; +} + +static gboolean +double_from_string (gchar * ptr, gchar ** endptr, gdouble * val) +{ + gchar *end; + gdouble ret; g_return_val_if_fail (ptr != NULL, FALSE); g_return_val_if_fail (val != NULL, FALSE); errno = 0; - *val = strtol (ptr, &end, 10); - if ((errno == ERANGE && (*val == LONG_MAX || *val == LONG_MIN)) - || (errno != 0 && *val == 0)) { + ret = strtod (ptr, &end); + if ((errno == ERANGE && (ret == HUGE_VAL || ret == -HUGE_VAL)) + || (errno != 0 && ret == 0)) { GST_WARNING ("%s", g_strerror (errno)); return FALSE; } + if (!isfinite (ret)) { + GST_WARNING ("%s", g_strerror (ERANGE)); + return FALSE; + } + if (endptr) *endptr = end; + *val = (gint) ret; + return end != ptr; } static gboolean +iv_from_string (gchar * ptr, gchar ** endptr, guint8 * val) +{ + guint8 idx; + guint8 hex; + + g_return_val_if_fail (ptr != NULL, FALSE); + g_return_val_if_fail (val != NULL, FALSE); + + if (*ptr == '0' && (*(ptr + 1) == 'x' || *(ptr + 1) == 'X')) { + ptr = ptr + 2; /* skip 0x or 0X */ + } + + for (idx = 0; idx < GST_M3U8_IV_LEN; idx++) { + hex = *ptr++ - '0'; + if (hex >= 16) + return FALSE; + *(val + idx) = hex * 16; + hex = *ptr++ - '0'; + if (hex >= 16) + return FALSE; + *(val + idx) += hex; + } + + if (endptr) + *endptr = ptr; + + return TRUE; +} + +static gboolean +iv_from_uint (guint uint, guint8 * val) +{ + guint8 idx; + + g_return_val_if_fail (val != NULL, FALSE); + + val = val + GST_M3U8_IV_LEN - 1; + for (idx = 0; idx < sizeof(guint); idx++) { + *val-- = (guint8)uint; + uint = uint >> 8; + } + + return TRUE; +} + +static gboolean +make_valid_uri (gchar *prefix, gchar *suffix, gchar **uri) +{ + gchar *slash; + + if (!prefix) { + GST_WARNING ("uri prefix not set, can't build a valid uri"); + return FALSE; + } + slash = g_utf8_strrchr (prefix, -1, '/'); + if (!slash) { + GST_WARNING ("Can't build a valid uri"); + return FALSE; + } + + *slash = '\0'; + *uri = g_strdup_printf ("%s/%s", prefix, suffix); + *slash = '/'; + + return TRUE; +} + +static gboolean parse_attributes (gchar ** ptr, gchar ** a, gchar ** v) { gchar *end, *p; @@ -177,7 +319,8 @@ gst_m3u8_compare_playlist_by_bitrate (gconstpointer a, gconstpointer b) static gboolean gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) { - gint val, duration; + gint val; + GstClockTime duration; gchar *title, *end; // gboolean discontinuity; GstM3U8 *list; @@ -198,6 +341,7 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) if (!g_str_has_prefix (data, "#EXTM3U")) { GST_WARNING ("Data doesn't start with #EXTM3U"); + *updated = FALSE; g_free (data); return FALSE; } @@ -211,38 +355,39 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) self->files = NULL; } + if (self->keys) { + g_list_foreach (self->keys, (GFunc) gst_m3u8_key_free, NULL); + g_list_free (self->keys); + self->keys = NULL; + } + list = NULL; - duration = -1; + duration = 0; title = NULL; data += 7; while (TRUE) { - end = g_utf8_strchr (data, -1, '\n'); /* FIXME: support \r\n */ + end = g_utf8_strchr (data, -1, '\n'); if (end) *end = '\0'; if (data[0] != '#') { - if (duration < 0 && list == NULL) { + gchar *r; + + if (duration <= 0 && list == NULL) { GST_LOG ("%s: got line without EXTINF or EXTSTREAMINF, dropping", data); goto next_line; } if (!gst_uri_is_valid (data)) { - gchar *slash; - if (!self->uri) { - GST_WARNING ("uri not set, can't build a valid uri"); - goto next_line; - } - slash = g_utf8_strrchr (self->uri, -1, '/'); - if (!slash) { - GST_WARNING ("Can't build a valid uri"); + if (!make_valid_uri(self->uri, data, &data)) goto next_line; - } - - *slash = '\0'; - data = g_strdup_printf ("%s/%s", self->uri, data); - *slash = '/'; - } else + } else { data = g_strdup (data); + } + + r = g_utf8_strchr (data, -1, '\r'); + if (r) + *r = '\0'; if (list != NULL) { if (g_list_find_custom (self->lists, data, @@ -260,7 +405,7 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) file = gst_m3u8_media_file_new (data, title, duration, self->mediasequence++); - duration = -1; + duration = 0; title = NULL; self->files = g_list_append (self->files, file); } @@ -304,7 +449,7 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) } } else if (g_str_has_prefix (data, "#EXT-X-TARGETDURATION:")) { if (int_from_string (data + 22, &data, &val)) - self->targetduration = val; + self->targetduration = val * GST_SECOND; } else if (g_str_has_prefix (data, "#EXT-X-MEDIA-SEQUENCE:")) { if (int_from_string (data + 22, &data, &val)) self->mediasequence = val; @@ -317,11 +462,12 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) g_free (self->allowcache); self->allowcache = g_strdup (data + 19); } else if (g_str_has_prefix (data, "#EXTINF:")) { - if (!int_from_string (data + 8, &data, &val)) { + gdouble fval; + if (!double_from_string (data + 8, &data, &fval)) { GST_WARNING ("Can't read EXTINF duration"); goto next_line; } - duration = val; + duration = fval * (gdouble) GST_SECOND; if (duration > self->targetduration) GST_WARNING ("EXTINF duration > TARGETDURATION"); if (!data || *data != ',') @@ -331,6 +477,72 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) g_free (title); title = g_strdup (data); } + } else if (g_str_has_prefix (data, "#EXT-X-KEY:")) { + gchar *v, *a; + GstM3U8Key *key; + GstM3U8EncryptionMethod encryption; + gchar *key_uri; + guint8 *iv; + + data = data + 11; + encryption = GST_M3U8_ENCRYPTED_NONE; + key_uri = NULL; + iv = NULL; + while (data && parse_attributes (&data, &a, &v)) { + if (g_str_equal (a, "METHOD")) { + if (g_str_equal (v, "NONE")) { + encryption = GST_M3U8_ENCRYPTED_NONE; + } else if (g_str_equal (v, "AES-128")) { + encryption = GST_M3U8_ENCRYPTED_AES_128; + } else { + GST_WARNING ("Unsuppported encryption method..., skipping"); + goto next_line; + } + } else if (g_str_equal (a, "URI")) { + gchar *dq, *r; + + if (*v == '"') { + v = v + 1; /* skip first double quote in uri */ + } + dq = g_utf8_strrchr (v, -1, '"'); + if (dq) + *dq = '\0'; + if (!gst_uri_is_valid (v)) { + if (!make_valid_uri(self->uri, v, &key_uri)) + goto next_line; + } else { + key_uri = g_strdup(v); + } + r = g_utf8_strchr (v, -1, '\r'); + if (r) + *r = '\0'; + } else if (g_str_equal (a, "IV")) { + iv = g_malloc0 (GST_M3U8_IV_LEN); + if (!iv_from_string (data, &data, iv)) { + GST_WARNING ("Can't read IV"); + goto next_line; + } + } + } + if ((encryption != GST_M3U8_ENCRYPTED_NONE) && (key_uri != NULL)) { + if (iv == NULL) { + iv = g_malloc0 (GST_M3U8_IV_LEN); + if (!iv_from_uint (self->mediasequence, iv)) { + GST_WARNING ("Can't convert IV from sequence"); + goto next_line; + } + } + } else { + g_free(key_uri); + g_free(iv); + if (encryption != GST_M3U8_ENCRYPTED_NONE) { + GST_WARNING ("Key uri not set"); + goto next_line; + } + } + key = gst_m3u8_key_new (encryption, key_uri, iv, + self->mediasequence); + self->keys = g_list_prepend (self->keys, key); } else { GST_LOG ("Ignored line: %s", data); } @@ -342,11 +554,22 @@ gst_m3u8_update (GstM3U8 * self, gchar * data, gboolean * updated) } /* redorder playlists by bitrate */ - if (self->lists) + if (self->lists) { + gchar *top_variant_uri = NULL; + + if (!self->current_variant) + top_variant_uri = GST_M3U8 (self->lists->data)->uri; + else + top_variant_uri = GST_M3U8 (self->current_variant->data)->uri; + self->lists = g_list_sort (self->lists, (GCompareFunc) gst_m3u8_compare_playlist_by_bitrate); + self->current_variant = g_list_find_custom (self->lists, top_variant_uri, + (GCompareFunc) _m3u8_compare_uri); + } + return TRUE; } @@ -362,6 +585,7 @@ gst_m3u8_client_new (const gchar * uri) client->current = NULL; client->sequence = -1; client->update_failed_count = 0; + client->lock = g_mutex_new (); gst_m3u8_set_uri (client->main, g_strdup (uri)); return client; @@ -373,6 +597,7 @@ gst_m3u8_client_free (GstM3U8Client * self) g_return_if_fail (self != NULL); gst_m3u8_free (self->main); + g_mutex_free (self->lock); g_free (self); } @@ -381,10 +606,12 @@ gst_m3u8_client_set_current (GstM3U8Client * self, GstM3U8 * m3u8) { g_return_if_fail (self != NULL); + GST_M3U8_CLIENT_LOCK (self); if (m3u8 != self->current) { self->current = m3u8; self->update_failed_count = 0; } + GST_M3U8_CLIENT_UNLOCK (self); } gboolean @@ -392,23 +619,25 @@ gst_m3u8_client_update (GstM3U8Client * self, gchar * data) { GstM3U8 *m3u8; gboolean updated = FALSE; + gboolean ret = FALSE; g_return_val_if_fail (self != NULL, FALSE); + GST_M3U8_CLIENT_LOCK (self); m3u8 = self->current ? self->current : self->main; if (!gst_m3u8_update (m3u8, data, &updated)) - return FALSE; + goto out; if (!updated) { self->update_failed_count++; - return FALSE; + goto out; } /* select the first playlist, for now */ if (!self->current) { if (self->main->lists) { - self->current = g_list_first (self->main->lists)->data; + self->current = self->main->current_variant->data; } else { self->current = self->main; } @@ -420,7 +649,10 @@ gst_m3u8_client_update (GstM3U8Client * self, gchar * data) GST_DEBUG ("Setting first sequence at %d", self->sequence); } - return TRUE; + ret = TRUE; +out: + GST_M3U8_CLIENT_UNLOCK (self); + return ret; } static gboolean @@ -432,9 +664,36 @@ _find_next (GstM3U8MediaFile * file, GstM3U8Client * client) return TRUE; } +static gboolean +_find_key (GstM3U8Key * key, GstM3U8Client * client) +{ + if (key->sequence <= client->sequence) + return FALSE; + return TRUE; +} + +void +gst_m3u8_client_get_current_position (GstM3U8Client * client, + GstClockTime * timestamp) +{ + GList *l; + GList *walk; + + l = g_list_find_custom (client->current->files, client, + (GCompareFunc) _find_next); + + *timestamp = 0; + for (walk = client->current->files; walk; walk = walk->next) { + if (walk == l) + break; + *timestamp += GST_M3U8_MEDIA_FILE (walk->data)->duration; + } +} + gboolean gst_m3u8_client_get_next_fragment (GstM3U8Client * client, - gboolean * discontinuity, const gchar ** uri, GstClockTime * duration) + gboolean * discontinuity, const gchar ** uri, GstClockTime * duration, + GstClockTime * timestamp, GstM3U8Key ** key) { GList *l; GstM3U8MediaFile *file; @@ -443,19 +702,34 @@ gst_m3u8_client_get_next_fragment (GstM3U8Client * client, g_return_val_if_fail (client->current != NULL, FALSE); g_return_val_if_fail (discontinuity != NULL, FALSE); + GST_M3U8_CLIENT_LOCK (client); GST_DEBUG ("Looking for fragment %d", client->sequence); l = g_list_find_custom (client->current->files, client, (GCompareFunc) _find_next); - if (l == NULL) + if (l == NULL) { + GST_M3U8_CLIENT_UNLOCK (client); return FALSE; + } + + gst_m3u8_client_get_current_position (client, timestamp); file = GST_M3U8_MEDIA_FILE (l->data); + *key = NULL; + if (client->current->keys) { + l = g_list_find_custom (client->current->keys, client, + (GCompareFunc) _find_key); + if (l && (GST_M3U8_KEY (l->data)->method != GST_M3U8_ENCRYPTED_NONE)) + *key = GST_M3U8_KEY (l->data); + } + *discontinuity = client->sequence != file->sequence; client->sequence = file->sequence + 1; *uri = file->uri; - *duration = file->duration * GST_SECOND; + *duration = file->duration; + + GST_M3U8_CLIENT_UNLOCK (client); return TRUE; } @@ -472,37 +746,134 @@ gst_m3u8_client_get_duration (GstM3U8Client * client) g_return_val_if_fail (client != NULL, GST_CLOCK_TIME_NONE); + GST_M3U8_CLIENT_LOCK (client); /* We can only get the duration for on-demand streams */ - if (!client->current->endlist) + if (!client->current->endlist) { + GST_M3U8_CLIENT_UNLOCK (client); return GST_CLOCK_TIME_NONE; + } g_list_foreach (client->current->files, (GFunc) _sum_duration, &duration); - return duration * GST_SECOND; + GST_M3U8_CLIENT_UNLOCK (client); + return duration; +} + +GstClockTime +gst_m3u8_client_get_target_duration (GstM3U8Client * client) +{ + GstClockTime duration = 0; + + g_return_val_if_fail (client != NULL, GST_CLOCK_TIME_NONE); + + GST_M3U8_CLIENT_LOCK (client); + duration = client->current->targetduration; + GST_M3U8_CLIENT_UNLOCK (client); + return duration; } const gchar * gst_m3u8_client_get_uri (GstM3U8Client * client) { + const gchar *uri; + g_return_val_if_fail (client != NULL, NULL); - return client->main->uri; + GST_M3U8_CLIENT_LOCK (client); + uri = client->main->uri; + GST_M3U8_CLIENT_UNLOCK (client); + return uri; +} + +const gchar * +gst_m3u8_client_get_current_uri (GstM3U8Client * client) +{ + const gchar *uri; + + g_return_val_if_fail (client != NULL, NULL); + + GST_M3U8_CLIENT_LOCK (client); + uri = client->current->uri; + GST_M3U8_CLIENT_UNLOCK (client); + return uri; } gboolean gst_m3u8_client_has_variant_playlist (GstM3U8Client * client) { + gboolean ret; + g_return_val_if_fail (client != NULL, FALSE); - return client->main->lists != NULL; + GST_M3U8_CLIENT_LOCK (client); + ret = (client->main->lists != NULL); + GST_M3U8_CLIENT_UNLOCK (client); + return ret; } gboolean gst_m3u8_client_is_live (GstM3U8Client * client) { + gboolean ret; + g_return_val_if_fail (client != NULL, FALSE); + GST_M3U8_CLIENT_LOCK (client); if (!client->current || client->current->endlist) + ret = FALSE; + else + ret = TRUE; + GST_M3U8_CLIENT_UNLOCK (client); + return ret; +} + +GList * +gst_m3u8_client_get_playlist_for_bitrate (GstM3U8Client * client, guint bitrate) +{ + GList *list, *current_variant; + + GST_M3U8_CLIENT_LOCK (client); + current_variant = client->main->current_variant; + + /* Go to the highest possible bandwidth allowed */ + while (GST_M3U8 (current_variant->data)->bandwidth < bitrate) { + list = g_list_next (current_variant); + if (!list) + break; + current_variant = list; + } + + while (GST_M3U8 (current_variant->data)->bandwidth > bitrate) { + list = g_list_previous (current_variant); + if (!list) + break; + current_variant = list; + } + GST_M3U8_CLIENT_UNLOCK (client); + + return current_variant; +} + +gboolean +gst_m3u8_client_decrypt_init (GstM3U8Client * client, GstM3U8Key * key) +{ + if (!client->current->cipher_ctx) + client->current->cipher_ctx = g_malloc0 (sizeof(EVP_CIPHER_CTX)); + + EVP_CIPHER_CTX_init (client->current->cipher_ctx); + if (key->method == GST_M3U8_ENCRYPTED_AES_128) { + return EVP_DecryptInit_ex (client->current->cipher_ctx, EVP_aes_128_cbc(), + NULL, key->data, key->iv); + } else { return FALSE; + } +} - return TRUE; +gboolean +gst_m3u8_client_decrypt_update (GstM3U8Client * client, guint8 * out_data, + gint * out_size, guint8 * in_data, gint in_size) +{ + g_return_val_if_fail (client->current->cipher_ctx != NULL, FALSE); + + return EVP_DecryptUpdate (client->current->cipher_ctx, out_data, out_size, + in_data, in_size); } diff --git a/gst/hls/m3u8.h b/gst/hls/m3u8.h index 7f37cdd..85a4b7e 100644 --- a/gst/hls/m3u8.h +++ b/gst/hls/m3u8.h @@ -24,20 +24,34 @@ #define __M3U8_H__ #include +#include G_BEGIN_DECLS typedef struct _GstM3U8 GstM3U8; typedef struct _GstM3U8MediaFile GstM3U8MediaFile; +typedef struct _GstM3U8Key GstM3U8Key; typedef struct _GstM3U8Client GstM3U8Client; +#define GST_M3U8(m) ((GstM3U8*)m) +#define GST_M3U8_KEY(k) ((GstM3U8Key*)k) #define GST_M3U8_MEDIA_FILE(f) ((GstM3U8MediaFile*)f) +#define GST_M3U8_CLIENT_LOCK(c) g_mutex_lock (c->lock); +#define GST_M3U8_CLIENT_UNLOCK(c) g_mutex_unlock (c->lock); + +#define GST_M3U8_IV_LEN 16 + +typedef enum { + GST_M3U8_ENCRYPTED_NONE, + GST_M3U8_ENCRYPTED_AES_128, +} GstM3U8EncryptionMethod; + struct _GstM3U8 { gchar *uri; gboolean endlist; /* if ENDLIST has been reached */ gint version; /* last EXT-X-VERSION */ - gint targetduration; /* last EXT-X-TARGETDURATION */ + GstClockTime targetduration; /* last EXT-X-TARGETDURATION */ gchar *allowcache; /* last EXT-X-ALLOWCACHE */ gint bandwidth; @@ -46,28 +60,41 @@ struct _GstM3U8 gint width; gint height; GList *files; + GList *keys; /*< private > */ gchar *last_data; GList *lists; /* list of GstM3U8 from the main playlist */ + GList *current_variant; /* Current variant playlist used */ GstM3U8 *parent; /* main playlist (if any) */ guint mediasequence; /* EXT-X-MEDIA-SEQUENCE & increased with new media file */ + EVP_CIPHER_CTX *cipher_ctx; }; struct _GstM3U8MediaFile { gchar *title; - gint duration; + GstClockTime duration; gchar *uri; guint sequence; /* the sequence nb of this file */ }; +struct _GstM3U8Key +{ + GstM3U8EncryptionMethod method; + gchar *uri; + guint8 *iv; + guint sequence; + guint8 *data; +}; + struct _GstM3U8Client { GstM3U8 *main; /* main playlist */ GstM3U8 *current; guint update_failed_count; gint sequence; /* the next sequence for this client */ + GMutex *lock; }; @@ -76,11 +103,22 @@ void gst_m3u8_client_free (GstM3U8Client * client); gboolean gst_m3u8_client_update (GstM3U8Client * client, gchar * data); void gst_m3u8_client_set_current (GstM3U8Client * client, GstM3U8 * m3u8); gboolean gst_m3u8_client_get_next_fragment (GstM3U8Client * client, - gboolean * discontinuity, const gchar ** uri, GstClockTime * duration); + gboolean * discontinuity, const gchar ** uri, GstClockTime * duration, + GstClockTime * timestamp, GstM3U8Key ** key); +void gst_m3u8_client_get_current_position (GstM3U8Client * client, + GstClockTime * timestamp); GstClockTime gst_m3u8_client_get_duration (GstM3U8Client * client); +GstClockTime gst_m3u8_client_get_target_duration (GstM3U8Client * client); const gchar *gst_m3u8_client_get_uri(GstM3U8Client * client); +const gchar *gst_m3u8_client_get_current_uri(GstM3U8Client * client); gboolean gst_m3u8_client_has_variant_playlist(GstM3U8Client * client); gboolean gst_m3u8_client_is_live(GstM3U8Client * client); +GList * gst_m3u8_client_get_playlist_for_bitrate (GstM3U8Client * client, + guint bitrate); +gboolean gst_m3u8_client_decrypt_init (GstM3U8Client * client, + GstM3U8Key * key); +gboolean gst_m3u8_client_decrypt_update (GstM3U8Client * client, + guint8 * out_data, gint * out_size, guint8 * in_data, gint in_size); G_END_DECLS #endif /* __M3U8_H__ */ diff --git a/gst/id3tag/Makefile.am b/gst/id3tag/Makefile.am index bb9c150..f2ed73d 100644 --- a/gst/id3tag/Makefile.am +++ b/gst/id3tag/Makefile.am @@ -2,7 +2,6 @@ plugin_LTLIBRARIES = libgstid3tag.la libgstid3tag_la_SOURCES = \ gstid3mux.c \ - gsttagmux.c \ id3tag.c libgstid3tag_la_CFLAGS = \ @@ -16,7 +15,7 @@ libgstid3tag_la_LIBADD = \ libgstid3tag_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstid3tag_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstid3mux.h gsttagmux.h id3tag.h +noinst_HEADERS = gstid3mux.h id3tag.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/id3tag/Makefile.in b/gst/id3tag/Makefile.in index 4fec1f6..ce3a6a9 100644 --- a/gst/id3tag/Makefile.in +++ b/gst/id3tag/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,16 +101,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstid3tag_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstid3tag_la_OBJECTS = libgstid3tag_la-gstid3mux.lo \ - libgstid3tag_la-gsttagmux.lo libgstid3tag_la-id3tag.lo + libgstid3tag_la-id3tag.lo libgstid3tag_la_OBJECTS = $(am_libgstid3tag_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstid3tag_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstid3tag_la_SOURCES) DIST_SOURCES = $(libgstid3tag_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -531,7 +558,6 @@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstid3tag.la libgstid3tag_la_SOURCES = \ gstid3mux.c \ - gsttagmux.c \ id3tag.c libgstid3tag_la_CFLAGS = \ @@ -544,7 +570,7 @@ libgstid3tag_la_LIBADD = \ libgstid3tag_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstid3tag_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstid3mux.h gsttagmux.h id3tag.h +noinst_HEADERS = gstid3mux.h id3tag.h all: all-am .SUFFIXES: @@ -610,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstid3tag.la: $(libgstid3tag_la_OBJECTS) $(libgstid3tag_la_DEPENDENCIES) +libgstid3tag.la: $(libgstid3tag_la_OBJECTS) $(libgstid3tag_la_DEPENDENCIES) $(EXTRA_libgstid3tag_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstid3tag_la_LINK) -rpath $(plugindir) $(libgstid3tag_la_OBJECTS) $(libgstid3tag_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -620,56 +646,42 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3tag_la-gstid3mux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3tag_la-gsttagmux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3tag_la-id3tag.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstid3tag_la-gstid3mux.lo: gstid3mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -MT libgstid3tag_la-gstid3mux.lo -MD -MP -MF $(DEPDIR)/libgstid3tag_la-gstid3mux.Tpo -c -o libgstid3tag_la-gstid3mux.lo `test -f 'gstid3mux.c' || echo '$(srcdir)/'`gstid3mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3tag_la-gstid3mux.Tpo $(DEPDIR)/libgstid3tag_la-gstid3mux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstid3mux.c' object='libgstid3tag_la-gstid3mux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstid3mux.c' object='libgstid3tag_la-gstid3mux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -c -o libgstid3tag_la-gstid3mux.lo `test -f 'gstid3mux.c' || echo '$(srcdir)/'`gstid3mux.c - -libgstid3tag_la-gsttagmux.lo: gsttagmux.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -MT libgstid3tag_la-gsttagmux.lo -MD -MP -MF $(DEPDIR)/libgstid3tag_la-gsttagmux.Tpo -c -o libgstid3tag_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3tag_la-gsttagmux.Tpo $(DEPDIR)/libgstid3tag_la-gsttagmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttagmux.c' object='libgstid3tag_la-gsttagmux.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -c -o libgstid3tag_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -c -o libgstid3tag_la-gstid3mux.lo `test -f 'gstid3mux.c' || echo '$(srcdir)/'`gstid3mux.c libgstid3tag_la-id3tag.lo: id3tag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -MT libgstid3tag_la-id3tag.lo -MD -MP -MF $(DEPDIR)/libgstid3tag_la-id3tag.Tpo -c -o libgstid3tag_la-id3tag.lo `test -f 'id3tag.c' || echo '$(srcdir)/'`id3tag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3tag_la-id3tag.Tpo $(DEPDIR)/libgstid3tag_la-id3tag.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='id3tag.c' object='libgstid3tag_la-id3tag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='id3tag.c' object='libgstid3tag_la-id3tag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -c -o libgstid3tag_la-id3tag.lo `test -f 'id3tag.c' || echo '$(srcdir)/'`id3tag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3tag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3tag_la_CFLAGS) $(CFLAGS) -c -o libgstid3tag_la-id3tag.lo `test -f 'id3tag.c' || echo '$(srcdir)/'`id3tag.c mostlyclean-libtool: -rm -f *.lo @@ -776,10 +788,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/id3tag/gstid3mux.c b/gst/id3tag/gstid3mux.c index 43ab1a0..1ed7e5c 100644 --- a/gst/id3tag/gstid3mux.c +++ b/gst/id3tag/gstid3mux.c @@ -71,6 +71,11 @@ enum #define DEFAULT_WRITE_V2 TRUE #define DEFAULT_V2_MAJOR_VERSION 3 +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, @@ -79,9 +84,9 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_BOILERPLATE (GstId3Mux, gst_id3_mux, GstTagMux, GST_TYPE_TAG_MUX); static GstBuffer *gst_id3_mux_render_v2_tag (GstTagMux * mux, - GstTagList * taglist); + const GstTagList * taglist); static GstBuffer *gst_id3_mux_render_v1_tag (GstTagMux * mux, - GstTagList * taglist); + const GstTagList * taglist); static void gst_id3_mux_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -93,8 +98,10 @@ gst_id3_mux_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_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "ID3 v1 and v2 Muxer", "Formatter/Metadata", @@ -129,8 +136,8 @@ gst_id3_mux_class_init (GstId3MuxClass * klass) GST_TAG_MUX_CLASS (klass)->render_start_tag = GST_DEBUG_FUNCPTR (gst_id3_mux_render_v2_tag); - - GST_TAG_MUX_CLASS (klass)->render_end_tag = gst_id3_mux_render_v1_tag; + GST_TAG_MUX_CLASS (klass)->render_end_tag = + GST_DEBUG_FUNCPTR (gst_id3_mux_render_v1_tag); } static void @@ -187,7 +194,7 @@ gst_id3_mux_get_property (GObject * object, guint prop_id, } static GstBuffer * -gst_id3_mux_render_v2_tag (GstTagMux * mux, GstTagList * taglist) +gst_id3_mux_render_v2_tag (GstTagMux * mux, const GstTagList * taglist) { GstId3Mux *id3mux = GST_ID3_MUX (mux); @@ -198,7 +205,7 @@ gst_id3_mux_render_v2_tag (GstTagMux * mux, GstTagList * taglist) } static GstBuffer * -gst_id3_mux_render_v1_tag (GstTagMux * mux, GstTagList * taglist) +gst_id3_mux_render_v1_tag (GstTagMux * mux, const GstTagList * taglist) { GstId3Mux *id3mux = GST_ID3_MUX (mux); diff --git a/gst/id3tag/gstid3mux.h b/gst/id3tag/gstid3mux.h index eb5aa05..ba4f930 100644 --- a/gst/id3tag/gstid3mux.h +++ b/gst/id3tag/gstid3mux.h @@ -23,7 +23,7 @@ #ifndef GST_ID3_MUX_H #define GST_ID3_MUX_H -#include "gsttagmux.h" +#include #include "id3tag.h" G_BEGIN_DECLS diff --git a/gst/id3tag/gsttagmux.c b/gst/id3tag/gsttagmux.c deleted file mode 100644 index 4aafb96..0000000 --- a/gst/id3tag/gsttagmux.c +++ /dev/null @@ -1,495 +0,0 @@ -/* GStreamer tag muxer base class - * - * Copyright (C) 2006 Christophe Fergeau - * Copyright (C) 2006 Tim-Philipp Müller - * Copyright (C) 2006 Sebastian Dröge - * Copyright (C) 2009 Pioneers of the Inevitable - * - * 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 "gsttagmux.h" - -GST_DEBUG_CATEGORY_STATIC (gst_tag_mux_debug); -#define GST_CAT_DEFAULT gst_tag_mux_debug - -/* Subclass provides a src template and pad. We accept anything as input here, - however. */ - -static GstStaticPadTemplate gst_tag_mux_sink_template = -GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("ANY")); - -static void -gst_tag_mux_iface_init (GType tag_type) -{ - static const GInterfaceInfo tag_setter_info = { - NULL, - NULL, - NULL - }; - - g_type_add_interface_static (tag_type, GST_TYPE_TAG_SETTER, &tag_setter_info); -} - -/* make sure to register a less generic type so we can easily move this - * GstTagMux base class into -base without causing GType name conflicts */ -typedef GstTagMux GstId3BaseMux; -typedef GstTagMuxClass GstId3BaseMuxClass; - -GST_BOILERPLATE_FULL (GstId3BaseMux, gst_tag_mux, - GstElement, GST_TYPE_ELEMENT, gst_tag_mux_iface_init); - - -static GstStateChangeReturn -gst_tag_mux_change_state (GstElement * element, GstStateChange transition); -static GstFlowReturn gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer); -static gboolean gst_tag_mux_sink_event (GstPad * pad, GstEvent * event); - -static void -gst_tag_mux_finalize (GObject * obj) -{ - GstTagMux *mux = GST_TAG_MUX (obj); - - if (mux->newsegment_ev) { - gst_event_unref (mux->newsegment_ev); - mux->newsegment_ev = NULL; - } - - if (mux->event_tags) { - gst_tag_list_free (mux->event_tags); - mux->event_tags = NULL; - } - - if (mux->final_tags) { - gst_tag_list_free (mux->final_tags); - mux->final_tags = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - -static void -gst_tag_mux_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_tag_mux_sink_template)); - - GST_DEBUG_CATEGORY_INIT (gst_tag_mux_debug, "id3basemux", 0, - "tag muxer base class for Id3Mux"); -} - -static void -gst_tag_mux_class_init (GstTagMuxClass * klass) -{ - GObjectClass *gobject_class; - GstElementClass *gstelement_class; - - gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; - - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_tag_mux_finalize); - gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_tag_mux_change_state); -} - -static void -gst_tag_mux_init (GstTagMux * mux, GstTagMuxClass * mux_class) -{ - GstElementClass *element_klass = GST_ELEMENT_CLASS (mux_class); - GstPadTemplate *tmpl; - - /* pad through which data comes in to the element */ - mux->sinkpad = - gst_pad_new_from_static_template (&gst_tag_mux_sink_template, "sink"); - gst_pad_set_chain_function (mux->sinkpad, - GST_DEBUG_FUNCPTR (gst_tag_mux_chain)); - gst_pad_set_event_function (mux->sinkpad, - GST_DEBUG_FUNCPTR (gst_tag_mux_sink_event)); - gst_element_add_pad (GST_ELEMENT (mux), mux->sinkpad); - - /* pad through which data goes out of the element */ - tmpl = gst_element_class_get_pad_template (element_klass, "src"); - if (tmpl) { - mux->srcpad = gst_pad_new_from_template (tmpl, "src"); - gst_pad_use_fixed_caps (mux->srcpad); - gst_pad_set_caps (mux->srcpad, gst_pad_template_get_caps (tmpl)); - gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); - } - - mux->render_start_tag = TRUE; - mux->render_end_tag = TRUE; -} - -static GstTagList * -gst_tag_mux_get_tags (GstTagMux * mux) -{ - GstTagSetter *tagsetter = GST_TAG_SETTER (mux); - const GstTagList *tagsetter_tags; - GstTagMergeMode merge_mode; - - if (mux->final_tags) - return mux->final_tags; - - tagsetter_tags = gst_tag_setter_get_tag_list (tagsetter); - merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter); - - GST_LOG_OBJECT (mux, "merging tags, merge mode = %d", merge_mode); - GST_LOG_OBJECT (mux, "event tags: %" GST_PTR_FORMAT, mux->event_tags); - GST_LOG_OBJECT (mux, "set tags: %" GST_PTR_FORMAT, tagsetter_tags); - - mux->final_tags = - gst_tag_list_merge (tagsetter_tags, mux->event_tags, merge_mode); - - GST_LOG_OBJECT (mux, "final tags: %" GST_PTR_FORMAT, mux->final_tags); - - return mux->final_tags; -} - -static GstFlowReturn -gst_tag_mux_render_start_tag (GstTagMux * mux) -{ - GstTagMuxClass *klass; - GstBuffer *buffer; - GstTagList *taglist; - GstEvent *event; - GstFlowReturn ret; - - taglist = gst_tag_mux_get_tags (mux); - - klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux)); - - if (klass->render_start_tag == NULL) - goto no_vfunc; - - buffer = klass->render_start_tag (mux, taglist); - - /* Null buffer is ok, just means we're not outputting anything */ - if (buffer == NULL) { - GST_INFO_OBJECT (mux, "No start tag generated"); - mux->start_tag_size = 0; - return GST_FLOW_OK; - } - - mux->start_tag_size = GST_BUFFER_SIZE (buffer); - GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes", - mux->start_tag_size); - - /* Send newsegment event from byte position 0, so the tag really gets - * written to the start of the file, independent of the upstream segment */ - gst_pad_push_event (mux->srcpad, - gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0)); - - /* Send an event about the new tags to downstream elements */ - /* gst_event_new_tag takes ownership of the list, so use a copy */ - event = gst_event_new_tag (gst_tag_list_copy (taglist)); - gst_pad_push_event (mux->srcpad, event); - - GST_BUFFER_OFFSET (buffer) = 0; - ret = gst_pad_push (mux->srcpad, buffer); - - mux->current_offset = mux->start_tag_size; - mux->max_offset = MAX (mux->max_offset, mux->current_offset); - - return ret; - -no_vfunc: - { - GST_ERROR_OBJECT (mux, "Subclass does not implement " - "render_start_tag vfunc!"); - return GST_FLOW_ERROR; - } -} - -static GstFlowReturn -gst_tag_mux_render_end_tag (GstTagMux * mux) -{ - GstTagMuxClass *klass; - GstBuffer *buffer; - GstTagList *taglist; - GstFlowReturn ret; - - taglist = gst_tag_mux_get_tags (mux); - - klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux)); - - if (klass->render_end_tag == NULL) - goto no_vfunc; - - buffer = klass->render_end_tag (mux, taglist); - - if (buffer == NULL) { - GST_INFO_OBJECT (mux, "No end tag generated"); - mux->end_tag_size = 0; - return GST_FLOW_OK; - } - - mux->end_tag_size = GST_BUFFER_SIZE (buffer); - GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes", - mux->end_tag_size); - - /* Send newsegment event from the end of the file, so it gets written there, - independent of whatever new segment events upstream has sent us */ - gst_pad_push_event (mux->srcpad, - gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, mux->max_offset, - -1, 0)); - - GST_BUFFER_OFFSET (buffer) = mux->max_offset; - ret = gst_pad_push (mux->srcpad, buffer); - - return ret; - -no_vfunc: - { - GST_ERROR_OBJECT (mux, "Subclass does not implement " - "render_end_tag vfunc!"); - return GST_FLOW_ERROR; - } -} - -static GstEvent * -gst_tag_mux_adjust_event_offsets (GstTagMux * mux, - const GstEvent * newsegment_event) -{ - GstFormat format; - gint64 start, stop, cur; - - gst_event_parse_new_segment ((GstEvent *) newsegment_event, NULL, NULL, - &format, &start, &stop, &cur); - - g_assert (format == GST_FORMAT_BYTES); - - if (start != -1) - start += mux->start_tag_size; - if (stop != -1) - stop += mux->start_tag_size; - if (cur != -1) - cur += mux->start_tag_size; - - GST_DEBUG_OBJECT (mux, "adjusting newsegment event offsets to start=%" - G_GINT64_FORMAT ", stop=%" G_GINT64_FORMAT ", cur=%" G_GINT64_FORMAT - " (delta = +%" G_GSIZE_FORMAT ")", start, stop, cur, mux->start_tag_size); - - return gst_event_new_new_segment (TRUE, 1.0, format, start, stop, cur); -} - -static GstFlowReturn -gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer) -{ - GstTagMux *mux = GST_TAG_MUX (GST_OBJECT_PARENT (pad)); - GstFlowReturn ret; - int length; - - if (mux->render_start_tag) { - - GST_INFO_OBJECT (mux, "Adding tags to stream"); - ret = gst_tag_mux_render_start_tag (mux); - if (ret != GST_FLOW_OK) { - GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret)); - gst_buffer_unref (buffer); - return ret; - } - - /* Now send the cached newsegment event that we got from upstream */ - if (mux->newsegment_ev) { - gint64 start; - GstEvent *newseg; - - GST_DEBUG_OBJECT (mux, "sending cached newsegment event"); - newseg = gst_tag_mux_adjust_event_offsets (mux, mux->newsegment_ev); - gst_event_unref (mux->newsegment_ev); - mux->newsegment_ev = NULL; - - gst_event_parse_new_segment (newseg, NULL, NULL, NULL, &start, NULL, - NULL); - - gst_pad_push_event (mux->srcpad, newseg); - mux->current_offset = start; - mux->max_offset = MAX (mux->max_offset, mux->current_offset); - } else { - /* upstream sent no newsegment event or only one in a non-BYTE format */ - } - - mux->render_start_tag = FALSE; - } - - buffer = gst_buffer_make_metadata_writable (buffer); - - if (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE) { - GST_LOG_OBJECT (mux, "Adjusting buffer offset from %" G_GINT64_FORMAT - " to %" G_GINT64_FORMAT, GST_BUFFER_OFFSET (buffer), - GST_BUFFER_OFFSET (buffer) + mux->start_tag_size); - GST_BUFFER_OFFSET (buffer) += mux->start_tag_size; - } - - length = GST_BUFFER_SIZE (buffer); - - gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->srcpad)); - ret = gst_pad_push (mux->srcpad, buffer); - - mux->current_offset += length; - mux->max_offset = MAX (mux->max_offset, mux->current_offset); - - return ret; -} - -static gboolean -gst_tag_mux_sink_event (GstPad * pad, GstEvent * event) -{ - GstTagMux *mux; - gboolean result; - - mux = GST_TAG_MUX (gst_pad_get_parent (pad)); - result = FALSE; - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_TAG:{ - GstTagList *tags; - - gst_event_parse_tag (event, &tags); - - GST_INFO_OBJECT (mux, "Got tag event: %" GST_PTR_FORMAT, tags); - - if (mux->event_tags != NULL) { - gst_tag_list_insert (mux->event_tags, tags, GST_TAG_MERGE_REPLACE); - } else { - mux->event_tags = gst_tag_list_copy (tags); - } - - GST_INFO_OBJECT (mux, "Event tags are now: %" GST_PTR_FORMAT, - mux->event_tags); - - /* just drop the event, we'll push a new tag event in render_start_tag */ - gst_event_unref (event); - result = TRUE; - break; - } - case GST_EVENT_NEWSEGMENT:{ - GstFormat fmt; - gint64 start; - - gst_event_parse_new_segment (event, NULL, NULL, &fmt, &start, NULL, NULL); - - if (fmt != GST_FORMAT_BYTES) { - GST_WARNING_OBJECT (mux, "dropping newsegment event in %s format", - gst_format_get_name (fmt)); - gst_event_unref (event); - break; - } - - if (mux->render_start_tag) { - /* we have not rendered the tag yet, which means that we don't know - * how large it is going to be yet, so we can't adjust the offsets - * here at this point and need to cache the newsegment event for now - * (also, there could be tag events coming after this newsegment event - * and before the first buffer). */ - if (mux->newsegment_ev) { - GST_WARNING_OBJECT (mux, "discarding old cached newsegment event"); - gst_event_unref (mux->newsegment_ev); - } - - GST_LOG_OBJECT (mux, "caching newsegment event for later"); - mux->newsegment_ev = event; - } else { - GST_DEBUG_OBJECT (mux, "got newsegment event, adjusting offsets"); - gst_pad_push_event (mux->srcpad, - gst_tag_mux_adjust_event_offsets (mux, event)); - gst_event_unref (event); - - mux->current_offset = start; - mux->max_offset = MAX (mux->max_offset, mux->current_offset); - } - event = NULL; - result = TRUE; - break; - } - case GST_EVENT_EOS:{ - if (mux->render_end_tag) { - GstFlowReturn ret; - - GST_INFO_OBJECT (mux, "Adding tags to stream"); - ret = gst_tag_mux_render_end_tag (mux); - if (ret != GST_FLOW_OK) { - GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret)); - return ret; - } - - mux->render_end_tag = FALSE; - } - - /* Now forward EOS */ - result = gst_pad_event_default (pad, event); - break; - } - default: - result = gst_pad_event_default (pad, event); - break; - } - - gst_object_unref (mux); - - return result; -} - - -static GstStateChangeReturn -gst_tag_mux_change_state (GstElement * element, GstStateChange transition) -{ - GstTagMux *mux; - GstStateChangeReturn result; - - mux = GST_TAG_MUX (element); - - result = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (result != GST_STATE_CHANGE_SUCCESS) { - return result; - } - - switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_READY:{ - if (mux->newsegment_ev) { - gst_event_unref (mux->newsegment_ev); - mux->newsegment_ev = NULL; - } - if (mux->event_tags) { - gst_tag_list_free (mux->event_tags); - mux->event_tags = NULL; - } - mux->start_tag_size = 0; - mux->end_tag_size = 0; - mux->render_start_tag = TRUE; - mux->render_end_tag = TRUE; - mux->current_offset = 0; - mux->max_offset = 0; - break; - } - default: - break; - } - - return result; -} diff --git a/gst/id3tag/gsttagmux.h b/gst/id3tag/gsttagmux.h deleted file mode 100644 index c13a732..0000000 --- a/gst/id3tag/gsttagmux.h +++ /dev/null @@ -1,79 +0,0 @@ -/* GStreamer tag muxer base class - * - * Copyright (C) 2006 Christophe Fergeau - * Copyright (C) 2006 Tim-Philipp Müller - * Copyright (C) 2009 Pioneers of the Inevitable - * - * 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_TAG_MUX_H -#define GST_TAG_MUX_H - -#include - -G_BEGIN_DECLS - -typedef struct _GstTagMux GstTagMux; -typedef struct _GstTagMuxClass GstTagMuxClass; - -/* Definition of structure storing data for this element. */ -struct _GstTagMux { - GstElement element; - - GstPad *srcpad; - GstPad *sinkpad; - GstTagList *event_tags; /* tags received from upstream elements */ - GstTagList *final_tags; /* Final set of tags used for muxing */ - gsize start_tag_size; - gsize end_tag_size; - gboolean render_start_tag; - gboolean render_end_tag; - - gint64 current_offset; - gint64 max_offset; - - GstEvent *newsegment_ev; /* cached newsegment event from upstream */ -}; - -/* Standard definition defining a class for this element. */ -struct _GstTagMuxClass { - GstElementClass parent_class; - - /* vfuncs */ - GstBuffer * (*render_start_tag) (GstTagMux * mux, GstTagList * tag_list); - GstBuffer * (*render_end_tag) (GstTagMux * mux, GstTagList * tag_list); -}; - -/* Standard macros for defining types for this element. */ -#define GST_TYPE_TAG_MUX \ - (gst_tag_mux_get_type()) -#define GST_TAG_MUX(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TAG_MUX,GstTagMux)) -#define GST_TAG_MUX_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TAG_MUX,GstTagMuxClass)) -#define GST_IS_TAG_MUX(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TAG_MUX)) -#define GST_IS_TAG_MUX_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TAG_MUX)) - -/* Standard function returning type information. */ -GType gst_tag_mux_get_type (void); - -G_END_DECLS - -#endif - diff --git a/gst/id3tag/id3tag.c b/gst/id3tag/id3tag.c index 2f3bebf..3a0e4d4 100644 --- a/gst/id3tag/id3tag.c +++ b/gst/id3tag/id3tag.c @@ -1132,7 +1132,7 @@ foreach_add_tag (const GstTagList * list, const gchar * tag, gpointer userdata) } GstBuffer * -id3_mux_render_v2_tag (GstTagMux * mux, GstTagList * taglist, int version) +id3_mux_render_v2_tag (GstTagMux * mux, const GstTagList * taglist, int version) { GstId3v2Tag tag; GstBuffer *buf; @@ -1159,7 +1159,6 @@ id3_mux_render_v2_tag (GstTagMux * mux, GstTagList * taglist, int version) /* Create buffer with tag */ buf = id3v2_tag_to_buffer (&tag); - gst_buffer_set_caps (buf, GST_PAD_CAPS (mux->srcpad)); GST_LOG_OBJECT (mux, "tag size = %d bytes", GST_BUFFER_SIZE (buf)); id3v2_tag_unset (&tag); @@ -1285,7 +1284,7 @@ static const struct }; GstBuffer * -id3_mux_render_v1_tag (GstTagMux * mux, GstTagList * taglist) +id3_mux_render_v1_tag (GstTagMux * mux, const GstTagList * taglist) { GstBuffer *buf = gst_buffer_new_and_alloc (ID3_V1_TAG_SIZE); guint8 *data = GST_BUFFER_DATA (buf); @@ -1312,6 +1311,5 @@ id3_mux_render_v1_tag (GstTagMux * mux, GstTagList * taglist) return NULL; } - gst_buffer_set_caps (buf, GST_PAD_CAPS (mux->srcpad)); return buf; } diff --git a/gst/id3tag/id3tag.h b/gst/id3tag/id3tag.h index d550496..321c7b8 100644 --- a/gst/id3tag/id3tag.h +++ b/gst/id3tag/id3tag.h @@ -17,16 +17,18 @@ * Boston, MA 02111-1307, USA. */ -#include "gsttagmux.h" +#include G_BEGIN_DECLS #define ID3_VERSION_2_3 3 #define ID3_VERSION_2_4 4 -GstBuffer * id3_mux_render_v2_tag (GstTagMux * mux, GstTagList * taglist, - int version); -GstBuffer * id3_mux_render_v1_tag (GstTagMux * mux, GstTagList * taglist); +GstBuffer * id3_mux_render_v2_tag (GstTagMux * mux, + const GstTagList * taglist, + int version); -G_END_DECLS +GstBuffer * id3_mux_render_v1_tag (GstTagMux * mux, + const GstTagList * taglist); +G_END_DECLS diff --git a/gst/inter/Makefile.am b/gst/inter/Makefile.am new file mode 100644 index 0000000..4a7e78a --- /dev/null +++ b/gst/inter/Makefile.am @@ -0,0 +1,58 @@ +plugin_LTLIBRARIES = libgstinter.la + +noinst_PROGRAMS = gstintertest + +libgstinter_la_SOURCES = \ + gstinteraudiosink.c \ + gstinteraudiosrc.c \ + gstintervideosink.c \ + gstintervideosrc.c \ + gstinter.c \ + gstintersurface.c + +noinst_HEADERS = \ + gstinteraudiosink.h \ + gstinteraudiosrc.h \ + gstintervideosink.h \ + gstintervideosrc.h \ + gstintersurface.h + +libgstinter_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) + +libgstinter_la_LIBADD = \ + $(GST_LIBS) \ + $(GST_BASE_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstaudio-@GST_MAJORMINOR@ \ + $(LIBM) + +libgstinter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstinter_la_LIBTOOLFLAGS = --tag=disable-static + +gstintertest_SOURCES = \ + gstintertest.c + +gstintertest_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) + +gstintertest_LDADD = \ + $(GST_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) \ + $(LIBM) + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstinter -:SHARED libgstinter \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstinter_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstinter_la_CFLAGS) \ + -:LDFLAGS $(libgstinter_la_LDFLAGS) \ + $(libgstinter_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ diff --git a/gst/inter/Makefile.in b/gst/inter/Makefile.in new file mode 100644 index 0000000..e56129d --- /dev/null +++ b/gst/inter/Makefile.in @@ -0,0 +1,1014 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gstintertest$(EXEEXT) +subdir = gst/inter +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstinter_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstinter_la_OBJECTS = libgstinter_la-gstinteraudiosink.lo \ + libgstinter_la-gstinteraudiosrc.lo \ + libgstinter_la-gstintervideosink.lo \ + libgstinter_la-gstintervideosrc.lo libgstinter_la-gstinter.lo \ + libgstinter_la-gstintersurface.lo +libgstinter_la_OBJECTS = $(am_libgstinter_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstinter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstinter_la_CFLAGS) $(CFLAGS) \ + $(libgstinter_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +am_gstintertest_OBJECTS = gstintertest-gstintertest.$(OBJEXT) +gstintertest_OBJECTS = $(am_gstintertest_OBJECTS) +gstintertest_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +gstintertest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gstintertest_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstinter_la_SOURCES) $(gstintertest_SOURCES) +DIST_SOURCES = $(libgstinter_la_SOURCES) $(gstintertest_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstinter.la +libgstinter_la_SOURCES = \ + gstinteraudiosink.c \ + gstinteraudiosrc.c \ + gstintervideosink.c \ + gstintervideosrc.c \ + gstinter.c \ + gstintersurface.c + +noinst_HEADERS = \ + gstinteraudiosink.h \ + gstinteraudiosrc.h \ + gstintervideosink.h \ + gstintervideosrc.h \ + gstintersurface.h + +libgstinter_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) + +libgstinter_la_LIBADD = \ + $(GST_LIBS) \ + $(GST_BASE_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstaudio-@GST_MAJORMINOR@ \ + $(LIBM) + +libgstinter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstinter_la_LIBTOOLFLAGS = --tag=disable-static +gstintertest_SOURCES = \ + gstintertest.c + +gstintertest_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) + +gstintertest_LDADD = \ + $(GST_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) \ + $(LIBM) + +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 gst/inter/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst/inter/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 +libgstinter.la: $(libgstinter_la_OBJECTS) $(libgstinter_la_DEPENDENCIES) $(EXTRA_libgstinter_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstinter_la_LINK) -rpath $(plugindir) $(libgstinter_la_OBJECTS) $(libgstinter_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 +gstintertest$(EXEEXT): $(gstintertest_OBJECTS) $(gstintertest_DEPENDENCIES) $(EXTRA_gstintertest_DEPENDENCIES) + @rm -f gstintertest$(EXEEXT) + $(AM_V_CCLD)$(gstintertest_LINK) $(gstintertest_OBJECTS) $(gstintertest_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstintertest-gstintertest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstinter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstinteraudiosink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstinteraudiosrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstintersurface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstintervideosink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinter_la-gstintervideosrc.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstinter_la-gstinteraudiosink.lo: gstinteraudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstinteraudiosink.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstinteraudiosink.Tpo -c -o libgstinter_la-gstinteraudiosink.lo `test -f 'gstinteraudiosink.c' || echo '$(srcdir)/'`gstinteraudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstinteraudiosink.Tpo $(DEPDIR)/libgstinter_la-gstinteraudiosink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstinteraudiosink.c' object='libgstinter_la-gstinteraudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstinteraudiosink.lo `test -f 'gstinteraudiosink.c' || echo '$(srcdir)/'`gstinteraudiosink.c + +libgstinter_la-gstinteraudiosrc.lo: gstinteraudiosrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstinteraudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstinteraudiosrc.Tpo -c -o libgstinter_la-gstinteraudiosrc.lo `test -f 'gstinteraudiosrc.c' || echo '$(srcdir)/'`gstinteraudiosrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstinteraudiosrc.Tpo $(DEPDIR)/libgstinter_la-gstinteraudiosrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstinteraudiosrc.c' object='libgstinter_la-gstinteraudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstinteraudiosrc.lo `test -f 'gstinteraudiosrc.c' || echo '$(srcdir)/'`gstinteraudiosrc.c + +libgstinter_la-gstintervideosink.lo: gstintervideosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstintervideosink.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstintervideosink.Tpo -c -o libgstinter_la-gstintervideosink.lo `test -f 'gstintervideosink.c' || echo '$(srcdir)/'`gstintervideosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstintervideosink.Tpo $(DEPDIR)/libgstinter_la-gstintervideosink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstintervideosink.c' object='libgstinter_la-gstintervideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstintervideosink.lo `test -f 'gstintervideosink.c' || echo '$(srcdir)/'`gstintervideosink.c + +libgstinter_la-gstintervideosrc.lo: gstintervideosrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstintervideosrc.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstintervideosrc.Tpo -c -o libgstinter_la-gstintervideosrc.lo `test -f 'gstintervideosrc.c' || echo '$(srcdir)/'`gstintervideosrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstintervideosrc.Tpo $(DEPDIR)/libgstinter_la-gstintervideosrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstintervideosrc.c' object='libgstinter_la-gstintervideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstintervideosrc.lo `test -f 'gstintervideosrc.c' || echo '$(srcdir)/'`gstintervideosrc.c + +libgstinter_la-gstinter.lo: gstinter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstinter.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstinter.Tpo -c -o libgstinter_la-gstinter.lo `test -f 'gstinter.c' || echo '$(srcdir)/'`gstinter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstinter.Tpo $(DEPDIR)/libgstinter_la-gstinter.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstinter.c' object='libgstinter_la-gstinter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstinter.lo `test -f 'gstinter.c' || echo '$(srcdir)/'`gstinter.c + +libgstinter_la-gstintersurface.lo: gstintersurface.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -MT libgstinter_la-gstintersurface.lo -MD -MP -MF $(DEPDIR)/libgstinter_la-gstintersurface.Tpo -c -o libgstinter_la-gstintersurface.lo `test -f 'gstintersurface.c' || echo '$(srcdir)/'`gstintersurface.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinter_la-gstintersurface.Tpo $(DEPDIR)/libgstinter_la-gstintersurface.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstintersurface.c' object='libgstinter_la-gstintersurface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinter_la_CFLAGS) $(CFLAGS) -c -o libgstinter_la-gstintersurface.lo `test -f 'gstintersurface.c' || echo '$(srcdir)/'`gstintersurface.c + +gstintertest-gstintertest.o: gstintertest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstintertest_CFLAGS) $(CFLAGS) -MT gstintertest-gstintertest.o -MD -MP -MF $(DEPDIR)/gstintertest-gstintertest.Tpo -c -o gstintertest-gstintertest.o `test -f 'gstintertest.c' || echo '$(srcdir)/'`gstintertest.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstintertest-gstintertest.Tpo $(DEPDIR)/gstintertest-gstintertest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstintertest.c' object='gstintertest-gstintertest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstintertest_CFLAGS) $(CFLAGS) -c -o gstintertest-gstintertest.o `test -f 'gstintertest.c' || echo '$(srcdir)/'`gstintertest.c + +gstintertest-gstintertest.obj: gstintertest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstintertest_CFLAGS) $(CFLAGS) -MT gstintertest-gstintertest.obj -MD -MP -MF $(DEPDIR)/gstintertest-gstintertest.Tpo -c -o gstintertest-gstintertest.obj `if test -f 'gstintertest.c'; then $(CYGPATH_W) 'gstintertest.c'; else $(CYGPATH_W) '$(srcdir)/gstintertest.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstintertest-gstintertest.Tpo $(DEPDIR)/gstintertest-gstintertest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstintertest.c' object='gstintertest-gstintertest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstintertest_CFLAGS) $(CFLAGS) -c -o gstintertest-gstintertest.obj `if test -f 'gstintertest.c'; then $(CYGPATH_W) 'gstintertest.c'; else $(CYGPATH_W) '$(srcdir)/gstintertest.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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 + + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstinter -:SHARED libgstinter \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstinter_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstinter_la_CFLAGS) \ + -:LDFLAGS $(libgstinter_la_LDFLAGS) \ + $(libgstinter_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/gst/inter/gstinter.c b/gst/inter/gstinter.c new file mode 100644 index 0000000..60c5bd6 --- /dev/null +++ b/gst/inter/gstinter.c @@ -0,0 +1,51 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstinteraudiosrc.h" +#include "gstinteraudiosink.h" +#include "gstintervideosrc.h" +#include "gstintervideosink.h" +#include "gstintersurface.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gst_element_register (plugin, "interaudiosrc", GST_RANK_NONE, + GST_TYPE_INTER_AUDIO_SRC); + gst_element_register (plugin, "interaudiosink", GST_RANK_NONE, + GST_TYPE_INTER_AUDIO_SINK); + gst_element_register (plugin, "intervideosrc", GST_RANK_NONE, + GST_TYPE_INTER_VIDEO_SRC); + gst_element_register (plugin, "intervideosink", GST_RANK_NONE, + GST_TYPE_INTER_VIDEO_SINK); + + gst_inter_surface_init (); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "inter", + "plugin for inter-pipeline communication", + plugin_init, VERSION, "LGPL", PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/inter/gstinteraudiosink.c b/gst/inter/gstinteraudiosink.c new file mode 100644 index 0000000..a05248b --- /dev/null +++ b/gst/inter/gstinteraudiosink.c @@ -0,0 +1,337 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstinteraudiosink + * + * The interaudiosink element does FIXME stuff. + * + * + * Example launch line + * |[ + * gst-launch -v fakesrc ! interaudiosink ! FIXME ! fakesink + * ]| + * FIXME Describe what the pipeline does. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include "gstinteraudiosink.h" +#include + +GST_DEBUG_CATEGORY_STATIC (gst_inter_audio_sink_debug_category); +#define GST_CAT_DEFAULT gst_inter_audio_sink_debug_category + +/* prototypes */ + + +static void gst_inter_audio_sink_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_inter_audio_sink_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_inter_audio_sink_dispose (GObject * object); +static void gst_inter_audio_sink_finalize (GObject * object); + +static GstCaps *gst_inter_audio_sink_get_caps (GstBaseSink * sink); +static gboolean gst_inter_audio_sink_set_caps (GstBaseSink * sink, + GstCaps * caps); +static GstFlowReturn gst_inter_audio_sink_buffer_alloc (GstBaseSink * sink, + guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); +static void gst_inter_audio_sink_get_times (GstBaseSink * sink, + GstBuffer * buffer, GstClockTime * start, GstClockTime * end); +static gboolean gst_inter_audio_sink_start (GstBaseSink * sink); +static gboolean gst_inter_audio_sink_stop (GstBaseSink * sink); +static gboolean gst_inter_audio_sink_unlock (GstBaseSink * sink); +static gboolean gst_inter_audio_sink_event (GstBaseSink * sink, + GstEvent * event); +static GstFlowReturn gst_inter_audio_sink_preroll (GstBaseSink * sink, + GstBuffer * buffer); +static GstFlowReturn gst_inter_audio_sink_render (GstBaseSink * sink, + GstBuffer * buffer); +static GstStateChangeReturn gst_inter_audio_sink_async_play (GstBaseSink * + sink); +static gboolean gst_inter_audio_sink_activate_pull (GstBaseSink * sink, + gboolean active); +static gboolean gst_inter_audio_sink_unlock_stop (GstBaseSink * sink); + +enum +{ + PROP_0 +}; + +/* pad templates */ + +static GstStaticPadTemplate gst_inter_audio_sink_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) [ 1, MAX ], " "channels = (int) [ 1, 2 ]") + ); + + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_inter_audio_sink_debug_category, "interaudiosink", 0, \ + "debug category for interaudiosink element"); + +GST_BOILERPLATE_FULL (GstInterAudioSink, gst_inter_audio_sink, GstBaseSink, + GST_TYPE_BASE_SINK, DEBUG_INIT); + +static void +gst_inter_audio_sink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_inter_audio_sink_sink_template); + + gst_element_class_set_details_simple (element_class, "FIXME Long name", + "Generic", "FIXME Description", "FIXME "); +} + +static void +gst_inter_audio_sink_class_init (GstInterAudioSinkClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSinkClass *base_sink_class = GST_BASE_SINK_CLASS (klass); + + gobject_class->set_property = gst_inter_audio_sink_set_property; + gobject_class->get_property = gst_inter_audio_sink_get_property; + gobject_class->dispose = gst_inter_audio_sink_dispose; + gobject_class->finalize = gst_inter_audio_sink_finalize; + base_sink_class->get_caps = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_get_caps); + base_sink_class->set_caps = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_set_caps); + if (0) + base_sink_class->buffer_alloc = + GST_DEBUG_FUNCPTR (gst_inter_audio_sink_buffer_alloc); + base_sink_class->get_times = + GST_DEBUG_FUNCPTR (gst_inter_audio_sink_get_times); + base_sink_class->start = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_start); + base_sink_class->stop = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_stop); + base_sink_class->unlock = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_unlock); + if (0) + base_sink_class->event = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_event); + //if (0) + base_sink_class->preroll = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_preroll); + base_sink_class->render = GST_DEBUG_FUNCPTR (gst_inter_audio_sink_render); + if (0) + base_sink_class->async_play = + GST_DEBUG_FUNCPTR (gst_inter_audio_sink_async_play); + if (0) + base_sink_class->activate_pull = + GST_DEBUG_FUNCPTR (gst_inter_audio_sink_activate_pull); + base_sink_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_inter_audio_sink_unlock_stop); + +} + +static void +gst_inter_audio_sink_init (GstInterAudioSink * interaudiosink, + GstInterAudioSinkClass * interaudiosink_class) +{ + interaudiosink->surface = gst_inter_surface_get ("default"); +} + +void +gst_inter_audio_sink_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + /* GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_audio_sink_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + /* GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_audio_sink_dispose (GObject * object) +{ + /* GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (object); */ + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_inter_audio_sink_finalize (GObject * object) +{ + /* GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (object); */ + + /* clean up object here */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + + +static GstCaps * +gst_inter_audio_sink_get_caps (GstBaseSink * sink) +{ + + return NULL; +} + +static gboolean +gst_inter_audio_sink_set_caps (GstBaseSink * sink, GstCaps * caps) +{ + + return TRUE; +} + +static GstFlowReturn +gst_inter_audio_sink_buffer_alloc (GstBaseSink * sink, guint64 offset, + guint size, GstCaps * caps, GstBuffer ** buf) +{ + + return GST_FLOW_ERROR; +} + +static void +gst_inter_audio_sink_get_times (GstBaseSink * sink, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (sink); + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { + *start = GST_BUFFER_TIMESTAMP (buffer); + if (GST_BUFFER_DURATION_IS_VALID (buffer)) { + *end = *start + GST_BUFFER_DURATION (buffer); + } else { + if (interaudiosink->fps_n > 0) { + *end = *start + + gst_util_uint64_scale_int (GST_SECOND, interaudiosink->fps_d, + interaudiosink->fps_n); + } + } + } + + +} + +static gboolean +gst_inter_audio_sink_start (GstBaseSink * sink) +{ + + return TRUE; +} + +static gboolean +gst_inter_audio_sink_stop (GstBaseSink * sink) +{ + GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (sink); + + GST_DEBUG ("stop"); + + g_mutex_lock (interaudiosink->surface->mutex); + gst_adapter_clear (interaudiosink->surface->audio_adapter); + g_mutex_unlock (interaudiosink->surface->mutex); + + return TRUE; +} + +static gboolean +gst_inter_audio_sink_unlock (GstBaseSink * sink) +{ + + return TRUE; +} + +static gboolean +gst_inter_audio_sink_event (GstBaseSink * sink, GstEvent * event) +{ + + return TRUE; +} + +static GstFlowReturn +gst_inter_audio_sink_preroll (GstBaseSink * sink, GstBuffer * buffer) +{ + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_inter_audio_sink_render (GstBaseSink * sink, GstBuffer * buffer) +{ + GstInterAudioSink *interaudiosink = GST_INTER_AUDIO_SINK (sink); + int n; + + GST_DEBUG ("render %d", GST_BUFFER_SIZE (buffer)); + + g_mutex_lock (interaudiosink->surface->mutex); + n = gst_adapter_available (interaudiosink->surface->audio_adapter) / 4; + if (n > (800 * 2 * 2)) { + GST_INFO ("flushing 800 samples"); + gst_adapter_flush (interaudiosink->surface->audio_adapter, 800 * 4); + n -= 800; + } + gst_adapter_push (interaudiosink->surface->audio_adapter, + gst_buffer_ref (buffer)); + g_mutex_unlock (interaudiosink->surface->mutex); + + return GST_FLOW_OK; +} + +static GstStateChangeReturn +gst_inter_audio_sink_async_play (GstBaseSink * sink) +{ + + return GST_STATE_CHANGE_SUCCESS; +} + +static gboolean +gst_inter_audio_sink_activate_pull (GstBaseSink * sink, gboolean active) +{ + + return TRUE; +} + +static gboolean +gst_inter_audio_sink_unlock_stop (GstBaseSink * sink) +{ + + return TRUE; +} diff --git a/gst/inter/gstinteraudiosink.h b/gst/inter/gstinteraudiosink.h new file mode 100644 index 0000000..b0a3276 --- /dev/null +++ b/gst/inter/gstinteraudiosink.h @@ -0,0 +1,56 @@ +/* GStreamer + * Copyright (C) 2011 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. + */ + +#ifndef _GST_INTER_AUDIO_SINK_H_ +#define _GST_INTER_AUDIO_SINK_H_ + +#include +#include "gstintersurface.h" + +G_BEGIN_DECLS + +#define GST_TYPE_INTER_AUDIO_SINK (gst_inter_audio_sink_get_type()) +#define GST_INTER_AUDIO_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INTER_AUDIO_SINK,GstInterAudioSink)) +#define GST_INTER_AUDIO_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INTER_AUDIO_SINK,GstInterAudioSinkClass)) +#define GST_IS_INTER_AUDIO_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INTER_AUDIO_SINK)) +#define GST_IS_INTER_AUDIO_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INTER_AUDIO_SINK)) + +typedef struct _GstInterAudioSink GstInterAudioSink; +typedef struct _GstInterAudioSinkClass GstInterAudioSinkClass; + +struct _GstInterAudioSink +{ + GstBaseSink base_interaudiosink; + + GstInterSurface *surface; + + int fps_n; + int fps_d; +}; + +struct _GstInterAudioSinkClass +{ + GstBaseSinkClass base_interaudiosink_class; +}; + +GType gst_inter_audio_sink_get_type (void); + +G_END_DECLS + +#endif diff --git a/gst/inter/gstinteraudiosrc.c b/gst/inter/gstinteraudiosrc.c new file mode 100644 index 0000000..1b98adc --- /dev/null +++ b/gst/inter/gstinteraudiosrc.c @@ -0,0 +1,477 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstinteraudiosrc + * + * The interaudiosrc element does FIXME stuff. + * + * + * Example launch line + * |[ + * gst-launch -v fakesrc ! interaudiosrc ! FIXME ! fakesink + * ]| + * FIXME Describe what the pipeline does. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "gstinteraudiosrc.h" +#include + +GST_DEBUG_CATEGORY_STATIC (gst_inter_audio_src_debug_category); +#define GST_CAT_DEFAULT gst_inter_audio_src_debug_category + +/* prototypes */ + + +static void gst_inter_audio_src_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_inter_audio_src_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_inter_audio_src_dispose (GObject * object); +static void gst_inter_audio_src_finalize (GObject * object); + +static GstCaps *gst_inter_audio_src_get_caps (GstBaseSrc * src); +static gboolean gst_inter_audio_src_set_caps (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_inter_audio_src_negotiate (GstBaseSrc * src); +static gboolean gst_inter_audio_src_newsegment (GstBaseSrc * src); +static gboolean gst_inter_audio_src_start (GstBaseSrc * src); +static gboolean gst_inter_audio_src_stop (GstBaseSrc * src); +static void +gst_inter_audio_src_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end); +static gboolean gst_inter_audio_src_is_seekable (GstBaseSrc * src); +static gboolean gst_inter_audio_src_unlock (GstBaseSrc * src); +static gboolean gst_inter_audio_src_event (GstBaseSrc * src, GstEvent * event); +static GstFlowReturn +gst_inter_audio_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf); +static gboolean gst_inter_audio_src_do_seek (GstBaseSrc * src, + GstSegment * segment); +static gboolean gst_inter_audio_src_query (GstBaseSrc * src, GstQuery * query); +static gboolean gst_inter_audio_src_check_get_range (GstBaseSrc * src); +static void gst_inter_audio_src_fixate (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_inter_audio_src_unlock_stop (GstBaseSrc * src); +static gboolean +gst_inter_audio_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment); + +enum +{ + PROP_0 +}; + +/* pad templates */ + +static GstStaticPadTemplate gst_inter_audio_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) [ 1, MAX ], " "channels = (int) [ 1, 2 ]") + ); + + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_inter_audio_src_debug_category, "interaudiosrc", 0, \ + "debug category for interaudiosrc element"); + +GST_BOILERPLATE_FULL (GstInterAudioSrc, gst_inter_audio_src, GstBaseSrc, + GST_TYPE_BASE_SRC, DEBUG_INIT); + +static void +gst_inter_audio_src_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_inter_audio_src_src_template); + + gst_element_class_set_details_simple (element_class, "FIXME Long name", + "Generic", "FIXME Description", "FIXME "); +} + +static void +gst_inter_audio_src_class_init (GstInterAudioSrcClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS (klass); + + gobject_class->set_property = gst_inter_audio_src_set_property; + gobject_class->get_property = gst_inter_audio_src_get_property; + gobject_class->dispose = gst_inter_audio_src_dispose; + gobject_class->finalize = gst_inter_audio_src_finalize; + base_src_class->get_caps = GST_DEBUG_FUNCPTR (gst_inter_audio_src_get_caps); + base_src_class->set_caps = GST_DEBUG_FUNCPTR (gst_inter_audio_src_set_caps); + if (0) + base_src_class->negotiate = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_negotiate); + base_src_class->newsegment = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_newsegment); + base_src_class->start = GST_DEBUG_FUNCPTR (gst_inter_audio_src_start); + base_src_class->stop = GST_DEBUG_FUNCPTR (gst_inter_audio_src_stop); + base_src_class->get_times = GST_DEBUG_FUNCPTR (gst_inter_audio_src_get_times); + if (0) + base_src_class->is_seekable = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_is_seekable); + base_src_class->unlock = GST_DEBUG_FUNCPTR (gst_inter_audio_src_unlock); + base_src_class->event = GST_DEBUG_FUNCPTR (gst_inter_audio_src_event); + base_src_class->create = GST_DEBUG_FUNCPTR (gst_inter_audio_src_create); + if (0) + base_src_class->do_seek = GST_DEBUG_FUNCPTR (gst_inter_audio_src_do_seek); + base_src_class->query = GST_DEBUG_FUNCPTR (gst_inter_audio_src_query); + if (0) + base_src_class->check_get_range = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_check_get_range); + base_src_class->fixate = GST_DEBUG_FUNCPTR (gst_inter_audio_src_fixate); + if (0) + base_src_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_unlock_stop); + if (0) + base_src_class->prepare_seek_segment = + GST_DEBUG_FUNCPTR (gst_inter_audio_src_prepare_seek_segment); + + +} + +static void +gst_inter_audio_src_init (GstInterAudioSrc * interaudiosrc, + GstInterAudioSrcClass * interaudiosrc_class) +{ + + gst_base_src_set_live (GST_BASE_SRC (interaudiosrc), TRUE); + gst_base_src_set_blocksize (GST_BASE_SRC (interaudiosrc), -1); + + interaudiosrc->surface = gst_inter_surface_get ("default"); +} + +void +gst_inter_audio_src_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + /* GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_audio_src_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + /* GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_audio_src_dispose (GObject * object) +{ + /* GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (object); */ + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_inter_audio_src_finalize (GObject * object) +{ + /* GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (object); */ + + /* clean up object here */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + +static GstCaps * +gst_inter_audio_src_get_caps (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "get_caps"); + + return NULL; +} + +static gboolean +gst_inter_audio_src_set_caps (GstBaseSrc * src, GstCaps * caps) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + const GstStructure *structure; + gboolean ret; + int sample_rate; + + GST_DEBUG_OBJECT (interaudiosrc, "set_caps"); + + structure = gst_caps_get_structure (caps, 0); + + ret = gst_structure_get_int (structure, "rate", &sample_rate); + if (ret) { + interaudiosrc->sample_rate = sample_rate; + } + + return ret; +} + +static gboolean +gst_inter_audio_src_negotiate (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "negotiate"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_newsegment (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "newsegment"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_start (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "start"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_stop (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "stop"); + + return TRUE; +} + +static void +gst_inter_audio_src_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "get_times"); + + /* for live sources, sync on the timestamp of the buffer */ + if (gst_base_src_is_live (src)) { + 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 gboolean +gst_inter_audio_src_is_seekable (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "is_seekable"); + + return FALSE; +} + +static gboolean +gst_inter_audio_src_unlock (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "unlock"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_event (GstBaseSrc * src, GstEvent * event) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "event"); + + return TRUE; +} + +static GstFlowReturn +gst_inter_audio_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + GstBuffer *buffer; + int n; + + GST_DEBUG_OBJECT (interaudiosrc, "create"); + + buffer = NULL; + + g_mutex_lock (interaudiosrc->surface->mutex); + n = gst_adapter_available (interaudiosrc->surface->audio_adapter) / 4; + if (n > 1600 * 2) { + GST_DEBUG ("flushing %d samples", 800); + gst_adapter_flush (interaudiosrc->surface->audio_adapter, 800 * 4); + n -= 800; + } + if (n > 1600) + n = 1600; + if (n > 0) { + buffer = gst_adapter_take_buffer (interaudiosrc->surface->audio_adapter, + n * 4); + } + g_mutex_unlock (interaudiosrc->surface->mutex); + + if (n < 1600) { + GstBuffer *newbuf = gst_buffer_new_and_alloc (1600 * 4); + + GST_DEBUG ("creating %d samples of silence", 1600 - n); + memset (GST_BUFFER_DATA (newbuf) + n * 4, 0, 1600 * 4 - n * 4); + if (buffer) { + memcpy (GST_BUFFER_DATA (newbuf), GST_BUFFER_DATA (buffer), n * 4); + gst_buffer_unref (buffer); + } + buffer = newbuf; + } + n = 1600; + + GST_BUFFER_OFFSET (buffer) = interaudiosrc->n_samples; + GST_BUFFER_OFFSET_END (buffer) = interaudiosrc->n_samples + n; + GST_BUFFER_TIMESTAMP (buffer) = + gst_util_uint64_scale_int (interaudiosrc->n_samples, GST_SECOND, + interaudiosrc->sample_rate); + GST_DEBUG_OBJECT (interaudiosrc, "create ts %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer))); + GST_BUFFER_DURATION (buffer) = + gst_util_uint64_scale_int (interaudiosrc->n_samples + n, GST_SECOND, + interaudiosrc->sample_rate) - GST_BUFFER_TIMESTAMP (buffer); + GST_BUFFER_OFFSET (buffer) = interaudiosrc->n_samples; + GST_BUFFER_OFFSET_END (buffer) = -1; + GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT); + if (interaudiosrc->n_samples == 0) { + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); + } + gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (interaudiosrc))); + interaudiosrc->n_samples += n; + + *buf = buffer; + + return GST_FLOW_OK; +} + +static gboolean +gst_inter_audio_src_do_seek (GstBaseSrc * src, GstSegment * segment) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "do_seek"); + + return FALSE; +} + +static gboolean +gst_inter_audio_src_query (GstBaseSrc * src, GstQuery * query) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "query"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_check_get_range (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "get_range"); + + return FALSE; +} + +static void +gst_inter_audio_src_fixate (GstBaseSrc * src, GstCaps * caps) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + GstStructure *structure; + + structure = gst_caps_get_structure (caps, 0); + + GST_DEBUG_OBJECT (interaudiosrc, "fixate"); + + gst_structure_fixate_field_nearest_int (structure, "channels", 2); + gst_structure_fixate_field_nearest_int (structure, "rate", 48000); + +} + +static gboolean +gst_inter_audio_src_unlock_stop (GstBaseSrc * src) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "stop"); + + return TRUE; +} + +static gboolean +gst_inter_audio_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment) +{ + GstInterAudioSrc *interaudiosrc = GST_INTER_AUDIO_SRC (src); + + GST_DEBUG_OBJECT (interaudiosrc, "seek_segment"); + + return FALSE; +} diff --git a/gst/inter/gstinteraudiosrc.h b/gst/inter/gstinteraudiosrc.h new file mode 100644 index 0000000..958a1a5 --- /dev/null +++ b/gst/inter/gstinteraudiosrc.h @@ -0,0 +1,56 @@ +/* GStreamer + * Copyright (C) 2011 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. + */ + +#ifndef _GST_INTER_AUDIO_SRC_H_ +#define _GST_INTER_AUDIO_SRC_H_ + +#include +#include "gstintersurface.h" + +G_BEGIN_DECLS + +#define GST_TYPE_INTER_AUDIO_SRC (gst_inter_audio_src_get_type()) +#define GST_INTER_AUDIO_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INTER_AUDIO_SRC,GstInterAudioSrc)) +#define GST_INTER_AUDIO_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INTER_AUDIO_SRC,GstInterAudioSrcClass)) +#define GST_IS_INTER_AUDIO_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INTER_AUDIO_SRC)) +#define GST_IS_INTER_AUDIO_SRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INTER_AUDIO_SRC)) + +typedef struct _GstInterAudioSrc GstInterAudioSrc; +typedef struct _GstInterAudioSrcClass GstInterAudioSrcClass; + +struct _GstInterAudioSrc +{ + GstBaseSrc base_interaudiosrc; + + GstInterSurface *surface; + + guint64 n_samples; + int sample_rate; +}; + +struct _GstInterAudioSrcClass +{ + GstBaseSrcClass base_interaudiosrc_class; +}; + +GType gst_inter_audio_src_get_type (void); + +G_END_DECLS + +#endif diff --git a/gst/inter/gstintersurface.c b/gst/inter/gstintersurface.c new file mode 100644 index 0000000..545cd6f --- /dev/null +++ b/gst/inter/gstintersurface.c @@ -0,0 +1,42 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstintersurface.h" + +static GstInterSurface *surface; + + +GstInterSurface * +gst_inter_surface_get (const char *name) +{ + return surface; + +} + +void +gst_inter_surface_init (void) +{ + surface = g_malloc0 (sizeof (GstInterSurface)); + surface->mutex = g_mutex_new (); + surface->audio_adapter = gst_adapter_new (); +} diff --git a/gst/inter/gstintersurface.h b/gst/inter/gstintersurface.h new file mode 100644 index 0000000..9244044 --- /dev/null +++ b/gst/inter/gstintersurface.h @@ -0,0 +1,58 @@ +/* GStreamer + * Copyright (C) 2011 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. + */ + +#ifndef _GST_INTER_SURFACE_H_ +#define _GST_INTER_SURFACE_H_ + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GstInterSurface GstInterSurface; + +struct _GstInterSurface +{ + GMutex *mutex; + + /* video */ + GstVideoFormat format; + int fps_n; + int fps_d; + int width; + int height; + int n_frames; + int video_buffer_count; + + /* audio */ + int sample_rate; + int n_channels; + + GstBuffer *video_buffer; + GstAdapter *audio_adapter; +}; + + +GstInterSurface * gst_inter_surface_get (const char *name); +void gst_inter_surface_init (void); + + +G_END_DECLS + +#endif diff --git a/gst/inter/gstintertest.c b/gst/inter/gstintertest.c new file mode 100644 index 0000000..cb7b08c --- /dev/null +++ b/gst/inter/gstintertest.c @@ -0,0 +1,502 @@ +/* GstInterTest + * Copyright (C) 2011 FIXME + * Copyright (C) 2010 Entropy Wave Inc + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +//#define GETTEXT_PACKAGE "intertest" + + +typedef struct _GstInterTest GstInterTest; +struct _GstInterTest +{ + GstElement *pipeline; + GstBus *bus; + GMainLoop *main_loop; + + GstElement *source_element; + GstElement *sink_element; + + gboolean paused_for_buffering; + guint timer_id; +}; + +GstInterTest *gst_inter_test_new (void); +void gst_inter_test_free (GstInterTest * intertest); +void gst_inter_test_create_pipeline_server (GstInterTest * intertest); +void gst_inter_test_create_pipeline_vts (GstInterTest * intertest); +void gst_inter_test_create_pipeline_playbin (GstInterTest * intertest, + const char *uri); +void gst_inter_test_start (GstInterTest * intertest); +void gst_inter_test_stop (GstInterTest * intertest); + +static gboolean gst_inter_test_handle_message (GstBus * bus, + GstMessage * message, gpointer data); +static gboolean onesecond_timer (gpointer priv); + + +gboolean verbose; + +static GOptionEntry entries[] = { + {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Be verbose", NULL}, + + {NULL} + +}; + +int +main (int argc, char *argv[]) +{ + GError *error = NULL; + GOptionContext *context; + GstInterTest *intertest1; + GstInterTest *intertest2; + GMainLoop *main_loop; + + if (!g_thread_supported ()) + g_thread_init (NULL); + + context = g_option_context_new ("- FIXME"); + g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); + g_option_context_add_group (context, gst_init_get_option_group ()); + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_print ("option parsing failed: %s\n", error->message); + exit (1); + } + g_option_context_free (context); + + intertest1 = gst_inter_test_new (); + gst_inter_test_create_pipeline_server (intertest1); + gst_inter_test_start (intertest1); + + intertest2 = gst_inter_test_new (); + gst_inter_test_create_pipeline_playbin (intertest2, NULL); + gst_inter_test_start (intertest2); + + main_loop = g_main_loop_new (NULL, TRUE); + intertest1->main_loop = main_loop; + intertest2->main_loop = main_loop; + + g_main_loop_run (main_loop); + + exit (0); +} + + +GstInterTest * +gst_inter_test_new (void) +{ + GstInterTest *intertest; + + intertest = g_new0 (GstInterTest, 1); + + return intertest; +} + +void +gst_inter_test_free (GstInterTest * intertest) +{ + if (intertest->source_element) { + gst_object_unref (intertest->source_element); + intertest->source_element = NULL; + } + if (intertest->sink_element) { + gst_object_unref (intertest->sink_element); + intertest->sink_element = NULL; + } + + if (intertest->pipeline) { + gst_element_set_state (intertest->pipeline, GST_STATE_NULL); + gst_object_unref (intertest->pipeline); + intertest->pipeline = NULL; + } + g_free (intertest); +} + +void +gst_inter_test_create_pipeline_playbin (GstInterTest * intertest, + const char *uri) +{ + GstElement *pipeline; + GError *error = NULL; + + if (uri == NULL) { + gst_inter_test_create_pipeline_vts (intertest); + return; + } + + pipeline = gst_pipeline_new (NULL); + gst_bin_add (GST_BIN (pipeline), + gst_element_factory_make ("playbin2", "source")); + + if (error) { + g_print ("pipeline parsing error: %s\n", error->message); + gst_object_unref (pipeline); + return; + } + + intertest->pipeline = pipeline; + + gst_pipeline_set_auto_flush_bus (GST_PIPELINE (pipeline), FALSE); + intertest->bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + gst_bus_add_watch (intertest->bus, gst_inter_test_handle_message, intertest); + + intertest->source_element = + gst_bin_get_by_name (GST_BIN (pipeline), "source"); + g_print ("source_element is %p\n", intertest->source_element); + + g_print ("setting uri to %s\n", uri); + g_object_set (intertest->source_element, "uri", uri, NULL); +} + +void +gst_inter_test_create_pipeline_vts (GstInterTest * intertest) +{ + GString *pipe_desc; + GstElement *pipeline; + GError *error = NULL; + + pipe_desc = g_string_new (""); + + g_string_append (pipe_desc, "videotestsrc name=source num-buffers=10000 ! "); + g_string_append (pipe_desc, + "video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! "); + g_string_append (pipe_desc, "timeoverlay ! "); + g_string_append (pipe_desc, "intervideosink name=sink sync=true "); + g_string_append (pipe_desc, + "audiotestsrc samplesperbuffer=1600 num-buffers=100 ! "); + g_string_append (pipe_desc, "interaudiosink "); + + if (verbose) + g_print ("pipeline: %s\n", pipe_desc->str); + + pipeline = (GstElement *) gst_parse_launch (pipe_desc->str, &error); + g_string_free (pipe_desc, FALSE); + + if (error) { + g_print ("pipeline parsing error: %s\n", error->message); + gst_object_unref (pipeline); + return; + } + + intertest->pipeline = pipeline; + + gst_pipeline_set_auto_flush_bus (GST_PIPELINE (pipeline), FALSE); + intertest->bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + gst_bus_add_watch (intertest->bus, gst_inter_test_handle_message, intertest); + + intertest->source_element = + gst_bin_get_by_name (GST_BIN (pipeline), "source"); + intertest->sink_element = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); +} + +void +gst_inter_test_create_pipeline_server (GstInterTest * intertest) +{ + GString *pipe_desc; + GstElement *pipeline; + GError *error = NULL; + + pipe_desc = g_string_new (""); + + g_string_append (pipe_desc, "intervideosrc ! queue ! "); + g_string_append (pipe_desc, "xvimagesink name=sink "); + g_string_append (pipe_desc, "interaudiosrc ! queue ! "); + g_string_append (pipe_desc, "alsasink latency-time=100000000 "); + + if (verbose) + g_print ("pipeline: %s\n", pipe_desc->str); + + pipeline = (GstElement *) gst_parse_launch (pipe_desc->str, &error); + g_string_free (pipe_desc, FALSE); + + if (error) { + g_print ("pipeline parsing error: %s\n", error->message); + gst_object_unref (pipeline); + return; + } + + intertest->pipeline = pipeline; + + gst_pipeline_set_auto_flush_bus (GST_PIPELINE (pipeline), FALSE); + intertest->bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + gst_bus_add_watch (intertest->bus, gst_inter_test_handle_message, intertest); + + intertest->source_element = + gst_bin_get_by_name (GST_BIN (pipeline), "source"); + intertest->sink_element = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); +} + +void +gst_inter_test_start (GstInterTest * intertest) +{ + gst_element_set_state (intertest->pipeline, GST_STATE_READY); + + intertest->timer_id = g_timeout_add (1000, onesecond_timer, intertest); +} + +void +gst_inter_test_stop (GstInterTest * intertest) +{ + gst_element_set_state (intertest->pipeline, GST_STATE_NULL); + + g_source_remove (intertest->timer_id); +} + +static void +gst_inter_test_handle_eos (GstInterTest * intertest) +{ + gst_inter_test_stop (intertest); +} + +static void +gst_inter_test_handle_error (GstInterTest * intertest, GError * error, + const char *debug) +{ + g_print ("error: %s\n", error->message); + gst_inter_test_stop (intertest); +} + +static void +gst_inter_test_handle_warning (GstInterTest * intertest, GError * error, + const char *debug) +{ + g_print ("warning: %s\n", error->message); +} + +static void +gst_inter_test_handle_info (GstInterTest * intertest, GError * error, + const char *debug) +{ + g_print ("info: %s\n", error->message); +} + +static void +gst_inter_test_handle_null_to_ready (GstInterTest * intertest) +{ + gst_element_set_state (intertest->pipeline, GST_STATE_PAUSED); + +} + +static void +gst_inter_test_handle_ready_to_paused (GstInterTest * intertest) +{ + if (!intertest->paused_for_buffering) { + gst_element_set_state (intertest->pipeline, GST_STATE_PLAYING); + } +} + +static void +gst_inter_test_handle_paused_to_playing (GstInterTest * intertest) +{ + +} + +static void +gst_inter_test_handle_playing_to_paused (GstInterTest * intertest) +{ + +} + +static void +gst_inter_test_handle_paused_to_ready (GstInterTest * intertest) +{ + +} + +static void +gst_inter_test_handle_ready_to_null (GstInterTest * intertest) +{ + g_main_loop_quit (intertest->main_loop); + +} + + +static gboolean +gst_inter_test_handle_message (GstBus * bus, GstMessage * message, + gpointer data) +{ + GstInterTest *intertest = (GstInterTest *) data; + + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_EOS: + gst_inter_test_handle_eos (intertest); + break; + case GST_MESSAGE_ERROR: + { + GError *error = NULL; + gchar *debug; + + gst_message_parse_error (message, &error, &debug); + gst_inter_test_handle_error (intertest, error, debug); + } + break; + case GST_MESSAGE_WARNING: + { + GError *error = NULL; + gchar *debug; + + gst_message_parse_warning (message, &error, &debug); + gst_inter_test_handle_warning (intertest, error, debug); + } + break; + case GST_MESSAGE_INFO: + { + GError *error = NULL; + gchar *debug; + + gst_message_parse_info (message, &error, &debug); + gst_inter_test_handle_info (intertest, error, debug); + } + break; + case GST_MESSAGE_TAG: + { + GstTagList *tag_list; + + gst_message_parse_tag (message, &tag_list); + if (verbose) + g_print ("tag\n"); + } + break; + case GST_MESSAGE_STATE_CHANGED: + { + GstState oldstate, newstate, pending; + + gst_message_parse_state_changed (message, &oldstate, &newstate, &pending); + if (GST_ELEMENT (message->src) == intertest->pipeline) { + if (verbose) + g_print ("state change from %s to %s\n", + gst_element_state_get_name (oldstate), + gst_element_state_get_name (newstate)); + switch (GST_STATE_TRANSITION (oldstate, newstate)) { + case GST_STATE_CHANGE_NULL_TO_READY: + gst_inter_test_handle_null_to_ready (intertest); + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_inter_test_handle_ready_to_paused (intertest); + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + gst_inter_test_handle_paused_to_playing (intertest); + break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + gst_inter_test_handle_playing_to_paused (intertest); + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_inter_test_handle_paused_to_ready (intertest); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_inter_test_handle_ready_to_null (intertest); + break; + default: + if (verbose) + g_print ("unknown state change from %s to %s\n", + gst_element_state_get_name (oldstate), + gst_element_state_get_name (newstate)); + } + } + } + break; + case GST_MESSAGE_BUFFERING: + { + int percent; + gst_message_parse_buffering (message, &percent); + //g_print("buffering %d\n", percent); + if (!intertest->paused_for_buffering && percent < 100) { + g_print ("pausing for buffing\n"); + intertest->paused_for_buffering = TRUE; + gst_element_set_state (intertest->pipeline, GST_STATE_PAUSED); + } else if (intertest->paused_for_buffering && percent == 100) { + g_print ("unpausing for buffing\n"); + intertest->paused_for_buffering = FALSE; + gst_element_set_state (intertest->pipeline, GST_STATE_PLAYING); + } + } + break; + case GST_MESSAGE_STATE_DIRTY: + case GST_MESSAGE_CLOCK_PROVIDE: + case GST_MESSAGE_CLOCK_LOST: + case GST_MESSAGE_NEW_CLOCK: + case GST_MESSAGE_STRUCTURE_CHANGE: + case GST_MESSAGE_STREAM_STATUS: + break; + case GST_MESSAGE_STEP_DONE: + case GST_MESSAGE_APPLICATION: + case GST_MESSAGE_ELEMENT: + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + case GST_MESSAGE_DURATION: + case GST_MESSAGE_LATENCY: + case GST_MESSAGE_ASYNC_START: + case GST_MESSAGE_ASYNC_DONE: + case GST_MESSAGE_REQUEST_STATE: + case GST_MESSAGE_STEP_START: + default: + if (verbose) { + g_print ("message: %s\n", GST_MESSAGE_TYPE_NAME (message)); + } + break; + case GST_MESSAGE_QOS: + break; + } + + return TRUE; +} + + + +static gboolean +onesecond_timer (gpointer priv) +{ + //GstInterTest *intertest = (GstInterTest *)priv; + + g_print (".\n"); + + return TRUE; +} + + + +/* helper functions */ + +#if 0 +gboolean +have_element (const gchar * element_name) +{ + GstPluginFeature *feature; + + feature = gst_default_registry_find_feature (element_name, + GST_TYPE_ELEMENT_FACTORY); + if (feature) { + g_object_unref (feature); + return TRUE; + } + return FALSE; +} +#endif diff --git a/gst/inter/gstintervideosink.c b/gst/inter/gstintervideosink.c new file mode 100644 index 0000000..43349f9 --- /dev/null +++ b/gst/inter/gstintervideosink.c @@ -0,0 +1,327 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstintervideosink + * + * The intervideosink element does FIXME stuff. + * + * + * Example launch line + * |[ + * gst-launch -v fakesrc ! intervideosink ! FIXME ! fakesink + * ]| + * FIXME Describe what the pipeline does. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include "gstintervideosink.h" + +GST_DEBUG_CATEGORY_STATIC (gst_inter_video_sink_debug_category); +#define GST_CAT_DEFAULT gst_inter_video_sink_debug_category + +/* prototypes */ + + +static void gst_inter_video_sink_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_inter_video_sink_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_inter_video_sink_dispose (GObject * object); +static void gst_inter_video_sink_finalize (GObject * object); + +static GstCaps *gst_inter_video_sink_get_caps (GstBaseSink * sink); +static gboolean gst_inter_video_sink_set_caps (GstBaseSink * sink, + GstCaps * caps); +static GstFlowReturn gst_inter_video_sink_buffer_alloc (GstBaseSink * sink, + guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); +static void gst_inter_video_sink_get_times (GstBaseSink * sink, + GstBuffer * buffer, GstClockTime * start, GstClockTime * end); +static gboolean gst_inter_video_sink_start (GstBaseSink * sink); +static gboolean gst_inter_video_sink_stop (GstBaseSink * sink); +static gboolean gst_inter_video_sink_unlock (GstBaseSink * sink); +static gboolean gst_inter_video_sink_event (GstBaseSink * sink, + GstEvent * event); +static GstFlowReturn gst_inter_video_sink_preroll (GstBaseSink * sink, + GstBuffer * buffer); +static GstFlowReturn gst_inter_video_sink_render (GstBaseSink * sink, + GstBuffer * buffer); +static GstStateChangeReturn gst_inter_video_sink_async_play (GstBaseSink * + sink); +static gboolean gst_inter_video_sink_activate_pull (GstBaseSink * sink, + gboolean active); +static gboolean gst_inter_video_sink_unlock_stop (GstBaseSink * sink); + +enum +{ + PROP_0 +}; + +/* pad templates */ + +static GstStaticPadTemplate gst_inter_video_sink_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); + + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_inter_video_sink_debug_category, "intervideosink", 0, \ + "debug category for intervideosink element"); + +GST_BOILERPLATE_FULL (GstInterVideoSink, gst_inter_video_sink, GstBaseSink, + GST_TYPE_BASE_SINK, DEBUG_INIT); + +static void +gst_inter_video_sink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_inter_video_sink_sink_template); + + gst_element_class_set_details_simple (element_class, "FIXME Long name", + "Generic", "FIXME Description", "FIXME "); +} + +static void +gst_inter_video_sink_class_init (GstInterVideoSinkClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSinkClass *base_sink_class = GST_BASE_SINK_CLASS (klass); + + gobject_class->set_property = gst_inter_video_sink_set_property; + gobject_class->get_property = gst_inter_video_sink_get_property; + gobject_class->dispose = gst_inter_video_sink_dispose; + gobject_class->finalize = gst_inter_video_sink_finalize; + base_sink_class->get_caps = GST_DEBUG_FUNCPTR (gst_inter_video_sink_get_caps); + base_sink_class->set_caps = GST_DEBUG_FUNCPTR (gst_inter_video_sink_set_caps); + if (0) + base_sink_class->buffer_alloc = + GST_DEBUG_FUNCPTR (gst_inter_video_sink_buffer_alloc); + base_sink_class->get_times = + GST_DEBUG_FUNCPTR (gst_inter_video_sink_get_times); + base_sink_class->start = GST_DEBUG_FUNCPTR (gst_inter_video_sink_start); + base_sink_class->stop = GST_DEBUG_FUNCPTR (gst_inter_video_sink_stop); + base_sink_class->unlock = GST_DEBUG_FUNCPTR (gst_inter_video_sink_unlock); + if (0) + base_sink_class->event = GST_DEBUG_FUNCPTR (gst_inter_video_sink_event); + //if (0) + base_sink_class->preroll = GST_DEBUG_FUNCPTR (gst_inter_video_sink_preroll); + base_sink_class->render = GST_DEBUG_FUNCPTR (gst_inter_video_sink_render); + if (0) + base_sink_class->async_play = + GST_DEBUG_FUNCPTR (gst_inter_video_sink_async_play); + if (0) + base_sink_class->activate_pull = + GST_DEBUG_FUNCPTR (gst_inter_video_sink_activate_pull); + base_sink_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_inter_video_sink_unlock_stop); + +} + +static void +gst_inter_video_sink_init (GstInterVideoSink * intervideosink, + GstInterVideoSinkClass * intervideosink_class) +{ + intervideosink->surface = gst_inter_surface_get ("default"); +} + +void +gst_inter_video_sink_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + /* GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_video_sink_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + /* GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_video_sink_dispose (GObject * object) +{ + /* GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (object); */ + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_inter_video_sink_finalize (GObject * object) +{ + /* GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (object); */ + + /* clean up object here */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + + +static GstCaps * +gst_inter_video_sink_get_caps (GstBaseSink * sink) +{ + + return NULL; +} + +static gboolean +gst_inter_video_sink_set_caps (GstBaseSink * sink, GstCaps * caps) +{ + + return TRUE; +} + +static GstFlowReturn +gst_inter_video_sink_buffer_alloc (GstBaseSink * sink, guint64 offset, + guint size, GstCaps * caps, GstBuffer ** buf) +{ + + return GST_FLOW_ERROR; +} + +static void +gst_inter_video_sink_get_times (GstBaseSink * sink, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (sink); + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { + *start = GST_BUFFER_TIMESTAMP (buffer); + if (GST_BUFFER_DURATION_IS_VALID (buffer)) { + *end = *start + GST_BUFFER_DURATION (buffer); + } else { + if (intervideosink->fps_n > 0) { + *end = *start + + gst_util_uint64_scale_int (GST_SECOND, intervideosink->fps_d, + intervideosink->fps_n); + } + } + } + + +} + +static gboolean +gst_inter_video_sink_start (GstBaseSink * sink) +{ + + return TRUE; +} + +static gboolean +gst_inter_video_sink_stop (GstBaseSink * sink) +{ + GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (sink); + + g_mutex_lock (intervideosink->surface->mutex); + if (intervideosink->surface->video_buffer) { + gst_buffer_unref (intervideosink->surface->video_buffer); + } + intervideosink->surface->video_buffer = NULL; + g_mutex_unlock (intervideosink->surface->mutex); + + return TRUE; +} + +static gboolean +gst_inter_video_sink_unlock (GstBaseSink * sink) +{ + + return TRUE; +} + +static gboolean +gst_inter_video_sink_event (GstBaseSink * sink, GstEvent * event) +{ + + return TRUE; +} + +static GstFlowReturn +gst_inter_video_sink_preroll (GstBaseSink * sink, GstBuffer * buffer) +{ + //return gst_inter_video_sink_render (sink, buffer); + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_inter_video_sink_render (GstBaseSink * sink, GstBuffer * buffer) +{ + GstInterVideoSink *intervideosink = GST_INTER_VIDEO_SINK (sink); + + g_mutex_lock (intervideosink->surface->mutex); + if (intervideosink->surface->video_buffer) { + gst_buffer_unref (intervideosink->surface->video_buffer); + } + intervideosink->surface->video_buffer = gst_buffer_ref (buffer); + intervideosink->surface->video_buffer_count = 0; + g_mutex_unlock (intervideosink->surface->mutex); + + return GST_FLOW_OK; +} + +static GstStateChangeReturn +gst_inter_video_sink_async_play (GstBaseSink * sink) +{ + + return GST_STATE_CHANGE_SUCCESS; +} + +static gboolean +gst_inter_video_sink_activate_pull (GstBaseSink * sink, gboolean active) +{ + + return TRUE; +} + +static gboolean +gst_inter_video_sink_unlock_stop (GstBaseSink * sink) +{ + + return TRUE; +} diff --git a/gst/inter/gstintervideosink.h b/gst/inter/gstintervideosink.h new file mode 100644 index 0000000..5b02efe --- /dev/null +++ b/gst/inter/gstintervideosink.h @@ -0,0 +1,56 @@ +/* GStreamer + * Copyright (C) 2011 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. + */ + +#ifndef _GST_INTER_VIDEO_SINK_H_ +#define _GST_INTER_VIDEO_SINK_H_ + +#include +#include "gstintersurface.h" + +G_BEGIN_DECLS + +#define GST_TYPE_INTER_VIDEO_SINK (gst_inter_video_sink_get_type()) +#define GST_INTER_VIDEO_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INTER_VIDEO_SINK,GstInterVideoSink)) +#define GST_INTER_VIDEO_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INTER_VIDEO_SINK,GstInterVideoSinkClass)) +#define GST_IS_INTER_VIDEO_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INTER_VIDEO_SINK)) +#define GST_IS_INTER_VIDEO_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INTER_VIDEO_SINK)) + +typedef struct _GstInterVideoSink GstInterVideoSink; +typedef struct _GstInterVideoSinkClass GstInterVideoSinkClass; + +struct _GstInterVideoSink +{ + GstBaseSink base_intervideosink; + + GstInterSurface *surface; + + int fps_n; + int fps_d; +}; + +struct _GstInterVideoSinkClass +{ + GstBaseSinkClass base_intervideosink_class; +}; + +GType gst_inter_video_sink_get_type (void); + +G_END_DECLS + +#endif diff --git a/gst/inter/gstintervideosrc.c b/gst/inter/gstintervideosrc.c new file mode 100644 index 0000000..2f5dbba --- /dev/null +++ b/gst/inter/gstintervideosrc.c @@ -0,0 +1,505 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstintervideosrc + * + * The intervideosrc element does FIXME stuff. + * + * + * Example launch line + * |[ + * gst-launch -v fakesrc ! intervideosrc ! FIXME ! fakesink + * ]| + * FIXME Describe what the pipeline does. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include "gstintervideosrc.h" +#include + +GST_DEBUG_CATEGORY_STATIC (gst_inter_video_src_debug_category); +#define GST_CAT_DEFAULT gst_inter_video_src_debug_category + +/* prototypes */ + + +static void gst_inter_video_src_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_inter_video_src_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_inter_video_src_dispose (GObject * object); +static void gst_inter_video_src_finalize (GObject * object); + +static GstCaps *gst_inter_video_src_get_caps (GstBaseSrc * src); +static gboolean gst_inter_video_src_set_caps (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_inter_video_src_negotiate (GstBaseSrc * src); +static gboolean gst_inter_video_src_newsegment (GstBaseSrc * src); +static gboolean gst_inter_video_src_start (GstBaseSrc * src); +static gboolean gst_inter_video_src_stop (GstBaseSrc * src); +static void +gst_inter_video_src_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end); +static gboolean gst_inter_video_src_is_seekable (GstBaseSrc * src); +static gboolean gst_inter_video_src_unlock (GstBaseSrc * src); +static gboolean gst_inter_video_src_event (GstBaseSrc * src, GstEvent * event); +static GstFlowReturn +gst_inter_video_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf); +static gboolean gst_inter_video_src_do_seek (GstBaseSrc * src, + GstSegment * segment); +static gboolean gst_inter_video_src_query (GstBaseSrc * src, GstQuery * query); +static gboolean gst_inter_video_src_check_get_range (GstBaseSrc * src); +static void gst_inter_video_src_fixate (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_inter_video_src_unlock_stop (GstBaseSrc * src); +static gboolean +gst_inter_video_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment); + +enum +{ + PROP_0 +}; + +/* pad templates */ + +static GstStaticPadTemplate gst_inter_video_src_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_inter_video_src_debug_category, "intervideosrc", 0, \ + "debug category for intervideosrc element"); + +GST_BOILERPLATE_FULL (GstInterVideoSrc, gst_inter_video_src, GstBaseSrc, + GST_TYPE_BASE_SRC, DEBUG_INIT); + +static void +gst_inter_video_src_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_inter_video_src_src_template); + + gst_element_class_set_details_simple (element_class, "FIXME Long name", + "Generic", "FIXME Description", "FIXME "); +} + +static void +gst_inter_video_src_class_init (GstInterVideoSrcClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS (klass); + + gobject_class->set_property = gst_inter_video_src_set_property; + gobject_class->get_property = gst_inter_video_src_get_property; + gobject_class->dispose = gst_inter_video_src_dispose; + gobject_class->finalize = gst_inter_video_src_finalize; + if (0) + base_src_class->get_caps = GST_DEBUG_FUNCPTR (gst_inter_video_src_get_caps); + base_src_class->set_caps = GST_DEBUG_FUNCPTR (gst_inter_video_src_set_caps); + if (0) + base_src_class->negotiate = + GST_DEBUG_FUNCPTR (gst_inter_video_src_negotiate); + if (0) + base_src_class->newsegment = + GST_DEBUG_FUNCPTR (gst_inter_video_src_newsegment); + base_src_class->start = GST_DEBUG_FUNCPTR (gst_inter_video_src_start); + base_src_class->stop = GST_DEBUG_FUNCPTR (gst_inter_video_src_stop); + base_src_class->get_times = GST_DEBUG_FUNCPTR (gst_inter_video_src_get_times); + if (0) + base_src_class->is_seekable = + GST_DEBUG_FUNCPTR (gst_inter_video_src_is_seekable); + base_src_class->unlock = GST_DEBUG_FUNCPTR (gst_inter_video_src_unlock); + base_src_class->event = GST_DEBUG_FUNCPTR (gst_inter_video_src_event); + base_src_class->create = GST_DEBUG_FUNCPTR (gst_inter_video_src_create); + if (0) + base_src_class->do_seek = GST_DEBUG_FUNCPTR (gst_inter_video_src_do_seek); + base_src_class->query = GST_DEBUG_FUNCPTR (gst_inter_video_src_query); + if (0) + base_src_class->check_get_range = + GST_DEBUG_FUNCPTR (gst_inter_video_src_check_get_range); + base_src_class->fixate = GST_DEBUG_FUNCPTR (gst_inter_video_src_fixate); + if (0) + base_src_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_inter_video_src_unlock_stop); + if (0) + base_src_class->prepare_seek_segment = + GST_DEBUG_FUNCPTR (gst_inter_video_src_prepare_seek_segment); + + +} + +static void +gst_inter_video_src_init (GstInterVideoSrc * intervideosrc, + GstInterVideoSrcClass * intervideosrc_class) +{ + gst_base_src_set_format (GST_BASE_SRC (intervideosrc), GST_FORMAT_TIME); + gst_base_src_set_live (GST_BASE_SRC (intervideosrc), TRUE); + + intervideosrc->surface = gst_inter_surface_get ("default"); +} + +void +gst_inter_video_src_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + /* GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_video_src_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + /* GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_inter_video_src_dispose (GObject * object) +{ + /* GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (object); */ + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_inter_video_src_finalize (GObject * object) +{ + /* GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (object); */ + + /* clean up object here */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + +static GstCaps * +gst_inter_video_src_get_caps (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "get_caps"); + + return NULL; +} + +static gboolean +gst_inter_video_src_set_caps (GstBaseSrc * src, GstCaps * caps) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + gboolean ret; + GstVideoFormat format; + int width, height; + int fps_n, fps_d; + + GST_DEBUG_OBJECT (intervideosrc, "set_caps"); + + ret = gst_video_format_parse_caps (caps, &format, &width, &height); + ret &= gst_video_parse_caps_framerate (caps, &fps_n, &fps_d); + + if (ret) { + intervideosrc->format = format; + intervideosrc->width = width; + intervideosrc->height = height; + intervideosrc->fps_n = fps_n; + intervideosrc->fps_d = fps_d; + GST_DEBUG ("fps %d/%d", fps_n, fps_d); + } + + return ret; +} + +static gboolean +gst_inter_video_src_negotiate (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "negotiate"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_newsegment (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "newsegment"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_start (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "start"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_stop (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "stop"); + + return TRUE; +} + +static void +gst_inter_video_src_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "get_times"); + + /* for live sources, sync on the timestamp of the buffer */ + if (gst_base_src_is_live (src)) { + 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 gboolean +gst_inter_video_src_is_seekable (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "is_seekable"); + + return FALSE; +} + +static gboolean +gst_inter_video_src_unlock (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "unlock"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_event (GstBaseSrc * src, GstEvent * event) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "event"); + + return TRUE; +} + +static GstFlowReturn +gst_inter_video_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + GstBuffer *buffer; + guint8 *data; + + GST_DEBUG_OBJECT (intervideosrc, "create"); + + buffer = NULL; + + g_mutex_lock (intervideosrc->surface->mutex); + if (intervideosrc->surface->video_buffer) { + buffer = gst_buffer_ref (intervideosrc->surface->video_buffer); + intervideosrc->surface->video_buffer_count++; + if (intervideosrc->surface->video_buffer_count >= 30) { + gst_buffer_unref (intervideosrc->surface->video_buffer); + intervideosrc->surface->video_buffer = NULL; + } + } + g_mutex_unlock (intervideosrc->surface->mutex); + + if (buffer == NULL) { + buffer = + gst_buffer_new_and_alloc (gst_video_format_get_size + (intervideosrc->format, intervideosrc->width, intervideosrc->height)); + + data = GST_BUFFER_DATA (buffer); + memset (data, 16, + gst_video_format_get_row_stride (intervideosrc->format, 0, + intervideosrc->width) * + gst_video_format_get_component_height (intervideosrc->format, 0, + intervideosrc->height)); + + memset (data + gst_video_format_get_component_offset (intervideosrc->format, + 1, intervideosrc->width, intervideosrc->height), + 128, + 2 * gst_video_format_get_row_stride (intervideosrc->format, 1, + intervideosrc->width) * + gst_video_format_get_component_height (intervideosrc->format, 1, + intervideosrc->height)); + +#if 0 + { + int i; + for (i = 0; i < 10000; i++) { + data[i] = g_random_int () & 0xff; + } + } +#endif + } + + buffer = gst_buffer_make_metadata_writable (buffer); + + GST_BUFFER_TIMESTAMP (buffer) = + gst_util_uint64_scale_int (GST_SECOND * intervideosrc->n_frames, + intervideosrc->fps_d, intervideosrc->fps_n); + GST_DEBUG_OBJECT (intervideosrc, "create ts %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer))); + GST_BUFFER_DURATION (buffer) = + gst_util_uint64_scale_int (GST_SECOND * (intervideosrc->n_frames + 1), + intervideosrc->fps_d, + intervideosrc->fps_n) - GST_BUFFER_TIMESTAMP (buffer); + GST_BUFFER_OFFSET (buffer) = intervideosrc->n_frames; + GST_BUFFER_OFFSET_END (buffer) = -1; + GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT); + if (intervideosrc->n_frames == 0) { + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); + } + gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (intervideosrc))); + intervideosrc->n_frames++; + + *buf = buffer; + + return GST_FLOW_OK; +} + +static gboolean +gst_inter_video_src_do_seek (GstBaseSrc * src, GstSegment * segment) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "do_seek"); + + return FALSE; +} + +static gboolean +gst_inter_video_src_query (GstBaseSrc * src, GstQuery * query) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "query"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_check_get_range (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "get_range"); + + return FALSE; +} + +static void +gst_inter_video_src_fixate (GstBaseSrc * src, GstCaps * caps) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + GstStructure *structure; + + GST_DEBUG_OBJECT (intervideosrc, "fixate"); + + structure = gst_caps_get_structure (caps, 0); + + 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); + if (gst_structure_has_field (structure, "pixel-aspect-ratio")) + gst_structure_fixate_field_nearest_fraction (structure, + "pixel-aspect-ratio", 1, 1); + if (gst_structure_has_field (structure, "color-matrix")) + gst_structure_fixate_field_string (structure, "color-matrix", "sdtv"); + if (gst_structure_has_field (structure, "chroma-site")) + gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2"); + + if (gst_structure_has_field (structure, "interlaced")) + gst_structure_fixate_field_boolean (structure, "interlaced", FALSE); + +} + +static gboolean +gst_inter_video_src_unlock_stop (GstBaseSrc * src) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "stop"); + + return TRUE; +} + +static gboolean +gst_inter_video_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment) +{ + GstInterVideoSrc *intervideosrc = GST_INTER_VIDEO_SRC (src); + + GST_DEBUG_OBJECT (intervideosrc, "seek_segment"); + + return FALSE; +} diff --git a/gst/inter/gstintervideosrc.h b/gst/inter/gstintervideosrc.h new file mode 100644 index 0000000..e7a3cd0 --- /dev/null +++ b/gst/inter/gstintervideosrc.h @@ -0,0 +1,61 @@ +/* GStreamer + * Copyright (C) 2011 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. + */ + +#ifndef _GST_INTER_VIDEO_SRC_H_ +#define _GST_INTER_VIDEO_SRC_H_ + +#include +#include +#include "gstintersurface.h" + +G_BEGIN_DECLS + +#define GST_TYPE_INTER_VIDEO_SRC (gst_inter_video_src_get_type()) +#define GST_INTER_VIDEO_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INTER_VIDEO_SRC,GstInterVideoSrc)) +#define GST_INTER_VIDEO_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INTER_VIDEO_SRC,GstInterVideoSrcClass)) +#define GST_IS_INTER_VIDEO_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INTER_VIDEO_SRC)) +#define GST_IS_INTER_VIDEO_SRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INTER_VIDEO_SRC)) + +typedef struct _GstInterVideoSrc GstInterVideoSrc; +typedef struct _GstInterVideoSrcClass GstInterVideoSrcClass; + +struct _GstInterVideoSrc +{ + GstBaseSrc base_intervideosrc; + + GstInterSurface *surface; + + GstVideoFormat format; + int fps_n; + int fps_d; + int n_frames; + int width; + int height; +}; + +struct _GstInterVideoSrcClass +{ + GstBaseSrcClass base_intervideosrc_class; +}; + +GType gst_inter_video_src_get_type (void); + +G_END_DECLS + +#endif diff --git a/gst/interlace/Makefile.in b/gst/interlace/Makefile.in index 59ca2ae..8b04dd6 100644 --- a/gst/interlace/Makefile.in +++ b/gst/interlace/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstinterlace_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstinterlace_la_OBJECTS = libgstinterlace_la-gstinterlace.lo libgstinterlace_la_OBJECTS = $(am_libgstinterlace_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstinterlace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstinterlace_la_SOURCES) DIST_SOURCES = $(libgstinterlace_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -604,7 +631,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstinterlace.la: $(libgstinterlace_la_OBJECTS) $(libgstinterlace_la_DEPENDENCIES) +libgstinterlace.la: $(libgstinterlace_la_OBJECTS) $(libgstinterlace_la_DEPENDENCIES) $(EXTRA_libgstinterlace_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstinterlace_la_LINK) -rpath $(plugindir) $(libgstinterlace_la_OBJECTS) $(libgstinterlace_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -618,34 +645,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstinterlace_la-gstinterlace.lo: gstinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterlace_la_CFLAGS) $(CFLAGS) -MT libgstinterlace_la-gstinterlace.lo -MD -MP -MF $(DEPDIR)/libgstinterlace_la-gstinterlace.Tpo -c -o libgstinterlace_la-gstinterlace.lo `test -f 'gstinterlace.c' || echo '$(srcdir)/'`gstinterlace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterlace_la-gstinterlace.Tpo $(DEPDIR)/libgstinterlace_la-gstinterlace.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstinterlace.c' object='libgstinterlace_la-gstinterlace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstinterlace.c' object='libgstinterlace_la-gstinterlace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstinterlace_la-gstinterlace.lo `test -f 'gstinterlace.c' || echo '$(srcdir)/'`gstinterlace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstinterlace_la-gstinterlace.lo `test -f 'gstinterlace.c' || echo '$(srcdir)/'`gstinterlace.c mostlyclean-libtool: -rm -f *.lo @@ -752,10 +775,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/interlace/gstinterlace.c b/gst/interlace/gstinterlace.c index c6181ec..96455f1 100644 --- a/gst/interlace/gstinterlace.c +++ b/gst/interlace/gstinterlace.c @@ -187,6 +187,7 @@ static gboolean gst_interlace_setcaps (GstPad * pad, GstCaps * caps); static GstCaps *gst_interlace_getcaps (GstPad * pad); static GstStateChangeReturn gst_interlace_change_state (GstElement * element, GstStateChange transition); +static void gst_interlace_finalize (GObject * obj); static GstElementClass *parent_class = NULL; @@ -226,10 +227,10 @@ gst_interlace_base_init (gpointer g_class) "Creates an interlaced video from progressive frames", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_interlace_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_interlace_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_interlace_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_interlace_src_template); } static void @@ -242,6 +243,7 @@ gst_interlace_class_init (GstInterlaceClass * klass) object_class->set_property = gst_interlace_set_property; object_class->get_property = gst_interlace_get_property; + object_class->finalize = gst_interlace_finalize; element_class->change_state = gst_interlace_change_state; @@ -269,6 +271,16 @@ gst_interlace_class_init (GstInterlaceClass * klass) } static void +gst_interlace_finalize (GObject * obj) +{ + GstInterlace *interlace = GST_INTERLACE (obj); + + gst_caps_replace (&interlace->srccaps, NULL); + + G_OBJECT_CLASS (parent_class)->finalize (obj); +} + +static void gst_interlace_reset (GstInterlace * interlace) { interlace->phase_index = interlace->pattern_offset; @@ -328,13 +340,19 @@ gst_interlace_decorate_buffer (GstInterlace * interlace, GstBuffer * buf, int n_fields) { /* field duration = src_fps_d / (2 * src_fps_n) */ - GST_BUFFER_TIMESTAMP (buf) = interlace->timebase + - gst_util_uint64_scale (GST_SECOND, - interlace->src_fps_d * interlace->fields_since_timebase, - interlace->src_fps_n * 2); - GST_BUFFER_DURATION (buf) = - gst_util_uint64_scale (GST_SECOND, interlace->src_fps_d * n_fields, - interlace->src_fps_n * 2); + if (interlace->src_fps_n == 0) { + /* If we don't know the fps, we can't generate timestamps/durations */ + GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE; + GST_BUFFER_DURATION (buf) = GST_CLOCK_TIME_NONE; + } else { + GST_BUFFER_TIMESTAMP (buf) = interlace->timebase + + gst_util_uint64_scale (GST_SECOND, + interlace->src_fps_d * interlace->fields_since_timebase, + interlace->src_fps_n * 2); + GST_BUFFER_DURATION (buf) = + gst_util_uint64_scale (GST_SECOND, interlace->src_fps_d * n_fields, + interlace->src_fps_n * 2); + } /* increment the buffer timestamp by duration for the next buffer */ gst_buffer_set_caps (buf, interlace->srccaps); @@ -457,6 +475,8 @@ gst_interlace_getcaps (GstPad * pad) gst_caps_set_simple (icaps, "interlaced", G_TYPE_BOOLEAN, pad == interlace->srcpad ? TRUE : FALSE, NULL); + gst_object_unref (interlace); + return icaps; } @@ -470,7 +490,7 @@ gst_interlace_setcaps (GstPad * pad, GstCaps * caps) gboolean interlaced = TRUE; int fps_n, fps_d; GstPad *otherpad; - GstCaps *othercaps; + GstCaps *othercaps = NULL; const PulldownFormat *pdformat; interlace = GST_INTERLACE (gst_pad_get_parent (pad)); @@ -519,6 +539,8 @@ gst_interlace_setcaps (GstPad * pad, GstCaps * caps) } error: + if (othercaps) + gst_caps_unref (othercaps); g_object_unref (interlace); return ret; diff --git a/gst/invtelecine/Makefile.am b/gst/invtelecine/Makefile.am deleted file mode 100644 index bce38dd..0000000 --- a/gst/invtelecine/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -plugin_LTLIBRARIES = libgstinvtelecine.la - -libgstinvtelecine_la_SOURCES = \ - gstinvtelecine.c - -libgstinvtelecine_la_CFLAGS = \ - $(GST_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) - -libgstinvtelecine_la_LIBADD = \ - $(GST_LIBS) \ - $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ - $(LIBM) - -libgstinvtelecine_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstinvtelecine_la_LIBTOOLFLAGS = --tag=disable-static - -Android.mk: Makefile.am $(BUILT_SOURCES) - androgenizer \ - -:PROJECT libgstinvtelecine -:SHARED libgstinvtelecine \ - -:TAGS eng debug \ - -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ - -:SOURCES $(libgstinvtelecine_la_SOURCES) \ - -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstinvtelecine_la_CFLAGS) \ - -:LDFLAGS $(libgstinvtelecine_la_LDFLAGS) \ - $(libgstinvtelecine_la_LIBADD) \ - -ldl \ - -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ - LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ - > $@ \ No newline at end of file diff --git a/gst/invtelecine/gstinvtelecine.c b/gst/invtelecine/gstinvtelecine.c deleted file mode 100644 index 50daab9..0000000 --- a/gst/invtelecine/gstinvtelecine.c +++ /dev/null @@ -1,966 +0,0 @@ -/* GStreamer - * Copyright (C) 2010 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 -#include -#include -#include -#include - -GST_DEBUG_CATEGORY (gst_invtelecine_debug); -#define GST_CAT_DEFAULT gst_invtelecine_debug - -#define GST_TYPE_INVTELECINE \ - (gst_invtelecine_get_type()) -#define GST_INVTELECINE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INVTELECINE,GstInvtelecine)) -#define GST_INVTELECINE_DEC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INVTELECINE,GstInvtelecineClass)) -#define GST_IS_GST_INVTELECINE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INVTELECINE)) -#define GST_IS_GST_INVTELECINE_CLASS(obj) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INVTELECINE)) - -typedef struct _GstInvtelecine GstInvtelecine; -typedef struct _GstInvtelecineClass GstInvtelecineClass; -typedef struct _Field Field; - -#define FIFO_SIZE 20 - -struct _Field -{ - GstBuffer *buffer; - int field_index; - double prev; - double prev1; - double prev2; - double prev3; - -}; - -struct _GstInvtelecine -{ - GstElement element; - - GstPad *srcpad; - GstPad *sinkpad; - - /* properties */ - gboolean verify_field_flags; - - /* state */ - int next_field; - int num_fields; - int field; - - gboolean locked; - int last_lock; - int phase; - - Field fifo[FIFO_SIZE]; - - int width; - int height; - GstVideoFormat format; - gboolean interlaced; - - double bad_flag_metric; -}; - -struct _GstInvtelecineClass -{ - GstElementClass element_class; - -}; - -enum -{ - ARG_0, - PROP_VERIFY_FIELD_FLAGS -}; - -static GstStaticPadTemplate gst_invtelecine_src_template = -GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{YUY2,UYVY,I420,YV12}") - ) - ); - -static GstStaticPadTemplate gst_invtelecine_sink_template = -GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{YUY2,UYVY,I420,YV12}") - ) - ); - -static void gst_invtelecine_base_init (gpointer g_class); -static void gst_invtelecine_class_init (GstInvtelecineClass * klass); -static void gst_invtelecine_init (GstInvtelecine * invtelecine); -static GstFlowReturn gst_invtelecine_chain (GstPad * pad, GstBuffer * buffer); - -static void gst_invtelecine_set_property (GObject * object, - guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_invtelecine_get_property (GObject * object, - guint prop_id, GValue * value, GParamSpec * pspec); - -static gboolean gst_invtelecine_setcaps (GstPad * pad, GstCaps * caps); -static GstStateChangeReturn gst_invtelecine_change_state (GstElement * element, - GstStateChange transition); - -static GstElementClass *parent_class = NULL; - -static GstFlowReturn -gst_invtelecine_output_fields (GstInvtelecine * invtelecine, int num_fields); - - -static GType -gst_invtelecine_get_type (void) -{ - static GType invtelecine_type = 0; - - if (!invtelecine_type) { - static const GTypeInfo invtelecine_info = { - sizeof (GstInvtelecineClass), - gst_invtelecine_base_init, - NULL, - (GClassInitFunc) gst_invtelecine_class_init, - NULL, - NULL, - sizeof (GstInvtelecine), - 0, - (GInstanceInitFunc) gst_invtelecine_init, - }; - - invtelecine_type = g_type_register_static (GST_TYPE_ELEMENT, - "GstInvtelecine", &invtelecine_info, 0); - } - - return invtelecine_type; -} - -static void -gst_invtelecine_base_init (gpointer g_class) -{ - - GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - - gst_element_class_set_details_simple (element_class, - "Inverse Telecine filter", "Filter/Video", - "Detects and reconstructs progressive content from telecine video", - "Entropy Wave "); - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_invtelecine_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_invtelecine_src_template)); -} - -static void -gst_invtelecine_class_init (GstInvtelecineClass * klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - object_class->set_property = gst_invtelecine_set_property; - object_class->get_property = gst_invtelecine_get_property; - - element_class->change_state = gst_invtelecine_change_state; - - g_object_class_install_property (object_class, PROP_VERIFY_FIELD_FLAGS, - g_param_spec_boolean ("verify-field-flags", "verify field flags", - "Verify that field dominance (top/bottom field first) buffer " - "flags are correct", FALSE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - -} - -static void -gst_invtelecine_init (GstInvtelecine * invtelecine) -{ - GST_DEBUG ("gst_invtelecine_init"); - invtelecine->sinkpad = - gst_pad_new_from_static_template (&gst_invtelecine_sink_template, "sink"); - gst_element_add_pad (GST_ELEMENT (invtelecine), invtelecine->sinkpad); - gst_pad_set_chain_function (invtelecine->sinkpad, gst_invtelecine_chain); - gst_pad_set_setcaps_function (invtelecine->sinkpad, gst_invtelecine_setcaps); - - invtelecine->srcpad = - gst_pad_new_from_static_template (&gst_invtelecine_src_template, "src"); - gst_element_add_pad (GST_ELEMENT (invtelecine), invtelecine->srcpad); - - invtelecine->bad_flag_metric = 1.0; - invtelecine->verify_field_flags = FALSE; -} - -static gboolean -gst_invtelecine_setcaps (GstPad * pad, GstCaps * caps) -{ - GstInvtelecine *invtelecine; - gboolean ret; - int width, height; - GstVideoFormat format; - gboolean interlaced = TRUE; - int fps_n, fps_d; - - invtelecine = GST_INVTELECINE (gst_pad_get_parent (pad)); - - ret = gst_video_format_parse_caps (caps, &format, &width, &height); - gst_video_format_parse_caps_interlaced (caps, &interlaced); - ret &= gst_video_parse_caps_framerate (caps, &fps_n, &fps_d); - - if (ret) { - GstCaps *srccaps = gst_caps_copy (caps); - - ret = gst_pad_set_caps (invtelecine->srcpad, srccaps); - - } - - if (ret) { - invtelecine->format = format; - invtelecine->width = width; - invtelecine->height = height; - invtelecine->interlaced = interlaced; - } - - g_object_unref (invtelecine); - - return ret; -} - - - -#define MAX_FIELD_SCORE 100 - -static double -gst_invtelecine_compare_fields (GstInvtelecine * invtelecine, int field1, - int field2) -{ - int i; - int j; - guint8 *data1; - guint8 *data2_1; - guint8 *data2_2; - int field_index; - int have; - int vave; - int hdiff; - int vdiff; - double sum; - double linesum; - double den; - - if (field1 < 0 || field2 < 0) - return MAX_FIELD_SCORE; - if (invtelecine->fifo[field1].buffer == NULL || - invtelecine->fifo[field2].buffer == NULL) - return MAX_FIELD_SCORE; - if (invtelecine->fifo[field1].buffer == invtelecine->fifo[field2].buffer && - invtelecine->fifo[field1].field_index == - invtelecine->fifo[field2].field_index) { - return 0; - } - - sum = 0; - field_index = invtelecine->fifo[field1].field_index; - for (j = field_index; j < invtelecine->height; j += 2) { - if (j == 0 || j == invtelecine->height - 1) - continue; - - if (invtelecine->format == GST_VIDEO_FORMAT_I420 || - invtelecine->format == GST_VIDEO_FORMAT_YV12) { - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * j; - data2_1 = - GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * (j - 1); - data2_2 = - GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * (j + 1); - - /* planar 4:2:0 */ - linesum = 0; - for (i = 1; i < invtelecine->width - 1; i++) { - have = data1[i - 1] + data1[i + 1]; - hdiff = abs (data1[i - 1] - data1[i + 1]); - vave = data2_1[i] + data2_2[i]; - vdiff = abs (data2_1[i] - data2_2[i]); - den = MAX (1, MAX (hdiff, vdiff)); - linesum += (have - vave) * (have - vave) / (den * den); - } - } else { - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * 2 * j; - data2_1 = - GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * 2 * (j - 1); - data2_2 = - GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * 2 * (j + 1); - if (invtelecine->format == GST_VIDEO_FORMAT_UYVY) { - data1++; - data2_1++; - data2_2++; - } - - /* packed 4:2:2 */ - linesum = 0; - for (i = 1; i < invtelecine->width - 1; i++) { - have = data1[(i - 1) * 2] + data1[(i + 1) * 2]; - hdiff = abs (data1[(i - 1) * 2] - data1[(i + 1) * 2]); - vave = data2_1[i * 2] + data2_2[i * 2]; - vdiff = abs (data2_1[i * 2] - data2_2[i * 2]); - den = MAX (1, MAX (hdiff, vdiff)); - linesum += (have - vave) * (have - vave) / (den * den); - } - } - sum += linesum; - } - - sum /= (invtelecine->width * invtelecine->height / 2); - - return MIN (sum, MAX_FIELD_SCORE); -} - -static double -gst_invtelecine_compare_fields_mse (GstInvtelecine * invtelecine, int field1, - int field2) -{ - int i; - int j; - guint8 *data1; - guint8 *data2; - int field_index1; - int field_index2; - int diff; - double sum; - double linesum; - - if (field1 < 0 || field2 < 0) - return MAX_FIELD_SCORE; - if (invtelecine->fifo[field1].buffer == NULL || - invtelecine->fifo[field2].buffer == NULL) - return MAX_FIELD_SCORE; - if (invtelecine->fifo[field1].buffer == invtelecine->fifo[field2].buffer && - invtelecine->fifo[field1].field_index == - invtelecine->fifo[field2].field_index) { - return 0; - } - - sum = 0; - field_index1 = invtelecine->fifo[field1].field_index; - field_index2 = invtelecine->fifo[field2].field_index; - if (invtelecine->format == GST_VIDEO_FORMAT_I420 || - invtelecine->format == GST_VIDEO_FORMAT_YV12) { - for (j = 0; j < invtelecine->height; j += 2) { - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * (j + field_index1); - data2 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * (j + field_index2); - - linesum = 0; - for (i = 0; i < invtelecine->width; i++) { - diff = (data1[i] - data2[i]); - linesum += diff * diff; - } - sum += linesum; - } - } else { - for (j = 0; j < invtelecine->height; j += 2) { - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * 2 * (j + field_index1); - data2 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * 2 * (j + field_index2); - - if (invtelecine->format == GST_VIDEO_FORMAT_UYVY) { - data1++; - data2++; - } - - linesum = 0; - for (i = 0; i < invtelecine->width; i++) { - diff = (data1[i * 2] - data2[i * 2]); - linesum += diff * diff; - } - sum += linesum; - } - } - - sum /= invtelecine->width * invtelecine->height / 2; - - //return MIN (sum, MAX_FIELD_SCORE); - return sum; -} - -static double -gst_invtelecine_compare_fields_mse_ave (GstInvtelecine * invtelecine, - int field1, int field2) -{ - int i; - int j; - guint8 *data1; - guint8 *data2_1; - guint8 *data2_2; - int field_index1; - int field_index2; - double diff; - double sum; - double linesum; - -#define MAX_FIELD_SCORE_2 1e9 - if (field1 < 0 || field2 < 0) - return MAX_FIELD_SCORE_2; - if (invtelecine->fifo[field1].buffer == NULL || - invtelecine->fifo[field2].buffer == NULL) - return MAX_FIELD_SCORE_2; - if (invtelecine->fifo[field1].buffer == invtelecine->fifo[field2].buffer && - invtelecine->fifo[field1].field_index == - invtelecine->fifo[field2].field_index) { - return 0; - } - - sum = 0; - field_index1 = invtelecine->fifo[field1].field_index; - field_index2 = invtelecine->fifo[field2].field_index; - if (invtelecine->format == GST_VIDEO_FORMAT_I420 || - invtelecine->format == GST_VIDEO_FORMAT_YV12) { - for (j = 0; j < invtelecine->height; j += 2) { - if (j + field_index1 == 0 || j + field_index1 == invtelecine->height - 1) - continue; - - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * (j + field_index1); - data2_1 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * (j + field_index1 - 1); - data2_2 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * (j + field_index1 + 1); - - linesum = 0; - for (i = 0; i < invtelecine->width; i++) { - diff = (data1[i] - (data2_1[i] + data2_2[i]) / 2); - diff *= diff; - linesum += diff * diff; - } - sum += linesum; - } - } else { - for (j = 0; j < invtelecine->height; j += 2) { - if (j + field_index1 == 0 || j + field_index1 == invtelecine->height - 1) - continue; - - data1 = GST_BUFFER_DATA (invtelecine->fifo[field1].buffer) + - invtelecine->width * 2 * (j + field_index1); - data2_1 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * 2 * (j + field_index1 - 1); - data2_2 = GST_BUFFER_DATA (invtelecine->fifo[field2].buffer) + - invtelecine->width * 2 * (j + field_index1 + 1); - - if (invtelecine->format == GST_VIDEO_FORMAT_UYVY) { - data1++; - data2_1++; - data2_2++; - } - - linesum = 0; - for (i = 0; i < invtelecine->width; i++) { - diff = (data1[i] - (data2_1[i] + data2_2[i]) / 2); - diff *= diff; - linesum += diff * diff; - } - sum += linesum; - } - } - - sum /= invtelecine->width * (invtelecine->height / 2 - 1); - - g_assert (sum > 0); - - //return MIN (sum, MAX_FIELD_SCORE); - return sqrt (sum); -} - -static void -gst_invtelecine_push_field (GstInvtelecine * invtelecine, GstBuffer * buffer, - int field_index) -{ - int i; - - g_assert (invtelecine->num_fields < FIFO_SIZE - 1); - g_assert (invtelecine->num_fields >= 0); - - i = invtelecine->num_fields; - invtelecine->num_fields++; - GST_DEBUG ("ref %p", buffer); - invtelecine->fifo[i].buffer = gst_buffer_ref (buffer); - invtelecine->fifo[i].field_index = field_index; - invtelecine->fifo[i].prev = - gst_invtelecine_compare_fields (invtelecine, i, i - 1); - invtelecine->fifo[i].prev2 = - gst_invtelecine_compare_fields_mse (invtelecine, i, i - 2); - - if (invtelecine->verify_field_flags) { - invtelecine->fifo[i].prev3 = - gst_invtelecine_compare_fields_mse_ave (invtelecine, i, i - 3); - invtelecine->fifo[i].prev1 = - gst_invtelecine_compare_fields_mse_ave (invtelecine, i, i - 1); - -#define ALPHA 0.2 - if (invtelecine->fifo[i].prev3 != 0) { - invtelecine->bad_flag_metric *= (1 - ALPHA); - invtelecine->bad_flag_metric += - ALPHA * (invtelecine->fifo[i].prev1 / invtelecine->fifo[i].prev3); - } -#if 0 - g_print ("42 %g %g %g\n", invtelecine->bad_flag_metric, - invtelecine->fifo[i].prev1, invtelecine->fifo[i].prev3); -#endif - - if (invtelecine->bad_flag_metric > 1.2) { - GST_WARNING ("bad field flags? metric %g > 1.2", - invtelecine->bad_flag_metric); - } - } - -} - -int pulldown_2_3[] = { 2, 3 }; - -typedef struct _PulldownFormat PulldownFormat; -struct _PulldownFormat -{ - const char *name; - int cycle_length; - int n_fields[10]; -}; - -static const PulldownFormat formats[] = { - /* interlaced */ - {"interlaced", 1, {1}}, - /* 30p */ - {"2:2", 2, {2}}, - /* 24p */ - {"3:2", 5, {2, 3,}}, -}; - -static int -get_score_2 (GstInvtelecine * invtelecine, int format_index, int phase) -{ - const PulldownFormat *format = formats + format_index; - int field_index; - int k; - int i; - int score; - - GST_DEBUG ("score2 format_index %d phase %d", format_index, phase); - - phase = (invtelecine->field + phase) % format->cycle_length; - - field_index = 0; - k = 0; - while (phase > 0) { - field_index++; - if (field_index >= format->n_fields[k]) { - field_index = 0; - k++; - if (format->n_fields[k] == 0) { - k = 0; - } - } - phase--; - } - - /* k is the frame index in the format */ - /* field_index is the field index in the frame */ - - score = 0; - for (i = 0; i < 15; i++) { - if (field_index == 0) { - if (invtelecine->fifo[i].prev > 50) { - /* Strong picture change signal */ - score++; - } - } else { - if (invtelecine->fifo[i].prev > 50) { - /* A secondary field with visible combing */ - score -= 5; - } else if (field_index == 1) { - if (invtelecine->fifo[i].prev > 5) { - score--; - } else if (invtelecine->fifo[i].prev < 3) { - /* In the noise */ - score++; - } - } else { - if (invtelecine->fifo[i].prev2 < 1) { - score += 2; - } - if (invtelecine->fifo[i].prev2 > 10) { - /* A tertiary field that doesn't match */ - score -= 5; - } - } - } - - GST_DEBUG ("i=%d phase=%d fi=%d prev=%g score=%d", i, phase, field_index, - invtelecine->fifo[i].prev, score); - - field_index++; - if (field_index >= format->n_fields[k]) { - field_index = 0; - k++; - if (format->n_fields[k] == 0) { - k = 0; - } - } - } - - return score; -} - -int format_table[] = { 0, 1, 1, 2, 2, 2, 2, 2 }; -int phase_table[] = { 0, 0, 1, 0, 1, 2, 3, 4 }; - -static void -gst_invtelecine_process (GstInvtelecine * invtelecine, gboolean flush) -{ - //int score; - int num_fields; - int scores[8]; - int i; - int max_i; - //int format; - int phase; - - GST_DEBUG ("process %d", invtelecine->num_fields); - while (invtelecine->num_fields > 15) { - num_fields = 0; - - for (i = 0; i < 8; i++) { - scores[i] = get_score_2 (invtelecine, format_table[i], phase_table[i]); - } - -#if 0 - g_print ("scores %d %d %d %d %d %d %d %d %d\n", invtelecine->field, - scores[0], scores[1], scores[2], scores[3], - scores[4], scores[5], scores[6], scores[7]); -#endif - - max_i = invtelecine->last_lock; - for (i = 0; i < 8; i++) { - int field_index; - int k; - - phase = (invtelecine->field + phase_table[i]) % - formats[format_table[i]].cycle_length; - - field_index = 0; - k = 0; - while (phase > 0) { - field_index++; - if (field_index >= formats[format_table[i]].n_fields[k]) { - field_index = 0; - k++; - if (formats[format_table[i]].n_fields[k] == 0) { - k = 0; - } - } - phase--; - } - - if (field_index == 0) { - if (scores[i] > scores[max_i]) { - max_i = i; - } - } - } - - if (max_i != invtelecine->last_lock) { - - GST_WARNING ("new structure %s, phase %d", - formats[format_table[max_i]].name, phase_table[max_i]); - - invtelecine->last_lock = max_i; - } - - { - int field_index; - int k; - - phase = (invtelecine->field + phase_table[max_i]) % - formats[format_table[max_i]].cycle_length; - - field_index = 0; - k = 0; - while (phase > 0) { - field_index++; - if (field_index >= formats[format_table[max_i]].n_fields[k]) { - field_index = 0; - k++; - if (formats[format_table[max_i]].n_fields[k] == 0) { - k = 0; - } - } - phase--; - } - - num_fields = formats[format_table[max_i]].n_fields[k]; - } - - if (num_fields == 0) { - GST_WARNING ("unlocked"); - num_fields = 1; - } - - gst_invtelecine_output_fields (invtelecine, num_fields); - - while (num_fields > 0) { - GST_DEBUG ("unref %p", invtelecine->fifo[0].buffer); - gst_buffer_unref (invtelecine->fifo[0].buffer); - invtelecine->num_fields--; - memmove (invtelecine->fifo, invtelecine->fifo + 1, - invtelecine->num_fields * sizeof (Field)); - num_fields--; - invtelecine->field++; - } - - invtelecine->phase++; - if (invtelecine->phase == 2) { - invtelecine->phase = 0; - } - } - -} - -static void -copy_field (GstInvtelecine * invtelecine, GstBuffer * d, GstBuffer * s, - int field_index) -{ - int j; - guint8 *dest; - guint8 *src; - int width = invtelecine->width; - int height = invtelecine->height; - - if (invtelecine->format == GST_VIDEO_FORMAT_I420 || - invtelecine->format == GST_VIDEO_FORMAT_YV12) { - /* planar 4:2:0 */ - for (j = field_index; j < height; j += 2) { - dest = GST_BUFFER_DATA (d) + j * width; - src = GST_BUFFER_DATA (s) + j * width; - memcpy (dest, src, width); - } - for (j = field_index; j < height / 2; j += 2) { - dest = GST_BUFFER_DATA (d) + width * height + j * width / 2; - src = GST_BUFFER_DATA (s) + width * height + j * width / 2; - memcpy (dest, src, width / 2); - } - for (j = field_index; j < height / 2; j += 2) { - dest = - GST_BUFFER_DATA (d) + width * height + width / 2 * height / 2 + - j * width / 2; - src = - GST_BUFFER_DATA (s) + width * height + width / 2 * height / 2 + - j * width / 2; - memcpy (dest, src, width / 2); - } - } else { - /* packed 4:2:2 */ - for (j = field_index; j < height; j += 2) { - dest = GST_BUFFER_DATA (d) + j * width * 2; - src = GST_BUFFER_DATA (s) + j * width * 2; - memcpy (dest, src, width * 2); - } - } -} - -static GstFlowReturn -gst_invtelecine_output_fields (GstInvtelecine * invtelecine, int num_fields) -{ - GstBuffer *buffer; - int field_index; - - field_index = invtelecine->fifo[0].field_index; - - if (invtelecine->format == GST_VIDEO_FORMAT_I420 || - invtelecine->format == GST_VIDEO_FORMAT_YV12) { - buffer = - gst_buffer_new_and_alloc (invtelecine->width * invtelecine->height * 3 / - 2); - } else { - buffer = - gst_buffer_new_and_alloc (invtelecine->width * invtelecine->height * 2); - } - - copy_field (invtelecine, buffer, invtelecine->fifo[0].buffer, field_index); - copy_field (invtelecine, buffer, invtelecine->fifo[1].buffer, - field_index ^ 1); - - gst_buffer_set_caps (buffer, GST_BUFFER_CAPS (invtelecine->fifo[0].buffer)); - - GST_BUFFER_TIMESTAMP (buffer) = - GST_BUFFER_TIMESTAMP (invtelecine->fifo[0].buffer); - GST_BUFFER_DURATION (buffer) = - gst_util_uint64_scale (GST_SECOND, num_fields * 1001, 60000); - if (num_fields == 3) { - GST_BUFFER_FLAG_SET (buffer, GST_VIDEO_BUFFER_RFF); - } - if (num_fields == 1) { - GST_BUFFER_FLAG_SET (buffer, GST_VIDEO_BUFFER_ONEFIELD); - } - if (field_index == 0) { - GST_BUFFER_FLAG_SET (buffer, GST_VIDEO_BUFFER_TFF); - } - - return gst_pad_push (invtelecine->srcpad, buffer); -} - -static GstFlowReturn -gst_invtelecine_chain (GstPad * pad, GstBuffer * buffer) -{ - GstInvtelecine *invtelecine = GST_INVTELECINE (gst_pad_get_parent (pad)); - int field_index; - - GST_DEBUG ("Received buffer at %u:%02u:%02u:%09u", - (guint) (GST_BUFFER_TIMESTAMP (buffer) / (GST_SECOND * 60 * 60)), - (guint) ((GST_BUFFER_TIMESTAMP (buffer) / (GST_SECOND * 60)) % 60), - (guint) ((GST_BUFFER_TIMESTAMP (buffer) / GST_SECOND) % 60), - (guint) (GST_BUFFER_TIMESTAMP (buffer) % GST_SECOND)); - - field_index = (GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_TFF) ? 0 : 1; -//#define BAD -#ifdef BAD - field_index ^= 1; -#endif - - GST_DEBUG ("duration %" GST_TIME_FORMAT " flags %04x %s %s %s", - GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)), - GST_BUFFER_FLAGS (buffer), - (GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_TFF) ? "tff" : "", - (GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_RFF) ? "rff" : "", - (GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_ONEFIELD) ? "onefield" : - ""); - - if (GST_BUFFER_FLAGS (buffer) & GST_BUFFER_FLAG_DISCONT) { - GST_ERROR ("discont"); - - invtelecine->next_field = field_index; - invtelecine->bad_flag_metric = 1.0; - } - - if (invtelecine->next_field != field_index) { - GST_WARNING ("wrong field first, expecting %d got %d", - invtelecine->next_field, field_index); - invtelecine->next_field = field_index; - } - - gst_invtelecine_push_field (invtelecine, buffer, invtelecine->next_field); - invtelecine->next_field ^= 1; - - if (!(GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_ONEFIELD)) { - gst_invtelecine_push_field (invtelecine, buffer, invtelecine->next_field); - invtelecine->next_field ^= 1; - - if ((GST_BUFFER_FLAGS (buffer) & GST_VIDEO_BUFFER_RFF)) { - gst_invtelecine_push_field (invtelecine, buffer, invtelecine->next_field); - invtelecine->next_field ^= 1; - } - } - - gst_invtelecine_process (invtelecine, FALSE); - - gst_buffer_unref (buffer); - - gst_object_unref (invtelecine); - - return GST_FLOW_OK; -} - -static void -gst_invtelecine_set_property (GObject * object, - guint prop_id, const GValue * value, GParamSpec * pspec) -{ - GstInvtelecine *invtelecine = GST_INVTELECINE (object); - - switch (prop_id) { - case PROP_VERIFY_FIELD_FLAGS: - invtelecine->verify_field_flags = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_invtelecine_get_property (GObject * object, - guint prop_id, GValue * value, GParamSpec * pspec) -{ - GstInvtelecine *invtelecine = GST_INVTELECINE (object); - - switch (prop_id) { - case PROP_VERIFY_FIELD_FLAGS: - g_value_set_boolean (value, invtelecine->verify_field_flags); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static GstStateChangeReturn -gst_invtelecine_change_state (GstElement * element, GstStateChange transition) -{ - //GstInvtelecine *invtelecine = GST_INVTELECINE (element); - - switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_READY: - //gst_invtelecine_reset (invtelecine); - break; - default: - break; - } - - if (parent_class->change_state) - return parent_class->change_state (element, transition); - - return GST_STATE_CHANGE_SUCCESS; -} - -static gboolean -plugin_init (GstPlugin * plugin) -{ - GST_DEBUG_CATEGORY_INIT (gst_invtelecine_debug, "invtelecine", 0, - "Inverse telecine element"); - - return gst_element_register (plugin, "invtelecine", GST_RANK_NONE, - GST_TYPE_INVTELECINE); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "invtelecine", - "Inverse Telecine", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/ivfparse/Makefile.in b/gst/ivfparse/Makefile.in index 1aec23c..79a3d4d 100644 --- a/gst/ivfparse/Makefile.in +++ b/gst/ivfparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstivfparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstivfparse_la_OBJECTS = libgstivfparse_la-gstivfparse.lo libgstivfparse_la_OBJECTS = $(am_libgstivfparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstivfparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstivfparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstivfparse_la_SOURCES) DIST_SOURCES = $(libgstivfparse_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -605,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstivfparse.la: $(libgstivfparse_la_OBJECTS) $(libgstivfparse_la_DEPENDENCIES) +libgstivfparse.la: $(libgstivfparse_la_OBJECTS) $(libgstivfparse_la_DEPENDENCIES) $(EXTRA_libgstivfparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstivfparse_la_LINK) -rpath $(plugindir) $(libgstivfparse_la_OBJECTS) $(libgstivfparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -619,34 +646,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstivfparse_la-gstivfparse.lo: gstivfparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivfparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivfparse_la_CFLAGS) $(CFLAGS) -MT libgstivfparse_la-gstivfparse.lo -MD -MP -MF $(DEPDIR)/libgstivfparse_la-gstivfparse.Tpo -c -o libgstivfparse_la-gstivfparse.lo `test -f 'gstivfparse.c' || echo '$(srcdir)/'`gstivfparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivfparse_la-gstivfparse.Tpo $(DEPDIR)/libgstivfparse_la-gstivfparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstivfparse.c' object='libgstivfparse_la-gstivfparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstivfparse.c' object='libgstivfparse_la-gstivfparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivfparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivfparse_la_CFLAGS) $(CFLAGS) -c -o libgstivfparse_la-gstivfparse.lo `test -f 'gstivfparse.c' || echo '$(srcdir)/'`gstivfparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivfparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivfparse_la_CFLAGS) $(CFLAGS) -c -o libgstivfparse_la-gstivfparse.lo `test -f 'gstivfparse.c' || echo '$(srcdir)/'`gstivfparse.c mostlyclean-libtool: -rm -f *.lo @@ -753,10 +776,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/ivfparse/gstivfparse.c b/gst/ivfparse/gstivfparse.c index ed79ab7..0ebbe07 100644 --- a/gst/ivfparse/gstivfparse.c +++ b/gst/ivfparse/gstivfparse.c @@ -84,10 +84,8 @@ gst_ivf_parse_base_init (gpointer gclass) "Codec/Demuxer", "Demuxes a IVF stream", "Philip Jägenstedt "); - 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } /* initialize the ivfparse's class */ diff --git a/gst/jp2kdecimator/Makefile.in b/gst/jp2kdecimator/Makefile.in index 85a89f8..ec65049 100644 --- a/gst/jp2kdecimator/Makefile.in +++ b/gst/jp2kdecimator/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstjp2kdecimator_la_OBJECTS = \ libgstjp2kdecimator_la-gstjp2kdecimator.lo \ libgstjp2kdecimator_la-jp2kcodestream.lo libgstjp2kdecimator_la_OBJECTS = $(am_libgstjp2kdecimator_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstjp2kdecimator_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstjp2kdecimator_la_SOURCES) DIST_SOURCES = $(libgstjp2kdecimator_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstjp2kdecimator.la: $(libgstjp2kdecimator_la_OBJECTS) $(libgstjp2kdecimator_la_DEPENDENCIES) +libgstjp2kdecimator.la: $(libgstjp2kdecimator_la_OBJECTS) $(libgstjp2kdecimator_la_DEPENDENCIES) $(EXTRA_libgstjp2kdecimator_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjp2kdecimator_la_LINK) -rpath $(plugindir) $(libgstjp2kdecimator_la_OBJECTS) $(libgstjp2kdecimator_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,42 +650,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstjp2kdecimator_la-gstjp2kdecimator.lo: gstjp2kdecimator.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -MT libgstjp2kdecimator_la-gstjp2kdecimator.lo -MD -MP -MF $(DEPDIR)/libgstjp2kdecimator_la-gstjp2kdecimator.Tpo -c -o libgstjp2kdecimator_la-gstjp2kdecimator.lo `test -f 'gstjp2kdecimator.c' || echo '$(srcdir)/'`gstjp2kdecimator.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjp2kdecimator_la-gstjp2kdecimator.Tpo $(DEPDIR)/libgstjp2kdecimator_la-gstjp2kdecimator.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjp2kdecimator.c' object='libgstjp2kdecimator_la-gstjp2kdecimator.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjp2kdecimator.c' object='libgstjp2kdecimator_la-gstjp2kdecimator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -c -o libgstjp2kdecimator_la-gstjp2kdecimator.lo `test -f 'gstjp2kdecimator.c' || echo '$(srcdir)/'`gstjp2kdecimator.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -c -o libgstjp2kdecimator_la-gstjp2kdecimator.lo `test -f 'gstjp2kdecimator.c' || echo '$(srcdir)/'`gstjp2kdecimator.c libgstjp2kdecimator_la-jp2kcodestream.lo: jp2kcodestream.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -MT libgstjp2kdecimator_la-jp2kcodestream.lo -MD -MP -MF $(DEPDIR)/libgstjp2kdecimator_la-jp2kcodestream.Tpo -c -o libgstjp2kdecimator_la-jp2kcodestream.lo `test -f 'jp2kcodestream.c' || echo '$(srcdir)/'`jp2kcodestream.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjp2kdecimator_la-jp2kcodestream.Tpo $(DEPDIR)/libgstjp2kdecimator_la-jp2kcodestream.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jp2kcodestream.c' object='libgstjp2kdecimator_la-jp2kcodestream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jp2kcodestream.c' object='libgstjp2kdecimator_la-jp2kcodestream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -c -o libgstjp2kdecimator_la-jp2kcodestream.lo `test -f 'jp2kcodestream.c' || echo '$(srcdir)/'`jp2kcodestream.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2kdecimator_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2kdecimator_la_CFLAGS) $(CFLAGS) -c -o libgstjp2kdecimator_la-jp2kcodestream.lo `test -f 'jp2kcodestream.c' || echo '$(srcdir)/'`jp2kcodestream.c mostlyclean-libtool: -rm -f *.lo @@ -765,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/jp2kdecimator/gstjp2kdecimator.c b/gst/jp2kdecimator/gstjp2kdecimator.c index 98b50bb..f72b6a2 100644 --- a/gst/jp2kdecimator/gstjp2kdecimator.c +++ b/gst/jp2kdecimator/gstjp2kdecimator.c @@ -100,10 +100,10 @@ gst_jp2k_decimator_base_init (gpointer g_class) "Removes information from JPEG2000 streams without recompression", "Sebastian Dröge "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sink_pad_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &sink_pad_template); + gst_element_class_add_static_pad_template (gstelement_class, + &src_pad_template); } static void diff --git a/gst/jpegformat/Makefile.in b/gst/jpegformat/Makefile.in index 38750dc..e58a905 100644 --- a/gst/jpegformat/Makefile.in +++ b/gst/jpegformat/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstjpegformat_la_OBJECTS = libgstjpegformat_la-gstjpegformat.lo \ libgstjpegformat_la-gstjpegparse.lo \ libgstjpegformat_la-gstjifmux.lo libgstjpegformat_la_OBJECTS = $(am_libgstjpegformat_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstjpegformat_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstjpegformat_la_SOURCES) DIST_SOURCES = $(libgstjpegformat_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstjpegformat.la: $(libgstjpegformat_la_OBJECTS) $(libgstjpegformat_la_DEPENDENCIES) +libgstjpegformat.la: $(libgstjpegformat_la_OBJECTS) $(libgstjpegformat_la_DEPENDENCIES) $(EXTRA_libgstjpegformat_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjpegformat_la_LINK) -rpath $(plugindir) $(libgstjpegformat_la_OBJECTS) $(libgstjpegformat_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,50 +650,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstjpegformat_la-gstjpegformat.lo: gstjpegformat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -MT libgstjpegformat_la-gstjpegformat.lo -MD -MP -MF $(DEPDIR)/libgstjpegformat_la-gstjpegformat.Tpo -c -o libgstjpegformat_la-gstjpegformat.lo `test -f 'gstjpegformat.c' || echo '$(srcdir)/'`gstjpegformat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpegformat_la-gstjpegformat.Tpo $(DEPDIR)/libgstjpegformat_la-gstjpegformat.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjpegformat.c' object='libgstjpegformat_la-gstjpegformat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjpegformat.c' object='libgstjpegformat_la-gstjpegformat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjpegformat.lo `test -f 'gstjpegformat.c' || echo '$(srcdir)/'`gstjpegformat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjpegformat.lo `test -f 'gstjpegformat.c' || echo '$(srcdir)/'`gstjpegformat.c libgstjpegformat_la-gstjpegparse.lo: gstjpegparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -MT libgstjpegformat_la-gstjpegparse.lo -MD -MP -MF $(DEPDIR)/libgstjpegformat_la-gstjpegparse.Tpo -c -o libgstjpegformat_la-gstjpegparse.lo `test -f 'gstjpegparse.c' || echo '$(srcdir)/'`gstjpegparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpegformat_la-gstjpegparse.Tpo $(DEPDIR)/libgstjpegformat_la-gstjpegparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjpegparse.c' object='libgstjpegformat_la-gstjpegparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjpegparse.c' object='libgstjpegformat_la-gstjpegparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjpegparse.lo `test -f 'gstjpegparse.c' || echo '$(srcdir)/'`gstjpegparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjpegparse.lo `test -f 'gstjpegparse.c' || echo '$(srcdir)/'`gstjpegparse.c libgstjpegformat_la-gstjifmux.lo: gstjifmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -MT libgstjpegformat_la-gstjifmux.lo -MD -MP -MF $(DEPDIR)/libgstjpegformat_la-gstjifmux.Tpo -c -o libgstjpegformat_la-gstjifmux.lo `test -f 'gstjifmux.c' || echo '$(srcdir)/'`gstjifmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpegformat_la-gstjifmux.Tpo $(DEPDIR)/libgstjpegformat_la-gstjifmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjifmux.c' object='libgstjpegformat_la-gstjifmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjifmux.c' object='libgstjpegformat_la-gstjifmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjifmux.lo `test -f 'gstjifmux.c' || echo '$(srcdir)/'`gstjifmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpegformat_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpegformat_la_CFLAGS) $(CFLAGS) -c -o libgstjpegformat_la-gstjifmux.lo `test -f 'gstjifmux.c' || echo '$(srcdir)/'`gstjifmux.c mostlyclean-libtool: -rm -f *.lo @@ -773,10 +794,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/jpegformat/gstjifmux.c b/gst/jpegformat/gstjifmux.c index fcb2df0..56e6ff7 100644 --- a/gst/jpegformat/gstjifmux.c +++ b/gst/jpegformat/gstjifmux.c @@ -137,13 +137,13 @@ gst_jif_mux_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_jif_mux_src_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jif_mux_sink_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_jif_mux_src_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_jif_mux_sink_pad_template); gst_element_class_set_details_simple (element_class, "JPEG stream muxer", - "Video/Muxer", + "Video/Formatter", "Remuxes JPEG images with markers and tags", "Arnout Vandecappelle (Essensium/Mind) "); } diff --git a/gst/jpegformat/gstjpegformat.c b/gst/jpegformat/gstjpegformat.c index dd88e51..50573db 100644 --- a/gst/jpegformat/gstjpegformat.c +++ b/gst/jpegformat/gstjpegformat.c @@ -33,7 +33,8 @@ plugin_init (GstPlugin * plugin) if (!gst_element_register (plugin, "jpegparse", GST_RANK_NONE, GST_TYPE_JPEG_PARSE)) return FALSE; - if (!gst_element_register (plugin, "jifmux", GST_RANK_NONE, GST_TYPE_JIF_MUX)) + if (!gst_element_register (plugin, "jifmux", GST_RANK_SECONDARY, + GST_TYPE_JIF_MUX)) return FALSE; return TRUE; diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c index 1542b6e..1d4eaf9 100644 --- a/gst/jpegformat/gstjpegparse.c +++ b/gst/jpegformat/gstjpegparse.c @@ -139,10 +139,10 @@ gst_jpeg_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_jpeg_parse_src_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jpeg_parse_sink_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_jpeg_parse_src_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_jpeg_parse_sink_pad_template); gst_element_class_set_details_simple (element_class, "JPEG stream parser", "Video/Parser", @@ -438,8 +438,8 @@ gst_jpeg_parse_sof (GstJpegParse * parse, GstByteReader * reader) guint8 numcomps = 0; /* Number of components in image (1 for gray, 3 for YUV, etc.) */ guint8 precision; /* precision (in bits) for the samples */ - guint8 compId[3]; /* unique value identifying each component */ - guint8 qtId[3]; /* quantization table ID to use for this comp */ + guint8 compId[3] G_GNUC_UNUSED; /* unique value identifying each component */ + guint8 qtId[3] G_GNUC_UNUSED; /* quantization table ID to use for this comp */ guint8 blockWidth[3]; /* Array[numComponents] giving the number of blocks (horiz) in this component */ guint8 blockHeight[3]; /* Same for the vertical part of this component */ @@ -464,7 +464,7 @@ gst_jpeg_parse_sof (GstJpegParse * parse, GstByteReader * reader) if (!gst_byte_reader_get_uint8 (reader, &numcomps)) return FALSE; - if (numcomps > 3) + if (numcomps > 3) /* FIXME */ return FALSE; /* Get decimation and quantization table id for each component */ diff --git a/gst/legacyresample/Makefile.in b/gst/legacyresample/Makefile.in index b0c6a85..96a40e2 100644 --- a/gst/legacyresample/Makefile.in +++ b/gst/legacyresample/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +121,8 @@ am_libgstlegacyresample_la_OBJECTS = \ libgstlegacyresample_la-gstlegacyresample.lo $(am__objects_1) libgstlegacyresample_la_OBJECTS = \ $(am_libgstlegacyresample_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstlegacyresample_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -131,21 +138,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstlegacyresample_la_SOURCES) DIST_SOURCES = $(libgstlegacyresample_la_SOURCES) @@ -157,7 +164,6 @@ 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@ @@ -175,7 +181,6 @@ 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@ @@ -210,6 +215,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -249,6 +255,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -266,6 +273,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -274,13 +282,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -305,13 +316,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -359,6 +371,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -390,8 +403,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -415,6 +432,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -439,10 +458,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -454,6 +477,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -478,6 +505,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -513,7 +541,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -619,7 +646,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstlegacyresample.la: $(libgstlegacyresample_la_OBJECTS) $(libgstlegacyresample_la_DEPENDENCIES) +libgstlegacyresample.la: $(libgstlegacyresample_la_OBJECTS) $(libgstlegacyresample_la_DEPENDENCIES) $(EXTRA_libgstlegacyresample_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstlegacyresample_la_LINK) -rpath $(plugindir) $(libgstlegacyresample_la_OBJECTS) $(libgstlegacyresample_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -638,74 +665,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstlegacyresample_la-gstlegacyresample.lo: gstlegacyresample.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-gstlegacyresample.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-gstlegacyresample.Tpo -c -o libgstlegacyresample_la-gstlegacyresample.lo `test -f 'gstlegacyresample.c' || echo '$(srcdir)/'`gstlegacyresample.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-gstlegacyresample.Tpo $(DEPDIR)/libgstlegacyresample_la-gstlegacyresample.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlegacyresample.c' object='libgstlegacyresample_la-gstlegacyresample.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstlegacyresample.c' object='libgstlegacyresample_la-gstlegacyresample.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-gstlegacyresample.lo `test -f 'gstlegacyresample.c' || echo '$(srcdir)/'`gstlegacyresample.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-gstlegacyresample.lo `test -f 'gstlegacyresample.c' || echo '$(srcdir)/'`gstlegacyresample.c libgstlegacyresample_la-functable.lo: functable.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-functable.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-functable.Tpo -c -o libgstlegacyresample_la-functable.lo `test -f 'functable.c' || echo '$(srcdir)/'`functable.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-functable.Tpo $(DEPDIR)/libgstlegacyresample_la-functable.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='functable.c' object='libgstlegacyresample_la-functable.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='functable.c' object='libgstlegacyresample_la-functable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-functable.lo `test -f 'functable.c' || echo '$(srcdir)/'`functable.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-functable.lo `test -f 'functable.c' || echo '$(srcdir)/'`functable.c libgstlegacyresample_la-resample.lo: resample.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-resample.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-resample.Tpo -c -o libgstlegacyresample_la-resample.lo `test -f 'resample.c' || echo '$(srcdir)/'`resample.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-resample.Tpo $(DEPDIR)/libgstlegacyresample_la-resample.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resample.c' object='libgstlegacyresample_la-resample.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resample.c' object='libgstlegacyresample_la-resample.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample.lo `test -f 'resample.c' || echo '$(srcdir)/'`resample.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample.lo `test -f 'resample.c' || echo '$(srcdir)/'`resample.c libgstlegacyresample_la-resample_functable.lo: resample_functable.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-resample_functable.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-resample_functable.Tpo -c -o libgstlegacyresample_la-resample_functable.lo `test -f 'resample_functable.c' || echo '$(srcdir)/'`resample_functable.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-resample_functable.Tpo $(DEPDIR)/libgstlegacyresample_la-resample_functable.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resample_functable.c' object='libgstlegacyresample_la-resample_functable.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resample_functable.c' object='libgstlegacyresample_la-resample_functable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample_functable.lo `test -f 'resample_functable.c' || echo '$(srcdir)/'`resample_functable.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample_functable.lo `test -f 'resample_functable.c' || echo '$(srcdir)/'`resample_functable.c libgstlegacyresample_la-resample_ref.lo: resample_ref.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-resample_ref.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-resample_ref.Tpo -c -o libgstlegacyresample_la-resample_ref.lo `test -f 'resample_ref.c' || echo '$(srcdir)/'`resample_ref.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-resample_ref.Tpo $(DEPDIR)/libgstlegacyresample_la-resample_ref.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resample_ref.c' object='libgstlegacyresample_la-resample_ref.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resample_ref.c' object='libgstlegacyresample_la-resample_ref.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample_ref.lo `test -f 'resample_ref.c' || echo '$(srcdir)/'`resample_ref.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-resample_ref.lo `test -f 'resample_ref.c' || echo '$(srcdir)/'`resample_ref.c libgstlegacyresample_la-buffer.lo: buffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -MT libgstlegacyresample_la-buffer.lo -MD -MP -MF $(DEPDIR)/libgstlegacyresample_la-buffer.Tpo -c -o libgstlegacyresample_la-buffer.lo `test -f 'buffer.c' || echo '$(srcdir)/'`buffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlegacyresample_la-buffer.Tpo $(DEPDIR)/libgstlegacyresample_la-buffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='buffer.c' object='libgstlegacyresample_la-buffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='buffer.c' object='libgstlegacyresample_la-buffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-buffer.lo `test -f 'buffer.c' || echo '$(srcdir)/'`buffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlegacyresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlegacyresample_la_CFLAGS) $(CFLAGS) -c -o libgstlegacyresample_la-buffer.lo `test -f 'buffer.c' || echo '$(srcdir)/'`buffer.c mostlyclean-libtool: -rm -f *.lo @@ -812,10 +830,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/legacyresample/gstlegacyresample.c b/gst/legacyresample/gstlegacyresample.c index 95c924e..46bb0bf 100644 --- a/gst/legacyresample/gstlegacyresample.c +++ b/gst/legacyresample/gstlegacyresample.c @@ -135,10 +135,10 @@ gst_legacyresample_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_legacyresample_src_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_legacyresample_sink_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_legacyresample_src_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_legacyresample_sink_template); gst_element_class_set_details_simple (gstelement_class, "Audio scaler", "Filter/Converter/Audio", diff --git a/gst/librfb/Makefile.in b/gst/librfb/Makefile.in index 58f0248..1644484 100644 --- a/gst/librfb/Makefile.in +++ b/gst/librfb/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -44,6 +44,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(noinst_LTLIBRARIES) $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ libgstrfbsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) librfb.la am_libgstrfbsrc_la_OBJECTS = libgstrfbsrc_la-gstrfbsrc.lo libgstrfbsrc_la_OBJECTS = $(am_libgstrfbsrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrfbsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrfbsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +140,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrfbsrc_la_SOURCES) $(librfb_la_SOURCES) DIST_SOURCES = $(libgstrfbsrc_la_SOURCES) $(librfb_la_SOURCES) @@ -159,7 +166,6 @@ 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@ @@ -177,7 +183,6 @@ 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@ @@ -212,6 +217,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -251,6 +257,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -268,6 +275,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -276,13 +284,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -307,13 +318,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -361,6 +373,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -392,8 +405,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -417,6 +434,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -441,10 +460,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -456,6 +479,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -480,6 +507,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -515,7 +543,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -635,9 +662,9 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrfbsrc.la: $(libgstrfbsrc_la_OBJECTS) $(libgstrfbsrc_la_DEPENDENCIES) +libgstrfbsrc.la: $(libgstrfbsrc_la_OBJECTS) $(libgstrfbsrc_la_DEPENDENCIES) $(EXTRA_libgstrfbsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrfbsrc_la_LINK) -rpath $(plugindir) $(libgstrfbsrc_la_OBJECTS) $(libgstrfbsrc_la_LIBADD) $(LIBS) -librfb.la: $(librfb_la_OBJECTS) $(librfb_la_DEPENDENCIES) +librfb.la: $(librfb_la_OBJECTS) $(librfb_la_DEPENDENCIES) $(EXTRA_librfb_la_DEPENDENCIES) $(AM_V_CCLD)$(librfb_la_LINK) $(librfb_la_OBJECTS) $(librfb_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -655,66 +682,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrfbsrc_la-gstrfbsrc.lo: gstrfbsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrfbsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrfbsrc_la_CFLAGS) $(CFLAGS) -MT libgstrfbsrc_la-gstrfbsrc.lo -MD -MP -MF $(DEPDIR)/libgstrfbsrc_la-gstrfbsrc.Tpo -c -o libgstrfbsrc_la-gstrfbsrc.lo `test -f 'gstrfbsrc.c' || echo '$(srcdir)/'`gstrfbsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrfbsrc_la-gstrfbsrc.Tpo $(DEPDIR)/libgstrfbsrc_la-gstrfbsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrfbsrc.c' object='libgstrfbsrc_la-gstrfbsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrfbsrc.c' object='libgstrfbsrc_la-gstrfbsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrfbsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrfbsrc_la_CFLAGS) $(CFLAGS) -c -o libgstrfbsrc_la-gstrfbsrc.lo `test -f 'gstrfbsrc.c' || echo '$(srcdir)/'`gstrfbsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrfbsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrfbsrc_la_CFLAGS) $(CFLAGS) -c -o libgstrfbsrc_la-gstrfbsrc.lo `test -f 'gstrfbsrc.c' || echo '$(srcdir)/'`gstrfbsrc.c librfb_la-rfbbuffer.lo: rfbbuffer.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) $(librfb_la_CFLAGS) $(CFLAGS) -MT librfb_la-rfbbuffer.lo -MD -MP -MF $(DEPDIR)/librfb_la-rfbbuffer.Tpo -c -o librfb_la-rfbbuffer.lo `test -f 'rfbbuffer.c' || echo '$(srcdir)/'`rfbbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librfb_la-rfbbuffer.Tpo $(DEPDIR)/librfb_la-rfbbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rfbbuffer.c' object='librfb_la-rfbbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rfbbuffer.c' object='librfb_la-rfbbuffer.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) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-rfbbuffer.lo `test -f 'rfbbuffer.c' || echo '$(srcdir)/'`rfbbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-rfbbuffer.lo `test -f 'rfbbuffer.c' || echo '$(srcdir)/'`rfbbuffer.c librfb_la-rfbdecoder.lo: rfbdecoder.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) $(librfb_la_CFLAGS) $(CFLAGS) -MT librfb_la-rfbdecoder.lo -MD -MP -MF $(DEPDIR)/librfb_la-rfbdecoder.Tpo -c -o librfb_la-rfbdecoder.lo `test -f 'rfbdecoder.c' || echo '$(srcdir)/'`rfbdecoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librfb_la-rfbdecoder.Tpo $(DEPDIR)/librfb_la-rfbdecoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rfbdecoder.c' object='librfb_la-rfbdecoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rfbdecoder.c' object='librfb_la-rfbdecoder.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) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-rfbdecoder.lo `test -f 'rfbdecoder.c' || echo '$(srcdir)/'`rfbdecoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-rfbdecoder.lo `test -f 'rfbdecoder.c' || echo '$(srcdir)/'`rfbdecoder.c librfb_la-d3des.lo: d3des.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) $(librfb_la_CFLAGS) $(CFLAGS) -MT librfb_la-d3des.lo -MD -MP -MF $(DEPDIR)/librfb_la-d3des.Tpo -c -o librfb_la-d3des.lo `test -f 'd3des.c' || echo '$(srcdir)/'`d3des.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librfb_la-d3des.Tpo $(DEPDIR)/librfb_la-d3des.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='d3des.c' object='librfb_la-d3des.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='d3des.c' object='librfb_la-d3des.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) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-d3des.lo `test -f 'd3des.c' || echo '$(srcdir)/'`d3des.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-d3des.lo `test -f 'd3des.c' || echo '$(srcdir)/'`d3des.c librfb_la-vncauth.lo: vncauth.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) $(librfb_la_CFLAGS) $(CFLAGS) -MT librfb_la-vncauth.lo -MD -MP -MF $(DEPDIR)/librfb_la-vncauth.Tpo -c -o librfb_la-vncauth.lo `test -f 'vncauth.c' || echo '$(srcdir)/'`vncauth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librfb_la-vncauth.Tpo $(DEPDIR)/librfb_la-vncauth.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vncauth.c' object='librfb_la-vncauth.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vncauth.c' object='librfb_la-vncauth.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) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-vncauth.lo `test -f 'vncauth.c' || echo '$(srcdir)/'`vncauth.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librfb_la_CFLAGS) $(CFLAGS) -c -o librfb_la-vncauth.lo `test -f 'vncauth.c' || echo '$(srcdir)/'`vncauth.c mostlyclean-libtool: -rm -f *.lo @@ -821,10 +840,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/librfb/gstrfbsrc.c b/gst/librfb/gstrfbsrc.c index c6e5a13..879892b 100644 --- a/gst/librfb/gstrfbsrc.c +++ b/gst/librfb/gstrfbsrc.c @@ -89,8 +89,8 @@ gst_rfb_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 (&gst_rfb_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rfb_src_template); gst_element_class_set_details_simple (element_class, "Rfb source", "Source/Video", diff --git a/gst/librfb/rfbdecoder.c b/gst/librfb/rfbdecoder.c index 53de8d1..7122e77 100644 --- a/gst/librfb/rfbdecoder.c +++ b/gst/librfb/rfbdecoder.c @@ -803,8 +803,8 @@ static void rfb_decoder_hextile_encoding (RfbDecoder * decoder, gint start_x, gint start_y, gint rect_w, gint rect_h) { - gint32 x, x_count, x_end, x_max, x_max_16; - gint32 y, y_count, y_end, y_max, y_max_16; + gint32 x, x_count G_GNUC_UNUSED, x_end, x_max, x_max_16; + gint32 y, y_count G_GNUC_UNUSED, y_end, y_max, y_max_16; guint8 subencoding, nr_subrect, xy, wh; guint32 background, foreground; diff --git a/gst/librfb/vncauth.c b/gst/librfb/vncauth.c index d6ce7e4..dc68173 100644 --- a/gst/librfb/vncauth.c +++ b/gst/librfb/vncauth.c @@ -96,15 +96,18 @@ vncDecryptPasswdFromFile (char *fname) { FILE *fp; int32_t i, ch; - unsigned char *passwd = (unsigned char *) malloc (9); + unsigned char *passwd; if ((fp = fopen (fname, "r")) == NULL) return NULL; + passwd = (unsigned char *) malloc (9); + for (i = 0; i < 8; i++) { ch = getc (fp); if (ch == EOF) { fclose (fp); + free (passwd); return NULL; } passwd[i] = ch; diff --git a/gst/liveadder/Makefile.in b/gst/liveadder/Makefile.in index 3a5a444..0aeb93b 100644 --- a/gst/liveadder/Makefile.in +++ b/gst/liveadder/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstliveadder_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstliveadder_la_OBJECTS = libgstliveadder_la-liveadder.lo libgstliveadder_la_OBJECTS = $(am_libgstliveadder_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstliveadder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstliveadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstliveadder_la_SOURCES) DIST_SOURCES = $(libgstliveadder_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -602,7 +629,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstliveadder.la: $(libgstliveadder_la_OBJECTS) $(libgstliveadder_la_DEPENDENCIES) +libgstliveadder.la: $(libgstliveadder_la_OBJECTS) $(libgstliveadder_la_DEPENDENCIES) $(EXTRA_libgstliveadder_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstliveadder_la_LINK) -rpath $(plugindir) $(libgstliveadder_la_OBJECTS) $(libgstliveadder_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -616,34 +643,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstliveadder_la-liveadder.lo: liveadder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstliveadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstliveadder_la_CFLAGS) $(CFLAGS) -MT libgstliveadder_la-liveadder.lo -MD -MP -MF $(DEPDIR)/libgstliveadder_la-liveadder.Tpo -c -o libgstliveadder_la-liveadder.lo `test -f 'liveadder.c' || echo '$(srcdir)/'`liveadder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstliveadder_la-liveadder.Tpo $(DEPDIR)/libgstliveadder_la-liveadder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='liveadder.c' object='libgstliveadder_la-liveadder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='liveadder.c' object='libgstliveadder_la-liveadder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstliveadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstliveadder_la_CFLAGS) $(CFLAGS) -c -o libgstliveadder_la-liveadder.lo `test -f 'liveadder.c' || echo '$(srcdir)/'`liveadder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstliveadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstliveadder_la_CFLAGS) $(CFLAGS) -c -o libgstliveadder_la-liveadder.lo `test -f 'liveadder.c' || echo '$(srcdir)/'`liveadder.c mostlyclean-libtool: -rm -f *.lo @@ -750,10 +773,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c index df6cda5..205bd02 100644 --- a/gst/liveadder/liveadder.c +++ b/gst/liveadder/liveadder.c @@ -158,10 +158,10 @@ gst_live_adder_base_init (gpointer klass) { GstElementClass *gstelement_class = (GstElementClass *) klass; - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_live_adder_src_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_live_adder_sink_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_live_adder_src_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_live_adder_sink_template); gst_element_class_set_details_simple (gstelement_class, "Live Adder element", "Generic/Audio", "Mixes live/discontinuous audio streams", @@ -1091,10 +1091,11 @@ gst_live_live_adder_chain (GstPad * pad, GstBuffer * buffer) if (skip) { GstClockTime subbuffer_duration = GST_BUFFER_DURATION (buffer) - skip; GstClockTime subbuffer_ts = GST_BUFFER_TIMESTAMP (buffer) + skip; - - buffer = gst_buffer_create_sub (buffer, + GstBuffer *new_buffer = gst_buffer_create_sub (buffer, gst_live_adder_length_from_duration (adder, skip), gst_live_adder_length_from_duration (adder, subbuffer_duration)); + gst_buffer_unref (buffer); + buffer = new_buffer; GST_BUFFER_TIMESTAMP (buffer) = subbuffer_ts; GST_BUFFER_DURATION (buffer) = subbuffer_duration; } @@ -1377,7 +1378,11 @@ gst_live_adder_request_new_pad (GstElement * element, GstPadTemplate * templ, adder = GST_LIVE_ADDER (element); /* increment pad counter */ +#if GLIB_CHECK_VERSION(2,29,5) + padcount = g_atomic_int_add (&adder->padcount, 1); +#else padcount = g_atomic_int_exchange_and_add (&adder->padcount, 1); +#endif name = g_strdup_printf ("sink%d", padcount); newpad = gst_pad_new_from_template (templ, name); diff --git a/gst/mpeg4videoparse/Makefile.am b/gst/mpeg4videoparse/Makefile.am deleted file mode 100644 index e0c4303..0000000 --- a/gst/mpeg4videoparse/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ - -plugin_LTLIBRARIES = libgstmpeg4videoparse.la - -libgstmpeg4videoparse_la_SOURCES = mpeg4videoparse.c -libgstmpeg4videoparse_la_CFLAGS = $(GST_CFLAGS) -libgstmpeg4videoparse_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) -libgstmpeg4videoparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstmpeg4videoparse_la_LIBTOOLFLAGS = --tag=disable-static - -noinst_HEADERS = mpeg4videoparse.h - -Android.mk: Makefile.am $(BUILT_SOURCES) - androgenizer \ - -:PROJECT libgstmpeg4videoparse -:SHARED libgstmpeg4videoparse \ - -:TAGS eng debug \ - -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ - -:SOURCES $(libgstmpeg4videoparse_la_SOURCES) \ - -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstmpeg4videoparse_la_CFLAGS) \ - -:LDFLAGS $(libgstmpeg4videoparse_la_LDFLAGS) \ - $(libgstmpeg4videoparse_la_LIBADD) \ - -ldl \ - -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ - LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ - > $@ diff --git a/gst/mpeg4videoparse/mpeg4videoparse.c b/gst/mpeg4videoparse/mpeg4videoparse.c deleted file mode 100644 index 254db9f..0000000 --- a/gst/mpeg4videoparse/mpeg4videoparse.c +++ /dev/null @@ -1,1097 +0,0 @@ -/* GStreamer - * Copyright (C) <2008> Mindfruit B.V. - * @author Sjoerd Simons - * Copyright (C) <2007> 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. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include "mpeg4videoparse.h" - -GST_DEBUG_CATEGORY_STATIC (mpeg4v_parse_debug); -#define GST_CAT_DEFAULT mpeg4v_parse_debug - -static GstStaticPadTemplate src_template = -GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/mpeg, " - "mpegversion = (int) 4, " - "parsed = (boolean) true, " "systemstream = (boolean) false") - ); - -static GstStaticPadTemplate sink_template = -GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/mpeg, " - "mpegversion = (int) 4, " - "parsed = (boolean) false, " "systemstream = (boolean) false") - ); - -/* Properties */ -#define DEFAULT_PROP_DROP TRUE -#define DEFAULT_CONFIG_INTERVAL (0) - -enum -{ - PROP_0, - PROP_DROP, - PROP_CONFIG_INTERVAL, - PROP_LAST -}; - -GST_BOILERPLATE (GstMpeg4VParse, gst_mpeg4vparse, GstElement, GST_TYPE_ELEMENT); - -static gboolean -gst_mpeg4vparse_set_new_caps (GstMpeg4VParse * parse, - guint16 time_increment_resolution, guint16 fixed_time_increment, - gint aspect_ratio_width, gint aspect_ratio_height, gint width, gint height) -{ - gboolean res; - GstCaps *out_caps; - - if (parse->sink_caps) { - out_caps = gst_caps_copy (parse->sink_caps); - } else { - out_caps = gst_caps_new_simple ("video/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); - } - gst_caps_set_simple (out_caps, "systemstream", G_TYPE_BOOLEAN, FALSE, - "parsed", G_TYPE_BOOLEAN, TRUE, NULL); - - if (parse->profile != 0) { - gchar *profile = NULL; - - /* FIXME does it make sense to expose the profile in the caps ? */ - profile = g_strdup_printf ("%d", parse->profile); - gst_caps_set_simple (out_caps, "profile-level-id", - G_TYPE_STRING, profile, NULL); - g_free (profile); - } - - if (parse->config != NULL) { - gst_caps_set_simple (out_caps, "codec_data", - GST_TYPE_BUFFER, parse->config, NULL); - } - - if (fixed_time_increment != 0) { - /* we have a framerate */ - gst_caps_set_simple (out_caps, "framerate", - GST_TYPE_FRACTION, time_increment_resolution, fixed_time_increment, - NULL); - parse->frame_duration = gst_util_uint64_scale_int (GST_SECOND, - fixed_time_increment, time_increment_resolution); - } else { - /* unknown duration */ - parse->frame_duration = 0; - } - - if (aspect_ratio_width > 0 && aspect_ratio_height > 0) { - gst_caps_set_simple (out_caps, "pixel-aspect-ratio", - GST_TYPE_FRACTION, aspect_ratio_width, aspect_ratio_height, NULL); - } - - if (width > 0 && height > 0) { - gst_caps_set_simple (out_caps, - "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL); - } - - GST_DEBUG_OBJECT (parse, "setting downstream caps to %" GST_PTR_FORMAT, - out_caps); - res = gst_pad_set_caps (parse->srcpad, out_caps); - gst_caps_unref (out_caps); - - parse->have_src_caps = TRUE; - if (parse->pending_segment != NULL) { - /* We can send pending events since we now have caps for the srcpad */ - gst_pad_push_event (parse->srcpad, parse->pending_segment); - parse->pending_segment = NULL; - - if (G_UNLIKELY (parse->pending_events != NULL)) { - GList *l; - - for (l = parse->pending_events; l != NULL; l = l->next) - gst_pad_push_event (parse->srcpad, GST_EVENT (l->data)); - - g_list_free (parse->pending_events); - parse->pending_events = NULL; - } - } - return res; -} - -#define VIDEO_OBJECT_STARTCODE_MIN 0x00 -#define VIDEO_OBJECT_STARTCODE_MAX 0x1F -#define VOS_STARTCODE 0xB0 -#define VOS_ENDCODE 0xB1 -#define USER_DATA_STARTCODE 0xB2 -#define GOP_STARTCODE 0xB3 -#define VISUAL_OBJECT_STARTCODE 0xB5 -#define VOP_STARTCODE 0xB6 - -#define START_MARKER 0x000001 -#define VISUAL_OBJECT_STARTCODE_MARKER ((START_MARKER << 8) + VISUAL_OBJECT_STARTCODE) -#define USER_DATA_STARTCODE_MARKER ((START_MARKER << 8) + USER_DATA_STARTCODE) - -typedef struct -{ - const guint8 *data; - /* byte offset */ - gsize offset; - /* bit offset */ - gsize b_offset; - - /* size in bytes */ - gsize size; -} bitstream_t; - -static gboolean -get_bits (bitstream_t * b, int num, guint32 * bits) -{ - *bits = 0; - - if (b->offset + ((b->b_offset + num) / 8) > b->size) - return FALSE; - - if (b->b_offset + num <= 8) { - *bits = b->data[b->offset]; - *bits = (*bits >> (8 - num - b->b_offset)) & (((1 << num)) - 1); - - b->offset += (b->b_offset + num) / 8; - b->b_offset = (b->b_offset + num) % 8; - return TRUE; - } else { - /* going over the edge.. */ - int next; - - next = (8 - b->b_offset); - do { - guint32 t; - - if (!get_bits (b, next, &t)) - return FALSE; - *bits <<= next; - *bits |= t; - num -= next; - next = MIN (8, num); - } while (num > 0); - - return TRUE; - } -} - -#define GET_BITS(b, num, bits) G_STMT_START { \ - if (!get_bits(b, num, bits)) \ - goto failed; \ -} G_STMT_END - -#define MARKER_BIT(b) G_STMT_START { \ - guint32 i; \ - GET_BITS(b, 1, &i); \ - if (i != 0x1) \ - goto failed; \ -} G_STMT_END - -static inline gboolean -next_start_code (bitstream_t * b) -{ - guint32 bits; - - GET_BITS (b, 1, &bits); - if (bits != 0) - goto failed; - - while (b->b_offset != 0) { - GET_BITS (b, 1, &bits); - if (bits != 0x1) - goto failed; - } - - return TRUE; - -failed: - return FALSE; -} - -static gint aspect_ratio_table[6][2] = { {-1, -1}, {1, 1}, {12, 11}, -{10, 11}, {16, 11}, {40, 33} -}; - -static void -gst_mpeg4vparse_set_config (GstMpeg4VParse * parse, const guint8 * data, - gsize size) -{ - /* limit possible caps noise */ - if (parse->config && size == GST_BUFFER_SIZE (parse->config) && - memcmp (GST_BUFFER_DATA (parse->config), data, size) == 0) - return; - - if (parse->config != NULL) - gst_buffer_unref (parse->config); - - parse->config = gst_buffer_new_and_alloc (size); - memcpy (GST_BUFFER_DATA (parse->config), data, size); -} - -/* Handle parsing a video object */ -static gboolean -gst_mpeg4vparse_handle_vo (GstMpeg4VParse * parse, const guint8 * data, - gsize size, gboolean set_codec_data) -{ - guint32 bits; - bitstream_t bs = { data, 0, 0, size }; - guint16 time_increment_resolution = 0; - guint16 fixed_time_increment = 0; - gint aspect_ratio_width = -1, aspect_ratio_height = -1; - gint height = -1, width = -1; - - if (set_codec_data) - gst_mpeg4vparse_set_config (parse, data, size); - - /* expecting a video object startcode */ - GET_BITS (&bs, 32, &bits); - if (bits > 0x11F) - goto failed; - - /* expecting a video object layer startcode */ - GET_BITS (&bs, 32, &bits); - if (bits < 0x120 || bits > 0x12F) - goto failed; - - /* ignore random accessible vol and video object type indication */ - GET_BITS (&bs, 9, &bits); - - GET_BITS (&bs, 1, &bits); - if (bits) { - /* skip video object layer verid and priority */ - GET_BITS (&bs, 7, &bits); - } - - /* aspect ratio info */ - GET_BITS (&bs, 4, &bits); - if (bits == 0) - goto failed; - - /* check if aspect ratio info is extended par */ - if (bits == 0xf) { - GET_BITS (&bs, 8, &bits); - aspect_ratio_width = bits; - GET_BITS (&bs, 8, &bits); - aspect_ratio_height = bits; - } else if (bits < 0x6) { - aspect_ratio_width = aspect_ratio_table[bits][0]; - aspect_ratio_height = aspect_ratio_table[bits][1]; - } - - GET_BITS (&bs, 1, &bits); - if (bits) { - /* vol control parameters, skip chroma and low delay */ - GET_BITS (&bs, 3, &bits); - GET_BITS (&bs, 1, &bits); - if (bits) { - /* skip vbv_parameters */ - GET_BITS (&bs, 79, &bits); - } - } - - /* layer shape */ - GET_BITS (&bs, 2, &bits); - /* only support rectangular */ - if (bits != 0) - goto failed; - - MARKER_BIT (&bs); - GET_BITS (&bs, 16, &bits); - time_increment_resolution = bits; - MARKER_BIT (&bs); - - GST_DEBUG_OBJECT (parse, "time increment resolution %d", - time_increment_resolution); - - GET_BITS (&bs, 1, &bits); - if (bits) { - /* fixed time increment */ - int n; - - /* Length of the time increment is the minimal number of bits needed to - * represent time_increment_resolution */ - for (n = 0; (time_increment_resolution >> n) != 0; n++); - GET_BITS (&bs, n, &bits); - - fixed_time_increment = bits; - } else { - /* When fixed_vop_rate is not set we can't guess any framerate */ - fixed_time_increment = 0; - } - GST_DEBUG_OBJECT (parse, "fixed time increment %d", fixed_time_increment); - - /* assuming rectangular shape */ - MARKER_BIT (&bs); - GET_BITS (&bs, 13, &bits); - width = bits; - MARKER_BIT (&bs); - GET_BITS (&bs, 13, &bits); - height = bits; - MARKER_BIT (&bs); - - /* ok we know there is enough data in the stream to decode it and we can start - * pushing the data */ - parse->have_config = TRUE; - -out: - return gst_mpeg4vparse_set_new_caps (parse, time_increment_resolution, - fixed_time_increment, aspect_ratio_width, aspect_ratio_height, - width, height); - - /* ERRORS */ -failed: - { - GST_WARNING_OBJECT (parse, "Failed to parse config data"); - goto out; - } -} - -static inline gboolean -skip_user_data (bitstream_t * bs, guint32 * bits) -{ - while (*bits == USER_DATA_STARTCODE_MARKER) { - guint32 b; - - do { - GET_BITS (bs, 8, &b); - *bits = (*bits << 8) | b; - } while ((*bits >> 8) != START_MARKER); - } - - return TRUE; - -failed: - return FALSE; -} - -/* Handle parsing a visual object sequence. - Returns whether we successfully set the caps downstream if needed */ -static gboolean -gst_mpeg4vparse_handle_vos (GstMpeg4VParse * parse, const guint8 * data, - gsize size) -{ - /* Skip the startcode */ - guint32 bits; - - guint8 profile; - gboolean equal; - bitstream_t bs = { data, 0, 0, size }; - - if (size < 5) - goto failed; - - /* Parse the config from the VOS frame */ - bs.offset = 5; - - profile = data[4]; - - /* invalid profile, yikes */ - if (profile == 0) { - GST_WARNING_OBJECT (parse, "Invalid profile in VOS"); - return FALSE; - } - - equal = FALSE; - if (G_LIKELY (parse->config && size == GST_BUFFER_SIZE (parse->config) && - memcmp (GST_BUFFER_DATA (parse->config), data, size) == 0)) - equal = TRUE; - - if (G_LIKELY (parse->profile == profile && equal)) { - /* We know this profile and config data, so we can just keep the same caps - */ - return TRUE; - } - - /* Even if we fail to parse, then some other element might succeed, so always - * put the VOS in the config */ - parse->profile = profile; - gst_mpeg4vparse_set_config (parse, data, size); - - parse->have_config = TRUE; - - /* Expect Visual Object startcode */ - GET_BITS (&bs, 32, &bits); - - /* but skip optional user data */ - if (!skip_user_data (&bs, &bits)) - goto failed; - - if (bits != VISUAL_OBJECT_STARTCODE_MARKER) - goto failed; - - GET_BITS (&bs, 1, &bits); - if (bits == 0x1) { - /* Skip visual_object_verid and priority */ - GET_BITS (&bs, 7, &bits); - } - - GET_BITS (&bs, 4, &bits); - /* Only support video ID */ - if (bits != 0x1) - goto failed; - - /* video signal type */ - GET_BITS (&bs, 1, &bits); - - if (bits == 0x1) { - /* video signal type, ignore format and range */ - GET_BITS (&bs, 4, &bits); - - GET_BITS (&bs, 1, &bits); - if (bits == 0x1) { - /* ignore color description */ - GET_BITS (&bs, 24, &bits); - } - } - - if (!next_start_code (&bs)) - goto failed; - - /* skip optional user data */ - GET_BITS (&bs, 32, &bits); - if (!skip_user_data (&bs, &bits)) - goto failed; - /* rewind to start code */ - bs.offset -= 4; - - data = &bs.data[bs.offset]; - size -= bs.offset; - - return gst_mpeg4vparse_handle_vo (parse, data, size, FALSE); - -out: - return gst_mpeg4vparse_set_new_caps (parse, 0, 0, -1, -1, -1, -1); - - /* ERRORS */ -failed: - { - GST_WARNING_OBJECT (parse, "Failed to parse config data"); - goto out; - } -} - -static void -gst_mpeg4vparse_push (GstMpeg4VParse * parse, gsize size) -{ - if (G_UNLIKELY (!parse->have_config && parse->drop)) { - GST_LOG_OBJECT (parse, "Dropping %d bytes", parse->offset); - gst_adapter_flush (parse->adapter, size); - } else { - GstBuffer *out_buf; - - out_buf = gst_adapter_take_buffer (parse->adapter, parse->offset); - - if (G_LIKELY (out_buf)) { - out_buf = gst_buffer_make_metadata_writable (out_buf); - GST_BUFFER_TIMESTAMP (out_buf) = parse->timestamp; - - /* Set GST_BUFFER_FLAG_DELTA_UNIT if it's not an intra frame */ - if (!parse->intra_frame) { - GST_BUFFER_FLAG_SET (out_buf, GST_BUFFER_FLAG_DELTA_UNIT); - } else if (parse->interval > 0 && parse->config) { - GstClockTime timestamp = GST_BUFFER_TIMESTAMP (out_buf); - guint64 diff; - - /* init */ - if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (parse->last_report))) { - parse->last_report = timestamp; - } - - /* insert on intra frames */ - if (G_LIKELY (timestamp > parse->last_report)) - diff = timestamp - parse->last_report; - else - diff = 0; - - GST_LOG_OBJECT (parse, - "now %" GST_TIME_FORMAT ", last VOP-I %" GST_TIME_FORMAT, - GST_TIME_ARGS (timestamp), GST_TIME_ARGS (parse->last_report)); - - GST_DEBUG_OBJECT (parse, - "interval since last config %" GST_TIME_FORMAT, - GST_TIME_ARGS (diff)); - - if (G_UNLIKELY (GST_TIME_AS_SECONDS (diff) >= parse->interval)) { - /* we need to send config now first */ - GstBuffer *superbuf; - - GST_LOG_OBJECT (parse, "inserting config in stream"); - - /* insert header */ - superbuf = gst_buffer_merge (parse->config, out_buf); - gst_buffer_unref (out_buf); - - out_buf = gst_buffer_make_metadata_writable (superbuf); - GST_BUFFER_TIMESTAMP (out_buf) = timestamp; - - if (G_UNLIKELY (timestamp != -1)) { - parse->last_report = timestamp; - } - } - } - gst_buffer_set_caps (out_buf, GST_PAD_CAPS (parse->srcpad)); - gst_pad_push (parse->srcpad, out_buf); - } - } - - /* Restart now that we flushed data */ - parse->offset = 0; - parse->state = PARSE_NEED_START; - parse->intra_frame = FALSE; -} - -static GstFlowReturn -gst_mpeg4vparse_drain (GstMpeg4VParse * parse, GstBuffer * last_buffer) -{ - GstFlowReturn ret = GST_FLOW_OK; - const guint8 *data = NULL; - guint available = 0; - - available = gst_adapter_available (parse->adapter); - /* We do a quick check here to avoid the _peek() below. */ - if (G_UNLIKELY (available < 5)) { - GST_DEBUG_OBJECT (parse, "we need more data, %d < 5", available); - goto beach; - } - data = gst_adapter_peek (parse->adapter, available); - - /* Need at least 5 more bytes, 4 for the startcode, 1 to optionally determine - * the VOP frame type */ - while (available >= 5 && parse->offset < available - 5) { - if (data[parse->offset] == 0 && data[parse->offset + 1] == 0 && - data[parse->offset + 2] == 1) { - - switch (parse->state) { - case PARSE_NEED_START: - { - gboolean found = FALSE; - guint8 code; - - code = data[parse->offset + 3]; - - switch (code) { - case VOP_STARTCODE: - case VOS_STARTCODE: - case GOP_STARTCODE: - found = TRUE; - break; - default: - if (code <= 0x1f) - found = TRUE; - break; - } - if (found) { - /* valid starts of a frame */ - parse->state = PARSE_START_FOUND; - if (parse->offset > 0) { - GST_LOG_OBJECT (parse, "Flushing %u bytes", parse->offset); - gst_adapter_flush (parse->adapter, parse->offset); - parse->offset = 0; - available = gst_adapter_available (parse->adapter); - data = gst_adapter_peek (parse->adapter, available); - } - } else - parse->offset += 4; - break; - } - case PARSE_START_FOUND: - { - guint8 code; - - code = data[parse->offset + 3]; - - switch (code) { - case VOP_STARTCODE: - GST_LOG_OBJECT (parse, "found VOP start marker at %u", - parse->offset); - parse->intra_frame = ((data[parse->offset + 4] >> 6 & 0x3) == 0); - /* Ensure that the timestamp of the outgoing buffer is the same - * as the one the VOP header is found in */ - parse->timestamp = GST_BUFFER_TIMESTAMP (last_buffer); - parse->state = PARSE_VOP_FOUND; - break; - case VOS_STARTCODE: - GST_LOG_OBJECT (parse, "found VOS start marker at %u", - parse->offset); - parse->vos_offset = parse->offset; - parse->state = PARSE_VOS_FOUND; - break; - default: - if (code <= 0x1f) { - GST_LOG_OBJECT (parse, "found VO start marker at %u", - parse->offset); - parse->vos_offset = parse->offset; - parse->state = PARSE_VO_FOUND; - } - break; - } - /* Jump over it */ - parse->offset += 4; - break; - } - case PARSE_VO_FOUND: - switch (data[parse->offset + 3]) { - case GOP_STARTCODE: - case VOP_STARTCODE: - /* end of VOS found, interpret the config data and restart the - * search for the VOP */ - gst_mpeg4vparse_handle_vo (parse, data + parse->vos_offset, - parse->offset - parse->vos_offset, TRUE); - parse->state = PARSE_START_FOUND; - break; - default: - parse->offset += 4; - } - break; - case PARSE_VOS_FOUND: - switch (data[parse->offset + 3]) { - case GOP_STARTCODE: - case VOP_STARTCODE: - /* end of VOS found, interpret the config data and restart the - * search for the VOP */ - gst_mpeg4vparse_handle_vos (parse, data + parse->vos_offset, - parse->offset - parse->vos_offset); - parse->state = PARSE_START_FOUND; - break; - default: - parse->offset += 4; - } - break; - case PARSE_VOP_FOUND: - { /* We were in a VOP already, any start code marks the end of it */ - GST_LOG_OBJECT (parse, "found VOP end marker at %u", parse->offset); - - gst_mpeg4vparse_push (parse, parse->offset); - - available = gst_adapter_available (parse->adapter); - data = gst_adapter_peek (parse->adapter, available); - break; - } - default: - GST_WARNING_OBJECT (parse, "unexpected parse state (%d)", - parse->state); - ret = GST_FLOW_UNEXPECTED; - goto beach; - } - } else { /* Continue searching */ - parse->offset++; - } - } - -beach: - return ret; -} - -static GstFlowReturn -gst_mpeg4vparse_chain (GstPad * pad, GstBuffer * buffer) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (gst_pad_get_parent (pad)); - GstFlowReturn ret = GST_FLOW_OK; - - GST_DEBUG_OBJECT (parse, "received buffer of %u bytes with ts %" - GST_TIME_FORMAT " and offset %" G_GINT64_FORMAT, GST_BUFFER_SIZE (buffer), - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)), - GST_BUFFER_OFFSET (buffer)); - - gst_adapter_push (parse->adapter, buffer); - - /* Drain the accumulated blocks frame per frame */ - ret = gst_mpeg4vparse_drain (parse, buffer); - - gst_object_unref (parse); - - return ret; -} - -static gboolean -gst_mpeg4vparse_sink_setcaps (GstPad * pad, GstCaps * caps) -{ - gboolean res = TRUE; - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (gst_pad_get_parent (pad)); - GstStructure *s; - const GValue *value; - - GST_DEBUG_OBJECT (parse, "setcaps called with %" GST_PTR_FORMAT, caps); - parse->sink_caps = gst_caps_ref (caps); - - s = gst_caps_get_structure (caps, 0); - - if ((value = gst_structure_get_value (s, "codec_data")) != NULL - && G_VALUE_HOLDS (value, GST_TYPE_BUFFER)) { - GstBuffer *buf = gst_value_get_buffer (value); - - /* Set the config from this codec_data immediately so that in the worst - case, we don't just discard it. - Note that in most cases, this will be freed and overwritten when we - manage to parse the codec_data. */ - if (!parse->config) { - parse->config = gst_buffer_copy (buf); - } - - if (GST_BUFFER_SIZE (buf) < 4) { - GST_WARNING_OBJECT (parse, "codec_data too short, ignoring"); - goto failed_parse; - } else { - const guint8 *data = GST_BUFFER_DATA (buf); - - res = FALSE; - if (data[0] == 0 && data[1] == 0 && data[2] == 1) { - if (data[3] == VOS_STARTCODE) { - /* Usually the codec data will be a visual object sequence, containing - a visual object, with a video object/video object layer. */ - res = gst_mpeg4vparse_handle_vos (parse, data, GST_BUFFER_SIZE (buf)); - } else if (data[3] <= VIDEO_OBJECT_STARTCODE_MAX) { - /* VIDEO_OBJECT_STARTCODE_MIN is zero, and data is unsigned, so we - don't need to check min (and in fact that causes a compile err */ - /* Sometimes, instead, it'll just have the video object/video object - layer data. We can parse that too, though it'll give us slightly - less information. */ - res = gst_mpeg4vparse_handle_vo (parse, data, GST_BUFFER_SIZE (buf), - FALSE); - } - if (!res) - goto failed_parse; - } else { - GST_WARNING_OBJECT (parse, - "codec_data does not begin with start code, invalid"); - goto failed_parse; - } - } - } else { - /* No codec data; treat the same a failed codec data */ - goto failed_parse; - } - -done: - gst_object_unref (parse); - return res; - -failed_parse: - /* No codec data, or obviously-invalid, so set minimal new caps. - VOS parsing later will (hopefully) fill in the other fields */ - res = gst_mpeg4vparse_set_new_caps (parse, 0, 0, 0, 0, 0, 0); - goto done; -} - -static gboolean -gst_mpeg4vparse_sink_event (GstPad * pad, GstEvent * event) -{ - gboolean res = TRUE; - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (gst_pad_get_parent (pad)); - - GST_DEBUG_OBJECT (parse, "handling event type %s", - GST_EVENT_TYPE_NAME (event)); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_FLUSH_STOP: - parse->last_report = GST_CLOCK_TIME_NONE; - gst_adapter_clear (parse->adapter); - parse->state = PARSE_NEED_START; - parse->offset = 0; - break; - case GST_EVENT_EOS: - if (parse->pending_segment != NULL) { - /* Send pending newsegment before EOS */ - gst_pad_push_event (parse->srcpad, parse->pending_segment); - parse->pending_segment = NULL; - } - if (parse->state == PARSE_VOP_FOUND) { - /* If we've found the start of the VOP assume what's left in the - * adapter is the complete VOP. This might cause us to send an - * incomplete VOP out, but prevents the last video frame from - * potentially being dropped */ - gst_mpeg4vparse_push (parse, gst_adapter_available (parse->adapter)); - } - /* fallthrough */ - case GST_EVENT_FLUSH_START: - res = gst_pad_event_default (pad, event); - break; - case GST_EVENT_NEWSEGMENT: - gst_event_replace (&parse->pending_segment, event); - gst_event_unref (event); - res = TRUE; - break; - default: - if (G_UNLIKELY (!parse->have_src_caps || parse->pending_segment)) { - /* We don't yet have enough data to set caps on the srcpad, so collect - * non-critical events till we do */ - parse->pending_events = g_list_append (parse->pending_events, event); - res = TRUE; - } else - res = gst_pad_event_default (pad, event); - break; - } - - gst_object_unref (parse); - - return res; -} - -static gboolean -gst_mpeg4vparse_src_query (GstPad * pad, GstQuery * query) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (gst_pad_get_parent (pad)); - gboolean res; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_LATENCY: - { - /* We need to send the query upstream and add the returned latency to our - * own */ - GstClockTime min_latency, max_latency; - - gboolean us_live; - - GstClockTime our_latency; - - if ((res = gst_pad_peer_query (parse->sinkpad, query))) { - gst_query_parse_latency (query, &us_live, &min_latency, &max_latency); - - GST_DEBUG_OBJECT (parse, "Peer latency: min %" - GST_TIME_FORMAT " max %" GST_TIME_FORMAT, - GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency)); - - /* our latency is 1 frame, find the frame duration */ - our_latency = parse->frame_duration; - - GST_DEBUG_OBJECT (parse, "Our latency: %" GST_TIME_FORMAT, - GST_TIME_ARGS (our_latency)); - - /* we add some latency */ - min_latency += our_latency; - if (max_latency != -1) - max_latency += our_latency; - - GST_DEBUG_OBJECT (parse, "Calculated total latency : min %" - GST_TIME_FORMAT " max %" GST_TIME_FORMAT, - GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency)); - - gst_query_set_latency (query, us_live, min_latency, max_latency); - } - break; - } - default: - res = gst_pad_peer_query (parse->sinkpad, query); - break; - } - gst_object_unref (parse); - - return res; -} - -static void -gst_mpeg4vparse_cleanup (GstMpeg4VParse * parse) -{ - if (parse->sink_caps) { - gst_caps_unref (parse->sink_caps); - parse->sink_caps = NULL; - } - if (parse->adapter) { - gst_adapter_clear (parse->adapter); - } - if (parse->config != NULL) { - gst_buffer_unref (parse->config); - parse->config = NULL; - } - - if (parse->pending_segment) - gst_event_unref (parse->pending_segment); - parse->pending_segment = NULL; - - g_list_foreach (parse->pending_events, (GFunc) gst_event_unref, NULL); - g_list_free (parse->pending_events); - parse->pending_events = NULL; - - parse->have_src_caps = FALSE; - - parse->state = PARSE_NEED_START; - parse->have_config = FALSE; - parse->offset = 0; - parse->last_report = GST_CLOCK_TIME_NONE; -} - -static GstStateChangeReturn -gst_mpeg4vparse_change_state (GstElement * element, GstStateChange transition) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (element); - - GstStateChangeReturn ret; - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - - switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_mpeg4vparse_cleanup (parse); - break; - default: - break; - } - return ret; -} - -static void -gst_mpeg4vparse_finalize (GObject * object) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (object); - - gst_mpeg4vparse_cleanup (parse); - - if (parse->adapter) { - g_object_unref (parse->adapter); - parse->adapter = NULL; - } - - GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); -} - -static void -gst_mpeg4vparse_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, - "MPEG 4 video elementary stream parser", "Codec/Parser/Video", - "Parses MPEG-4 Part 2 elementary video streams", - "Julien Moutte "); -} - -static void -gst_mpeg4vparse_set_property (GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (object); - - switch (property_id) { - case PROP_DROP: - parse->drop = g_value_get_boolean (value); - break; - case PROP_CONFIG_INTERVAL: - parse->interval = g_value_get_uint (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -gst_mpeg4vparse_get_property (GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) -{ - GstMpeg4VParse *parse = GST_MPEG4VIDEOPARSE (object); - - switch (property_id) { - case PROP_DROP: - g_value_set_boolean (value, parse->drop); - break; - case PROP_CONFIG_INTERVAL: - g_value_set_uint (value, parse->interval); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -gst_mpeg4vparse_class_init (GstMpeg4VParseClass * klass) -{ - GObjectClass *gobject_class; - GstElementClass *gstelement_class; - gstelement_class = (GstElementClass *) klass; - gobject_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_finalize); - - gobject_class->set_property = gst_mpeg4vparse_set_property; - gobject_class->get_property = gst_mpeg4vparse_get_property; - - g_object_class_install_property (gobject_class, PROP_DROP, - g_param_spec_boolean ("drop", "drop", - "Drop data untill valid configuration data is received either " - "in the stream or through caps", DEFAULT_PROP_DROP, - G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (gobject_class, PROP_CONFIG_INTERVAL, - g_param_spec_uint ("config-interval", - "Configuration Send Interval", - "Send Configuration Insertion Interval in seconds (configuration headers " - "will be multiplexed in the data stream when detected.) (0 = disabled)", - 0, 3600, DEFAULT_CONFIG_INTERVAL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - gstelement_class->change_state = - GST_DEBUG_FUNCPTR (gst_mpeg4vparse_change_state); -} - -static void -gst_mpeg4vparse_init (GstMpeg4VParse * parse, GstMpeg4VParseClass * g_class) -{ - parse->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); - gst_pad_set_chain_function (parse->sinkpad, - GST_DEBUG_FUNCPTR (gst_mpeg4vparse_chain)); - gst_pad_set_event_function (parse->sinkpad, - GST_DEBUG_FUNCPTR (gst_mpeg4vparse_sink_event)); - gst_pad_set_setcaps_function (parse->sinkpad, - GST_DEBUG_FUNCPTR (gst_mpeg4vparse_sink_setcaps)); - gst_element_add_pad (GST_ELEMENT (parse), parse->sinkpad); - - parse->srcpad = gst_pad_new_from_static_template (&src_template, "src"); - gst_pad_set_query_function (parse->srcpad, - GST_DEBUG_FUNCPTR (gst_mpeg4vparse_src_query)); - gst_pad_use_fixed_caps (parse->srcpad); - gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad); - - parse->adapter = gst_adapter_new (); - - parse->interval = DEFAULT_CONFIG_INTERVAL; - parse->last_report = GST_CLOCK_TIME_NONE; - - gst_mpeg4vparse_cleanup (parse); -} - -static gboolean -plugin_init (GstPlugin * plugin) -{ - GST_DEBUG_CATEGORY_INIT (mpeg4v_parse_debug, "mpeg4videoparse", 0, - "MPEG-4 video parser"); - - if (!gst_element_register (plugin, "mpeg4videoparse", GST_RANK_SECONDARY, - gst_mpeg4vparse_get_type ())) - return FALSE; - - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "mpeg4videoparse", - "MPEG-4 video parser", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/mpeg4videoparse/mpeg4videoparse.h b/gst/mpeg4videoparse/mpeg4videoparse.h deleted file mode 100644 index 29f7fa1..0000000 --- a/gst/mpeg4videoparse/mpeg4videoparse.h +++ /dev/null @@ -1,90 +0,0 @@ -/* GStreamer - * Copyright (C) <2007> 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 __MPEG4VIDEOPARSE_H__ -#define __MPEG4VIDEOPARSE_H__ - -#include -#include - -G_BEGIN_DECLS - -#define GST_TYPE_MPEG4VIDEOPARSE (gst_mpeg4vparse_get_type()) -#define GST_MPEG4VIDEOPARSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\ - GST_TYPE_MPEG4VIDEOPARSE, GstMpeg4VParse)) -#define GST_MPEG4VIDEOPARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\ - GST_TYPE_MPEG4VIDEOPARSE, GstMpeg4VParseClass)) -#define GST_MPEG4VIDEOPARSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\ - GST_TYPE_MPEG4VIDEOPARSE, GstMpeg4VParseClass)) -#define GST_IS_MPEG4VIDEOPARSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\ - GST_TYPE_MPEG4VIDEOPARSE)) -#define GST_IS_MPEG4VIDEOPARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\ - GST_TYPE_MPEG4VIDEOPARSE)) - -typedef struct _GstMpeg4VParse GstMpeg4VParse; -typedef struct _GstMpeg4VParseClass GstMpeg4VParseClass; - -typedef enum { - PARSE_NEED_START, - PARSE_START_FOUND, - PARSE_VO_FOUND, - PARSE_VOS_FOUND, - PARSE_VOP_FOUND -} GstMpeg4VParseState; - -struct _GstMpeg4VParse { - GstElement element; - - GstPad * sinkpad; - GstPad * srcpad; - - GstCaps *sink_caps; - - guint interval; - GstClockTime last_report; - - GstAdapter * adapter; - guint offset; - guint vos_offset; - gboolean intra_frame; - - GstMpeg4VParseState state; - GstClockTime timestamp; - - GstBuffer *config; - gboolean have_config; - guint8 profile; - GstClockTime frame_duration; - - gboolean drop; - - gboolean have_src_caps; - GstEvent *pending_segment; - GList *pending_events; -}; - -struct _GstMpeg4VParseClass { - GstElementClass parent_class; -}; - -GType gst_mpeg4vparse_get_type (void); - -G_END_DECLS - -#endif /* __MPEG4VIDEOPARSE_H__ */ diff --git a/gst/mpegdemux/Makefile.in b/gst/mpegdemux/Makefile.in index 8e2870b..278452c 100644 --- a/gst/mpegdemux/Makefile.in +++ b/gst/mpegdemux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -117,8 +124,8 @@ am_libgstmpegdemux_la_OBJECTS = libgstmpegdemux_la-flumpegdemux.lo \ libgstmpegdemux_la-mpegtsparse.lo \ libgstmpegdemux_la-mpegtspacketizer.lo libgstmpegdemux_la_OBJECTS = $(am_libgstmpegdemux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpegdemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -134,21 +141,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpegdemux_la_SOURCES) DIST_SOURCES = $(libgstmpegdemux_la_SOURCES) @@ -160,7 +167,6 @@ 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@ @@ -178,7 +184,6 @@ 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@ @@ -213,6 +218,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -252,6 +258,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -269,6 +276,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -277,13 +285,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -308,13 +319,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -362,6 +374,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -393,8 +406,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -418,6 +435,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -442,10 +461,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -457,6 +480,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -481,6 +508,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -516,7 +544,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -639,7 +666,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpegdemux.la: $(libgstmpegdemux_la_OBJECTS) $(libgstmpegdemux_la_DEPENDENCIES) +libgstmpegdemux.la: $(libgstmpegdemux_la_OBJECTS) $(libgstmpegdemux_la_DEPENDENCIES) $(EXTRA_libgstmpegdemux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmpegdemux_la_LINK) -rpath $(plugindir) $(libgstmpegdemux_la_OBJECTS) $(libgstmpegdemux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -663,114 +690,100 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmpegdemux_la-flumpegdemux.lo: flumpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-flumpegdemux.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-flumpegdemux.Tpo -c -o libgstmpegdemux_la-flumpegdemux.lo `test -f 'flumpegdemux.c' || echo '$(srcdir)/'`flumpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-flumpegdemux.Tpo $(DEPDIR)/libgstmpegdemux_la-flumpegdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flumpegdemux.c' object='libgstmpegdemux_la-flumpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flumpegdemux.c' object='libgstmpegdemux_la-flumpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flumpegdemux.lo `test -f 'flumpegdemux.c' || echo '$(srcdir)/'`flumpegdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flumpegdemux.lo `test -f 'flumpegdemux.c' || echo '$(srcdir)/'`flumpegdemux.c libgstmpegdemux_la-flutspatinfo.lo: flutspatinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-flutspatinfo.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-flutspatinfo.Tpo -c -o libgstmpegdemux_la-flutspatinfo.lo `test -f 'flutspatinfo.c' || echo '$(srcdir)/'`flutspatinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-flutspatinfo.Tpo $(DEPDIR)/libgstmpegdemux_la-flutspatinfo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flutspatinfo.c' object='libgstmpegdemux_la-flutspatinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flutspatinfo.c' object='libgstmpegdemux_la-flutspatinfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspatinfo.lo `test -f 'flutspatinfo.c' || echo '$(srcdir)/'`flutspatinfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspatinfo.lo `test -f 'flutspatinfo.c' || echo '$(srcdir)/'`flutspatinfo.c libgstmpegdemux_la-flutspmtinfo.lo: flutspmtinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-flutspmtinfo.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-flutspmtinfo.Tpo -c -o libgstmpegdemux_la-flutspmtinfo.lo `test -f 'flutspmtinfo.c' || echo '$(srcdir)/'`flutspmtinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-flutspmtinfo.Tpo $(DEPDIR)/libgstmpegdemux_la-flutspmtinfo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flutspmtinfo.c' object='libgstmpegdemux_la-flutspmtinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flutspmtinfo.c' object='libgstmpegdemux_la-flutspmtinfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspmtinfo.lo `test -f 'flutspmtinfo.c' || echo '$(srcdir)/'`flutspmtinfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspmtinfo.lo `test -f 'flutspmtinfo.c' || echo '$(srcdir)/'`flutspmtinfo.c libgstmpegdemux_la-flutspmtstreaminfo.lo: flutspmtstreaminfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-flutspmtstreaminfo.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-flutspmtstreaminfo.Tpo -c -o libgstmpegdemux_la-flutspmtstreaminfo.lo `test -f 'flutspmtstreaminfo.c' || echo '$(srcdir)/'`flutspmtstreaminfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-flutspmtstreaminfo.Tpo $(DEPDIR)/libgstmpegdemux_la-flutspmtstreaminfo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flutspmtstreaminfo.c' object='libgstmpegdemux_la-flutspmtstreaminfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flutspmtstreaminfo.c' object='libgstmpegdemux_la-flutspmtstreaminfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspmtstreaminfo.lo `test -f 'flutspmtstreaminfo.c' || echo '$(srcdir)/'`flutspmtstreaminfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-flutspmtstreaminfo.lo `test -f 'flutspmtstreaminfo.c' || echo '$(srcdir)/'`flutspmtstreaminfo.c libgstmpegdemux_la-gstmpegdemux.lo: gstmpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-gstmpegdemux.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-gstmpegdemux.Tpo -c -o libgstmpegdemux_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-gstmpegdemux.Tpo $(DEPDIR)/libgstmpegdemux_la-gstmpegdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegdemux.c' object='libgstmpegdemux_la-gstmpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegdemux.c' object='libgstmpegdemux_la-gstmpegdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegdemux.lo `test -f 'gstmpegdemux.c' || echo '$(srcdir)/'`gstmpegdemux.c libgstmpegdemux_la-gstmpegdesc.lo: gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-gstmpegdesc.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-gstmpegdesc.Tpo -c -o libgstmpegdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-gstmpegdesc.Tpo $(DEPDIR)/libgstmpegdemux_la-gstmpegdesc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegdesc.c' object='libgstmpegdemux_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegdesc.c' object='libgstmpegdemux_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c libgstmpegdemux_la-gstmpegtsdemux.lo: gstmpegtsdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-gstmpegtsdemux.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-gstmpegtsdemux.Tpo -c -o libgstmpegdemux_la-gstmpegtsdemux.lo `test -f 'gstmpegtsdemux.c' || echo '$(srcdir)/'`gstmpegtsdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-gstmpegtsdemux.Tpo $(DEPDIR)/libgstmpegdemux_la-gstmpegtsdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegtsdemux.c' object='libgstmpegdemux_la-gstmpegtsdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegtsdemux.c' object='libgstmpegdemux_la-gstmpegtsdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegtsdemux.lo `test -f 'gstmpegtsdemux.c' || echo '$(srcdir)/'`gstmpegtsdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstmpegtsdemux.lo `test -f 'gstmpegtsdemux.c' || echo '$(srcdir)/'`gstmpegtsdemux.c libgstmpegdemux_la-gstpesfilter.lo: gstpesfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-gstpesfilter.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-gstpesfilter.Tpo -c -o libgstmpegdemux_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-gstpesfilter.Tpo $(DEPDIR)/libgstmpegdemux_la-gstpesfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpesfilter.c' object='libgstmpegdemux_la-gstpesfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpesfilter.c' object='libgstmpegdemux_la-gstpesfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstpesfilter.lo `test -f 'gstpesfilter.c' || echo '$(srcdir)/'`gstpesfilter.c libgstmpegdemux_la-gstsectionfilter.lo: gstsectionfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-gstsectionfilter.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-gstsectionfilter.Tpo -c -o libgstmpegdemux_la-gstsectionfilter.lo `test -f 'gstsectionfilter.c' || echo '$(srcdir)/'`gstsectionfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-gstsectionfilter.Tpo $(DEPDIR)/libgstmpegdemux_la-gstsectionfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsectionfilter.c' object='libgstmpegdemux_la-gstsectionfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsectionfilter.c' object='libgstmpegdemux_la-gstsectionfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstsectionfilter.lo `test -f 'gstsectionfilter.c' || echo '$(srcdir)/'`gstsectionfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-gstsectionfilter.lo `test -f 'gstsectionfilter.c' || echo '$(srcdir)/'`gstsectionfilter.c libgstmpegdemux_la-mpegtsparse.lo: mpegtsparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-mpegtsparse.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-mpegtsparse.Tpo -c -o libgstmpegdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-mpegtsparse.Tpo $(DEPDIR)/libgstmpegdemux_la-mpegtsparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsparse.c' object='libgstmpegdemux_la-mpegtsparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsparse.c' object='libgstmpegdemux_la-mpegtsparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c libgstmpegdemux_la-mpegtspacketizer.lo: mpegtspacketizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegdemux_la-mpegtspacketizer.lo -MD -MP -MF $(DEPDIR)/libgstmpegdemux_la-mpegtspacketizer.Tpo -c -o libgstmpegdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegdemux_la-mpegtspacketizer.Tpo $(DEPDIR)/libgstmpegdemux_la-mpegtspacketizer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtspacketizer.c' object='libgstmpegdemux_la-mpegtspacketizer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtspacketizer.c' object='libgstmpegdemux_la-mpegtspacketizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c mostlyclean-libtool: -rm -f *.lo @@ -877,10 +890,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegdemux/flutspmtstreaminfo.c b/gst/mpegdemux/flutspmtstreaminfo.c index 9fd449c..7ab5ba4 100644 --- a/gst/mpegdemux/flutspmtstreaminfo.c +++ b/gst/mpegdemux/flutspmtstreaminfo.c @@ -122,6 +122,8 @@ mpegts_pmt_stream_info_finalize (GObject * object) g_value_array_free (info->languages); g_value_array_free (info->descriptors); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); } MpegTsPmtStreamInfo * diff --git a/gst/mpegdemux/gstmpegdefs.h b/gst/mpegdemux/gstmpegdefs.h index 05320ec..a34af53 100644 --- a/gst/mpegdemux/gstmpegdefs.h +++ b/gst/mpegdemux/gstmpegdefs.h @@ -159,7 +159,9 @@ #define ST_H222_1 0x09 /* later extensions */ -#define ST_AUDIO_AAC 0x0f +#define ST_AUDIO_AAC_ADTS 0x0f +/* LATM/LOAS AAC syntax */ +#define ST_AUDIO_AAC_LOAS 0x11 #define ST_VIDEO_MPEG4 0x10 #define ST_VIDEO_H264 0x1b diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c index ca2bac4..8359285 100644 --- a/gst/mpegdemux/gstmpegdemux.c +++ b/gst/mpegdemux/gstmpegdemux.c @@ -112,8 +112,8 @@ static GstStaticPadTemplate audio_template = GST_STATIC_PAD_TEMPLATE ("audio_%02x", GST_PAD_SRC, GST_PAD_SOMETIMES, - GST_STATIC_CAPS ("audio/mpeg, " - "mpegversion = (int) { 1, 4 };" + GST_STATIC_CAPS ("audio/mpeg, mpegversion = (int) 1;" + "audio/mpeg, mpegversion = (int) 4, stream-format = (string) { adts, loas };" "audio/x-private1-lpcm; " "audio/x-private1-ac3;" "audio/x-private1-dts;" "audio/ac3") ); @@ -350,11 +350,19 @@ gst_flups_demux_create_stream (GstFluPSDemux * demux, gint id, gint stream_type) case ST_MHEG: case ST_DSMCC: break; - case ST_AUDIO_AAC: + case ST_AUDIO_AAC_ADTS: template = klass->audio_template; name = g_strdup_printf ("audio_%02x", id); caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "adts", NULL); + break; + case ST_AUDIO_AAC_LOAS: // LATM/LOAS AAC syntax + template = klass->audio_template; + name = g_strdup_printf ("audio_%02x", id); + caps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "loas", NULL); break; case ST_VIDEO_H264: template = klass->video_template; @@ -391,8 +399,13 @@ gst_flups_demux_create_stream (GstFluPSDemux * demux, gint id, gint stream_type) break; } - if (name == NULL || template == NULL || caps == NULL) - return NULL; + if (name == NULL || template == NULL || caps == NULL) { + if (name) + g_free (name); + if (caps) + gst_caps_unref (caps); + return FALSE; + } stream = g_new0 (GstFluPSStream, 1); stream->id = id; @@ -1034,8 +1047,9 @@ gst_flups_demux_do_seek (GstFluPSDemux * demux, GstSegment * seeksegment) GST_INFO_OBJECT (demux, "sink segment configured %" GST_SEGMENT_FORMAT ", trying to go at SCR: %" G_GUINT64_FORMAT, &demux->sink_segment, scr); - offset = MIN (gst_util_uint64_scale (scr, scr_rate_n, scr_rate_d), - demux->sink_segment.stop); + offset = + MIN (gst_util_uint64_scale (scr - demux->first_scr, scr_rate_n, + scr_rate_d), demux->sink_segment.stop); found = gst_flups_demux_scan_forward_ts (demux, &offset, SCAN_SCR, &fscr); if (!found) { @@ -1239,6 +1253,7 @@ gst_flups_demux_src_query (GstPad * pad, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION: { + GstClockTime pos; GstFormat format; gst_query_parse_position (query, &format, NULL); @@ -1249,10 +1264,9 @@ gst_flups_demux_src_query (GstPad * pad, GstQuery * query) goto not_supported; } - GST_LOG_OBJECT (demux, "Position at GStreamer Time:%" GST_TIME_FORMAT, - GST_TIME_ARGS (demux->src_segment.last_stop)); - - gst_query_set_position (query, format, demux->src_segment.last_stop); + pos = demux->src_segment.last_stop - demux->src_segment.start; + GST_LOG_OBJECT (demux, "Position %" GST_TIME_FORMAT, GST_TIME_ARGS (pos)); + gst_query_set_position (query, format, pos); res = TRUE; break; } @@ -1598,7 +1612,7 @@ gst_flups_demux_parse_pack_start (GstFluPSDemux * demux) /* adjustment of the SCR */ if (G_LIKELY (demux->current_scr != G_MAXUINT64)) { - gint64 diff; + guint64 diff; guint64 old_scr, old_mux_rate, bss, adjust = 0; /* keep SCR of the previous packet */ @@ -2517,13 +2531,16 @@ gst_flups_sink_get_duration (GstFluPSDemux * demux) " in packet starting at %" G_GUINT64_FORMAT, demux->first_pts, GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->first_pts)), offset); - /* scan for last PTS in the stream */ - offset = demux->sink_segment.stop; - gst_flups_demux_scan_backward_ts (demux, &offset, SCAN_PTS, &demux->last_pts); - GST_DEBUG_OBJECT (demux, "Last PTS: %" G_GINT64_FORMAT " %" GST_TIME_FORMAT - " in packet starting at %" G_GUINT64_FORMAT, - demux->last_pts, GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->last_pts)), - offset); + if (demux->first_pts != G_MAXUINT64) { + /* scan for last PTS in the stream */ + offset = demux->sink_segment.stop; + gst_flups_demux_scan_backward_ts (demux, &offset, SCAN_PTS, + &demux->last_pts); + GST_DEBUG_OBJECT (demux, + "Last PTS: %" G_GINT64_FORMAT " %" GST_TIME_FORMAT + " in packet starting at %" G_GUINT64_FORMAT, demux->last_pts, + GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->last_pts)), offset); + } /* Detect wrong SCR values */ if (demux->first_scr > demux->last_scr) { GST_DEBUG_OBJECT (demux, "Wrong SCR values detected, searching for " diff --git a/gst/mpegdemux/gstmpegdemux.h b/gst/mpegdemux/gstmpegdemux.h index a882235..6cf7aed 100644 --- a/gst/mpegdemux/gstmpegdemux.h +++ b/gst/mpegdemux/gstmpegdemux.h @@ -84,7 +84,6 @@ struct _GstFluPSStream gint id; gint type; - gint size_bound; GstClockTime segment_thresh; GstClockTime last_seg_start; diff --git a/gst/mpegdemux/gstmpegtsdemux.c b/gst/mpegdemux/gstmpegtsdemux.c index c1da763..a50b65c 100644 --- a/gst/mpegdemux/gstmpegtsdemux.c +++ b/gst/mpegdemux/gstmpegtsdemux.c @@ -85,11 +85,24 @@ enum #define DEFAULT_PROP_CHECK_CRC TRUE #define DEFAULT_PROP_PROGRAM_NUMBER -1 -#define MAX_CONTINUOUS_SUBMIT_COUNT 15 +/* Adapter logic to maintain AV sync for the clips having continuous data of same stream. + If submit count of same stream is more than MAX just store them in stream adapter. + If data of a other stream is available then reset the submit count to 0 and push all the buffer stored in stream adapter */ + +/* #define ADAPTER_LOGIC */ /* disable for resolve hls issue */ +#define USE_LEAST_PCR /* Use the least PCR in each first stream of Video and Audio as a last_PCR */ + +#ifdef ADAPTER_LOGIC +#define MAX_CONTINUOUS_SUBMIT_COUNT 8 +#endif /* latency in mseconds */ #define TS_LATENCY 700 +/* threshold at which we deem PTS difference to be a discontinuity */ +#define DISCONT_THRESHOLD_AV (GST_SECOND * 2) /* 2 seconds */ +#define DISCONT_THRESHOLD_OTHER (GST_SECOND * 60 * 10) /* 10 minutes */ + enum { PROP_0, @@ -123,7 +136,10 @@ enum #define AUDIO_CAPS \ GST_STATIC_CAPS ( \ "audio/mpeg, " \ - "mpegversion = (int) { 1, 4 };" \ + "mpegversion = (int) 1;" \ + "audio/mpeg, " \ + "mpegversion = (int) 4, " \ + "stream-format = (string) { adts, loas };" \ "audio/x-lpcm, " \ "width = (int) { 16, 20, 24 }, " \ "rate = (int) { 48000, 96000 }, " \ @@ -189,6 +205,7 @@ static gboolean gst_mpegts_demux_src_event (GstPad * pad, GstEvent * event); static GstFlowReturn gst_mpegts_demux_chain (GstPad * pad, GstBuffer * buffer); static gboolean gst_mpegts_demux_sink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_mpegts_demux_is_live (GstMpegTSDemux * demux); static GstClock *gst_mpegts_demux_provide_clock (GstElement * element); static gboolean gst_mpegts_demux_src_pad_query (GstPad * pad, GstQuery * query); static const GstQueryType *gst_mpegts_demux_src_pad_query_type (GstPad * pad); @@ -201,6 +218,11 @@ static MpegTsPmtInfo *mpegts_demux_build_pmt_info (GstMpegTSDemux * demux, static GstElementClass *parent_class = NULL; +#ifdef USE_LEAST_PCR +static gboolean decide_lastPCR = FALSE; /* Use the least PCR in each first stream of Video and Audio as a last_PCR */ +#endif + + /*static guint gst_mpegts_demux_signals[LAST_SIGNAL] = { 0 };*/ GType @@ -334,6 +356,9 @@ gst_mpegts_demux_init (GstMpegTSDemux * demux) demux->pcr[1] = -1; demux->cache_duration = GST_CLOCK_TIME_NONE; demux->base_pts = GST_CLOCK_TIME_NONE; + demux->in_gap = GST_CLOCK_TIME_NONE; + demux->first_buf_ts = GST_CLOCK_TIME_NONE; + demux->last_buf_ts = GST_CLOCK_TIME_NONE; demux->submit_count = 0; demux->stream_count = 0; } @@ -394,6 +419,18 @@ gst_mpegts_demux_reset (GstMpegTSDemux * demux) g_object_unref (demux->clock); demux->clock = NULL; } + + demux->in_gap = GST_CLOCK_TIME_NONE; + demux->first_buf_ts = GST_CLOCK_TIME_NONE; + demux->last_buf_ts = GST_CLOCK_TIME_NONE; +} + +static void +gst_mpegts_demux_no_more_pads (GstElement * demux) +{ + /* We should really call no-more-pads here, but we don't as + this would preclude addition of more pads if/when new streams + are added. */ } #if 0 @@ -429,7 +466,7 @@ gst_mpegts_demux_remove_pads (GstMpegTSDemux * demux) #endif -static guint32 crc_tab[256] = { +static const guint32 crc_tab[256] = { 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7, @@ -551,6 +588,20 @@ gst_mpegts_stream_is_video (GstMpegTSStream * stream) return FALSE; } +static FORCE_INLINE gboolean +gst_mpegts_stream_is_audio (GstMpegTSStream * stream) +{ + switch (stream->stream_type) { + case ST_AUDIO_MPEG1: + case ST_AUDIO_MPEG2: + case ST_AUDIO_AAC_ADTS: + case ST_AUDIO_AAC_LOAS: + return TRUE; + } + + return FALSE; +} + static gboolean gst_mpegts_demux_is_reserved_PID (GstMpegTSDemux * demux, guint16 PID) { @@ -630,7 +681,6 @@ gst_mpegts_demux_get_stream_for_PID (GstMpegTSDemux * demux, guint16 PID) stream, PID, stream->PID_type); demux->streams[PID] = stream; - demux->stream_count++; } return stream; @@ -709,11 +759,19 @@ gst_mpegts_demux_fill_stream (GstMpegTSStream * stream, guint8 id, case ST_MHEG: case ST_DSMCC: break; - case ST_AUDIO_AAC: + case ST_AUDIO_AAC_ADTS: + template = klass->audio_template; + name = g_strdup_printf ("audio_%04x", stream->PID); + caps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "adts", NULL); + break; + case ST_AUDIO_AAC_LOAS: // LATM/LOAS AAC syntax template = klass->audio_template; name = g_strdup_printf ("audio_%04x", stream->PID); caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "loas", NULL); break; case ST_VIDEO_MPEG4: template = klass->video_template; @@ -822,8 +880,13 @@ gst_mpegts_demux_fill_stream (GstMpegTSStream * stream, guint8 id, default: break; } - if (name == NULL || template == NULL || caps == NULL) + if (name == NULL || template == NULL || caps == NULL) { + if (name) + g_free (name); + if (caps) + gst_caps_unref (caps); return FALSE; + } stream->stream_type = stream_type; stream->id = id; @@ -1045,6 +1108,114 @@ done: return ret; } +static void +gst_mpegts_demux_sync_streams (GstMpegTSDemux * demux, GstClockTime time) +{ + gint i; + + for (i = 0; i < MPEGTS_MAX_PID + 1; i++) { + GstMpegTSStream *stream = demux->streams[i]; + if (!stream) + continue; + + /* Theoretically, we should be doing this for all streams, but we're only + * doing it for non A/V streams, for which data might not be forthcoming. */ + if (stream->flags & (MPEGTS_STREAM_FLAG_IS_AUDIO | + MPEGTS_STREAM_FLAG_IS_VIDEO)) + continue; + + /* at start, lock all streams onto the first timestamp */ + if (G_UNLIKELY (stream->last_time == 0)) + stream->last_time = time; + + /* Does this stream lag? Random threshold of 2 seconds */ + if (GST_CLOCK_DIFF (stream->last_time, time) > (2 * GST_SECOND)) { + /* If the pad was not added yet, do not wait any longer for + any pad that might be waiting for data */ + if (!stream->pad && demux->pending_pads > 0) { + demux->pending_pads = 0; + gst_mpegts_demux_no_more_pads (GST_ELEMENT (demux)); + } + + if (stream->pad) { + GST_DEBUG_OBJECT (stream, "synchronizing stream with others by " + "advancing time from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT, + GST_TIME_ARGS (stream->last_time), GST_TIME_ARGS (time)); + stream->last_time = time; + /* advance stream time (FIXME: is this right, esp. time_pos?) */ + gst_pad_push_event (stream->pad, + gst_event_new_new_segment (TRUE, 1.0, + GST_FORMAT_TIME, stream->last_time, -1, stream->last_time)); + } + } + } +} + +/* Attempts to add all known streams. + Returns TRUE if all could be added, FALSE otherwise. + */ +static gboolean +gst_mpegts_demux_add_all_streams (GstMpegTSDemux * demux, GstClockTime pts) +{ + guint i; + GstPad *srcpad; + gboolean all_added = TRUE; + + GST_DEBUG_OBJECT (demux, "Adding streams early fixes a wedge in some low " + "bitrate streams, but causes deadlocks - disabled for now"); + return FALSE; + + /* When adding a stream, require either a valid base PCR, or a valid PTS */ + if (!gst_mpegts_demux_setup_base_pts (demux, pts)) { + GST_ERROR ("Can't set base pts"); + return FALSE; + } + + for (i = 0; i < MPEGTS_MAX_PID + 1; i++) { + GstMpegTSStream *stream = demux->streams[i]; + if (!stream || stream->pad) + continue; + + GST_DEBUG_OBJECT (demux, "Trying to add pad for PID 0x%04x", stream->PID); + + if (demux->current_PMT == 0) { + if (G_UNLIKELY (stream->flags & MPEGTS_STREAM_FLAG_STREAM_TYPE_UNKNOWN)) { + GST_DEBUG_OBJECT (demux, + "Stream flagged as unknown, cannot be added now"); + all_added = FALSE; + continue; + } + } + if (!gst_mpegts_demux_fill_stream (stream, stream->filter.id, + stream->stream_type)) { + GST_WARNING_OBJECT (demux, "Unknown type for PID 0x%04x", stream->PID); + /* ignore */ + continue; + } + + GST_DEBUG_OBJECT (demux, + "New stream 0x%04x of type 0x%02x with caps %" GST_PTR_FORMAT, + stream->PID, stream->stream_type, GST_PAD_CAPS (stream->pad)); + + srcpad = stream->pad; + + /* activate and add */ + gst_pad_set_active (srcpad, TRUE); + gst_element_add_pad (GST_ELEMENT_CAST (demux), srcpad); + demux->need_no_more_pads = TRUE; + + stream->discont = TRUE; + + /* send new_segment */ + gst_mpegts_demux_send_new_segment (demux, stream, pts); + + /* send tags */ + gst_mpegts_demux_send_tags_for_stream (demux, stream); + + } + + return all_added; +} static GstFlowReturn gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, @@ -1059,23 +1230,28 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, demux = stream->demux; srcpad = stream->pad; - GST_DEBUG_OBJECT (demux, "got data on PID 0x%04x", stream->PID); + GST_DEBUG_OBJECT (demux, "got data on PID 0x%04x (flags %x)", stream->PID, + stream->flags); if (first && filter->pts != -1) { + gint64 discont_threshold = + ((stream->flags & (MPEGTS_STREAM_FLAG_IS_AUDIO | + MPEGTS_STREAM_FLAG_IS_VIDEO))) ? DISCONT_THRESHOLD_AV : + DISCONT_THRESHOLD_OTHER; pts = filter->pts; time = MPEGTIME_TO_GSTTIME (pts) + stream->base_time; if ((stream->last_time > 0 && stream->last_time < time && - time - stream->last_time > GST_SECOND * 60 * 10) + time - stream->last_time > discont_threshold) || (stream->last_time > time - && stream->last_time - time > GST_SECOND * 60 * 10)) { + && stream->last_time - time > discont_threshold)) { /* check first to see if we're in middle of detecting a discont in PCR. * if we are we're not sure what timestamp the buffer should have, best * to drop. */ if (stream->PMT_pid <= MPEGTS_MAX_PID && demux->streams[stream->PMT_pid] && demux->streams[demux->streams[stream->PMT_pid]->PMT.PCR_PID] - && demux->streams[demux->streams[stream->PMT_pid]->PMT. - PCR_PID]->discont_PCR) { + && demux->streams[demux->streams[stream->PMT_pid]->PMT.PCR_PID]-> + discont_PCR) { GST_WARNING_OBJECT (demux, "middle of discont, dropping"); goto bad_timestamp; } @@ -1084,8 +1260,7 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, stream->last_time - time > MPEGTIME_TO_GSTTIME (G_MAXUINT32)) { /* wrap around occurred */ if (stream->base_time + MPEGTIME_TO_GSTTIME ((guint64) (1) << 33) + - MPEGTIME_TO_GSTTIME (pts) > - stream->last_time + GST_SECOND * 60 * 10) { + MPEGTIME_TO_GSTTIME (pts) > stream->last_time + discont_threshold) { GST_DEBUG_OBJECT (demux, "looks like we have a corrupt packet because its pts is a lot lower than" " the previous pts but not a wraparound"); @@ -1097,8 +1272,8 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, */ if (stream->PMT_pid <= MPEGTS_MAX_PID && demux->streams[stream->PMT_pid] && demux->streams[demux->streams[stream->PMT_pid]->PMT.PCR_PID] - && demux->streams[demux->streams[stream->PMT_pid]->PMT. - PCR_PID]->last_PCR > 0) { + && demux->streams[demux->streams[stream->PMT_pid]->PMT.PCR_PID]-> + last_PCR > 0) { GST_DEBUG_OBJECT (demux, "timestamps wrapped before noticed in PCR"); time = MPEGTIME_TO_GSTTIME (pts) + stream->base_time + MPEGTIME_TO_GSTTIME ((guint64) (1) << 33); @@ -1119,7 +1294,7 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, stream->base_time > 0) { /* had a previous wrap around */ if (time - MPEGTIME_TO_GSTTIME ((guint64) (1) << 33) + - GST_SECOND * 60 * 10 < stream->last_time) { + discont_threshold < stream->last_time) { GST_DEBUG_OBJECT (demux, "looks like we have a corrupt packet because its pts is a lot higher than" " the previous pts but not because of a wraparound or pcr discont"); @@ -1163,15 +1338,60 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, pts = -1; } + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (demux->in_gap))) { + if (GST_CLOCK_TIME_IS_VALID (demux->first_buf_ts) + && GST_CLOCK_TIME_IS_VALID (filter->pts) + && gst_mpegts_demux_is_live (demux)) { + int i; + GstClockTime pts = GST_CLOCK_TIME_NONE; + for (i = 0; i < MPEGTS_MAX_PID + 1; i++) { + GstMpegTSStream *stream = demux->streams[i]; + if (stream && stream->last_time > 0 && (pts == GST_CLOCK_TIME_NONE + || stream->last_time < pts)) { + pts = stream->last_time; + } + } + if (pts == GST_CLOCK_TIME_NONE) + pts = 0; + demux->in_gap = demux->first_buf_ts - pts; + GST_INFO_OBJECT (demux, "Setting interpolation gap to %" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->in_gap)); + } else { + demux->in_gap = 0; + } + } + + if (GST_CLOCK_TIME_IS_VALID (time)) { + time += demux->in_gap; + } + GST_DEBUG_OBJECT (demux, "setting PTS to (%" G_GUINT64_FORMAT ") time: %" GST_TIME_FORMAT " on buffer %p first buffer: %d base_time: %" - GST_TIME_FORMAT, pts, GST_TIME_ARGS (time), buffer, first, - GST_TIME_ARGS (stream->base_time)); + GST_TIME_FORMAT, pts, GST_TIME_ARGS (time + demux->in_gap), + buffer, first, GST_TIME_ARGS (stream->base_time)); GST_BUFFER_TIMESTAMP (buffer) = time; /* check if we have a pad already */ + if (!demux->tried_adding_pads) { + GST_DEBUG_OBJECT (demux, "Trying to add all pads now"); + if (gst_mpegts_demux_add_all_streams (demux, pts)) { + /* We managed to add all pads, so we can signal no-more-pads safely. + If not, we'll add pads as we get data for them, and will end up + hitting decodebin2's overrun threshold (if using decodebin2) */ + GST_DEBUG_OBJECT (demux, "All pads added, we can signal no-more-pads"); + gst_mpegts_demux_no_more_pads (GST_ELEMENT (demux)); + } else { + GST_DEBUG_OBJECT (demux, + "All pads could not be added, we will not signal no-more-pads"); + } + demux->tried_adding_pads = TRUE; + } + + + srcpad = stream->pad; if (srcpad == NULL) { + GST_DEBUG_OBJECT (demux, "srcpad is NULL, trying to add pad"); /* When adding a stream, require either a valid base PCR, or a valid PTS */ if (!gst_mpegts_demux_setup_base_pts (demux, pts)) goto bad_timestamp; @@ -1210,7 +1430,12 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, /* activate and add */ gst_pad_set_active (srcpad, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (demux), srcpad); - demux->need_no_more_pads = TRUE; + demux->pending_pads--; + GST_DEBUG_OBJECT (demux, + "Adding pad due to received data, decreasing pending pads to %d", + demux->pending_pads); + if (demux->pending_pads == 0) + gst_mpegts_demux_no_more_pads (GST_ELEMENT (demux)); stream->discont = TRUE; @@ -1221,7 +1446,8 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, gst_mpegts_demux_send_tags_for_stream (demux, stream); } - GST_DEBUG_OBJECT (srcpad, "pushing buffer"); + GST_DEBUG_OBJECT (srcpad, "pushing buffer ts %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer))); gst_buffer_set_caps (buffer, GST_PAD_CAPS (srcpad)); if (stream->discont) { GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); @@ -1230,6 +1456,9 @@ gst_mpegts_demux_data_cb (GstPESFilter * filter, gboolean first, ret = gst_pad_push (srcpad, buffer); ret = gst_mpegts_demux_combine_flows (demux, stream, ret); + if (GST_CLOCK_TIME_IS_VALID (time)) + gst_mpegts_demux_sync_streams (demux, time); + return ret; /* ERROR */ @@ -1435,6 +1664,8 @@ gst_mpegts_stream_parse_pmt (GstMpegTSStream * stream, g_array_free (PMT->entries, TRUE); PMT->entries = g_array_new (FALSE, TRUE, sizeof (GstMpegTSPMTEntry)); + GST_DEBUG_OBJECT (demux, "Resetting pending pads due to parsing the PMT"); + demux->pending_pads = 0; while (entries > 0) { GstMpegTSPMTEntry entry; GstMpegTSStream *ES_stream; @@ -1460,6 +1691,9 @@ gst_mpegts_stream_parse_pmt (GstMpegTSStream * stream, if (ES_stream->PID_type == PID_TYPE_UNKNOWN) { /* set as elementary */ ES_stream->PID_type = PID_TYPE_ELEMENTARY; +#ifdef ADAPTER_LOGIC + demux->stream_count++; +#endif /* set stream type */ /* hack for ITV HD (sid 10510, video pid 3401 */ if (program_number == 10510 && entry.PID == 3401 && @@ -1498,6 +1732,9 @@ gst_mpegts_stream_parse_pmt (GstMpegTSStream * stream, /* Recognise video streams based on stream_type */ if (gst_mpegts_stream_is_video (ES_stream)) ES_stream->flags |= MPEGTS_STREAM_FLAG_IS_VIDEO; + /* likewise for audio */ + if (gst_mpegts_stream_is_audio (ES_stream)) + ES_stream->flags |= MPEGTS_STREAM_FLAG_IS_AUDIO; /* set adaptor */ GST_LOG ("Initializing PES filter for PID %u", ES_stream->PID); @@ -1515,6 +1752,12 @@ gst_mpegts_stream_parse_pmt (GstMpegTSStream * stream, ES_stream->filter.gather_pes = TRUE; } } + + ++demux->pending_pads; + GST_DEBUG_OBJECT (demux, + "Setting data callback, increasing pending pads to %d", + demux->pending_pads); + gst_pes_filter_set_callbacks (&ES_stream->filter, (GstPESFilterData) gst_mpegts_demux_data_cb, (GstPESFilterResync) gst_mpegts_demux_resync_cb, ES_stream); @@ -1546,6 +1789,11 @@ gst_mpegts_stream_parse_pmt (GstMpegTSStream * stream, gst_mpegts_activate_pmt (demux, stream); } + GST_DEBUG_OBJECT (demux, "Done parsing PMT, pending pads now %d", + demux->pending_pads); + if (demux->pending_pads == 0) + gst_mpegts_demux_no_more_pads (GST_ELEMENT (demux)); + return TRUE; /* ERRORS */ @@ -1770,9 +2018,26 @@ gst_mpegts_demux_parse_adaptation_field (GstMpegTSStream * stream, stream->last_PCR, GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (stream->last_PCR))); /* pcr has been converted into units of 90Khz ticks - * so assume discont if last pcr was > 900000 (10 second) lower */ + * so assume discont if last pcr was > 90000 (1 second) lower */ + +/* Use the least PCR in each first stream of Video and Audio as a last_PCR */ + +#ifdef USE_LEAST_PCR + if((stream->PID != stream->demux->last_PID) + && (stream->last_PCR != -1) && (decide_lastPCR == FALSE) ){ + if(pcr < stream->last_PCR) + { + stream->last_PCR = pcr ; + GST_DEBUG_OBJECT (demux, "Last PCR was changed to: %" G_GUINT64_FORMAT, stream->last_PCR); + } + + decide_lastPCR =TRUE; + GST_DEBUG_OBJECT (demux, "Last PCR was fixed to: %" G_GUINT64_FORMAT, stream->last_PCR); + } +#endif + if (stream->last_PCR != -1 && - (pcr - stream->last_PCR > 900000 || pcr < stream->last_PCR)) { + (pcr - stream->last_PCR > 90000 || pcr < stream->last_PCR)) { GstClockTimeDiff base_time_difference; GST_DEBUG_OBJECT (demux, @@ -2272,11 +2537,11 @@ gst_mpegts_demux_parse_stream (GstMpegTSDemux * demux, GstMpegTSStream * stream, const guint8 * in_data, guint in_size) { GstFlowReturn ret; - gboolean transport_error_indicator; + gboolean transport_error_indicator G_GNUC_UNUSED; + gboolean transport_priority G_GNUC_UNUSED; gboolean payload_unit_start_indicator; - gboolean transport_priority; guint16 PID; - guint8 transport_scrambling_control; + guint8 transport_scrambling_control G_GNUC_UNUSED; guint8 adaptation_field_control; guint8 continuity_counter; const guint8 *data = in_data; @@ -2432,13 +2697,13 @@ gst_mpegts_demux_parse_stream (GstMpegTSDemux * demux, GstMpegTSStream * stream, /* Flush buffered PES data */ gst_mpegts_stream_pes_buffer_flush (stream, FALSE); gst_pes_filter_drain (&stream->filter); - +#ifdef ADAPTER_LOGIC demux->submit_count++; if(demux->last_PID != stream->PID) demux->submit_count = 0; demux->last_PID = stream->PID; - +#endif /* Resize the buffer to half if no overflow detected and * had been used less than half of it */ if (stream->pes_buffer_overflow == FALSE @@ -2463,11 +2728,15 @@ gst_mpegts_demux_parse_stream (GstMpegTSDemux * demux, GstMpegTSStream * stream, * detect GST_FLOW_LOST_SYNC. */ GST_LOG_OBJECT (demux, "fragment directly pushed to PES filter"); - demux->submit_count++; - if(demux->last_PID != stream->PID) - demux->submit_count = 0; +#ifdef ADAPTER_LOGIC + if(!payload_unit_start_indicator) { + demux->submit_count++; + if(demux->last_PID != stream->PID) + demux->submit_count = 0; - demux->last_PID = stream->PID; + demux->last_PID = stream->PID; + } +#endif ret = gst_mpegts_demux_push_fragment (stream, data, datalen); } else { /* Otherwhise we buffer the PES fragment */ @@ -2477,11 +2746,13 @@ gst_mpegts_demux_parse_stream (GstMpegTSDemux * demux, GstMpegTSStream * stream, */ if (ret == GST_FLOW_LOST_SYNC) { GST_LOG_OBJECT (demux, "resync, fragment pushed to PES filter"); +#ifdef ADAPTER_LOGIC /*demux->submit_count++; if(demux->last_PID != stream->PID) demux->submit_count = 0; demux->last_PID = stream->PID;*/ +#endif ret = gst_mpegts_demux_push_fragment (stream, data, datalen); } } @@ -2544,11 +2815,12 @@ gst_mpegts_demux_parse_transport_packet (GstMpegTSDemux * demux, /* store buffer to adapter */ gst_adapter_push(stream->adapter, stream_buf); GST_DEBUG_OBJECT (demux, "gst_mpegts_demux_parse_stream submitcount %d %d for pid 0x%04x",demux->submit_count,demux->stream_count, PID); - if((demux->last_PID == stream->PID) && (demux->submit_count > MAX_CONTINUOUS_SUBMIT_COUNT)) +#ifdef ADAPTER_LOGIC + if((demux->last_PID == stream->PID) && (demux->submit_count > MAX_CONTINUOUS_SUBMIT_COUNT)) return ret; if(demux->stream_count < 2) demux->submit_count = 0; - +#endif src_len = gst_adapter_available(stream->adapter); outbuf = (guint8 *)gst_adapter_peek(stream->adapter, src_len); if(!outbuf) @@ -2576,7 +2848,7 @@ gst_mpegts_demux_parse_transport_packet (GstMpegTSDemux * demux, GST_DEBUG_OBJECT (demux, "pcr[0]:%" G_GUINT64_FORMAT, demux->pcr[0]); GST_DEBUG_OBJECT (demux, "pcr[1]:%" G_GUINT64_FORMAT, demux->pcr[1]); GST_DEBUG_OBJECT (demux, "diff in time %" GST_TIME_FORMAT, - GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->pcr[1] - demux->pcr[0]))); + GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->pcr[1] - demux->pcr[0]))); GST_DEBUG_OBJECT (demux, "stream->last_PCR_difference: %" G_GUINT64_FORMAT ", demux->num_packets %" G_GUINT64_FORMAT, demux->pcr[1] - demux->pcr[0], demux->num_packets); @@ -2594,10 +2866,12 @@ gst_mpegts_demux_parse_transport_packet (GstMpegTSDemux * demux, demux->num_packets = -1; } } +#ifdef ADAPTER_LOGIC if((demux->last_PID == stream->PID) && (demux->submit_count > MAX_CONTINUOUS_SUBMIT_COUNT)) { GST_WARNING_OBJECT (demux, "gst_mpegts_demux_parse_stream packets of same stream max count reached"); goto beach; } +#endif } beach: @@ -2771,6 +3045,9 @@ gst_mpegts_demux_sink_event (GstPad * pad, GstEvent * event) gst_adapter_clear (demux->adapter); gst_mpegts_demux_flush (demux, TRUE); res = gst_mpegts_demux_send_event (demux, event); + demux->in_gap = GST_CLOCK_TIME_NONE; + demux->first_buf_ts = GST_CLOCK_TIME_NONE; + demux->last_buf_ts = GST_CLOCK_TIME_NONE; break; case GST_EVENT_EOS: gst_mpegts_demux_flush (demux, FALSE); @@ -2825,14 +3102,12 @@ gst_mpegts_demux_sink_event (GstPad * pad, GstEvent * event) } static gboolean -gst_mpegts_demux_provides_clock (GstElement * element) +gst_mpegts_demux_is_live (GstMpegTSDemux * demux) { - GstMpegTSDemux *demux; GstQuery *query; gboolean is_live = FALSE; GstPad *peer; - demux = GST_MPEGTS_DEMUX (element); query = gst_query_new_latency (); peer = gst_pad_get_peer (demux->sinkpad); @@ -2846,6 +3121,12 @@ gst_mpegts_demux_provides_clock (GstElement * element) return is_live; } +static gboolean +gst_mpegts_demux_provides_clock (GstElement * element) +{ + return gst_mpegts_demux_is_live (GST_MPEGTS_DEMUX (element)); +} + static GstClock * gst_mpegts_demux_provide_clock (GstElement * element) { @@ -3064,10 +3345,10 @@ gst_mpegts_demux_sync_scan (GstMpegTSDemux * demux, const guint8 * in_data, guint size, guint * flush) { guint sync_count = 0; - const guint8 *end_scan = in_data + size - demux->packetsize; guint8 *ptr_data = (guint8 *) in_data; guint packetsize = (demux->packetsize ? demux->packetsize : MPEGTS_NORMAL_TS_PACKETSIZE); + const guint8 *end_scan = in_data + size - packetsize; /* Check if the LUT table is big enough */ if (G_UNLIKELY (demux->sync_lut_len < (size / packetsize))) { @@ -3084,18 +3365,14 @@ gst_mpegts_demux_sync_scan (GstMpegTSDemux * demux, const guint8 * in_data, guint chance = is_mpegts_sync (ptr_data, end_scan, packetsize); if (G_LIKELY (chance > 50)) { /* skip paketsize bytes and try find next */ - guint8 *next_sync = ptr_data + packetsize; - if (next_sync < end_scan) { - demux->sync_lut[sync_count] = ptr_data; - sync_count++; - ptr_data += packetsize; - } else - goto done; + demux->sync_lut[sync_count] = ptr_data; + sync_count++; + ptr_data += packetsize; } else { ptr_data++; } } -done: + if (G_UNLIKELY (!demux->packetsize)) gst_mpegts_demux_detect_packet_size (demux, sync_count); @@ -3115,7 +3392,35 @@ gst_mpegts_demux_chain (GstPad * pad, GstBuffer * buffer) gint i; guint sync_count; + if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { + GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); + GST_DEBUG_OBJECT (demux, "Got chained buffer ts %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp)); + + /* if we did not get a buffer for a while, assume the source has dried up, + and flush any stale data */ + if (GST_CLOCK_TIME_IS_VALID (demux->last_buf_ts)) { + GstClockTimeDiff dt = timestamp - demux->last_buf_ts; + if (dt < 0 || dt > GST_SECOND / 2) { + GST_INFO_OBJECT (demux, + "Input timestamp discontinuity (%" GST_TIME_FORMAT + "), flushing stale data", GST_TIME_ARGS (dt)); + gst_mpegts_demux_flush (demux, FALSE); + } + } + demux->last_buf_ts = timestamp; + + /* lock on the first valid buffer timestamp */ + if (G_UNLIKELY (demux->first_buf_ts == GST_CLOCK_TIME_NONE)) { + demux->first_buf_ts = timestamp; + GST_DEBUG_OBJECT (demux, "First timestamp is %" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->first_buf_ts)); + } + } + if (GST_BUFFER_IS_DISCONT (buffer)) { + GST_DEBUG_OBJECT (demux, + "Input buffer has DISCONT flag set, flushing data"); gst_mpegts_demux_flush (demux, FALSE); } /* first push the new buffer into the adapter */ diff --git a/gst/mpegdemux/gstmpegtsdemux.h b/gst/mpegdemux/gstmpegtsdemux.h index 1b8bbeb..cf0d274 100644 --- a/gst/mpegdemux/gstmpegtsdemux.h +++ b/gst/mpegdemux/gstmpegtsdemux.h @@ -121,7 +121,8 @@ struct _GstMpegTSPAT { typedef enum _MpegTsStreamFlags { MPEGTS_STREAM_FLAG_STREAM_TYPE_UNKNOWN = 0x01, MPEGTS_STREAM_FLAG_PMT_VALID = 0x02, - MPEGTS_STREAM_FLAG_IS_VIDEO = 0x04 + MPEGTS_STREAM_FLAG_IS_VIDEO = 0x04, + MPEGTS_STREAM_FLAG_IS_AUDIO = 0x08 } MpegTsStreamFlags; /* Information associated to a single MPEG stream. */ @@ -225,6 +226,18 @@ struct _GstMpegTSDemux { /* Cached base_PCR in GStreamer time. */ GstClockTime base_pts; + /* base timings on first buffer timestamp */ + GstClockTime first_buf_ts; + GstClockTime in_gap; + + /* Detect when the source stops for a while, we will resync the interpolation gap */ + GstClockTime last_buf_ts; + + /* Number of expected pads which have not been added yet */ + gint pending_pads; + + gboolean tried_adding_pads; + guint16 stream_count; guint16 last_PID; guint16 submit_count; diff --git a/gst/mpegdemux/gstpesfilter.c b/gst/mpegdemux/gstpesfilter.c index 736d496..23b205a 100644 --- a/gst/mpegdemux/gstpesfilter.c +++ b/gst/mpegdemux/gstpesfilter.c @@ -112,7 +112,7 @@ gst_pes_filter_parse (GstPESFilter * filter) GstFlowReturn ret; guint32 start_code; - gboolean STD_buffer_bound_scale; + gboolean STD_buffer_bound_scale G_GNUC_UNUSED; guint16 STD_buffer_size_bound; const guint8 *data; gint avail, datalen; @@ -168,7 +168,7 @@ gst_pes_filter_parse (GstPESFilter * filter) avail = MIN (avail, filter->length + 6); } - if (avail < 7) + if (avail < 6) goto need_more_data; /* read more data, either the whole packet if there is a length @@ -202,6 +202,8 @@ gst_pes_filter_parse (GstPESFilter * filter) break; } + if (datalen == 0) + goto need_more_data; filter->pts = filter->dts = -1; /* stuffing bits, first two bits are '10' for mpeg2 pes so this code is diff --git a/gst/mpegdemux/mpegtspacketizer.c b/gst/mpegdemux/mpegtspacketizer.c index 335c985..ed1d0ac 100644 --- a/gst/mpegdemux/mpegtspacketizer.c +++ b/gst/mpegdemux/mpegtspacketizer.c @@ -336,7 +336,7 @@ static gboolean mpegts_packetizer_parse_descriptors (MpegTSPacketizer * packetizer, guint8 ** buffer, guint8 * buffer_end, GValueArray * descriptors) { - guint8 tag, length; + guint8 length; guint8 *data; GValue value = { 0 }; GString *desc; @@ -344,7 +344,7 @@ mpegts_packetizer_parse_descriptors (MpegTSPacketizer * packetizer, data = *buffer; while (data < buffer_end) { - tag = *data++; + data++; /* skip tag */ length = *data++; if (data + length > buffer_end) { @@ -353,10 +353,11 @@ mpegts_packetizer_parse_descriptors (MpegTSPacketizer * packetizer, goto error; } - /* include tag and length */ + /* include length */ desc = g_string_new_len ((gchar *) data - 2, length + 2); data += length; - /* G_TYPE_GSTING is a GBoxed type and is used so properly marshalled from python */ + /* G_TYPE_GSTRING is a GBoxed type and is used so properly marshalled from + * python (FIXME: should either be G_TYPE_STRING or GST_TYPE_BUFFFER) */ g_value_init (&value, G_TYPE_GSTRING); g_value_take_boxed (&value, desc); g_value_array_append (descriptors, &value); @@ -1284,7 +1285,6 @@ mpegts_packetizer_parse_sdt (MpegTSPacketizer * packetizer, guint16 transport_stream_id, original_network_id, service_id; guint tmp; guint sdt_info_length; - gboolean EIT_schedule, EIT_present_following; guint8 running_status; gboolean scrambled; guint descriptors_loop_length; @@ -1355,8 +1355,8 @@ mpegts_packetizer_parse_sdt (MpegTSPacketizer * packetizer, service_id = GST_READ_UINT16_BE (data); data += 2; - EIT_schedule = ((*data & 0x02) == 2); - EIT_present_following = (*data & 0x01) == 1; + /* EIT_schedule = ((*data & 0x02) == 2); */ + /* EIT_present_following = (*data & 0x01) == 1; */ data += 1; tmp = GST_READ_UINT16_BE (data); @@ -1488,7 +1488,6 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer, guint transport_stream_id, original_network_id; gboolean free_ca_mode; guint event_id, running_status; - guint64 start_and_duration; guint16 mjd; guint year, month, day, hour, minute, second; guint duration; @@ -1565,7 +1564,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer, event_id = GST_READ_UINT16_BE (data); data += 2; - start_and_duration = GST_READ_UINT64_BE (data); + /* start_and_duration = GST_READ_UINT64_BE (data); */ duration_ptr = data + 5; utc_ptr = data + 2; mjd = GST_READ_UINT16_BE (data); @@ -1709,7 +1708,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer, GValue component_value = { 0 }; gint widescreen = 0; /* 0 for 4:3, 1 for 16:9, 2 for > 16:9 */ gint freq = 25; /* 25 or 30 measured in Hertz */ - gboolean highdef = FALSE; + /* gboolean highdef = FALSE; */ gboolean panvectors = FALSE; const gchar *comptype = ""; @@ -1756,46 +1755,46 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer, break; case 0x09: widescreen = 0; - highdef = TRUE; + /* highdef = TRUE; */ freq = 25; break; case 0x0A: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = TRUE; freq = 25; break; case 0x0B: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = FALSE; freq = 25; break; case 0x0C: widescreen = 2; - highdef = TRUE; + /* highdef = TRUE; */ freq = 25; break; case 0x0D: widescreen = 0; - highdef = TRUE; + /* highdef = TRUE; */ freq = 30; break; case 0x0E: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = TRUE; freq = 30; break; case 0x0F: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = FALSE; freq = 30; break; case 0x10: widescreen = 2; - highdef = TRUE; + /* highdef = TRUE; */ freq = 30; break; } @@ -2198,6 +2197,12 @@ mpegts_packetizer_push_section (MpegTSPacketizer * packetizer, if (packet->pid == 0x14) { table_id = data[0]; section->section_length = GST_READ_UINT24_BE (data) & 0x000FFF; + if (data - GST_BUFFER_DATA (packet->buffer) + section->section_length + 3 > + GST_BUFFER_SIZE (packet->buffer)) { + GST_WARNING ("PID %dd PSI section length extends past the end " + "of the buffer", packet->pid); + goto out; + } section->buffer = gst_buffer_create_sub (packet->buffer, data - GST_BUFFER_DATA (packet->buffer), section->section_length + 3); section->table_id = table_id; @@ -2385,14 +2390,24 @@ get_encoding (const gchar * text, guint * start_text, gboolean * is_multibyte) *start_text = 1; *is_multibyte = TRUE; } else if (firstbyte == 0x12) { - // That's korean encoding. - // The spec says it's encoded in KSC 5601, but iconv only knows KSC 5636. - // Couldn't find any information about either of them. - encoding = NULL; + /* EUC-KR implements KSX1001 */ + encoding = g_strdup ("EUC-KR"); *start_text = 1; *is_multibyte = TRUE; + } else if (firstbyte == 0x13) { + encoding = g_strdup ("GB2312"); + *start_text = 1; + *is_multibyte = FALSE; + } else if (firstbyte == 0x14) { + encoding = g_strdup ("UTF-16BE"); + *start_text = 1; + *is_multibyte = TRUE; + } else if (firstbyte == 0x15) { + encoding = g_strdup ("ISO-10646/UTF8"); + *start_text = 1; + *is_multibyte = FALSE; } else { - // reserved + /* reserved */ encoding = NULL; *start_text = 0; *is_multibyte = FALSE; @@ -2442,7 +2457,7 @@ convert_to_utf8 (const gchar * text, gint length, guint start, /* skip it */ break; case 0xE08A:{ - guint8 nl[] = { 0x0A, 0x00 }; // new line + guint8 nl[] = { 0x00, 0x0A }; /* new line */ g_byte_array_append (sb, nl, 2); break; } @@ -2463,7 +2478,7 @@ convert_to_utf8 (const gchar * text, gint length, guint start, /* skip it */ break; case 0xE08A:{ - guint8 nl[] = { 0x0A, 0x00 }; // new line + guint8 nl[] = { 0x00, 0x0A }; /* new line */ g_byte_array_append (sb, nl, 2); break; } diff --git a/gst/mpegdemux/mpegtsparse.c b/gst/mpegdemux/mpegtsparse.c index f472c22..273b3ed 100644 --- a/gst/mpegdemux/mpegtsparse.c +++ b/gst/mpegdemux/mpegtsparse.c @@ -222,12 +222,11 @@ mpegts_parse_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_add_pad_template (element_class, - gst_static_pad_template_get (&program_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &program_template); gst_element_class_set_details_simple (element_class, "MPEG transport stream parser", "Codec/Parser", @@ -874,6 +873,8 @@ mpegts_parse_is_psi (MpegTSParse * parse, MpegTSPacketizerPacket * packet) { gboolean retval = FALSE; guint8 table_id; + guint8 *data; + guint8 pointer; int i; static const guint8 si_tables[] = { 0x00, 0x01, 0x02, 0x03, 0x40, 0x41, 0x42, 0x46, 0x4A, 0x4E, 0x4F, 0x50, @@ -891,7 +892,18 @@ mpegts_parse_is_psi (MpegTSParse * parse, MpegTSPacketizerPacket * packet) return FALSE; if (!retval) { if (packet->payload_unit_start_indicator) { - table_id = *(packet->data); + data = packet->data; + pointer = *data++; + data += pointer; + /* 'pointer' value may be invalid on malformed packet + * so we need to avoid out of range + */ + if (!(data < packet->data_end)) { + GST_WARNING_OBJECT (parse, + "Wrong offset when retrieving table id: 0x%x", pointer); + return FALSE; + } + table_id = *data; i = 0; while (si_tables[i] != TABLE_ID_UNSET) { if (G_UNLIKELY (si_tables[i] == table_id)) { @@ -1262,6 +1274,8 @@ mpegts_parse_get_tags_from_sdt (MpegTSParse * parse, GstStructure * sdt_info) * which looks like service-%d */ sid_str = gst_structure_get_name (service); tmp = g_strstr_len (sid_str, -1, "-"); + if (!tmp) + continue; program_number = atoi (++tmp); program = mpegts_parse_get_program (parse, program_number); diff --git a/gst/mpegpsmux/Makefile.in b/gst/mpegpsmux/Makefile.in index 378cfa0..f54ce69 100644 --- a/gst/mpegpsmux/Makefile.in +++ b/gst/mpegpsmux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstmpegpsmux_la_OBJECTS = libgstmpegpsmux_la-mpegpsmux.lo \ libgstmpegpsmux_la-mpegpsmux_aac.lo \ libgstmpegpsmux_la-mpegpsmux_h264.lo libgstmpegpsmux_la_OBJECTS = $(am_libgstmpegpsmux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpegpsmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpegpsmux_la_SOURCES) DIST_SOURCES = $(libgstmpegpsmux_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -617,7 +644,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpegpsmux.la: $(libgstmpegpsmux_la_OBJECTS) $(libgstmpegpsmux_la_DEPENDENCIES) +libgstmpegpsmux.la: $(libgstmpegpsmux_la_OBJECTS) $(libgstmpegpsmux_la_DEPENDENCIES) $(EXTRA_libgstmpegpsmux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmpegpsmux_la_LINK) -rpath $(plugindir) $(libgstmpegpsmux_la_OBJECTS) $(libgstmpegpsmux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -635,66 +662,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmpegpsmux_la-mpegpsmux.lo: mpegpsmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegpsmux_la-mpegpsmux.lo -MD -MP -MF $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux.Tpo -c -o libgstmpegpsmux_la-mpegpsmux.lo `test -f 'mpegpsmux.c' || echo '$(srcdir)/'`mpegpsmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux.Tpo $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegpsmux.c' object='libgstmpegpsmux_la-mpegpsmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegpsmux.c' object='libgstmpegpsmux_la-mpegpsmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux.lo `test -f 'mpegpsmux.c' || echo '$(srcdir)/'`mpegpsmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux.lo `test -f 'mpegpsmux.c' || echo '$(srcdir)/'`mpegpsmux.c libgstmpegpsmux_la-psmux.lo: psmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegpsmux_la-psmux.lo -MD -MP -MF $(DEPDIR)/libgstmpegpsmux_la-psmux.Tpo -c -o libgstmpegpsmux_la-psmux.lo `test -f 'psmux.c' || echo '$(srcdir)/'`psmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegpsmux_la-psmux.Tpo $(DEPDIR)/libgstmpegpsmux_la-psmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='psmux.c' object='libgstmpegpsmux_la-psmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='psmux.c' object='libgstmpegpsmux_la-psmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-psmux.lo `test -f 'psmux.c' || echo '$(srcdir)/'`psmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-psmux.lo `test -f 'psmux.c' || echo '$(srcdir)/'`psmux.c libgstmpegpsmux_la-psmuxstream.lo: psmuxstream.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegpsmux_la-psmuxstream.lo -MD -MP -MF $(DEPDIR)/libgstmpegpsmux_la-psmuxstream.Tpo -c -o libgstmpegpsmux_la-psmuxstream.lo `test -f 'psmuxstream.c' || echo '$(srcdir)/'`psmuxstream.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegpsmux_la-psmuxstream.Tpo $(DEPDIR)/libgstmpegpsmux_la-psmuxstream.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='psmuxstream.c' object='libgstmpegpsmux_la-psmuxstream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='psmuxstream.c' object='libgstmpegpsmux_la-psmuxstream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-psmuxstream.lo `test -f 'psmuxstream.c' || echo '$(srcdir)/'`psmuxstream.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-psmuxstream.lo `test -f 'psmuxstream.c' || echo '$(srcdir)/'`psmuxstream.c libgstmpegpsmux_la-mpegpsmux_aac.lo: mpegpsmux_aac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegpsmux_la-mpegpsmux_aac.lo -MD -MP -MF $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_aac.Tpo -c -o libgstmpegpsmux_la-mpegpsmux_aac.lo `test -f 'mpegpsmux_aac.c' || echo '$(srcdir)/'`mpegpsmux_aac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_aac.Tpo $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_aac.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegpsmux_aac.c' object='libgstmpegpsmux_la-mpegpsmux_aac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegpsmux_aac.c' object='libgstmpegpsmux_la-mpegpsmux_aac.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux_aac.lo `test -f 'mpegpsmux_aac.c' || echo '$(srcdir)/'`mpegpsmux_aac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux_aac.lo `test -f 'mpegpsmux_aac.c' || echo '$(srcdir)/'`mpegpsmux_aac.c libgstmpegpsmux_la-mpegpsmux_h264.lo: mpegpsmux_h264.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegpsmux_la-mpegpsmux_h264.lo -MD -MP -MF $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_h264.Tpo -c -o libgstmpegpsmux_la-mpegpsmux_h264.lo `test -f 'mpegpsmux_h264.c' || echo '$(srcdir)/'`mpegpsmux_h264.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_h264.Tpo $(DEPDIR)/libgstmpegpsmux_la-mpegpsmux_h264.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegpsmux_h264.c' object='libgstmpegpsmux_la-mpegpsmux_h264.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegpsmux_h264.c' object='libgstmpegpsmux_la-mpegpsmux_h264.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux_h264.lo `test -f 'mpegpsmux_h264.c' || echo '$(srcdir)/'`mpegpsmux_h264.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegpsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegpsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegpsmux_la-mpegpsmux_h264.lo `test -f 'mpegpsmux_h264.c' || echo '$(srcdir)/'`mpegpsmux_h264.c mostlyclean-libtool: -rm -f *.lo @@ -801,10 +820,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegpsmux/mpegpsmux.c b/gst/mpegpsmux/mpegpsmux.c index d64fb35..e7b0946 100644 --- a/gst/mpegpsmux/mpegpsmux.c +++ b/gst/mpegpsmux/mpegpsmux.c @@ -54,9 +54,11 @@ GST_DEBUG_CATEGORY (mpegpsmux_debug); enum { - ARG_0 + PROP_AGGREGATE_GOPS = 1 }; +#define DEFAULT_AGGREGATE_GOPS FALSE + static GstStaticPadTemplate mpegpsmux_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink_%d", GST_PAD_SINK, @@ -67,7 +69,9 @@ static GstStaticPadTemplate mpegpsmux_sink_factory = "video/x-dirac;" "video/x-h264;" "audio/mpeg, " - "mpegversion = (int) { 1, 2, 4 };" + "mpegversion = (int) { 1, 2 };" + "audio/mpeg, " + "mpegversion = (int) 4, stream-format = (string) { raw, adts }; " "audio/x-lpcm, " "width = (int) { 16, 20, 24 }, " "rate = (int) { 48000, 96000 }, " @@ -110,10 +114,10 @@ mpegpsmux_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 (&mpegpsmux_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mpegpsmux_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &mpegpsmux_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &mpegpsmux_src_factory); gst_element_class_set_details_simple (element_class, "MPEG Program Stream Muxer", "Codec/Muxer", @@ -135,6 +139,10 @@ mpegpsmux_class_init (MpegPsMuxClass * klass) gstelement_class->release_pad = mpegpsmux_release_pad; gstelement_class->change_state = mpegpsmux_change_state; + g_object_class_install_property (gobject_class, PROP_AGGREGATE_GOPS, + g_param_spec_boolean ("aggregate-gops", "Aggregate GOPs", + "Whether to aggregate GOPs and push them out as buffer lists", + DEFAULT_AGGREGATE_GOPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } static void @@ -171,6 +179,11 @@ mpegpsmux_dispose (GObject * object) mux->psmux = NULL; } + if (mux->gop_list != NULL) { + gst_buffer_list_unref (mux->gop_list); + mux->gop_list = NULL; + } + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); } @@ -178,9 +191,12 @@ static void gst_mpegpsmux_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { -/* MpegPsMux *mux = GST_MPEG_PSMUX (object); */ + MpegPsMux *mux = GST_MPEG_PSMUX (object); switch (prop_id) { + case PROP_AGGREGATE_GOPS: + mux->aggregate_gops = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -191,9 +207,12 @@ static void gst_mpegpsmux_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { -/* MpegPsMux *mux = GST_MPEG_PSMUX (object); */ + MpegPsMux *mux = GST_MPEG_PSMUX (object); switch (prop_id) { + case PROP_AGGREGATE_GOPS: + g_value_set_boolean (value, mux->aggregate_gops); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -217,6 +236,7 @@ mpegpsmux_create_stream (MpegPsMux * mux, MpegPsPadData * ps_data, GstPad * pad) GstFlowReturn ret = GST_FLOW_ERROR; GstCaps *caps = gst_pad_get_negotiated_caps (pad); GstStructure *s; + gboolean is_video = FALSE; if (caps == NULL) { GST_DEBUG_OBJECT (pad, "Sink pad caps were not set before pushing"); @@ -229,6 +249,7 @@ mpegpsmux_create_stream (MpegPsMux * mux, MpegPsPadData * ps_data, GstPad * pad) if (gst_structure_has_name (s, "video/x-dirac")) { GST_DEBUG_OBJECT (pad, "Creating Dirac stream"); ps_data->stream = psmux_create_stream (mux->psmux, PSMUX_ST_VIDEO_DIRAC); + is_video = TRUE; } else if (gst_structure_has_name (s, "audio/x-ac3")) { GST_DEBUG_OBJECT (pad, "Creating AC3 stream"); ps_data->stream = psmux_create_stream (mux->psmux, PSMUX_ST_PS_AUDIO_AC3); @@ -252,6 +273,7 @@ mpegpsmux_create_stream (MpegPsMux * mux, MpegPsPadData * ps_data, GstPad * pad) ps_data->codec_data = NULL; } ps_data->stream = psmux_create_stream (mux->psmux, PSMUX_ST_VIDEO_H264); + is_video = TRUE; } else if (gst_structure_has_name (s, "audio/mpeg")) { gint mpegversion; if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) { @@ -312,6 +334,7 @@ mpegpsmux_create_stream (MpegPsMux * mux, MpegPsPadData * ps_data, GstPad * pad) GST_DEBUG_OBJECT (pad, "Creating MPEG Video, version 4 stream"); ps_data->stream = psmux_create_stream (mux->psmux, PSMUX_ST_VIDEO_MPEG4); } + is_video = TRUE; } if (ps_data->stream != NULL) { @@ -327,6 +350,11 @@ mpegpsmux_create_stream (MpegPsMux * mux, MpegPsPadData * ps_data, GstPad * pad) psmux_stream_set_buffer_release_func (ps_data->stream, release_buffer_cb); ret = GST_FLOW_OK; + + if (is_video && mux->video_stream_id == 0) { + mux->video_stream_id = ps_data->stream_id; + GST_INFO_OBJECT (mux, "video pad stream_id 0x%02x", mux->video_stream_id); + } } beach: @@ -448,12 +476,27 @@ mpegpsmux_choose_best_stream (MpegPsMux * mux) } static GstFlowReturn +mpegpsmux_push_gop_list (MpegPsMux * mux) +{ + GstFlowReturn flow; + + g_assert (mux->gop_list != NULL); + + GST_DEBUG_OBJECT (mux, "Sending pending GOP of %u buffers", + gst_buffer_list_n_groups (mux->gop_list)); + flow = gst_pad_push_list (mux->srcpad, mux->gop_list); + mux->gop_list = NULL; + return flow; +} + +static GstFlowReturn mpegpsmux_collected (GstCollectPads * pads, MpegPsMux * mux) { /* main muxing function */ GstFlowReturn ret = GST_FLOW_OK; MpegPsPadData *best = NULL; + gboolean keyunit; GST_DEBUG_OBJECT (mux, "Pads collected"); @@ -496,9 +539,20 @@ mpegpsmux_collected (GstCollectPads * pads, MpegPsMux * mux) G_GINT64_FORMAT, GST_TIME_ARGS (best->cur_ts), pts); } + /* start of new GOP? */ + keyunit = !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + + if (keyunit && best->stream_id == mux->video_stream_id + && mux->gop_list != NULL) { + ret = mpegpsmux_push_gop_list (mux); + if (ret != GST_FLOW_OK) + goto done; + } + /* give the buffer to libpsmux for processing */ psmux_stream_add_data (best->stream, GST_BUFFER_DATA (buf), - GST_BUFFER_SIZE (buf), buf, pts, -1); + GST_BUFFER_SIZE (buf), buf, pts, -1, keyunit); + best->queued_buf = NULL; /* write the data from libpsmux to stream */ @@ -513,12 +567,17 @@ mpegpsmux_collected (GstCollectPads * pads, MpegPsMux * mux) } else { /* FIXME: Drain all remaining streams */ /* At EOS */ + if (mux->gop_list != NULL) + mpegpsmux_push_gop_list (mux); + if (psmux_write_end_code (mux->psmux)) { GST_WARNING_OBJECT (mux, "Writing MPEG PS Program end code failed."); } gst_pad_push_event (mux->srcpad, gst_event_new_eos ()); } +done: + return ret; new_seg_fail: return GST_FLOW_ERROR; @@ -586,11 +645,33 @@ mpegpsmux_release_pad (GstElement * element, GstPad * pad) pad_data->codec_data = NULL; } } + if (pad_data->stream_id == mux->video_stream_id) + mux->video_stream_id = 0; GST_OBJECT_UNLOCK (pad); gst_collect_pads_remove_pad (mux->collect, pad); } +static void +add_buffer_to_goplist (MpegPsMux * mux, GstBuffer * buf) +{ + GstBufferListIterator *it; + + if (mux->gop_list == NULL) + mux->gop_list = gst_buffer_list_new (); + + it = gst_buffer_list_iterate (mux->gop_list); + + /* move iterator to end */ + while (gst_buffer_list_iterator_next_group (it)) { + /* .. */ + } + + gst_buffer_list_iterator_add_group (it); + gst_buffer_list_iterator_add (it, buf); + gst_buffer_list_iterator_free (it); +} + static gboolean new_packet_cb (guint8 * data, guint len, void *user_data) { @@ -611,7 +692,14 @@ new_packet_cb (guint8 * data, guint len, void *user_data) memcpy (GST_BUFFER_DATA (buf), data, len); GST_BUFFER_TIMESTAMP (buf) = mux->last_ts; + + if (mux->aggregate_gops) { + add_buffer_to_goplist (mux, buf); + return TRUE; + } + ret = gst_pad_push (mux->srcpad, buf); + if (G_UNLIKELY (ret != GST_FLOW_OK)) { mux->last_flow_ret = ret; return FALSE; @@ -623,6 +711,9 @@ new_packet_cb (guint8 * data, guint len, void *user_data) static gboolean mpegpsdemux_prepare_srcpad (MpegPsMux * mux) { + GValue val = { 0, }; + GList *headers, *l; + /* prepare the source pad for output */ GstEvent *new_seg = @@ -634,6 +725,21 @@ mpegpsdemux_prepare_srcpad (MpegPsMux * mux) /* gst_static_pad_template_get_caps (&mpegpsmux_src_factory); */ + headers = psmux_get_stream_headers (mux->psmux); + g_value_init (&val, GST_TYPE_ARRAY); + for (l = headers; l != NULL; l = l->next) { + GValue buf_val = { 0, }; + + g_value_init (&buf_val, GST_TYPE_BUFFER); + gst_value_take_buffer (&buf_val, GST_BUFFER (l->data)); + l->data = NULL; + gst_value_array_append_value (&val, &buf_val); + g_value_unset (&buf_val); + } + gst_caps_set_value (caps, "streamheader", &val); + g_value_unset (&val); + g_list_free (headers); + /* Set caps on src pad from our template and push new segment */ gst_pad_set_caps (mux->srcpad, caps); diff --git a/gst/mpegpsmux/mpegpsmux.h b/gst/mpegpsmux/mpegpsmux.h index 4da1bea..6d994f4 100644 --- a/gst/mpegpsmux/mpegpsmux.h +++ b/gst/mpegpsmux/mpegpsmux.h @@ -68,7 +68,9 @@ struct MpegPsMux { GstPad *srcpad; - GstCollectPads *collect; // pads collector + guint video_stream_id; /* stream id of primary video stream */ + + GstCollectPads *collect; /* pads collector */ PsMux *psmux; @@ -76,6 +78,9 @@ struct MpegPsMux { GstFlowReturn last_flow_ret; GstClockTime last_ts; + + GstBufferList *gop_list; + gboolean aggregate_gops; }; struct MpegPsMuxClass { diff --git a/gst/mpegpsmux/psmux.c b/gst/mpegpsmux/psmux.c index 9d0493c..44e32fa 100644 --- a/gst/mpegpsmux/psmux.c +++ b/gst/mpegpsmux/psmux.c @@ -141,6 +141,12 @@ psmux_free (PsMux * mux) } g_list_free (mux->streams); + if (mux->sys_header != NULL) + gst_buffer_unref (mux->sys_header); + + if (mux->psm != NULL) + gst_buffer_unref (mux->psm); + g_slice_free (PsMux, mux); } @@ -332,23 +338,29 @@ psmux_write_pack_header (PsMux * mux) return psmux_packet_out (mux); } -static gboolean -psmux_write_system_header (PsMux * mux) +static void +psmux_ensure_system_header (PsMux * mux) { + GstBuffer *buf; bits_buffer_t bw; guint len = 12 + (mux->nb_streams + (mux->nb_private_streams > 1 ? mux->nb_private_streams - 1 : 0)) * 3; GList *cur; gboolean private_hit = FALSE; + if (mux->sys_header != NULL) + return; + + buf = gst_buffer_new_and_alloc (len); + /* system_header_start_code */ - bits_initwrite (&bw, len, mux->packet_buf); + bits_initwrite (&bw, len, GST_BUFFER_DATA (buf)); /* system_header start code */ bits_write (&bw, 24, PSMUX_START_CODE_PREFIX); bits_write (&bw, 8, PSMUX_SYSTEM_HEADER); - bits_write (&bw, 16, len); /* header_length */ + bits_write (&bw, 16, len - 6); /* header_length (bytes after this field) */ bits_write (&bw, 1, 1); /* marker */ bits_write (&bw, 22, mux->rate_bound); /* rate_bound */ bits_write (&bw, 1, 1); /* marker */ @@ -378,19 +390,36 @@ psmux_write_system_header (PsMux * mux) private_hit = TRUE; } - mux->packet_bytes_written = len; - return psmux_packet_out (mux); + GST_MEMDUMP ("System Header", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + + mux->sys_header = buf; } static gboolean -psmux_write_program_stream_map (PsMux * mux) +psmux_write_system_header (PsMux * mux) +{ + psmux_ensure_system_header (mux); + + memcpy (mux->packet_buf, GST_BUFFER_DATA (mux->sys_header), + GST_BUFFER_SIZE (mux->sys_header)); + mux->packet_bytes_written = GST_BUFFER_SIZE (mux->sys_header); + + return psmux_packet_out (mux); +} + +static void +psmux_ensure_program_stream_map (PsMux * mux) { + GstBuffer *buf; gint psm_size = 16, es_map_size = 0; bits_buffer_t bw; GList *cur; guint16 len; guint8 *pos; + if (mux->psm != NULL) + return; + /* pre-write the descriptor loop */ pos = mux->es_info_buf; for (cur = g_list_first (mux->streams); cur != NULL; cur = g_list_next (cur)) { @@ -412,7 +441,10 @@ psmux_write_program_stream_map (PsMux * mux) } psm_size += es_map_size; - bits_initwrite (&bw, psm_size, mux->packet_buf); + + buf = gst_buffer_new_and_alloc (psm_size); + + bits_initwrite (&bw, psm_size, GST_BUFFER_DATA (buf)); /* psm start code */ bits_write (&bw, 24, PSMUX_START_CODE_PREFIX); @@ -429,15 +461,44 @@ psmux_write_program_stream_map (PsMux * mux) /* program_stream_info empty */ bits_write (&bw, 16, es_map_size); /* elementary_stream_map_length */ + memcpy (bw.p_data + bw.i_data, mux->es_info_buf, es_map_size); /* CRC32 */ { - guint32 crc = calc_crc32 (mux->packet_buf, psm_size - 4); - guint8 *pos = mux->packet_buf + psm_size - 4; + guint32 crc = calc_crc32 (bw.p_data, psm_size - 4); + guint8 *pos = bw.p_data + psm_size - 4; psmux_put32 (&pos, crc); } - mux->packet_bytes_written = psm_size; + GST_MEMDUMP ("Program Stream Map", GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)); + + mux->psm = buf; +} + +static gboolean +psmux_write_program_stream_map (PsMux * mux) +{ + psmux_ensure_program_stream_map (mux); + + memcpy (mux->packet_buf, GST_BUFFER_DATA (mux->psm), + GST_BUFFER_SIZE (mux->psm)); + mux->packet_bytes_written = GST_BUFFER_SIZE (mux->psm); + return psmux_packet_out (mux); } + +GList * +psmux_get_stream_headers (PsMux * mux) +{ + GList *list; + + psmux_ensure_system_header (mux); + psmux_ensure_program_stream_map (mux); + + list = g_list_append (NULL, gst_buffer_ref (mux->sys_header)); + list = g_list_append (list, gst_buffer_ref (mux->psm)); + + return list; +} diff --git a/gst/mpegpsmux/psmux.h b/gst/mpegpsmux/psmux.h index 5aacf94..3daa90a 100644 --- a/gst/mpegpsmux/psmux.h +++ b/gst/mpegpsmux/psmux.h @@ -93,6 +93,10 @@ struct PsMux { guint8 audio_bound; guint8 video_bound; guint32 rate_bound; + + /* stream headers */ + GstBuffer *sys_header; + GstBuffer *psm; }; /* create/free new muxer session */ @@ -109,6 +113,8 @@ PsMuxStream * psmux_create_stream (PsMux *mux, PsMuxStreamType stream_type); gboolean psmux_write_stream_packet (PsMux *mux, PsMuxStream *stream); gboolean psmux_write_end_code (PsMux *mux); +GList * psmux_get_stream_headers (PsMux *mux); + G_END_DECLS #endif diff --git a/gst/mpegpsmux/psmuxstream.c b/gst/mpegpsmux/psmuxstream.c index e91cc00..a0bd38e 100644 --- a/gst/mpegpsmux/psmuxstream.c +++ b/gst/mpegpsmux/psmuxstream.c @@ -513,7 +513,7 @@ psmux_stream_write_pes_header (PsMuxStream * stream, guint8 * data) */ void psmux_stream_add_data (PsMuxStream * stream, guint8 * data, guint len, - void *user_data, gint64 pts, gint64 dts) + void *user_data, gint64 pts, gint64 dts, gboolean keyunit) { PsMuxStreamBuffer *packet; @@ -524,6 +524,7 @@ psmux_stream_add_data (PsMuxStream * stream, guint8 * data, guint len, packet->size = len; packet->user_data = user_data; + packet->keyunit = keyunit; packet->pts = pts; packet->dts = dts; diff --git a/gst/mpegpsmux/psmuxstream.h b/gst/mpegpsmux/psmuxstream.h index 9860e62..ff4c289 100644 --- a/gst/mpegpsmux/psmuxstream.h +++ b/gst/mpegpsmux/psmuxstream.h @@ -86,6 +86,8 @@ struct PsMuxStreamBuffer guint8 *data; guint32 size; + gboolean keyunit; + /* PTS & DTS associated with the contents of this buffer */ GstClockTime pts; GstClockTime dts; @@ -146,7 +148,8 @@ void psmux_stream_set_buffer_release_func (PsMuxStream *stream, /* Add a new buffer to the pool of available bytes. If pts or dts are not -1, they * indicate the PTS or DTS of the first access unit within this packet */ void psmux_stream_add_data (PsMuxStream *stream, guint8 *data, guint len, - void *user_data, gint64 pts, gint64 dts); + void *user_data, gint64 pts, gint64 dts, + gboolean keyunit); /* total bytes in buffer */ gint psmux_stream_bytes_in_buffer (PsMuxStream *stream); diff --git a/gst/mpegtsdemux/Makefile.am b/gst/mpegtsdemux/Makefile.am index 184b588..55b57d9 100644 --- a/gst/mpegtsdemux/Makefile.am +++ b/gst/mpegtsdemux/Makefile.am @@ -6,7 +6,9 @@ libgstmpegtsdemux_la_SOURCES = \ mpegtsbase.c \ mpegtspacketizer.c \ mpegtsparse.c \ - tsdemux.c + payload_parsers.c \ + tsdemux.c \ + pesparse.c libgstmpegtsdemux_la_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ @@ -23,7 +25,9 @@ noinst_HEADERS = \ mpegtsbase.h \ mpegtspacketizer.h \ mpegtsparse.h \ - tsdemux.h + payload_parsers.h \ + tsdemux.h \ + pesparse.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ @@ -37,4 +41,4 @@ Android.mk: Makefile.am $(BUILT_SOURCES) -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ - > $@ \ No newline at end of file + > $@ diff --git a/gst/mpegtsdemux/Makefile.in b/gst/mpegtsdemux/Makefile.in index 9e79122..f916a30 100644 --- a/gst/mpegtsdemux/Makefile.in +++ b/gst/mpegtsdemux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,10 +117,12 @@ am_libgstmpegtsdemux_la_OBJECTS = libgstmpegtsdemux_la-gsttsdemux.lo \ libgstmpegtsdemux_la-mpegtsbase.lo \ libgstmpegtsdemux_la-mpegtspacketizer.lo \ libgstmpegtsdemux_la-mpegtsparse.lo \ - libgstmpegtsdemux_la-tsdemux.lo + libgstmpegtsdemux_la-payload_parsers.lo \ + libgstmpegtsdemux_la-tsdemux.lo \ + libgstmpegtsdemux_la-pesparse.lo libgstmpegtsdemux_la_OBJECTS = $(am_libgstmpegtsdemux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpegtsdemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -129,21 +138,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpegtsdemux_la_SOURCES) DIST_SOURCES = $(libgstmpegtsdemux_la_SOURCES) @@ -155,7 +164,6 @@ 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@ @@ -173,7 +181,6 @@ 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@ @@ -208,6 +215,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -247,6 +255,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -264,6 +273,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -272,13 +282,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -303,13 +316,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -357,6 +371,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -388,8 +403,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -413,6 +432,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -437,10 +458,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -452,6 +477,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -476,6 +505,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -511,7 +541,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -539,7 +568,9 @@ libgstmpegtsdemux_la_SOURCES = \ mpegtsbase.c \ mpegtspacketizer.c \ mpegtsparse.c \ - tsdemux.c + payload_parsers.c \ + tsdemux.c \ + pesparse.c libgstmpegtsdemux_la_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ @@ -557,7 +588,9 @@ noinst_HEADERS = \ mpegtsbase.h \ mpegtspacketizer.h \ mpegtsparse.h \ - tsdemux.h + payload_parsers.h \ + tsdemux.h \ + pesparse.h all: all-am @@ -624,7 +657,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpegtsdemux.la: $(libgstmpegtsdemux_la_OBJECTS) $(libgstmpegtsdemux_la_DEPENDENCIES) +libgstmpegtsdemux.la: $(libgstmpegtsdemux_la_OBJECTS) $(libgstmpegtsdemux_la_DEPENDENCIES) $(EXTRA_libgstmpegtsdemux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmpegtsdemux_la_LINK) -rpath $(plugindir) $(libgstmpegtsdemux_la_OBJECTS) $(libgstmpegtsdemux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -638,79 +671,86 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-mpegtsbase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-mpegtspacketizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-mpegtsparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-payload_parsers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-pesparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpegtsdemux_la-tsdemux.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmpegtsdemux_la-gsttsdemux.lo: gsttsdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-gsttsdemux.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-gsttsdemux.Tpo -c -o libgstmpegtsdemux_la-gsttsdemux.lo `test -f 'gsttsdemux.c' || echo '$(srcdir)/'`gsttsdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-gsttsdemux.Tpo $(DEPDIR)/libgstmpegtsdemux_la-gsttsdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttsdemux.c' object='libgstmpegtsdemux_la-gsttsdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttsdemux.c' object='libgstmpegtsdemux_la-gsttsdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-gsttsdemux.lo `test -f 'gsttsdemux.c' || echo '$(srcdir)/'`gsttsdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-gsttsdemux.lo `test -f 'gsttsdemux.c' || echo '$(srcdir)/'`gsttsdemux.c libgstmpegtsdemux_la-gstmpegdesc.lo: gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-gstmpegdesc.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-gstmpegdesc.Tpo -c -o libgstmpegtsdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-gstmpegdesc.Tpo $(DEPDIR)/libgstmpegtsdemux_la-gstmpegdesc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegdesc.c' object='libgstmpegtsdemux_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegdesc.c' object='libgstmpegtsdemux_la-gstmpegdesc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-gstmpegdesc.lo `test -f 'gstmpegdesc.c' || echo '$(srcdir)/'`gstmpegdesc.c libgstmpegtsdemux_la-mpegtsbase.lo: mpegtsbase.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-mpegtsbase.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-mpegtsbase.Tpo -c -o libgstmpegtsdemux_la-mpegtsbase.lo `test -f 'mpegtsbase.c' || echo '$(srcdir)/'`mpegtsbase.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-mpegtsbase.Tpo $(DEPDIR)/libgstmpegtsdemux_la-mpegtsbase.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsbase.c' object='libgstmpegtsdemux_la-mpegtsbase.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsbase.c' object='libgstmpegtsdemux_la-mpegtsbase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtsbase.lo `test -f 'mpegtsbase.c' || echo '$(srcdir)/'`mpegtsbase.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtsbase.lo `test -f 'mpegtsbase.c' || echo '$(srcdir)/'`mpegtsbase.c libgstmpegtsdemux_la-mpegtspacketizer.lo: mpegtspacketizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-mpegtspacketizer.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-mpegtspacketizer.Tpo -c -o libgstmpegtsdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-mpegtspacketizer.Tpo $(DEPDIR)/libgstmpegtsdemux_la-mpegtspacketizer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtspacketizer.c' object='libgstmpegtsdemux_la-mpegtspacketizer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtspacketizer.c' object='libgstmpegtsdemux_la-mpegtspacketizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtspacketizer.lo `test -f 'mpegtspacketizer.c' || echo '$(srcdir)/'`mpegtspacketizer.c libgstmpegtsdemux_la-mpegtsparse.lo: mpegtsparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-mpegtsparse.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-mpegtsparse.Tpo -c -o libgstmpegtsdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-mpegtsparse.Tpo $(DEPDIR)/libgstmpegtsdemux_la-mpegtsparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsparse.c' object='libgstmpegtsdemux_la-mpegtsparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsparse.c' object='libgstmpegtsdemux_la-mpegtsparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-mpegtsparse.lo `test -f 'mpegtsparse.c' || echo '$(srcdir)/'`mpegtsparse.c + +libgstmpegtsdemux_la-payload_parsers.lo: payload_parsers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-payload_parsers.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-payload_parsers.Tpo -c -o libgstmpegtsdemux_la-payload_parsers.lo `test -f 'payload_parsers.c' || echo '$(srcdir)/'`payload_parsers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-payload_parsers.Tpo $(DEPDIR)/libgstmpegtsdemux_la-payload_parsers.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='payload_parsers.c' object='libgstmpegtsdemux_la-payload_parsers.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-payload_parsers.lo `test -f 'payload_parsers.c' || echo '$(srcdir)/'`payload_parsers.c libgstmpegtsdemux_la-tsdemux.lo: tsdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-tsdemux.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-tsdemux.Tpo -c -o libgstmpegtsdemux_la-tsdemux.lo `test -f 'tsdemux.c' || echo '$(srcdir)/'`tsdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-tsdemux.Tpo $(DEPDIR)/libgstmpegtsdemux_la-tsdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tsdemux.c' object='libgstmpegtsdemux_la-tsdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tsdemux.c' object='libgstmpegtsdemux_la-tsdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-tsdemux.lo `test -f 'tsdemux.c' || echo '$(srcdir)/'`tsdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-tsdemux.lo `test -f 'tsdemux.c' || echo '$(srcdir)/'`tsdemux.c + +libgstmpegtsdemux_la-pesparse.lo: pesparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsdemux_la-pesparse.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsdemux_la-pesparse.Tpo -c -o libgstmpegtsdemux_la-pesparse.lo `test -f 'pesparse.c' || echo '$(srcdir)/'`pesparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsdemux_la-pesparse.Tpo $(DEPDIR)/libgstmpegtsdemux_la-pesparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pesparse.c' object='libgstmpegtsdemux_la-pesparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsdemux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsdemux_la-pesparse.lo `test -f 'pesparse.c' || echo '$(srcdir)/'`pesparse.c mostlyclean-libtool: -rm -f *.lo @@ -817,10 +857,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegtsdemux/TODO b/gst/mpegtsdemux/TODO index b8f6366..66e1d5f 100644 --- a/gst/mpegtsdemux/TODO +++ b/gst/mpegtsdemux/TODO @@ -1,117 +1,151 @@ -mpegtsparse rebasing +tsdemux/tsparse TODO -------------------- -Rationale : ------------ - - mpegtsparse code is more sane to handle and work with. - - We need a modular demuxer - - We need to avoid duplicating code regarding mpeg-ts in a gazillion - elements and allow easy creatiof new elements. - - -Battleplan : ------------- -* Figure out code from mpegtsparse which would be also needed for a -mpeg-ts demuxer (ex: packet/psi/pcr parsing). -* Extract common code into a base mpegtsbase class. -* Refactor mpegtsparse to subclass that base class. -* Create a minimalistic demuxer that creates pads (based on PSI info) -and outputs ES packets (let's say mpeg audio and video to start with) - -Potential subclasses : ----------------------- -* MpegTSParse : Program splitter. Given an incoming multi-program - mpeg-ts stream, it can provide request pads for each program. Each - of those pads will contain the ts packets specific to that program. - -* TSDemux : Program demuxer. Given an incoming single or multi-program - mpeg-ts stream, it will reconstruct the original Program Streams of - the selected program and output them on dynamically created pads. - -* HDVSplitter : Given an incoming HDV mpeg-ts stream, it will locate - the beginning of new scenes and output a mpeg-ts stream with the - PAT/PMT/AUX packets properly ordered and marked with DISCONT, so - that the following pipeline will automatically cut up a tape dump - into individual scenes: - filesrc ! hdvsplit ! multifilesink next-file=discont - -Code/Design common to a program-spliter and a demuxer : -------------------------------------------------------- -* Parsing TS packets -* Establishing PAT/PMT mapping -* Handling the notions of Programs/Streams -* Seeking ? - - One proposal... would be to have the base class automatically create - all the structures (and relationships) for the following objects: - - * Programs (from PAT/PMT, dunno if it could come from something - else) - * Program id - * Streams contained in that program (with links to them) - * Which stream contains the PCR - * Metadata ? - * Streams (ideally... in a table for fast access) - * We want to be able to have stream-type specific information - easily accessible also (like mpeg video specific data) - * Maybe some other info ??? - - The subclasses would then be able to make their own decision based - on those objects. - Maybe we could have some virtual methods that will be called when a - new program is detected, a new stream is added, etc... - - It is the subclass who decides what's to do with a given packet once - it's been parsed. - tsparse : forward it as-is to the pad corresponding to the program - tsdemux : forward it to the proper PS parser - hdvsplit : ? - - -Ideas to be taken into account for a proper demuxer : ------------------------------------------------------ -* Push-based (with inacurrate seeking) -* Pull-based (with fast *AND* accurate seeking) -* Modular system to add stream-type specific helper parsing - * Doesn't have to be fully fledged, just enough to help any kind of - seeking and scanning code. -* ... - -Problems to figure out : ------------------------- -* clock - Needed for proper dvb playback. mpegtsdemux currently does internal - clock estimation... to provide a clock with PCR estimations. - A proper way to solve that would be to timestamp the buffers at the - source element using the system clock, and then adjusting the PCR - against those values. (i.e. doing the opposite of what's done in - mpegtsdemux, but it will be more accurate since the timestamping is - done at the source). - - -Bugs that need fixing : ------------------------ +* clock for live streams + In order for playback to happen at the same rate as on the producer, + we need to estimate the remote clock based on capture time and PCR + values. + For this estimation to be as accurate as possible, the capture time + needs to happen on the sources. + => Ensure live sources actually timestamp their buffers + Once we have accurate timestamps, we can use an algorithm to + calculate the PCR/local-clock skew. + => Use the EPTLA algorithm as used in -good/rtp/rtpmanager/ + gstrtpjitterbuffer + +* Seeking + => Split out in a separate file/object. It is polluting tsdemux for + code readability/clarity. + * Perfomance : Creation/Destruction of buffers is slow * => This is due to g_type_instance_create using a dogslow rwlock which take up to 50% of gst_adapter_take_buffer() => Bugzilla #585375 (performance and contention problems) -Code structure: - - MpegTSBase - +--- MpegTSParse - +--- TSDemux - - -Known limitations and problems : --------------------------------- * mpegtspacketizer - * Assumes 188 bytes packets. It should support all modes. * offset/timestamp of incoming buffers need to be carried on to the sub-buffers in order for several demuxer features to work correctly. + * mpegtsparser * SERIOUS room for improvement performance-wise (see callgrind) + + + +Synchronization, Scheduling and Timestamping +-------------------------------------------- + + A mpeg-ts demuxer can be used in a variety of situations: + * lives streaming over DVB, UDP, RTP,.. + * play-as-you-download like HTTP Live Streaming or UPNP/DLNA + * random-access local playback, file, Bluray, ... + + Those use-cases can be categorized in 3 different categories: + * Push-based scheduling with live sources [0] + * Push-based scheduling with non-live sources + * Pull-based scheduling with fast random-access + + Due to the nature of timing within the mpeg-ts format, we need to +pay extra attention to the outgoing NEWSEGMENT event and buffer +timestamps in order to guarantee proper playback and synchronization +of the stream. + + + 1) Live push-based scheduling + + The NEWSEGMENT event will be in time format and is forwarded as is, + and the values are cached locally. + + Since the clock is running when the upstream buffers are captured, + the outgoing buffer timestamps need to correspond to the incoming + buffer timestamp values. + + => A delta, DTS_delta between incoming buffer timestamp and + DTS/PTS needs to be computed. + + => The outgoing buffers will be timestamped with their PTS values + (overflow corrected) offseted by that initial DTS_delta. + + A latency is introduced between the time the buffer containing the + first bit of a Access Unit is received in the demuxer and the moment + the demuxer pushed out the buffer corresponding to that Access Unit. + + => That latency needs to be reported. It corresponds to the + biggest Access Unit spacing, in this case 1/video-framerate. + + According to the ISO/IEC 13818-1:2007 specifications, D.0.1 Timing + mode, the "coded audio and video that represent sound and pictures + that are to be presented simultaneously may be separated in time + within the coded bit stream by ==>as much as one second<==" + + => The demuxer will therefore report an added latency of 1s to + handle this interleave. + + + 2) Non-live push-based scheduling + + If the upstream NEWSEGMENT is in time format, the NEWSEGMENT event + is forwarded as is, and the values are cached locally. + + If upstream does provide a NEWSEGMENT in another format, we need to + compute one by taking the default values: + start : 0 + stop : GST_CLOCK_TIME_NONE + time : 0 + + Since no prerolling is happening downstream and the incoming buffers + do not have capture timestamps, we need to ensure the first buffer + we push out corresponds to the base segment start runing time. + + => A delta between the first DTS to output and the segment start + position needs to be computed. + + => The outgoing buffers will be timestamped with their PTS values + (overflow corrected) offseted by that initial delta. + + Latency is reported just as with the live use-case. + + + 3) Random access pull-mode + + We do not get a NEWSEGMENT event from upstream, we therefore need to + compute the outgoing values. + + The base stream/running time corresponds to the DTS of the first + buffer we will output. The DTS_delta becomes that earliest DTS. + + => FILLME + + X) General notes + + It is assumed that PTS/DTS rollovers are detected and corrected such + as the outgoing timestamps never rollover. This can be easily + handled by correcting the DTS_delta when such rollovers are + detected. The maximum value of a GstClockTimeDiff is almost 3 + centuries, we therefore have enough margin to handle a decent number + of rollovers. + + The generic equation for calculating outgoing buffer timestamps + therefore becomes: + + D = DTS_delta, with rollover corrections + PTS = PTS of the buffer we are going to push out + TS = Timestamp of the outgoing buffer + + ==> TS = PTS + D + + If seeking is handled upstream for push-based cases, whether live or + not, no extra modification is required. + + If seeking is handled by the demuxer in the non-live push-based + cases (converting from TIME to BYTES), the demuxer will need to + set the segment start/time values to the requested seek position. + The DTS_delta will also have to be recomputed to take into account + the seek position. + + +[0] When talking about live sources, we mean this in the GStreamer +definition of live sources, which is to say sources where if we miss +the capture, we will miss the data to be captured. Sources which do +internal buffering (like TCP connections or file descriptors) are +*NOT* live sources. diff --git a/gst/mpegtsdemux/gstmpegdefs.h b/gst/mpegtsdemux/gstmpegdefs.h index 60ab580..be6209a 100644 --- a/gst/mpegtsdemux/gstmpegdefs.h +++ b/gst/mpegtsdemux/gstmpegdefs.h @@ -44,7 +44,11 @@ * 1111 0111 ITU-T Rec. H.222.1 type D * 1111 1000 ITU-T Rec. H.222.1 type E * 1111 1001 ancillary_stream - * 1111 1010 E 1111 1110 reserved data stream + * 1111 1010 ISO/IEC 14496-1_SL-packetized_stream + * 1111 1011 ISO/IEC 14496-1_FlexMux_stream + * 1111 1100 metadata stream + * 1111 1101 extended_stream_id + * 1111 1110 reserved data stream * 1111 1111 program_stream_directory */ @@ -69,9 +73,9 @@ #define ID_ITU_TREC_H222_TYPE_D_STREAM 0x000001F7 #define ID_ITU_TREC_H222_TYPE_E_STREAM 0x000001F8 #define ID_ANCILLARY_STREAM 0x000001F9 -#define ID_RESERVED_STREAM_1 0x000001FA -#define ID_RESERVED_STREAM_2 0x000001FB -#define ID_EXTENDED_METADATA 0x000001FC +#define ID_14496_1_SL_PACKETIZED_STREAM 0x000001FA +#define ID_14496_1_SL_FLEXMUX_STREAM 0x000001FB +#define ID_METADATA_STREAM 0x000001FC #define ID_EXTENDED_STREAM_ID 0x000001FD #define ID_RESERVED_STREAM_3 0x000001FE #define ID_PROGRAM_STREAM_DIRECTORY 0x000001FF diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 1c9ddf6..c63170e 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1,7 +1,11 @@ /* - * mpegtsbase.c - + * mpegtsbase.c - * Copyright (C) 2007 Alessandro Decina * 2010 Edward Hervey + * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. + * Author: Youness Alaoui , Collabora Ltd. + * Author: Sebastian Dröge , Collabora Ltd. + * Author: Edward Hervey , Collabora Ltd. * * Authors: * Alessandro Decina @@ -31,6 +35,8 @@ #include #include +#include + #include #include "mpegtsbase.h" #include "gstmpegdesc.h" @@ -163,8 +169,8 @@ mpegts_base_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_static_pad_template (element_class, + &sink_template); } static void @@ -187,12 +193,14 @@ mpegts_base_class_init (MpegTSBaseClass * klass) static void mpegts_base_reset (MpegTSBase * base) { + MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + mpegts_packetizer_clear (base->packetizer); - memset (base->is_pes, 0, 8192); - memset (base->known_psi, 0, 8192); + memset (base->is_pes, 0, 1024); + memset (base->known_psi, 0, 1024); /* PAT */ - base->known_psi[0] = TRUE; + MPEGTS_BIT_SET (base->known_psi, 0); /* FIXME : Commenting the Following lines is to be in sync with the following * commit @@ -206,6 +214,16 @@ mpegts_base_reset (MpegTSBase * base) /* base->pat = NULL; */ /* pmt pids will be added and removed dynamically */ + gst_segment_init (&base->segment, GST_FORMAT_UNDEFINED); + + base->mode = BASE_MODE_STREAMING; + base->seen_pat = FALSE; + base->first_pat_offset = -1; + base->in_gap = 0; + base->first_buf_ts = GST_CLOCK_TIME_NONE; + + if (klass->reset) + klass->reset (base); } static void @@ -226,14 +244,12 @@ mpegts_base_init (MpegTSBase * base, MpegTSBaseClass * klass) base->programs = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) mpegts_base_free_program); - base->is_pes = g_new0 (gboolean, 8192); - base->known_psi = g_new0 (gboolean, 8192); - mpegts_base_reset (base); + base->is_pes = g_new0 (guint8, 1024); + base->known_psi = g_new0 (guint8, 1024); base->program_size = sizeof (MpegTSBaseProgram); base->stream_size = sizeof (MpegTSBaseStream); - base->mode = BASE_MODE_STREAMING; - base->first_pat_offset = -1; + mpegts_base_reset (base); } static void @@ -320,6 +336,35 @@ mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag) return retval; } +typedef struct +{ + gboolean res; + guint16 pid; +} PIDLookup; + +static void +foreach_pid_in_program (gpointer key, MpegTSBaseProgram * program, + PIDLookup * lookup) +{ + if (!program->active) + return; + if (program->streams[lookup->pid]) + lookup->res = TRUE; +} + +static gboolean +mpegts_pid_in_active_programs (MpegTSBase * base, guint16 pid) +{ + PIDLookup lookup; + + lookup.res = FALSE; + lookup.pid = pid; + g_hash_table_foreach (base->programs, (GHFunc) foreach_pid_in_program, + &lookup); + + return lookup.res; +} + /* returns NULL if no matching descriptor found * * otherwise returns a descriptor that needs to * * be freed */ @@ -352,12 +397,15 @@ mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag) return retval; } -MpegTSBaseProgram * -mpegts_base_add_program (MpegTSBase * base, +static MpegTSBaseProgram * +mpegts_base_new_program (MpegTSBase * base, gint program_number, guint16 pmt_pid) { MpegTSBaseProgram *program; + GST_DEBUG_OBJECT (base, "program_number : %d, pmt_pid : %d", + program_number, pmt_pid); + program = g_malloc0 (base->program_size); program->program_number = program_number; program->pmt_pid = pmt_pid; @@ -365,6 +413,23 @@ mpegts_base_add_program (MpegTSBase * base, program->streams = g_new0 (MpegTSBaseStream *, 0x2000); program->patcount = 0; + return program; +} + +MpegTSBaseProgram * +mpegts_base_add_program (MpegTSBase * base, + gint program_number, guint16 pmt_pid) +{ + MpegTSBaseProgram *program; + + GST_DEBUG_OBJECT (base, "program_number : %d, pmt_pid : %d", + program_number, pmt_pid); + + program = mpegts_base_new_program (base, program_number, pmt_pid); + + /* Mark the PMT PID as being a known PSI PID */ + MPEGTS_BIT_SET (base->known_psi, pmt_pid); + g_hash_table_insert (base->programs, GINT_TO_POINTER (program_number), program); @@ -382,53 +447,34 @@ mpegts_base_get_program (MpegTSBase * base, gint program_number) return program; } -#if 0 -static GstPad * -mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program) -{ - MpegTSBasePad *tspad; - gchar *pad_name; - - pad_name = g_strdup_printf ("program_%d", program->program_number); - - tspad = mpegts_base_create_tspad (base, pad_name); - tspad->program_number = program->program_number; - tspad->program = program; - program->tspad = tspad; - g_free (pad_name); - gst_pad_set_active (tspad->pad, TRUE); - program->active = TRUE; - - return tspad->pad; -} - -static GstPad * -mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program) +static MpegTSBaseProgram * +mpegts_base_steal_program (MpegTSBase * base, gint program_number) { - MpegTSBasePad *tspad; + MpegTSBaseProgram *program; - tspad = program->tspad; - gst_pad_set_active (tspad->pad, FALSE); - program->active = FALSE; + program = (MpegTSBaseProgram *) g_hash_table_lookup (base->programs, + GINT_TO_POINTER ((gint) program_number)); - /* tspad will be destroyed in GstElementClass::pad_removed */ + if (program) + g_hash_table_steal (base->programs, + GINT_TO_POINTER ((gint) program_number)); - return tspad->pad; + return program; } -#endif - static void mpegts_base_free_program (MpegTSBaseProgram * program) { - guint i; + GList *tmp; if (program->pmt_info) gst_structure_free (program->pmt_info); - for (i = 0; i < 0x2000; i++) - if (program->streams[i]) - mpegts_base_free_stream (program->streams[i]); + for (tmp = program->stream_list; tmp; tmp = tmp->next) + mpegts_base_free_stream ((MpegTSBaseStream *) tmp->data); + if (program->stream_list) + g_list_free (program->stream_list); + g_free (program->streams); if (program->tags) @@ -437,20 +483,24 @@ mpegts_base_free_program (MpegTSBaseProgram * program) g_free (program); } +/* FIXME : This is being called by tsdemux::find_timestamps() + * We need to avoid re-entrant code like that */ void mpegts_base_remove_program (MpegTSBase * base, gint program_number) { MpegTSBaseProgram *program; MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + GST_DEBUG_OBJECT (base, "program_number : %d", program_number); + if (klass->program_stopped) { program = (MpegTSBaseProgram *) g_hash_table_lookup (base->programs, GINT_TO_POINTER (program_number)); - klass->program_stopped (base, program); + if (program) + klass->program_stopped (base, program); } g_hash_table_remove (base->programs, GINT_TO_POINTER (program_number)); - } static MpegTSBaseStream * @@ -464,12 +514,18 @@ mpegts_base_program_add_stream (MpegTSBase * base, GST_DEBUG ("pid:0x%04x, stream_type:0x%03x, stream_info:%" GST_PTR_FORMAT, pid, stream_type, stream_info); + if (G_UNLIKELY (program->streams[pid])) { + GST_WARNING ("Stream already present !"); + return NULL; + } + stream = g_malloc0 (base->stream_size); stream->pid = pid; stream->stream_type = stream_type; stream->stream_info = stream_info; program->streams[pid] = stream; + program->stream_list = g_list_append (program->stream_list, stream); if (klass->stream_added) klass->stream_added (base, stream, program); @@ -487,48 +543,131 @@ void mpegts_base_program_remove_stream (MpegTSBase * base, MpegTSBaseProgram * program, guint16 pid) { - MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + MpegTSBaseClass *klass; + MpegTSBaseStream *stream = program->streams[pid]; + + GST_DEBUG ("pid:0x%04x", pid); + + if (G_UNLIKELY (stream == NULL)) { + /* Can happen if the PCR PID is the same as a audio/video PID */ + GST_DEBUG ("Stream already removed"); + return; + } + + klass = GST_MPEGTS_BASE_GET_CLASS (base); /* If subclass needs it, inform it of the stream we are about to remove */ if (klass->stream_removed) - klass->stream_removed (base, program->streams[pid]); + klass->stream_removed (base, stream); - mpegts_base_free_stream (program->streams[pid]); + program->stream_list = g_list_remove_all (program->stream_list, stream); + mpegts_base_free_stream (stream); program->streams[pid] = NULL; } static void -mpegts_base_deactivate_pmt (MpegTSBase * base, MpegTSBaseProgram * program) +mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program) { - gint i; + gint i, nbstreams; guint pid; - guint stream_type; GstStructure *stream; const GValue *streams; const GValue *value; MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + if (G_UNLIKELY (program->active == FALSE)) + return; + + GST_DEBUG_OBJECT (base, "Deactivating PMT"); + + program->active = FALSE; + if (program->pmt_info) { /* Inform subclasses we're deactivating this program */ if (klass->program_stopped) klass->program_stopped (base, program); streams = gst_structure_id_get_value (program->pmt_info, QUARK_STREAMS); + nbstreams = gst_value_list_get_size (streams); - for (i = 0; i < gst_value_list_get_size (streams); ++i) { + for (i = 0; i < nbstreams; ++i) { value = gst_value_list_get_value (streams, i); stream = g_value_get_boxed (value); - gst_structure_id_get (stream, QUARK_PID, G_TYPE_UINT, &pid, - QUARK_STREAM_TYPE, G_TYPE_UINT, &stream_type, NULL); + + gst_structure_id_get (stream, QUARK_PID, G_TYPE_UINT, &pid, NULL); mpegts_base_program_remove_stream (base, program, (guint16) pid); - base->is_pes[pid] = FALSE; + + /* Only unset the is_pes bit if the PID isn't used in any other active + * program */ + if (!mpegts_pid_in_active_programs (base, pid)) + MPEGTS_BIT_UNSET (base->is_pes, pid); } + /* remove pcr stream */ + /* FIXME : This might actually be shared with another stream ? */ mpegts_base_program_remove_stream (base, program, program->pcr_pid); - base->is_pes[program->pcr_pid] = FALSE; + if (!mpegts_pid_in_active_programs (base, program->pcr_pid)) + MPEGTS_BIT_UNSET (base->is_pes, program->pcr_pid); + + GST_DEBUG ("program stream_list is now %p", program->stream_list); } } +static void +mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program, + guint16 pmt_pid, GstStructure * pmt_info) +{ + guint i, nbstreams; + guint pcr_pid; + guint pid; + guint stream_type; + GstStructure *stream; + const GValue *new_streams; + const GValue *value; + MpegTSBaseClass *klass; + + if (G_UNLIKELY (program->active)) + return; + + GST_DEBUG ("Activating program %d", program->program_number); + + gst_structure_id_get (pmt_info, QUARK_PCR_PID, G_TYPE_UINT, &pcr_pid, NULL); + + /* activate new pmt */ + if (program->pmt_info) + gst_structure_free (program->pmt_info); + program->pmt_info = gst_structure_copy (pmt_info); + program->pmt_pid = pmt_pid; + program->pcr_pid = pcr_pid; + + new_streams = gst_structure_id_get_value (pmt_info, QUARK_STREAMS); + nbstreams = gst_value_list_get_size (new_streams); + + for (i = 0; i < nbstreams; ++i) { + value = gst_value_list_get_value (new_streams, i); + stream = g_value_get_boxed (value); + + gst_structure_id_get (stream, QUARK_PID, G_TYPE_UINT, &pid, + QUARK_STREAM_TYPE, G_TYPE_UINT, &stream_type, NULL); + MPEGTS_BIT_SET (base->is_pes, pid); + mpegts_base_program_add_stream (base, program, + (guint16) pid, (guint8) stream_type, stream); + + } + /* We add the PCR pid last. If that PID is already used by one of the media + * streams above, no new stream will be created */ + mpegts_base_program_add_stream (base, program, (guint16) pcr_pid, -1, NULL); + MPEGTS_BIT_SET (base->is_pes, pcr_pid); + + + program->active = TRUE; + + klass = GST_MPEGTS_BASE_GET_CLASS (base); + if (klass->program_started != NULL) + klass->program_started (base, program); + + GST_DEBUG_OBJECT (base, "new pmt %" GST_PTR_FORMAT, pmt_info); +} gboolean mpegts_base_is_psi (MpegTSBase * base, MpegTSPacketizerPacket * packet) @@ -544,11 +683,11 @@ mpegts_base_is_psi (MpegTSBase * base, MpegTSPacketizerPacket * packet) 0x72, 0x73, 0x7E, 0x7F, TABLE_ID_UNSET }; - if (base->known_psi[packet->pid]) + if (MPEGTS_BIT_IS_SET (base->known_psi, packet->pid)) retval = TRUE; /* check is it is a pes pid */ - if (base->is_pes[packet->pid]) + if (MPEGTS_BIT_IS_SET (base->is_pes, packet->pid)) return FALSE; if (!retval) { @@ -595,22 +734,32 @@ mpegts_base_apply_pat (MpegTSBase * base, GstStructure * pat_info) guint program_number; guint pid; MpegTSBaseProgram *program; - gint i; + gint i, nbprograms; const GValue *programs; - MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + + GST_INFO_OBJECT (base, "PAT %" GST_PTR_FORMAT, pat_info); + + /* Applying a new PAT does two things: + * * It adds the new programs to the list of programs this element handles + * and increments at the same time the number of times a program is referenced. + * + * * If there was a previously active PAT, It decrements the reference count + * of all program it used. If a program is no longer needed, it is removed. + */ old_pat = base->pat; base->pat = gst_structure_copy (pat_info); - GST_INFO_OBJECT (base, "PAT %" GST_PTR_FORMAT, pat_info); - gst_element_post_message (GST_ELEMENT_CAST (base), gst_message_new_element (GST_OBJECT (base), gst_structure_copy (pat_info))); - programs = gst_structure_id_get_value (pat_info, QUARK_PROGRAMS); + + GST_LOG ("Activating new Program Association Table"); /* activate the new table */ - for (i = 0; i < gst_value_list_get_size (programs); ++i) { + programs = gst_structure_id_get_value (pat_info, QUARK_PROGRAMS); + nbprograms = gst_value_list_get_size (programs); + for (i = 0; i < nbprograms; ++i) { value = gst_value_list_get_value (programs, i); program_info = g_value_get_boxed (value); @@ -619,30 +768,34 @@ mpegts_base_apply_pat (MpegTSBase * base, GstStructure * pat_info) program = mpegts_base_get_program (base, program_number); if (program) { + /* IF the program already existed, just check if the PMT PID changed */ if (program->pmt_pid != pid) { if (program->pmt_pid != G_MAXUINT16) { /* pmt pid changed */ /* FIXME: when this happens it may still be pmt pid of another * program, so setting to False may make it go through expensive * path in is_psi unnecessarily */ - base->known_psi[program->pmt_pid] = FALSE; + MPEGTS_BIT_UNSET (base->known_psi, program->pmt_pid); } program->pmt_pid = pid; - base->known_psi[pid] = TRUE; + MPEGTS_BIT_SET (base->known_psi, pid); } } else { - base->known_psi[pid] = TRUE; + /* Create a new program */ program = mpegts_base_add_program (base, program_number, pid); } + /* We mark this program as being referenced by one PAT */ program->patcount += 1; } if (old_pat) { /* deactivate the old table */ + GST_LOG ("Deactivating old Program Association Table"); programs = gst_structure_id_get_value (old_pat, QUARK_PROGRAMS); - for (i = 0; i < gst_value_list_get_size (programs); ++i) { + nbprograms = gst_value_list_get_size (programs); + for (i = 0; i < nbprograms; ++i) { value = gst_value_list_get_value (programs, i); program_info = g_value_get_boxed (value); @@ -651,7 +804,7 @@ mpegts_base_apply_pat (MpegTSBase * base, GstStructure * pat_info) QUARK_PID, G_TYPE_UINT, &pid, NULL); program = mpegts_base_get_program (base, program_number); - if (program == NULL) { + if (G_UNLIKELY (program == NULL)) { GST_DEBUG_OBJECT (base, "broken PAT, duplicated entry for program %d", program_number); continue; @@ -664,93 +817,84 @@ mpegts_base_apply_pat (MpegTSBase * base, GstStructure * pat_info) GST_INFO_OBJECT (base, "PAT removing program %" GST_PTR_FORMAT, program_info); - if (klass->program_stopped) { - klass->program_stopped (base, program); - } - mpegts_base_deactivate_pmt (base, program); + mpegts_base_deactivate_program (base, program); mpegts_base_remove_program (base, program_number); /* FIXME: when this happens it may still be pmt pid of another * program, so setting to False may make it go through expensive * path in is_psi unnecessarily */ - base->known_psi[pid] = TRUE; + MPEGTS_BIT_SET (base->known_psi, pid); mpegts_packetizer_remove_stream (base->packetizer, pid); } gst_structure_free (old_pat); } -#if 0 - mpegts_base_sync_program_pads (base); -#endif } static void mpegts_base_apply_pmt (MpegTSBase * base, guint16 pmt_pid, GstStructure * pmt_info) { - MpegTSBaseProgram *program; + MpegTSBaseProgram *program, *old_program; guint program_number; - guint pcr_pid; - guint pid; - guint stream_type; - GstStructure *stream; - gint i; - const GValue *new_streams; - const GValue *value; - MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + gboolean deactivate_old_program = FALSE; - if (G_UNLIKELY (base->first_pat_offset == -1)) { + /* FIXME : not so sure this is valid anymore */ + if (G_UNLIKELY (base->seen_pat == FALSE)) { GST_WARNING ("Got pmt without pat first. Returning"); /* remove the stream since we won't get another PMT otherwise */ mpegts_packetizer_remove_stream (base->packetizer, pmt_pid); return; } - gst_structure_id_get (pmt_info, - QUARK_PROGRAM_NUMBER, G_TYPE_UINT, &program_number, - QUARK_PCR_PID, G_TYPE_UINT, &pcr_pid, NULL); - new_streams = gst_structure_id_get_value (pmt_info, QUARK_STREAMS); + gst_structure_id_get (pmt_info, QUARK_PROGRAM_NUMBER, G_TYPE_UINT, + &program_number, NULL); - program = mpegts_base_get_program (base, program_number); - if (program) { - /* deactivate old pmt */ ; - mpegts_base_deactivate_pmt (base, program); - if (program->pmt_info) - gst_structure_free (program->pmt_info); - program->pmt_info = NULL; - } else { - /* no PAT?? */ - base->known_psi[pmt_pid] = TRUE; - program = mpegts_base_add_program (base, program_number, pid); - } - - /* activate new pmt */ - program->pmt_info = gst_structure_copy (pmt_info); - program->pmt_pid = pmt_pid; - program->pcr_pid = pcr_pid; - mpegts_base_program_add_stream (base, program, (guint16) pcr_pid, -1, NULL); - base->is_pes[pcr_pid] = TRUE; + GST_DEBUG ("Applying PMT (program_number:%d, pid:0x%04x)", + program_number, pmt_pid); - for (i = 0; i < gst_value_list_get_size (new_streams); ++i) { - value = gst_value_list_get_value (new_streams, i); - stream = g_value_get_boxed (value); + /* In order for stream switching to happen properly in decodebin(2), + * we need to first add the new pads (i.e. activate the new program) + * before removing the old ones (i.e. deactivating the old program) + */ - gst_structure_id_get (stream, QUARK_PID, G_TYPE_UINT, &pid, - QUARK_STREAM_TYPE, G_TYPE_UINT, &stream_type, NULL); - base->is_pes[pid] = TRUE; - mpegts_base_program_add_stream (base, program, - (guint16) pid, (guint8) stream_type, stream); + old_program = mpegts_base_get_program (base, program_number); + if (G_UNLIKELY (old_program == NULL)) + goto no_program; + + /* If the current program is active, this means we have a new program */ + if (old_program->active) { + old_program = mpegts_base_steal_program (base, program_number); + program = mpegts_base_new_program (base, program_number, pmt_pid); + g_hash_table_insert (base->programs, + GINT_TO_POINTER (program_number), program); + deactivate_old_program = TRUE; + } else + program = old_program; - } + /* First activate program */ + mpegts_base_activate_program (base, program, pmt_pid, pmt_info); - if (klass->program_started != NULL) { - klass->program_started (base, program); + if (deactivate_old_program) { + /* deactivate old pmt */ ; + mpegts_base_deactivate_program (base, old_program); + mpegts_base_free_program (old_program); } - GST_DEBUG_OBJECT (base, "new pmt %" GST_PTR_FORMAT, pmt_info); + /* if (program->pmt_info) */ + /* gst_structure_free (program->pmt_info); */ + /* program->pmt_info = NULL; */ gst_element_post_message (GST_ELEMENT_CAST (base), gst_message_new_element (GST_OBJECT (base), gst_structure_copy (pmt_info))); + + return; + +no_program: + { + GST_ERROR ("Attempted to apply a PMT on a program that wasn't created"); + return; + } } static void @@ -825,8 +969,8 @@ mpegts_base_handle_psi (MpegTSBase * base, MpegTSPacketizerSection * section) structure = mpegts_packetizer_parse_pat (base->packetizer, section); if (G_LIKELY (structure)) { mpegts_base_apply_pat (base, structure); - if (base->first_pat_offset == -1) { - + if (base->seen_pat == FALSE) { + base->seen_pat = TRUE; base->first_pat_offset = GST_BUFFER_OFFSET (section->buffer); GST_DEBUG ("First PAT offset: %" G_GUINT64_FORMAT, base->first_pat_offset); @@ -944,6 +1088,8 @@ mpegts_base_get_tags_from_sdt (MpegTSBase * base, GstStructure * sdt_info) * which looks like service-%d */ sid_str = gst_structure_get_name (service); tmp = g_strstr_len (sid_str, -1, "-"); + if (!tmp) + continue; program_number = atoi (++tmp); program = mpegts_base_get_program (base, program_number); @@ -996,11 +1142,40 @@ mpegts_base_get_tags_from_eit (MpegTSBase * base, GstStructure * eit_info) } } +static void +remove_each_program (gpointer key, MpegTSBaseProgram * program, + MpegTSBase * base) +{ + /* First deactivate it */ + mpegts_base_deactivate_program (base, program); + /* Then remove it */ + mpegts_base_remove_program (base, program->program_number); +} + +static gboolean +gst_mpegts_base_handle_eos (MpegTSBase * base) +{ + g_hash_table_foreach (base->programs, (GHFunc) remove_each_program, base); + /* finally remove */ + return TRUE; +} + +static inline void +mpegts_base_flush (MpegTSBase * base) +{ + MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + + /* Call implementation */ + if (G_UNLIKELY (klass->flush == NULL)) + GST_WARNING_OBJECT (base, "Class doesn't have a 'flush' implementation !"); + else + klass->flush (base); +} static gboolean mpegts_base_sink_event (GstPad * pad, GstEvent * event) { - gboolean res; + gboolean res = TRUE; MpegTSBase *base = GST_MPEGTS_BASE (gst_object_get_parent (GST_OBJECT (pad))); GST_WARNING_OBJECT (base, "Got event %s", @@ -1008,12 +1183,40 @@ mpegts_base_sink_event (GstPad * pad, GstEvent * event) switch (GST_EVENT_TYPE (event)) { case GST_EVENT_NEWSEGMENT: - /* FIXME : STORE NEW SEGMENT ! */ + { + gboolean update; + gdouble rate, 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_OBJECT (base, + "Segment update:%d, rate:%f, applied_rate:%f, format:%s", update, + rate, applied_rate, gst_format_get_name (format)); + GST_DEBUG_OBJECT (base, + " start:%" G_GINT64_FORMAT ", stop:%" G_GINT64_FORMAT + ", position:%" G_GINT64_FORMAT, start, stop, position); + gst_segment_set_newsegment_full (&base->segment, update, rate, + applied_rate, format, start, stop, position); + gst_event_unref (event); + base->in_gap = GST_CLOCK_TIME_NONE; + base->first_buf_ts = GST_CLOCK_TIME_NONE; + } + break; + case GST_EVENT_EOS: + res = gst_mpegts_base_handle_eos (base); + break; + case GST_EVENT_FLUSH_START: + mpegts_packetizer_flush (base->packetizer); + mpegts_base_flush (base); + res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event); gst_event_unref (event); - res = FALSE; break; case GST_EVENT_FLUSH_STOP: - mpegts_packetizer_clear (base->packetizer); + gst_segment_init (&base->segment, GST_FORMAT_UNDEFINED); + base->seen_pat = FALSE; + base->first_pat_offset = -1; /* Passthrough */ default: res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event); @@ -1052,6 +1255,13 @@ mpegts_base_chain (GstPad * pad, GstBuffer * buf) base = GST_MPEGTS_BASE (gst_object_get_parent (GST_OBJECT (pad))); packetizer = base->packetizer; + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (base->first_buf_ts)) && + GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + base->first_buf_ts = GST_BUFFER_TIMESTAMP (buf); + GST_DEBUG_OBJECT (base, "first buffer timestamp %" GST_TIME_FORMAT, + GST_TIME_ARGS (base->first_buf_ts)); + } + mpegts_packetizer_push (base->packetizer, buf); while (((pret = mpegts_packetizer_next_packet (base->packetizer, @@ -1080,7 +1290,7 @@ mpegts_base_chain (GstPad * pad, GstBuffer * buf) /* we need to push section packet downstream */ res = mpegts_base_push (base, &packet, §ion); - } else if (base->is_pes[packet.pid]) { + } else if (MPEGTS_BIT_IS_SET (base->is_pes, packet.pid)) { /* push the packet downstream */ res = mpegts_base_push (base, &packet, NULL); } else @@ -1180,6 +1390,9 @@ mpegts_base_loop (MpegTSBase * base) goto error; } break; + case BASE_MODE_PUSHING: + GST_WARNING ("wrong BASE_MODE_PUSHING mode in pull loop"); + break; } return; @@ -1200,6 +1413,111 @@ error: } } + +gboolean +mpegts_base_handle_seek_event (MpegTSBase * base, GstPad * pad, + GstEvent * event) +{ + MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base); + GstFlowReturn ret = GST_FLOW_ERROR; + gdouble rate; + gboolean flush; + GstFormat format; + GstSeekFlags flags; + GstSeekType start_type, stop_type; + gint64 start, stop; + gchar *pad_name; + guint16 pid = 0; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + if (format != GST_FORMAT_TIME) + return FALSE; + + /* First try if upstream supports seeking in TIME format */ + if (gst_pad_push_event (base->sinkpad, gst_event_ref (event))) { + GST_DEBUG ("upstream handled SEEK event"); + gst_event_unref (event); + return TRUE; + } + + GST_DEBUG ("seek event, rate: %f start: %" GST_TIME_FORMAT + " stop: %" GST_TIME_FORMAT, rate, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop)); + + /* extract the pid from the pad name */ + pad_name = gst_pad_get_name (pad); + if (pad_name) { + gchar *pidstr = g_strrstr (pad_name, "_"); + if (pidstr) { + pidstr++; + pid = g_ascii_strtoull (pidstr, NULL, 16); + } + g_free (pad_name); + } + + flush = flags & GST_SEEK_FLAG_FLUSH; + + if (base->mode == BASE_MODE_PUSHING) { + GST_ERROR ("seeking in push mode not supported"); + goto push_mode; + } + + /* stop streaming, either by flushing or by pausing the task */ + base->mode = BASE_MODE_SEEKING; + if (flush) { + GST_DEBUG_OBJECT (base, "sending flush start"); + gst_pad_push_event (base->sinkpad, gst_event_new_flush_start ()); + GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, + gst_event_new_flush_start ()); + } else + gst_pad_pause_task (base->sinkpad); + /* wait for streaming to finish */ + GST_PAD_STREAM_LOCK (base->sinkpad); + + if (flush) { + /* send a FLUSH_STOP for the sinkpad, since we need data for seeking */ + GST_DEBUG_OBJECT (base, "sending flush stop"); + gst_pad_push_event (base->sinkpad, gst_event_new_flush_stop ()); + } + + if (flags & (GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_SKIP)) { + GST_WARNING ("seek flags 0x%x are not supported", (int) flags); + goto done; + } + + + if (format == GST_FORMAT_TIME) { + /* If the subclass can seek, do that */ + if (klass->seek) { + ret = klass->seek (base, event, pid); + if (G_UNLIKELY (ret != GST_FLOW_OK)) { + GST_WARNING ("seeking failed %s", gst_flow_get_name (ret)); + goto done; + } + } else { + GST_WARNING ("subclass has no seek implementation"); + goto done; + } + } + + if (flush) { + /* if we sent a FLUSH_START, we now send a FLUSH_STOP */ + GST_DEBUG_OBJECT (base, "sending flush stop"); + //gst_pad_push_event (base->sinkpad, gst_event_new_flush_stop ()); + GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, + gst_event_new_flush_stop ()); + } + //else +done: + gst_pad_start_task (base->sinkpad, (GstTaskFunction) mpegts_base_loop, base); +push_mode: + GST_PAD_STREAM_UNLOCK (base->sinkpad); + return ret == GST_FLOW_OK; +} + + static gboolean mpegts_base_sink_activate (GstPad * pad) { @@ -1226,6 +1544,8 @@ mpegts_base_sink_activate_pull (GstPad * pad, gboolean active) static gboolean mpegts_base_sink_activate_push (GstPad * pad, gboolean active) { + MpegTSBase *base = GST_MPEGTS_BASE (GST_OBJECT_PARENT (pad)); + base->mode = BASE_MODE_PUSHING; return TRUE; } @@ -1242,6 +1562,8 @@ mpegts_base_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: mpegts_base_reset (base); + if (base->mode != BASE_MODE_PUSHING) + base->mode = BASE_MODE_SCANNING; break; default: break; diff --git a/gst/mpegtsdemux/mpegtsbase.h b/gst/mpegtsdemux/mpegtsbase.h index 168f2ff..872e77e 100644 --- a/gst/mpegtsdemux/mpegtsbase.h +++ b/gst/mpegtsdemux/mpegtsbase.h @@ -2,6 +2,9 @@ * mpegtsbase.h - GStreamer MPEG transport stream base class * Copyright (C) 2009 Edward Hervey * 2007 Alessandro Decina + * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. + * Author: Youness Alaoui , Collabora Ltd. + * Author: Sebastian Dröge , Collabora Ltd. * * Authors: * Alessandro Decina @@ -64,17 +67,25 @@ struct _MpegTSBaseProgram guint16 pcr_pid; GstStructure *pmt_info; MpegTSBaseStream **streams; + GList *stream_list; gint patcount; /* Pending Tags for the program */ GstTagList *tags; guint event_id; + + /* TRUE if the program is currently being used */ + gboolean active; }; typedef enum { - BASE_MODE_SCANNING, - BASE_MODE_SEEKING, - BASE_MODE_STREAMING + /* PULL MODE */ + BASE_MODE_SCANNING, /* Looking for PAT/PMT */ + BASE_MODE_SEEKING, /* Seeking */ + BASE_MODE_STREAMING, /* Normal mode (pushing out data) */ + + /* PUSH MODE */ + BASE_MODE_PUSHING } MpegTSBaseMode; struct _MpegTSBase { @@ -101,10 +112,10 @@ struct _MpegTSBase { GstStructure *pat; MpegTSPacketizer2 *packetizer; - /* arrays that say whether a pid is a known psi pid or a pes pid - * FIXME: Make these bit arrays so we can make them 8 times smaller */ - gboolean *known_psi; - gboolean *is_pes; + /* arrays that say whether a pid is a known psi pid or a pes pid */ + /* Use MPEGTS_BIT_* to set/unset/check the values */ + guint8 *known_psi; + guint8 *is_pes; gboolean disposed; @@ -116,16 +127,28 @@ struct _MpegTSBase { * by subclasses if they have their own MpegTSBaseStream subclasses */ gsize stream_size; - /*Offset from the origin to the first PAT (pullmode) */ + /* Whether we saw a PAT yet */ + gboolean seen_pat; + + /* Offset from the origin to the first PAT (pullmode) */ guint64 first_pat_offset; + + /* interpolation gap between the upstream timestamp and the pts */ + GstClockTime in_gap; + GstClockTime first_buf_ts; + + /* Upstream segment */ + GstSegment segment; }; struct _MpegTSBaseClass { GstElementClass parent_class; /* Virtual methods */ + void (*reset) (MpegTSBase *base); GstFlowReturn (*push) (MpegTSBase *base, MpegTSPacketizerPacket *packet, MpegTSPacketizerSection * section); gboolean (*push_event) (MpegTSBase *base, GstEvent * event); + /* program_started gets called when program's pmt arrives for first time */ void (*program_started) (MpegTSBase *base, MpegTSBaseProgram *program); /* program_stopped gets called when pat no longer has program's pmt */ @@ -137,7 +160,13 @@ struct _MpegTSBaseClass { void (*stream_removed) (MpegTSBase *base, MpegTSBaseStream *stream); /* find_timestamps is called to find PCR */ - GstFlowReturn (*find_timestamps) (MpegTSBase * base, guint64 initoff, guint64 *offset); + GstFlowReturn (*find_timestamps) (MpegTSBase * base, guint64 initoff, guint64 *offset); + + /* seek is called to wait for seeking */ + GstFlowReturn (*seek) (MpegTSBase * base, GstEvent * event, guint16 pid); + + /* flush all streams */ + void (*flush) (MpegTSBase * base); /* signals */ void (*pat_info) (GstStructure *pat); @@ -147,6 +176,10 @@ struct _MpegTSBaseClass { void (*eit_info) (GstStructure *eit); }; +#define MPEGTS_BIT_SET(field, offs) ((field)[(offs) / 8] |= (1 << ((offs) % 8))) +#define MPEGTS_BIT_UNSET(field, offs) ((field)[(offs) / 8] &= ~(1 << ((offs) % 8))) +#define MPEGTS_BIT_IS_SET(field, offs) ((field)[(offs) / 8] & (1 << ((offs) % 8))) + GType mpegts_base_get_type(void); MpegTSBaseProgram *mpegts_base_get_program (MpegTSBase * base, gint program_number); @@ -155,6 +188,8 @@ MpegTSBaseProgram *mpegts_base_add_program (MpegTSBase * base, gint program_numb guint8 *mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag); guint8 *mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag); +gboolean +mpegts_base_handle_seek_event(MpegTSBase * base, GstPad * pad, GstEvent * event); gboolean gst_mpegtsbase_plugin_init (GstPlugin * plugin); diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c index 6b51c19..25d75cf 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.c +++ b/gst/mpegtsdemux/mpegtspacketizer.c @@ -199,6 +199,21 @@ mpegts_packetizer_finalize (GObject * object) G_OBJECT_CLASS (mpegts_packetizer_parent_class)->finalize (object); } +guint64 +mpegts_packetizer_compute_pcr (const guint8 * data) +{ + guint32 pcr1; + guint16 pcr2; + guint64 pcr, pcr_ext; + + pcr1 = GST_READ_UINT32_BE (data); + pcr2 = GST_READ_UINT16_BE (data + 4); + pcr = ((guint64) pcr1) << 1; + pcr |= (pcr2 & 0x8000) >> 15; + pcr_ext = (pcr2 & 0x01ff); + return pcr * 300 + pcr_ext % 300; +} + static gboolean mpegts_packetizer_parse_adaptation_field_control (MpegTSPacketizer2 * packetizer, MpegTSPacketizerPacket * packet) @@ -208,6 +223,13 @@ mpegts_packetizer_parse_adaptation_field_control (MpegTSPacketizer2 * length = *packet->data++; + /* an adaptation field with length 0 is valid and + * can be used to insert a single stuffing byte */ + if (!length) { + packet->afc_flags = 0; + return TRUE; + } + if (packet->adaptation_field_control == 0x02) { /* no payload, adaptation field of 183 bytes */ if (length != 183) { @@ -233,31 +255,13 @@ mpegts_packetizer_parse_adaptation_field_control (MpegTSPacketizer2 * /* PCR */ if (afcflags & MPEGTS_AFC_PCR_FLAG) { - guint32 pcr1; - guint16 pcr2; - guint64 pcr, pcr_ext; - - pcr1 = GST_READ_UINT32_BE (data); - pcr2 = GST_READ_UINT16_BE (data + 4); - pcr = ((guint64) pcr1) << 1; - pcr |= (pcr2 & 0x8000) >> 15; - pcr_ext = (pcr2 & 0x01ff); - packet->pcr = pcr * 300 + pcr_ext % 300;; + packet->pcr = mpegts_packetizer_compute_pcr (data); *data += 6; } /* OPCR */ if (afcflags & MPEGTS_AFC_OPCR_FLAG) { - guint32 pcr1; - guint16 pcr2; - guint64 pcr, pcr_ext; - - pcr1 = GST_READ_UINT32_BE (data); - pcr2 = GST_READ_UINT16_BE (data + 4); - pcr = ((guint64) pcr1) << 1; - pcr |= (pcr2 & 0x8000) >> 15; - pcr_ext = (pcr2 & 0x01ff); - packet->opcr = pcr * 300 + pcr_ext % 300;; + packet->opcr = mpegts_packetizer_compute_pcr (data); *data += 6; } @@ -372,7 +376,7 @@ static gboolean mpegts_packetizer_parse_descriptors (MpegTSPacketizer2 * packetizer, guint8 ** buffer, guint8 * buffer_end, GValueArray * descriptors) { - guint8 tag, length; + guint8 length; guint8 *data; GValue value = { 0 }; GString *desc; @@ -380,7 +384,7 @@ mpegts_packetizer_parse_descriptors (MpegTSPacketizer2 * packetizer, data = *buffer; while (data < buffer_end) { - tag = *data++; + data++; /* skip tag */ length = *data++; if (data + length > buffer_end) { @@ -389,7 +393,7 @@ mpegts_packetizer_parse_descriptors (MpegTSPacketizer2 * packetizer, goto error; } - /* include tag and length */ + /* include length */ desc = g_string_new_len ((gchar *) data - 2, length + 2); data += length; /* G_TYPE_GSTING is a GBoxed type and is used so properly marshalled from python */ @@ -1331,7 +1335,6 @@ mpegts_packetizer_parse_sdt (MpegTSPacketizer2 * packetizer, guint16 transport_stream_id, original_network_id, service_id; guint tmp; guint sdt_info_length; - gboolean EIT_schedule, EIT_present_following; guint8 running_status; gboolean scrambled; guint descriptors_loop_length; @@ -1402,8 +1405,8 @@ mpegts_packetizer_parse_sdt (MpegTSPacketizer2 * packetizer, service_id = GST_READ_UINT16_BE (data); data += 2; - EIT_schedule = ((*data & 0x02) == 2); - EIT_present_following = (*data & 0x01) == 1; + /* EIT_schedule = ((*data & 0x02) == 2); */ + /* EIT_present_following = (*data & 0x01) == 1; */ data += 1; tmp = GST_READ_UINT16_BE (data); @@ -1535,7 +1538,6 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer, guint transport_stream_id, original_network_id; gboolean free_ca_mode; guint event_id, running_status; - guint64 start_and_duration; guint16 mjd; guint year, month, day, hour, minute, second; guint duration; @@ -1612,7 +1614,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer, event_id = GST_READ_UINT16_BE (data); data += 2; - start_and_duration = GST_READ_UINT64_BE (data); + /* start_and_duration = GST_READ_UINT64_BE (data); */ duration_ptr = data + 5; utc_ptr = data + 2; mjd = GST_READ_UINT16_BE (data); @@ -1756,7 +1758,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer, GValue component_value = { 0 }; gint widescreen = 0; /* 0 for 4:3, 1 for 16:9, 2 for > 16:9 */ gint freq = 25; /* 25 or 30 measured in Hertz */ - gboolean highdef = FALSE; + /* gboolean highdef = FALSE; */ gboolean panvectors = FALSE; const gchar *comptype = ""; @@ -1803,46 +1805,46 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer, break; case 0x09: widescreen = 0; - highdef = TRUE; + /* highdef = TRUE; */ freq = 25; break; case 0x0A: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = TRUE; freq = 25; break; case 0x0B: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = FALSE; freq = 25; break; case 0x0C: widescreen = 2; - highdef = TRUE; + /* highdef = TRUE; */ freq = 25; break; case 0x0D: widescreen = 0; - highdef = TRUE; + /* highdef = TRUE; */ freq = 30; break; case 0x0E: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = TRUE; freq = 30; break; case 0x0F: widescreen = 1; - highdef = TRUE; + /* highdef = TRUE; */ panvectors = FALSE; freq = 30; break; case 0x10: widescreen = 2; - highdef = TRUE; + /* highdef = TRUE; */ freq = 30; break; } @@ -2083,6 +2085,24 @@ mpegts_packetizer_clear (MpegTSPacketizer2 * packetizer) } void +mpegts_packetizer_flush (MpegTSPacketizer2 * packetizer) +{ + if (packetizer->streams) { + int i; + for (i = 0; i < 8192; i++) { + if (packetizer->streams[i]) { + gst_adapter_flush (packetizer->streams[i]->section_adapter, + packetizer->streams[i]->section_adapter->size); + } + } + } + gst_adapter_flush (packetizer->adapter, packetizer->adapter->size); + + packetizer->offset = 0; + packetizer->empty = TRUE; +} + +void mpegts_packetizer_remove_stream (MpegTSPacketizer2 * packetizer, gint16 pid) { MpegTSPacketizerStream *stream = packetizer->streams[pid]; @@ -2246,6 +2266,14 @@ mpegts_packetizer_next_packet (MpegTSPacketizer2 * packetizer, gst_buffer_unref (packet->buffer); goto done; } + + if (packetizer->packet_size == MPEGTS_M2TS_PACKETSIZE) { + if (i >= 4) + i -= 4; + else + i += 188; + } + /* Pop out the remaining data... */ GST_BUFFER_DATA (packet->buffer) += i; GST_BUFFER_SIZE (packet->buffer) -= i; @@ -2491,14 +2519,15 @@ get_encoding (const gchar * text, guint * start_text, gboolean * is_multibyte) *start_text = 1; *is_multibyte = TRUE; } else if (firstbyte == 0x12) { - // That's korean encoding. - // The spec says it's encoded in KSC 5601, but iconv only knows KSC 5636. - // Couldn't find any information about either of them. + /* That's korean encoding. + * The spec says it's encoded in KSC 5601, but iconv only knows KSC 5636. + * Couldn't find any information about either of them. + */ encoding = NULL; *start_text = 1; *is_multibyte = TRUE; } else { - // reserved + /* reserved */ encoding = NULL; *start_text = 0; *is_multibyte = FALSE; @@ -2548,7 +2577,7 @@ convert_to_utf8 (const gchar * text, gint length, guint start, /* skip it */ break; case 0xE08A:{ - guint8 nl[] = { 0x0A, 0x00 }; // new line + guint8 nl[] = { 0x0A, 0x00 }; /* new line */ g_byte_array_append (sb, nl, 2); break; } @@ -2569,7 +2598,7 @@ convert_to_utf8 (const gchar * text, gint length, guint start, /* skip it */ break; case 0xE08A:{ - guint8 nl[] = { 0x0A, 0x00 }; // new line + guint8 nl[] = { 0x0A, 0x00 }; /* new line */ g_byte_array_append (sb, nl, 2); break; } diff --git a/gst/mpegtsdemux/mpegtspacketizer.h b/gst/mpegtsdemux/mpegtspacketizer.h index e0be1e0..8328625 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.h +++ b/gst/mpegtsdemux/mpegtspacketizer.h @@ -138,6 +138,7 @@ GType mpegts_packetizer_get_type(void); MpegTSPacketizer2 *mpegts_packetizer_new (void); void mpegts_packetizer_clear (MpegTSPacketizer2 *packetizer); +void mpegts_packetizer_flush (MpegTSPacketizer2 *packetizer); void mpegts_packetizer_push (MpegTSPacketizer2 *packetizer, GstBuffer *buffer); gboolean mpegts_packetizer_has_packets (MpegTSPacketizer2 *packetizer); MpegTSPacketizerPacketReturn mpegts_packetizer_next_packet (MpegTSPacketizer2 *packetizer, @@ -161,6 +162,7 @@ GstStructure *mpegts_packetizer_parse_eit (MpegTSPacketizer2 *packetizer, MpegTSPacketizerSection *section); GstStructure *mpegts_packetizer_parse_tdt (MpegTSPacketizer2 *packetizer, MpegTSPacketizerSection *section); +guint64 mpegts_packetizer_compute_pcr(const guint8 * data); G_END_DECLS diff --git a/gst/mpegtsdemux/mpegtsparse.c b/gst/mpegtsdemux/mpegtsparse.c index ede74ae..26dde89 100644 --- a/gst/mpegtsdemux/mpegtsparse.c +++ b/gst/mpegtsdemux/mpegtsparse.c @@ -125,10 +125,9 @@ mpegts_parse_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 (&program_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &program_template); gst_element_class_set_details_simple (element_class, "MPEG transport stream parser", "Codec/Parser", diff --git a/gst/mpegtsdemux/payload_parsers.c b/gst/mpegtsdemux/payload_parsers.c new file mode 100644 index 0000000..ca2c75e --- /dev/null +++ b/gst/mpegtsdemux/payload_parsers.c @@ -0,0 +1,313 @@ +/* + * payload_parsers.c + * Copyright (C) 2011 Janne Grunau + * + * Authors: + * Janne Grunau + * + * 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. + */ + +#include "payload_parsers.h" +#include + +#define PICTURE_START_CODE 0x00000100 +#define GROUP_START_CODE 0x000001B8 + +#define SLICE_NAL_UNIT_TYPE 0x01 +#define SLICE_IDR_NAL_UNIT_TYPE 0x05 +#define SEI_NAL_UNIT_TYPE 0x06 + +#define SEI_TYPE_RECOVERY_POINT 0x06 + +typedef struct Mpeg2PictureHeader +{ + guint16 temporal_reference; + guint8 picture_coding_type; + guint16 vbv_delay; + + /* picture_coding_type == 2 || picture_coding_type */ + guint8 full_pel_forward_vector; + guint8 forward_f_code; + + /* picture_coding_type == 3 */ + guint8 full_pel_backward_vector; + guint8 backward_f_code; +} Mpeg2PictureHeader; + +/* shortened slice header */ +typedef struct H264SliceHeader +{ + guint32 first_mb_in_slice; + guint8 slice_type; +} H264SliceHeader; + + +static guint8 * +find_start_code (guint32 * start_code, guint8 * buffer, guint8 * buffer_end) +{ + if (G_UNLIKELY (buffer == NULL) || G_UNLIKELY (buffer_end == NULL) + || G_UNLIKELY (start_code == NULL)) + return NULL; + + while (buffer <= buffer_end) { + + *start_code <<= 8; + *start_code |= *buffer++; + + if ((*start_code & 0xffffff00) == 0x00000100) + return buffer; + } + + return NULL; +} + +static gboolean +parse_mpeg2_picture_header (Mpeg2PictureHeader * hdr, guint8 * buffer, + guint8 * buffer_end) +{ + GstBitReader br = GST_BIT_READER_INIT (buffer, buffer_end - buffer); + + if (gst_bit_reader_get_remaining (&br) < 40) + return FALSE; + + hdr->temporal_reference = gst_bit_reader_get_bits_uint16_unchecked (&br, 10); + hdr->picture_coding_type = gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + hdr->vbv_delay = gst_bit_reader_get_bits_uint16_unchecked (&br, 16); + + if (hdr->picture_coding_type == 2 || hdr->picture_coding_type == 3) { + hdr->full_pel_forward_vector = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + hdr->forward_f_code = gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + } + if (hdr->picture_coding_type == 3) { + hdr->full_pel_backward_vector = + gst_bit_reader_get_bits_uint8_unchecked (&br, 1); + hdr->backward_f_code = gst_bit_reader_get_bits_uint8_unchecked (&br, 3); + } + return TRUE; +} + +gboolean +gst_tsdemux_has_mpeg2_keyframe (guint32 * state, + MpegTSPacketizerPacket * packet, gboolean * need_more) +{ + guint8 *data = packet->payload; + guint8 *data_end = packet->data_end; + + GST_LOG ("state: 0x%08x", *state); + + while (data <= data_end) { + + data = find_start_code (state, data, data_end); + + if (!data) + return FALSE; + + GST_LOG ("found start code: 0x%08x", *state); + + if (*state == GROUP_START_CODE) { + GST_DEBUG ("found group start code"); + *state = 0xffffffff; + *need_more = FALSE; + return TRUE; + } else if (*state == PICTURE_START_CODE) { + Mpeg2PictureHeader hdr = { 0 }; + gboolean success; + + success = parse_mpeg2_picture_header (&hdr, data, data_end); + GST_DEBUG ("found picture start code, %sparsed, picture coding type: %d", + success ? "" : "not ", hdr.picture_coding_type); + + *state = 0xffffffff; + *need_more = FALSE; + return success && hdr.picture_coding_type == 1; + } + } + + return FALSE; +} + +/* variable length Exp-Golomb parsing according to H.264 spec 9.1*/ +static gboolean +read_golomb (GstBitReader * br, guint32 * value) +{ + guint8 b, leading_zeros = -1; + *value = 1; + + for (b = 0; !b; leading_zeros++) { + if (!gst_bit_reader_get_bits_uint8 (br, &b, 1)) + return FALSE; + *value *= 2; + } + + *value = (*value >> 1) - 1; + if (leading_zeros > 0) { + guint32 tmp = 0; + if (!gst_bit_reader_get_bits_uint32 (br, &tmp, leading_zeros)) + return FALSE; + *value += tmp; + } + + return TRUE; +} + +/* just parse the requirred bits of the slice header */ +static gboolean +parse_h264_slice_header (H264SliceHeader * hdr, guint8 * buffer, + guint8 * buffer_end) +{ + guint32 value; + GstBitReader br = GST_BIT_READER_INIT (buffer, buffer_end - buffer); + + if (!read_golomb (&br, &value)) + return FALSE; + hdr->first_mb_in_slice = value; + + if (!read_golomb (&br, &value)) + return FALSE; + hdr->slice_type = value; + + return TRUE; +} + +enum H264SliceTypes +{ + h264_p_slice = 0, + h264_b_slice, + h264_i_slice, + h264_sp_slice, + h264_si_slice, + h264_p_slice_a, + h264_b_slice_a, + h264_i_slice_a, + h264_sp_slice_a, + h264_si_slice_a, +}; + +static gboolean +is_key_slice (guint8 slice_type) +{ + switch (slice_type) { + case h264_i_slice: + case h264_si_slice: + case h264_i_slice_a: + case h264_si_slice_a: + return TRUE; + } + return FALSE; +} + +gboolean +gst_tsdemux_has_h264_keyframe (guint32 * state, MpegTSPacketizerPacket * packet, + gboolean * need_more) +{ + guint8 *data = packet->payload; + guint8 *data_end = packet->data_end; + + GST_LOG ("state: 0x%08x", *state); + + while (data <= data_end) { + guint8 nal_unit_type; + guint8 *next_data = NULL; + + data = find_start_code (state, data, data_end); + + if (!data) + goto beach; + + GST_LOG ("found start code: 0x%08x", *state); + + /* determine length */ + nal_unit_type = *state & 0x1f; + next_data = find_start_code (state, data, data_end); + + if (nal_unit_type == SEI_NAL_UNIT_TYPE && !next_data) { + GST_WARNING ("NAL unit 0x%02x not completely in ts packet", + nal_unit_type); + goto beach; + } + next_data -= 4; + + switch (nal_unit_type) { + case SLICE_IDR_NAL_UNIT_TYPE: + GST_DEBUG ("found SLICE_IDR NAL unit type"); + *state = 0xffffffff; + *need_more = FALSE; + return TRUE; + case SLICE_NAL_UNIT_TYPE: + { + H264SliceHeader hdr = { 0 }; + gboolean success; + + success = parse_h264_slice_header (&hdr, data, data_end); + GST_DEBUG ("found SLICE NAL unit type with slice type %d", + hdr.slice_type); + + *state = 0xffffffff; + *need_more = FALSE; + return success && is_key_slice (hdr.slice_type); + } + case SEI_NAL_UNIT_TYPE: + { + guint32 recovery_frame_count; + GstBitReader br = GST_BIT_READER_INIT (data, next_data - data); + + break; + + /* SEI message is at least 24 bit long */ + while (gst_bit_reader_get_remaining (&br) >= 24) { + gint type = 0, size = 0; + guint8 tmp = 0; + + do { + if (!gst_bit_reader_get_bits_uint8 (&br, &tmp, 8)) + goto beach; + type += tmp; + } while (tmp == 255); + + do { + if (!gst_bit_reader_get_bits_uint8 (&br, &tmp, 8)) + goto beach; + size += tmp; + } while (tmp == 255); + + + GST_LOG ("found SEI msg type: %d, len: %d", type, size); + + switch (type) { + case SEI_TYPE_RECOVERY_POINT: + if (!read_golomb (&br, &recovery_frame_count)) + return FALSE; + gst_bit_reader_skip (&br, 1); /* exact_match */ + gst_bit_reader_skip (&br, 1); /* broken_link_flag */ + gst_bit_reader_skip (&br, 2); /* changing_slice_group_idc */ + GST_DEBUG ("found SEI with recovery point message, " + "recovery_frame_count: %d", recovery_frame_count); + return TRUE; + default: + /* skip all other sei messages */ + gst_bit_reader_skip (&br, size * 8); + } + } + } + data = next_data; + *state = 0xffffffff; + } + } +beach: + return FALSE; +} diff --git a/gst/mpegtsdemux/payload_parsers.h b/gst/mpegtsdemux/payload_parsers.h new file mode 100644 index 0000000..7f7a480 --- /dev/null +++ b/gst/mpegtsdemux/payload_parsers.h @@ -0,0 +1,36 @@ +/* + * payload_parsers.h + * Copyright (C) 2011 Janne Grunau + * + * Authors: + * Janne Grunau + * + * 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. + */ + +#include "mpegtspacketizer.h" + +typedef gboolean (*payload_parse_keyframe) (guint32 *state, + MpegTSPacketizerPacket * packet, + gboolean *need_more); + +gboolean gst_tsdemux_has_mpeg2_keyframe (guint32 *state, + MpegTSPacketizerPacket * packet, + gboolean *need_more); + +gboolean gst_tsdemux_has_h264_keyframe (guint32 *state, + MpegTSPacketizerPacket * packet, + gboolean *need_more); diff --git a/gst/mpegtsdemux/pesparse.c b/gst/mpegtsdemux/pesparse.c new file mode 100644 index 0000000..e510068 --- /dev/null +++ b/gst/mpegtsdemux/pesparse.c @@ -0,0 +1,428 @@ +/* + * pesparse.c : MPEG PES parsing utility + * Copyright (C) 2011 Edward Hervey + * + * 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 "pesparse.h" + +GST_DEBUG_CATEGORY_STATIC (pes_parser_debug); +#define GST_CAT_DEFAULT pes_parser_debug + +/** + * mpegts_parse_pes_header: + * @data: data to parse (starting from, and including, the sync code) + * @length: size of @data in bytes + * @res: PESHeader to fill (only valid with #PES_PARSING_OK. + * @offset: Offset in @data to the data to parse. If #PES_PARSING_OK, offset to + * first byte of data after the header. + * + * Parses the mpeg-ts PES header located in @data into the @res. + * + * Returns: #PES_PARSING_OK if the header was fully parsed and valid, + * #PES_PARSING_BAD if the header is invalid, or #PES_PARSING_NEED_MORE if more data + * is needed to properly parse the header. + */ +PESParsingResult +mpegts_parse_pes_header (const guint8 * data, gsize length, PESHeader * res, + gint * offset) +{ + PESParsingResult ret = PES_PARSING_NEED_MORE; + gsize origlength = length; + const guint8 *origdata = data; + guint32 val32; + guint8 val8, flags; + + g_return_val_if_fail (res != NULL, PES_PARSING_BAD); + g_return_val_if_fail (offset != NULL, PES_PARSING_BAD); + g_return_val_if_fail (*offset < length, PES_PARSING_BAD); + + data += *offset; + length -= *offset; + + /* The smallest valid PES header is 6 bytes (prefix + stream_id + length) */ + if (G_UNLIKELY (length < 6)) + goto need_more_data; + + val32 = GST_READ_UINT32_BE (data); + data += 4; + length -= 4; + if (G_UNLIKELY ((val32 & 0xffffff00) != 0x00000100)) + goto bad_start_code; + + /* Clear the header */ + memset (res, 0, sizeof (PESHeader)); + res->PTS = -1; + res->DTS = -1; + res->ESCR = -1; + + res->stream_id = val32 & 0x000000ff; + + res->packet_length = GST_READ_UINT16_BE (data); + if (res->packet_length) + res->packet_length += 6; + data += 2; + length -= 2; + + GST_LOG ("stream_id : 0x%08x , packet_length : %d", res->stream_id, + res->packet_length); + + /* Jump if we don't need to parse anything more */ + if (G_UNLIKELY (res->stream_id == 0xbc || res->stream_id == 0xbe + || res->stream_id == 0xbf || (res->stream_id >= 0xf0 + && res->stream_id <= 0xf2) || res->stream_id == 0xff + || res->stream_id == 0xf8)) + goto done_parsing; + + if (G_UNLIKELY (length < 3)) + goto need_more_data; + + /* '10' 2 + * PES_scrambling_control 2 + * PES_priority 1 + * data_alignment_indicator 1 + * copyright 1 + * original_or_copy 1 */ + val8 = *data++; + if (G_UNLIKELY ((val8 & 0xc0) != 0x80)) + goto bad_marker_1; + res->scrambling_control = (val8 >> 4) & 0x3; + res->flags = val8 & 0xf; + + GST_LOG ("scrambling_control 0x%0x", res->scrambling_control); + + /* PTS_DTS_flags 2 + * ESCR_flag 1 + * ES_rate_flag 1 + * DSM_trick_mode_flag 1 + * additional_copy_info_flag 1 + * PES_CRC_flag 1 + * PES_extension_flag 1*/ + flags = *data++; + GST_DEBUG ("PES_flag 0x%02x", flags); + + /* PES_header_data_length 8 */ + res->header_size = *data++; + length -= 3; + if (G_UNLIKELY (length < res->header_size)) + goto need_more_data; + + res->header_size += 9; /* We add 9 since that's the offset + * of the field in the header*/ + GST_DEBUG ("header_size : %d", res->header_size); + + /* PTS/DTS */ + + /* PTS_DTS_flags == 0x01 is invalid */ + if (G_UNLIKELY ((flags >> 6) == 0x01)) + goto bad_PTS_DTS_flags; + + if ((flags & 0x80) == 0x80) { + /* PTS */ + if (G_UNLIKELY (length < 5)) + goto need_more_data; + + READ_TS (data, res->PTS, bad_PTS_value); + length -= 5; + GST_LOG ("PTS %" G_GUINT64_FORMAT " %" GST_TIME_FORMAT, + res->PTS, GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (res->PTS))); + + if ((flags & 0x40) == 0x40) { + /* DTS */ + if (G_UNLIKELY (length < 5)) + goto need_more_data; + + READ_TS (data, res->DTS, bad_DTS_value); + length -= 5; + + GST_LOG ("DTS %" G_GUINT64_FORMAT " %" GST_TIME_FORMAT, + res->DTS, GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (res->DTS))); + } + } + + if (flags & 0x20) { + /* ESCR */ + if (G_UNLIKELY (length < 5)) + goto need_more_data; + READ_TS (data, res->ESCR, bad_ESCR_value); + length -= 5; + + GST_LOG ("ESCR %" G_GUINT64_FORMAT " %" GST_TIME_FORMAT, + res->ESCR, GST_TIME_ARGS (PCRTIME_TO_GSTTIME (res->ESCR))); + } + + if (flags & 0x10) { + /* ES_rate */ + if (G_UNLIKELY (length < 3)) + goto need_more_data; + val32 = GST_READ_UINT32_BE (data); + data += 3; + length -= 3; + if (G_UNLIKELY ((val32 & 0x80000100) != 0x80000100)) + goto bad_ES_rate; + res->ES_rate = ((val32 >> 9) & 0x003fffff) * 50; + GST_LOG ("ES_rate : %d", res->ES_rate); + } + + if (flags & 0x08) { + /* DSM trick mode */ + if (G_UNLIKELY (length < 1)) + goto need_more_data; + val8 = *data++; + length -= 1; + + res->trick_mode = val8 >> 5; + GST_LOG ("trick_mode 0x%x", res->trick_mode); + + switch (res->trick_mode) { + case PES_TRICK_MODE_FAST_FORWARD: + case PES_TRICK_MODE_FAST_REVERSE: + res->intra_slice_refresh = (val8 >> 2) & 0x1; + res->frequency_truncation = val8 & 0x3; + /* passthrough */ + case PES_TRICK_MODE_FREEZE_FRAME: + res->field_id = (val8 >> 3) & 0x3; + break; + case PES_TRICK_MODE_SLOW_MOTION: + case PES_TRICK_MODE_SLOW_REVERSE: + res->rep_cntrl = val8 & 0x1f; + break; + default: + break; + } + } + + if (flags & 0x04) { + /* additional copy info */ + if (G_UNLIKELY (length < 1)) + goto need_more_data; + val8 = *data++; + length -= 1; + + if (G_UNLIKELY (!(val8 & 0x80))) + goto bad_original_copy_info_marker; + res->additional_copy_info = val8 >> 1; + GST_LOG ("additional_copy_info : 0x%x", res->additional_copy_info); + } + + if (flags & 0x02) { + /* CRC */ + if (G_UNLIKELY (length < 2)) + goto need_more_data; + res->previous_PES_packet_CRC = GST_READ_UINT16_BE (data); + GST_LOG ("previous_PES_packet_CRC : 0x%x", res->previous_PES_packet_CRC); + data += 2; + length -= 2; + } + + + /* jump if we don't have a PES extension */ + if (!(flags & 0x01)) + goto stuffing_byte; + + if (G_UNLIKELY (length < 1)) + goto need_more_data; + + /* PES extension */ + flags = *data++; + length -= 1; + GST_DEBUG ("PES_extension_flag 0x%02x", flags); + + if (flags & 0x80) { + /* PES_private data */ + if (G_UNLIKELY (length < 16)) + goto need_more_data; + res->private_data = data; + GST_MEMDUMP ("private_data", data, 16); + data += 16; + length -= 16; + } + + if (flags & 0x40) { + /* pack_header_field */ + if (G_UNLIKELY (length < 1)) + goto need_more_data; + + val8 = *data++; + length -= 1; + if (G_UNLIKELY (length < val8)) + goto need_more_data; + res->pack_header_size = val8; + res->pack_header = data; + + GST_MEMDUMP ("Pack header data", res->pack_header, res->pack_header_size); + + data += val8; + length -= val8; + } + + if (flags & 0x20) { + /* sequence counter */ + if (G_UNLIKELY (length < 2)) + goto need_more_data; + + val8 = *data++; + /* GRMBL, this is most often wrong */ + if (G_UNLIKELY ((val8 & 0x80) != 0x80)) + goto bad_sequence_marker1; + res->program_packet_sequence_counter = val8 * 0x70; + GST_LOG ("program_packet_sequence_counter %d", + res->program_packet_sequence_counter); + + val8 = *data++; + /* GRMBL, this is most often wrong */ + if (G_UNLIKELY ((val8 * 0x80) != 0x80)) + goto bad_sequence_marker2; + res->MPEG1_MPEG2_identifier = (val8 >> 6) & 0x1; + res->original_stuff_length = val8 * 0x3f; + GST_LOG ("MPEG1_MPEG2_identifier : %d , original_stuff_length : %d", + res->MPEG1_MPEG2_identifier, res->original_stuff_length); + length -= 2; + } + + if (flags & 0x10) { + /* P-STD */ + if (G_UNLIKELY (length < 2)) + goto need_more_data; + val8 = *data; + if (G_UNLIKELY ((val8 * 0xc0) != 0x40)) + goto bad_P_STD_marker; + res->P_STD_buffer_size = + (GST_READ_UINT16_BE (data) & 0x1fff) << (val8 & 0x20) ? 10 : 7; + GST_LOG ("P_STD_buffer_size : %d", res->P_STD_buffer_size); + data += 2; + length -= 2; + } + + if (flags & 0x01) { + /* Extension flag 2 */ + if (G_UNLIKELY (length < 1)) + goto need_more_data; + + val8 = *data++; + length -= 1; + + if (!(val8 & 0x80)) + goto bad_extension_marker_2; + + res->extension_field_length = val8 & 0x7f; + if (G_UNLIKELY (length < res->extension_field_length + 1)) + goto need_more_data; + + GST_LOG ("extension_field_length : %" G_GSSIZE_FORMAT, + res->extension_field_length); + + if (res->extension_field_length) { + flags = *data++; + /* Only valid if stream_id_extension_flag == 0x0 */ + if (!(flags & 0x80)) { + res->stream_id_extension = flags & 0x7f; + GST_LOG ("stream_id_extension : 0x%02x", res->stream_id_extension); + res->stream_id_extension_data = data; + GST_MEMDUMP ("stream_id_extension_data", + res->stream_id_extension_data, res->extension_field_length); + } else + GST_WARNING ("What are we meant to do ??"); + data += res->extension_field_length; + } + length -= res->extension_field_length + 1; + } + +stuffing_byte: + /* Go to the expected data start position */ + data = origdata + res->header_size; + length = origlength - res->header_size; + +done_parsing: + GST_DEBUG ("origlength:%" G_GSSIZE_FORMAT ", length:%" G_GSSIZE_FORMAT, + origlength, length); + + res->header_size = origlength - length; + *offset += res->header_size; + ret = PES_PARSING_OK; + + return ret; + + /* Errors */ +need_more_data: + GST_DEBUG ("Not enough data to parse PES header"); + return ret; + +bad_start_code: + GST_WARNING ("Wrong packet start code 0x%x != 0x000001xx", val32); + return PES_PARSING_BAD; + +bad_marker_1: + GST_WARNING ("Wrong '0x10' marker before PES_scrambling_control (0x%02x)", + val8); + return PES_PARSING_BAD; + +bad_PTS_DTS_flags: + GST_WARNING ("Invalid '0x01' PTS_DTS_flags"); + return PES_PARSING_BAD; + +bad_PTS_value: + GST_WARNING ("bad PTS value"); + return PES_PARSING_BAD; + +bad_DTS_value: + GST_WARNING ("bad DTS value"); + return PES_PARSING_BAD; + +bad_ESCR_value: + GST_WARNING ("bad ESCR value"); + return PES_PARSING_BAD; + +bad_ES_rate: + GST_WARNING ("Invalid ES_rate markers 0x%0x", val32); + return PES_PARSING_BAD; + +bad_original_copy_info_marker: + GST_WARNING ("Invalid original_copy_info marker bit: 0x%0x", val8); + return PES_PARSING_BAD; + +bad_sequence_marker1: + GST_WARNING ("Invalid program_packet_sequence_counter marker 0x%0x", val8); + return PES_PARSING_BAD; + +bad_sequence_marker2: + GST_WARNING ("Invalid program_packet_sequence_counter marker 0x%0x", val8); + return PES_PARSING_BAD; + +bad_P_STD_marker: + GST_WARNING ("Invalid P-STD_buffer marker 0x%0x", val8); + return PES_PARSING_BAD; + +bad_extension_marker_2: + GST_WARNING ("Invalid extension_field_2 marker 0x%0x", val8); + return PES_PARSING_BAD; +} + +void +init_pes_parser (void) +{ + GST_DEBUG_CATEGORY_INIT (pes_parser_debug, "pesparser", 0, "MPEG PES parser"); +} diff --git a/gst/mpegtsdemux/pesparse.h b/gst/mpegtsdemux/pesparse.h new file mode 100644 index 0000000..c5d295e --- /dev/null +++ b/gst/mpegtsdemux/pesparse.h @@ -0,0 +1,112 @@ +/* + * pesparse.h : MPEG PES parsing utility + * Copyright (C) 2011 Edward Hervey + * + * 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 __PES_PARSE_H__ +#define __PES_PARSE_H__ + +#include +#include "gstmpegdefs.h" + +G_BEGIN_DECLS + +typedef enum { + PES_FLAG_PRIORITY = 1 << 3, /* PES_priority (present: high-priority) */ + PES_FLAG_DATA_ALIGNMENT = 1 << 2, /* data_alignment_indicator */ + PES_FLAG_COPYRIGHT = 1 << 1, /* copyright */ + PES_FLAG_ORIGINAL_OR_COPY = 1 << 0 /* original_or_copy */ +} PESHeaderFlags; + +typedef enum { + PES_TRICK_MODE_FAST_FORWARD = 0x000, + PES_TRICK_MODE_SLOW_MOTION = 0x001, + PES_TRICK_MODE_FREEZE_FRAME = 0x010, + PES_TRICK_MODE_FAST_REVERSE = 0x011, + PES_TRICK_MODE_SLOW_REVERSE = 0x100, + /* ... */ + PES_TRICK_MODE_INVALID = 0xfff /* Not present or invalid */ +} PESTrickModeControl; + +typedef enum { + PES_FIELD_ID_TOP_ONLY = 0x00, /* Display from top field only */ + PES_FIELD_ID_BOTTOM_ONLY = 0x01, /* Display from bottom field only */ + PES_FIELD_ID_COMPLETE_FRAME = 0x10, /* Display complete frame */ + PES_FIELD_ID_INVALID = 0x11 /* Reserved/Invalid */ +} PESFieldID; + +typedef enum { + PES_PARSING_OK = 0, /* Header fully parsed and valid */ + PES_PARSING_BAD = 1, /* Header invalid (CRC error for ex) */ + PES_PARSING_NEED_MORE = 2 /* Not enough data to parse header */ +} PESParsingResult; + +typedef struct { + guint8 stream_id; /* See ID_* in gstmpegdefs.h */ + guint16 packet_length; /* The size of the PES header and PES data + * (if 0 => unbounded packet) */ + guint16 header_size; /* The complete size of the PES header */ + + /* All remaining entries in this structure are optional */ + guint8 scrambling_control; /* 0x00 : Not scrambled/unspecified, + * The following are according to ETSI TS 101 154 + * 0x01 : reserved for future DVB use + * 0x10 : PES packet scrambled with Even key + * 0x11 : PES packet scrambled with Odd key + */ + PESHeaderFlags flags; + + guint64 PTS; /* PTS (-1 if not present or invalid) */ + guint64 DTS; /* DTS (-1 if not present or invalid) */ + guint64 ESCR; /* ESCR (-1 if not present or invalid) */ + + guint32 ES_rate; /* in bytes/seconds (0 if not present or invalid) */ + PESTrickModeControl trick_mode; + + /* Only valid for _FAST_FORWARD, _FAST_REVERSE and _FREEZE_FRAME */ + PESFieldID field_id; + /* Only valid for _FAST_FORWARD and _FAST_REVERSE */ + gboolean intra_slice_refresh; + guint8 frequency_truncation; + /* Only valid for _SLOW_FORWARD and _SLOW_REVERSE */ + guint8 rep_cntrl; + + guint8 additional_copy_info; /* Private data */ + guint16 previous_PES_packet_CRC; + + /* Extension fields */ + const guint8* private_data; /* PES_private_data, 16 bytes long */ + guint8 pack_header_size; /* Size of pack_header in bytes */ + const guint8* pack_header; + gint8 program_packet_sequence_counter; /* -1 if not present or invalid */ + gboolean MPEG1_MPEG2_identifier; + guint8 original_stuff_length; + + guint32 P_STD_buffer_size; /* P-STD buffer size in bytes (0 if invalid + * or not present */ + + gsize extension_field_length; + guint8 stream_id_extension; /* Only valid if stream_id == ID_EXTENDED_STREAM_ID */ + const guint8* stream_id_extension_data; +} PESHeader; + +PESParsingResult mpegts_parse_pes_header (const guint8* data, gsize size, + PESHeader *res, gint *offset); +void init_pes_parser (void); +G_END_DECLS +#endif /* __PES_PARSE_H__ */ diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index 8203ef6..166089b 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c @@ -2,6 +2,10 @@ * tsdemux.c * Copyright (C) 2009 Zaheer Abbas Merali * 2010 Edward Hervey + * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. + * Author: Youness Alaoui , Collabora Ltd. + * Author: Sebastian Dröge , Collabora Ltd. + * Author: Edward Hervey , Collabora Ltd. * * Authors: * Zaheer Abbas Merali @@ -30,11 +34,21 @@ #include #include +#include + #include "mpegtsbase.h" #include "tsdemux.h" #include "gstmpegdesc.h" #include "gstmpegdefs.h" #include "mpegtspacketizer.h" +#include "payload_parsers.h" +#include "pesparse.h" + +/* + * tsdemux + * + * See TODO for explanations on improvements needed + */ /* latency in mseconds */ #define TS_LATENCY 700 @@ -44,9 +58,23 @@ /* Size of the pendingbuffers array. */ #define TS_MAX_PENDING_BUFFERS 256 +#define PCR_WRAP_SIZE_128KBPS (((gint64)1490)*(1024*1024)) +/* small PCR for wrap detection */ +#define PCR_SMALL 17775000 +/* maximal PCR time */ +#define PCR_MAX_VALUE (((((guint64)1)<<33) * 300) + 298) +#define PTS_DTS_MAX_VALUE (((guint64)1) << 33) + +/* seek to SEEK_TIMESTAMP_OFFSET before the desired offset and search then + * either accurately or for the next timestamp + */ +#define SEEK_TIMESTAMP_OFFSET (1000 * GST_MSECOND) + GST_DEBUG_CATEGORY_STATIC (ts_demux_debug); #define GST_CAT_DEFAULT ts_demux_debug +#define ABSDIFF(a,b) (((a) > (b)) ? ((a) - (b)) : ((b) - (a))) + static GQuark QUARK_TSDEMUX; static GQuark QUARK_PID; static GQuark QUARK_PCR; @@ -55,8 +83,6 @@ static GQuark QUARK_PTS; static GQuark QUARK_DTS; static GQuark QUARK_OFFSET; - - typedef enum { PENDING_PACKET_EMPTY = 0, /* No pending packet/buffer @@ -77,9 +103,6 @@ struct _TSDemuxStream GstPad *pad; - /* set to FALSE before a push and TRUE after */ - gboolean pushed; - /* the return of the latest push */ GstFlowReturn flow_return; @@ -96,7 +119,15 @@ struct _TSDemuxStream GstBufferListIterator *currentit; GList *currentlist; + /* Current PTS/DTS for this stream */ GstClockTime pts; + GstClockTime dts; + /* Raw value of current PTS/DTS */ + guint64 raw_pts; + guint64 raw_dts; + /* Number of rollover seen for PTS/DTS (default:0) */ + guint nb_pts_rollover; + guint nb_dts_rollover; }; #define VIDEO_CAPS \ @@ -115,7 +146,10 @@ struct _TSDemuxStream #define AUDIO_CAPS \ GST_STATIC_CAPS ( \ "audio/mpeg, " \ - "mpegversion = (int) { 1, 4 };" \ + "mpegversion = (int) 1;" \ + "audio/mpeg, " \ + "mpegversion = (int) 4, " \ + "stream-format = (string) adts; " \ "audio/x-lpcm, " \ "width = (int) { 16, 20, 24 }, " \ "rate = (int) { 48000, 96000 }, " \ @@ -171,26 +205,34 @@ static gboolean gst_ts_demux_srcpad_query (GstPad * pad, GstQuery * query); /* mpegtsbase methods */ static void gst_ts_demux_program_started (MpegTSBase * base, MpegTSBaseProgram * program); -static void -gst_ts_demux_program_stopped (MpegTSBase * base, MpegTSBaseProgram * program); +static void gst_ts_demux_reset (MpegTSBase * base); static GstFlowReturn gst_ts_demux_push (MpegTSBase * base, MpegTSPacketizerPacket * packet, MpegTSPacketizerSection * section); +static void gst_ts_demux_flush (MpegTSBase * base); static void gst_ts_demux_stream_added (MpegTSBase * base, MpegTSBaseStream * stream, MpegTSBaseProgram * program); static void gst_ts_demux_stream_removed (MpegTSBase * base, MpegTSBaseStream * stream); -static GstFlowReturn -find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset); +static GstFlowReturn gst_ts_demux_do_seek (MpegTSBase * base, GstEvent * event, + guint16 pid); +static GstFlowReturn find_pcr_packet (MpegTSBase * base, guint64 offset, + gint64 length, TSPcrOffset * pcroffset); +static GstFlowReturn find_timestamps (MpegTSBase * base, guint64 initoff, + guint64 * offset); static void gst_ts_demux_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_ts_demux_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static void gst_ts_demux_finalize (GObject * object); static GstFlowReturn -process_pcr (MpegTSBase * base, guint64 initoff, GstClockTime * pcr, +process_pcr (MpegTSBase * base, guint64 initoff, TSPcrOffset * pcroffset, guint numpcr, gboolean isinitial); +static void gst_ts_demux_flush_streams (GstTSDemux * tsdemux); +static GstFlowReturn +gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream); + static gboolean push_event (MpegTSBase * base, GstEvent * event); static void _extra_init (GType type); @@ -214,21 +256,21 @@ gst_ts_demux_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&subpicture_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&private_template)); + gst_element_class_add_static_pad_template (element_class, + &video_template); + gst_element_class_add_static_pad_template (element_class, + &audio_template); + gst_element_class_add_static_pad_template (element_class, + &subpicture_template); + gst_element_class_add_static_pad_template (element_class, + &private_template); gst_element_class_set_details_simple (element_class, "MPEG transport stream demuxer", "Codec/Demuxer", "Demuxes MPEG2 transport streams", - "Zaheer Abbas Merali ;" - " Edward Hervey "); + "Zaheer Abbas Merali \n" + "Edward Hervey "); } static void @@ -254,13 +296,15 @@ gst_ts_demux_class_init (GstTSDemuxClass * klass) ts_class = GST_MPEGTS_BASE_CLASS (klass); + ts_class->reset = GST_DEBUG_FUNCPTR (gst_ts_demux_reset); ts_class->push = GST_DEBUG_FUNCPTR (gst_ts_demux_push); ts_class->push_event = GST_DEBUG_FUNCPTR (push_event); ts_class->program_started = GST_DEBUG_FUNCPTR (gst_ts_demux_program_started); - ts_class->program_stopped = GST_DEBUG_FUNCPTR (gst_ts_demux_program_stopped); ts_class->stream_added = gst_ts_demux_stream_added; ts_class->stream_removed = gst_ts_demux_stream_removed; ts_class->find_timestamps = GST_DEBUG_FUNCPTR (find_timestamps); + ts_class->seek = GST_DEBUG_FUNCPTR (gst_ts_demux_do_seek); + ts_class->flush = GST_DEBUG_FUNCPTR (gst_ts_demux_flush); } static void @@ -270,6 +314,35 @@ gst_ts_demux_init (GstTSDemux * demux, GstTSDemuxClass * klass) demux->program_number = -1; demux->duration = GST_CLOCK_TIME_NONE; GST_MPEGTS_BASE (demux)->stream_size = sizeof (TSDemuxStream); + gst_segment_init (&demux->segment, GST_FORMAT_TIME); + demux->first_pcr = (TSPcrOffset) { + GST_CLOCK_TIME_NONE, 0, 0}; + demux->cur_pcr = (TSPcrOffset) { + 0}; + demux->last_pcr = (TSPcrOffset) { + 0}; +} + +static void +gst_ts_demux_reset (MpegTSBase * base) +{ + GstTSDemux *demux = (GstTSDemux *) base; + + if (demux->index) { + g_array_free (demux->index, TRUE); + demux->index = NULL; + } + demux->index_size = 0; + demux->need_newsegment = TRUE; + demux->program_number = -1; + demux->duration = GST_CLOCK_TIME_NONE; + gst_segment_init (&demux->segment, GST_FORMAT_TIME); + demux->first_pcr = (TSPcrOffset) { + GST_CLOCK_TIME_NONE, 0, 0}; + demux->cur_pcr = (TSPcrOffset) { + 0}; + demux->last_pcr = (TSPcrOffset) { + 0}; } static void @@ -324,6 +397,7 @@ gst_ts_demux_srcpad_query_types (GstPad * pad) { static const GstQueryType query_types[] = { GST_QUERY_DURATION, + GST_QUERY_SEEKING, 0 }; @@ -334,57 +408,529 @@ static gboolean gst_ts_demux_srcpad_query (GstPad * pad, GstQuery * query) { gboolean res = TRUE; + GstFormat format; GstTSDemux *demux; + MpegTSBase *base; demux = GST_TS_DEMUX (gst_pad_get_parent (pad)); + base = GST_MPEGTS_BASE (demux); switch (GST_QUERY_TYPE (query)) { case GST_QUERY_DURATION: - { - GstFormat format; - + GST_DEBUG ("query duration"); gst_query_parse_duration (query, &format, NULL); - /* can only get position in time */ - if (format != GST_FORMAT_TIME) - goto wrong_format; - - gst_query_set_duration (query, GST_FORMAT_TIME, demux->duration); + if (format == GST_FORMAT_TIME) { + if (!gst_pad_peer_query (base->sinkpad, query)) + gst_query_set_duration (query, GST_FORMAT_TIME, + demux->segment.duration); + } else { + GST_DEBUG_OBJECT (demux, "only query duration on TIME is supported"); + res = FALSE; + } + break; + case GST_QUERY_SEEKING: + GST_DEBUG ("query seeking"); + gst_query_parse_seeking (query, &format, NULL, NULL, NULL); + if (format == GST_FORMAT_TIME) { + gboolean seekable = FALSE; + + if (gst_pad_peer_query (base->sinkpad, query)) + gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL); + + /* If upstream is not seekable in TIME format we use + * our own values here */ + if (!seekable) + gst_query_set_seeking (query, GST_FORMAT_TIME, + demux->parent.mode != BASE_MODE_PUSHING, 0, + demux->segment.duration); + } else { + GST_DEBUG_OBJECT (demux, "only TIME is supported for query seeking"); + res = FALSE; + } break; - } default: res = gst_pad_query_default (pad, query); - break; } -done: gst_object_unref (demux); return res; -wrong_format: +} + +static inline GstClockTime +calculate_gsttime (TSPcrOffset * start, guint64 pcr) +{ + + GstClockTime time = start->gsttime; + + if (start->pcr > pcr) + time += PCRTIME_TO_GSTTIME (PCR_MAX_VALUE - start->pcr) + + PCRTIME_TO_GSTTIME (pcr); + else + time += PCRTIME_TO_GSTTIME (pcr - start->pcr); + + return time; +} + +static GstFlowReturn +gst_ts_demux_parse_pes_header_pts (GstTSDemux * demux, + MpegTSPacketizerPacket * packet, guint64 * time) +{ + PESHeader header; + gint offset = 0; + + if (mpegts_parse_pes_header (packet->payload, + packet->data_end - packet->payload, &header, &offset)) + return GST_FLOW_ERROR; + + *time = header.PTS; + return GST_FLOW_OK; +} + +/* performs a accurate/key_unit seek */ +static GstFlowReturn +gst_ts_demux_perform_auxiliary_seek (MpegTSBase * base, GstClockTime seektime, + TSPcrOffset * pcroffset, gint64 length, gint16 pid, GstSeekFlags flags, + payload_parse_keyframe auxiliary_seek_fn) +{ + GstTSDemux *demux = (GstTSDemux *) base; + GstFlowReturn res = GST_FLOW_ERROR; + gboolean done = FALSE; + gboolean found_keyframe = FALSE, found_accurate = FALSE, need_more = TRUE; + GstBuffer *buf; + MpegTSPacketizerPacket packet; + MpegTSPacketizerPacketReturn pret; + gint64 offset = pcroffset->offset; + gint64 scan_offset = MIN (length, 50 * MPEGTS_MAX_PACKETSIZE); + guint32 state = 0xffffffff; + TSPcrOffset key_pos = { 0 }; + + GST_DEBUG ("auxiliary seek for %" GST_TIME_FORMAT " from offset: %" + G_GINT64_FORMAT " in %" G_GINT64_FORMAT " bytes for PID: %d " + "%s %s", GST_TIME_ARGS (seektime), pcroffset->offset, length, pid, + (flags & GST_SEEK_FLAG_ACCURATE) ? "accurate" : "", + (flags & GST_SEEK_FLAG_KEY_UNIT) ? "key_unit" : ""); + + mpegts_packetizer_flush (base->packetizer); + + if (base->packetizer->packet_size == MPEGTS_M2TS_PACKETSIZE) + offset -= 4; + + while (!done && scan_offset <= length) { + res = + gst_pad_pull_range (base->sinkpad, offset + scan_offset, + 50 * MPEGTS_MAX_PACKETSIZE, &buf); + if (res != GST_FLOW_OK) + goto beach; + mpegts_packetizer_push (base->packetizer, buf); + + while ((!done) + && ((pret = + mpegts_packetizer_next_packet (base->packetizer, + &packet)) != PACKET_NEED_MORE)) { + if (G_UNLIKELY (pret == PACKET_BAD)) + /* bad header, skip the packet */ + goto next; + + if (packet.payload_unit_start_indicator) + GST_DEBUG ("found packet for PID: %d with pcr: %" GST_TIME_FORMAT + " at offset: %" G_GINT64_FORMAT, packet.pid, + GST_TIME_ARGS (packet.pcr), packet.offset); + + if (packet.payload != NULL && packet.pid == pid) { + + if (packet.payload_unit_start_indicator) { + guint64 pts = 0; + GstFlowReturn ok = + gst_ts_demux_parse_pes_header_pts (demux, &packet, &pts); + if (ok == GST_FLOW_OK) { + GstClockTime time = calculate_gsttime (pcroffset, pts * 300); + + GST_DEBUG ("packet has PTS: %" GST_TIME_FORMAT, + GST_TIME_ARGS (time)); + + if (time <= seektime) { + pcroffset->gsttime = time; + pcroffset->pcr = packet.pcr; + pcroffset->offset = packet.offset; + } else + found_accurate = TRUE; + } else + goto next; + /* reset state for new packet */ + state = 0xffffffff; + need_more = TRUE; + } + + if (auxiliary_seek_fn) { + if (need_more) { + if (auxiliary_seek_fn (&state, &packet, &need_more)) { + found_keyframe = TRUE; + key_pos = *pcroffset; + GST_DEBUG ("found keyframe: time: %" GST_TIME_FORMAT " pcr: %" + GST_TIME_FORMAT " offset %" G_GINT64_FORMAT, + GST_TIME_ARGS (pcroffset->gsttime), + GST_TIME_ARGS (pcroffset->pcr), pcroffset->offset); + } + } + } else { + /* if we don't have a payload parsing function + * every frame is a keyframe */ + found_keyframe = TRUE; + } + } + if (flags & GST_SEEK_FLAG_ACCURATE) + done = found_accurate && found_keyframe; + else + done = found_keyframe; + if (done) + *pcroffset = key_pos; + next: + mpegts_packetizer_clear_packet (base->packetizer, &packet); + } + scan_offset += 50 * MPEGTS_MAX_PACKETSIZE; + } + +beach: + if (done) + res = GST_FLOW_OK; + else if (GST_FLOW_OK == res) + res = GST_FLOW_CUSTOM_ERROR_1; + + mpegts_packetizer_flush (base->packetizer); + return res; +} + +static gint +TSPcrOffset_find (gconstpointer a, gconstpointer b, gpointer user_data) +{ + +/* GST_INFO ("a: %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT, */ +/* GST_TIME_ARGS (((TSPcrOffset *) a)->gsttime), ((TSPcrOffset *) a)->offset); */ +/* GST_INFO ("b: %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT, */ +/* GST_TIME_ARGS (((TSPcrOffset *) b)->gsttime), ((TSPcrOffset *) b)->offset); */ + + if (((TSPcrOffset *) a)->gsttime < ((TSPcrOffset *) b)->gsttime) + return -1; + else if (((TSPcrOffset *) a)->gsttime > ((TSPcrOffset *) b)->gsttime) + return 1; + else + return 0; +} + +static GstFlowReturn +gst_ts_demux_perform_seek (MpegTSBase * base, GstSegment * segment, guint16 pid) +{ + GstTSDemux *demux = (GstTSDemux *) base; + GstFlowReturn res = GST_FLOW_ERROR; + int max_loop_cnt, loop_cnt = 0; + gint64 seekpos = 0; + gint64 time_diff; + GstClockTime seektime; + TSPcrOffset seekpcroffset, pcr_start, pcr_stop, *tmp; + + max_loop_cnt = (segment->flags & GST_SEEK_FLAG_ACCURATE) ? 25 : 10; + + seektime = + MAX (0, + segment->last_stop - SEEK_TIMESTAMP_OFFSET) + demux->first_pcr.gsttime; + seekpcroffset.gsttime = seektime; + + GST_DEBUG ("seeking to %" GST_TIME_FORMAT, GST_TIME_ARGS (seektime)); + + gst_ts_demux_flush_streams (demux); + + if (G_UNLIKELY (!demux->index)) { + GST_ERROR ("no index"); + goto done; + } + + /* get the first index entry before the seek position */ + tmp = gst_util_array_binary_search (demux->index->data, demux->index_size, + sizeof (*tmp), TSPcrOffset_find, GST_SEARCH_MODE_BEFORE, &seekpcroffset, + NULL); + + if (G_UNLIKELY (!tmp)) { + GST_ERROR ("value not found"); + goto done; + } + + pcr_start = *tmp; + pcr_stop = *(++tmp); + + if (G_UNLIKELY (!pcr_stop.offset)) { + GST_ERROR ("invalid entry"); + goto done; + } + + /* check if the last recorded pcr can be used */ + if (pcr_start.offset < demux->cur_pcr.offset + && demux->cur_pcr.offset < pcr_stop.offset) { + demux->cur_pcr.gsttime = calculate_gsttime (&pcr_start, demux->cur_pcr.pcr); + if (demux->cur_pcr.gsttime < seekpcroffset.gsttime) + pcr_start = demux->cur_pcr; + else + pcr_stop = demux->cur_pcr; + } + + GST_DEBUG ("start %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT, + GST_TIME_ARGS (pcr_start.gsttime), pcr_start.offset); + GST_DEBUG ("stop %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT, + GST_TIME_ARGS (pcr_stop.gsttime), pcr_stop.offset); + + time_diff = seektime - pcr_start.gsttime; + seekpcroffset = pcr_start; + + GST_DEBUG ("cur %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT + " time diff: %" G_GINT64_FORMAT, + GST_TIME_ARGS (demux->cur_pcr.gsttime), demux->cur_pcr.offset, time_diff); + + /* seek loop */ + while (loop_cnt++ < max_loop_cnt && (time_diff > SEEK_TIMESTAMP_OFFSET >> 1) + && (pcr_stop.gsttime - pcr_start.gsttime > SEEK_TIMESTAMP_OFFSET)) { + gint64 duration = pcr_stop.gsttime - pcr_start.gsttime; + gint64 size = pcr_stop.offset - pcr_start.offset; + + if (loop_cnt & 1) + seekpos = pcr_start.offset + (size >> 1); + else + seekpos = + pcr_start.offset + size * ((double) (seektime - + pcr_start.gsttime) / duration); + + /* look a litle bit behind */ + seekpos = + MAX (pcr_start.offset + 188, seekpos - 55 * MPEGTS_MAX_PACKETSIZE); + + GST_DEBUG ("looking for time: %" GST_TIME_FORMAT " .. %" GST_TIME_FORMAT + " .. %" GST_TIME_FORMAT, + GST_TIME_ARGS (pcr_start.gsttime), + GST_TIME_ARGS (seektime), GST_TIME_ARGS (pcr_stop.gsttime)); + GST_DEBUG ("looking in bytes: %" G_GINT64_FORMAT " .. %" G_GINT64_FORMAT + " .. %" G_GINT64_FORMAT, pcr_start.offset, seekpos, pcr_stop.offset); + + res = + find_pcr_packet (&demux->parent, seekpos, 4000 * MPEGTS_MAX_PACKETSIZE, + &seekpcroffset); + if (G_UNLIKELY (res == GST_FLOW_UNEXPECTED)) { + seekpos = + MAX ((gint64) pcr_start.offset, + seekpos - 2000 * MPEGTS_MAX_PACKETSIZE) + 188; + res = + find_pcr_packet (&demux->parent, seekpos, + 8000 * MPEGTS_MAX_PACKETSIZE, &seekpcroffset); + } + if (G_UNLIKELY (res != GST_FLOW_OK)) { + GST_WARNING ("seeking failed %s", gst_flow_get_name (res)); + goto done; + } + + seekpcroffset.gsttime = calculate_gsttime (&pcr_start, seekpcroffset.pcr); + + /* validate */ + if (G_UNLIKELY ((seekpcroffset.gsttime < pcr_start.gsttime) || + (seekpcroffset.gsttime > pcr_stop.gsttime))) { + GST_ERROR ("Unexpected timestamp found, seeking failed! %" + GST_TIME_FORMAT, GST_TIME_ARGS (seekpcroffset.gsttime)); + res = GST_FLOW_ERROR; + goto done; + } + + if (seekpcroffset.gsttime > seektime) { + pcr_stop = seekpcroffset; + } else { + pcr_start = seekpcroffset; + } + time_diff = seektime - pcr_start.gsttime; + GST_DEBUG ("seeking: %" GST_TIME_FORMAT " found: %" GST_TIME_FORMAT + " diff = %" G_GINT64_FORMAT, GST_TIME_ARGS (seektime), + GST_TIME_ARGS (seekpcroffset.gsttime), time_diff); + } + + GST_DEBUG ("seeking finished after %d loops", loop_cnt); + + /* use correct seek position for the auxiliary search */ + seektime += SEEK_TIMESTAMP_OFFSET; + { - GST_DEBUG_OBJECT (demux, "only query duration on TIME is supported"); - res = FALSE; + payload_parse_keyframe keyframe_seek = NULL; + MpegTSBaseProgram *program = demux->program; + guint64 avg_bitrate, length; + + if (program->streams[pid]) { + switch (program->streams[pid]->stream_type) { + case ST_VIDEO_MPEG1: + case ST_VIDEO_MPEG2: + keyframe_seek = gst_tsdemux_has_mpeg2_keyframe; + break; + case ST_VIDEO_H264: + keyframe_seek = gst_tsdemux_has_h264_keyframe; + break; + case ST_VIDEO_MPEG4: + case ST_VIDEO_DIRAC: + GST_WARNING ("no payload parser for stream 0x%04x type: 0x%02x", pid, + program->streams[pid]->stream_type); + break; + } + } else + GST_WARNING ("no stream info for PID: 0x%04x", pid); + + avg_bitrate = + (pcr_stop.offset - + pcr_start.offset) * 1000 * GST_MSECOND / (pcr_stop.gsttime - + pcr_start.gsttime); + + seekpcroffset = pcr_start; + /* search in 2500ms for a keyframe */ + length = + MIN (demux->last_pcr.offset - pcr_start.offset, + (avg_bitrate * 25) / 10); + res = + gst_ts_demux_perform_auxiliary_seek (base, seektime, &seekpcroffset, + length, pid, segment->flags, keyframe_seek); + + if (res == GST_FLOW_CUSTOM_ERROR_1) { + GST_ERROR ("no keyframe found in %" G_GUINT64_FORMAT + " bytes starting from %" G_GUINT64_FORMAT, length, + seekpcroffset.offset); + res = GST_FLOW_ERROR; + } + if (res != GST_FLOW_OK) + goto done; + } + + + /* update seektime to the actual timestamp of the found keyframe */ + if (segment->flags & GST_SEEK_FLAG_KEY_UNIT) + seektime = seekpcroffset.gsttime; + + seektime -= demux->first_pcr.gsttime; + + segment->last_stop = seektime; + segment->time = seektime; + + /* we stop at the end */ + if (segment->stop == -1) + segment->stop = demux->first_pcr.gsttime + segment->duration; + + demux->need_newsegment = TRUE; + demux->parent.seek_offset = seekpcroffset.offset; + GST_DEBUG ("seeked to postion:%" GST_TIME_FORMAT, GST_TIME_ARGS (seektime)); + res = GST_FLOW_OK; + +done: + return res; +} + + +static GstFlowReturn +gst_ts_demux_do_seek (MpegTSBase * base, GstEvent * event, guint16 pid) +{ + GstTSDemux *demux = (GstTSDemux *) base; + GstFlowReturn res = GST_FLOW_ERROR; + gdouble rate; + GstFormat format; + GstSeekFlags flags; + GstSeekType start_type, stop_type; + gint64 start, stop; + GstSegment seeksegment; + gboolean update; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + if (format != GST_FORMAT_TIME) { goto done; } + + GST_DEBUG ("seek event, rate: %f start: %" GST_TIME_FORMAT + " stop: %" GST_TIME_FORMAT, rate, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop)); + + if (flags & (GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_SKIP)) { + GST_WARNING ("seek flags 0x%x are not supported", (int) flags); + goto done; + } + + /* copy segment, we need this because we still need the old + * segment when we close the current segment. */ + memcpy (&seeksegment, &demux->segment, sizeof (GstSegment)); + /* configure the segment with the seek variables */ + GST_DEBUG_OBJECT (demux, "configuring seek"); + GST_DEBUG ("seeksegment: start: %" GST_TIME_FORMAT " stop: %" + GST_TIME_FORMAT " time: %" GST_TIME_FORMAT " accum: %" GST_TIME_FORMAT + " last_stop: %" GST_TIME_FORMAT " duration: %" GST_TIME_FORMAT, + GST_TIME_ARGS (seeksegment.start), GST_TIME_ARGS (seeksegment.stop), + GST_TIME_ARGS (seeksegment.time), GST_TIME_ARGS (seeksegment.accum), + GST_TIME_ARGS (seeksegment.last_stop), + GST_TIME_ARGS (seeksegment.duration)); + gst_segment_set_seek (&seeksegment, rate, format, flags, start_type, start, + stop_type, stop, &update); + GST_DEBUG ("seeksegment: start: %" GST_TIME_FORMAT " stop: %" + GST_TIME_FORMAT " time: %" GST_TIME_FORMAT " accum: %" GST_TIME_FORMAT + " last_stop: %" GST_TIME_FORMAT " duration: %" GST_TIME_FORMAT, + GST_TIME_ARGS (seeksegment.start), GST_TIME_ARGS (seeksegment.stop), + GST_TIME_ARGS (seeksegment.time), GST_TIME_ARGS (seeksegment.accum), + GST_TIME_ARGS (seeksegment.last_stop), + GST_TIME_ARGS (seeksegment.duration)); + + res = gst_ts_demux_perform_seek (base, &seeksegment, pid); + if (G_UNLIKELY (res != GST_FLOW_OK)) { + GST_WARNING ("seeking failed %s", gst_flow_get_name (res)); + goto done; + } + + /* commit the new segment */ + memcpy (&demux->segment, &seeksegment, sizeof (GstSegment)); + + if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) { + gst_element_post_message (GST_ELEMENT_CAST (demux), + gst_message_new_segment_start (GST_OBJECT_CAST (demux), + demux->segment.format, demux->segment.last_stop)); + } + +done: + return res; } +static gboolean +gst_ts_demux_srcpad_event (GstPad * pad, GstEvent * event) +{ + gboolean res = TRUE; + GstTSDemux *demux = GST_TS_DEMUX (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (pad, "Got event %s", + gst_event_type_get_name (GST_EVENT_TYPE (event))); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + res = mpegts_base_handle_seek_event ((MpegTSBase *) demux, pad, event); + if (!res) + GST_WARNING ("seeking failed"); + gst_event_unref (event); + break; + default: + res = gst_pad_event_default (pad, event); + } + + gst_object_unref (demux); + return res; +} static gboolean push_event (MpegTSBase * base, GstEvent * event) { GstTSDemux *demux = (GstTSDemux *) base; - guint i; + GList *tmp; if (G_UNLIKELY (demux->program == NULL)) return FALSE; - for (i = 0; i < 0x2000; i++) { - if (demux->program->streams[i]) { - if (((TSDemuxStream *) demux->program->streams[i])->pad) { - gst_event_ref (event); - gst_pad_push_event (((TSDemuxStream *) demux->program->streams[i])->pad, - event); - } + for (tmp = demux->program->stream_list; tmp; tmp = tmp->next) { + TSDemuxStream *stream = (TSDemuxStream *) tmp->data; + if (stream->pad) { + gst_event_ref (event); + gst_pad_push_event (stream->pad, event); } } @@ -395,7 +941,7 @@ static GstFlowReturn tsdemux_combine_flows (GstTSDemux * demux, TSDemuxStream * stream, GstFlowReturn ret) { - guint i; + GList *tmp; /* Store the value */ stream->flow_return = ret; @@ -405,16 +951,14 @@ tsdemux_combine_flows (GstTSDemux * demux, TSDemuxStream * stream, goto done; /* Only return NOT_LINKED if all other pads returned NOT_LINKED */ - for (i = 0; i < 0x2000; i++) { - if (demux->program->streams[i]) { - stream = (TSDemuxStream *) demux->program->streams[i]; - if (stream->pad) { - ret = stream->flow_return; - /* some other return value (must be SUCCESS but we can return - * other values as well) */ - if (ret != GST_FLOW_NOT_LINKED) - goto done; - } + for (tmp = demux->program->stream_list; tmp; tmp = tmp->next) { + stream = (TSDemuxStream *) tmp->data; + if (stream->pad) { + ret = stream->flow_return; + /* some other return value (must be SUCCESS but we can return + * other values as well) */ + if (ret != GST_FLOW_NOT_LINKED) + goto done; } /* if we get here, all other pads were unlinked and we return * NOT_LINKED then */ @@ -504,6 +1048,7 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream, name = g_strdup_printf ("private_%04x", bstream->pid); caps = gst_caps_new_simple ("subpicture/x-dvb", NULL); g_free (desc); + break; } /* hack for itv hd (sid 10510, video pid 3401 */ if (program->program_number == 10510 && bstream->pid == 3401) { @@ -533,13 +1078,14 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream, case ST_DSMCC_B: case ST_DSMCC_C: case ST_DSMCC_D: - base->is_pes[bstream->pid] = FALSE; + MPEGTS_BIT_UNSET (base->is_pes, bstream->pid); break; - case ST_AUDIO_AAC: + case ST_AUDIO_AAC: /* ADTS */ template = gst_static_pad_template_get (&audio_template); name = g_strdup_printf ("audio_%04x", bstream->pid); caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "adts", NULL); break; case ST_VIDEO_MPEG4: template = gst_static_pad_template_get (&video_template); @@ -666,6 +1212,10 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream, name = g_strdup_printf ("subpicture_%04x", bstream->pid); caps = gst_caps_new_simple ("subpicture/x-pgs", NULL); break; + default: + GST_WARNING ("Non-media stream (stream_type:0x%x). Not creating pad", + bstream->stream_type); + break; } if (template && name && caps) { GST_LOG ("stream:%p creating pad with name %s and caps %s", stream, name, @@ -675,6 +1225,7 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream, gst_pad_set_caps (pad, caps); gst_pad_set_query_type_function (pad, gst_ts_demux_srcpad_query_types); gst_pad_set_query_function (pad, gst_ts_demux_srcpad_query); + gst_pad_set_event_function (pad, gst_ts_demux_srcpad_event); gst_caps_unref (caps); } @@ -693,7 +1244,13 @@ gst_ts_demux_stream_added (MpegTSBase * base, MpegTSBaseStream * bstream, /* Create the pad */ if (bstream->stream_type != 0xff) stream->pad = create_pad_for_stream (base, bstream, program); + stream->pts = GST_CLOCK_TIME_NONE; + stream->dts = GST_CLOCK_TIME_NONE; + stream->raw_pts = 0; + stream->raw_dts = 0; + stream->nb_pts_rollover = 0; + stream->nb_dts_rollover = 0; } stream->flow_return = GST_FLOW_OK; } @@ -701,15 +1258,33 @@ gst_ts_demux_stream_added (MpegTSBase * base, MpegTSBaseStream * bstream, static void gst_ts_demux_stream_removed (MpegTSBase * base, MpegTSBaseStream * bstream) { + GstTSDemux *demux = GST_TS_DEMUX (base); TSDemuxStream *stream = (TSDemuxStream *) bstream; - if (stream) { - if (stream->pad) { - /* Unref the pad, clear it */ - gst_object_unref (stream->pad); - stream->pad = NULL; + + if (stream->pad) { + if (gst_pad_is_active (stream->pad)) { + gboolean need_newsegment = demux->need_newsegment; + + /* We must not send the newsegment when flushing the pending data + on the removed stream. We should only push it when the newly added + stream finishes parsing its PTS */ + demux->need_newsegment = FALSE; + + /* Flush out all data */ + GST_DEBUG_OBJECT (stream->pad, "Flushing out pending data"); + gst_ts_demux_push_pending_data ((GstTSDemux *) base, stream); + + demux->need_newsegment = need_newsegment; + + GST_DEBUG_OBJECT (stream->pad, "Pushing out EOS"); + gst_pad_push_event (stream->pad, gst_event_new_eos ()); + GST_DEBUG_OBJECT (stream->pad, "Deactivating and removing pad"); + gst_pad_set_active (stream->pad, FALSE); + gst_element_remove_pad (GST_ELEMENT_CAST (base), stream->pad); } - stream->flow_return = GST_FLOW_NOT_LINKED; + stream->pad = NULL; } + stream->flow_return = GST_FLOW_NOT_LINKED; } static void @@ -722,7 +1297,32 @@ activate_pad_for_stream (GstTSDemux * tsdemux, TSDemuxStream * stream) gst_element_add_pad ((GstElement *) tsdemux, stream->pad); GST_DEBUG_OBJECT (stream->pad, "done adding pad"); } else - GST_WARNING_OBJECT (tsdemux, "stream %p has no pad", stream); + GST_WARNING_OBJECT (tsdemux, + "stream %p (pid 0x%04x, type:0x%03x) has no pad", stream, + ((MpegTSBaseStream *) stream)->pid, + ((MpegTSBaseStream *) stream)->stream_type); +} + +static void +gst_ts_demux_stream_flush (TSDemuxStream * stream) +{ + gint i; + + stream->pts = GST_CLOCK_TIME_NONE; + + for (i = 0; i < stream->nbpending; i++) + gst_buffer_unref (stream->pendingbuffers[i]); + memset (stream->pendingbuffers, 0, TS_MAX_PENDING_BUFFERS); + stream->nbpending = 0; + + stream->current = NULL; +} + +static void +gst_ts_demux_flush_streams (GstTSDemux * demux) +{ + g_list_foreach (demux->program->stream_list, + (GFunc) gst_ts_demux_stream_flush, NULL); } static void @@ -730,59 +1330,30 @@ gst_ts_demux_program_started (MpegTSBase * base, MpegTSBaseProgram * program) { GstTSDemux *demux = GST_TS_DEMUX (base); + GST_DEBUG ("Current program %d, new program %d", + demux->program_number, program->program_number); + if (demux->program_number == -1 || demux->program_number == program->program_number) { - guint i; + GList *tmp; GST_LOG ("program %d started", program->program_number); demux->program_number = program->program_number; demux->program = program; - /* Activate all stream pads, the pads will already have been created */ - - /* FIXME : Actually, we don't want to activate *ALL* streams ! - * For example, we don't want to expose HDV AUX private streams, we will just - * be using them directly for seeking and metadata. */ - if (base->mode != BASE_MODE_SCANNING) - for (i = 0; i < 0x2000; i++) - if (program->streams[i]) - activate_pad_for_stream (demux, - (TSDemuxStream *) program->streams[i]); + /* Activate all stream pads, pads will already have been created */ + if (base->mode != BASE_MODE_SCANNING) { + for (tmp = program->stream_list; tmp; tmp = tmp->next) + activate_pad_for_stream (demux, (TSDemuxStream *) tmp->data); + gst_element_no_more_pads ((GstElement *) demux); + } /* Inform scanner we have got our program */ demux->current_program_number = program->program_number; + demux->need_newsegment = TRUE; } } -static void -gst_ts_demux_program_stopped (MpegTSBase * base, MpegTSBaseProgram * program) -{ - guint i; - GstTSDemux *demux = GST_TS_DEMUX (base); - TSDemuxStream *localstream = NULL; - - GST_LOG ("program %d stopped", program->program_number); - - if (program != demux->program) - return; - - for (i = 0; i < 0x2000; i++) { - if (demux->program->streams[i]) { - localstream = (TSDemuxStream *) program->streams[i]; - if (localstream->pad) { - GST_DEBUG ("HAVE PAD %s:%s", GST_DEBUG_PAD_NAME (localstream->pad)); - if (gst_pad_is_active (localstream->pad)) - gst_element_remove_pad (GST_ELEMENT_CAST (demux), localstream->pad); - else - gst_object_unref (localstream->pad); - localstream->pad = NULL; - } - } - } - demux->program = NULL; - demux->program_number = -1; -} - static gboolean process_section (MpegTSBase * base) { @@ -832,6 +1403,173 @@ process_section (MpegTSBase * base) return done; } +static gboolean +process_pes (MpegTSBase * base, TSPcrOffset * pcroffset) +{ + gboolean based, done = FALSE; + MpegTSPacketizerPacket packet; + MpegTSPacketizerPacketReturn pret; + GstTSDemux *demux = GST_TS_DEMUX (base); + guint16 pcr_pid = 0; + + while ((!done) + && ((pret = + mpegts_packetizer_next_packet (base->packetizer, + &packet)) != PACKET_NEED_MORE)) { + if (G_UNLIKELY (pret == PACKET_BAD)) + /* bad header, skip the packet */ + goto next; + + if (demux->program != NULL) { + pcr_pid = demux->program->pcr_pid; + } + + /* base PSI data */ + if (packet.payload != NULL && mpegts_base_is_psi (base, &packet)) { + MpegTSPacketizerSection section; + + based = + mpegts_packetizer_push_section (base->packetizer, &packet, §ion); + if (G_UNLIKELY (!based)) + /* bad section data */ + goto next; + + if (G_LIKELY (section.complete)) { + /* section complete */ + GST_DEBUG ("Section Complete"); + based = mpegts_base_handle_psi (base, §ion); + gst_buffer_unref (section.buffer); + if (G_UNLIKELY (!based)) + /* bad PSI table */ + goto next; + + } + } + if (packet.pid == pcr_pid && (packet.adaptation_field_control & 0x02) + && (packet.afc_flags & MPEGTS_AFC_PCR_FLAG)) { + GST_DEBUG ("PCR[0x%x]: %" G_GINT64_FORMAT, packet.pid, packet.pcr); + pcroffset->pcr = packet.pcr; + pcroffset->offset = packet.offset; + done = TRUE; + } + next: + mpegts_packetizer_clear_packet (base->packetizer, &packet); + } + return done; +} + +static GstFlowReturn +find_pcr_packet (MpegTSBase * base, guint64 offset, gint64 length, + TSPcrOffset * pcroffset) +{ + GstFlowReturn ret = GST_FLOW_OK; + GstTSDemux *demux = GST_TS_DEMUX (base); + MpegTSBaseProgram *program; + GstBuffer *buf; + gboolean done = FALSE; + guint64 scan_offset = 0; + + GST_DEBUG ("Scanning for PCR between:%" G_GINT64_FORMAT + " and the end:%" G_GINT64_FORMAT, offset, offset + length); + + /* Get the program */ + program = demux->program; + if (G_UNLIKELY (program == NULL)) + return GST_FLOW_ERROR; + + mpegts_packetizer_flush (base->packetizer); + if (offset >= 4 && base->packetizer->packet_size == MPEGTS_M2TS_PACKETSIZE) + offset -= 4; + + while (!done && scan_offset < length) { + ret = + gst_pad_pull_range (base->sinkpad, offset + scan_offset, + 50 * MPEGTS_MAX_PACKETSIZE, &buf); + if (ret != GST_FLOW_OK) + goto beach; + mpegts_packetizer_push (base->packetizer, buf); + done = process_pes (base, pcroffset); + scan_offset += 50 * MPEGTS_MAX_PACKETSIZE; + } + + if (!done || scan_offset >= length) { + GST_WARNING ("No PCR found!"); + ret = GST_FLOW_ERROR; + goto beach; + } + +beach: + mpegts_packetizer_flush (base->packetizer); + return ret; +} + +static gboolean +verify_timestamps (MpegTSBase * base, TSPcrOffset * first, TSPcrOffset * last) +{ + GstTSDemux *demux = GST_TS_DEMUX (base); + guint64 length = 4000 * MPEGTS_MAX_PACKETSIZE; + guint64 offset = PCR_WRAP_SIZE_128KBPS; + + demux->index = + g_array_sized_new (TRUE, TRUE, sizeof (*first), + 2 + 1 + ((last->offset - first->offset) / PCR_WRAP_SIZE_128KBPS)); + + first->gsttime = PCRTIME_TO_GSTTIME (first->pcr); + demux->index = g_array_append_val (demux->index, *first); + demux->index_size++; + demux->first_pcr = *first; + demux->index_pcr = *first; + GST_DEBUG ("first time: %" GST_TIME_FORMAT " pcr: %" GST_TIME_FORMAT + " offset: %" G_GINT64_FORMAT + " last pcr: %" GST_TIME_FORMAT " offset: %" G_GINT64_FORMAT, + GST_TIME_ARGS (first->gsttime), + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (first->pcr)), first->offset, + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (last->pcr)), last->offset); + + while (offset + length < last->offset) { + TSPcrOffset half; + GstFlowReturn ret; + gint tries = 0; + + retry: + ret = find_pcr_packet (base, offset, length, &half); + if (G_UNLIKELY (ret != GST_FLOW_OK)) { + GST_WARNING ("no pcr found, retrying"); + if (tries++ < 3) { + offset += length; + length *= 2; + goto retry; + } + return FALSE; + } + + half.gsttime = calculate_gsttime (first, half.pcr); + + GST_DEBUG ("add half time: %" GST_TIME_FORMAT " pcr: %" GST_TIME_FORMAT + " offset: %" G_GINT64_FORMAT, + GST_TIME_ARGS (half.gsttime), + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (half.pcr)), half.offset); + demux->index = g_array_append_val (demux->index, half); + demux->index_size++; + + length = 4000 * MPEGTS_MAX_PACKETSIZE; + offset += PCR_WRAP_SIZE_128KBPS; + *first = half; + } + + last->gsttime = calculate_gsttime (first, last->pcr); + + GST_DEBUG ("add last time: %" GST_TIME_FORMAT " pcr: %" GST_TIME_FORMAT + " offset: %" G_GINT64_FORMAT, + GST_TIME_ARGS (last->gsttime), + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (last->pcr)), last->offset); + + demux->index = g_array_append_val (demux->index, *last); + demux->index_size++; + + demux->last_pcr = *last; + return TRUE; +} static GstFlowReturn find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) @@ -844,7 +1582,7 @@ find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) gint64 total_bytes; guint64 scan_offset; guint i = 0; - GstClockTime initial, final; + TSPcrOffset initial, final; GstTSDemux *demux = GST_TS_DEMUX (base); GST_DEBUG ("Scanning for timestamps"); @@ -872,16 +1610,20 @@ find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) /* Search for the first PCRs */ ret = process_pcr (base, base->first_pat_offset, &initial, 10, TRUE); - mpegts_packetizer_clear (base->packetizer); - /* Remove current program so we ensure looking for a PAT when scanning the - * for the final PCR */ - mpegts_base_remove_program (base, demux->current_program_number); - if (ret != GST_FLOW_OK) { + if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) { GST_WARNING ("Problem getting initial PCRs"); goto beach; } + mpegts_packetizer_clear (base->packetizer); + /* Remove current program so we ensure looking for a PAT when scanning the + * for the final PCR */ + gst_structure_free (base->pat); + base->pat = NULL; + mpegts_base_remove_program (base, demux->current_program_number); + demux->program = NULL; + /* Find end position */ if (G_UNLIKELY (!gst_pad_query_peer_duration (base->sinkpad, &format, &total_bytes) || format != GST_FORMAT_BYTES)) { @@ -892,7 +1634,9 @@ find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) } GST_DEBUG ("Upstream is %" G_GINT64_FORMAT " bytes", total_bytes); - scan_offset = total_bytes - 4000 * MPEGTS_MAX_PACKETSIZE; + + /* Let's start scanning 4000 packets from the end */ + scan_offset = MAX (188, total_bytes - 4000 * MPEGTS_MAX_PACKETSIZE); GST_DEBUG ("Scanning for last sync point between:%" G_GINT64_FORMAT " and the end:%" G_GINT64_FORMAT, scan_offset, total_bytes); @@ -912,7 +1656,7 @@ find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) GST_DEBUG ("Searching PCR"); ret = - process_pcr (base, total_bytes - 4000 * MPEGTS_MAX_PACKETSIZE, &final, 10, + process_pcr (base, scan_offset - 50 * MPEGTS_MAX_PACKETSIZE, &final, 10, FALSE); if (ret != GST_FLOW_OK) { @@ -920,8 +1664,11 @@ find_timestamps (MpegTSBase * base, guint64 initoff, guint64 * offset) goto beach; } - demux->duration = final - initial; + verify_timestamps (base, &initial, &final); + gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, + demux->last_pcr.gsttime - demux->first_pcr.gsttime); + demux->duration = demux->last_pcr.gsttime - demux->first_pcr.gsttime; GST_DEBUG ("Done, duration:%" GST_TIME_FORMAT, GST_TIME_ARGS (demux->duration)); @@ -929,13 +1676,18 @@ beach: mpegts_packetizer_clear (base->packetizer); /* Remove current program */ + if (base->pat) { + gst_structure_free (base->pat); + base->pat = NULL; + } mpegts_base_remove_program (base, demux->current_program_number); + demux->program = NULL; return ret; } static GstFlowReturn -process_pcr (MpegTSBase * base, guint64 initoff, GstClockTime * pcr, +process_pcr (MpegTSBase * base, guint64 initoff, TSPcrOffset * pcroffset, guint numpcr, gboolean isinitial) { GstTSDemux *demux = GST_TS_DEMUX (base); @@ -986,29 +1738,38 @@ process_pcr (MpegTSBase * base, guint64 initoff, GstClockTime * pcr, offset = 0; size = GST_BUFFER_SIZE (buf); - /* FIXME : We should jump to next packet instead of scanning everything */ - while ((size >= br.size) && (nbpcr < numpcr) - && (offset = - gst_byte_reader_masked_scan_uint32 (&br, pcrmask, pcrpattern, - offset, size)) != -1) { + resync: + offset = gst_byte_reader_masked_scan_uint32 (&br, 0xff000000, 0x47000000, + 0, base->packetsize); + + if (offset == -1) + continue; + + while ((nbpcr < numpcr) && (size >= base->packetsize)) { + + guint32 header = GST_READ_UINT32_BE (br.data + offset); + + if ((header >> 24) != 0x47) + goto resync; + + if ((header & pcrmask) != pcrpattern) { + /* Move offset forward by 1 packet */ + size -= base->packetsize; + offset += base->packetsize; + continue; + } + /* Potential PCR */ /* GST_DEBUG ("offset %" G_GUINT64_FORMAT, GST_BUFFER_OFFSET (buf) + offset); GST_MEMDUMP ("something", GST_BUFFER_DATA (buf) + offset, 16);*/ - if ((*(br.data + offset + 5)) & 0x10) { - guint16 pcr2; - guint64 pcr, pcr_ext; - - pcr = ((guint64) GST_READ_UINT32_BE (br.data + offset + 6)) << 1; - pcr2 = GST_READ_UINT16_BE (br.data + offset + 10); - pcr |= (pcr2 & 0x8000) >> 15; - pcr_ext = (pcr2 & 0x01ff); - pcr = pcr * 300 + pcr_ext % 300; - - GST_DEBUG ("Found PCR %" G_GUINT64_FORMAT " %" GST_TIME_FORMAT - " at offset %" G_GUINT64_FORMAT, pcr, - GST_TIME_ARGS (PCRTIME_TO_GSTTIME (pcr)), + if ((*(br.data + offset + 5)) & MPEGTS_AFC_PCR_FLAG) { + guint64 lpcr = mpegts_packetizer_compute_pcr (br.data + offset + 6); + + GST_INFO ("Found PCR %" G_GUINT64_FORMAT " %" GST_TIME_FORMAT + " at offset %" G_GUINT64_FORMAT, lpcr, + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (lpcr)), GST_BUFFER_OFFSET (buf) + offset); - pcrs[nbpcr] = pcr; + pcrs[nbpcr] = lpcr; pcroffs[nbpcr] = GST_BUFFER_OFFSET (buf) + offset; /* Safeguard against bogus PCR (by detecting if it's the same as the * previous one or wheter the difference with the previous one is @@ -1016,6 +1777,9 @@ process_pcr (MpegTSBase * base, guint64 initoff, GstClockTime * pcr, if (nbpcr > 1) { if (pcrs[nbpcr] == pcrs[nbpcr - 1]) { GST_WARNING ("Found same PCR at different offset"); + } else if (pcrs[nbpcr] < pcrs[nbpcr - 1]) { + GST_WARNING ("Found PCR wraparound"); + nbpcr += 1; } else if ((pcrs[nbpcr] - pcrs[nbpcr - 1]) > (guint64) 10 * 60 * 27000000) { GST_WARNING ("PCR differs with previous PCR by more than 10 mins"); @@ -1024,28 +1788,32 @@ process_pcr (MpegTSBase * base, guint64 initoff, GstClockTime * pcr, } else nbpcr += 1; } - /* Move offset forward by 1 */ - size -= offset + 1; - offset += 1; - + /* Move offset forward by 1 packet */ + size -= base->packetsize; + offset += base->packetsize; } } beach: GST_DEBUG ("Found %d PCR", nbpcr); if (nbpcr) { - if (isinitial) - *pcr = PCRTIME_TO_GSTTIME (pcrs[0]); - else - *pcr = PCRTIME_TO_GSTTIME (pcrs[nbpcr - 1]); - GST_DEBUG ("pcrdiff:%" GST_TIME_FORMAT " offsetdiff %" G_GUINT64_FORMAT, - GST_TIME_ARGS (PCRTIME_TO_GSTTIME (pcrs[nbpcr - 1] - pcrs[0])), - pcroffs[nbpcr - 1] - pcroffs[0]); - GST_DEBUG ("Estimated bitrate %" G_GUINT64_FORMAT, - gst_util_uint64_scale (GST_SECOND, pcroffs[nbpcr - 1] - pcroffs[0], - PCRTIME_TO_GSTTIME (pcrs[nbpcr - 1] - pcrs[0]))); - GST_DEBUG ("Average PCR interval %" G_GUINT64_FORMAT, - (pcroffs[nbpcr - 1] - pcroffs[0]) / nbpcr); + if (isinitial) { + pcroffset->pcr = pcrs[0]; + pcroffset->offset = pcroffs[0]; + } else { + pcroffset->pcr = pcrs[nbpcr - 1]; + pcroffset->offset = pcroffs[nbpcr - 1]; + } + if (nbpcr > 1) { + GST_DEBUG ("pcrdiff:%" GST_TIME_FORMAT " offsetdiff %" G_GUINT64_FORMAT, + GST_TIME_ARGS (PCRTIME_TO_GSTTIME (pcrs[nbpcr - 1] - pcrs[0])), + pcroffs[nbpcr - 1] - pcroffs[0]); + GST_DEBUG ("Estimated bitrate %" G_GUINT64_FORMAT, + gst_util_uint64_scale (GST_SECOND, pcroffs[nbpcr - 1] - pcroffs[0], + PCRTIME_TO_GSTTIME (pcrs[nbpcr - 1] - pcrs[0]))); + GST_DEBUG ("Average PCR interval %" G_GUINT64_FORMAT, + (pcroffs[nbpcr - 1] - pcroffs[0]) / nbpcr); + } } /* Swallow any errors if it happened during the end scanning */ if (!isinitial) @@ -1066,6 +1834,18 @@ gst_ts_demux_record_pcr (GstTSDemux * demux, TSDemuxStream * stream, G_GUINT64_FORMAT, bs->pid, GST_TIME_ARGS (PCRTIME_TO_GSTTIME (pcr)), offset); + if (G_LIKELY (bs->pid == demux->program->pcr_pid)) { + demux->cur_pcr.gsttime = GST_CLOCK_TIME_NONE; + demux->cur_pcr.offset = offset; + demux->cur_pcr.pcr = pcr; + /* set first_pcr in push mode */ + if (G_UNLIKELY (!demux->first_pcr.gsttime == GST_CLOCK_TIME_NONE)) { + demux->first_pcr.gsttime = PCRTIME_TO_GSTTIME (pcr); + demux->first_pcr.offset = offset; + demux->first_pcr.pcr = pcr; + } + } + if (G_UNLIKELY (demux->emit_statistics)) { GstStructure *st; st = gst_structure_id_empty_new (QUARK_TSDEMUX); @@ -1106,9 +1886,33 @@ gst_ts_demux_record_pts (GstTSDemux * demux, TSDemuxStream * stream, { MpegTSBaseStream *bs = (MpegTSBaseStream *) stream; - GST_LOG ("pid 0x%04x pts:%" GST_TIME_FORMAT " at offset %" - G_GUINT64_FORMAT, bs->pid, - GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (pts)), offset); + GST_LOG ("pid 0x%04x pts:%" G_GUINT64_FORMAT " at offset %" + G_GUINT64_FORMAT, bs->pid, pts, offset); + + if (G_UNLIKELY (GST_CLOCK_TIME_IS_VALID (stream->pts) && + ABSDIFF (stream->raw_pts, pts) > 900000)) { + /* Detect rollover if diff > 10s */ + GST_LOG ("Detected rollover (previous:%" G_GUINT64_FORMAT " new:%" + G_GUINT64_FORMAT ")", stream->raw_pts, pts); + if (pts < stream->raw_pts) { + /* Forward rollover */ + GST_LOG ("Forward rollover, incrementing nb_pts_rollover"); + stream->nb_pts_rollover++; + } else { + /* Reverse rollover */ + GST_LOG ("Reverse rollover, decrementing nb_pts_rollover"); + stream->nb_pts_rollover--; + } + } + + /* Compute PTS in GstClockTime */ + stream->raw_pts = pts; + stream->pts = + MPEGTIME_TO_GSTTIME (pts + stream->nb_pts_rollover * PTS_DTS_MAX_VALUE); + + GST_LOG ("pid 0x%04x Stored PTS %" G_GUINT64_FORMAT " (%" GST_TIME_FORMAT ")", + bs->pid, stream->raw_pts, GST_TIME_ARGS (stream->pts)); + if (G_UNLIKELY (demux->emit_statistics)) { GstStructure *st; @@ -1128,9 +1932,32 @@ gst_ts_demux_record_dts (GstTSDemux * demux, TSDemuxStream * stream, { MpegTSBaseStream *bs = (MpegTSBaseStream *) stream; - GST_LOG ("pid 0x%04x dts:%" GST_TIME_FORMAT " at offset %" - G_GUINT64_FORMAT, bs->pid, - GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (dts)), offset); + GST_LOG ("pid 0x%04x dts:%" G_GUINT64_FORMAT " at offset %" + G_GUINT64_FORMAT, bs->pid, dts, offset); + + if (G_UNLIKELY (GST_CLOCK_TIME_IS_VALID (stream->dts) && + ABSDIFF (stream->raw_dts, dts) > 900000)) { + /* Detect rollover if diff > 10s */ + GST_LOG ("Detected rollover (previous:%" G_GUINT64_FORMAT " new:%" + G_GUINT64_FORMAT ")", stream->raw_dts, dts); + if (dts < stream->raw_dts) { + /* Forward rollover */ + GST_LOG ("Forward rollover, incrementing nb_dts_rollover"); + stream->nb_dts_rollover++; + } else { + /* Reverse rollover */ + GST_LOG ("Reverse rollover, decrementing nb_dts_rollover"); + stream->nb_dts_rollover--; + } + } + + /* Compute DTS in GstClockTime */ + stream->raw_dts = dts; + stream->dts = + MPEGTIME_TO_GSTTIME (dts + stream->nb_dts_rollover * PTS_DTS_MAX_VALUE); + + GST_LOG ("pid 0x%04x Stored DTS %" G_GUINT64_FORMAT " (%" GST_TIME_FORMAT ")", + bs->pid, stream->raw_dts, GST_TIME_ARGS (stream->dts)); if (G_UNLIKELY (demux->emit_statistics)) { GstStructure *st; @@ -1144,123 +1971,124 @@ gst_ts_demux_record_dts (GstTSDemux * demux, TSDemuxStream * stream, } } +static inline GstClockTime +calc_gsttime_from_pts (TSPcrOffset * start, guint64 pts) +{ + GstClockTime time = start->gsttime - PCRTIME_TO_GSTTIME (start->pcr); + + if (start->pcr > pts * 300) + time += PCRTIME_TO_GSTTIME (PCR_MAX_VALUE) + MPEGTIME_TO_GSTTIME (pts); + else + time += MPEGTIME_TO_GSTTIME (pts); + + return time; +} + +#if 0 +static gint +TSPcrOffset_find_offset (gconstpointer a, gconstpointer b, gpointer user_data) +{ + if (((TSPcrOffset *) a)->offset < ((TSPcrOffset *) b)->offset) + return -1; + else if (((TSPcrOffset *) a)->offset > ((TSPcrOffset *) b)->offset) + return 1; + else + return 0; +} +#endif + static GstFlowReturn gst_ts_demux_parse_pes_header (GstTSDemux * demux, TSDemuxStream * stream) { + MpegTSBase *base = (MpegTSBase *) demux; + PESHeader header; GstFlowReturn res = GST_FLOW_OK; + gint offset = 0; guint8 *data; guint32 length; - guint32 psc_stid; - guint8 stid; - guint16 pesplength; - guint8 PES_header_data_length = 0; + guint64 bufferoffset; + PESParsingResult parseres; data = GST_BUFFER_DATA (stream->pendingbuffers[0]); length = GST_BUFFER_SIZE (stream->pendingbuffers[0]); + bufferoffset = GST_BUFFER_OFFSET (stream->pendingbuffers[0]); GST_MEMDUMP ("Header buffer", data, MIN (length, 32)); - /* packet_start_code_prefix 24 - * stream_id 8*/ - psc_stid = GST_READ_UINT32_BE (data); - data += 4; - length -= 4; - if (G_UNLIKELY ((psc_stid & 0xffffff00) != 0x00000100)) { - GST_WARNING ("WRONG PACKET START CODE! pid: 0x%x stream_type: 0x%x", + parseres = mpegts_parse_pes_header (data, length, &header, &offset); + if (G_UNLIKELY (parseres == PES_PARSING_NEED_MORE)) + goto discont; + if (G_UNLIKELY (parseres == PES_PARSING_BAD)) { + GST_WARNING ("Error parsing PES header. pid: 0x%x stream_type: 0x%x", stream->stream.pid, stream->stream.stream_type); goto discont; } - stid = psc_stid & 0x000000ff; - GST_LOG ("stream_id:0x%02x", stid); - - /* PES_packet_length 16 */ - /* FIXME : store the expected pes length somewhere ? */ - pesplength = GST_READ_UINT16_BE (data); - data += 2; - length -= 2; - GST_LOG ("PES_packet_length:%d", pesplength); - - /* FIXME : Only parse header on streams which require it (see table 2-21) */ - if (stid != 0xbf) { - guint8 p1, p2; - guint64 pts, dts; - p1 = *data++; - p2 = *data++; - PES_header_data_length = *data++ + 3; - length -= 3; - - GST_LOG ("0x%02x 0x%02x 0x%02x", p1, p2, PES_header_data_length); - GST_LOG ("PES header data length:%d", PES_header_data_length); - - /* '10' 2 - * PES_scrambling_control 2 - * PES_priority 1 - * data_alignment_indicator 1 - * copyright 1 - * original_or_copy 1 */ - if (G_UNLIKELY ((p1 & 0xc0) != 0x80)) { - GST_WARNING ("p1 >> 6 != 0x2"); - goto discont; - } - /* PTS_DTS_flags 2 - * ESCR_flag 1 - * ES_rate_flag 1 - * DSM_trick_mode_flag 1 - * additional_copy_info_flag 1 - * PES_CRC_flag 1 - * PES_extension_flag 1*/ - - /* PES_header_data_length 8 */ - if (G_UNLIKELY (length < PES_header_data_length)) { - GST_WARNING ("length < PES_header_data_length"); - goto discont; + if (header.DTS != -1) + gst_ts_demux_record_dts (demux, stream, header.DTS, bufferoffset); + + if (header.PTS != -1) { + gst_ts_demux_record_pts (demux, stream, header.PTS, bufferoffset); + +#if 0 + /* WTH IS THIS ??? */ + if (demux->index_pcr.offset + PCR_WRAP_SIZE_128KBPS + 1000 * 128 < offset + || (demux->index_pcr.offset > offset)) { + /* find next entry */ + TSPcrOffset *next; + demux->index_pcr.offset = offset; + next = gst_util_array_binary_search (demux->index->data, + demux->index_size, sizeof (*next), TSPcrOffset_find_offset, + GST_SEARCH_MODE_BEFORE, &demux->index_pcr, NULL); + if (next) { + GST_INFO ("new index_pcr %" GST_TIME_FORMAT " offset: %" + G_GINT64_FORMAT, GST_TIME_ARGS (next->gsttime), next->offset); + + demux->index_pcr = *next; + } } + time = calc_gsttime_from_pts (&demux->index_pcr, pts); +#endif - /* PTS 32 */ - if ((p2 & 0x80)) { /* PTS */ - READ_TS (data, pts, discont); - gst_ts_demux_record_pts (demux, stream, pts, - GST_BUFFER_OFFSET (stream->pendingbuffers[0])); - length -= 4; - GST_BUFFER_TIMESTAMP (stream->pendingbuffers[0]) = - MPEGTIME_TO_GSTTIME (pts); - - if (!GST_CLOCK_TIME_IS_VALID (stream->pts)) { - stream->pts = GST_BUFFER_TIMESTAMP (stream->pendingbuffers[0]); + GST_DEBUG_OBJECT (base, "stream PTS %" GST_TIME_FORMAT, + GST_TIME_ARGS (stream->pts)); + + /* safe default if insufficient upstream info */ + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (base->in_gap) && + GST_CLOCK_TIME_IS_VALID (base->first_buf_ts) && + base->mode == BASE_MODE_PUSHING && + base->segment.format == GST_FORMAT_TIME)) { + /* Find the earliest current PTS we're going to push */ + GstClockTime firstpts = GST_CLOCK_TIME_NONE; + GList *tmp; + + for (tmp = demux->program->stream_list; tmp; tmp = tmp->next) { + TSDemuxStream *pstream = (TSDemuxStream *) tmp->data; + if (!GST_CLOCK_TIME_IS_VALID (firstpts) || pstream->pts < firstpts) + firstpts = pstream->pts; } + base->in_gap = base->first_buf_ts - firstpts; + GST_DEBUG_OBJECT (base, "upstream segment start %" GST_TIME_FORMAT + ", first buffer timestamp: %" GST_TIME_FORMAT + ", first PTS: %" GST_TIME_FORMAT + ", interpolation gap: %" GST_TIME_FORMAT, + GST_TIME_ARGS (base->segment.start), + GST_TIME_ARGS (base->first_buf_ts), GST_TIME_ARGS (firstpts), + GST_TIME_ARGS (base->in_gap)); } - /* DTS 32 */ - if ((p2 & 0x40)) { /* DTS */ - READ_TS (data, dts, discont); - gst_ts_demux_record_dts (demux, stream, dts, - GST_BUFFER_OFFSET (stream->pendingbuffers[0])); - length -= 4; - } - /* ESCR 48 */ - if ((p2 & 0x20)) { - GST_LOG ("ESCR present"); - data += 6; - length -= 6; - } - /* ES_rate 24 */ - if ((p2 & 0x10)) { - GST_LOG ("ES_rate present"); - data += 3; - length -= 3; - } - /* DSM_trick_mode 8 */ - if ((p2 & 0x08)) { - GST_LOG ("DSM_trick_mode present"); - data += 1; - length -= 1; - } + + if (!GST_CLOCK_TIME_IS_VALID (base->in_gap)) + base->in_gap = 0; + + GST_BUFFER_TIMESTAMP (stream->pendingbuffers[0]) = + stream->pts + base->in_gap; } /* Remove PES headers */ - GST_BUFFER_DATA (stream->pendingbuffers[0]) += 6 + PES_header_data_length; - GST_BUFFER_SIZE (stream->pendingbuffers[0]) -= 6 + PES_header_data_length; + GST_DEBUG ("Moving data forward by %d bytes", header.header_size); + GST_BUFFER_DATA (stream->pendingbuffers[0]) += header.header_size; + GST_BUFFER_SIZE (stream->pendingbuffers[0]) -= header.header_size; /* FIXME : responsible for switching to PENDING_PACKET_BUFFER and * creating the bufferlist */ @@ -1340,18 +2168,97 @@ gst_ts_demux_queue_data (GstTSDemux * demux, TSDemuxStream * stream, return; } +static void +calculate_and_push_newsegment (GstTSDemux * demux, TSDemuxStream * stream) +{ + MpegTSBase *base = (MpegTSBase *) demux; + GstEvent *newsegmentevent; + gint64 start = 0, stop = GST_CLOCK_TIME_NONE, position = 0; + GstClockTime firstpts = GST_CLOCK_TIME_NONE; + GList *tmp; + + GST_DEBUG ("Creating new newsegment for stream %p", stream); + + /* Outgoing newsegment values + * start : The first/start PTS + * stop : The last PTS (or -1) + * position : The stream time corresponding to start + * + * Except for live mode with incoming GST_TIME_FORMAT newsegment where + * it is the same values as that incoming newsegment (and we convert the + * PTS to that remote clock). + */ + + for (tmp = demux->program->stream_list; tmp; tmp = tmp->next) { + TSDemuxStream *pstream = (TSDemuxStream *) tmp->data; + + if (!GST_CLOCK_TIME_IS_VALID (firstpts) || pstream->pts < firstpts) + firstpts = pstream->pts; + } + + if (base->mode == BASE_MODE_PUSHING) { + /* FIXME : We're just ignore the upstream format for the time being */ + /* FIXME : We should use base->segment.format and a upstream latency query + * to decide if we need to use live values or not */ + GST_DEBUG ("push-based. base Segment start:%" GST_TIME_FORMAT " duration:%" + GST_TIME_FORMAT ", stop:%" GST_TIME_FORMAT ", time:%" GST_TIME_FORMAT, + GST_TIME_ARGS (base->segment.start), + GST_TIME_ARGS (base->segment.duration), + GST_TIME_ARGS (base->segment.stop), GST_TIME_ARGS (base->segment.time)); + GST_DEBUG ("push-based. demux Segment start:%" GST_TIME_FORMAT " duration:%" + GST_TIME_FORMAT ", stop:%" GST_TIME_FORMAT ", time:%" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->segment.start), + GST_TIME_ARGS (demux->segment.duration), + GST_TIME_ARGS (demux->segment.stop), + GST_TIME_ARGS (demux->segment.time)); + + GST_DEBUG ("stream pts: %" GST_TIME_FORMAT " first pts: %" GST_TIME_FORMAT, + GST_TIME_ARGS (stream->pts), GST_TIME_ARGS (firstpts)); + + if (base->segment.format == GST_FORMAT_TIME) { + start = base->segment.start; + stop = base->segment.stop; + } + /* Shift the start depending on our position in the stream */ + start += firstpts + base->in_gap - base->first_buf_ts; + position = start; + } else { + /* pull mode */ + GST_DEBUG ("pull-based. Segment start:%" GST_TIME_FORMAT " duration:%" + GST_TIME_FORMAT ", time:%" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->segment.start), + GST_TIME_ARGS (demux->segment.duration), + GST_TIME_ARGS (demux->segment.time)); + + GST_DEBUG ("firstpcr gsttime : %" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->first_pcr.gsttime)); + + /* FIXME : This is not entirely correct. We should be using the PTS time + * realm and not the PCR one. Doesn't matter *too* much if PTS/PCR values + * aren't too far apart, but still. */ + start = demux->first_pcr.gsttime + demux->segment.start; + stop = demux->first_pcr.gsttime + demux->segment.duration; + position = demux->segment.time; + } + + GST_DEBUG ("new segment: start: %" GST_TIME_FORMAT " stop: %" + GST_TIME_FORMAT " time: %" GST_TIME_FORMAT, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop), GST_TIME_ARGS (position)); + newsegmentevent = + gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, start, stop, + position); + + push_event ((MpegTSBase *) demux, newsegmentevent); + + demux->need_newsegment = FALSE; +} + static GstFlowReturn gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream) { GstFlowReturn res = GST_FLOW_OK; MpegTSBaseStream *bs = (MpegTSBaseStream *) stream; - - guint i; - GstClockTime tinypts = GST_CLOCK_TIME_NONE; - GstClockTime stop = GST_CLOCK_TIME_NONE; - GstEvent *newsegmentevent; - GST_DEBUG ("stream:%p, pid:0x%04x stream_type:%d state:%d pad:%s:%s", stream, bs->pid, bs->stream_type, stream->state, GST_DEBUG_PAD_NAME (stream->pad)); @@ -1366,69 +2273,44 @@ gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream) goto beach; } - /* We have a confirmed buffer, let's push it out */ - if (stream->state == PENDING_PACKET_BUFFER) { - GST_LOG ("BUFFER: pushing out pending data"); - stream->currentlist = g_list_reverse (stream->currentlist); - gst_buffer_list_iterator_add_list (stream->currentit, stream->currentlist); - gst_buffer_list_iterator_free (stream->currentit); - - - if (stream->pad) { - - if (demux->need_newsegment) { - - for (i = 0; i < 0x2000; i++) { - - if (demux->program->streams[i]) { - if ((!GST_CLOCK_TIME_IS_VALID (tinypts)) - || (((TSDemuxStream *) demux->program->streams[i])->pts < - tinypts)) - tinypts = ((TSDemuxStream *) demux->program->streams[i])->pts; - } - - - } - - if (GST_CLOCK_TIME_IS_VALID (demux->duration)) - stop = tinypts + demux->duration; + if (G_UNLIKELY (stream->state != PENDING_PACKET_BUFFER)) + goto beach; - GST_DEBUG ("Sending newsegment event"); - newsegmentevent = - gst_event_new_new_segment (0, 1.0, GST_FORMAT_TIME, tinypts, stop, - 0); + if (G_UNLIKELY (stream->pad == NULL)) { + g_list_foreach (stream->currentlist, (GFunc) gst_buffer_unref, NULL); + g_list_free (stream->currentlist); + gst_buffer_list_iterator_free (stream->currentit); + gst_buffer_list_unref (stream->current); + goto beach; + } - push_event ((MpegTSBase *) demux, newsegmentevent); + if (G_UNLIKELY (demux->need_newsegment)) + calculate_and_push_newsegment (demux, stream); - demux->need_newsegment = FALSE; - } + /* We have a confirmed buffer, let's push it out */ + GST_LOG ("Putting pending data into GstBufferList"); + stream->currentlist = g_list_reverse (stream->currentlist); + gst_buffer_list_iterator_add_list (stream->currentit, stream->currentlist); + gst_buffer_list_iterator_free (stream->currentit); - GST_DEBUG_OBJECT (stream->pad, "Pushing buffer list "); + GST_DEBUG_OBJECT (stream->pad, + "Pushing buffer list with timestamp: %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (gst_buffer_list_get + (stream->current, 0, 0)))); - res = gst_pad_push_list (stream->pad, stream->current); - GST_DEBUG_OBJECT (stream->pad, "Returned %s", gst_flow_get_name (res)); - /* FIXME : combine flow returns */ - res = tsdemux_combine_flows (demux, stream, res); - GST_DEBUG_OBJECT (stream->pad, "combined %s", gst_flow_get_name (res)); - } else { - gst_buffer_list_unref (stream->current); - } - } + res = gst_pad_push_list (stream->pad, stream->current); + GST_DEBUG_OBJECT (stream->pad, "Returned %s", gst_flow_get_name (res)); + res = tsdemux_combine_flows (demux, stream, res); + GST_DEBUG_OBJECT (stream->pad, "combined %s", gst_flow_get_name (res)); beach: /* Reset everything */ GST_LOG ("Resetting to EMPTY"); stream->state = PENDING_PACKET_EMPTY; - - /* for (i = 0; i < stream->nbpending; i++) */ - /* gst_buffer_unref (stream->pendingbuffers[i]); */ memset (stream->pendingbuffers, 0, TS_MAX_PENDING_BUFFERS); stream->nbpending = 0; - stream->current = NULL; - - return res; } @@ -1474,6 +2356,15 @@ gst_ts_demux_handle_packet (GstTSDemux * demux, TSDemuxStream * stream, return res; } +static void +gst_ts_demux_flush (MpegTSBase * base) +{ + GstTSDemux *demux = GST_TS_DEMUX_CAST (base); + + demux->need_newsegment = TRUE; + gst_ts_demux_flush_streams (demux); +} + static GstFlowReturn gst_ts_demux_push (MpegTSBase * base, MpegTSPacketizerPacket * packet, MpegTSPacketizerSection * section) @@ -1501,6 +2392,7 @@ gst_ts_demux_plugin_init (GstPlugin * plugin) { GST_DEBUG_CATEGORY_INIT (ts_demux_debug, "tsdemux", 0, "MPEG transport stream demuxer"); + init_pes_parser (); return gst_element_register (plugin, "tsdemux", GST_RANK_SECONDARY, GST_TYPE_TS_DEMUX); diff --git a/gst/mpegtsdemux/tsdemux.h b/gst/mpegtsdemux/tsdemux.h index bfee2df..395cf3e 100644 --- a/gst/mpegtsdemux/tsdemux.h +++ b/gst/mpegtsdemux/tsdemux.h @@ -48,6 +48,14 @@ G_BEGIN_DECLS #define GST_TS_DEMUX_CAST(obj) ((GstTSDemux*) obj) typedef struct _GstTSDemux GstTSDemux; typedef struct _GstTSDemuxClass GstTSDemuxClass; +typedef struct _TSPcrOffset TSPcrOffset; + +struct _TSPcrOffset +{ + guint64 gsttime; + guint64 pcr; + guint64 offset; +}; struct _GstTSDemux { @@ -62,7 +70,17 @@ struct _GstTSDemux MpegTSBaseProgram *program; /* Current program */ guint current_program_number; gboolean need_newsegment; + /* Downstream segment */ + GstSegment segment; GstClockTime duration; /* Total duration */ + + /* pcr wrap and seeking */ + GArray *index; + gint index_size; + TSPcrOffset first_pcr; + TSPcrOffset last_pcr; + TSPcrOffset cur_pcr; + TSPcrOffset index_pcr; }; struct _GstTSDemuxClass diff --git a/gst/mpegtsmux/Makefile.am b/gst/mpegtsmux/Makefile.am index c433af3..99adf80 100644 --- a/gst/mpegtsmux/Makefile.am +++ b/gst/mpegtsmux/Makefile.am @@ -7,8 +7,9 @@ libgstmpegtsmux_la_SOURCES = \ mpegtsmux_h264.c \ mpegtsmux_aac.c -libgstmpegtsmux_la_CFLAGS = $(GST_CFLAGS) -libgstmpegtsmux_la_LIBADD = $(top_builddir)/gst/mpegtsmux/tsmux/libtsmux.la $(GST_LIBS) $(GST_BASE_LIBS) +libgstmpegtsmux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstmpegtsmux_la_LIBADD = $(top_builddir)/gst/mpegtsmux/tsmux/libtsmux.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) libgstmpegtsmux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstmpegtsmux_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/gst/mpegtsmux/Makefile.in b/gst/mpegtsmux/Makefile.in index 6c8bd83..0460752 100644 --- a/gst/mpegtsmux/Makefile.in +++ b/gst/mpegtsmux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,18 +101,25 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstmpegtsmux_la_DEPENDENCIES = \ $(top_builddir)/gst/mpegtsmux/tsmux/libtsmux.la \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_libgstmpegtsmux_la_OBJECTS = libgstmpegtsmux_la-mpegtsmux.lo \ libgstmpegtsmux_la-mpegtsmux_h264.lo \ libgstmpegtsmux_la-mpegtsmux_aac.lo libgstmpegtsmux_la_OBJECTS = $(am_libgstmpegtsmux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpegtsmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpegtsmux_la_SOURCES) DIST_SOURCES = $(libgstmpegtsmux_la_SOURCES) @@ -191,7 +199,6 @@ 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@ @@ -209,7 +216,6 @@ 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@ @@ -244,6 +250,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -283,6 +290,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,6 +308,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -308,13 +317,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -339,13 +351,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -393,6 +406,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -424,8 +438,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -449,6 +467,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -473,10 +493,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -488,6 +512,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -512,6 +540,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -547,7 +576,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -575,8 +603,10 @@ libgstmpegtsmux_la_SOURCES = \ mpegtsmux_h264.c \ mpegtsmux_aac.c -libgstmpegtsmux_la_CFLAGS = $(GST_CFLAGS) -libgstmpegtsmux_la_LIBADD = $(top_builddir)/gst/mpegtsmux/tsmux/libtsmux.la $(GST_LIBS) $(GST_BASE_LIBS) +libgstmpegtsmux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstmpegtsmux_la_LIBADD = $(top_builddir)/gst/mpegtsmux/tsmux/libtsmux.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) + libgstmpegtsmux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstmpegtsmux_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ @@ -649,7 +679,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpegtsmux.la: $(libgstmpegtsmux_la_OBJECTS) $(libgstmpegtsmux_la_DEPENDENCIES) +libgstmpegtsmux.la: $(libgstmpegtsmux_la_OBJECTS) $(libgstmpegtsmux_la_DEPENDENCIES) $(EXTRA_libgstmpegtsmux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmpegtsmux_la_LINK) -rpath $(plugindir) $(libgstmpegtsmux_la_OBJECTS) $(libgstmpegtsmux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -665,50 +695,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmpegtsmux_la-mpegtsmux.lo: mpegtsmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsmux_la-mpegtsmux.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux.Tpo -c -o libgstmpegtsmux_la-mpegtsmux.lo `test -f 'mpegtsmux.c' || echo '$(srcdir)/'`mpegtsmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux.Tpo $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsmux.c' object='libgstmpegtsmux_la-mpegtsmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsmux.c' object='libgstmpegtsmux_la-mpegtsmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux.lo `test -f 'mpegtsmux.c' || echo '$(srcdir)/'`mpegtsmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux.lo `test -f 'mpegtsmux.c' || echo '$(srcdir)/'`mpegtsmux.c libgstmpegtsmux_la-mpegtsmux_h264.lo: mpegtsmux_h264.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsmux_la-mpegtsmux_h264.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_h264.Tpo -c -o libgstmpegtsmux_la-mpegtsmux_h264.lo `test -f 'mpegtsmux_h264.c' || echo '$(srcdir)/'`mpegtsmux_h264.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_h264.Tpo $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_h264.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsmux_h264.c' object='libgstmpegtsmux_la-mpegtsmux_h264.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsmux_h264.c' object='libgstmpegtsmux_la-mpegtsmux_h264.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux_h264.lo `test -f 'mpegtsmux_h264.c' || echo '$(srcdir)/'`mpegtsmux_h264.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux_h264.lo `test -f 'mpegtsmux_h264.c' || echo '$(srcdir)/'`mpegtsmux_h264.c libgstmpegtsmux_la-mpegtsmux_aac.lo: mpegtsmux_aac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -MT libgstmpegtsmux_la-mpegtsmux_aac.lo -MD -MP -MF $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_aac.Tpo -c -o libgstmpegtsmux_la-mpegtsmux_aac.lo `test -f 'mpegtsmux_aac.c' || echo '$(srcdir)/'`mpegtsmux_aac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_aac.Tpo $(DEPDIR)/libgstmpegtsmux_la-mpegtsmux_aac.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegtsmux_aac.c' object='libgstmpegtsmux_la-mpegtsmux_aac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegtsmux_aac.c' object='libgstmpegtsmux_la-mpegtsmux_aac.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux_aac.lo `test -f 'mpegtsmux_aac.c' || echo '$(srcdir)/'`mpegtsmux_aac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegtsmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegtsmux_la_CFLAGS) $(CFLAGS) -c -o libgstmpegtsmux_la-mpegtsmux_aac.lo `test -f 'mpegtsmux_aac.c' || echo '$(srcdir)/'`mpegtsmux_aac.c mostlyclean-libtool: -rm -f *.lo @@ -927,10 +951,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c index 09cf3ec..a243e40 100644 --- a/gst/mpegtsmux/mpegtsmux.c +++ b/gst/mpegtsmux/mpegtsmux.c @@ -88,6 +88,8 @@ #include #include +#include + #include "mpegtsmux.h" #include "mpegtsmux_h264.h" @@ -115,7 +117,9 @@ static GstStaticPadTemplate mpegtsmux_sink_factory = "video/x-dirac;" "video/x-h264,stream-format=(string)byte-stream;" "audio/mpeg, " - "mpegversion = (int) { 1, 2, 4 };" + "mpegversion = (int) { 1, 2 };" + "audio/mpeg, " + "mpegversion = (int) 4, stream-format = (string) { raw, adts };" "audio/x-lpcm, " "width = (int) { 16, 20, 24 }, " "rate = (int) { 48000, 96000 }, " @@ -151,6 +155,8 @@ static void mpegtsmux_release_pad (GstElement * element, GstPad * pad); static GstStateChangeReturn mpegtsmux_change_state (GstElement * element, GstStateChange transition); static void mpegtsdemux_set_header_on_caps (MpegTsMux * mux); +static gboolean mpegtsmux_sink_event (GstPad * pad, GstEvent * event); +static gboolean mpegtsmux_src_event (GstPad * pad, GstEvent * event); GST_BOILERPLATE (MpegTsMux, mpegtsmux, GstElement, GST_TYPE_ELEMENT); @@ -160,10 +166,10 @@ mpegtsmux_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 (&mpegtsmux_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mpegtsmux_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &mpegtsmux_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &mpegtsmux_src_factory); gst_element_class_set_details_simple (element_class, "MPEG Transport Stream Muxer", "Codec/Muxer", @@ -215,6 +221,7 @@ mpegtsmux_init (MpegTsMux * mux, MpegTsMuxClass * g_class) mux->srcpad = gst_pad_new_from_static_template (&mpegtsmux_src_factory, "src"); gst_pad_use_fixed_caps (mux->srcpad); + gst_pad_set_event_function (mux->srcpad, mpegtsmux_src_event); gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); mux->collect = gst_collect_pads_new (); @@ -238,6 +245,8 @@ mpegtsmux_init (MpegTsMux * mux, MpegTsMuxClass * g_class) mux->prog_map = NULL; mux->streamheader = NULL; mux->streamheader_sent = FALSE; + mux->force_key_unit_event = NULL; + mux->pending_key_unit_ts = GST_CLOCK_TIME_NONE; } static void @@ -642,7 +651,9 @@ mpegtsmux_choose_best_stream (MpegTsMux * mux) } } if (c_best) { - gst_buffer_unref (gst_collect_pads_pop (mux->collect, c_best)); + GstBuffer *buffer; + if ((buffer = gst_collect_pads_pop (mux->collect, c_best))) + gst_buffer_unref (buffer); } return best; @@ -650,6 +661,201 @@ mpegtsmux_choose_best_stream (MpegTsMux * mux) #define COLLECT_DATA_PAD(collect_data) (((GstCollectData *)(collect_data))->pad) +static MpegTsPadData * +find_pad_data (MpegTsMux * mux, GstPad * pad) +{ + GSList *walk; + MpegTsPadData *ts_data = NULL; + + GST_COLLECT_PADS_PAD_LOCK (mux->collect); + walk = mux->collect->abidata.ABI.pad_list; + while (walk) { + if (((GstCollectData *) walk->data)->pad == pad) { + ts_data = (MpegTsPadData *) walk->data; + break; + } + + walk = g_slist_next (walk); + } + GST_COLLECT_PADS_PAD_UNLOCK (mux->collect); + + return ts_data; +} + +static gboolean +mpegtsmux_sink_event (GstPad * pad, GstEvent * event) +{ + MpegTsMux *mux = GST_MPEG_TSMUX (gst_pad_get_parent (pad)); + MpegTsPadData *ts_data; + gboolean res = TRUE; + gboolean forward = TRUE; + + ts_data = find_pad_data (mux, pad); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_DOWNSTREAM: + { + GstClockTime timestamp, stream_time, running_time; + gboolean all_headers; + guint count; + + if (!gst_video_event_is_force_key_unit (event)) + goto out; + + forward = FALSE; + + gst_video_event_parse_downstream_force_key_unit (event, + ×tamp, &stream_time, &running_time, &all_headers, &count); + GST_INFO_OBJECT (mux, "have downstream force-key-unit event on pad %s, " + "seqnum %d, running-time %" GST_TIME_FORMAT " count %d", + gst_pad_get_name (pad), gst_event_get_seqnum (event), + GST_TIME_ARGS (running_time), count); + + if (mux->force_key_unit_event != NULL) { + GST_INFO_OBJECT (mux, "skipping downstream force key unit event " + "as an upstream force key unit is already queued"); + goto out; + } + + if (!all_headers) + goto out; + + mux->pending_key_unit_ts = running_time; + gst_event_replace (&mux->force_key_unit_event, event); + break; + } + default: + break; + } + +out: + if (forward) + res = ts_data->eventfunc (pad, event); + + gst_object_unref (mux); + return res; +} + +static gboolean +mpegtsmux_src_event (GstPad * pad, GstEvent * event) +{ + MpegTsMux *mux = GST_MPEG_TSMUX (gst_pad_get_parent (pad)); + gboolean res = TRUE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_UPSTREAM: + { + GstIterator *iter; + GstIteratorResult iter_ret; + GstPad *sinkpad; + GstClockTime running_time; + gboolean all_headers, done; + guint count; + + if (!gst_video_event_is_force_key_unit (event)) + break; + + gst_video_event_parse_upstream_force_key_unit (event, + &running_time, &all_headers, &count); + + GST_INFO_OBJECT (mux, "received upstream force-key-unit event, " + "seqnum %d running_time %" GST_TIME_FORMAT " all_headers %d count %d", + gst_event_get_seqnum (event), GST_TIME_ARGS (running_time), + all_headers, count); + + if (!all_headers) + break; + + mux->pending_key_unit_ts = running_time; + gst_event_replace (&mux->force_key_unit_event, event); + + iter = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (mux)); + done = FALSE; + while (!done) { + gboolean res = FALSE, tmp; + iter_ret = gst_iterator_next (iter, (gpointer *) & sinkpad); + + switch (iter_ret) { + case GST_ITERATOR_DONE: + done = TRUE; + break; + case GST_ITERATOR_OK: + GST_INFO_OBJECT (mux, "forwarding to %s", + gst_pad_get_name (sinkpad)); + tmp = gst_pad_push_event (sinkpad, gst_event_ref (event)); + GST_INFO_OBJECT (mux, "result %d", tmp); + /* succeed if at least one pad succeeds */ + res |= tmp; + gst_object_unref (sinkpad); + break; + case GST_ITERATOR_ERROR: + done = TRUE; + break; + case GST_ITERATOR_RESYNC: + break; + } + } + + gst_event_unref (event); + break; + } + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (mux); + return res; +} + +static GstEvent * +check_pending_key_unit_event (GstEvent * pending_event, GstSegment * segment, + GstClockTime timestamp, guint flags, GstClockTime pending_key_unit_ts) +{ + GstClockTime running_time, stream_time; + gboolean all_headers; + guint count; + GstEvent *event = NULL; + + g_return_val_if_fail (pending_event != NULL, NULL); + g_return_val_if_fail (segment != NULL, NULL); + + if (pending_event == NULL) + goto out; + + if (GST_CLOCK_TIME_IS_VALID (pending_key_unit_ts) && + timestamp == GST_CLOCK_TIME_NONE) + goto out; + + running_time = gst_segment_to_running_time (segment, + GST_FORMAT_TIME, timestamp); + + GST_INFO ("now %" GST_TIME_FORMAT " wanted %" GST_TIME_FORMAT, + GST_TIME_ARGS (running_time), GST_TIME_ARGS (pending_key_unit_ts)); + if (GST_CLOCK_TIME_IS_VALID (pending_key_unit_ts) && + running_time < pending_key_unit_ts) + goto out; + + if (flags & GST_BUFFER_FLAG_DELTA_UNIT) { + GST_INFO ("pending force key unit, waiting for keyframe"); + goto out; + } + + stream_time = gst_segment_to_stream_time (segment, + GST_FORMAT_TIME, timestamp); + + gst_video_event_parse_upstream_force_key_unit (pending_event, + NULL, &all_headers, &count); + + event = + gst_video_event_new_downstream_force_key_unit (timestamp, stream_time, + running_time, all_headers, count); + gst_event_set_seqnum (event, gst_event_get_seqnum (pending_event)); + +out: + return event; +} + static GstFlowReturn mpegtsmux_collected (GstCollectPads * pads, MpegTsMux * mux) { @@ -679,22 +885,57 @@ mpegtsmux_collected (GstCollectPads * pads, MpegTsMux * mux) if (prog == NULL) { GST_ELEMENT_ERROR (mux, STREAM, MUX, ("Stream on pad %" GST_PTR_FORMAT - " is not associated with any program", best), (NULL)); + " is not associated with any program", COLLECT_DATA_PAD (best)), + (NULL)); return GST_FLOW_ERROR; } - if (G_UNLIKELY (prog->pcr_stream == NULL)) { - if (best) { - /* Take the first data stream for the PCR */ - GST_DEBUG_OBJECT (COLLECT_DATA_PAD (best), - "Use stream (pid=%d) from pad as PCR for program (prog_id = %d)", - MPEG_TS_PAD_DATA (best)->pid, MPEG_TS_PAD_DATA (best)->prog_id); - - /* Set the chosen PCR stream */ - tsmux_program_set_pcr_stream (prog, best->stream); + if (mux->force_key_unit_event != NULL && best->stream->is_video_stream) { + GstEvent *event; + + event = check_pending_key_unit_event (mux->force_key_unit_event, + &best->collect.segment, GST_BUFFER_TIMESTAMP (buf), + GST_BUFFER_FLAGS (buf), mux->pending_key_unit_ts); + if (event) { + GstClockTime running_time; + guint count; + GList *cur; + + mux->pending_key_unit_ts = GST_CLOCK_TIME_NONE; + gst_event_replace (&mux->force_key_unit_event, NULL); + + gst_video_event_parse_downstream_force_key_unit (event, + NULL, NULL, &running_time, NULL, &count); + + GST_INFO_OBJECT (mux, "pushing downstream force-key-unit event %d " + "%" GST_TIME_FORMAT " count %d", gst_event_get_seqnum (event), + GST_TIME_ARGS (running_time), count); + gst_pad_push_event (mux->srcpad, event); + + /* output PAT */ + mux->tsmux->last_pat_ts = -1; + + /* output PMT for each program */ + for (cur = g_list_first (mux->tsmux->programs); cur != NULL; + cur = g_list_next (cur)) { + TsMuxProgram *program = (TsMuxProgram *) cur->data; + + program->last_pmt_ts = -1; + } + tsmux_program_set_pcr_stream (prog, NULL); } } + if (G_UNLIKELY (prog->pcr_stream == NULL)) { + /* Take the first data stream for the PCR */ + GST_DEBUG_OBJECT (COLLECT_DATA_PAD (best), + "Use stream (pid=%d) from pad as PCR for program (prog_id = %d)", + MPEG_TS_PAD_DATA (best)->pid, MPEG_TS_PAD_DATA (best)->prog_id); + + /* Set the chosen PCR stream */ + tsmux_program_set_pcr_stream (prog, best->stream); + } + g_return_val_if_fail (buf != NULL, GST_FLOW_ERROR); if (best->stream->is_video_stream) delta = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); @@ -764,6 +1005,9 @@ mpegtsmux_request_new_pad (GstElement * element, if (pad_data == NULL) goto pad_failure; + pad_data->eventfunc = pad->eventfunc; + gst_pad_set_event_function (pad, mpegtsmux_sink_event); + pad_data->pid = pid; pad_data->last_ts = GST_CLOCK_TIME_NONE; pad_data->codec_data = NULL; @@ -860,11 +1104,11 @@ new_packet_m2ts (MpegTsMux * mux, guint8 * data, guint len, gint64 new_pcr) return FALSE; } - new_packet_common_init (mux, buf, data, len); - /* copies the TS data of 188 bytes to the m2ts buffer at an offset of 4 bytes to leave space for writing the timestamp later */ memcpy (GST_BUFFER_DATA (buf) + 4, data, len); + /* After copying the data into the buffer, do other common init (flags and streamheaders) */ + new_packet_common_init (mux, buf, data, len); if (new_pcr < 0) { /* If theres no pcr in current ts packet then just add the packet @@ -971,9 +1215,10 @@ new_packet_normal_ts (MpegTsMux * mux, guint8 * data, guint len, gint64 new_pcr) return FALSE; } + memcpy (GST_BUFFER_DATA (buf), data, len); + /* After copying the data into the buffer, do other common init (flags and streamheaders) */ new_packet_common_init (mux, buf, data, len); - memcpy (GST_BUFFER_DATA (buf), data, len); GST_BUFFER_TIMESTAMP (buf) = mux->last_ts; ret = gst_pad_push (mux->srcpad, buf); diff --git a/gst/mpegtsmux/mpegtsmux.h b/gst/mpegtsmux/mpegtsmux.h index b45dd34..26003a8 100644 --- a/gst/mpegtsmux/mpegtsmux.h +++ b/gst/mpegtsmux/mpegtsmux.h @@ -128,6 +128,8 @@ struct MpegTsMux { GList *streamheader; gboolean streamheader_sent; + GstClockTime pending_key_unit_ts; + GstEvent *force_key_unit_event; }; struct MpegTsMuxClass { @@ -157,7 +159,8 @@ struct MpegTsPadData { gboolean eos; gint prog_id; /* The program id to which it is attached to (not program pid) */ - TsMuxProgram *prog; /* The program to which this stream belongs to */ + TsMuxProgram *prog; /* The program to which this stream belongs to */ + GstPadEventFunction eventfunc; }; GType mpegtsmux_get_type (void); diff --git a/gst/mpegtsmux/mpegtsmux_aac.c b/gst/mpegtsmux/mpegtsmux_aac.c index 5afefc8..c433664 100644 --- a/gst/mpegtsmux/mpegtsmux_aac.c +++ b/gst/mpegtsmux/mpegtsmux_aac.c @@ -87,7 +87,6 @@ #include "mpegtsmux_aac.h" #include -GST_DEBUG_CATEGORY_EXTERN (mpegtsmux_debug); #define GST_CAT_DEFAULT mpegtsmux_debug GstBuffer * diff --git a/gst/mpegtsmux/mpegtsmux_h264.c b/gst/mpegtsmux/mpegtsmux_h264.c index 7188ce7..bdf7f2f 100644 --- a/gst/mpegtsmux/mpegtsmux_h264.c +++ b/gst/mpegtsmux/mpegtsmux_h264.c @@ -87,7 +87,6 @@ #include "mpegtsmux_h264.h" #include -GST_DEBUG_CATEGORY_EXTERN (mpegtsmux_debug); #define GST_CAT_DEFAULT mpegtsmux_debug #define SPS_PPS_PERIOD GST_SECOND diff --git a/gst/mpegtsmux/tsmux/Makefile.in b/gst/mpegtsmux/tsmux/Makefile.in index 3978c3c..ca0d3a9 100644 --- a/gst/mpegtsmux/tsmux/Makefile.in +++ b/gst/mpegtsmux/tsmux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -85,8 +86,8 @@ libtsmux_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libtsmux_la_OBJECTS = libtsmux_la-tsmux.lo \ libtsmux_la-tsmuxstream.lo libtsmux_la_OBJECTS = $(am_libtsmux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libtsmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libtsmux_la_CFLAGS) \ @@ -101,21 +102,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libtsmux_la_SOURCES) DIST_SOURCES = $(libtsmux_la_SOURCES) @@ -127,7 +128,6 @@ 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@ @@ -145,7 +145,6 @@ 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@ @@ -180,6 +179,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -219,6 +219,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -236,6 +237,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -244,13 +246,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -275,13 +280,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -329,6 +335,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -360,8 +367,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -385,6 +396,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -409,10 +422,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -424,6 +441,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -448,6 +469,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -483,7 +505,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -553,7 +574,7 @@ clean-noinstLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libtsmux.la: $(libtsmux_la_OBJECTS) $(libtsmux_la_DEPENDENCIES) +libtsmux.la: $(libtsmux_la_OBJECTS) $(libtsmux_la_DEPENDENCIES) $(EXTRA_libtsmux_la_DEPENDENCIES) $(AM_V_CCLD)$(libtsmux_la_LINK) $(libtsmux_la_OBJECTS) $(libtsmux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -568,42 +589,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libtsmux_la-tsmux.lo: tsmux.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) $(libtsmux_la_CFLAGS) $(CFLAGS) -MT libtsmux_la-tsmux.lo -MD -MP -MF $(DEPDIR)/libtsmux_la-tsmux.Tpo -c -o libtsmux_la-tsmux.lo `test -f 'tsmux.c' || echo '$(srcdir)/'`tsmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtsmux_la-tsmux.Tpo $(DEPDIR)/libtsmux_la-tsmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tsmux.c' object='libtsmux_la-tsmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tsmux.c' object='libtsmux_la-tsmux.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) $(libtsmux_la_CFLAGS) $(CFLAGS) -c -o libtsmux_la-tsmux.lo `test -f 'tsmux.c' || echo '$(srcdir)/'`tsmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtsmux_la_CFLAGS) $(CFLAGS) -c -o libtsmux_la-tsmux.lo `test -f 'tsmux.c' || echo '$(srcdir)/'`tsmux.c libtsmux_la-tsmuxstream.lo: tsmuxstream.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) $(libtsmux_la_CFLAGS) $(CFLAGS) -MT libtsmux_la-tsmuxstream.lo -MD -MP -MF $(DEPDIR)/libtsmux_la-tsmuxstream.Tpo -c -o libtsmux_la-tsmuxstream.lo `test -f 'tsmuxstream.c' || echo '$(srcdir)/'`tsmuxstream.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtsmux_la-tsmuxstream.Tpo $(DEPDIR)/libtsmux_la-tsmuxstream.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tsmuxstream.c' object='libtsmux_la-tsmuxstream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tsmuxstream.c' object='libtsmux_la-tsmuxstream.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) $(libtsmux_la_CFLAGS) $(CFLAGS) -c -o libtsmux_la-tsmuxstream.lo `test -f 'tsmuxstream.c' || echo '$(srcdir)/'`tsmuxstream.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtsmux_la_CFLAGS) $(CFLAGS) -c -o libtsmux_la-tsmuxstream.lo `test -f 'tsmuxstream.c' || echo '$(srcdir)/'`tsmuxstream.c mostlyclean-libtool: -rm -f *.lo @@ -707,10 +723,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c index e160197..72095d0 100644 --- a/gst/mpegtsmux/tsmux/tsmux.c +++ b/gst/mpegtsmux/tsmux/tsmux.c @@ -87,6 +87,8 @@ #include "tsmuxstream.h" #include "crc.h" +#define GST_CAT_DEFAULT mpegtsmux_debug + /* Maximum total data length for a PAT section is 1024 bytes, minus an * 8 byte header, then the length of each program entry is 32 bits, * then finally a 32 bit CRC. Thus the maximum number of programs in this mux diff --git a/gst/mpegtsmux/tsmux/tsmuxcommon.h b/gst/mpegtsmux/tsmux/tsmuxcommon.h index 4bc7304..9657b30 100644 --- a/gst/mpegtsmux/tsmux/tsmuxcommon.h +++ b/gst/mpegtsmux/tsmux/tsmuxcommon.h @@ -81,8 +81,7 @@ #define __TSMUX_COMMON_H__ #include - -#undef TS_DEBUG_ON +#include G_BEGIN_DECLS @@ -169,11 +168,8 @@ tsmux_put_ts (guint8 **pos, guint8 id, gint64 ts) tsmux_put16 (pos, ((ts << 1) & 0xfffe) | 0x01); } -#ifdef TS_DEBUG_ON -#define TS_DEBUG(...) g_print(__VA_ARGS__); g_print ("\n") -#else -#define TS_DEBUG(...) -#endif +GST_DEBUG_CATEGORY_EXTERN (mpegtsmux_debug); +#define TS_DEBUG GST_DEBUG G_END_DECLS diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.c b/gst/mpegtsmux/tsmux/tsmuxstream.c index f147bfc..28112e1 100644 --- a/gst/mpegtsmux/tsmux/tsmuxstream.c +++ b/gst/mpegtsmux/tsmux/tsmuxstream.c @@ -86,6 +86,8 @@ #include "tsmuxcommon.h" #include "tsmuxstream.h" +#define GST_CAT_DEFAULT mpegtsmux_debug + static guint8 tsmux_stream_pes_header_length (TsMuxStream * stream); static void tsmux_stream_write_pes_header (TsMuxStream * stream, guint8 * data); static void tsmux_stream_find_pts_dts_within (TsMuxStream * stream, guint bound, diff --git a/gst/mpegvideoparse/Makefile.in b/gst/mpegvideoparse/Makefile.in index 7ec781b..332ef6a 100644 --- a/gst/mpegvideoparse/Makefile.in +++ b/gst/mpegvideoparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstmpegvideoparse_la_OBJECTS = \ libgstmpegvideoparse_la-mpegpacketiser.lo libgstmpegvideoparse_la_OBJECTS = \ $(am_libgstmpegvideoparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmpegvideoparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmpegvideoparse_la_SOURCES) DIST_SOURCES = $(libgstmpegvideoparse_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -602,7 +629,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpegvideoparse.la: $(libgstmpegvideoparse_la_OBJECTS) $(libgstmpegvideoparse_la_DEPENDENCIES) +libgstmpegvideoparse.la: $(libgstmpegvideoparse_la_OBJECTS) $(libgstmpegvideoparse_la_DEPENDENCIES) $(EXTRA_libgstmpegvideoparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmpegvideoparse_la_LINK) -rpath $(plugindir) $(libgstmpegvideoparse_la_OBJECTS) $(libgstmpegvideoparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,42 +644,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmpegvideoparse_la-mpegvideoparse.lo: mpegvideoparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -MT libgstmpegvideoparse_la-mpegvideoparse.lo -MD -MP -MF $(DEPDIR)/libgstmpegvideoparse_la-mpegvideoparse.Tpo -c -o libgstmpegvideoparse_la-mpegvideoparse.lo `test -f 'mpegvideoparse.c' || echo '$(srcdir)/'`mpegvideoparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegvideoparse_la-mpegvideoparse.Tpo $(DEPDIR)/libgstmpegvideoparse_la-mpegvideoparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegvideoparse.c' object='libgstmpegvideoparse_la-mpegvideoparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegvideoparse.c' object='libgstmpegvideoparse_la-mpegvideoparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -c -o libgstmpegvideoparse_la-mpegvideoparse.lo `test -f 'mpegvideoparse.c' || echo '$(srcdir)/'`mpegvideoparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -c -o libgstmpegvideoparse_la-mpegvideoparse.lo `test -f 'mpegvideoparse.c' || echo '$(srcdir)/'`mpegvideoparse.c libgstmpegvideoparse_la-mpegpacketiser.lo: mpegpacketiser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -MT libgstmpegvideoparse_la-mpegpacketiser.lo -MD -MP -MF $(DEPDIR)/libgstmpegvideoparse_la-mpegpacketiser.Tpo -c -o libgstmpegvideoparse_la-mpegpacketiser.lo `test -f 'mpegpacketiser.c' || echo '$(srcdir)/'`mpegpacketiser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpegvideoparse_la-mpegpacketiser.Tpo $(DEPDIR)/libgstmpegvideoparse_la-mpegpacketiser.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpegpacketiser.c' object='libgstmpegvideoparse_la-mpegpacketiser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpegpacketiser.c' object='libgstmpegvideoparse_la-mpegpacketiser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -c -o libgstmpegvideoparse_la-mpegpacketiser.lo `test -f 'mpegpacketiser.c' || echo '$(srcdir)/'`mpegpacketiser.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpegvideoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpegvideoparse_la_CFLAGS) $(CFLAGS) -c -o libgstmpegvideoparse_la-mpegpacketiser.lo `test -f 'mpegpacketiser.c' || echo '$(srcdir)/'`mpegpacketiser.c mostlyclean-libtool: -rm -f *.lo @@ -759,10 +781,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mpegvideoparse/mpegpacketiser.c b/gst/mpegvideoparse/mpegpacketiser.c index 694c476..78721da 100644 --- a/gst/mpegvideoparse/mpegpacketiser.c +++ b/gst/mpegvideoparse/mpegpacketiser.c @@ -511,8 +511,6 @@ mpeg_util_parse_extension_packet (MPEGSeqHdr * hdr, guint8 * data, guint8 * end) case MPEG_PACKET_EXT_SEQUENCE: { /* Parse a Sequence Extension */ - gboolean low_delay; - guint8 chroma_format; guint8 horiz_size_ext, vert_size_ext; guint8 fps_n_ext, fps_d_ext; @@ -523,10 +521,10 @@ mpeg_util_parse_extension_packet (MPEGSeqHdr * hdr, guint8 * data, guint8 * end) hdr->profile = data[0] & 0x0f; /* profile (0:2) + escape bit (3) */ hdr->level = (data[1] >> 4) & 0x0f; hdr->progressive = data[1] & 0x08; - chroma_format = (data[1] >> 2) & 0x03; + /* chroma_format = (data[1] >> 2) & 0x03; */ horiz_size_ext = ((data[1] << 1) & 0x02) | ((data[2] >> 7) & 0x01); vert_size_ext = (data[2] >> 5) & 0x03; - low_delay = data[5] >> 7; + /* low_delay = data[5] >> 7; */ fps_n_ext = (data[5] >> 5) & 0x03; fps_d_ext = data[5] & 0x1f; @@ -549,7 +547,6 @@ mpeg_util_parse_sequence_hdr (MPEGSeqHdr * hdr, guint8 * data, guint8 * end) guint32 code; guint8 dar_idx, fps_idx; guint32 sync_word = 0xffffffff; - gboolean constrained_flag; gboolean load_intra_flag; gboolean load_non_intra_flag; @@ -584,7 +581,7 @@ mpeg_util_parse_sequence_hdr (MPEGSeqHdr * hdr, guint8 * data, guint8 * end) hdr->bitrate *= 400; } - constrained_flag = (data[7] >> 2) & 0x01; + /* constrained_flag = (data[7] >> 2) & 0x01; */ load_intra_flag = (data[7] >> 1) & 0x01; if (load_intra_flag) { if (G_UNLIKELY ((end - data) < 64)) diff --git a/gst/mpegvideoparse/mpegvideoparse.c b/gst/mpegvideoparse/mpegvideoparse.c index 70fdc89..cc3639c 100644 --- a/gst/mpegvideoparse/mpegvideoparse.c +++ b/gst/mpegvideoparse/mpegvideoparse.c @@ -127,10 +127,9 @@ gst_mpegvideoparse_base_init (MpegVideoParseClass * 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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "MPEG video elementary stream parser", @@ -294,16 +293,20 @@ mpegvideoparse_handle_sequence (MpegVideoParse * mpegvideoparse, switch (new_hdr.level) { case 2: level = levels[0]; + break; case 5: level = levels[2]; profile = "4:2:2"; break; case 10: level = levels[0]; + break; case 11: level = levels[1]; + break; case 13: level = levels[2]; + break; case 14: level = levels[3]; profile = "multiview"; @@ -434,6 +437,7 @@ mpegvideoparse_handle_picture (MpegVideoParse * mpegvideoparse, GstBuffer * buf) picture_type_name (hdr.pic_type)); /* FIXME: Can use the picture type and number of fields to track a * timestamp */ + break; } cur = mpeg_util_find_start_code (&sync_word, cur, end); } @@ -1022,11 +1026,11 @@ gst_mpegvideoparse_change_state (GstElement * element, static gboolean plugin_init (GstPlugin * plugin) { - GST_DEBUG_CATEGORY_INIT (mpv_parse_debug, "mpegvideoparse", 0, + GST_DEBUG_CATEGORY_INIT (mpv_parse_debug, "legacympegvideoparse", 0, "MPEG Video Parser"); - return gst_element_register (plugin, "mpegvideoparse", - GST_RANK_PRIMARY, GST_TYPE_MPEGVIDEOPARSE); + return gst_element_register (plugin, "legacympegvideoparse", + GST_RANK_NONE, GST_TYPE_MPEGVIDEOPARSE); } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, diff --git a/gst/mve/Makefile.in b/gst/mve/Makefile.in index 949354d..9f857db 100644 --- a/gst/mve/Makefile.in +++ b/gst/mve/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstmve_la_OBJECTS = libgstmve_la-gstmve.lo \ libgstmve_la-mvevideodec16.lo libgstmve_la-mveaudioenc.lo \ libgstmve_la-mvevideoenc8.lo libgstmve_la-mvevideoenc16.lo libgstmve_la_OBJECTS = $(am_libgstmve_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmve_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmve_la_SOURCES) DIST_SOURCES = $(libgstmve_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -614,7 +641,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmve.la: $(libgstmve_la_OBJECTS) $(libgstmve_la_DEPENDENCIES) +libgstmve.la: $(libgstmve_la_OBJECTS) $(libgstmve_la_DEPENDENCIES) $(EXTRA_libgstmve_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmve_la_LINK) -rpath $(plugindir) $(libgstmve_la_OBJECTS) $(libgstmve_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -636,98 +663,86 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmve_la-gstmve.lo: gstmve.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-gstmve.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-gstmve.Tpo -c -o libgstmve_la-gstmve.lo `test -f 'gstmve.c' || echo '$(srcdir)/'`gstmve.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-gstmve.Tpo $(DEPDIR)/libgstmve_la-gstmve.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmve.c' object='libgstmve_la-gstmve.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmve.c' object='libgstmve_la-gstmve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmve.lo `test -f 'gstmve.c' || echo '$(srcdir)/'`gstmve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmve.lo `test -f 'gstmve.c' || echo '$(srcdir)/'`gstmve.c libgstmve_la-gstmvemux.lo: gstmvemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-gstmvemux.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-gstmvemux.Tpo -c -o libgstmve_la-gstmvemux.lo `test -f 'gstmvemux.c' || echo '$(srcdir)/'`gstmvemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-gstmvemux.Tpo $(DEPDIR)/libgstmve_la-gstmvemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmvemux.c' object='libgstmve_la-gstmvemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmvemux.c' object='libgstmve_la-gstmvemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmvemux.lo `test -f 'gstmvemux.c' || echo '$(srcdir)/'`gstmvemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmvemux.lo `test -f 'gstmvemux.c' || echo '$(srcdir)/'`gstmvemux.c libgstmve_la-gstmvedemux.lo: gstmvedemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-gstmvedemux.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-gstmvedemux.Tpo -c -o libgstmve_la-gstmvedemux.lo `test -f 'gstmvedemux.c' || echo '$(srcdir)/'`gstmvedemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-gstmvedemux.Tpo $(DEPDIR)/libgstmve_la-gstmvedemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmvedemux.c' object='libgstmve_la-gstmvedemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmvedemux.c' object='libgstmve_la-gstmvedemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmvedemux.lo `test -f 'gstmvedemux.c' || echo '$(srcdir)/'`gstmvedemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-gstmvedemux.lo `test -f 'gstmvedemux.c' || echo '$(srcdir)/'`gstmvedemux.c libgstmve_la-mveaudiodec.lo: mveaudiodec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mveaudiodec.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mveaudiodec.Tpo -c -o libgstmve_la-mveaudiodec.lo `test -f 'mveaudiodec.c' || echo '$(srcdir)/'`mveaudiodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mveaudiodec.Tpo $(DEPDIR)/libgstmve_la-mveaudiodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mveaudiodec.c' object='libgstmve_la-mveaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mveaudiodec.c' object='libgstmve_la-mveaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mveaudiodec.lo `test -f 'mveaudiodec.c' || echo '$(srcdir)/'`mveaudiodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mveaudiodec.lo `test -f 'mveaudiodec.c' || echo '$(srcdir)/'`mveaudiodec.c libgstmve_la-mvevideodec8.lo: mvevideodec8.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mvevideodec8.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mvevideodec8.Tpo -c -o libgstmve_la-mvevideodec8.lo `test -f 'mvevideodec8.c' || echo '$(srcdir)/'`mvevideodec8.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mvevideodec8.Tpo $(DEPDIR)/libgstmve_la-mvevideodec8.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mvevideodec8.c' object='libgstmve_la-mvevideodec8.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mvevideodec8.c' object='libgstmve_la-mvevideodec8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideodec8.lo `test -f 'mvevideodec8.c' || echo '$(srcdir)/'`mvevideodec8.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideodec8.lo `test -f 'mvevideodec8.c' || echo '$(srcdir)/'`mvevideodec8.c libgstmve_la-mvevideodec16.lo: mvevideodec16.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mvevideodec16.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mvevideodec16.Tpo -c -o libgstmve_la-mvevideodec16.lo `test -f 'mvevideodec16.c' || echo '$(srcdir)/'`mvevideodec16.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mvevideodec16.Tpo $(DEPDIR)/libgstmve_la-mvevideodec16.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mvevideodec16.c' object='libgstmve_la-mvevideodec16.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mvevideodec16.c' object='libgstmve_la-mvevideodec16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideodec16.lo `test -f 'mvevideodec16.c' || echo '$(srcdir)/'`mvevideodec16.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideodec16.lo `test -f 'mvevideodec16.c' || echo '$(srcdir)/'`mvevideodec16.c libgstmve_la-mveaudioenc.lo: mveaudioenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mveaudioenc.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mveaudioenc.Tpo -c -o libgstmve_la-mveaudioenc.lo `test -f 'mveaudioenc.c' || echo '$(srcdir)/'`mveaudioenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mveaudioenc.Tpo $(DEPDIR)/libgstmve_la-mveaudioenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mveaudioenc.c' object='libgstmve_la-mveaudioenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mveaudioenc.c' object='libgstmve_la-mveaudioenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mveaudioenc.lo `test -f 'mveaudioenc.c' || echo '$(srcdir)/'`mveaudioenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mveaudioenc.lo `test -f 'mveaudioenc.c' || echo '$(srcdir)/'`mveaudioenc.c libgstmve_la-mvevideoenc8.lo: mvevideoenc8.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mvevideoenc8.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mvevideoenc8.Tpo -c -o libgstmve_la-mvevideoenc8.lo `test -f 'mvevideoenc8.c' || echo '$(srcdir)/'`mvevideoenc8.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mvevideoenc8.Tpo $(DEPDIR)/libgstmve_la-mvevideoenc8.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mvevideoenc8.c' object='libgstmve_la-mvevideoenc8.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mvevideoenc8.c' object='libgstmve_la-mvevideoenc8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideoenc8.lo `test -f 'mvevideoenc8.c' || echo '$(srcdir)/'`mvevideoenc8.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideoenc8.lo `test -f 'mvevideoenc8.c' || echo '$(srcdir)/'`mvevideoenc8.c libgstmve_la-mvevideoenc16.lo: mvevideoenc16.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -MT libgstmve_la-mvevideoenc16.lo -MD -MP -MF $(DEPDIR)/libgstmve_la-mvevideoenc16.Tpo -c -o libgstmve_la-mvevideoenc16.lo `test -f 'mvevideoenc16.c' || echo '$(srcdir)/'`mvevideoenc16.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmve_la-mvevideoenc16.Tpo $(DEPDIR)/libgstmve_la-mvevideoenc16.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mvevideoenc16.c' object='libgstmve_la-mvevideoenc16.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mvevideoenc16.c' object='libgstmve_la-mvevideoenc16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideoenc16.lo `test -f 'mvevideoenc16.c' || echo '$(srcdir)/'`mvevideoenc16.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmve_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmve_la_CFLAGS) $(CFLAGS) -c -o libgstmve_la-mvevideoenc16.lo `test -f 'mvevideoenc16.c' || echo '$(srcdir)/'`mvevideoenc16.c mostlyclean-libtool: -rm -f *.lo @@ -834,10 +849,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mve/gstmvedemux.c b/gst/mve/gstmvedemux.c index a101a90..85d6122 100644 --- a/gst/mve/gstmvedemux.c +++ b/gst/mve/gstmvedemux.c @@ -713,7 +713,7 @@ gst_mve_audio_init (GstMveDemux * mve, guint8 version, const guint8 * data, if (gst_mve_add_stream (mve, stream, list)) return gst_pad_push_event (mve->audio_stream->pad, gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, - 0, GST_CLOCK_TIME_NONE, 0)); + 0, GST_CLOCK_TIME_NONE, 0)) ? GST_FLOW_OK : GST_FLOW_ERROR; else return GST_FLOW_OK; } @@ -866,7 +866,7 @@ gst_mve_timer_create (GstMveDemux * mve, const guint8 * data, guint16 len, if (gst_mve_add_stream (mve, s, list)) return gst_pad_push_event (s->pad, gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, - 0, GST_CLOCK_TIME_NONE, 0)); + 0, GST_CLOCK_TIME_NONE, 0)) ? GST_FLOW_OK : GST_FLOW_ERROR; else return GST_FLOW_OK; } @@ -1090,12 +1090,9 @@ gst_mve_demux_base_init (GstMveDemuxClass * 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 (&vidsrc_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audsrc_template)); + gst_element_class_add_static_pad_template (element_class, &sink_template); + gst_element_class_add_static_pad_template (element_class, &vidsrc_template); + gst_element_class_add_static_pad_template (element_class, &audsrc_template); gst_element_class_set_details_simple (element_class, "MVE Demuxer", "Codec/Demuxer", "Demultiplex an Interplay movie (MVE) stream into audio and video", diff --git a/gst/mve/gstmvemux.c b/gst/mve/gstmvemux.c index e6c2fcb..fad163b 100644 --- a/gst/mve/gstmvemux.c +++ b/gst/mve/gstmvemux.c @@ -337,7 +337,7 @@ static void gst_mve_mux_palette_analyze (GstMveMux * mvemux, const GstBuffer * pal, guint16 * first, guint16 * last) { - guint i; + gint i; guint32 *col1; col1 = (guint32 *) GST_BUFFER_DATA (pal); @@ -1349,12 +1349,11 @@ gst_mve_mux_base_init (GstMveMuxClass * 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 (&audio_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &audio_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_factory); gst_element_class_set_details_simple (element_class, "MVE Multiplexer", "Codec/Muxer", diff --git a/gst/mve/mvevideoenc16.c b/gst/mve/mvevideoenc16.c index ec82523..d94e3da 100644 --- a/gst/mve/mvevideoenc16.c +++ b/gst/mve/mvevideoenc16.c @@ -285,6 +285,9 @@ mve_quantize (const GstMveMux * mve, const guint16 * src, } } + if (G_UNLIKELY (!best)) + continue; + ++best->hits; best->r_total += r; best->g_total += g; diff --git a/gst/mxf/Makefile.in b/gst/mxf/Makefile.in index cbd1796..41c0025 100644 --- a/gst/mxf/Makefile.in +++ b/gst/mxf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +122,8 @@ am_libgstmxf_la_OBJECTS = libgstmxf_la-mxf.lo libgstmxf_la-mxful.lo \ libgstmxf_la-mxfup.lo libgstmxf_la-mxfvc3.lo \ libgstmxf_la-mxfdms1.lo libgstmxf_la_OBJECTS = $(am_libgstmxf_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmxf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +139,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmxf_la_SOURCES) DIST_SOURCES = $(libgstmxf_la_SOURCES) @@ -158,7 +165,6 @@ 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@ @@ -176,7 +182,6 @@ 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@ @@ -211,6 +216,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +256,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +274,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +283,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +317,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +372,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +404,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +433,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +459,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +478,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +506,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +542,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -644,7 +671,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmxf.la: $(libgstmxf_la_OBJECTS) $(libgstmxf_la_DEPENDENCIES) +libgstmxf.la: $(libgstmxf_la_OBJECTS) $(libgstmxf_la_DEPENDENCIES) $(EXTRA_libgstmxf_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmxf_la_LINK) -rpath $(plugindir) $(libgstmxf_la_OBJECTS) $(libgstmxf_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -674,162 +701,142 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmxf_la-mxf.lo: mxf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxf.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxf.Tpo -c -o libgstmxf_la-mxf.lo `test -f 'mxf.c' || echo '$(srcdir)/'`mxf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxf.Tpo $(DEPDIR)/libgstmxf_la-mxf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxf.c' object='libgstmxf_la-mxf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxf.c' object='libgstmxf_la-mxf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxf.lo `test -f 'mxf.c' || echo '$(srcdir)/'`mxf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxf.lo `test -f 'mxf.c' || echo '$(srcdir)/'`mxf.c libgstmxf_la-mxful.lo: mxful.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxful.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxful.Tpo -c -o libgstmxf_la-mxful.lo `test -f 'mxful.c' || echo '$(srcdir)/'`mxful.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxful.Tpo $(DEPDIR)/libgstmxf_la-mxful.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxful.c' object='libgstmxf_la-mxful.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxful.c' object='libgstmxf_la-mxful.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxful.lo `test -f 'mxful.c' || echo '$(srcdir)/'`mxful.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxful.lo `test -f 'mxful.c' || echo '$(srcdir)/'`mxful.c libgstmxf_la-mxftypes.lo: mxftypes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxftypes.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxftypes.Tpo -c -o libgstmxf_la-mxftypes.lo `test -f 'mxftypes.c' || echo '$(srcdir)/'`mxftypes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxftypes.Tpo $(DEPDIR)/libgstmxf_la-mxftypes.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxftypes.c' object='libgstmxf_la-mxftypes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxftypes.c' object='libgstmxf_la-mxftypes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxftypes.lo `test -f 'mxftypes.c' || echo '$(srcdir)/'`mxftypes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxftypes.lo `test -f 'mxftypes.c' || echo '$(srcdir)/'`mxftypes.c libgstmxf_la-mxfmetadata.lo: mxfmetadata.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfmetadata.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfmetadata.Tpo -c -o libgstmxf_la-mxfmetadata.lo `test -f 'mxfmetadata.c' || echo '$(srcdir)/'`mxfmetadata.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfmetadata.Tpo $(DEPDIR)/libgstmxf_la-mxfmetadata.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfmetadata.c' object='libgstmxf_la-mxfmetadata.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfmetadata.c' object='libgstmxf_la-mxfmetadata.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmetadata.lo `test -f 'mxfmetadata.c' || echo '$(srcdir)/'`mxfmetadata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmetadata.lo `test -f 'mxfmetadata.c' || echo '$(srcdir)/'`mxfmetadata.c libgstmxf_la-mxfessence.lo: mxfessence.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfessence.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfessence.Tpo -c -o libgstmxf_la-mxfessence.lo `test -f 'mxfessence.c' || echo '$(srcdir)/'`mxfessence.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfessence.Tpo $(DEPDIR)/libgstmxf_la-mxfessence.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfessence.c' object='libgstmxf_la-mxfessence.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfessence.c' object='libgstmxf_la-mxfessence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfessence.lo `test -f 'mxfessence.c' || echo '$(srcdir)/'`mxfessence.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfessence.lo `test -f 'mxfessence.c' || echo '$(srcdir)/'`mxfessence.c libgstmxf_la-mxfquark.lo: mxfquark.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfquark.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfquark.Tpo -c -o libgstmxf_la-mxfquark.lo `test -f 'mxfquark.c' || echo '$(srcdir)/'`mxfquark.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfquark.Tpo $(DEPDIR)/libgstmxf_la-mxfquark.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfquark.c' object='libgstmxf_la-mxfquark.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfquark.c' object='libgstmxf_la-mxfquark.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfquark.lo `test -f 'mxfquark.c' || echo '$(srcdir)/'`mxfquark.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfquark.lo `test -f 'mxfquark.c' || echo '$(srcdir)/'`mxfquark.c libgstmxf_la-mxfmux.lo: mxfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfmux.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfmux.Tpo -c -o libgstmxf_la-mxfmux.lo `test -f 'mxfmux.c' || echo '$(srcdir)/'`mxfmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfmux.Tpo $(DEPDIR)/libgstmxf_la-mxfmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfmux.c' object='libgstmxf_la-mxfmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfmux.c' object='libgstmxf_la-mxfmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmux.lo `test -f 'mxfmux.c' || echo '$(srcdir)/'`mxfmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmux.lo `test -f 'mxfmux.c' || echo '$(srcdir)/'`mxfmux.c libgstmxf_la-mxfdemux.lo: mxfdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfdemux.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfdemux.Tpo -c -o libgstmxf_la-mxfdemux.lo `test -f 'mxfdemux.c' || echo '$(srcdir)/'`mxfdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfdemux.Tpo $(DEPDIR)/libgstmxf_la-mxfdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfdemux.c' object='libgstmxf_la-mxfdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdemux.c' object='libgstmxf_la-mxfdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdemux.lo `test -f 'mxfdemux.c' || echo '$(srcdir)/'`mxfdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdemux.lo `test -f 'mxfdemux.c' || echo '$(srcdir)/'`mxfdemux.c libgstmxf_la-mxfaes-bwf.lo: mxfaes-bwf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfaes-bwf.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfaes-bwf.Tpo -c -o libgstmxf_la-mxfaes-bwf.lo `test -f 'mxfaes-bwf.c' || echo '$(srcdir)/'`mxfaes-bwf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfaes-bwf.Tpo $(DEPDIR)/libgstmxf_la-mxfaes-bwf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfaes-bwf.c' object='libgstmxf_la-mxfaes-bwf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfaes-bwf.c' object='libgstmxf_la-mxfaes-bwf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfaes-bwf.lo `test -f 'mxfaes-bwf.c' || echo '$(srcdir)/'`mxfaes-bwf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfaes-bwf.lo `test -f 'mxfaes-bwf.c' || echo '$(srcdir)/'`mxfaes-bwf.c libgstmxf_la-mxfmpeg.lo: mxfmpeg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfmpeg.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfmpeg.Tpo -c -o libgstmxf_la-mxfmpeg.lo `test -f 'mxfmpeg.c' || echo '$(srcdir)/'`mxfmpeg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfmpeg.Tpo $(DEPDIR)/libgstmxf_la-mxfmpeg.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfmpeg.c' object='libgstmxf_la-mxfmpeg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfmpeg.c' object='libgstmxf_la-mxfmpeg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmpeg.lo `test -f 'mxfmpeg.c' || echo '$(srcdir)/'`mxfmpeg.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfmpeg.lo `test -f 'mxfmpeg.c' || echo '$(srcdir)/'`mxfmpeg.c libgstmxf_la-mxfdv-dif.lo: mxfdv-dif.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfdv-dif.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfdv-dif.Tpo -c -o libgstmxf_la-mxfdv-dif.lo `test -f 'mxfdv-dif.c' || echo '$(srcdir)/'`mxfdv-dif.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfdv-dif.Tpo $(DEPDIR)/libgstmxf_la-mxfdv-dif.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfdv-dif.c' object='libgstmxf_la-mxfdv-dif.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdv-dif.c' object='libgstmxf_la-mxfdv-dif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdv-dif.lo `test -f 'mxfdv-dif.c' || echo '$(srcdir)/'`mxfdv-dif.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdv-dif.lo `test -f 'mxfdv-dif.c' || echo '$(srcdir)/'`mxfdv-dif.c libgstmxf_la-mxfalaw.lo: mxfalaw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfalaw.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfalaw.Tpo -c -o libgstmxf_la-mxfalaw.lo `test -f 'mxfalaw.c' || echo '$(srcdir)/'`mxfalaw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfalaw.Tpo $(DEPDIR)/libgstmxf_la-mxfalaw.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfalaw.c' object='libgstmxf_la-mxfalaw.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfalaw.c' object='libgstmxf_la-mxfalaw.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfalaw.lo `test -f 'mxfalaw.c' || echo '$(srcdir)/'`mxfalaw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfalaw.lo `test -f 'mxfalaw.c' || echo '$(srcdir)/'`mxfalaw.c libgstmxf_la-mxfjpeg2000.lo: mxfjpeg2000.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfjpeg2000.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfjpeg2000.Tpo -c -o libgstmxf_la-mxfjpeg2000.lo `test -f 'mxfjpeg2000.c' || echo '$(srcdir)/'`mxfjpeg2000.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfjpeg2000.Tpo $(DEPDIR)/libgstmxf_la-mxfjpeg2000.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfjpeg2000.c' object='libgstmxf_la-mxfjpeg2000.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfjpeg2000.c' object='libgstmxf_la-mxfjpeg2000.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfjpeg2000.lo `test -f 'mxfjpeg2000.c' || echo '$(srcdir)/'`mxfjpeg2000.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfjpeg2000.lo `test -f 'mxfjpeg2000.c' || echo '$(srcdir)/'`mxfjpeg2000.c libgstmxf_la-mxfd10.lo: mxfd10.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfd10.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfd10.Tpo -c -o libgstmxf_la-mxfd10.lo `test -f 'mxfd10.c' || echo '$(srcdir)/'`mxfd10.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfd10.Tpo $(DEPDIR)/libgstmxf_la-mxfd10.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfd10.c' object='libgstmxf_la-mxfd10.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfd10.c' object='libgstmxf_la-mxfd10.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfd10.lo `test -f 'mxfd10.c' || echo '$(srcdir)/'`mxfd10.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfd10.lo `test -f 'mxfd10.c' || echo '$(srcdir)/'`mxfd10.c libgstmxf_la-mxfup.lo: mxfup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfup.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfup.Tpo -c -o libgstmxf_la-mxfup.lo `test -f 'mxfup.c' || echo '$(srcdir)/'`mxfup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfup.Tpo $(DEPDIR)/libgstmxf_la-mxfup.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfup.c' object='libgstmxf_la-mxfup.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfup.c' object='libgstmxf_la-mxfup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfup.lo `test -f 'mxfup.c' || echo '$(srcdir)/'`mxfup.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfup.lo `test -f 'mxfup.c' || echo '$(srcdir)/'`mxfup.c libgstmxf_la-mxfvc3.lo: mxfvc3.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfvc3.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfvc3.Tpo -c -o libgstmxf_la-mxfvc3.lo `test -f 'mxfvc3.c' || echo '$(srcdir)/'`mxfvc3.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfvc3.Tpo $(DEPDIR)/libgstmxf_la-mxfvc3.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfvc3.c' object='libgstmxf_la-mxfvc3.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfvc3.c' object='libgstmxf_la-mxfvc3.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfvc3.lo `test -f 'mxfvc3.c' || echo '$(srcdir)/'`mxfvc3.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfvc3.lo `test -f 'mxfvc3.c' || echo '$(srcdir)/'`mxfvc3.c libgstmxf_la-mxfdms1.lo: mxfdms1.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -MT libgstmxf_la-mxfdms1.lo -MD -MP -MF $(DEPDIR)/libgstmxf_la-mxfdms1.Tpo -c -o libgstmxf_la-mxfdms1.lo `test -f 'mxfdms1.c' || echo '$(srcdir)/'`mxfdms1.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmxf_la-mxfdms1.Tpo $(DEPDIR)/libgstmxf_la-mxfdms1.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfdms1.c' object='libgstmxf_la-mxfdms1.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdms1.c' object='libgstmxf_la-mxfdms1.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdms1.lo `test -f 'mxfdms1.c' || echo '$(srcdir)/'`mxfdms1.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmxf_la_CFLAGS) $(CFLAGS) -c -o libgstmxf_la-mxfdms1.lo `test -f 'mxfdms1.c' || echo '$(srcdir)/'`mxfdms1.c mostlyclean-libtool: -rm -f *.lo @@ -936,10 +943,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c index 3db4413..13ab13b 100644 --- a/gst/mxf/mxfdemux.c +++ b/gst/mxf/mxfdemux.c @@ -3358,7 +3358,7 @@ gst_mxf_demux_seek_pull (GstMXFDemux * demux, GstEvent * event) GST_PAD_STREAM_UNLOCK (demux->sinkpad); - return TRUE; + return ret; /* ERRORS */ wrong_format: @@ -3962,10 +3962,10 @@ gst_mxf_demux_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 (&mxf_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mxf_src_template)); + gst_element_class_add_static_pad_template (element_class, + &mxf_sink_template); + gst_element_class_add_static_pad_template (element_class, + &mxf_src_template); gst_element_class_set_details_simple (element_class, "MXF Demuxer", "Codec/Demuxer", "Demux MXF files", "Sebastian Dröge "); diff --git a/gst/mxf/mxfmetadata.c b/gst/mxf/mxfmetadata.c index b55bf0d..ca05ad7 100644 --- a/gst/mxf/mxfmetadata.c +++ b/gst/mxf/mxfmetadata.c @@ -6379,9 +6379,13 @@ mxf_descriptive_metadata_new (guint8 scheme, guint32 type, _MXFDescriptiveMetadataScheme *s = NULL; MXFDescriptiveMetadata *ret = NULL; - g_return_val_if_fail (type != 0, NULL); g_return_val_if_fail (primer != NULL, NULL); + if (G_UNLIKELY (type == 0)) { + GST_WARNING ("Type 0 is invalid"); + return NULL; + } + for (i = 0; i < _dm_schemes->len; i++) { _MXFDescriptiveMetadataScheme *data = &g_array_index (_dm_schemes, _MXFDescriptiveMetadataScheme, i); diff --git a/gst/mxf/mxfmux.c b/gst/mxf/mxfmux.c index d463a03..2074ea0 100644 --- a/gst/mxf/mxfmux.c +++ b/gst/mxf/mxfmux.c @@ -97,13 +97,12 @@ gst_mxf_mux_base_init (gpointer g_class) GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); const GstPadTemplate **p; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); p = mxf_essence_element_writer_get_pad_templates (); while (p && *p) { gst_element_class_add_pad_template (element_class, - (GstPadTemplate *) gst_object_ref (GST_OBJECT (*p))); + (GstPadTemplate *) (GST_OBJECT (*p))); p++; } @@ -409,8 +408,11 @@ gst_mxf_mux_request_new_pad (GstElement * element, GST_ERROR_OBJECT (mux, "Not our template"); return NULL; } - +#if GLIB_CHECK_VERSION(2,29,5) + pad_number = g_atomic_int_add ((gint *) & mux->n_pads, 1); +#else pad_number = g_atomic_int_exchange_and_add ((gint *) & mux->n_pads, 1); +#endif name = gst_mxf_mux_create_pad_name (templ, pad_number); GST_DEBUG_OBJECT (mux, "Creating pad '%s'", name); diff --git a/gst/nsf/Makefile.in b/gst/nsf/Makefile.in index 72ed80c..7a1b594 100644 --- a/gst/nsf/Makefile.in +++ b/gst/nsf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +119,8 @@ am__objects_1 = libgstnsf_la-fmopl.lo libgstnsf_la-log.lo \ libgstnsf_la-vrcvisnd.lo am_libgstnsf_la_OBJECTS = libgstnsf_la-gstnsf.lo $(am__objects_1) libgstnsf_la_OBJECTS = $(am_libgstnsf_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstnsf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +136,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstnsf_la_SOURCES) DIST_SOURCES = $(libgstnsf_la_SOURCES) @@ -155,7 +162,6 @@ 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@ @@ -173,7 +179,6 @@ 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@ @@ -208,6 +213,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -247,6 +253,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -264,6 +271,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -272,13 +280,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -303,13 +314,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -357,6 +369,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -388,8 +401,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -413,6 +430,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -437,10 +456,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -452,6 +475,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -476,6 +503,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -511,7 +539,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -628,7 +655,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstnsf.la: $(libgstnsf_la_OBJECTS) $(libgstnsf_la_DEPENDENCIES) +libgstnsf.la: $(libgstnsf_la_OBJECTS) $(libgstnsf_la_DEPENDENCIES) $(EXTRA_libgstnsf_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstnsf_la_LINK) -rpath $(plugindir) $(libgstnsf_la_OBJECTS) $(libgstnsf_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -651,106 +678,93 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstnsf_la-gstnsf.lo: gstnsf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-gstnsf.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-gstnsf.Tpo -c -o libgstnsf_la-gstnsf.lo `test -f 'gstnsf.c' || echo '$(srcdir)/'`gstnsf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-gstnsf.Tpo $(DEPDIR)/libgstnsf_la-gstnsf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstnsf.c' object='libgstnsf_la-gstnsf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstnsf.c' object='libgstnsf_la-gstnsf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-gstnsf.lo `test -f 'gstnsf.c' || echo '$(srcdir)/'`gstnsf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-gstnsf.lo `test -f 'gstnsf.c' || echo '$(srcdir)/'`gstnsf.c libgstnsf_la-fmopl.lo: fmopl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-fmopl.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-fmopl.Tpo -c -o libgstnsf_la-fmopl.lo `test -f 'fmopl.c' || echo '$(srcdir)/'`fmopl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-fmopl.Tpo $(DEPDIR)/libgstnsf_la-fmopl.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fmopl.c' object='libgstnsf_la-fmopl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fmopl.c' object='libgstnsf_la-fmopl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-fmopl.lo `test -f 'fmopl.c' || echo '$(srcdir)/'`fmopl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-fmopl.lo `test -f 'fmopl.c' || echo '$(srcdir)/'`fmopl.c libgstnsf_la-log.lo: log.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-log.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-log.Tpo -c -o libgstnsf_la-log.lo `test -f 'log.c' || echo '$(srcdir)/'`log.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-log.Tpo $(DEPDIR)/libgstnsf_la-log.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log.c' object='libgstnsf_la-log.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='log.c' object='libgstnsf_la-log.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-log.lo `test -f 'log.c' || echo '$(srcdir)/'`log.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-log.lo `test -f 'log.c' || echo '$(srcdir)/'`log.c libgstnsf_la-mmc5_snd.lo: mmc5_snd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-mmc5_snd.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-mmc5_snd.Tpo -c -o libgstnsf_la-mmc5_snd.lo `test -f 'mmc5_snd.c' || echo '$(srcdir)/'`mmc5_snd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-mmc5_snd.Tpo $(DEPDIR)/libgstnsf_la-mmc5_snd.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmc5_snd.c' object='libgstnsf_la-mmc5_snd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmc5_snd.c' object='libgstnsf_la-mmc5_snd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-mmc5_snd.lo `test -f 'mmc5_snd.c' || echo '$(srcdir)/'`mmc5_snd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-mmc5_snd.lo `test -f 'mmc5_snd.c' || echo '$(srcdir)/'`mmc5_snd.c libgstnsf_la-nes_apu.lo: nes_apu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-nes_apu.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-nes_apu.Tpo -c -o libgstnsf_la-nes_apu.lo `test -f 'nes_apu.c' || echo '$(srcdir)/'`nes_apu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-nes_apu.Tpo $(DEPDIR)/libgstnsf_la-nes_apu.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nes_apu.c' object='libgstnsf_la-nes_apu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nes_apu.c' object='libgstnsf_la-nes_apu.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nes_apu.lo `test -f 'nes_apu.c' || echo '$(srcdir)/'`nes_apu.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nes_apu.lo `test -f 'nes_apu.c' || echo '$(srcdir)/'`nes_apu.c libgstnsf_la-vrc7_snd.lo: vrc7_snd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-vrc7_snd.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-vrc7_snd.Tpo -c -o libgstnsf_la-vrc7_snd.lo `test -f 'vrc7_snd.c' || echo '$(srcdir)/'`vrc7_snd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-vrc7_snd.Tpo $(DEPDIR)/libgstnsf_la-vrc7_snd.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vrc7_snd.c' object='libgstnsf_la-vrc7_snd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vrc7_snd.c' object='libgstnsf_la-vrc7_snd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-vrc7_snd.lo `test -f 'vrc7_snd.c' || echo '$(srcdir)/'`vrc7_snd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-vrc7_snd.lo `test -f 'vrc7_snd.c' || echo '$(srcdir)/'`vrc7_snd.c libgstnsf_la-fds_snd.lo: fds_snd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-fds_snd.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-fds_snd.Tpo -c -o libgstnsf_la-fds_snd.lo `test -f 'fds_snd.c' || echo '$(srcdir)/'`fds_snd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-fds_snd.Tpo $(DEPDIR)/libgstnsf_la-fds_snd.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fds_snd.c' object='libgstnsf_la-fds_snd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fds_snd.c' object='libgstnsf_la-fds_snd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-fds_snd.lo `test -f 'fds_snd.c' || echo '$(srcdir)/'`fds_snd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-fds_snd.lo `test -f 'fds_snd.c' || echo '$(srcdir)/'`fds_snd.c libgstnsf_la-nes6502.lo: nes6502.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-nes6502.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-nes6502.Tpo -c -o libgstnsf_la-nes6502.lo `test -f 'nes6502.c' || echo '$(srcdir)/'`nes6502.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-nes6502.Tpo $(DEPDIR)/libgstnsf_la-nes6502.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nes6502.c' object='libgstnsf_la-nes6502.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nes6502.c' object='libgstnsf_la-nes6502.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nes6502.lo `test -f 'nes6502.c' || echo '$(srcdir)/'`nes6502.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nes6502.lo `test -f 'nes6502.c' || echo '$(srcdir)/'`nes6502.c libgstnsf_la-nsf.lo: nsf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-nsf.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-nsf.Tpo -c -o libgstnsf_la-nsf.lo `test -f 'nsf.c' || echo '$(srcdir)/'`nsf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-nsf.Tpo $(DEPDIR)/libgstnsf_la-nsf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsf.c' object='libgstnsf_la-nsf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nsf.c' object='libgstnsf_la-nsf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nsf.lo `test -f 'nsf.c' || echo '$(srcdir)/'`nsf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-nsf.lo `test -f 'nsf.c' || echo '$(srcdir)/'`nsf.c libgstnsf_la-vrcvisnd.lo: vrcvisnd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -MT libgstnsf_la-vrcvisnd.lo -MD -MP -MF $(DEPDIR)/libgstnsf_la-vrcvisnd.Tpo -c -o libgstnsf_la-vrcvisnd.lo `test -f 'vrcvisnd.c' || echo '$(srcdir)/'`vrcvisnd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnsf_la-vrcvisnd.Tpo $(DEPDIR)/libgstnsf_la-vrcvisnd.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vrcvisnd.c' object='libgstnsf_la-vrcvisnd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vrcvisnd.c' object='libgstnsf_la-vrcvisnd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-vrcvisnd.lo `test -f 'vrcvisnd.c' || echo '$(srcdir)/'`vrcvisnd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnsf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnsf_la_CFLAGS) $(CFLAGS) -c -o libgstnsf_la-vrcvisnd.lo `test -f 'vrcvisnd.c' || echo '$(srcdir)/'`vrcvisnd.c mostlyclean-libtool: -rm -f *.lo @@ -857,10 +871,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/nsf/gstnsf.c b/gst/nsf/gstnsf.c index bb28117..d928971 100644 --- a/gst/nsf/gstnsf.c +++ b/gst/nsf/gstnsf.c @@ -141,20 +141,16 @@ gst_nsfdec_base_init (gpointer g_class) "Using nosefart to decode NSF audio tunes", "Johan Dahlin "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); + gst_element_class_add_static_pad_template (element_class, &sink_templ); } static void gst_nsfdec_class_init (GstNsfDec * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; parent_class = GST_ELEMENT_CLASS (g_type_class_peek_parent (klass)); diff --git a/gst/nuvdemux/Makefile.in b/gst/nuvdemux/Makefile.in index 961cf60..10ce0fc 100644 --- a/gst/nuvdemux/Makefile.in +++ b/gst/nuvdemux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,14 +101,20 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstnuvdemux_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgstnuvdemux_la_OBJECTS = libgstnuvdemux_la-gstnuvdemux.lo libgstnuvdemux_la_OBJECTS = $(am_libgstnuvdemux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstnuvdemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstnuvdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -123,21 +130,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstnuvdemux_la_SOURCES) DIST_SOURCES = $(libgstnuvdemux_la_SOURCES) @@ -149,7 +156,6 @@ 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@ @@ -167,7 +173,6 @@ 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@ @@ -202,6 +207,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -241,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -258,6 +265,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -266,13 +274,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -297,13 +308,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -351,6 +363,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -382,8 +395,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -407,6 +424,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -431,10 +450,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -446,6 +469,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -470,6 +497,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -505,7 +533,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -598,7 +625,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstnuvdemux.la: $(libgstnuvdemux_la_OBJECTS) $(libgstnuvdemux_la_DEPENDENCIES) +libgstnuvdemux.la: $(libgstnuvdemux_la_OBJECTS) $(libgstnuvdemux_la_DEPENDENCIES) $(EXTRA_libgstnuvdemux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstnuvdemux_la_LINK) -rpath $(plugindir) $(libgstnuvdemux_la_OBJECTS) $(libgstnuvdemux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -612,34 +639,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstnuvdemux_la-gstnuvdemux.lo: gstnuvdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnuvdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnuvdemux_la_CFLAGS) $(CFLAGS) -MT libgstnuvdemux_la-gstnuvdemux.lo -MD -MP -MF $(DEPDIR)/libgstnuvdemux_la-gstnuvdemux.Tpo -c -o libgstnuvdemux_la-gstnuvdemux.lo `test -f 'gstnuvdemux.c' || echo '$(srcdir)/'`gstnuvdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnuvdemux_la-gstnuvdemux.Tpo $(DEPDIR)/libgstnuvdemux_la-gstnuvdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstnuvdemux.c' object='libgstnuvdemux_la-gstnuvdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstnuvdemux.c' object='libgstnuvdemux_la-gstnuvdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnuvdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnuvdemux_la_CFLAGS) $(CFLAGS) -c -o libgstnuvdemux_la-gstnuvdemux.lo `test -f 'gstnuvdemux.c' || echo '$(srcdir)/'`gstnuvdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnuvdemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnuvdemux_la_CFLAGS) $(CFLAGS) -c -o libgstnuvdemux_la-gstnuvdemux.lo `test -f 'gstnuvdemux.c' || echo '$(srcdir)/'`gstnuvdemux.c mostlyclean-libtool: -rm -f *.lo @@ -746,10 +769,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/nuvdemux/gstnuvdemux.c b/gst/nuvdemux/gstnuvdemux.c index 1471954..bdbaae0 100644 --- a/gst/nuvdemux/gstnuvdemux.c +++ b/gst/nuvdemux/gstnuvdemux.c @@ -124,14 +124,14 @@ gst_nuv_demux_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_template)); + gst_element_class_add_static_pad_template (element_class, + &audio_src_template); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_template)); + gst_element_class_add_static_pad_template (element_class, + &video_src_template); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Nuv demuxer", "Codec/Demuxer", "Demultiplex a MythTV NuppleVideo .nuv file into audio and video", @@ -488,7 +488,7 @@ gst_nuv_demux_stream_data (GstNuvDemux * nuv) switch (h->i_type) { case 'V': { - if (h->i_length == 0) + if (!buf) break; GST_BUFFER_OFFSET (buf) = nuv->video_offset; @@ -499,7 +499,7 @@ gst_nuv_demux_stream_data (GstNuvDemux * nuv) } case 'A': { - if (h->i_length == 0) + if (!buf) break; GST_BUFFER_OFFSET (buf) = nuv->audio_offset; @@ -637,7 +637,7 @@ gst_nuv_demux_stream_extend_header (GstNuvDemux * nuv) nuv->state = GST_NUV_DEMUX_INVALID_DATA; GST_ELEMENT_ERROR (nuv, STREAM, DEMUX, (NULL), ("Unsupported extended header (0x%02x)", buf->data[0])); - g_object_unref (buf); + gst_buffer_unref (buf); return GST_FLOW_ERROR; } return res; diff --git a/gst/patchdetect/Makefile.in b/gst/patchdetect/Makefile.in index baeaa22..a426ac7 100644 --- a/gst/patchdetect/Makefile.in +++ b/gst/patchdetect/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ libgstpatchdetect_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstpatchdetect_la_OBJECTS = \ libgstpatchdetect_la-gstpatchdetect.lo libgstpatchdetect_la_OBJECTS = $(am_libgstpatchdetect_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstpatchdetect_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpatchdetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstpatchdetect_la_SOURCES) DIST_SOURCES = $(libgstpatchdetect_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -613,7 +640,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstpatchdetect.la: $(libgstpatchdetect_la_OBJECTS) $(libgstpatchdetect_la_DEPENDENCIES) +libgstpatchdetect.la: $(libgstpatchdetect_la_OBJECTS) $(libgstpatchdetect_la_DEPENDENCIES) $(EXTRA_libgstpatchdetect_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpatchdetect_la_LINK) -rpath $(plugindir) $(libgstpatchdetect_la_OBJECTS) $(libgstpatchdetect_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -627,34 +654,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstpatchdetect_la-gstpatchdetect.lo: gstpatchdetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpatchdetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpatchdetect_la_CFLAGS) $(CFLAGS) -MT libgstpatchdetect_la-gstpatchdetect.lo -MD -MP -MF $(DEPDIR)/libgstpatchdetect_la-gstpatchdetect.Tpo -c -o libgstpatchdetect_la-gstpatchdetect.lo `test -f 'gstpatchdetect.c' || echo '$(srcdir)/'`gstpatchdetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpatchdetect_la-gstpatchdetect.Tpo $(DEPDIR)/libgstpatchdetect_la-gstpatchdetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpatchdetect.c' object='libgstpatchdetect_la-gstpatchdetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpatchdetect.c' object='libgstpatchdetect_la-gstpatchdetect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpatchdetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpatchdetect_la_CFLAGS) $(CFLAGS) -c -o libgstpatchdetect_la-gstpatchdetect.lo `test -f 'gstpatchdetect.c' || echo '$(srcdir)/'`gstpatchdetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpatchdetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpatchdetect_la_CFLAGS) $(CFLAGS) -c -o libgstpatchdetect_la-gstpatchdetect.lo `test -f 'gstpatchdetect.c' || echo '$(srcdir)/'`gstpatchdetect.c mostlyclean-libtool: -rm -f *.lo @@ -761,10 +784,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/patchdetect/gstpatchdetect.c b/gst/patchdetect/gstpatchdetect.c index 1f44e36..71308db 100644 --- a/gst/patchdetect/gstpatchdetect.c +++ b/gst/patchdetect/gstpatchdetect.c @@ -109,10 +109,10 @@ gst_patchdetect_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_patchdetect_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_patchdetect_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_patchdetect_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_patchdetect_src_template); gst_element_class_set_details_simple (element_class, "Color Patch Detector", "Video/Analysis", "Detects color patches from a color calibration chart", @@ -147,22 +147,13 @@ static void gst_patchdetect_init (GstPatchdetect * patchdetect, GstPatchdetectClass * patchdetect_class) { - - patchdetect->sinkpad = - gst_pad_new_from_static_template (&gst_patchdetect_sink_template, "sink"); - - patchdetect->srcpad = - gst_pad_new_from_static_template (&gst_patchdetect_src_template, "src"); } void gst_patchdetect_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstPatchdetect *patchdetect; - g_return_if_fail (GST_IS_PATCHDETECT (object)); - patchdetect = GST_PATCHDETECT (object); switch (property_id) { default: @@ -175,10 +166,7 @@ void gst_patchdetect_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstPatchdetect *patchdetect; - g_return_if_fail (GST_IS_PATCHDETECT (object)); - patchdetect = GST_PATCHDETECT (object); switch (property_id) { default: @@ -190,10 +178,7 @@ gst_patchdetect_get_property (GObject * object, guint property_id, void gst_patchdetect_dispose (GObject * object) { - GstPatchdetect *patchdetect; - g_return_if_fail (GST_IS_PATCHDETECT (object)); - patchdetect = GST_PATCHDETECT (object); /* clean up as possible. may be called multiple times */ @@ -203,10 +188,7 @@ gst_patchdetect_dispose (GObject * object) void gst_patchdetect_finalize (GObject * object) { - GstPatchdetect *patchdetect; - g_return_if_fail (GST_IS_PATCHDETECT (object)); - patchdetect = GST_PATCHDETECT (object); /* clean up object here */ diff --git a/gst/patchdetect/gstpatchdetect.h b/gst/patchdetect/gstpatchdetect.h index 1f29218..acf23e0 100644 --- a/gst/patchdetect/gstpatchdetect.h +++ b/gst/patchdetect/gstpatchdetect.h @@ -37,9 +37,6 @@ struct _GstPatchdetect { GstBaseTransform base_patchdetect; - GstPad *sinkpad; - GstPad *srcpad; - GstVideoFormat format; int width; int height; diff --git a/gst/pcapparse/Makefile.am b/gst/pcapparse/Makefile.am index 08a9d25..6c357f2 100644 --- a/gst/pcapparse/Makefile.am +++ b/gst/pcapparse/Makefile.am @@ -8,10 +8,10 @@ else endif libgstpcapparse_la_SOURCES = \ - gstpcapparse.c + gstpcapparse.c gstirtspparse.c plugin.c noinst_HEADERS = \ - gstpcapparse.h + gstpcapparse.h gstirtspparse.h libgstpcapparse_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) libgstpcapparse_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(WINSOCK2_LIBS) diff --git a/gst/pcapparse/Makefile.in b/gst/pcapparse/Makefile.in index 92ee947..797ccce 100644 --- a/gst/pcapparse/Makefile.in +++ b/gst/pcapparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,15 +101,23 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstpcapparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_libgstpcapparse_la_OBJECTS = libgstpcapparse_la-gstpcapparse.lo +am_libgstpcapparse_la_OBJECTS = libgstpcapparse_la-gstpcapparse.lo \ + libgstpcapparse_la-gstirtspparse.lo \ + libgstpcapparse_la-plugin.lo libgstpcapparse_la_OBJECTS = $(am_libgstpcapparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstpcapparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstpcapparse_la_SOURCES) DIST_SOURCES = $(libgstpcapparse_la_SOURCES) @@ -150,7 +159,6 @@ 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@ @@ -168,7 +176,6 @@ 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@ @@ -203,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -533,10 +562,10 @@ plugin_LTLIBRARIES = libgstpcapparse.la # when compiling for windows we need to link with the winsock library @HAVE_WINSOCK2_H_TRUE@WINSOCK2_LIBS = -lws2_32 libgstpcapparse_la_SOURCES = \ - gstpcapparse.c + gstpcapparse.c gstirtspparse.c plugin.c noinst_HEADERS = \ - gstpcapparse.h + gstpcapparse.h gstirtspparse.h libgstpcapparse_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) libgstpcapparse_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(WINSOCK2_LIBS) @@ -607,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstpcapparse.la: $(libgstpcapparse_la_OBJECTS) $(libgstpcapparse_la_DEPENDENCIES) +libgstpcapparse.la: $(libgstpcapparse_la_OBJECTS) $(libgstpcapparse_la_DEPENDENCIES) $(EXTRA_libgstpcapparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpcapparse_la_LINK) -rpath $(plugindir) $(libgstpcapparse_la_OBJECTS) $(libgstpcapparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -616,39 +645,51 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpcapparse_la-gstirtspparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpcapparse_la-gstpcapparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpcapparse_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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstpcapparse_la-gstpcapparse.lo: gstpcapparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -MT libgstpcapparse_la-gstpcapparse.lo -MD -MP -MF $(DEPDIR)/libgstpcapparse_la-gstpcapparse.Tpo -c -o libgstpcapparse_la-gstpcapparse.lo `test -f 'gstpcapparse.c' || echo '$(srcdir)/'`gstpcapparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpcapparse_la-gstpcapparse.Tpo $(DEPDIR)/libgstpcapparse_la-gstpcapparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpcapparse.c' object='libgstpcapparse_la-gstpcapparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpcapparse.c' object='libgstpcapparse_la-gstpcapparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -c -o libgstpcapparse_la-gstpcapparse.lo `test -f 'gstpcapparse.c' || echo '$(srcdir)/'`gstpcapparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -c -o libgstpcapparse_la-gstpcapparse.lo `test -f 'gstpcapparse.c' || echo '$(srcdir)/'`gstpcapparse.c + +libgstpcapparse_la-gstirtspparse.lo: gstirtspparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -MT libgstpcapparse_la-gstirtspparse.lo -MD -MP -MF $(DEPDIR)/libgstpcapparse_la-gstirtspparse.Tpo -c -o libgstpcapparse_la-gstirtspparse.lo `test -f 'gstirtspparse.c' || echo '$(srcdir)/'`gstirtspparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpcapparse_la-gstirtspparse.Tpo $(DEPDIR)/libgstpcapparse_la-gstirtspparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstirtspparse.c' object='libgstpcapparse_la-gstirtspparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -c -o libgstpcapparse_la-gstirtspparse.lo `test -f 'gstirtspparse.c' || echo '$(srcdir)/'`gstirtspparse.c + +libgstpcapparse_la-plugin.lo: plugin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -MT libgstpcapparse_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstpcapparse_la-plugin.Tpo -c -o libgstpcapparse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpcapparse_la-plugin.Tpo $(DEPDIR)/libgstpcapparse_la-plugin.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstpcapparse_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpcapparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpcapparse_la_CFLAGS) $(CFLAGS) -c -o libgstpcapparse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -755,10 +796,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/pcapparse/gstirtspparse.c b/gst/pcapparse/gstirtspparse.c new file mode 100644 index 0000000..0beed36 --- /dev/null +++ b/gst/pcapparse/gstirtspparse.c @@ -0,0 +1,254 @@ +/* GStreamer Interleaved RTSP parser + * Copyright (C) 2011 Mark Nauwelaerts + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: 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. + */ +/** + * SECTION:element-irtspparse + * @short_description: Interleaved RTSP parser + * @see_also: #GstPcapParse + * + * This is an interleaved RTSP parser that allows extracting specific + * so-called "channels" from received interleaved (TCP) RTSP data + * (typically extracted from some network capture). + * + * + * Example launch line + * |[ + * gst-launch-0.10 filesrc location=h264crasher.pcap ! pcapparse ! irtspparse + * ! rtph264depay ! ffdec_h264 ! fakesink + * ]| Read from a pcap dump file using filesrc, extract the raw TCP packets, + * depayload and decode them. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstirtspparse.h" +#include + +GST_DEBUG_CATEGORY_STATIC (irtsp_parse_debug); +#define GST_CAT_DEFAULT irtsp_parse_debug + +enum +{ + PROP_0, + PROP_CHANNEL_ID +}; + + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp ; application/x-rtcp")); + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +static void gst_irtsp_parse_finalize (GObject * object); + +static gboolean gst_irtsp_parse_start (GstBaseParse * parse); +static gboolean gst_irtsp_parse_stop (GstBaseParse * parse); +static gboolean gst_irtsp_parse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * size, gint * skipsize); +static GstFlowReturn gst_irtsp_parse_parse_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); + +static void gst_irtsp_parse_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_irtsp_parse_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +GST_BOILERPLATE (GstIRTSPParse, gst_irtsp_parse, GstBaseParse, + GST_TYPE_BASE_PARSE); + +static void +gst_irtsp_parse_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); + + gst_element_class_set_details_simple (element_class, "IRTSPParse", + "Raw/Parser", + "Parses a raw interleaved RTSP stream", + "Mark Nauwelaerts "); +} + +static void +gst_irtsp_parse_class_init (GstIRTSPParseClass * klass) +{ + GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (irtsp_parse_debug, "irtspparse", 0, + "Interleaved RTSP stream parser"); + + object_class->finalize = gst_irtsp_parse_finalize; + + object_class->set_property = gst_irtsp_parse_set_property; + object_class->get_property = gst_irtsp_parse_get_property; + + g_object_class_install_property (object_class, PROP_CHANNEL_ID, + g_param_spec_int ("channel-id", "channel-id", + "Channel Identifier", 0, 255, + 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + parse_class->start = GST_DEBUG_FUNCPTR (gst_irtsp_parse_start); + parse_class->stop = GST_DEBUG_FUNCPTR (gst_irtsp_parse_stop); + parse_class->check_valid_frame = + GST_DEBUG_FUNCPTR (gst_irtsp_parse_check_valid_frame); + parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_irtsp_parse_parse_frame); +} + +static void +gst_irtsp_parse_reset (GstIRTSPParse * IRTSPParse) +{ +} + +static void +gst_irtsp_parse_init (GstIRTSPParse * IRTSPParse, GstIRTSPParseClass * klass) +{ + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (IRTSPParse), 4); + gst_irtsp_parse_reset (IRTSPParse); +} + +static void +gst_irtsp_parse_finalize (GObject * object) +{ + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_irtsp_parse_start (GstBaseParse * parse) +{ + GstIRTSPParse *IRTSPParse = GST_IRTSP_PARSE (parse); + + GST_DEBUG_OBJECT (parse, "starting"); + + gst_irtsp_parse_reset (IRTSPParse); + + return TRUE; +} + +static gboolean +gst_irtsp_parse_stop (GstBaseParse * parse) +{ + GST_DEBUG_OBJECT (parse, "stopping"); + + return TRUE; +} + +static gboolean +gst_irtsp_parse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * framesize, gint * skipsize) +{ + GstIRTSPParse *IRTSPParse = GST_IRTSP_PARSE (parse); + GstBuffer *buf = frame->buffer; + GstByteReader reader = GST_BYTE_READER_INIT_FROM_BUFFER (buf); + gint off; + + if (G_UNLIKELY (GST_BUFFER_SIZE (buf) < 4)) + return FALSE; + + off = gst_byte_reader_masked_scan_uint32 (&reader, 0xffff0000, + 0x24000000 + (IRTSPParse->channel_id << 16), 0, GST_BUFFER_SIZE (buf)); + + GST_LOG_OBJECT (parse, "possible sync at buffer offset %d", off); + + /* didn't find anything that looks like a sync word, skip */ + if (off < 0) { + *skipsize = GST_BUFFER_SIZE (buf) - 3; + return FALSE; + } + + /* possible frame header, but not at offset 0? skip bytes before sync */ + if (off > 0) { + *skipsize = off; + return FALSE; + } + + *framesize = GST_READ_UINT16_BE (GST_BUFFER_DATA (frame->buffer) + 2) + 4; + GST_LOG_OBJECT (parse, "got frame size %d", *framesize); + + return TRUE; +} + +static GstFlowReturn +gst_irtsp_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + /* HACK HACK skip header. + * could also ask baseparse to skip this, + * but that would give us a discontinuity for free + * which is a bit too much to have on all our packets */ + GST_BUFFER_DATA (frame->buffer) += 4; + GST_BUFFER_SIZE (frame->buffer) -= 4; + + if (!GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (parse))) { + GstCaps *caps; + + caps = gst_caps_new_simple ("application/x-rtp", NULL); + gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); + gst_caps_unref (caps); + } + + GST_BUFFER_FLAG_UNSET (frame->buffer, GST_BUFFER_FLAG_DISCONT); + + return GST_FLOW_OK; + +} + +static void +gst_irtsp_parse_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstIRTSPParse *IRTSPParse = GST_IRTSP_PARSE (object); + + switch (prop_id) { + case PROP_CHANNEL_ID: + IRTSPParse->channel_id = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_irtsp_parse_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstIRTSPParse *IRTSPParse = GST_IRTSP_PARSE (object); + + switch (prop_id) { + case PROP_CHANNEL_ID: + g_value_set_int (value, IRTSPParse->channel_id); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/gst/pcapparse/gstirtspparse.h b/gst/pcapparse/gstirtspparse.h new file mode 100644 index 0000000..a3d613f --- /dev/null +++ b/gst/pcapparse/gstirtspparse.h @@ -0,0 +1,70 @@ +/* GStreamer Interleaved RTSP parser + * Copyright (C) 2011 Mark Nauwelaerts + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * Contact: 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. + */ + +#ifndef __GST_IRTSP_PARSE_H__ +#define __GST_IRTSP_PARSE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_IRTSP_PARSE \ + (gst_irtsp_parse_get_type()) +#define GST_IRTSP_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_IRTSP_PARSE, GstIRTSPParse)) +#define GST_IRTSP_PARSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_IRTSP_PARSE, GstIRTSPParseClass)) +#define GST_IS_IRTSP_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_IRTSP_PARSE)) +#define GST_IS_IRTSP_PARSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_IRTSP_PARSE)) + +typedef struct _GstIRTSPParse GstIRTSPParse; +typedef struct _GstIRTSPParseClass GstIRTSPParseClass; + +/** + * GstIRTSPParse: + * + * The opaque GstIRTSPParse object + */ +struct _GstIRTSPParse { + GstBaseParse baseparse; + + guint8 channel_id; + /*< private >*/ +}; + +/** + * GstIRTSPParseClass: + * @parent_class: Element parent class. + * + * The opaque GstIRTSPParseClass data structure. + */ +struct _GstIRTSPParseClass { + GstBaseParseClass baseparse_class; +}; + +GType gst_irtsp_parse_get_type (void); + +G_END_DECLS + +#endif /* __GST_IRTSP_PARSE_H__ */ diff --git a/gst/pcapparse/gstpcapparse.c b/gst/pcapparse/gstpcapparse.c index 2d3436c..ae7fd5f 100644 --- a/gst/pcapparse/gstpcapparse.c +++ b/gst/pcapparse/gstpcapparse.c @@ -20,8 +20,8 @@ /** * SECTION:element-pcapparse * - * Extracts payloads from Ethernet-encapsulated IP packets, currently limited - * to UDP. Use #GstPcapParse:src-ip, #GstPcapParse:dst-ip, + * Extracts payloads from Ethernet-encapsulated IP packets. + * Use #GstPcapParse:src-ip, #GstPcapParse:dst-ip, * #GstPcapParse:src-port and #GstPcapParse:dst-port to restrict which packets * should be included. * @@ -64,6 +64,7 @@ enum PROP_SRC_PORT, PROP_DST_PORT, PROP_CAPS, + PROP_TS_OFFSET, PROP_LAST }; @@ -98,10 +99,9 @@ gst_pcap_parse_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); - 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_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "PCapParse", "Raw/Parser", @@ -143,6 +143,11 @@ gst_pcap_parse_class_init (GstPcapParseClass * klass) "The caps of the source pad", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_TS_OFFSET, + g_param_spec_int64 ("ts-offset", "Timestamp Offset", + "Relative timestamp offset (ns) to apply (-1 = use absolute packet time)", + -1, G_MAXINT64, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + GST_DEBUG_CATEGORY_INIT (gst_pcap_parse_debug, "pcapparse", 0, "pcap parser"); } @@ -165,6 +170,7 @@ gst_pcap_parse_init (GstPcapParse * self, GstPcapParseClass * gclass) self->dst_ip = -1; self->src_port = -1; self->dst_port = -1; + self->offset = -1; self->adapter = gst_adapter_new (); @@ -234,6 +240,10 @@ gst_pcap_parse_get_property (GObject * object, guint prop_id, gst_value_set_caps (value, self->caps); break; + case PROP_TS_OFFSET: + g_value_set_int64 (value, self->offset); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -283,6 +293,11 @@ gst_pcap_parse_set_property (GObject * object, guint prop_id, gst_pad_set_caps (self->src_pad, new_caps); break; } + + case PROP_TS_OFFSET: + self->offset = g_value_get_int64 (value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -297,6 +312,7 @@ gst_pcap_parse_reset (GstPcapParse * self) self->cur_packet_size = -1; self->buffer_offset = 0; self->cur_ts = GST_CLOCK_TIME_NONE; + self->base_ts = GST_CLOCK_TIME_NONE; self->newsegment_sent = FALSE; gst_adapter_clear (self->adapter); @@ -324,6 +340,8 @@ gst_pcap_parse_read_uint32 (GstPcapParse * self, const guint8 * p) #define UDP_HEADER_LEN 8 #define IP_PROTO_UDP 17 +#define IP_PROTO_TCP 6 + static gboolean gst_pcap_parse_scan_frame (GstPcapParse * self, @@ -331,16 +349,16 @@ gst_pcap_parse_scan_frame (GstPcapParse * self, gint buf_size, const guint8 ** payload, gint * payload_size) { const guint8 *buf_ip = 0; - const guint8 *buf_udp; + const guint8 *buf_proto; guint16 eth_type; guint8 b; guint8 ip_header_size; guint8 ip_protocol; guint32 ip_src_addr; guint32 ip_dst_addr; - guint16 udp_src_port; - guint16 udp_dst_port; - guint16 udp_len; + guint16 src_port; + guint16 dst_port; + guint16 len; switch (self->linktype) { case DLT_ETHER: @@ -348,24 +366,22 @@ gst_pcap_parse_scan_frame (GstPcapParse * self, return FALSE; eth_type = GUINT16_FROM_BE (*((guint16 *) (buf + 12))); - if (eth_type != 0x800) - return FALSE; - buf_ip = buf + ETH_HEADER_LEN; break; case DLT_SLL: if (buf_size < SLL_HEADER_LEN + IP_HEADER_MIN_LEN + UDP_HEADER_LEN) return FALSE; - eth_type = GUINT16_FROM_BE (*((guint16 *) (buf + 2))); - - if (eth_type != 1) - return FALSE; - + eth_type = GUINT16_FROM_BE (*((guint16 *) (buf + 14))); buf_ip = buf + SLL_HEADER_LEN; break; + default: + return FALSE; } + if (eth_type != 0x800) + return FALSE; + b = *buf_ip; if (((b >> 4) & 0x0f) != 4) return FALSE; @@ -375,33 +391,52 @@ gst_pcap_parse_scan_frame (GstPcapParse * self, return FALSE; ip_protocol = *(buf_ip + 9); - if (ip_protocol != IP_PROTO_UDP) - return FALSE; + GST_LOG_OBJECT (self, "ip proto %d", (gint) ip_protocol); - ip_src_addr = *((guint32 *) (buf_ip + 12)); - if (self->src_ip >= 0 && ip_src_addr != self->src_ip) + if (ip_protocol != IP_PROTO_UDP && ip_protocol != IP_PROTO_TCP) return FALSE; + /* ip info */ + ip_src_addr = *((guint32 *) (buf_ip + 12)); ip_dst_addr = *((guint32 *) (buf_ip + 16)); - if (self->dst_ip >= 0 && ip_dst_addr != self->dst_ip) - return FALSE; + buf_proto = buf_ip + ip_header_size; + + /* ok for tcp and udp */ + src_port = GUINT16_FROM_BE (*((guint16 *) (buf_proto + 0))); + dst_port = GUINT16_FROM_BE (*((guint16 *) (buf_proto + 2))); - buf_udp = buf_ip + ip_header_size; + /* extract some params and data according to protocol */ + if (ip_protocol == IP_PROTO_UDP) { + len = GUINT16_FROM_BE (*((guint16 *) (buf_proto + 4))); + if (len < UDP_HEADER_LEN || buf_proto + len > buf + buf_size) + return FALSE; - udp_src_port = GUINT16_FROM_BE (*((guint16 *) (buf_udp + 0))); - if (self->src_port >= 0 && udp_src_port != self->src_port) + *payload = buf_proto + UDP_HEADER_LEN; + *payload_size = len - UDP_HEADER_LEN; + } else { + if (buf_proto + 12 >= buf + buf_size) + return FALSE; + len = (buf_proto[12] >> 4) * 4; + if (buf_proto + len > buf + buf_size) + return FALSE; + + /* all remaining data following tcp header is payload */ + *payload = buf_proto + len; + *payload_size = self->cur_packet_size - (buf_proto - buf) - len; + } + + /* but still filter as configured */ + if (self->src_ip >= 0 && ip_src_addr != self->src_ip) return FALSE; - udp_dst_port = GUINT16_FROM_BE (*((guint16 *) (buf_udp + 2))); - if (self->dst_port >= 0 && udp_dst_port != self->dst_port) + if (self->dst_ip >= 0 && ip_dst_addr != self->dst_ip) return FALSE; - udp_len = GUINT16_FROM_BE (*((guint16 *) (buf_udp + 4))); - if (udp_len < UDP_HEADER_LEN || buf_udp + udp_len > buf + buf_size) + if (self->src_port >= 0 && src_port != self->src_port) return FALSE; - *payload = buf_udp + UDP_HEADER_LEN; - *payload_size = udp_len - UDP_HEADER_LEN; + if (self->dst_port >= 0 && dst_port != self->dst_port) + return FALSE; return TRUE; } @@ -431,6 +466,9 @@ gst_pcap_parse_chain (GstPad * pad, GstBuffer * buffer) data = gst_adapter_peek (self->adapter, self->cur_packet_size); + GST_LOG_OBJECT (self, "examining packet size %" G_GINT64_FORMAT, + self->cur_packet_size); + if (gst_pcap_parse_scan_frame (self, data, self->cur_packet_size, &payload_data, &payload_size)) { GstBuffer *out_buf; @@ -440,6 +478,15 @@ gst_pcap_parse_chain (GstPad * pad, GstBuffer * buffer) if (ret == GST_FLOW_OK) { + if (GST_CLOCK_TIME_IS_VALID (self->cur_ts)) { + if (!GST_CLOCK_TIME_IS_VALID (self->base_ts)) + self->base_ts = self->cur_ts; + if (self->offset >= 0) { + self->cur_ts -= self->base_ts; + self->cur_ts += self->offset; + } + } + memcpy (GST_BUFFER_DATA (out_buf), payload_data, payload_size); GST_BUFFER_TIMESTAMP (out_buf) = self->cur_ts; @@ -466,7 +513,6 @@ gst_pcap_parse_chain (GstPad * pad, GstBuffer * buffer) guint32 ts_sec; guint32 ts_usec; guint32 incl_len; - guint32 orig_len; if (avail < 16) break; @@ -476,7 +522,7 @@ gst_pcap_parse_chain (GstPad * pad, GstBuffer * buffer) ts_sec = gst_pcap_parse_read_uint32 (self, data + 0); ts_usec = gst_pcap_parse_read_uint32 (self, data + 4); incl_len = gst_pcap_parse_read_uint32 (self, data + 8); - orig_len = gst_pcap_parse_read_uint32 (self, data + 12); + /* orig_len = gst_pcap_parse_read_uint32 (self, data + 12); */ gst_adapter_flush (self->adapter, 16); @@ -525,6 +571,7 @@ gst_pcap_parse_chain (GstPad * pad, GstBuffer * buffer) goto out; } + GST_DEBUG_OBJECT (self, "linktype %u", linktype); self->linktype = linktype; gst_adapter_flush (self->adapter, 24); @@ -559,17 +606,3 @@ gst_pcap_sink_event (GstPad * pad, GstEvent * event) return ret; } - - -static gboolean -plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "pcapparse", - GST_RANK_NONE, GST_TYPE_PCAP_PARSE); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "pcapparse", - "Element parsing raw pcap streams", - plugin_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/") diff --git a/gst/pcapparse/gstpcapparse.h b/gst/pcapparse/gstpcapparse.h index 3574239..49e432c 100644 --- a/gst/pcapparse/gstpcapparse.h +++ b/gst/pcapparse/gstpcapparse.h @@ -71,6 +71,7 @@ struct _GstPcapParse gint32 src_port; gint32 dst_port; GstCaps *caps; + gint64 offset; /* state */ GstAdapter * adapter; @@ -78,6 +79,7 @@ struct _GstPcapParse gboolean swap_endian; gint64 cur_packet_size; GstClockTime cur_ts; + GstClockTime base_ts; GstPcapParseLinktype linktype; gboolean newsegment_sent; diff --git a/gst/pcapparse/plugin.c b/gst/pcapparse/plugin.c new file mode 100644 index 0000000..d034e3d --- /dev/null +++ b/gst/pcapparse/plugin.c @@ -0,0 +1,44 @@ +/* + * Copyright 2007 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. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstpcapparse.h" +#include "gstirtspparse.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gboolean ret; + + ret = gst_element_register (plugin, "pcapparse", + GST_RANK_NONE, GST_TYPE_PCAP_PARSE); + ret &= gst_element_register (plugin, "irtspparse", + GST_RANK_NONE, GST_TYPE_IRTSP_PARSE); + + return ret; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "pcapparse", + "Element parsing raw pcap streams", + plugin_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/") diff --git a/gst/pnm/Makefile.in b/gst/pnm/Makefile.in index fbd495d..3e15199 100644 --- a/gst/pnm/Makefile.in +++ b/gst/pnm/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstpnm_la_OBJECTS = libgstpnm_la-gstpnmutils.lo \ libgstpnm_la-gstpnm.lo libgstpnm_la-gstpnmdec.lo \ libgstpnm_la-gstpnmenc.lo libgstpnm_la_OBJECTS = $(am_libgstpnm_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstpnm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstpnm_la_SOURCES) DIST_SOURCES = $(libgstpnm_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -601,7 +628,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstpnm.la: $(libgstpnm_la_OBJECTS) $(libgstpnm_la_DEPENDENCIES) +libgstpnm.la: $(libgstpnm_la_OBJECTS) $(libgstpnm_la_DEPENDENCIES) $(EXTRA_libgstpnm_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpnm_la_LINK) -rpath $(plugindir) $(libgstpnm_la_OBJECTS) $(libgstpnm_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -618,58 +645,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstpnm_la-gstpnmutils.lo: gstpnmutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -MT libgstpnm_la-gstpnmutils.lo -MD -MP -MF $(DEPDIR)/libgstpnm_la-gstpnmutils.Tpo -c -o libgstpnm_la-gstpnmutils.lo `test -f 'gstpnmutils.c' || echo '$(srcdir)/'`gstpnmutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpnm_la-gstpnmutils.Tpo $(DEPDIR)/libgstpnm_la-gstpnmutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpnmutils.c' object='libgstpnm_la-gstpnmutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpnmutils.c' object='libgstpnm_la-gstpnmutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmutils.lo `test -f 'gstpnmutils.c' || echo '$(srcdir)/'`gstpnmutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmutils.lo `test -f 'gstpnmutils.c' || echo '$(srcdir)/'`gstpnmutils.c libgstpnm_la-gstpnm.lo: gstpnm.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -MT libgstpnm_la-gstpnm.lo -MD -MP -MF $(DEPDIR)/libgstpnm_la-gstpnm.Tpo -c -o libgstpnm_la-gstpnm.lo `test -f 'gstpnm.c' || echo '$(srcdir)/'`gstpnm.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpnm_la-gstpnm.Tpo $(DEPDIR)/libgstpnm_la-gstpnm.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpnm.c' object='libgstpnm_la-gstpnm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpnm.c' object='libgstpnm_la-gstpnm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnm.lo `test -f 'gstpnm.c' || echo '$(srcdir)/'`gstpnm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnm.lo `test -f 'gstpnm.c' || echo '$(srcdir)/'`gstpnm.c libgstpnm_la-gstpnmdec.lo: gstpnmdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -MT libgstpnm_la-gstpnmdec.lo -MD -MP -MF $(DEPDIR)/libgstpnm_la-gstpnmdec.Tpo -c -o libgstpnm_la-gstpnmdec.lo `test -f 'gstpnmdec.c' || echo '$(srcdir)/'`gstpnmdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpnm_la-gstpnmdec.Tpo $(DEPDIR)/libgstpnm_la-gstpnmdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpnmdec.c' object='libgstpnm_la-gstpnmdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpnmdec.c' object='libgstpnm_la-gstpnmdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmdec.lo `test -f 'gstpnmdec.c' || echo '$(srcdir)/'`gstpnmdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmdec.lo `test -f 'gstpnmdec.c' || echo '$(srcdir)/'`gstpnmdec.c libgstpnm_la-gstpnmenc.lo: gstpnmenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -MT libgstpnm_la-gstpnmenc.lo -MD -MP -MF $(DEPDIR)/libgstpnm_la-gstpnmenc.Tpo -c -o libgstpnm_la-gstpnmenc.lo `test -f 'gstpnmenc.c' || echo '$(srcdir)/'`gstpnmenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpnm_la-gstpnmenc.Tpo $(DEPDIR)/libgstpnm_la-gstpnmenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpnmenc.c' object='libgstpnm_la-gstpnmenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpnmenc.c' object='libgstpnm_la-gstpnmenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmenc.lo `test -f 'gstpnmenc.c' || echo '$(srcdir)/'`gstpnmenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpnm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpnm_la_CFLAGS) $(CFLAGS) -c -o libgstpnm_la-gstpnmenc.lo `test -f 'gstpnmenc.c' || echo '$(srcdir)/'`gstpnmenc.c mostlyclean-libtool: -rm -f *.lo @@ -776,10 +796,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c index 394e86d..aef4526 100644 --- a/gst/pnm/gstpnmdec.c +++ b/gst/pnm/gstpnmdec.c @@ -308,10 +308,10 @@ gst_pnmdec_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_pnmdec_sink_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_pnmdec_src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_pnmdec_sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_pnmdec_src_pad_template); gst_element_class_set_details_simple (element_class, "PNM image decoder", "Codec/Decoder/Image", "Decodes images in portable pixmap/graymap/bitmap/anymamp (PNM) format", diff --git a/gst/pnm/gstpnmenc.c b/gst/pnm/gstpnmenc.c index 53bd4a3..7036cbd 100644 --- a/gst/pnm/gstpnmenc.c +++ b/gst/pnm/gstpnmenc.c @@ -231,10 +231,10 @@ gst_pnmenc_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_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &src_pad_template); gst_element_class_set_details_simple (element_class, "PNM image encoder", "Codec/Encoder/Image", "Encodes images into portable pixmap or graymap (PNM) format", diff --git a/gst/rawparse/Makefile.in b/gst/rawparse/Makefile.in index c0b0563..63cb54a 100644 --- a/gst/rawparse/Makefile.in +++ b/gst/rawparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstrawparse_la_OBJECTS = libgstrawparse_la-gstrawparse.lo \ libgstrawparse_la-gstaudioparse.lo \ libgstrawparse_la-gstvideoparse.lo libgstrawparse_la-plugin.lo libgstrawparse_la_OBJECTS = $(am_libgstrawparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrawparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrawparse_la_SOURCES) DIST_SOURCES = $(libgstrawparse_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -619,7 +646,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrawparse.la: $(libgstrawparse_la_OBJECTS) $(libgstrawparse_la_DEPENDENCIES) +libgstrawparse.la: $(libgstrawparse_la_OBJECTS) $(libgstrawparse_la_DEPENDENCIES) $(EXTRA_libgstrawparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrawparse_la_LINK) -rpath $(plugindir) $(libgstrawparse_la_OBJECTS) $(libgstrawparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -636,58 +663,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrawparse_la-gstrawparse.lo: gstrawparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -MT libgstrawparse_la-gstrawparse.lo -MD -MP -MF $(DEPDIR)/libgstrawparse_la-gstrawparse.Tpo -c -o libgstrawparse_la-gstrawparse.lo `test -f 'gstrawparse.c' || echo '$(srcdir)/'`gstrawparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrawparse_la-gstrawparse.Tpo $(DEPDIR)/libgstrawparse_la-gstrawparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrawparse.c' object='libgstrawparse_la-gstrawparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrawparse.c' object='libgstrawparse_la-gstrawparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstrawparse.lo `test -f 'gstrawparse.c' || echo '$(srcdir)/'`gstrawparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstrawparse.lo `test -f 'gstrawparse.c' || echo '$(srcdir)/'`gstrawparse.c libgstrawparse_la-gstaudioparse.lo: gstaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -MT libgstrawparse_la-gstaudioparse.lo -MD -MP -MF $(DEPDIR)/libgstrawparse_la-gstaudioparse.Tpo -c -o libgstrawparse_la-gstaudioparse.lo `test -f 'gstaudioparse.c' || echo '$(srcdir)/'`gstaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrawparse_la-gstaudioparse.Tpo $(DEPDIR)/libgstrawparse_la-gstaudioparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudioparse.c' object='libgstrawparse_la-gstaudioparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioparse.c' object='libgstrawparse_la-gstaudioparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstaudioparse.lo `test -f 'gstaudioparse.c' || echo '$(srcdir)/'`gstaudioparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstaudioparse.lo `test -f 'gstaudioparse.c' || echo '$(srcdir)/'`gstaudioparse.c libgstrawparse_la-gstvideoparse.lo: gstvideoparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -MT libgstrawparse_la-gstvideoparse.lo -MD -MP -MF $(DEPDIR)/libgstrawparse_la-gstvideoparse.Tpo -c -o libgstrawparse_la-gstvideoparse.lo `test -f 'gstvideoparse.c' || echo '$(srcdir)/'`gstvideoparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrawparse_la-gstvideoparse.Tpo $(DEPDIR)/libgstrawparse_la-gstvideoparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideoparse.c' object='libgstrawparse_la-gstvideoparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoparse.c' object='libgstrawparse_la-gstvideoparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstvideoparse.lo `test -f 'gstvideoparse.c' || echo '$(srcdir)/'`gstvideoparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-gstvideoparse.lo `test -f 'gstvideoparse.c' || echo '$(srcdir)/'`gstvideoparse.c libgstrawparse_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -MT libgstrawparse_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstrawparse_la-plugin.Tpo -c -o libgstrawparse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrawparse_la-plugin.Tpo $(DEPDIR)/libgstrawparse_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstrawparse_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstrawparse_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 $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrawparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrawparse_la_CFLAGS) $(CFLAGS) -c -o libgstrawparse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -794,10 +814,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c index 004d190..cf0f5d0 100644 --- a/gst/rawparse/gstrawparse.c +++ b/gst/rawparse/gstrawparse.c @@ -75,8 +75,8 @@ gst_raw_parse_base_init (gpointer g_class) GST_DEBUG_CATEGORY_INIT (gst_raw_parse_debug, "rawparse", 0, "rawparse element"); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_raw_parse_sink_pad_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_raw_parse_sink_pad_template); } static void @@ -154,14 +154,17 @@ gst_raw_parse_class_set_src_pad_template (GstRawParseClass * klass, const GstCaps * allowed_caps) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GstPadTemplate *pad_template; g_return_if_fail (GST_IS_RAW_PARSE_CLASS (klass)); g_return_if_fail (allowed_caps != NULL); g_return_if_fail (GST_IS_CAPS (allowed_caps)); - gst_element_class_add_pad_template (element_class, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - gst_caps_copy (allowed_caps))); + gst_caps_copy (allowed_caps)); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); } void diff --git a/gst/real/Makefile.in b/gst/real/Makefile.in index 232b7bf..9d6b64a 100644 --- a/gst/real/Makefile.in +++ b/gst/real/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstreal_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstreal_la_OBJECTS = libgstreal_la-gstrealvideodec.lo \ libgstreal_la-gstrealaudiodec.lo libgstreal_la-gstreal.lo libgstreal_la_OBJECTS = $(am_libgstreal_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstreal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstreal_la_SOURCES) DIST_SOURCES = $(libgstreal_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -615,7 +642,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstreal.la: $(libgstreal_la_OBJECTS) $(libgstreal_la_DEPENDENCIES) +libgstreal.la: $(libgstreal_la_OBJECTS) $(libgstreal_la_DEPENDENCIES) $(EXTRA_libgstreal_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstreal_la_LINK) -rpath $(plugindir) $(libgstreal_la_OBJECTS) $(libgstreal_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -631,50 +658,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstreal_la-gstrealvideodec.lo: gstrealvideodec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -MT libgstreal_la-gstrealvideodec.lo -MD -MP -MF $(DEPDIR)/libgstreal_la-gstrealvideodec.Tpo -c -o libgstreal_la-gstrealvideodec.lo `test -f 'gstrealvideodec.c' || echo '$(srcdir)/'`gstrealvideodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreal_la-gstrealvideodec.Tpo $(DEPDIR)/libgstreal_la-gstrealvideodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrealvideodec.c' object='libgstreal_la-gstrealvideodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrealvideodec.c' object='libgstreal_la-gstrealvideodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstrealvideodec.lo `test -f 'gstrealvideodec.c' || echo '$(srcdir)/'`gstrealvideodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstrealvideodec.lo `test -f 'gstrealvideodec.c' || echo '$(srcdir)/'`gstrealvideodec.c libgstreal_la-gstrealaudiodec.lo: gstrealaudiodec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -MT libgstreal_la-gstrealaudiodec.lo -MD -MP -MF $(DEPDIR)/libgstreal_la-gstrealaudiodec.Tpo -c -o libgstreal_la-gstrealaudiodec.lo `test -f 'gstrealaudiodec.c' || echo '$(srcdir)/'`gstrealaudiodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreal_la-gstrealaudiodec.Tpo $(DEPDIR)/libgstreal_la-gstrealaudiodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrealaudiodec.c' object='libgstreal_la-gstrealaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrealaudiodec.c' object='libgstreal_la-gstrealaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstrealaudiodec.lo `test -f 'gstrealaudiodec.c' || echo '$(srcdir)/'`gstrealaudiodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstrealaudiodec.lo `test -f 'gstrealaudiodec.c' || echo '$(srcdir)/'`gstrealaudiodec.c libgstreal_la-gstreal.lo: gstreal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -MT libgstreal_la-gstreal.lo -MD -MP -MF $(DEPDIR)/libgstreal_la-gstreal.Tpo -c -o libgstreal_la-gstreal.lo `test -f 'gstreal.c' || echo '$(srcdir)/'`gstreal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreal_la-gstreal.Tpo $(DEPDIR)/libgstreal_la-gstreal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstreal.c' object='libgstreal_la-gstreal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstreal.c' object='libgstreal_la-gstreal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstreal.lo `test -f 'gstreal.c' || echo '$(srcdir)/'`gstreal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreal_la_CFLAGS) $(CFLAGS) -c -o libgstreal_la-gstreal.lo `test -f 'gstreal.c' || echo '$(srcdir)/'`gstreal.c mostlyclean-libtool: -rm -f *.lo @@ -781,10 +802,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/real/gstrealaudiodec.c b/gst/real/gstrealaudiodec.c index f5aa972..b6f6201 100644 --- a/gst/real/gstrealaudiodec.c +++ b/gst/real/gstrealaudiodec.c @@ -560,8 +560,8 @@ gst_real_audio_dec_base_init (gpointer g_class) { GstElementClass *ec = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&snk_t)); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&src_t)); + gst_element_class_add_static_pad_template (ec, &snk_t); + gst_element_class_add_static_pad_template (ec, &src_t); gst_element_class_set_details_simple (ec, "RealAudio decoder", "Codec/Decoder/Audio", "Decoder for RealAudio streams", "Lutz Mueller "); diff --git a/gst/real/gstrealvideodec.c b/gst/real/gstrealvideodec.c index 23bef18..142b1ce 100644 --- a/gst/real/gstrealvideodec.c +++ b/gst/real/gstrealvideodec.c @@ -627,8 +627,8 @@ gst_real_video_dec_base_init (gpointer g_class) { GstElementClass *ec = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&snk_t)); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&src_t)); + gst_element_class_add_static_pad_template (ec, &snk_t); + gst_element_class_add_static_pad_template (ec, &src_t); gst_element_class_set_details_simple (ec, "RealVideo decoder", "Codec/Decoder/Video", "Decoder for RealVideo streams", "Lutz Mueller "); diff --git a/gst/removesilence/Makefile.am b/gst/removesilence/Makefile.am new file mode 100644 index 0000000..c022ac1 --- /dev/null +++ b/gst/removesilence/Makefile.am @@ -0,0 +1,12 @@ + +plugin_LTLIBRARIES = libgstremovesilence.la + +libgstremovesilence_la_SOURCES = gstremovesilence.c vad_private.c +libgstremovesilence_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstremovesilence_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) +libgstremovesilence_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstremovesilence_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstremovesilence.h \ + vad_private.h diff --git a/gst/removesilence/Makefile.in b/gst/removesilence/Makefile.in new file mode 100644 index 0000000..2263ac4 --- /dev/null +++ b/gst/removesilence/Makefile.in @@ -0,0 +1,896 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gst/removesilence +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstremovesilence_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstremovesilence_la_OBJECTS = \ + libgstremovesilence_la-gstremovesilence.lo \ + libgstremovesilence_la-vad_private.lo +libgstremovesilence_la_OBJECTS = $(am_libgstremovesilence_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstremovesilence_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstremovesilence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstremovesilence_la_CFLAGS) $(CFLAGS) \ + $(libgstremovesilence_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstremovesilence_la_SOURCES) +DIST_SOURCES = $(libgstremovesilence_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstremovesilence.la +libgstremovesilence_la_SOURCES = gstremovesilence.c vad_private.c +libgstremovesilence_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +libgstremovesilence_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) +libgstremovesilence_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstremovesilence_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstremovesilence.h \ + vad_private.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 gst/removesilence/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gst/removesilence/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 +libgstremovesilence.la: $(libgstremovesilence_la_OBJECTS) $(libgstremovesilence_la_DEPENDENCIES) $(EXTRA_libgstremovesilence_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstremovesilence_la_LINK) -rpath $(plugindir) $(libgstremovesilence_la_OBJECTS) $(libgstremovesilence_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstremovesilence_la-gstremovesilence.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstremovesilence_la-vad_private.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstremovesilence_la-gstremovesilence.lo: gstremovesilence.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstremovesilence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstremovesilence_la_CFLAGS) $(CFLAGS) -MT libgstremovesilence_la-gstremovesilence.lo -MD -MP -MF $(DEPDIR)/libgstremovesilence_la-gstremovesilence.Tpo -c -o libgstremovesilence_la-gstremovesilence.lo `test -f 'gstremovesilence.c' || echo '$(srcdir)/'`gstremovesilence.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstremovesilence_la-gstremovesilence.Tpo $(DEPDIR)/libgstremovesilence_la-gstremovesilence.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstremovesilence.c' object='libgstremovesilence_la-gstremovesilence.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstremovesilence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstremovesilence_la_CFLAGS) $(CFLAGS) -c -o libgstremovesilence_la-gstremovesilence.lo `test -f 'gstremovesilence.c' || echo '$(srcdir)/'`gstremovesilence.c + +libgstremovesilence_la-vad_private.lo: vad_private.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstremovesilence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstremovesilence_la_CFLAGS) $(CFLAGS) -MT libgstremovesilence_la-vad_private.lo -MD -MP -MF $(DEPDIR)/libgstremovesilence_la-vad_private.Tpo -c -o libgstremovesilence_la-vad_private.lo `test -f 'vad_private.c' || echo '$(srcdir)/'`vad_private.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstremovesilence_la-vad_private.Tpo $(DEPDIR)/libgstremovesilence_la-vad_private.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vad_private.c' object='libgstremovesilence_la-vad_private.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstremovesilence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstremovesilence_la_CFLAGS) $(CFLAGS) -c -o libgstremovesilence_la-vad_private.lo `test -f 'vad_private.c' || echo '$(srcdir)/'`vad_private.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/gst/removesilence/gstremovesilence.c b/gst/removesilence/gstremovesilence.c new file mode 100644 index 0000000..9f5f699 --- /dev/null +++ b/gst/removesilence/gstremovesilence.c @@ -0,0 +1,261 @@ +/* GStreamer + * Copyright (C) 2011 Tiago Katcipis + * Copyright (C) 2011 Paulo Pizarro + * + * 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-removesilence + * + * Removes all silence periods from an audio stream, dropping silence buffers. + * + * + * Example launch line + * |[ + * gst-launch -v -m filesrc location="audiofile" ! decodebin2 ! removesilence remove=true ! wavenc ! filesink location=without_audio.wav + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include "gstremovesilence.h" + + +GST_DEBUG_CATEGORY_STATIC (gst_remove_silence_debug); +#define GST_CAT_DEFAULT gst_remove_silence_debug +#define DEFAULT_VAD_HYSTERESIS 480 /* 60 mseg */ + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_REMOVE, + PROP_HYSTERESIS +}; + + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ("audio/x-raw-int, " + "rate=[1, MAX], channels=1, endianness=BYTE_ORDER, " + "width=16, depth=16, signed=true")); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ("audio/x-raw-int, " + "rate=[1, MAX], channels=1, endianness=BYTE_ORDER, " + "width=16, depth=16, signed=true")); + + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_remove_silence_debug, "removesilence", 0, "removesilence element") + +GST_BOILERPLATE_FULL (GstRemoveSilence, gst_remove_silence, GstBaseTransform, + GST_TYPE_BASE_TRANSFORM, DEBUG_INIT); + + +static void gst_remove_silence_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_remove_silence_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstFlowReturn gst_remove_silence_transform_ip (GstBaseTransform * base, + GstBuffer * buf); +static void gst_remove_silence_finalize (GObject * obj); +static void gst_remove_silence_reset (GstRemoveSilence * filter); + +/* GObject vmethod implementations */ + +static void +gst_remove_silence_base_init (gpointer gclass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_set_details_simple (element_class, + "RemoveSilence", + "Filter/Effect/Audio", + "Removes all the silence periods from the audio stream.", + "Tiago Katcipis \n \ + Paulo Pizarro "); + + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); +} + +/* initialize the removesilence's class */ +static void +gst_remove_silence_class_init (GstRemoveSilenceClass * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + gobject_class->finalize = gst_remove_silence_finalize; + gobject_class->set_property = gst_remove_silence_set_property; + gobject_class->get_property = gst_remove_silence_get_property; + + g_object_class_install_property (gobject_class, PROP_REMOVE, + g_param_spec_boolean ("remove", "Remove", + "Set to true to remove silence from the stream, false otherwhise", + FALSE, G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, PROP_HYSTERESIS, + g_param_spec_uint64 ("hysteresis", + "Hysteresis", + "Set the hysteresis (on samples) used on the internal VAD", + 1, G_MAXUINT64, DEFAULT_VAD_HYSTERESIS, G_PARAM_READWRITE)); + + + GST_BASE_TRANSFORM_CLASS (klass)->transform_ip = + GST_DEBUG_FUNCPTR (gst_remove_silence_transform_ip); +} + +/* initialize the new element + * instantiate pads and add them to element + * set pad calback functions + * initialize instance structure + */ +static void +gst_remove_silence_init (GstRemoveSilence * filter, + GstRemoveSilenceClass * gclass) +{ + filter->vad = vad_new (DEFAULT_VAD_HYSTERESIS); + filter->remove = FALSE; + + if (!filter->vad) { + GST_DEBUG ("Error initializing VAD !!"); + return; + } + + gst_remove_silence_reset (filter); +} + +static void +gst_remove_silence_reset (GstRemoveSilence * filter) +{ + GST_DEBUG ("Reseting VAD"); + if (filter->vad) { + vad_reset (filter->vad); + } + GST_DEBUG ("VAD Reseted"); +} + +static void +gst_remove_silence_finalize (GObject * obj) +{ + GstRemoveSilence *filter = GST_REMOVE_SILENCE (obj); + GST_DEBUG ("Destroying VAD"); + vad_destroy (filter->vad); + filter->vad = NULL; + GST_DEBUG ("VAD Destroyed"); + G_OBJECT_CLASS (parent_class)->finalize (obj); +} + +static void +gst_remove_silence_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstRemoveSilence *filter = GST_REMOVE_SILENCE (object); + + switch (prop_id) { + case PROP_REMOVE: + filter->remove = g_value_get_boolean (value); + break; + case PROP_HYSTERESIS: + vad_set_hysteresis (filter->vad, g_value_get_uint64 (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_remove_silence_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstRemoveSilence *filter = GST_REMOVE_SILENCE (object); + + switch (prop_id) { + case PROP_REMOVE: + g_value_set_boolean (value, filter->remove); + break; + case PROP_HYSTERESIS: + g_value_set_uint64 (value, vad_get_hysteresis (filter->vad)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstFlowReturn +gst_remove_silence_transform_ip (GstBaseTransform * trans, GstBuffer * inbuf) +{ + GstRemoveSilence *filter = NULL; + int frame_type; + + filter = GST_REMOVE_SILENCE (trans); + + frame_type = + vad_update (filter->vad, (gint16 *) GST_BUFFER_DATA (inbuf), + GST_BUFFER_SIZE (inbuf) / sizeof (gint16)); + + if (frame_type == VAD_SILENCE) { + + GST_DEBUG ("Silence detected"); + + if (filter->remove) { + GST_DEBUG ("Removing silence"); + return GST_BASE_TRANSFORM_FLOW_DROPPED; + } + + } + + return GST_FLOW_OK; +} + +/*Plugin init functions*/ +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "removesilence", GST_RANK_NONE, + gst_remove_silence_get_type ()); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "removesilence", + "Removes silence from an audio stream", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/gst/removesilence/gstremovesilence.h b/gst/removesilence/gstremovesilence.h new file mode 100644 index 0000000..0592a37 --- /dev/null +++ b/gst/removesilence/gstremovesilence.h @@ -0,0 +1,56 @@ +/* GStreamer + * Copyright (C) 2011 Tiago Katcipis + * Copyright (C) 2011 Paulo Pizarro + * + * + * 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_REMOVE_SILENCE_H__ +#define __GST_REMOVE_SILENCE_H__ + +#include +#include +#include "vad_private.h" + +G_BEGIN_DECLS + +#define GST_TYPE_REMOVE_SILENCE \ + (gst_remove_silence_get_type()) +#define GST_REMOVE_SILENCE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_REMOVE_SILENCE,GstRemoveSilence)) +#define GST_REMOVE_SILENCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_REMOVE_SILENCE,GstRemoveSilenceClass)) +#define GST_IS_REMOVESILENCE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_REMOVE_SILENCE)) +#define GST_IS_REMOVESILENCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_REMOVE_SILENCE)) + +typedef struct _GstRemoveSilence { + GstBaseTransform parent; + VADFilter* vad; + gboolean remove; +} GstRemoveSilence; + +typedef struct _GstRemoveSilenceClass { + GstBaseTransformClass parent_class; +} GstRemoveSilenceClass; + +GType gst_remove_silence_get_type (void); + +G_END_DECLS + +#endif /* __GST_REMOVE_SILENCE_H__ */ diff --git a/gst/removesilence/vad_private.c b/gst/removesilence/vad_private.c new file mode 100644 index 0000000..f187a06 --- /dev/null +++ b/gst/removesilence/vad_private.c @@ -0,0 +1,152 @@ +/* GStreamer + * Copyright (C) 2009 Tiago Katcipis + * Copyright (C) 2009 Paulo Pizarro + * Copyright (C) 2009 Rogério Santos + * + * 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. + */ + +#include +#include +#include +#include +#include "vad_private.h" + +#define VAD_POWER_ALPHA 0x0800 /* Q16 */ +#define VAD_POWER_THRESHOLD 0x000010C7 /* -60 dB (square wave) */ +#define VAD_ZCR_THRESHOLD 0 +#define VAD_BUFFER_SIZE 256 + + +union pgen +{ + guint64 a; + gpointer v; + guint64 *l; + guchar *b; + guint16 *w; + gint16 *s; +}; + +struct _cqueue_s +{ + union pgen base; + union pgen tail; + union pgen head; + gint size; +}; + +typedef struct _cqueue_s cqueue_t; + +struct _vad_s +{ + gint16 vad_buffer[VAD_BUFFER_SIZE]; + cqueue_t cqueue; + gint vad_state; + guint64 hysteresis; + guint64 vad_samples; + guint64 vad_power; + long vad_zcr; +}; + +VADFilter * +vad_new (guint64 hysteresis) +{ + VADFilter *vad = malloc (sizeof (VADFilter)); + vad_reset (vad); + vad->hysteresis = hysteresis; + return vad; +} + +void +vad_reset (VADFilter * vad) +{ + memset (vad, 0, sizeof (vad)); + vad->cqueue.base.s = vad->vad_buffer; + vad->cqueue.tail.a = vad->cqueue.head.a = 0; + vad->cqueue.size = VAD_BUFFER_SIZE; + vad->vad_state = VAD_SILENCE; +} + +void +vad_destroy (VADFilter * p) +{ + free (p); +} + +void +vad_set_hysteresis (struct _vad_s *p, guint64 hysteresis) +{ + p->hysteresis = hysteresis; +} + +guint64 +vad_get_hysteresis (struct _vad_s *p) +{ + return p->hysteresis; +} + +gint +vad_update (struct _vad_s * p, gint16 * data, gint len) +{ + guint64 tail; + gint frame_type; + gint16 sample; + gint i; + + for (i = 0; i < len; i++) { + p->vad_power = VAD_POWER_ALPHA * ((data[i] * data[i] >> 14) & 0xFFFF) + + (0xFFFF - VAD_POWER_ALPHA) * (p->vad_power >> 16) + + ((0xFFFF - VAD_POWER_ALPHA) * (p->vad_power & 0xFFFF) >> 16); + /* Update VAD buffer */ + p->cqueue.base.s[p->cqueue.head.a] = data[i]; + p->cqueue.head.a = (p->cqueue.head.a + 1) & (p->cqueue.size - 1); + if (p->cqueue.head.a == p->cqueue.tail.a) + p->cqueue.tail.a = (p->cqueue.tail.a + 1) & (p->cqueue.size - 1); + } + + tail = p->cqueue.tail.a; + p->vad_zcr = 0; + for (;;) { + sample = p->cqueue.base.s[tail]; + tail = (tail + 1) & (p->cqueue.size - 1); + if (tail == p->cqueue.head.a) + break; + p->vad_zcr += + ((sample & 0x8000) != (p->cqueue.base.s[tail] & 0x8000)) ? 1 : -1; + } + + frame_type = (p->vad_power > VAD_POWER_THRESHOLD + && p->vad_zcr < VAD_ZCR_THRESHOLD) ? VAD_VOICE : VAD_SILENCE; + + if (p->vad_state != frame_type) { + /* Voice to silence transition */ + if (p->vad_state == VAD_VOICE) { + p->vad_samples += len; + if (p->vad_samples >= p->hysteresis) { + p->vad_state = frame_type; + p->vad_samples = 0; + } + } else { + p->vad_state = frame_type; + p->vad_samples = 0; + } + } else { + p->vad_samples = 0; + } + + return p->vad_state; +} diff --git a/gst/removesilence/vad_private.h b/gst/removesilence/vad_private.h new file mode 100644 index 0000000..5401f41 --- /dev/null +++ b/gst/removesilence/vad_private.h @@ -0,0 +1,44 @@ +/* GStreamer + * Copyright (C) 2009 Tiago Katcipis + * Copyright (C) 2009 Paulo Pizarro + * Copyright (C) 2009 Rogério Santos + * + * 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 __VAD_FILTER_H__ +#define __VAD_FILTER_H__ + +#define VAD_SILENCE 0 +#define VAD_VOICE 1 + + +typedef struct _vad_s VADFilter; + +gint vad_update(VADFilter *p, gint16 *data, gint len); + +void vad_set_hysteresis(VADFilter *p, guint64 hysteresis); + +guint64 vad_get_hysteresis(VADFilter *p); + +VADFilter* vad_new(guint64 hysteresis); + +void vad_reset(VADFilter *p); + +void vad_destroy(VADFilter *p); + +#endif /* __VAD_FILTER__ */ diff --git a/gst/rtpmux/Makefile.in b/gst/rtpmux/Makefile.in index 0c33f15..8f82278 100644 --- a/gst/rtpmux/Makefile.in +++ b/gst/rtpmux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstrtpmux_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstrtpmux_la_OBJECTS = libgstrtpmux_la-gstrtpmuxer.lo \ libgstrtpmux_la-gstrtpmux.lo libgstrtpmux_la-gstrtpdtmfmux.lo libgstrtpmux_la_OBJECTS = $(am_libgstrtpmux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtpmux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtpmux_la_SOURCES) DIST_SOURCES = $(libgstrtpmux_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -604,7 +631,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtpmux.la: $(libgstrtpmux_la_OBJECTS) $(libgstrtpmux_la_DEPENDENCIES) +libgstrtpmux.la: $(libgstrtpmux_la_OBJECTS) $(libgstrtpmux_la_DEPENDENCIES) $(EXTRA_libgstrtpmux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtpmux_la_LINK) -rpath $(plugindir) $(libgstrtpmux_la_OBJECTS) $(libgstrtpmux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -620,50 +647,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtpmux_la-gstrtpmuxer.lo: gstrtpmuxer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -MT libgstrtpmux_la-gstrtpmuxer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmux_la-gstrtpmuxer.Tpo -c -o libgstrtpmux_la-gstrtpmuxer.lo `test -f 'gstrtpmuxer.c' || echo '$(srcdir)/'`gstrtpmuxer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmux_la-gstrtpmuxer.Tpo $(DEPDIR)/libgstrtpmux_la-gstrtpmuxer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmuxer.c' object='libgstrtpmux_la-gstrtpmuxer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmuxer.c' object='libgstrtpmux_la-gstrtpmuxer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpmuxer.lo `test -f 'gstrtpmuxer.c' || echo '$(srcdir)/'`gstrtpmuxer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpmuxer.lo `test -f 'gstrtpmuxer.c' || echo '$(srcdir)/'`gstrtpmuxer.c libgstrtpmux_la-gstrtpmux.lo: gstrtpmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -MT libgstrtpmux_la-gstrtpmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmux_la-gstrtpmux.Tpo -c -o libgstrtpmux_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmux_la-gstrtpmux.Tpo $(DEPDIR)/libgstrtpmux_la-gstrtpmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmux.c' object='libgstrtpmux_la-gstrtpmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmux.c' object='libgstrtpmux_la-gstrtpmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c libgstrtpmux_la-gstrtpdtmfmux.lo: gstrtpdtmfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -MT libgstrtpmux_la-gstrtpdtmfmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmux_la-gstrtpdtmfmux.Tpo -c -o libgstrtpmux_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmux_la-gstrtpdtmfmux.Tpo $(DEPDIR)/libgstrtpmux_la-gstrtpdtmfmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdtmfmux.c' object='libgstrtpmux_la-gstrtpdtmfmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdtmfmux.c' object='libgstrtpmux_la-gstrtpdtmfmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmux_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmux_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c mostlyclean-libtool: -rm -f *.lo @@ -770,10 +791,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rtpmux/gstrtpdtmfmux.c b/gst/rtpmux/gstrtpdtmfmux.c index f62c626..23de0a2 100644 --- a/gst/rtpmux/gstrtpdtmfmux.c +++ b/gst/rtpmux/gstrtpdtmfmux.c @@ -64,6 +64,8 @@ static GstStateChangeReturn gst_rtp_dtmf_mux_change_state (GstElement * element, static gboolean gst_rtp_dtmf_mux_accept_buffer_locked (GstRTPMux * rtp_mux, GstRTPMuxPadPrivate * padpriv, GstBuffer * buffer); +static gboolean gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux, + GstEvent * event); GST_BOILERPLATE (GstRTPDTMFMux, gst_rtp_dtmf_mux, GstRTPMux, GST_TYPE_RTP_MUX); @@ -77,8 +79,8 @@ gst_rtp_dtmf_mux_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 (&priority_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &priority_sink_factory); gst_element_class_set_details_simple (element_class, "RTP muxer", "Codec/Muxer", @@ -100,6 +102,7 @@ gst_rtp_dtmf_mux_class_init (GstRTPDTMFMuxClass * klass) gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_mux_change_state); gstrtpmux_class->accept_buffer_locked = gst_rtp_dtmf_mux_accept_buffer_locked; + gstrtpmux_class->src_event = gst_rtp_dtmf_mux_src_event; } static gboolean @@ -173,6 +176,28 @@ gst_rtp_dtmf_mux_request_new_pad (GstElement * element, GstPadTemplate * templ, return pad; } +static gboolean +gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux, GstEvent * event) +{ + if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) { + const GstStructure *s = gst_event_get_structure (event); + + if (s && gst_structure_has_name (s, "dtmf-event")) { + GST_OBJECT_LOCK (rtp_mux); + if (GST_CLOCK_TIME_IS_VALID (rtp_mux->last_stop)) { + event = (GstEvent *) + gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (event)); + s = gst_event_get_structure (event); + gst_structure_set ((GstStructure *) s, + "last-stop", G_TYPE_UINT64, rtp_mux->last_stop, NULL); + } + GST_OBJECT_UNLOCK (rtp_mux); + } + } + + return GST_RTP_MUX_CLASS (parent_class)->src_event (rtp_mux, event); +} + static GstStateChangeReturn gst_rtp_dtmf_mux_change_state (GstElement * element, GstStateChange transition) diff --git a/gst/rtpmux/gstrtpmux.c b/gst/rtpmux/gstrtpmux.c index 57929ec..97cb3f8 100644 --- a/gst/rtpmux/gstrtpmux.c +++ b/gst/rtpmux/gstrtpmux.c @@ -107,6 +107,9 @@ static void gst_rtp_mux_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static void gst_rtp_mux_dispose (GObject * object); +static gboolean gst_rtp_mux_src_event_real (GstRTPMux *rtp_mux, + GstEvent * event); + GST_BOILERPLATE (GstRTPMux, gst_rtp_mux, GstElement, GST_TYPE_ELEMENT); static void @@ -114,10 +117,8 @@ gst_rtp_mux_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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "RTP muxer", "Codec/Muxer", @@ -137,6 +138,8 @@ gst_rtp_mux_class_init (GstRTPMuxClass * klass) gobject_class->set_property = gst_rtp_mux_set_property; gobject_class->dispose = gst_rtp_mux_dispose; + klass->src_event = gst_rtp_mux_src_event_real; + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMESTAMP_OFFSET, g_param_spec_int ("timestamp-offset", "Timestamp Offset", @@ -183,16 +186,30 @@ restart: static gboolean gst_rtp_mux_src_event (GstPad * pad, GstEvent * event) { - GstElement *rtp_mux; + GstRTPMux *rtp_mux; + GstRTPMuxClass *klass; + gboolean ret = FALSE; + + rtp_mux = (GstRTPMux *) gst_pad_get_parent_element (pad); + g_return_val_if_fail (rtp_mux != NULL, FALSE); + klass = GST_RTP_MUX_GET_CLASS (rtp_mux); + + ret = klass->src_event (rtp_mux, event); + + gst_object_unref (rtp_mux); + + return ret; +} + +static gboolean +gst_rtp_mux_src_event_real (GstRTPMux *rtp_mux, GstEvent * event) +{ GstIterator *iter; GstPad *sinkpad; gboolean result = FALSE; gboolean done = FALSE; - rtp_mux = gst_pad_get_parent_element (pad); - g_return_val_if_fail (rtp_mux != NULL, FALSE); - - iter = gst_element_iterate_sink_pads (rtp_mux); + iter = gst_element_iterate_sink_pads (GST_ELEMENT (rtp_mux)); while (!done) { switch (gst_iterator_next (iter, (gpointer) & sinkpad)) { @@ -213,7 +230,6 @@ gst_rtp_mux_src_event (GstPad * pad, GstEvent * event) } } gst_iterator_free (iter); - gst_object_unref (rtp_mux); gst_event_unref (event); return result; @@ -236,6 +252,7 @@ gst_rtp_mux_init (GstRTPMux * object, GstRTPMuxClass * g_class) object->seqnum_offset = DEFAULT_SEQNUM_OFFSET; object->segment_pending = TRUE; + object->last_stop = GST_CLOCK_TIME_NONE; } static void @@ -394,6 +411,20 @@ gst_rtp_mux_chain_list (GstPad * pad, GstBufferList * bufferlist) break; gst_buffer_list_iterator_take (it, rtpbuf); + + do { + if (GST_BUFFER_DURATION_IS_VALID (rtpbuf) && + GST_BUFFER_TIMESTAMP_IS_VALID (rtpbuf)) + rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (rtpbuf) + + GST_BUFFER_DURATION (rtpbuf); + else + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; + + gst_buffer_list_iterator_take (it, rtpbuf); + + } while ((rtpbuf = gst_buffer_list_iterator_next (it)) != NULL); + + } gst_buffer_list_iterator_free (it); @@ -456,15 +487,25 @@ gst_rtp_mux_chain (GstPad * pad, GstBuffer * buffer) drop = !process_buffer_locked (rtp_mux, padpriv, buffer); - if (!drop && rtp_mux->segment_pending) { - /* - * We set the start at 0, because we re-timestamps to the running time - */ - newseg_event = gst_event_new_new_segment_full (FALSE, 1.0, 1.0, - GST_FORMAT_TIME, 0, -1, 0); + if (!drop) { + if (rtp_mux->segment_pending) { + /* + * We set the start at 0, because we re-timestamps to the running time + */ + newseg_event = gst_event_new_new_segment_full (FALSE, 1.0, 1.0, + GST_FORMAT_TIME, 0, -1, 0); - rtp_mux->segment_pending = FALSE; + rtp_mux->segment_pending = FALSE; + } + + if (GST_BUFFER_DURATION_IS_VALID (buffer) && + GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) + rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (buffer) + + GST_BUFFER_DURATION (buffer); + else + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; } + GST_OBJECT_UNLOCK (rtp_mux); if (newseg_event) @@ -709,6 +750,7 @@ gst_rtp_mux_sink_event (GstPad * pad, GstEvent * event) GstRTPMuxPadPrivate *padpriv; GST_OBJECT_LOCK (mux); + mux->last_stop = GST_CLOCK_TIME_NONE; mux->segment_pending = TRUE; padpriv = gst_pad_get_element_private (pad); if (padpriv) @@ -801,6 +843,8 @@ gst_rtp_mux_ready_to_paused (GstRTPMux * rtp_mux) else rtp_mux->ts_base = rtp_mux->ts_offset; + rtp_mux->last_stop = GST_CLOCK_TIME_NONE; + GST_DEBUG_OBJECT (rtp_mux, "set clock-base to %u", rtp_mux->ts_base); GST_OBJECT_UNLOCK (rtp_mux); diff --git a/gst/rtpmux/gstrtpmux.h b/gst/rtpmux/gstrtpmux.h index 9651383..7bfea60 100644 --- a/gst/rtpmux/gstrtpmux.h +++ b/gst/rtpmux/gstrtpmux.h @@ -31,7 +31,7 @@ G_BEGIN_DECLS #define GST_TYPE_RTP_MUX (gst_rtp_mux_get_type()) #define GST_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_MUX, GstRTPMux)) -#define GST_RTP_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_MUX, GstRTPMux)) +#define GST_RTP_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_MUX, GstRTPMuxClass)) #define GST_RTP_MUX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_MUX, GstRTPMuxClass)) #define GST_IS_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_MUX)) #define GST_IS_RTP_MUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_MUX)) @@ -74,6 +74,8 @@ struct _GstRTPMux guint current_ssrc; gboolean segment_pending; + + GstClockTime last_stop; }; struct _GstRTPMuxClass @@ -82,6 +84,8 @@ struct _GstRTPMuxClass gboolean (*accept_buffer_locked) (GstRTPMux *rtp_mux, GstRTPMuxPadPrivate * padpriv, GstBuffer * buffer); + + gboolean (*src_event) (GstRTPMux *rtp_mux, GstEvent *event); }; diff --git a/gst/rtpvp8/Makefile.am b/gst/rtpvp8/Makefile.am index ef7425f..e1725bb 100644 --- a/gst/rtpvp8/Makefile.am +++ b/gst/rtpvp8/Makefile.am @@ -2,10 +2,12 @@ plugin_LTLIBRARIES = libgstrtpvp8.la libgstrtpvp8_la_SOURCES = gstrtpvp8.c \ gstrtpvp8depay.c \ - gstrtpvp8pay.c + gstrtpvp8pay.c \ + dboolhuff.c noinst_HEADERS = gstrtpvp8depay.h \ - gstrtpvp8pay.h + gstrtpvp8pay.h \ + dboolhuff.h libgstrtpvp8_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) diff --git a/gst/rtpvp8/Makefile.in b/gst/rtpvp8/Makefile.in index c5cceb9..882fb68 100644 --- a/gst/rtpvp8/Makefile.in +++ b/gst/rtpvp8/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,10 +114,10 @@ libgstrtpvp8_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstrtpvp8_la_OBJECTS = libgstrtpvp8_la-gstrtpvp8.lo \ libgstrtpvp8_la-gstrtpvp8depay.lo \ - libgstrtpvp8_la-gstrtpvp8pay.lo + libgstrtpvp8_la-gstrtpvp8pay.lo libgstrtpvp8_la-dboolhuff.lo libgstrtpvp8_la_OBJECTS = $(am_libgstrtpvp8_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtpvp8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtpvp8_la_SOURCES) DIST_SOURCES = $(libgstrtpvp8_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -532,10 +559,12 @@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstrtpvp8.la libgstrtpvp8_la_SOURCES = gstrtpvp8.c \ gstrtpvp8depay.c \ - gstrtpvp8pay.c + gstrtpvp8pay.c \ + dboolhuff.c noinst_HEADERS = gstrtpvp8depay.h \ - gstrtpvp8pay.h + gstrtpvp8pay.h \ + dboolhuff.h libgstrtpvp8_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) @@ -610,7 +639,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtpvp8.la: $(libgstrtpvp8_la_OBJECTS) $(libgstrtpvp8_la_DEPENDENCIES) +libgstrtpvp8.la: $(libgstrtpvp8_la_OBJECTS) $(libgstrtpvp8_la_DEPENDENCIES) $(EXTRA_libgstrtpvp8_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtpvp8_la_LINK) -rpath $(plugindir) $(libgstrtpvp8_la_OBJECTS) $(libgstrtpvp8_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -619,6 +648,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpvp8_la-dboolhuff.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpvp8_la-gstrtpvp8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpvp8_la-gstrtpvp8depay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpvp8_la-gstrtpvp8pay.Plo@am__quote@ @@ -626,50 +656,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtpvp8_la-gstrtpvp8.lo: gstrtpvp8.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -MT libgstrtpvp8_la-gstrtpvp8.lo -MD -MP -MF $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8.Tpo -c -o libgstrtpvp8_la-gstrtpvp8.lo `test -f 'gstrtpvp8.c' || echo '$(srcdir)/'`gstrtpvp8.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8.Tpo $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvp8.c' object='libgstrtpvp8_la-gstrtpvp8.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvp8.c' object='libgstrtpvp8_la-gstrtpvp8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8.lo `test -f 'gstrtpvp8.c' || echo '$(srcdir)/'`gstrtpvp8.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8.lo `test -f 'gstrtpvp8.c' || echo '$(srcdir)/'`gstrtpvp8.c libgstrtpvp8_la-gstrtpvp8depay.lo: gstrtpvp8depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -MT libgstrtpvp8_la-gstrtpvp8depay.lo -MD -MP -MF $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8depay.Tpo -c -o libgstrtpvp8_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8depay.Tpo $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvp8depay.c' object='libgstrtpvp8_la-gstrtpvp8depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvp8depay.c' object='libgstrtpvp8_la-gstrtpvp8depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c libgstrtpvp8_la-gstrtpvp8pay.lo: gstrtpvp8pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -MT libgstrtpvp8_la-gstrtpvp8pay.lo -MD -MP -MF $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8pay.Tpo -c -o libgstrtpvp8_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8pay.Tpo $(DEPDIR)/libgstrtpvp8_la-gstrtpvp8pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvp8pay.c' object='libgstrtpvp8_la-gstrtpvp8pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvp8pay.c' object='libgstrtpvp8_la-gstrtpvp8pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c + +libgstrtpvp8_la-dboolhuff.lo: dboolhuff.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -MT libgstrtpvp8_la-dboolhuff.lo -MD -MP -MF $(DEPDIR)/libgstrtpvp8_la-dboolhuff.Tpo -c -o libgstrtpvp8_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpvp8_la-dboolhuff.Tpo $(DEPDIR)/libgstrtpvp8_la-dboolhuff.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dboolhuff.c' object='libgstrtpvp8_la-dboolhuff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpvp8_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpvp8_la_CFLAGS) $(CFLAGS) -c -o libgstrtpvp8_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c mostlyclean-libtool: -rm -f *.lo @@ -776,10 +807,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rtpvp8/dboolhuff.c b/gst/rtpvp8/dboolhuff.c new file mode 100644 index 0000000..0e1fd6e --- /dev/null +++ b/gst/rtpvp8/dboolhuff.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the dboolhuff.LICENSE file in this directory. + * See the libvpx original distribution for more information, + * including patent information, and author information. + */ + + +#include "dboolhuff.h" + +const unsigned char vp8_norm[256] __attribute__ ((aligned (16))) = { +0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +int +vp8dx_start_decode (BOOL_DECODER * br, + const unsigned char *source, unsigned int source_sz) +{ + br->user_buffer_end = source + source_sz; + br->user_buffer = source; + br->value = 0; + br->count = -8; + br->range = 255; + + if (source_sz && !source) + return 1; + + /* Populate the buffer */ + vp8dx_bool_decoder_fill (br); + + return 0; +} + + +void +vp8dx_bool_decoder_fill (BOOL_DECODER * br) +{ + const unsigned char *bufptr; + const unsigned char *bufend; + VP8_BD_VALUE value; + int count; + bufend = br->user_buffer_end; + bufptr = br->user_buffer; + value = br->value; + count = br->count; + + VP8DX_BOOL_DECODER_FILL (count, value, bufptr, bufend); + + br->user_buffer = bufptr; + br->value = value; + br->count = count; +} diff --git a/gst/rtpvp8/dboolhuff.h b/gst/rtpvp8/dboolhuff.h new file mode 100644 index 0000000..41b0f5d --- /dev/null +++ b/gst/rtpvp8/dboolhuff.h @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the dboolhuff.LICENSE file in this directory. + * See the libvpx original distribution for more information, + * including patent information, and author information. + */ + + +#ifndef DBOOLHUFF_H +#define DBOOLHUFF_H +#include +#include +#include + +typedef size_t VP8_BD_VALUE; + +# define VP8_BD_VALUE_SIZE ((int)sizeof(VP8_BD_VALUE)*CHAR_BIT) +/*This is meant to be a large, positive constant that can still be efficiently + loaded as an immediate (on platforms like ARM, for example). + Even relatively modest values like 100 would work fine.*/ +# define VP8_LOTS_OF_BITS (0x40000000) + +typedef struct +{ + const unsigned char *user_buffer_end; + const unsigned char *user_buffer; + VP8_BD_VALUE value; + int count; + unsigned int range; +} BOOL_DECODER; + +extern const unsigned char vp8_norm[256] __attribute__((aligned(16))); + +int vp8dx_start_decode(BOOL_DECODER *br, + const unsigned char *source, + unsigned int source_sz); + +void vp8dx_bool_decoder_fill(BOOL_DECODER *br); + +/*The refill loop is used in several places, so define it in a macro to make + sure they're all consistent. + An inline function would be cleaner, but has a significant penalty, because + multiple BOOL_DECODER fields must be modified, and the compiler is not smart + enough to eliminate the stores to those fields and the subsequent reloads + from them when inlining the function.*/ +#define VP8DX_BOOL_DECODER_FILL(_count,_value,_bufptr,_bufend) \ + do \ + { \ + int shift = VP8_BD_VALUE_SIZE - 8 - ((_count) + 8); \ + int loop_end, x; \ + size_t bits_left = ((_bufend)-(_bufptr))*CHAR_BIT; \ + \ + x = shift + CHAR_BIT - bits_left; \ + loop_end = 0; \ + if(x >= 0) \ + { \ + (_count) += VP8_LOTS_OF_BITS; \ + loop_end = x; \ + if(!bits_left) break; \ + } \ + while(shift >= loop_end) \ + { \ + (_count) += CHAR_BIT; \ + (_value) |= (VP8_BD_VALUE)*(_bufptr)++ << shift; \ + shift -= CHAR_BIT; \ + } \ + } \ + while(0) \ + + +static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) { + unsigned int bit = 0; + VP8_BD_VALUE value; + unsigned int split; + VP8_BD_VALUE bigsplit; + int count; + unsigned int range; + + split = 1 + (((br->range - 1) * probability) >> 8); + + if(br->count < 0) + vp8dx_bool_decoder_fill(br); + + value = br->value; + count = br->count; + + bigsplit = (VP8_BD_VALUE)split << (VP8_BD_VALUE_SIZE - 8); + + range = split; + + if (value >= bigsplit) + { + range = br->range - split; + value = value - bigsplit; + bit = 1; + } + + { + register unsigned int shift = vp8_norm[range]; + range <<= shift; + value <<= shift; + count -= shift; + } + br->value = value; + br->count = count; + br->range = range; + + return bit; +} + +static G_GNUC_UNUSED int vp8_decode_value(BOOL_DECODER *br, int bits) +{ + int z = 0; + int bit; + + for (bit = bits - 1; bit >= 0; bit--) + { + z |= (vp8dx_decode_bool(br, 0x80) << bit); + } + + return z; +} + +static G_GNUC_UNUSED int vp8dx_bool_error(BOOL_DECODER *br) +{ + /* Check if we have reached the end of the buffer. + * + * Variable 'count' stores the number of bits in the 'value' buffer, minus + * 8. The top byte is part of the algorithm, and the remainder is buffered + * to be shifted into it. So if count == 8, the top 16 bits of 'value' are + * occupied, 8 for the algorithm and 8 in the buffer. + * + * When reading a byte from the user's buffer, count is filled with 8 and + * one byte is filled into the value buffer. When we reach the end of the + * data, count is additionally filled with VP8_LOTS_OF_BITS. So when + * count == VP8_LOTS_OF_BITS - 1, the user's data has been exhausted. + */ + if ((br->count > VP8_BD_VALUE_SIZE) && (br->count < VP8_LOTS_OF_BITS)) + { + /* We have tried to decode bits after the end of + * stream was encountered. + */ + return 1; + } + + /* No error. */ + return 0; +} +#endif diff --git a/gst/rtpvp8/gstrtpvp8depay.c b/gst/rtpvp8/gstrtpvp8depay.c index d9d2226..74d13b5 100644 --- a/gst/rtpvp8/gstrtpvp8depay.c +++ b/gst/rtpvp8/gstrtpvp8depay.c @@ -1,6 +1,8 @@ /* * gst-rtp-vp8-depay.c - Source for GstRtpVP8Depay * Copyright (C) 2011 Sjoerd Simons + * Copyright (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -44,7 +46,7 @@ GST_STATIC_PAD_TEMPLATE ("sink", "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING "," "clock-rate = (int) 90000," "media = (string) \"video\"," - "encoding-name = (string) \"VP8-DRAFT-0-3-2\"")); + "encoding-name = (string) \"VP8-DRAFT-IETF-01\"")); static void gst_rtp_vp8_depay_init (GstRtpVP8Depay * self, GstRtpVP8DepayClass * klass) @@ -64,10 +66,10 @@ gst_rtp_vp8_depay_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_rtp_vp8_depay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vp8_depay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vp8_depay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vp8_depay_src_template); gst_element_class_set_details_simple (element_class, "RTP VP8 depayloader", "Codec/Depayloader/Network/RTP", @@ -129,22 +131,32 @@ gst_rtp_vp8_depay_process (GstBaseRTPDepayload * depay, GstBuffer * buf) if (G_UNLIKELY (!self->started)) { /* Check if this is the start of a VP8 frame, otherwise bail */ - if ((data[0] & 0x1) == 0) + /* S=1 and PartID= 0 */ + if ((data[0] & 0x1F) != 0x10) return NULL; self->started = TRUE; } offset = 1; - if ((data[0] & 0x10) != 0) { - /* Skip Picture identifier bytes */ - for (; (data[offset] & 0x80) != 0; offset++) { - /* should be at least one more pictureID byte and at least one byte in - * the vp8 payload */ + /* Check X optional header */ + if ((data[0] & 0x80) != 0) { + offset++; + /* Check I optional header */ + if ((data[1] & 0x80) != 0) { + offset++; if (G_UNLIKELY (offset + 2 >= size)) goto too_small; + /* Check for 16 bits PictureID */ + if ((data[2] & 0x80) != 0) + offset++; } - offset++; + /* Check L optional header */ + if ((data[1] & 0x40) != 0) + offset++; + /* Check T optional header */ + if ((data[1] & 0x20) != 0) + offset++; } if (G_UNLIKELY (offset >= size)) diff --git a/gst/rtpvp8/gstrtpvp8pay.c b/gst/rtpvp8/gstrtpvp8pay.c index b54ec28..82dceeb 100644 --- a/gst/rtpvp8/gstrtpvp8pay.c +++ b/gst/rtpvp8/gstrtpvp8pay.c @@ -1,6 +1,8 @@ /* * gst-rtp-vp8-pay.c - Source for GstRtpVP8Pay * Copyright (C) 2011 Sjoerd Simons + * Copyright (C) 2011 Collabora Ltd. + * Contact: Youness Alaoui * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,16 +27,14 @@ #include #include #include +#include "dboolhuff.h" #include "gstrtpvp8pay.h" -#define FI_FRAG_UNFRAGMENTED 0x0 -#define FI_FRAG_START 0x1 -#define FI_FRAG_MIDDLE 0x2 -#define FI_FRAG_END 0x3 - GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_pay_debug); #define GST_CAT_DEFAULT gst_rtp_vp8_pay_debug +#define DEFAULT_PICTURE_ID_MODE VP8_PAY_PICTURE_ID_7BITS + GST_BOILERPLATE (GstRtpVP8Pay, gst_rtp_vp8_pay, GstBaseRTPPayload, GST_TYPE_BASE_RTP_PAYLOAD); @@ -44,7 +44,7 @@ GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING "," - "clock-rate = (int) 90000, encoding-name = (string) \"VP8-DRAFT-0-3-2\"")); + "clock-rate = (int) 90000, encoding-name = (string) \"VP8-DRAFT-IETF-01\"")); static GstStaticPadTemplate gst_rtp_vp8_pay_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", @@ -55,10 +55,17 @@ GST_STATIC_PAD_TEMPLATE ("sink", static void gst_rtp_vp8_pay_init (GstRtpVP8Pay * obj, GstRtpVP8PayClass * klass) { + /* TODO: Make it configurable */ + obj->picture_id_mode = DEFAULT_PICTURE_ID_MODE; + if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) + obj->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F; + else if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS) + obj->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF; } static GstFlowReturn gst_rtp_vp8_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); +static gboolean gst_rtp_vp8_pay_handle_event (GstPad * pad, GstEvent * event); static gboolean gst_rtp_vp8_pay_set_caps (GstBaseRTPPayload * payload, GstCaps * caps); @@ -67,10 +74,10 @@ gst_rtp_vp8_pay_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_rtp_vp8_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vp8_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vp8_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vp8_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP VP8 payloader", "Codec/Payloader/Network/RTP", @@ -84,52 +91,26 @@ gst_rtp_vp8_pay_class_init (GstRtpVP8PayClass * gst_rtp_vp8_pay_class) GST_BASE_RTP_PAYLOAD_CLASS (gst_rtp_vp8_pay_class); pay_class->handle_buffer = gst_rtp_vp8_pay_handle_buffer; + pay_class->handle_event = gst_rtp_vp8_pay_handle_event; pay_class->set_caps = gst_rtp_vp8_pay_set_caps; GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_pay_debug, "rtpvp8pay", 0, "VP8 Video RTP Payloader"); } -static gsize -gst_rtp_vp8_calc_payload_len (GstBaseRTPPayload * payload) -{ - return gst_rtp_buffer_calc_payload_len (GST_BASE_RTP_PAYLOAD_MTU (payload) - - 1, 0, 0); -} - -/* When growing the vp8 header keep gst_rtp_vp8_calc_payload_len in sync */ -static GstBuffer * -gst_rtp_vp8_create_header_buffer (gboolean start, gboolean mark, guint fi, - GstBuffer * in) -{ - GstBuffer *out; - guint8 *p; - - out = gst_rtp_buffer_new_allocate (1, 0, 0); - p = gst_rtp_buffer_get_payload (out); - /* Hardcode I = 0 and N = 0, only set FI and B */ - p[0] = (fi & 0x3) << 1 | (start ? 1 : 0); - - gst_rtp_buffer_set_marker (out, mark); - - GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in); - GST_BUFFER_TIMESTAMP (out) = GST_BUFFER_TIMESTAMP (in); - - return out; -} - - static gboolean gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer) { GstBitReader *reader; int i; gboolean keyframe; - guint32 header_size; + guint32 partition0_size; guint8 version; guint8 tmp8 = 0; guint8 *data; guint8 partitions; + guint offset; + BOOL_DECODER bc; reader = gst_bit_reader_new_from_buffer (buffer); @@ -141,11 +122,17 @@ gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer) self->is_keyframe = keyframe = ((data[0] & 0x1) == 0); version = (data[0] >> 1) & 0x7; + if (G_UNLIKELY (version > 3)) { + GST_ERROR_OBJECT (self, "Unknown VP8 version %u", version); + goto error; + } + /* keyframe, version and show_frame use 5 bits */ - header_size = data[2] << 11 | data[1] << 3 | (data[0] >> 5); + partition0_size = data[2] << 11 | data[1] << 3 | (data[0] >> 5); - /* Include the uncompressed data blob in the header */ - header_size += keyframe ? 10 : 3; + /* Include the uncompressed data blob in the first partition */ + offset = keyframe ? 10 : 3; + partition0_size += offset; if (!gst_bit_reader_skip (reader, 24)) goto error; @@ -161,123 +148,94 @@ gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer) if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x2a) goto error; - /* Skip horizontal size code (16 bits) vertical size code (16 bits), - * color space (1 bit) and clamping type (1 bit) */ - if (!gst_bit_reader_skip (reader, 34)) + /* Skip horizontal size code (16 bits) vertical size code (16 bits) */ + if (!gst_bit_reader_skip (reader, 32)) goto error; } - /* segmentation_enabled */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - gboolean update_mb_segmentation_map; - gboolean update_segment_feature_data; + offset = keyframe ? 10 : 3; + vp8dx_start_decode (&bc, GST_BUFFER_DATA (buffer) + offset, + GST_BUFFER_SIZE (buffer) - offset); - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 2)) - goto error; + if (keyframe) { + /* color space (1 bit) and clamping type (1 bit) */ + vp8dx_decode_bool (&bc, 0x80); + vp8dx_decode_bool (&bc, 0x80); + } - update_mb_segmentation_map = (tmp8 & 0x2) != 0; - update_segment_feature_data = (tmp8 & 0x1) != 0; + /* segmentation_enabled */ + if (vp8dx_decode_bool (&bc, 0x80)) { + guint8 update_mb_segmentation_map = vp8dx_decode_bool (&bc, 0x80); + guint8 update_segment_feature_data = vp8dx_decode_bool (&bc, 0x80); if (update_segment_feature_data) { /* skip segment feature mode */ - if (!gst_bit_reader_skip (reader, 1)) - goto error; + vp8dx_decode_bool (&bc, 0x80); + /* quantizer update */ for (i = 0; i < 4; i++) { - /* quantizer update */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - /* skip quantizer value (7 bits) and sign (1 bit) */ - if (!gst_bit_reader_skip (reader, 8)) - goto error; - } + /* skip flagged quantizer value (7 bits) and sign (1 bit) */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 8); } + /* loop filter update */ for (i = 0; i < 4; i++) { - /* loop filter update */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - /* skip lf update value (6 bits) and sign (1 bit) */ - if (!gst_bit_reader_skip (reader, 7)) - goto error; - } + /* skip flagged lf update value (6 bits) and sign (1 bit) */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 7); } } if (update_mb_segmentation_map) { + /* segment prob update */ for (i = 0; i < 3; i++) { - /* segment prob update */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - /* skip segment prob */ - if (!gst_bit_reader_skip (reader, 8)) - goto error; - } + /* skip flagged segment prob */ + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 8); } } } /* skip filter type (1 bit), loop filter level (6 bits) and * sharpness level (3 bits) */ - if (!gst_bit_reader_skip (reader, 10)) - goto error; + vp8_decode_value (&bc, 1); + vp8_decode_value (&bc, 6); + vp8_decode_value (&bc, 3); /* loop_filter_adj_enabled */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - /* loop filter adj enabled */ - - /* mode_ref_lf_delta_update */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; + if (vp8dx_decode_bool (&bc, 0x80)) { - if (tmp8 != 0) { - /* mode_ref_lf_data_update */ - int i; + /* delta update */ + if (vp8dx_decode_bool (&bc, 0x80)) { for (i = 0; i < 8; i++) { /* 8 updates, 1 bit indicate whether there is one and if follow by a * 7 bit update */ - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 1)) - goto error; - - if (tmp8 != 0) { - /* skip delta magnitude (6 bits) and sign (1 bit) */ - if (!gst_bit_reader_skip (reader, 7)) - goto error; - } + if (vp8dx_decode_bool (&bc, 0x80)) + vp8_decode_value (&bc, 7); } } } - if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 2)) + if (vp8dx_bool_error (&bc)) goto error; + tmp8 = vp8_decode_value (&bc, 2); + partitions = 1 << tmp8; /* Check if things are still sensible */ - if (header_size + (partitions - 1) * 3 >= GST_BUFFER_SIZE (buffer)) + if (partition0_size + (partitions - 1) * 3 >= GST_BUFFER_SIZE (buffer)) goto error; - /* partition data is right after the frame header */ - data = GST_BUFFER_DATA (buffer) + header_size; + /* partition data is right after the mode partition */ + data = GST_BUFFER_DATA (buffer) + partition0_size; - /* Set up mapping, count the initial header as a partition to make other - * sections of the code easier */ + /* Set up mapping */ self->n_partitions = partitions + 1; self->partition_offset[0] = 0; - self->partition_size[0] = header_size + (partitions - 1) * 3; + self->partition_size[0] = partition0_size + (partitions - 1) * 3; self->partition_offset[1] = self->partition_size[0]; for (i = 1; i < partitions; i++) { @@ -308,101 +266,108 @@ error: } static guint -gst_rtp_vp8_fit_partitions (GstRtpVP8Pay * self, gint first, gsize available) +gst_rtp_vp8_offset_to_partition (GstRtpVP8Pay * self, guint offset) { - guint num = 0; int i; - g_assert (first < self->n_partitions); + for (i = 0; i < self->n_partitions; i++) { + if (offset >= self->partition_offset[i] && + offset < self->partition_offset[i + 1]) + return i; + } - for (i = first; - i < self->n_partitions && self->partition_size[i] < available; i++) { - num++; - available -= self->partition_size[i]; + return i; +} + +static gsize +gst_rtp_vp8_calc_header_len (GstRtpVP8Pay * self) +{ + switch (self->picture_id_mode) { + case VP8_PAY_PICTURE_ID_7BITS: + return 3; + case VP8_PAY_PICTURE_ID_15BITS: + return 4; + case VP8_PAY_NO_PICTURE_ID: + default: + return 1; } +} + - return num; +static gsize +gst_rtp_vp8_calc_payload_len (GstRtpVP8Pay * self) +{ + GstBaseRTPPayload *payload = GST_BASE_RTP_PAYLOAD (self); + return gst_rtp_buffer_calc_payload_len (GST_BASE_RTP_PAYLOAD_MTU (payload) - + gst_rtp_vp8_calc_header_len (self), 0, 0); } +/* When growing the vp8 header keep gst_rtp_vp8_calc_payload_len in sync */ static GstBuffer * -gst_rtp_vp8_create_sub (GstRtpVP8Pay * self, - GstBuffer * buffer, guint current, guint num) +gst_rtp_vp8_create_header_buffer (GstRtpVP8Pay * self, guint8 partid, + gboolean start, gboolean mark, GstBuffer * in) { - guint offset = self->partition_offset[current]; - guint size = self->partition_offset[current + num] - offset; + GstBuffer *out; + guint8 *p; + + out = gst_rtp_buffer_new_allocate (gst_rtp_vp8_calc_header_len (self), 0, 0); + p = gst_rtp_buffer_get_payload (out); + /* X=0,R=0,N=0,S=start,PartID=partid */ + p[0] = (start << 4) | partid; + if (self->picture_id_mode != VP8_PAY_NO_PICTURE_ID) { + /* Enable X=1 */ + p[0] |= 0x80; + /* X: I=1,L=0,T=0,RSVA=0 */ + p[1] = 0x80; + if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) { + /* I: 7 bit picture_id */ + p[2] = self->picture_id & 0x7F; + } else { + /* I: 15 bit picture_id */ + p[2] = 0x80 | ((self->picture_id & 0x7FFF) >> 8); + p[3] = self->picture_id & 0xFF; + } + } + + gst_rtp_buffer_set_marker (out, mark); - return gst_buffer_create_sub (buffer, offset, size); + GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in); + GST_BUFFER_TIMESTAMP (out) = GST_BUFFER_TIMESTAMP (in); + + return out; } static guint gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, - GstBufferListIterator * it, guint first, GstBuffer * buffer) + GstBufferListIterator * it, guint offset, GstBuffer * buffer) { - guint num; + guint partition; GstBuffer *header; GstBuffer *sub; gboolean mark; - gsize available = gst_rtp_vp8_calc_payload_len (GST_BASE_RTP_PAYLOAD (self)); - - g_assert (first < 9); - - /* How many partitions can we fit */ - num = gst_rtp_vp8_fit_partitions (self, first, available); - - if (num > 0) { - mark = (first + num == self->n_partitions); - /* whole set of partitions, payload them and done */ - header = gst_rtp_vp8_create_header_buffer (first == 0, mark, - FI_FRAG_UNFRAGMENTED, buffer); - sub = gst_rtp_vp8_create_sub (self, buffer, first, num); - - gst_buffer_list_iterator_add_group (it); - gst_buffer_list_iterator_add (it, header); - gst_buffer_list_iterator_add (it, sub); - } else { - /* Fragmented packets */ - guint offset = self->partition_offset[first]; - guint left = self->partition_size[first]; - gboolean start = (first == 0); - - header = gst_rtp_vp8_create_header_buffer (start, FALSE, - FI_FRAG_START, buffer); - sub = gst_buffer_create_sub (buffer, offset, available); - offset += available; - - gst_buffer_list_iterator_add_group (it); - gst_buffer_list_iterator_add (it, header); - gst_buffer_list_iterator_add (it, sub); - - left -= available; - - for (; left > available; left -= available) { - header = gst_rtp_vp8_create_header_buffer (start, FALSE, - FI_FRAG_MIDDLE, buffer); - - sub = gst_buffer_create_sub (buffer, offset, available); - offset += available; - - gst_buffer_list_iterator_add_group (it); - gst_buffer_list_iterator_add (it, header); - gst_buffer_list_iterator_add (it, sub); - } + gsize remaining; + gsize available; - mark = (first + 1 == self->n_partitions); + remaining = GST_BUFFER_SIZE (buffer) - offset; + available = gst_rtp_vp8_calc_payload_len (self); + if (available > remaining) + available = remaining; - header = gst_rtp_vp8_create_header_buffer (start, mark, - FI_FRAG_END, buffer); - sub = gst_buffer_create_sub (buffer, offset, left); + partition = gst_rtp_vp8_offset_to_partition (self, offset); + g_assert (partition < self->n_partitions); - gst_buffer_list_iterator_add_group (it); - gst_buffer_list_iterator_add (it, header); - gst_buffer_list_iterator_add (it, sub); + mark = (remaining == available); + /* whole set of partitions, payload them and done */ + header = gst_rtp_vp8_create_header_buffer (self, partition, + offset == self->partition_offset[partition], mark, buffer); + sub = gst_buffer_create_sub (buffer, offset, available); - return 1; - } + gst_buffer_list_iterator_add_group (it); + gst_buffer_list_iterator_add (it, header); + gst_buffer_list_iterator_add (it, sub); - return num; + return GST_BUFFER_SIZE (sub); } @@ -413,10 +378,9 @@ gst_rtp_vp8_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer) GstFlowReturn ret; GstBufferList *list; GstBufferListIterator *it; - guint current; + guint offset; if (G_UNLIKELY (!gst_rtp_vp8_pay_parse_frame (self, buffer))) { - /* FIXME throw flow error */ g_message ("Failed to parse frame"); return GST_FLOW_ERROR; } @@ -424,24 +388,44 @@ gst_rtp_vp8_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer) list = gst_buffer_list_new (); it = gst_buffer_list_iterate (list); - for (current = 0; current < self->n_partitions;) { - guint n; - - n = gst_rtp_vp8_payload_next (self, it, current, buffer); - current += n; - } + for (offset = 0; offset < GST_BUFFER_SIZE (buffer);) + offset += gst_rtp_vp8_payload_next (self, it, offset, buffer); ret = gst_basertppayload_push_list (payload, list); gst_buffer_list_iterator_free (it); + /* Incremenent and wrap the picture id if it overflows */ + if ((self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS && + ++self->picture_id >= 0x80) || + (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS && + ++self->picture_id >= 0x8000)) + self->picture_id = 0; + return ret; } static gboolean +gst_rtp_vp8_pay_handle_event (GstPad * pad, GstEvent * event) +{ + GstRtpVP8Pay *self = GST_RTP_VP8_PAY (gst_pad_get_parent (pad)); + + if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_START) { + if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) + self->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F; + else if (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS) + self->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF; + } + + gst_object_unref (self); + + return FALSE; +} + +static gboolean gst_rtp_vp8_pay_set_caps (GstBaseRTPPayload * payload, GstCaps * caps) { gst_basertppayload_set_options (payload, "video", TRUE, - "VP8-DRAFT-0-3-2", 90000); + "VP8-DRAFT-IETF-01", 90000); return gst_basertppayload_set_outcaps (payload, NULL); } diff --git a/gst/rtpvp8/gstrtpvp8pay.h b/gst/rtpvp8/gstrtpvp8pay.h index 19a2e01..882d54a 100644 --- a/gst/rtpvp8/gstrtpvp8pay.h +++ b/gst/rtpvp8/gstrtpvp8pay.h @@ -26,6 +26,13 @@ G_BEGIN_DECLS typedef struct _GstRtpVP8Pay GstRtpVP8Pay; typedef struct _GstRtpVP8PayClass GstRtpVP8PayClass; +typedef enum _PictureIDMode PictureIDMode; + +enum _PictureIDMode { + VP8_PAY_NO_PICTURE_ID, + VP8_PAY_PICTURE_ID_7BITS, + VP8_PAY_PICTURE_ID_15BITS, +}; struct _GstRtpVP8PayClass { @@ -41,6 +48,8 @@ struct _GstRtpVP8Pay * folowed by max. 8 data partitions. last offset is the end of the buffer */ guint partition_offset[10]; guint partition_size[9]; + PictureIDMode picture_id_mode; + guint16 picture_id; }; GType gst_rtp_vp8_pay_get_type (void); diff --git a/gst/scaletempo/Makefile.in b/gst/scaletempo/Makefile.in index dde675c..e378887 100644 --- a/gst/scaletempo/Makefile.in +++ b/gst/scaletempo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstscaletempoplugin_la_OBJECTS = \ libgstscaletempoplugin_la-gstscaletempo.lo libgstscaletempoplugin_la_OBJECTS = \ $(am_libgstscaletempoplugin_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstscaletempoplugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstscaletempoplugin_la_SOURCES) DIST_SOURCES = $(libgstscaletempoplugin_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -610,7 +637,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstscaletempoplugin.la: $(libgstscaletempoplugin_la_OBJECTS) $(libgstscaletempoplugin_la_DEPENDENCIES) +libgstscaletempoplugin.la: $(libgstscaletempoplugin_la_OBJECTS) $(libgstscaletempoplugin_la_DEPENDENCIES) $(EXTRA_libgstscaletempoplugin_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstscaletempoplugin_la_LINK) -rpath $(plugindir) $(libgstscaletempoplugin_la_OBJECTS) $(libgstscaletempoplugin_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -625,42 +652,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstscaletempoplugin_la-gstscaletempoplugin.lo: gstscaletempoplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -MT libgstscaletempoplugin_la-gstscaletempoplugin.lo -MD -MP -MF $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempoplugin.Tpo -c -o libgstscaletempoplugin_la-gstscaletempoplugin.lo `test -f 'gstscaletempoplugin.c' || echo '$(srcdir)/'`gstscaletempoplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempoplugin.Tpo $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempoplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstscaletempoplugin.c' object='libgstscaletempoplugin_la-gstscaletempoplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstscaletempoplugin.c' object='libgstscaletempoplugin_la-gstscaletempoplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -c -o libgstscaletempoplugin_la-gstscaletempoplugin.lo `test -f 'gstscaletempoplugin.c' || echo '$(srcdir)/'`gstscaletempoplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -c -o libgstscaletempoplugin_la-gstscaletempoplugin.lo `test -f 'gstscaletempoplugin.c' || echo '$(srcdir)/'`gstscaletempoplugin.c libgstscaletempoplugin_la-gstscaletempo.lo: gstscaletempo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -MT libgstscaletempoplugin_la-gstscaletempo.lo -MD -MP -MF $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempo.Tpo -c -o libgstscaletempoplugin_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempo.Tpo $(DEPDIR)/libgstscaletempoplugin_la-gstscaletempo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstscaletempo.c' object='libgstscaletempoplugin_la-gstscaletempo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstscaletempo.c' object='libgstscaletempoplugin_la-gstscaletempo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -c -o libgstscaletempoplugin_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstscaletempoplugin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstscaletempoplugin_la_CFLAGS) $(CFLAGS) -c -o libgstscaletempoplugin_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c mostlyclean-libtool: -rm -f *.lo @@ -767,10 +789,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/scaletempo/gstscaletempo.c b/gst/scaletempo/gstscaletempo.c index ba82a85..9edc03e 100644 --- a/gst/scaletempo/gstscaletempo.c +++ b/gst/scaletempo/gstscaletempo.c @@ -21,41 +21,39 @@ /** * SECTION:element-scaletempo * - * - * * 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. - * + * + * * Example pipelines * - * + * |[ * 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 works by producing audio in constant sized chunks + * (#GstScaletempo: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"). - * - * + * the next (#GstScaletempo: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. + * for the best overlap position. Scaletempo uses a statistical cross + * correlation (roughly a dot-product). Scaletempo consumes most of its CPU + * cycles here. One can use the #GstScaletempo:search propery to tune how far + * the algoritm looks. * * */ @@ -684,10 +682,9 @@ gst_scaletempo_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_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Scaletempo", "Filter/Effect/Rate", "Sync audio tempo with playback rate", diff --git a/gst/sdi/Makefile.in b/gst/sdi/Makefile.in index 095629d..8c19b71 100644 --- a/gst/sdi/Makefile.in +++ b/gst/sdi/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstsdi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstsdi_la_OBJECTS = libgstsdi_la-gstsdi.lo \ libgstsdi_la-gstsdidemux.lo libgstsdi_la-gstsdimux.lo libgstsdi_la_OBJECTS = $(am_libgstsdi_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsdi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsdi_la_SOURCES) DIST_SOURCES = $(libgstsdi_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -605,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsdi.la: $(libgstsdi_la_OBJECTS) $(libgstsdi_la_DEPENDENCIES) +libgstsdi.la: $(libgstsdi_la_OBJECTS) $(libgstsdi_la_DEPENDENCIES) $(EXTRA_libgstsdi_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsdi_la_LINK) -rpath $(plugindir) $(libgstsdi_la_OBJECTS) $(libgstsdi_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -621,50 +648,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsdi_la-gstsdi.lo: gstsdi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -MT libgstsdi_la-gstsdi.lo -MD -MP -MF $(DEPDIR)/libgstsdi_la-gstsdi.Tpo -c -o libgstsdi_la-gstsdi.lo `test -f 'gstsdi.c' || echo '$(srcdir)/'`gstsdi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdi_la-gstsdi.Tpo $(DEPDIR)/libgstsdi_la-gstsdi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdi.c' object='libgstsdi_la-gstsdi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdi.c' object='libgstsdi_la-gstsdi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdi.lo `test -f 'gstsdi.c' || echo '$(srcdir)/'`gstsdi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdi.lo `test -f 'gstsdi.c' || echo '$(srcdir)/'`gstsdi.c libgstsdi_la-gstsdidemux.lo: gstsdidemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -MT libgstsdi_la-gstsdidemux.lo -MD -MP -MF $(DEPDIR)/libgstsdi_la-gstsdidemux.Tpo -c -o libgstsdi_la-gstsdidemux.lo `test -f 'gstsdidemux.c' || echo '$(srcdir)/'`gstsdidemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdi_la-gstsdidemux.Tpo $(DEPDIR)/libgstsdi_la-gstsdidemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdidemux.c' object='libgstsdi_la-gstsdidemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdidemux.c' object='libgstsdi_la-gstsdidemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdidemux.lo `test -f 'gstsdidemux.c' || echo '$(srcdir)/'`gstsdidemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdidemux.lo `test -f 'gstsdidemux.c' || echo '$(srcdir)/'`gstsdidemux.c libgstsdi_la-gstsdimux.lo: gstsdimux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -MT libgstsdi_la-gstsdimux.lo -MD -MP -MF $(DEPDIR)/libgstsdi_la-gstsdimux.Tpo -c -o libgstsdi_la-gstsdimux.lo `test -f 'gstsdimux.c' || echo '$(srcdir)/'`gstsdimux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdi_la-gstsdimux.Tpo $(DEPDIR)/libgstsdi_la-gstsdimux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdimux.c' object='libgstsdi_la-gstsdimux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdimux.c' object='libgstsdi_la-gstsdimux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdimux.lo `test -f 'gstsdimux.c' || echo '$(srcdir)/'`gstsdimux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdi_la_CFLAGS) $(CFLAGS) -c -o libgstsdi_la-gstsdimux.lo `test -f 'gstsdimux.c' || echo '$(srcdir)/'`gstsdimux.c mostlyclean-libtool: -rm -f *.lo @@ -771,10 +792,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/sdi/gstsdidemux.c b/gst/sdi/gstsdidemux.c index bc0b766..968525a 100644 --- a/gst/sdi/gstsdidemux.c +++ b/gst/sdi/gstsdidemux.c @@ -105,10 +105,10 @@ gst_sdi_demux_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_sdi_demux_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_sdi_demux_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_sdi_demux_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_sdi_demux_sink_template); gst_element_class_set_details_simple (element_class, "SDI Demuxer", @@ -160,10 +160,7 @@ void gst_sdi_demux_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstSdiDemux *sdidemux; - g_return_if_fail (GST_IS_SDI_DEMUX (object)); - sdidemux = GST_SDI_DEMUX (object); switch (property_id) { default: @@ -176,10 +173,7 @@ void gst_sdi_demux_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstSdiDemux *sdidemux; - g_return_if_fail (GST_IS_SDI_DEMUX (object)); - sdidemux = GST_SDI_DEMUX (object); switch (property_id) { default: @@ -191,10 +185,7 @@ gst_sdi_demux_get_property (GObject * object, guint property_id, void gst_sdi_demux_dispose (GObject * object) { - GstSdiDemux *sdidemux; - g_return_if_fail (GST_IS_SDI_DEMUX (object)); - sdidemux = GST_SDI_DEMUX (object); /* clean up as possible. may be called multiple times */ @@ -204,10 +195,7 @@ gst_sdi_demux_dispose (GObject * object) void gst_sdi_demux_finalize (GObject * object) { - GstSdiDemux *sdidemux; - g_return_if_fail (GST_IS_SDI_DEMUX (object)); - sdidemux = GST_SDI_DEMUX (object); /* clean up object here */ @@ -308,7 +296,6 @@ copy_line (GstSdiDemux * sdidemux, guint8 * line) if (sdidemux->line == format->lines) { ret = gst_pad_push (sdidemux->srcpad, sdidemux->output_buffer); gst_sdi_demux_get_output_buffer (sdidemux); - output_data = GST_BUFFER_DATA (sdidemux->output_buffer); sdidemux->line = 0; } @@ -330,7 +317,6 @@ gst_sdi_demux_chain (GstPad * pad, GstBuffer * buffer) int offset = 0; guint8 *data = GST_BUFFER_DATA (buffer); int size = GST_BUFFER_SIZE (buffer); - guint8 *output_data; GstFlowReturn ret = GST_FLOW_OK; GstSdiFormat *format; @@ -378,8 +364,6 @@ gst_sdi_demux_chain (GstPad * pad, GstBuffer * buffer) if (sdidemux->output_buffer == NULL) { gst_sdi_demux_get_output_buffer (sdidemux); } - output_data = GST_BUFFER_DATA (sdidemux->output_buffer); - #if 0 if (sdidemux->offset) { int n; @@ -500,7 +484,7 @@ out: static gboolean gst_sdi_demux_sink_event (GstPad * pad, GstEvent * event) { - gboolean res; + gboolean res = TRUE; GstSdiDemux *sdidemux; sdidemux = GST_SDI_DEMUX (gst_pad_get_parent (pad)); @@ -526,7 +510,7 @@ gst_sdi_demux_sink_event (GstPad * pad, GstEvent * event) } gst_object_unref (sdidemux); - return TRUE; + return res; } static gboolean @@ -549,5 +533,5 @@ gst_sdi_demux_src_event (GstPad * pad, GstEvent * event) } gst_object_unref (sdidemux); - return TRUE; + return res; } diff --git a/gst/sdi/gstsdimux.c b/gst/sdi/gstsdimux.c index d2c4ef7..0253227 100644 --- a/gst/sdi/gstsdimux.c +++ b/gst/sdi/gstsdimux.c @@ -108,10 +108,10 @@ gst_sdi_mux_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_sdi_mux_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_sdi_mux_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_sdi_mux_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_sdi_mux_sink_template); gst_element_class_set_details_simple (element_class, "SDI Muxer", "Muxer", @@ -163,10 +163,7 @@ void gst_sdi_mux_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstSdiMux *sdimux; - g_return_if_fail (GST_IS_SDI_MUX (object)); - sdimux = GST_SDI_MUX (object); switch (property_id) { default: @@ -179,10 +176,7 @@ void gst_sdi_mux_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstSdiMux *sdimux; - g_return_if_fail (GST_IS_SDI_MUX (object)); - sdimux = GST_SDI_MUX (object); switch (property_id) { default: @@ -194,10 +188,7 @@ gst_sdi_mux_get_property (GObject * object, guint property_id, void gst_sdi_mux_dispose (GObject * object) { - GstSdiMux *sdimux; - g_return_if_fail (GST_IS_SDI_MUX (object)); - sdimux = GST_SDI_MUX (object); /* clean up as possible. may be called multiple times */ @@ -207,10 +198,7 @@ gst_sdi_mux_dispose (GObject * object) void gst_sdi_mux_finalize (GObject * object) { - GstSdiMux *sdimux; - g_return_if_fail (GST_IS_SDI_MUX (object)); - sdimux = GST_SDI_MUX (object); /* clean up object here */ @@ -297,7 +285,7 @@ gst_sdi_mux_sink_event (GstPad * pad, GstEvent * event) } gst_object_unref (sdimux); - return TRUE; + return res; } static gboolean @@ -320,5 +308,5 @@ gst_sdi_mux_src_event (GstPad * pad, GstEvent * event) } gst_object_unref (sdimux); - return TRUE; + return res; } diff --git a/gst/sdp/Makefile.in b/gst/sdp/Makefile.in index 4241eb6..5fe45ff 100644 --- a/gst/sdp/Makefile.in +++ b/gst/sdp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ libgstsdpelem_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstsdpelem_la_OBJECTS = libgstsdpelem_la-gstsdpelem.lo \ libgstsdpelem_la-gstsdpdemux.lo libgstsdpelem_la_OBJECTS = $(am_libgstsdpelem_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsdpelem_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsdpelem_la_SOURCES) DIST_SOURCES = $(libgstsdpelem_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -605,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsdpelem.la: $(libgstsdpelem_la_OBJECTS) $(libgstsdpelem_la_DEPENDENCIES) +libgstsdpelem.la: $(libgstsdpelem_la_OBJECTS) $(libgstsdpelem_la_DEPENDENCIES) $(EXTRA_libgstsdpelem_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsdpelem_la_LINK) -rpath $(plugindir) $(libgstsdpelem_la_OBJECTS) $(libgstsdpelem_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -620,42 +647,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsdpelem_la-gstsdpelem.lo: gstsdpelem.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -MT libgstsdpelem_la-gstsdpelem.lo -MD -MP -MF $(DEPDIR)/libgstsdpelem_la-gstsdpelem.Tpo -c -o libgstsdpelem_la-gstsdpelem.lo `test -f 'gstsdpelem.c' || echo '$(srcdir)/'`gstsdpelem.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdpelem_la-gstsdpelem.Tpo $(DEPDIR)/libgstsdpelem_la-gstsdpelem.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdpelem.c' object='libgstsdpelem_la-gstsdpelem.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdpelem.c' object='libgstsdpelem_la-gstsdpelem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -c -o libgstsdpelem_la-gstsdpelem.lo `test -f 'gstsdpelem.c' || echo '$(srcdir)/'`gstsdpelem.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -c -o libgstsdpelem_la-gstsdpelem.lo `test -f 'gstsdpelem.c' || echo '$(srcdir)/'`gstsdpelem.c libgstsdpelem_la-gstsdpdemux.lo: gstsdpdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -MT libgstsdpelem_la-gstsdpdemux.lo -MD -MP -MF $(DEPDIR)/libgstsdpelem_la-gstsdpdemux.Tpo -c -o libgstsdpelem_la-gstsdpdemux.lo `test -f 'gstsdpdemux.c' || echo '$(srcdir)/'`gstsdpdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdpelem_la-gstsdpdemux.Tpo $(DEPDIR)/libgstsdpelem_la-gstsdpdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdpdemux.c' object='libgstsdpelem_la-gstsdpdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdpdemux.c' object='libgstsdpelem_la-gstsdpdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -c -o libgstsdpelem_la-gstsdpdemux.lo `test -f 'gstsdpdemux.c' || echo '$(srcdir)/'`gstsdpdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsdpelem_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdpelem_la_CFLAGS) $(CFLAGS) -c -o libgstsdpelem_la-gstsdpdemux.lo `test -f 'gstsdpdemux.c' || echo '$(srcdir)/'`gstsdpdemux.c mostlyclean-libtool: -rm -f *.lo @@ -762,10 +784,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/sdp/gstsdpdemux.c b/gst/sdp/gstsdpdemux.c index e03fb7e..9254dbc 100644 --- a/gst/sdp/gstsdpdemux.c +++ b/gst/sdp/gstsdpdemux.c @@ -152,10 +152,8 @@ gst_sdp_demux_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_add_pad_template (element_class, - gst_static_pad_template_get (&rtptemplate)); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); + gst_element_class_add_static_pad_template (element_class, &rtptemplate); gst_element_class_set_details_simple (element_class, "SDP session setup", "Codec/Demuxer/Network/RTP", diff --git a/gst/segmentclip/Makefile.in b/gst/segmentclip/Makefile.in index 6b96cae..6c28305 100644 --- a/gst/segmentclip/Makefile.in +++ b/gst/segmentclip/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstsegmentclip_la_OBJECTS = \ libgstsegmentclip_la-gstvideosegmentclip.lo \ libgstsegmentclip_la-plugin.lo libgstsegmentclip_la_OBJECTS = $(am_libgstsegmentclip_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsegmentclip_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsegmentclip_la_SOURCES) DIST_SOURCES = $(libgstsegmentclip_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsegmentclip.la: $(libgstsegmentclip_la_OBJECTS) $(libgstsegmentclip_la_DEPENDENCIES) +libgstsegmentclip.la: $(libgstsegmentclip_la_OBJECTS) $(libgstsegmentclip_la_DEPENDENCIES) $(EXTRA_libgstsegmentclip_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsegmentclip_la_LINK) -rpath $(plugindir) $(libgstsegmentclip_la_OBJECTS) $(libgstsegmentclip_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -620,58 +647,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsegmentclip_la-gstsegmentclip.lo: gstsegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -MT libgstsegmentclip_la-gstsegmentclip.lo -MD -MP -MF $(DEPDIR)/libgstsegmentclip_la-gstsegmentclip.Tpo -c -o libgstsegmentclip_la-gstsegmentclip.lo `test -f 'gstsegmentclip.c' || echo '$(srcdir)/'`gstsegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsegmentclip_la-gstsegmentclip.Tpo $(DEPDIR)/libgstsegmentclip_la-gstsegmentclip.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsegmentclip.c' object='libgstsegmentclip_la-gstsegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsegmentclip.c' object='libgstsegmentclip_la-gstsegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstsegmentclip.lo `test -f 'gstsegmentclip.c' || echo '$(srcdir)/'`gstsegmentclip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstsegmentclip.lo `test -f 'gstsegmentclip.c' || echo '$(srcdir)/'`gstsegmentclip.c libgstsegmentclip_la-gstaudiosegmentclip.lo: gstaudiosegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -MT libgstsegmentclip_la-gstaudiosegmentclip.lo -MD -MP -MF $(DEPDIR)/libgstsegmentclip_la-gstaudiosegmentclip.Tpo -c -o libgstsegmentclip_la-gstaudiosegmentclip.lo `test -f 'gstaudiosegmentclip.c' || echo '$(srcdir)/'`gstaudiosegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsegmentclip_la-gstaudiosegmentclip.Tpo $(DEPDIR)/libgstsegmentclip_la-gstaudiosegmentclip.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiosegmentclip.c' object='libgstsegmentclip_la-gstaudiosegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiosegmentclip.c' object='libgstsegmentclip_la-gstaudiosegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstaudiosegmentclip.lo `test -f 'gstaudiosegmentclip.c' || echo '$(srcdir)/'`gstaudiosegmentclip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstaudiosegmentclip.lo `test -f 'gstaudiosegmentclip.c' || echo '$(srcdir)/'`gstaudiosegmentclip.c libgstsegmentclip_la-gstvideosegmentclip.lo: gstvideosegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -MT libgstsegmentclip_la-gstvideosegmentclip.lo -MD -MP -MF $(DEPDIR)/libgstsegmentclip_la-gstvideosegmentclip.Tpo -c -o libgstsegmentclip_la-gstvideosegmentclip.lo `test -f 'gstvideosegmentclip.c' || echo '$(srcdir)/'`gstvideosegmentclip.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsegmentclip_la-gstvideosegmentclip.Tpo $(DEPDIR)/libgstsegmentclip_la-gstvideosegmentclip.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideosegmentclip.c' object='libgstsegmentclip_la-gstvideosegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideosegmentclip.c' object='libgstsegmentclip_la-gstvideosegmentclip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstvideosegmentclip.lo `test -f 'gstvideosegmentclip.c' || echo '$(srcdir)/'`gstvideosegmentclip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-gstvideosegmentclip.lo `test -f 'gstvideosegmentclip.c' || echo '$(srcdir)/'`gstvideosegmentclip.c libgstsegmentclip_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -MT libgstsegmentclip_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstsegmentclip_la-plugin.Tpo -c -o libgstsegmentclip_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsegmentclip_la-plugin.Tpo $(DEPDIR)/libgstsegmentclip_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstsegmentclip_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstsegmentclip_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 $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsegmentclip_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsegmentclip_la_CFLAGS) $(CFLAGS) -c -o libgstsegmentclip_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -778,10 +798,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/segmentclip/gstaudiosegmentclip.c b/gst/segmentclip/gstaudiosegmentclip.c index 93602c5..a3fc811 100644 --- a/gst/segmentclip/gstaudiosegmentclip.c +++ b/gst/segmentclip/gstaudiosegmentclip.c @@ -59,10 +59,10 @@ gst_audio_segment_clip_base_init (gpointer g_class) "Clips audio buffers to the configured segment", "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &src_pad_template); } static void diff --git a/gst/segmentclip/gstvideosegmentclip.c b/gst/segmentclip/gstvideosegmentclip.c index 16a948e..f160e72 100644 --- a/gst/segmentclip/gstvideosegmentclip.c +++ b/gst/segmentclip/gstvideosegmentclip.c @@ -64,10 +64,10 @@ gst_video_segment_clip_base_init (gpointer g_class) "Clips video buffers to the configured segment", "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &src_pad_template); } static void diff --git a/gst/siren/Makefile.in b/gst/siren/Makefile.in index 73e9790..3e53dc7 100644 --- a/gst/siren/Makefile.in +++ b/gst/siren/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstsiren_la_OBJECTS = libgstsiren_la-gstsiren.lo \ libgstsiren_la-decoder.lo libgstsiren_la-encoder.lo \ libgstsiren_la-huffman.lo libgstsiren_la-rmlt.lo libgstsiren_la_OBJECTS = $(am_libgstsiren_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsiren_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsiren_la_SOURCES) DIST_SOURCES = $(libgstsiren_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -610,7 +637,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsiren.la: $(libgstsiren_la_OBJECTS) $(libgstsiren_la_DEPENDENCIES) +libgstsiren.la: $(libgstsiren_la_OBJECTS) $(libgstsiren_la_DEPENDENCIES) $(EXTRA_libgstsiren_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsiren_la_LINK) -rpath $(plugindir) $(libgstsiren_la_OBJECTS) $(libgstsiren_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -632,98 +659,86 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsiren_la-gstsiren.lo: gstsiren.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-gstsiren.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-gstsiren.Tpo -c -o libgstsiren_la-gstsiren.lo `test -f 'gstsiren.c' || echo '$(srcdir)/'`gstsiren.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-gstsiren.Tpo $(DEPDIR)/libgstsiren_la-gstsiren.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsiren.c' object='libgstsiren_la-gstsiren.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsiren.c' object='libgstsiren_la-gstsiren.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsiren.lo `test -f 'gstsiren.c' || echo '$(srcdir)/'`gstsiren.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsiren.lo `test -f 'gstsiren.c' || echo '$(srcdir)/'`gstsiren.c libgstsiren_la-gstsirendec.lo: gstsirendec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-gstsirendec.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-gstsirendec.Tpo -c -o libgstsiren_la-gstsirendec.lo `test -f 'gstsirendec.c' || echo '$(srcdir)/'`gstsirendec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-gstsirendec.Tpo $(DEPDIR)/libgstsiren_la-gstsirendec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsirendec.c' object='libgstsiren_la-gstsirendec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsirendec.c' object='libgstsiren_la-gstsirendec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsirendec.lo `test -f 'gstsirendec.c' || echo '$(srcdir)/'`gstsirendec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsirendec.lo `test -f 'gstsirendec.c' || echo '$(srcdir)/'`gstsirendec.c libgstsiren_la-gstsirenenc.lo: gstsirenenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-gstsirenenc.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-gstsirenenc.Tpo -c -o libgstsiren_la-gstsirenenc.lo `test -f 'gstsirenenc.c' || echo '$(srcdir)/'`gstsirenenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-gstsirenenc.Tpo $(DEPDIR)/libgstsiren_la-gstsirenenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsirenenc.c' object='libgstsiren_la-gstsirenenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsirenenc.c' object='libgstsiren_la-gstsirenenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsirenenc.lo `test -f 'gstsirenenc.c' || echo '$(srcdir)/'`gstsirenenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-gstsirenenc.lo `test -f 'gstsirenenc.c' || echo '$(srcdir)/'`gstsirenenc.c libgstsiren_la-common.lo: common.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-common.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-common.Tpo -c -o libgstsiren_la-common.lo `test -f 'common.c' || echo '$(srcdir)/'`common.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-common.Tpo $(DEPDIR)/libgstsiren_la-common.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='libgstsiren_la-common.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common.c' object='libgstsiren_la-common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-common.lo `test -f 'common.c' || echo '$(srcdir)/'`common.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-common.lo `test -f 'common.c' || echo '$(srcdir)/'`common.c libgstsiren_la-dct4.lo: dct4.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-dct4.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-dct4.Tpo -c -o libgstsiren_la-dct4.lo `test -f 'dct4.c' || echo '$(srcdir)/'`dct4.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-dct4.Tpo $(DEPDIR)/libgstsiren_la-dct4.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dct4.c' object='libgstsiren_la-dct4.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dct4.c' object='libgstsiren_la-dct4.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-dct4.lo `test -f 'dct4.c' || echo '$(srcdir)/'`dct4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-dct4.lo `test -f 'dct4.c' || echo '$(srcdir)/'`dct4.c libgstsiren_la-decoder.lo: decoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-decoder.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-decoder.Tpo -c -o libgstsiren_la-decoder.lo `test -f 'decoder.c' || echo '$(srcdir)/'`decoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-decoder.Tpo $(DEPDIR)/libgstsiren_la-decoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='decoder.c' object='libgstsiren_la-decoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='decoder.c' object='libgstsiren_la-decoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-decoder.lo `test -f 'decoder.c' || echo '$(srcdir)/'`decoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-decoder.lo `test -f 'decoder.c' || echo '$(srcdir)/'`decoder.c libgstsiren_la-encoder.lo: encoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-encoder.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-encoder.Tpo -c -o libgstsiren_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-encoder.Tpo $(DEPDIR)/libgstsiren_la-encoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoder.c' object='libgstsiren_la-encoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='encoder.c' object='libgstsiren_la-encoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-encoder.lo `test -f 'encoder.c' || echo '$(srcdir)/'`encoder.c libgstsiren_la-huffman.lo: huffman.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-huffman.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-huffman.Tpo -c -o libgstsiren_la-huffman.lo `test -f 'huffman.c' || echo '$(srcdir)/'`huffman.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-huffman.Tpo $(DEPDIR)/libgstsiren_la-huffman.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='huffman.c' object='libgstsiren_la-huffman.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='huffman.c' object='libgstsiren_la-huffman.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-huffman.lo `test -f 'huffman.c' || echo '$(srcdir)/'`huffman.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-huffman.lo `test -f 'huffman.c' || echo '$(srcdir)/'`huffman.c libgstsiren_la-rmlt.lo: rmlt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -MT libgstsiren_la-rmlt.lo -MD -MP -MF $(DEPDIR)/libgstsiren_la-rmlt.Tpo -c -o libgstsiren_la-rmlt.lo `test -f 'rmlt.c' || echo '$(srcdir)/'`rmlt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsiren_la-rmlt.Tpo $(DEPDIR)/libgstsiren_la-rmlt.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rmlt.c' object='libgstsiren_la-rmlt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rmlt.c' object='libgstsiren_la-rmlt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-rmlt.lo `test -f 'rmlt.c' || echo '$(srcdir)/'`rmlt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsiren_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsiren_la_CFLAGS) $(CFLAGS) -c -o libgstsiren_la-rmlt.lo `test -f 'rmlt.c' || echo '$(srcdir)/'`rmlt.c mostlyclean-libtool: -rm -f *.lo @@ -830,10 +845,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/siren/gstsirendec.c b/gst/siren/gstsirendec.c index 2e51719..6325c96 100644 --- a/gst/siren/gstsirendec.c +++ b/gst/siren/gstsirendec.c @@ -92,10 +92,8 @@ gst_siren_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 (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Siren Decoder element", "Codec/Decoder/Audio ", diff --git a/gst/siren/gstsirenenc.c b/gst/siren/gstsirenenc.c index 561d268..dbf0f68 100644 --- a/gst/siren/gstsirenenc.c +++ b/gst/siren/gstsirenenc.c @@ -95,10 +95,8 @@ gst_siren_enc_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); + gst_element_class_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Siren Encoder element", "Codec/Encoder/Audio ", @@ -158,7 +156,7 @@ gst_siren_enc_finalize (GObject * object) Siren7_CloseEncoder (enc->encoder); g_object_unref (enc->adapter); - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (parent_class)->finalize (object); } static gboolean diff --git a/gst/smooth/Makefile.am b/gst/smooth/Makefile.am new file mode 100644 index 0000000..36de161 --- /dev/null +++ b/gst/smooth/Makefile.am @@ -0,0 +1,30 @@ + +plugin_LTLIBRARIES = libgstsmooth.la + +libgstsmooth_la_SOURCES = gstsmooth.c +libgstsmooth_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) +libgstsmooth_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) +libgstsmooth_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstsmooth_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstsmooth.h + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstsmooth -:SHARED libgstsmooth \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstsmooth_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstsmooth_la_CFLAGS) \ + -:LDFLAGS $(libgstsmooth_la_LDFLAGS) \ + $(libgstsmooth_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ diff --git a/gst/mpeg4videoparse/Makefile.in b/gst/smooth/Makefile.in similarity index 83% rename from gst/mpeg4videoparse/Makefile.in rename to gst/smooth/Makefile.in index fba36e8..e3941bf 100644 --- a/gst/mpeg4videoparse/Makefile.in +++ b/gst/smooth/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -35,13 +35,14 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = gst/mpeg4videoparse +subdir = gst/smooth 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,22 +101,26 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = -libgstmpeg4videoparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -am_libgstmpeg4videoparse_la_OBJECTS = \ - libgstmpeg4videoparse_la-mpeg4videoparse.lo -libgstmpeg4videoparse_la_OBJECTS = \ - $(am_libgstmpeg4videoparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +libgstsmooth_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstsmooth_la_OBJECTS = libgstsmooth_la-gstsmooth.lo +libgstsmooth_la_OBJECTS = $(am_libgstsmooth_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -libgstmpeg4videoparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(libgstmpeg4videoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(libgstmpeg4videoparse_la_CFLAGS) \ - $(CFLAGS) $(libgstmpeg4videoparse_la_LDFLAGS) $(LDFLAGS) -o $@ +libgstsmooth_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstsmooth_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstsmooth_la_CFLAGS) $(CFLAGS) \ + $(libgstsmooth_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -126,24 +131,24 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libgstmpeg4videoparse_la_SOURCES) -DIST_SOURCES = $(libgstmpeg4videoparse_la_SOURCES) +SOURCES = $(libgstsmooth_la_SOURCES) +DIST_SOURCES = $(libgstsmooth_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags @@ -152,7 +157,6 @@ 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@ @@ -170,7 +174,6 @@ 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@ @@ -205,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -529,13 +554,21 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -plugin_LTLIBRARIES = libgstmpeg4videoparse.la -libgstmpeg4videoparse_la_SOURCES = mpeg4videoparse.c -libgstmpeg4videoparse_la_CFLAGS = $(GST_CFLAGS) -libgstmpeg4videoparse_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) -libgstmpeg4videoparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstmpeg4videoparse_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = mpeg4videoparse.h +plugin_LTLIBRARIES = libgstsmooth.la +libgstsmooth_la_SOURCES = gstsmooth.c +libgstsmooth_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) + +libgstsmooth_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) + +libgstsmooth_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstsmooth_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstsmooth.h all: all-am .SUFFIXES: @@ -549,9 +582,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpeg4videoparse/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/smooth/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu gst/mpeg4videoparse/Makefile + $(AUTOMAKE) --gnu gst/smooth/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -601,8 +634,8 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmpeg4videoparse.la: $(libgstmpeg4videoparse_la_OBJECTS) $(libgstmpeg4videoparse_la_DEPENDENCIES) - $(AM_V_CCLD)$(libgstmpeg4videoparse_la_LINK) -rpath $(plugindir) $(libgstmpeg4videoparse_la_OBJECTS) $(libgstmpeg4videoparse_la_LIBADD) $(LIBS) +libgstsmooth.la: $(libgstsmooth_la_OBJECTS) $(libgstsmooth_la_DEPENDENCIES) $(EXTRA_libgstsmooth_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstsmooth_la_LINK) -rpath $(plugindir) $(libgstsmooth_la_OBJECTS) $(libgstsmooth_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -610,39 +643,35 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg4videoparse_la-mpeg4videoparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsmooth_la-gstsmooth.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -libgstmpeg4videoparse_la-mpeg4videoparse.lo: mpeg4videoparse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpeg4videoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg4videoparse_la_CFLAGS) $(CFLAGS) -MT libgstmpeg4videoparse_la-mpeg4videoparse.lo -MD -MP -MF $(DEPDIR)/libgstmpeg4videoparse_la-mpeg4videoparse.Tpo -c -o libgstmpeg4videoparse_la-mpeg4videoparse.lo `test -f 'mpeg4videoparse.c' || echo '$(srcdir)/'`mpeg4videoparse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg4videoparse_la-mpeg4videoparse.Tpo $(DEPDIR)/libgstmpeg4videoparse_la-mpeg4videoparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg4videoparse.c' object='libgstmpeg4videoparse_la-mpeg4videoparse.lo' libtool=yes @AMDEPBACKSLASH@ +libgstsmooth_la-gstsmooth.lo: gstsmooth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmooth_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmooth_la_CFLAGS) $(CFLAGS) -MT libgstsmooth_la-gstsmooth.lo -MD -MP -MF $(DEPDIR)/libgstsmooth_la-gstsmooth.Tpo -c -o libgstsmooth_la-gstsmooth.lo `test -f 'gstsmooth.c' || echo '$(srcdir)/'`gstsmooth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmooth_la-gstsmooth.Tpo $(DEPDIR)/libgstsmooth_la-gstsmooth.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmooth.c' object='libgstsmooth_la-gstsmooth.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmpeg4videoparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg4videoparse_la_CFLAGS) $(CFLAGS) -c -o libgstmpeg4videoparse_la-mpeg4videoparse.lo `test -f 'mpeg4videoparse.c' || echo '$(srcdir)/'`mpeg4videoparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmooth_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmooth_la_CFLAGS) $(CFLAGS) -c -o libgstsmooth_la-gstsmooth.lo `test -f 'gstsmooth.c' || echo '$(srcdir)/'`gstsmooth.c mostlyclean-libtool: -rm -f *.lo @@ -749,10 +778,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -854,13 +888,13 @@ uninstall-am: uninstall-pluginLTLIBRARIES Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ - -:PROJECT libgstmpeg4videoparse -:SHARED libgstmpeg4videoparse \ + -:PROJECT libgstsmooth -:SHARED libgstsmooth \ -:TAGS eng debug \ -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ - -:SOURCES $(libgstmpeg4videoparse_la_SOURCES) \ - -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstmpeg4videoparse_la_CFLAGS) \ - -:LDFLAGS $(libgstmpeg4videoparse_la_LDFLAGS) \ - $(libgstmpeg4videoparse_la_LIBADD) \ + -:SOURCES $(libgstsmooth_la_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstsmooth_la_CFLAGS) \ + -:LDFLAGS $(libgstsmooth_la_LDFLAGS) \ + $(libgstsmooth_la_LIBADD) \ -ldl \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ diff --git a/gst/smooth/gstsmooth.c b/gst/smooth/gstsmooth.c new file mode 100644 index 0000000..5a254ad --- /dev/null +++ b/gst/smooth/gstsmooth.c @@ -0,0 +1,293 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * <2001> Wim Taymans + * <2011> Stefan Sauer + * + * 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 "gstsmooth.h" +#include + +/* Smooth args */ + +enum +{ + PROP_0, + PROP_ACTIVE, + PROP_TOLERANCE, + PROP_FILTER_SIZE, + PROP_LUMA_ONLY +}; + +static GstStaticPadTemplate gst_smooth_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420") + ) + ); + +static GstStaticPadTemplate gst_smooth_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420") + ) + ); + + +static gboolean gst_smooth_set_caps (GstBaseTransform * btrans, + GstCaps * incaps, GstCaps * outcaps); + +static GstFlowReturn gst_smooth_transform (GstBaseTransform * btrans, + GstBuffer * inbuf, GstBuffer * outbuf); +static void smooth_filter (unsigned char *dest, unsigned char *src, + int width, int height, int tolerance, int filtersize); + +static void gst_smooth_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_smooth_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +GST_BOILERPLATE (GstSmooth, gst_smooth, GstVideoFilter, GST_TYPE_VIDEO_FILTER); + +static void +gst_smooth_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_smooth_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smooth_src_template); + gst_element_class_set_details_simple (element_class, "Smooth effect", + "Filter/Effect/Video", + "Apply a smooth filter to an image", + "Wim Taymans "); +} + +static void +gst_smooth_class_init (GstSmoothClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstBaseTransformClass *btrans_class = (GstBaseTransformClass *) klass; + + gobject_class->set_property = gst_smooth_set_property; + gobject_class->get_property = gst_smooth_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_ACTIVE, + g_param_spec_boolean ("active", "active", "process video", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TOLERANCE, + g_param_spec_int ("tolerance", + "tolerance", "contrast tolerance for smoothing", G_MININT, + G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FILTER_SIZE, + g_param_spec_int ("filter-size", "filter-size", "size of media filter", + G_MININT, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_LUMA_ONLY, + g_param_spec_boolean ("luma-only", "luma-only", "only filter luma part", + TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + btrans_class->transform = GST_DEBUG_FUNCPTR (gst_smooth_transform); + btrans_class->set_caps = GST_DEBUG_FUNCPTR (gst_smooth_set_caps); +} + +static gboolean +gst_smooth_set_caps (GstBaseTransform * btrans, GstCaps * incaps, + GstCaps * outcaps) +{ + GstSmooth *filter; + GstStructure *structure; + gboolean ret; + + filter = GST_SMOOTH (btrans); + + structure = gst_caps_get_structure (incaps, 0); + ret = gst_structure_get_int (structure, "width", &filter->width); + ret &= gst_structure_get_int (structure, "height", &filter->height); + + return ret; +} + +static void +gst_smooth_init (GstSmooth * smooth, GstSmoothClass * klass) +{ + smooth->active = TRUE; + smooth->tolerance = 8; + smooth->filtersize = 3; + smooth->luma_only = TRUE; +} + +static void +smooth_filter (guchar * dest, guchar * src, gint width, gint height, + gint tolerance, gint filtersize) +{ + gint refval, aktval, upperval, lowerval, numvalues, sum; + gint x, y, fx, fy, fy1, fy2, fx1, fx2; + guchar *srcp = src; + + fy1 = 0; + fy2 = MIN (filtersize + 1, height) * width; + + for (y = 0; y < height; y++) { + if (y > (filtersize + 1)) + fy1 += width; + if (y < height - (filtersize + 1)) + fy2 += width; + + for (x = 0; x < width; x++) { + refval = *src; + upperval = refval + tolerance; + lowerval = refval - tolerance; + + numvalues = 1; + sum = refval; + + fx1 = MAX (x - filtersize, 0) + fy1; + fx2 = MIN (x + filtersize + 1, width) + fy1; + + for (fy = fy1; fy < fy2; fy += width) { + for (fx = fx1; fx < fx2; fx++) { + aktval = srcp[fx]; + if ((lowerval - aktval) * (upperval - aktval) < 0) { + numvalues++; + sum += aktval; + } + } /*for fx */ + fx1 += width; + fx2 += width; + } /*for fy */ + + src++; + *dest++ = sum / numvalues; + } + } +} + +static GstFlowReturn +gst_smooth_transform (GstBaseTransform * btrans, GstBuffer * inbuf, + GstBuffer * outbuf) +{ + GstSmooth *smooth; + guint8 *idata, *odata; + guint size, lumsize, chromsize; + + smooth = GST_SMOOTH (btrans); + idata = GST_BUFFER_DATA (inbuf); + odata = GST_BUFFER_DATA (outbuf); + size = GST_BUFFER_SIZE (inbuf); + + if (!smooth->active) { + memcpy (odata, idata, size); + return GST_FLOW_OK; + } + + GST_DEBUG_OBJECT (smooth, "smooth: have buffer of %d", size); + + lumsize = smooth->width * smooth->height; + chromsize = lumsize / 4; + + smooth_filter (odata, idata, smooth->width, smooth->height, + smooth->tolerance, smooth->filtersize); + if (!smooth->luma_only) { + smooth_filter (odata + lumsize, idata + lumsize, + smooth->width / 2, smooth->height / 2, smooth->tolerance, + smooth->filtersize / 2); + smooth_filter (odata + lumsize + chromsize, + idata + lumsize + chromsize, smooth->width / 2, smooth->height / 2, + smooth->tolerance, smooth->filtersize / 2); + } else { + memcpy (odata + lumsize, idata + lumsize, chromsize * 2); + } + + return GST_FLOW_OK; +} + +static void +gst_smooth_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * pspec) +{ + GstSmooth *smooth; + + g_return_if_fail (GST_IS_SMOOTH (object)); + smooth = GST_SMOOTH (object); + + switch (prop_id) { + case PROP_ACTIVE: + smooth->active = g_value_get_boolean (value); + break; + case PROP_TOLERANCE: + smooth->tolerance = g_value_get_int (value); + break; + case PROP_FILTER_SIZE: + smooth->filtersize = g_value_get_int (value); + break; + case PROP_LUMA_ONLY: + smooth->luma_only = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_smooth_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstSmooth *smooth; + + g_return_if_fail (GST_IS_SMOOTH (object)); + smooth = GST_SMOOTH (object); + + switch (prop_id) { + case PROP_ACTIVE: + g_value_set_boolean (value, smooth->active); + break; + case PROP_TOLERANCE: + g_value_set_int (value, smooth->tolerance); + break; + case PROP_FILTER_SIZE: + g_value_set_int (value, smooth->filtersize); + break; + case PROP_LUMA_ONLY: + g_value_set_boolean (value, smooth->luma_only); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "smooth", + GST_RANK_NONE, GST_TYPE_SMOOTH); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "smooth", + "Apply a smooth filter to an image", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/smooth/gstsmooth.h b/gst/smooth/gstsmooth.h new file mode 100644 index 0000000..67e7000 --- /dev/null +++ b/gst/smooth/gstsmooth.h @@ -0,0 +1,75 @@ +/* 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_SMOOTH_H__ +#define __GST_SMOOTH_H__ + + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +#define GST_TYPE_SMOOTH \ + (gst_smooth_get_type()) +#define GST_SMOOTH(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SMOOTH,GstSmooth)) +#define GST_SMOOTH_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SMOOTH,GstSmoothClass)) +#define GST_IS_SMOOTH(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SMOOTH)) +#define GST_IS_SMOOTH_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SMOOTH)) + +typedef struct _GstSmooth GstSmooth; +typedef struct _GstSmoothClass GstSmoothClass; + +struct _GstSmooth { + GstVideoFilter element; + + int format; + int width; + int height; + + gboolean active; + int tolerance; + int filtersize; + gboolean luma_only; + + GstPad *sinkpad,*srcpad; +}; + +struct _GstSmoothClass { + GstVideoFilterClass parent_class; +}; + +GType gst_smooth_get_type(void); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* __GST_SMOOTH_H__ */ diff --git a/gst/speed/Makefile.in b/gst/speed/Makefile.in index 4ba1f3a..e986ec1 100644 --- a/gst/speed/Makefile.in +++ b/gst/speed/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstspeed_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstspeed_la_OBJECTS = libgstspeed_la-gstspeed.lo libgstspeed_la_OBJECTS = $(am_libgstspeed_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstspeed_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspeed_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstspeed_la_SOURCES) DIST_SOURCES = $(libgstspeed_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstspeed.la: $(libgstspeed_la_OBJECTS) $(libgstspeed_la_DEPENDENCIES) +libgstspeed.la: $(libgstspeed_la_OBJECTS) $(libgstspeed_la_DEPENDENCIES) $(EXTRA_libgstspeed_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspeed_la_LINK) -rpath $(plugindir) $(libgstspeed_la_OBJECTS) $(libgstspeed_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstspeed_la-gstspeed.lo: gstspeed.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeed_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeed_la_CFLAGS) $(CFLAGS) -MT libgstspeed_la-gstspeed.lo -MD -MP -MF $(DEPDIR)/libgstspeed_la-gstspeed.Tpo -c -o libgstspeed_la-gstspeed.lo `test -f 'gstspeed.c' || echo '$(srcdir)/'`gstspeed.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeed_la-gstspeed.Tpo $(DEPDIR)/libgstspeed_la-gstspeed.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspeed.c' object='libgstspeed_la-gstspeed.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspeed.c' object='libgstspeed_la-gstspeed.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeed_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeed_la_CFLAGS) $(CFLAGS) -c -o libgstspeed_la-gstspeed.lo `test -f 'gstspeed.c' || echo '$(srcdir)/'`gstspeed.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeed_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeed_la_CFLAGS) $(CFLAGS) -c -o libgstspeed_la-gstspeed.lo `test -f 'gstspeed.c' || echo '$(srcdir)/'`gstspeed.c mostlyclean-libtool: -rm -f *.lo @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/speed/gstspeed.c b/gst/speed/gstspeed.c index 323181f..5a029fb 100644 --- a/gst/speed/gstspeed.c +++ b/gst/speed/gstspeed.c @@ -21,7 +21,7 @@ /** * SECTION:element-speed * - * Plays an audio stream at a different speed. + * Plays an audio stream at a different speed (by resampling the audio). * * 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 @@ -461,10 +461,10 @@ speed_base_init (gpointer g_class) "Andy Wingo , " "Tim-Philipp Müller "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_speed_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_speed_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_speed_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_speed_sink_template); } static void diff --git a/gst/stereo/Makefile.in b/gst/stereo/Makefile.in index 89ee53f..9cf2aee 100644 --- a/gst/stereo/Makefile.in +++ b/gst/stereo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgststereo_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgststereo_la_OBJECTS = libgststereo_la-gststereo.lo libgststereo_la_OBJECTS = $(am_libgststereo_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgststereo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgststereo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgststereo_la_SOURCES) DIST_SOURCES = $(libgststereo_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -601,7 +628,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgststereo.la: $(libgststereo_la_OBJECTS) $(libgststereo_la_DEPENDENCIES) +libgststereo.la: $(libgststereo_la_OBJECTS) $(libgststereo_la_DEPENDENCIES) $(EXTRA_libgststereo_la_DEPENDENCIES) $(AM_V_CCLD)$(libgststereo_la_LINK) -rpath $(plugindir) $(libgststereo_la_OBJECTS) $(libgststereo_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -615,34 +642,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgststereo_la-gststereo.lo: gststereo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgststereo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgststereo_la_CFLAGS) $(CFLAGS) -MT libgststereo_la-gststereo.lo -MD -MP -MF $(DEPDIR)/libgststereo_la-gststereo.Tpo -c -o libgststereo_la-gststereo.lo `test -f 'gststereo.c' || echo '$(srcdir)/'`gststereo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgststereo_la-gststereo.Tpo $(DEPDIR)/libgststereo_la-gststereo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststereo.c' object='libgststereo_la-gststereo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststereo.c' object='libgststereo_la-gststereo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgststereo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgststereo_la_CFLAGS) $(CFLAGS) -c -o libgststereo_la-gststereo.lo `test -f 'gststereo.c' || echo '$(srcdir)/'`gststereo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgststereo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgststereo_la_CFLAGS) $(CFLAGS) -c -o libgststereo_la-gststereo.lo `test -f 'gststereo.c' || echo '$(srcdir)/'`gststereo.c mostlyclean-libtool: -rm -f *.lo @@ -749,10 +772,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/subenc/Makefile.am b/gst/subenc/Makefile.am index a55a99d..f5095c2 100644 --- a/gst/subenc/Makefile.am +++ b/gst/subenc/Makefile.am @@ -1,14 +1,17 @@ plugin_LTLIBRARIES = libgstsubenc.la libgstsubenc_la_SOURCES = \ - gstsrtenc.c + gstsrtenc.c \ + gstsubenc.c \ + gstwebvttenc.c libgstsubenc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GST_CONTROLLER_CFLAGS) libgstsubenc_la_LIBADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) libgstsubenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsubenc_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ - gstsrtenc.h + gstsrtenc.h \ + gstwebvttenc.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/subenc/Makefile.in b/gst/subenc/Makefile.in index d48ab9c..67b6277 100644 --- a/gst/subenc/Makefile.in +++ b/gst/subenc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,15 +101,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstsubenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -am_libgstsubenc_la_OBJECTS = libgstsubenc_la-gstsrtenc.lo +am_libgstsubenc_la_OBJECTS = libgstsubenc_la-gstsrtenc.lo \ + libgstsubenc_la-gstsubenc.lo libgstsubenc_la-gstwebvttenc.lo libgstsubenc_la_OBJECTS = $(am_libgstsubenc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsubenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsubenc_la_SOURCES) DIST_SOURCES = $(libgstsubenc_la_SOURCES) @@ -150,7 +158,6 @@ 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@ @@ -168,7 +175,6 @@ 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@ @@ -203,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -529,14 +557,17 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstsubenc.la libgstsubenc_la_SOURCES = \ - gstsrtenc.c + gstsrtenc.c \ + gstsubenc.c \ + gstwebvttenc.c libgstsubenc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GST_CONTROLLER_CFLAGS) libgstsubenc_la_LIBADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) libgstsubenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsubenc_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = \ - gstsrtenc.h + gstsrtenc.h \ + gstwebvttenc.h all: all-am @@ -603,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsubenc.la: $(libgstsubenc_la_OBJECTS) $(libgstsubenc_la_DEPENDENCIES) +libgstsubenc.la: $(libgstsubenc_la_OBJECTS) $(libgstsubenc_la_DEPENDENCIES) $(EXTRA_libgstsubenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsubenc_la_LINK) -rpath $(plugindir) $(libgstsubenc_la_OBJECTS) $(libgstsubenc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,38 +644,50 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsubenc_la-gstsrtenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsubenc_la-gstsubenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsubenc_la-gstwebvttenc.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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsubenc_la-gstsrtenc.lo: gstsrtenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -MT libgstsubenc_la-gstsrtenc.lo -MD -MP -MF $(DEPDIR)/libgstsubenc_la-gstsrtenc.Tpo -c -o libgstsubenc_la-gstsrtenc.lo `test -f 'gstsrtenc.c' || echo '$(srcdir)/'`gstsrtenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubenc_la-gstsrtenc.Tpo $(DEPDIR)/libgstsubenc_la-gstsrtenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsrtenc.c' object='libgstsubenc_la-gstsrtenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsrtenc.c' object='libgstsubenc_la-gstsrtenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -c -o libgstsubenc_la-gstsrtenc.lo `test -f 'gstsrtenc.c' || echo '$(srcdir)/'`gstsrtenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -c -o libgstsubenc_la-gstsrtenc.lo `test -f 'gstsrtenc.c' || echo '$(srcdir)/'`gstsrtenc.c + +libgstsubenc_la-gstsubenc.lo: gstsubenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -MT libgstsubenc_la-gstsubenc.lo -MD -MP -MF $(DEPDIR)/libgstsubenc_la-gstsubenc.Tpo -c -o libgstsubenc_la-gstsubenc.lo `test -f 'gstsubenc.c' || echo '$(srcdir)/'`gstsubenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubenc_la-gstsubenc.Tpo $(DEPDIR)/libgstsubenc_la-gstsubenc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsubenc.c' object='libgstsubenc_la-gstsubenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -c -o libgstsubenc_la-gstsubenc.lo `test -f 'gstsubenc.c' || echo '$(srcdir)/'`gstsubenc.c + +libgstsubenc_la-gstwebvttenc.lo: gstwebvttenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -MT libgstsubenc_la-gstwebvttenc.lo -MD -MP -MF $(DEPDIR)/libgstsubenc_la-gstwebvttenc.Tpo -c -o libgstsubenc_la-gstwebvttenc.lo `test -f 'gstwebvttenc.c' || echo '$(srcdir)/'`gstwebvttenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubenc_la-gstwebvttenc.Tpo $(DEPDIR)/libgstsubenc_la-gstwebvttenc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwebvttenc.c' object='libgstsubenc_la-gstwebvttenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubenc_la_CFLAGS) $(CFLAGS) -c -o libgstsubenc_la-gstwebvttenc.lo `test -f 'gstwebvttenc.c' || echo '$(srcdir)/'`gstwebvttenc.c mostlyclean-libtool: -rm -f *.lo @@ -751,10 +794,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/subenc/gstsrtenc.c b/gst/subenc/gstsrtenc.c index 36071c3..a06bce1 100644 --- a/gst/subenc/gstsrtenc.c +++ b/gst/subenc/gstsrtenc.c @@ -46,7 +46,6 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("text/plain; text/x-pango-markup")); static GstFlowReturn gst_srt_enc_chain (GstPad * pad, GstBuffer * buf); -static gboolean plugin_init (GstPlugin * plugin); static gchar *gst_srt_enc_timeconvertion (GstSrtEnc * srtenc, GstBuffer * buf); static gchar *gst_srt_enc_timestamp_to_string (GstClockTime timestamp); static void gst_srt_enc_get_property (GObject * object, guint prop_id, @@ -124,10 +123,9 @@ gst_srt_enc_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_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Srt encoder", "Codec/Encoder/Subtitle", @@ -241,16 +239,3 @@ gst_srt_enc_init (GstSrtEnc * srtenc, GstSrtEncClass * klass) gst_element_add_pad (GST_ELEMENT (srtenc), srtenc->sinkpad); gst_pad_set_chain_function (srtenc->sinkpad, gst_srt_enc_chain); } - -static gboolean -plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "srtenc", GST_RANK_NONE, - GST_TYPE_SRT_ENC); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "subenc", - "subtitle encoders", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/subenc/gstsubenc.c b/gst/subenc/gstsubenc.c new file mode 100644 index 0000000..dc0aab5 --- /dev/null +++ b/gst/subenc/gstsubenc.c @@ -0,0 +1,41 @@ +/* GStreamer + * Copyright (C) <2008> Thijs Vermeir + * Copyright (C) 2011 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 "gstsrtenc.h" +#include "gstwebvttenc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gst_element_register (plugin, "srtenc", GST_RANK_NONE, GST_TYPE_SRT_ENC); + gst_element_register (plugin, "webvttenc", GST_RANK_NONE, + GST_TYPE_WEBVTT_ENC); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "subenc", + "subtitle encoders", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/gst/subenc/gstwebvttenc.c b/gst/subenc/gstwebvttenc.c new file mode 100644 index 0000000..9da281d --- /dev/null +++ b/gst/subenc/gstwebvttenc.c @@ -0,0 +1,276 @@ +/* GStreamer + * Copyright (C) <2008> Thijs Vermeir + * Copyright (C) 2011 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 "string.h" + +#include "gstwebvttenc.h" +#include + +GST_DEBUG_CATEGORY_STATIC (webvttenc_debug); +#define GST_CAT_DEFAULT webvttenc_debug + +enum +{ + ARG_0, + ARG_TIMESTAMP, + ARG_DURATION +}; + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("text/webvtt")); + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("text/plain; text/x-pango-markup")); + +static GstFlowReturn gst_webvtt_enc_chain (GstPad * pad, GstBuffer * buf); +static gchar *gst_webvtt_enc_timeconvertion (GstWebvttEnc * webvttenc, + GstBuffer * buf); +static gchar *gst_webvtt_enc_timestamp_to_string (GstClockTime timestamp); +static void gst_webvtt_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_webvtt_enc_reset (GstWebvttEnc * webvttenc); +static void gst_webvtt_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); + +GST_BOILERPLATE (GstWebvttEnc, gst_webvtt_enc, GstElement, GST_TYPE_ELEMENT); + +static gchar * +gst_webvtt_enc_timestamp_to_string (GstClockTime timestamp) +{ + guint h, m, s, ms; + + h = timestamp / (3600 * GST_SECOND); + + timestamp -= h * 3600 * GST_SECOND; + m = timestamp / (60 * GST_SECOND); + + timestamp -= m * 60 * GST_SECOND; + s = timestamp / GST_SECOND; + + timestamp -= s * GST_SECOND; + ms = timestamp / GST_MSECOND; + + return g_strdup_printf ("%02d:%02d:%02d.%03d", h, m, s, ms); +} + +static gchar * +gst_webvtt_enc_timeconvertion (GstWebvttEnc * webvttenc, GstBuffer * buf) +{ + gchar *start_time; + gchar *stop_time; + gchar *string; + + start_time = gst_webvtt_enc_timestamp_to_string (GST_BUFFER_TIMESTAMP (buf) + + webvttenc->timestamp); + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buf))) { + stop_time = gst_webvtt_enc_timestamp_to_string (GST_BUFFER_TIMESTAMP (buf) + + webvttenc->timestamp + GST_BUFFER_DURATION (buf) + webvttenc->duration); + } else { + stop_time = gst_webvtt_enc_timestamp_to_string (GST_BUFFER_TIMESTAMP (buf) + + webvttenc->timestamp + webvttenc->duration); + } + string = g_strdup_printf ("%s --> %s\n", start_time, stop_time); + + g_free (start_time); + g_free (stop_time); + return string; +} + +static GstFlowReturn +gst_webvtt_enc_chain (GstPad * pad, GstBuffer * buf) +{ + GstWebvttEnc *webvttenc; + GstBuffer *new_buffer; + gchar *timing; + GstFlowReturn ret; + + webvttenc = GST_WEBVTT_ENC (gst_pad_get_parent_element (pad)); + + if (!webvttenc->pushed_header) { + const char *header = "WEBVTT\n\n"; + + new_buffer = gst_buffer_new_and_alloc (strlen (header)); + memcpy (GST_BUFFER_DATA (new_buffer), header, strlen (header)); + + GST_BUFFER_TIMESTAMP (new_buffer) = GST_CLOCK_TIME_NONE; + GST_BUFFER_DURATION (new_buffer) = GST_CLOCK_TIME_NONE; + + ret = gst_pad_push (webvttenc->srcpad, new_buffer); + if (ret != GST_FLOW_OK) { + goto out; + } + + webvttenc->pushed_header = TRUE; + } + + gst_object_sync_values (G_OBJECT (webvttenc), GST_BUFFER_TIMESTAMP (buf)); + + timing = gst_webvtt_enc_timeconvertion (webvttenc, buf); + new_buffer = + gst_buffer_new_and_alloc (strlen (timing) + GST_BUFFER_SIZE (buf) + 1); + memcpy (GST_BUFFER_DATA (new_buffer), timing, strlen (timing)); + memcpy (GST_BUFFER_DATA (new_buffer) + strlen (timing), GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)); + memcpy (GST_BUFFER_DATA (new_buffer) + GST_BUFFER_SIZE (new_buffer) - 1, + "\n", 1); + g_free (timing); + + GST_BUFFER_TIMESTAMP (new_buffer) = GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_DURATION (new_buffer) = GST_BUFFER_DURATION (buf); + + + ret = gst_pad_push (webvttenc->srcpad, new_buffer); + +out: + gst_buffer_unref (buf); + gst_object_unref (webvttenc); + + return ret; +} + +static void +gst_webvtt_enc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); + + gst_element_class_set_details_simple (element_class, + "WebVTT encoder", "Codec/Encoder/Subtitle", + "WebVTT subtitle encoder", "David Schleef "); +} + +static void +gst_webvtt_enc_reset (GstWebvttEnc * webvttenc) +{ + webvttenc->counter = 1; +} + +static GstStateChangeReturn +gst_webvtt_enc_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstWebvttEnc *webvttenc = GST_WEBVTT_ENC (element); + + 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_webvtt_enc_reset (webvttenc); + break; + default: + break; + } + + return ret; +} + +static void +gst_webvtt_enc_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstWebvttEnc *webvttenc; + + webvttenc = GST_WEBVTT_ENC (object); + + switch (prop_id) { + case ARG_TIMESTAMP: + g_value_set_int64 (value, webvttenc->timestamp); + break; + case ARG_DURATION: + g_value_set_int64 (value, webvttenc->duration); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_webvtt_enc_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + + GstWebvttEnc *webvttenc; + + webvttenc = GST_WEBVTT_ENC (object); + + switch (prop_id) { + case ARG_TIMESTAMP: + webvttenc->timestamp = g_value_get_int64 (value); + break; + case ARG_DURATION: + webvttenc->duration = g_value_get_int64 (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_webvtt_enc_class_init (GstWebvttEncClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_webvtt_enc_set_property); + gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_webvtt_enc_get_property); + + element_class->change_state = GST_DEBUG_FUNCPTR (gst_webvtt_enc_change_state); + + g_object_class_install_property (gobject_class, ARG_TIMESTAMP, + g_param_spec_int64 ("timestamp", "Offset for the starttime", + "Offset for the starttime for the subtitles", G_MININT64, G_MAXINT64, + 0, + G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_DURATION, + g_param_spec_int64 ("duration", "Offset for the duration", + "Offset for the duration of the subtitles", G_MININT64, G_MAXINT64, + 0, + G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (webvttenc_debug, "webvttenc", 0, + "SubRip subtitle encoder"); +} + +static void +gst_webvtt_enc_init (GstWebvttEnc * webvttenc, GstWebvttEncClass * klass) +{ + gst_webvtt_enc_reset (webvttenc); + + webvttenc->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_element_add_pad (GST_ELEMENT (webvttenc), webvttenc->srcpad); + webvttenc->sinkpad = + gst_pad_new_from_static_template (&sink_template, "sink"); + gst_element_add_pad (GST_ELEMENT (webvttenc), webvttenc->sinkpad); + gst_pad_set_chain_function (webvttenc->sinkpad, gst_webvtt_enc_chain); +} diff --git a/gst/subenc/gstwebvttenc.h b/gst/subenc/gstwebvttenc.h new file mode 100644 index 0000000..aadbe94 --- /dev/null +++ b/gst/subenc/gstwebvttenc.h @@ -0,0 +1,65 @@ +/* GStreamer + * Copyright (C) <2008> Thijs Vermeir + * + * 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_WEBVTT_ENC_H__ +#define __GST_WEBVTT_ENC_H__ + +#include + +G_BEGIN_DECLS +#define GST_TYPE_WEBVTT_ENC \ + (gst_webvtt_enc_get_type()) +#define GST_WEBVTT_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_WEBVTT_ENC,GstWebvttEnc)) +#define GST_WEBVTT_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_WEBVTT_ENC,GstWebvttEnc)) +#define GST_IS_WEBVTT_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_WEBVTT_ENC)) +#define GST_IS_WEBVTT_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_WEBVTT_ENC)) + +typedef struct _GstWebvttEnc GstWebvttEnc; +typedef struct _GstWebvttEncClass GstWebvttEncClass; + +struct _GstWebvttEncClass +{ + GstElementClass parent_class; +}; + +struct _GstWebvttEnc +{ + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + gboolean pushed_header; + + /* properties */ + gint64 timestamp; + gint64 duration; + + /* counter for subtitle entry */ + guint counter; +}; + +GType gst_webvtt_enc_get_type (void); + +G_END_DECLS +#endif diff --git a/gst/tta/Makefile.in b/gst/tta/Makefile.in index 100072a..ac35163 100644 --- a/gst/tta/Makefile.in +++ b/gst/tta/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgsttta_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgsttta_la_OBJECTS = libgsttta_la-gsttta.lo \ libgsttta_la-gstttaparse.lo libgsttta_la-gstttadec.lo libgsttta_la_OBJECTS = $(am_libgsttta_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsttta_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsttta_la_SOURCES) DIST_SOURCES = $(libgsttta_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -605,7 +632,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsttta.la: $(libgsttta_la_OBJECTS) $(libgsttta_la_DEPENDENCIES) +libgsttta.la: $(libgsttta_la_OBJECTS) $(libgsttta_la_DEPENDENCIES) $(EXTRA_libgsttta_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsttta_la_LINK) -rpath $(plugindir) $(libgsttta_la_OBJECTS) $(libgsttta_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -621,50 +648,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsttta_la-gsttta.lo: gsttta.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -MT libgsttta_la-gsttta.lo -MD -MP -MF $(DEPDIR)/libgsttta_la-gsttta.Tpo -c -o libgsttta_la-gsttta.lo `test -f 'gsttta.c' || echo '$(srcdir)/'`gsttta.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttta_la-gsttta.Tpo $(DEPDIR)/libgsttta_la-gsttta.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttta.c' object='libgsttta_la-gsttta.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttta.c' object='libgsttta_la-gsttta.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gsttta.lo `test -f 'gsttta.c' || echo '$(srcdir)/'`gsttta.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gsttta.lo `test -f 'gsttta.c' || echo '$(srcdir)/'`gsttta.c libgsttta_la-gstttaparse.lo: gstttaparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -MT libgsttta_la-gstttaparse.lo -MD -MP -MF $(DEPDIR)/libgsttta_la-gstttaparse.Tpo -c -o libgsttta_la-gstttaparse.lo `test -f 'gstttaparse.c' || echo '$(srcdir)/'`gstttaparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttta_la-gstttaparse.Tpo $(DEPDIR)/libgsttta_la-gstttaparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstttaparse.c' object='libgsttta_la-gstttaparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstttaparse.c' object='libgsttta_la-gstttaparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gstttaparse.lo `test -f 'gstttaparse.c' || echo '$(srcdir)/'`gstttaparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gstttaparse.lo `test -f 'gstttaparse.c' || echo '$(srcdir)/'`gstttaparse.c libgsttta_la-gstttadec.lo: gstttadec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -MT libgsttta_la-gstttadec.lo -MD -MP -MF $(DEPDIR)/libgsttta_la-gstttadec.Tpo -c -o libgsttta_la-gstttadec.lo `test -f 'gstttadec.c' || echo '$(srcdir)/'`gstttadec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttta_la-gstttadec.Tpo $(DEPDIR)/libgsttta_la-gstttadec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstttadec.c' object='libgsttta_la-gstttadec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstttadec.c' object='libgsttta_la-gstttadec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gstttadec.lo `test -f 'gstttadec.c' || echo '$(srcdir)/'`gstttadec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttta_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttta_la_CFLAGS) $(CFLAGS) -c -o libgsttta_la-gstttadec.lo `test -f 'gstttadec.c' || echo '$(srcdir)/'`gstttadec.c mostlyclean-libtool: -rm -f *.lo @@ -771,10 +792,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/tta/gstttadec.c b/gst/tta/gstttadec.c index e2c1f5a..7eabe7a 100644 --- a/gst/tta/gstttadec.c +++ b/gst/tta/gstttadec.c @@ -89,7 +89,7 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", "depth = (int) { 8, 16, 24 }, " "channels = (int) { 1, 2 }, " "rate = (int) [ 8000, 96000 ], " - "endianness = (int) LITTLE_ENDIAN, " "signed = (boolean) true") + "endianness = (int) BYTE_ORDER, " "signed = (boolean) true") ); static void gst_tta_dec_class_init (GstTtaDecClass * klass); @@ -106,7 +106,6 @@ gst_tta_dec_setcaps (GstPad * pad, GstCaps * caps) GstTtaDec *ttadec = GST_TTA_DEC (gst_pad_get_parent (pad)); GstStructure *structure = gst_caps_get_structure (caps, 0); GstCaps *srccaps; - guint64 outsize; gint bits, channels; gint32 samplerate; @@ -125,7 +124,7 @@ gst_tta_dec_setcaps (GstPad * pad, GstCaps * caps) "channels", G_TYPE_INT, ttadec->channels, "depth", G_TYPE_INT, bits, "width", G_TYPE_INT, bits, - "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, + "endianness", G_TYPE_INT, G_BYTE_ORDER, "signed", G_TYPE_BOOLEAN, TRUE, NULL); if (!gst_pad_set_caps (ttadec->srcpad, srccaps)) @@ -136,8 +135,6 @@ gst_tta_dec_setcaps (GstPad * pad, GstCaps * caps) ttadec->tta = g_malloc (ttadec->channels * sizeof (decoder)); ttadec->cache = g_malloc (ttadec->channels * sizeof (long)); - outsize = ttadec->channels * ttadec->frame_length * ttadec->bytes; - ttadec->decdata = (guchar *) g_malloc (ttadec->channels * ttadec->frame_length * ttadec->bytes * sizeof (guchar)); @@ -174,10 +171,8 @@ gst_tta_dec_base_init (GstTtaDecClass * 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "TTA audio decoder", "Codec/Decoder/Audio", "Decode TTA audio data", "Arwed v. Merkatz "); @@ -445,5 +440,5 @@ gboolean gst_tta_dec_plugin_init (GstPlugin * plugin) { return gst_element_register (plugin, "ttadec", - GST_RANK_PRIMARY, GST_TYPE_TTA_DEC); + GST_RANK_NONE, GST_TYPE_TTA_DEC); } diff --git a/gst/tta/gstttaparse.c b/gst/tta/gstttaparse.c index fc2b02b..52cd8e4 100644 --- a/gst/tta/gstttaparse.c +++ b/gst/tta/gstttaparse.c @@ -88,10 +88,8 @@ gst_tta_parse_base_init (GstTtaParseClass * 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_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "TTA file parser", "Codec/Demuxer/Audio", "Parses TTA files", "Arwed v. Merkatz "); @@ -495,7 +493,7 @@ gboolean gst_tta_parse_plugin_init (GstPlugin * plugin) { if (!gst_element_register (plugin, "ttaparse", - GST_RANK_PRIMARY, GST_TYPE_TTA_PARSE)) { + GST_RANK_NONE, GST_TYPE_TTA_PARSE)) { return FALSE; } diff --git a/gst/videofilters/Makefile.in b/gst/videofilters/Makefile.in index f65edab..da1fa6e 100644 --- a/gst/videofilters/Makefile.in +++ b/gst/videofilters/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +120,8 @@ am_libgstvideofiltersbad_la_OBJECTS = \ libgstvideofiltersbad_la-gstvideofiltersbad.lo libgstvideofiltersbad_la_OBJECTS = \ $(am_libgstvideofiltersbad_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideofiltersbad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -130,21 +137,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideofiltersbad_la_SOURCES) DIST_SOURCES = $(libgstvideofiltersbad_la_SOURCES) @@ -156,7 +163,6 @@ 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@ @@ -174,7 +180,6 @@ 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@ @@ -209,6 +214,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -248,6 +254,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -265,6 +272,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -273,13 +281,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -304,13 +315,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -358,6 +370,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -389,8 +402,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -414,6 +431,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -438,10 +457,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -453,6 +476,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -477,6 +504,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -512,7 +540,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -628,7 +655,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideofiltersbad.la: $(libgstvideofiltersbad_la_OBJECTS) $(libgstvideofiltersbad_la_DEPENDENCIES) +libgstvideofiltersbad.la: $(libgstvideofiltersbad_la_OBJECTS) $(libgstvideofiltersbad_la_DEPENDENCIES) $(EXTRA_libgstvideofiltersbad_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideofiltersbad_la_LINK) -rpath $(plugindir) $(libgstvideofiltersbad_la_OBJECTS) $(libgstvideofiltersbad_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -645,58 +672,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideofiltersbad_la-gstvideofilter2.lo: gstvideofilter2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideofiltersbad_la-gstvideofilter2.lo -MD -MP -MF $(DEPDIR)/libgstvideofiltersbad_la-gstvideofilter2.Tpo -c -o libgstvideofiltersbad_la-gstvideofilter2.lo `test -f 'gstvideofilter2.c' || echo '$(srcdir)/'`gstvideofilter2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofiltersbad_la-gstvideofilter2.Tpo $(DEPDIR)/libgstvideofiltersbad_la-gstvideofilter2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideofilter2.c' object='libgstvideofiltersbad_la-gstvideofilter2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideofilter2.c' object='libgstvideofiltersbad_la-gstvideofilter2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstvideofilter2.lo `test -f 'gstvideofilter2.c' || echo '$(srcdir)/'`gstvideofilter2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstvideofilter2.lo `test -f 'gstvideofilter2.c' || echo '$(srcdir)/'`gstvideofilter2.c libgstvideofiltersbad_la-gstzebrastripe.lo: gstzebrastripe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideofiltersbad_la-gstzebrastripe.lo -MD -MP -MF $(DEPDIR)/libgstvideofiltersbad_la-gstzebrastripe.Tpo -c -o libgstvideofiltersbad_la-gstzebrastripe.lo `test -f 'gstzebrastripe.c' || echo '$(srcdir)/'`gstzebrastripe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofiltersbad_la-gstzebrastripe.Tpo $(DEPDIR)/libgstvideofiltersbad_la-gstzebrastripe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstzebrastripe.c' object='libgstvideofiltersbad_la-gstzebrastripe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstzebrastripe.c' object='libgstvideofiltersbad_la-gstzebrastripe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstzebrastripe.lo `test -f 'gstzebrastripe.c' || echo '$(srcdir)/'`gstzebrastripe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstzebrastripe.lo `test -f 'gstzebrastripe.c' || echo '$(srcdir)/'`gstzebrastripe.c libgstvideofiltersbad_la-gstscenechange.lo: gstscenechange.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideofiltersbad_la-gstscenechange.lo -MD -MP -MF $(DEPDIR)/libgstvideofiltersbad_la-gstscenechange.Tpo -c -o libgstvideofiltersbad_la-gstscenechange.lo `test -f 'gstscenechange.c' || echo '$(srcdir)/'`gstscenechange.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofiltersbad_la-gstscenechange.Tpo $(DEPDIR)/libgstvideofiltersbad_la-gstscenechange.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstscenechange.c' object='libgstvideofiltersbad_la-gstscenechange.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstscenechange.c' object='libgstvideofiltersbad_la-gstscenechange.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstscenechange.lo `test -f 'gstscenechange.c' || echo '$(srcdir)/'`gstscenechange.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstscenechange.lo `test -f 'gstscenechange.c' || echo '$(srcdir)/'`gstscenechange.c libgstvideofiltersbad_la-gstvideofiltersbad.lo: gstvideofiltersbad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideofiltersbad_la-gstvideofiltersbad.lo -MD -MP -MF $(DEPDIR)/libgstvideofiltersbad_la-gstvideofiltersbad.Tpo -c -o libgstvideofiltersbad_la-gstvideofiltersbad.lo `test -f 'gstvideofiltersbad.c' || echo '$(srcdir)/'`gstvideofiltersbad.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofiltersbad_la-gstvideofiltersbad.Tpo $(DEPDIR)/libgstvideofiltersbad_la-gstvideofiltersbad.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideofiltersbad.c' object='libgstvideofiltersbad_la-gstvideofiltersbad.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideofiltersbad.c' object='libgstvideofiltersbad_la-gstvideofiltersbad.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstvideofiltersbad.lo `test -f 'gstvideofiltersbad.c' || echo '$(srcdir)/'`gstvideofiltersbad.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofiltersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofiltersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideofiltersbad_la-gstvideofiltersbad.lo `test -f 'gstvideofiltersbad.c' || echo '$(srcdir)/'`gstvideofiltersbad.c mostlyclean-libtool: -rm -f *.lo @@ -803,10 +823,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videofilters/gstscenechange.c b/gst/videofilters/gstscenechange.c index 385ed0b..0cfb8b2 100644 --- a/gst/videofilters/gstscenechange.c +++ b/gst/videofilters/gstscenechange.c @@ -169,10 +169,7 @@ void gst_scene_change_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstSceneChange *scenechange; - g_return_if_fail (GST_IS_SCENE_CHANGE (object)); - scenechange = GST_SCENE_CHANGE (object); switch (property_id) { default: @@ -185,10 +182,7 @@ void gst_scene_change_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstSceneChange *scenechange; - g_return_if_fail (GST_IS_SCENE_CHANGE (object)); - scenechange = GST_SCENE_CHANGE (object); switch (property_id) { default: @@ -200,10 +194,7 @@ gst_scene_change_get_property (GObject * object, guint property_id, void gst_scene_change_dispose (GObject * object) { - GstSceneChange *scenechange; - g_return_if_fail (GST_IS_SCENE_CHANGE (object)); - scenechange = GST_SCENE_CHANGE (object); /* clean up as possible. may be called multiple times */ diff --git a/gst/videofilters/gstvideofilter2.c b/gst/videofilters/gstvideofilter2.c index fdffb65..4ea308a 100644 --- a/gst/videofilters/gstvideofilter2.c +++ b/gst/videofilters/gstvideofilter2.c @@ -1,5 +1,5 @@ /* GStreamer - * Copyright (C) 2011 FIXME + * Copyright (C) 2011 David Schleef * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -19,15 +19,6 @@ /** * SECTION:element-gstvideofilter2 * - * The videofilter2 element does FIXME stuff. - * - * - * Example launch line - * |[ - * gst-launch -v fakesrc ! videofilter2 ! FIXME ! fakesink - * ]| - * FIXME Describe what the pipeline does. - * */ #ifdef HAVE_CONFIG_H @@ -88,17 +79,22 @@ gst_video_filter2_base_init (gpointer g_class) GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); int i; GstCaps *caps = NULL; + GstPadTemplate *pad_template; caps = gst_caps_new_empty (); for (i = GST_VIDEO_FORMAT_I420; i <= GST_VIDEO_FORMAT_I420; i++) { gst_caps_append (caps, gst_video_format_new_template_caps (i)); } - gst_element_class_add_pad_template (element_class, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - gst_caps_ref (caps))); - gst_element_class_add_pad_template (element_class, - gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps)); + gst_caps_ref (caps)); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); + pad_template = + gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); } static void @@ -139,10 +135,7 @@ void gst_video_filter2_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstVideoFilter2 *videofilter2; - g_return_if_fail (GST_IS_VIDEO_FILTER2 (object)); - videofilter2 = GST_VIDEO_FILTER2 (object); switch (property_id) { default: @@ -155,10 +148,7 @@ void gst_video_filter2_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstVideoFilter2 *videofilter2; - g_return_if_fail (GST_IS_VIDEO_FILTER2 (object)); - videofilter2 = GST_VIDEO_FILTER2 (object); switch (property_id) { default: @@ -170,10 +160,7 @@ gst_video_filter2_get_property (GObject * object, guint property_id, void gst_video_filter2_dispose (GObject * object) { - GstVideoFilter2 *videofilter2; - g_return_if_fail (GST_IS_VIDEO_FILTER2 (object)); - videofilter2 = GST_VIDEO_FILTER2 (object); /* clean up as possible. may be called multiple times */ @@ -183,10 +170,7 @@ gst_video_filter2_dispose (GObject * object) void gst_video_filter2_finalize (GObject * object) { - GstVideoFilter2 *videofilter2; - g_return_if_fail (GST_IS_VIDEO_FILTER2 (object)); - videofilter2 = GST_VIDEO_FILTER2 (object); /* clean up object here */ diff --git a/gst/videofilters/gstzebrastripe.c b/gst/videofilters/gstzebrastripe.c index e1107ed..e4acd3a 100644 --- a/gst/videofilters/gstzebrastripe.c +++ b/gst/videofilters/gstzebrastripe.c @@ -177,10 +177,7 @@ gst_zebra_stripe_get_property (GObject * object, guint property_id, void gst_zebra_stripe_finalize (GObject * object) { - GstZebraStripe *zebrastripe; - g_return_if_fail (GST_IS_ZEBRA_STRIPE (object)); - zebrastripe = GST_ZEBRA_STRIPE (object); /* clean up object here */ diff --git a/gst/videomaxrate/Makefile.in b/gst/videomaxrate/Makefile.in index 0550d32..a19af3d 100644 --- a/gst/videomaxrate/Makefile.in +++ b/gst/videomaxrate/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -108,8 +115,8 @@ libgstvideomaxrate_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstvideomaxrate_la_OBJECTS = \ libgstvideomaxrate_la-videomaxrate.lo libgstvideomaxrate_la_OBJECTS = $(am_libgstvideomaxrate_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideomaxrate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideomaxrate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -125,21 +132,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideomaxrate_la_SOURCES) DIST_SOURCES = $(libgstvideomaxrate_la_SOURCES) @@ -151,7 +158,6 @@ 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@ @@ -169,7 +175,6 @@ 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@ @@ -204,6 +209,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -243,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -260,6 +267,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -268,13 +276,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -299,13 +310,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -353,6 +365,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -384,8 +397,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -409,6 +426,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -433,10 +452,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -448,6 +471,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -472,6 +499,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -507,7 +535,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -602,7 +629,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideomaxrate.la: $(libgstvideomaxrate_la_OBJECTS) $(libgstvideomaxrate_la_DEPENDENCIES) +libgstvideomaxrate.la: $(libgstvideomaxrate_la_OBJECTS) $(libgstvideomaxrate_la_DEPENDENCIES) $(EXTRA_libgstvideomaxrate_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideomaxrate_la_LINK) -rpath $(plugindir) $(libgstvideomaxrate_la_OBJECTS) $(libgstvideomaxrate_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -616,34 +643,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideomaxrate_la-videomaxrate.lo: videomaxrate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomaxrate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomaxrate_la_CFLAGS) $(CFLAGS) -MT libgstvideomaxrate_la-videomaxrate.lo -MD -MP -MF $(DEPDIR)/libgstvideomaxrate_la-videomaxrate.Tpo -c -o libgstvideomaxrate_la-videomaxrate.lo `test -f 'videomaxrate.c' || echo '$(srcdir)/'`videomaxrate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomaxrate_la-videomaxrate.Tpo $(DEPDIR)/libgstvideomaxrate_la-videomaxrate.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videomaxrate.c' object='libgstvideomaxrate_la-videomaxrate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videomaxrate.c' object='libgstvideomaxrate_la-videomaxrate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomaxrate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomaxrate_la_CFLAGS) $(CFLAGS) -c -o libgstvideomaxrate_la-videomaxrate.lo `test -f 'videomaxrate.c' || echo '$(srcdir)/'`videomaxrate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomaxrate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomaxrate_la_CFLAGS) $(CFLAGS) -c -o libgstvideomaxrate_la-videomaxrate.lo `test -f 'videomaxrate.c' || echo '$(srcdir)/'`videomaxrate.c mostlyclean-libtool: -rm -f *.lo @@ -750,10 +773,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videomaxrate/videomaxrate.c b/gst/videomaxrate/videomaxrate.c index 0d7bb4f..396a200 100644 --- a/gst/videomaxrate/videomaxrate.c +++ b/gst/videomaxrate/videomaxrate.c @@ -98,10 +98,10 @@ gst_video_max_rate_base_init (gpointer gclass) "Filter/Effect/Video", "Drops extra frames", "Justin Karneges "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_max_rate_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_max_rate_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_max_rate_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_max_rate_src_template); } static void diff --git a/gst/videomeasure/Makefile.in b/gst/videomeasure/Makefile.in index b446c10..33042e9 100644 --- a/gst/videomeasure/Makefile.in +++ b/gst/videomeasure/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstvideomeasure_la_OBJECTS = \ libgstvideomeasure_la-gstvideomeasure_ssim.lo \ libgstvideomeasure_la-gstvideomeasure_collector.lo libgstvideomeasure_la_OBJECTS = $(am_libgstvideomeasure_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideomeasure_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideomeasure_la_SOURCES) DIST_SOURCES = $(libgstvideomeasure_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -614,7 +641,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideomeasure.la: $(libgstvideomeasure_la_OBJECTS) $(libgstvideomeasure_la_DEPENDENCIES) +libgstvideomeasure.la: $(libgstvideomeasure_la_OBJECTS) $(libgstvideomeasure_la_DEPENDENCIES) $(EXTRA_libgstvideomeasure_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideomeasure_la_LINK) -rpath $(plugindir) $(libgstvideomeasure_la_OBJECTS) $(libgstvideomeasure_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -630,50 +657,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideomeasure_la-gstvideomeasure.lo: gstvideomeasure.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -MT libgstvideomeasure_la-gstvideomeasure.lo -MD -MP -MF $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure.Tpo -c -o libgstvideomeasure_la-gstvideomeasure.lo `test -f 'gstvideomeasure.c' || echo '$(srcdir)/'`gstvideomeasure.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure.Tpo $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideomeasure.c' object='libgstvideomeasure_la-gstvideomeasure.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideomeasure.c' object='libgstvideomeasure_la-gstvideomeasure.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure.lo `test -f 'gstvideomeasure.c' || echo '$(srcdir)/'`gstvideomeasure.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure.lo `test -f 'gstvideomeasure.c' || echo '$(srcdir)/'`gstvideomeasure.c libgstvideomeasure_la-gstvideomeasure_ssim.lo: gstvideomeasure_ssim.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -MT libgstvideomeasure_la-gstvideomeasure_ssim.lo -MD -MP -MF $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_ssim.Tpo -c -o libgstvideomeasure_la-gstvideomeasure_ssim.lo `test -f 'gstvideomeasure_ssim.c' || echo '$(srcdir)/'`gstvideomeasure_ssim.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_ssim.Tpo $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_ssim.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideomeasure_ssim.c' object='libgstvideomeasure_la-gstvideomeasure_ssim.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideomeasure_ssim.c' object='libgstvideomeasure_la-gstvideomeasure_ssim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure_ssim.lo `test -f 'gstvideomeasure_ssim.c' || echo '$(srcdir)/'`gstvideomeasure_ssim.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure_ssim.lo `test -f 'gstvideomeasure_ssim.c' || echo '$(srcdir)/'`gstvideomeasure_ssim.c libgstvideomeasure_la-gstvideomeasure_collector.lo: gstvideomeasure_collector.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -MT libgstvideomeasure_la-gstvideomeasure_collector.lo -MD -MP -MF $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_collector.Tpo -c -o libgstvideomeasure_la-gstvideomeasure_collector.lo `test -f 'gstvideomeasure_collector.c' || echo '$(srcdir)/'`gstvideomeasure_collector.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_collector.Tpo $(DEPDIR)/libgstvideomeasure_la-gstvideomeasure_collector.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideomeasure_collector.c' object='libgstvideomeasure_la-gstvideomeasure_collector.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideomeasure_collector.c' object='libgstvideomeasure_la-gstvideomeasure_collector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure_collector.lo `test -f 'gstvideomeasure_collector.c' || echo '$(srcdir)/'`gstvideomeasure_collector.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomeasure_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomeasure_la_CFLAGS) $(CFLAGS) -c -o libgstvideomeasure_la-gstvideomeasure_collector.lo `test -f 'gstvideomeasure_collector.c' || echo '$(srcdir)/'`gstvideomeasure_collector.c mostlyclean-libtool: -rm -f *.lo @@ -780,10 +801,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videomeasure/gstvideomeasure_collector.c b/gst/videomeasure/gstvideomeasure_collector.c index 7619967..0c1f15e 100644 --- a/gst/videomeasure/gstvideomeasure_collector.c +++ b/gst/videomeasure/gstvideomeasure_collector.c @@ -323,10 +323,10 @@ gst_measure_collector_base_init (gpointer g_class) "Collect measurements from a measuring element", "Руслан Ижбулатов "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_measure_collector_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_measure_collector_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_measure_collector_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_measure_collector_src_template); } static void diff --git a/gst/videomeasure/gstvideomeasure_ssim.c b/gst/videomeasure/gstvideomeasure_ssim.c index a99fa9f..63e3472 100644 --- a/gst/videomeasure/gstvideomeasure_ssim.c +++ b/gst/videomeasure/gstvideomeasure_ssim.c @@ -215,8 +215,6 @@ calculate_mu (GstSSim * ssim, gfloat * outmu, guint8 * buf) gint winstart_x; gint wghstart_x; gint winend_x; - gint winlen_x; - gint winstride_x; gfloat weight; gint source_offset; @@ -228,8 +226,6 @@ calculate_mu (GstSSim * ssim, gfloat * outmu, guint8 * buf) winstart_y = ssim->windows[source_offset].y_window_start; wghstart_y = ssim->windows[source_offset].y_weight_start; winend_y = ssim->windows[source_offset].y_window_end; - winlen_x = winend_x - winstart_x + 1; - winstride_x = sizeof (gfloat) * winlen_x; elsumm = ssim->windows[source_offset].element_summ; switch (ssim->windowtype) { @@ -389,8 +385,6 @@ calcssim_canonical (GstSSim * ssim, guint8 * org, gfloat * orgmu, guint8 * mod, gint winstart_x; gint wghstart_x; gint winend_x; - gint winlen_x; - gint winstride_x; gfloat weight; gint source_offset; @@ -402,8 +396,6 @@ calcssim_canonical (GstSSim * ssim, guint8 * org, gfloat * orgmu, guint8 * mod, winstart_y = ssim->windows[source_offset].y_window_start; wghstart_y = ssim->windows[source_offset].y_weight_start; winend_y = ssim->windows[source_offset].y_window_end; - winlen_x = winend_x - winstart_x + 1; - winstride_x = sizeof (gfloat) * winlen_x; elsumm = ssim->windows[source_offset].element_summ; switch (ssim->windowtype) { @@ -1103,12 +1095,12 @@ gst_ssim_class_init (GstSSimClass * klass) "(only when using Gaussian window).", G_MINFLOAT, 10, 1.5, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_ssim_src_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_ssim_sink_original_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_ssim_sink_modified_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_ssim_src_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_ssim_sink_original_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_ssim_sink_modified_template); gst_element_class_set_details_simple (gstelement_class, "SSim", "Filter/Analyzer/Video", "Calculate Y-SSIM for n+2 YUV video streams", @@ -1183,11 +1175,15 @@ gst_ssim_request_new_pad (GstElement * element, GstPadTemplate * templ, goto could_not_add_sink; else /* increment pad counter */ +#if GLIB_CHECK_VERSION(2,29,5) + padcount = g_atomic_int_add (&ssim->padcount, 1); +#else padcount = g_atomic_int_exchange_and_add (&ssim->padcount, 1); +#endif if (num >= 0) { GstSSimOutputContext *c; - GObject *asobject; + template = gst_static_pad_template_get (&gst_ssim_src_template); name = g_strdup_printf ("src%d", num); newsrc = gst_pad_new_from_template (template, name); @@ -1205,7 +1201,6 @@ gst_ssim_request_new_pad (GstElement * element, GstPadTemplate * templ, c = g_new (GstSSimOutputContext, 1); c->pad = newsrc; - asobject = G_OBJECT (newsrc); g_object_set_data (G_OBJECT (newpad), "ssim-match-output-context", c); g_ptr_array_add (ssim->src, (gpointer) c); } @@ -1423,7 +1418,6 @@ gst_ssim_collected (GstCollectPads * pads, gpointer user_data) gpointer outdata = NULL; guint outsize = 0; gfloat mssim = 0, lowest = 1, highest = -1; - gboolean empty = TRUE; gboolean ready = TRUE; gint padnumber = 0; @@ -1500,7 +1494,6 @@ gst_ssim_collected (GstCollectPads * pads, gpointer user_data) GstCollectData *collect_data; GstBuffer *inbuf; guint8 *indata; - guint insize; collect_data = (GstCollectData *) collected->data; @@ -1508,7 +1501,6 @@ gst_ssim_collected (GstCollectPads * pads, gpointer user_data) inbuf = gst_collect_pads_pop (pads, collect_data); indata = GST_BUFFER_DATA (inbuf); - insize = GST_BUFFER_SIZE (inbuf); GST_DEBUG_OBJECT (ssim, "Modified stream - flags(0x%x), timestamp(%" GST_TIME_FORMAT "), duration(%" GST_TIME_FORMAT ")", @@ -1605,8 +1597,6 @@ gst_ssim_collected (GstCollectPads * pads, gpointer user_data) GST_BUFFER_TIMESTAMP (inbuf), "SSIM", &vmean, &vlowest, &vhighest); gst_pad_push_event (c->pad, measured); - empty = FALSE; - /* send it out */ GST_DEBUG_OBJECT (ssim, "pushing outbuf, timestamp %" GST_TIME_FORMAT ", size %d", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), diff --git a/gst/videoparsers/Makefile.am b/gst/videoparsers/Makefile.am index aca5033..49baeac 100644 --- a/gst/videoparsers/Makefile.am +++ b/gst/videoparsers/Makefile.am @@ -2,18 +2,25 @@ plugin_LTLIBRARIES = libgstvideoparsersbad.la libgstvideoparsersbad_la_SOURCES = plugin.c \ h263parse.c gsth263parse.c \ - gsth264parse.c h264parse.c \ - gstdiracparse.c dirac_parse.c + gstdiracparse.c dirac_parse.c \ + gsth264parse.c gstmpegvideoparse.c \ + gstmpeg4videoparse.c + libgstvideoparsersbad_la_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstvideoparsersbad_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-$(GST_MAJORMINOR).la \ + $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_MAJORMINOR) -lgstvideo-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) $(GST_LIBS) libgstvideoparsersbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstvideoparsersbad_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gsth263parse.h h263parse.h \ - gsth264parse.h h264parse.h \ - gstdiracparse.h dirac_parse.h + gstdiracparse.h dirac_parse.h \ + gsth264parse.h gstmpegvideoparse.h \ + gstmpeg4videoparse.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ @@ -26,6 +33,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES) $(libgstvideoparsersbad_la_LIBADD) \ -ldl \ -:LIBFILTER_STATIC gstbaseparse-@GST_MAJORMINOR@ \ + gstcodecparsers-@GST_MAJORMINOR@ \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ > $@ diff --git a/gst/videoparsers/Makefile.in b/gst/videoparsers/Makefile.in index 67ec255..6899d65 100644 --- a/gst/videoparsers/Makefile.in +++ b/gst/videoparsers/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,23 +101,31 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = -libgstvideoparsersbad_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +libgstvideoparsersbad_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-$(GST_MAJORMINOR).la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstvideoparsersbad_la_OBJECTS = \ libgstvideoparsersbad_la-plugin.lo \ libgstvideoparsersbad_la-h263parse.lo \ libgstvideoparsersbad_la-gsth263parse.lo \ - libgstvideoparsersbad_la-gsth264parse.lo \ - libgstvideoparsersbad_la-h264parse.lo \ libgstvideoparsersbad_la-gstdiracparse.lo \ - libgstvideoparsersbad_la-dirac_parse.lo + libgstvideoparsersbad_la-dirac_parse.lo \ + libgstvideoparsersbad_la-gsth264parse.lo \ + libgstvideoparsersbad_la-gstmpegvideoparse.lo \ + libgstvideoparsersbad_la-gstmpeg4videoparse.lo libgstvideoparsersbad_la_OBJECTS = \ $(am_libgstvideoparsersbad_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideoparsersbad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -132,21 +141,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideoparsersbad_la_SOURCES) DIST_SOURCES = $(libgstvideoparsersbad_la_SOURCES) @@ -158,7 +167,6 @@ 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@ @@ -176,7 +184,6 @@ 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@ @@ -211,6 +218,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -250,6 +258,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -267,6 +276,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -275,13 +285,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -306,13 +319,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -360,6 +374,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -391,8 +406,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -416,6 +435,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -440,10 +461,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -455,6 +480,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -479,6 +508,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -514,7 +544,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -538,20 +567,26 @@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstvideoparsersbad.la libgstvideoparsersbad_la_SOURCES = plugin.c \ h263parse.c gsth263parse.c \ - gsth264parse.c h264parse.c \ - gstdiracparse.c dirac_parse.c + gstdiracparse.c dirac_parse.c \ + gsth264parse.c gstmpegvideoparse.c \ + gstmpeg4videoparse.c libgstvideoparsersbad_la_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstvideoparsersbad_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-$(GST_MAJORMINOR).la \ + $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_MAJORMINOR) -lgstvideo-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) $(GST_LIBS) libgstvideoparsersbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstvideoparsersbad_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gsth263parse.h h263parse.h \ - gsth264parse.h h264parse.h \ - gstdiracparse.h dirac_parse.h + gstdiracparse.h dirac_parse.h \ + gsth264parse.h gstmpegvideoparse.h \ + gstmpeg4videoparse.h all: all-am @@ -618,7 +653,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideoparsersbad.la: $(libgstvideoparsersbad_la_OBJECTS) $(libgstvideoparsersbad_la_DEPENDENCIES) +libgstvideoparsersbad.la: $(libgstvideoparsersbad_la_OBJECTS) $(libgstvideoparsersbad_la_DEPENDENCIES) $(EXTRA_libgstvideoparsersbad_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideoparsersbad_la_LINK) -rpath $(plugindir) $(libgstvideoparsersbad_la_OBJECTS) $(libgstvideoparsersbad_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -631,89 +666,87 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-gstdiracparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-gsth263parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-gstmpeg4videoparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-gstmpegvideoparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-h263parse.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_la-h264parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoparsersbad_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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideoparsersbad_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-plugin.Tpo -c -o libgstvideoparsersbad_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-plugin.Tpo $(DEPDIR)/libgstvideoparsersbad_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstvideoparsersbad_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstvideoparsersbad_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 $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libgstvideoparsersbad_la-h263parse.lo: h263parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-h263parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-h263parse.Tpo -c -o libgstvideoparsersbad_la-h263parse.lo `test -f 'h263parse.c' || echo '$(srcdir)/'`h263parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-h263parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-h263parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h263parse.c' object='libgstvideoparsersbad_la-h263parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h263parse.c' object='libgstvideoparsersbad_la-h263parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-h263parse.lo `test -f 'h263parse.c' || echo '$(srcdir)/'`h263parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-h263parse.lo `test -f 'h263parse.c' || echo '$(srcdir)/'`h263parse.c libgstvideoparsersbad_la-gsth263parse.lo: gsth263parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gsth263parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gsth263parse.Tpo -c -o libgstvideoparsersbad_la-gsth263parse.lo `test -f 'gsth263parse.c' || echo '$(srcdir)/'`gsth263parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gsth263parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gsth263parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsth263parse.c' object='libgstvideoparsersbad_la-gsth263parse.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gsth263parse.lo `test -f 'gsth263parse.c' || echo '$(srcdir)/'`gsth263parse.c - -libgstvideoparsersbad_la-gsth264parse.lo: gsth264parse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gsth264parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Tpo -c -o libgstvideoparsersbad_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsth264parse.c' object='libgstvideoparsersbad_la-gsth264parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsth263parse.c' object='libgstvideoparsersbad_la-gsth263parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c - -libgstvideoparsersbad_la-h264parse.lo: h264parse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-h264parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-h264parse.Tpo -c -o libgstvideoparsersbad_la-h264parse.lo `test -f 'h264parse.c' || echo '$(srcdir)/'`h264parse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-h264parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-h264parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264parse.c' object='libgstvideoparsersbad_la-h264parse.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-h264parse.lo `test -f 'h264parse.c' || echo '$(srcdir)/'`h264parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gsth263parse.lo `test -f 'gsth263parse.c' || echo '$(srcdir)/'`gsth263parse.c libgstvideoparsersbad_la-gstdiracparse.lo: gstdiracparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gstdiracparse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gstdiracparse.Tpo -c -o libgstvideoparsersbad_la-gstdiracparse.lo `test -f 'gstdiracparse.c' || echo '$(srcdir)/'`gstdiracparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gstdiracparse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gstdiracparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiracparse.c' object='libgstvideoparsersbad_la-gstdiracparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdiracparse.c' object='libgstvideoparsersbad_la-gstdiracparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gstdiracparse.lo `test -f 'gstdiracparse.c' || echo '$(srcdir)/'`gstdiracparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gstdiracparse.lo `test -f 'gstdiracparse.c' || echo '$(srcdir)/'`gstdiracparse.c libgstvideoparsersbad_la-dirac_parse.lo: dirac_parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-dirac_parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-dirac_parse.Tpo -c -o libgstvideoparsersbad_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-dirac_parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-dirac_parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dirac_parse.c' object='libgstvideoparsersbad_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirac_parse.c' object='libgstvideoparsersbad_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c + +libgstvideoparsersbad_la-gsth264parse.lo: gsth264parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gsth264parse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Tpo -c -o libgstvideoparsersbad_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gsth264parse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsth264parse.c' object='libgstvideoparsersbad_la-gsth264parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gsth264parse.lo `test -f 'gsth264parse.c' || echo '$(srcdir)/'`gsth264parse.c + +libgstvideoparsersbad_la-gstmpegvideoparse.lo: gstmpegvideoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gstmpegvideoparse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gstmpegvideoparse.Tpo -c -o libgstvideoparsersbad_la-gstmpegvideoparse.lo `test -f 'gstmpegvideoparse.c' || echo '$(srcdir)/'`gstmpegvideoparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gstmpegvideoparse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gstmpegvideoparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegvideoparse.c' object='libgstvideoparsersbad_la-gstmpegvideoparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gstmpegvideoparse.lo `test -f 'gstmpegvideoparse.c' || echo '$(srcdir)/'`gstmpegvideoparse.c + +libgstvideoparsersbad_la-gstmpeg4videoparse.lo: gstmpeg4videoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -MT libgstvideoparsersbad_la-gstmpeg4videoparse.lo -MD -MP -MF $(DEPDIR)/libgstvideoparsersbad_la-gstmpeg4videoparse.Tpo -c -o libgstvideoparsersbad_la-gstmpeg4videoparse.lo `test -f 'gstmpeg4videoparse.c' || echo '$(srcdir)/'`gstmpeg4videoparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoparsersbad_la-gstmpeg4videoparse.Tpo $(DEPDIR)/libgstvideoparsersbad_la-gstmpeg4videoparse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpeg4videoparse.c' object='libgstvideoparsersbad_la-gstmpeg4videoparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoparsersbad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoparsersbad_la_CFLAGS) $(CFLAGS) -c -o libgstvideoparsersbad_la-gstmpeg4videoparse.lo `test -f 'gstmpeg4videoparse.c' || echo '$(srcdir)/'`gstmpeg4videoparse.c mostlyclean-libtool: -rm -f *.lo @@ -820,10 +853,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -934,6 +972,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES) $(libgstvideoparsersbad_la_LIBADD) \ -ldl \ -:LIBFILTER_STATIC gstbaseparse-@GST_MAJORMINOR@ \ + gstcodecparsers-@GST_MAJORMINOR@ \ -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ > $@ diff --git a/gst/videoparsers/dirac_parse.c b/gst/videoparsers/dirac_parse.c index 3a3193d..5b367c3 100644 --- a/gst/videoparsers/dirac_parse.c +++ b/gst/videoparsers/dirac_parse.c @@ -165,7 +165,7 @@ dirac_sequence_header_parse (DiracSequenceHeader * header, /* standard stuff */ -static DiracSequenceHeader schro_video_formats[] = { +static const DiracSequenceHeader schro_video_formats[] = { {0, 0, 0, 0, 0, /* custom */ 640, 480, SCHRO_CHROMA_420, @@ -323,7 +323,7 @@ struct _SchroFrameRate int denominator; }; -static SchroFrameRate schro_frame_rates[] = { +static const SchroFrameRate schro_frame_rates[] = { {0, 0}, {24000, 1001}, {24, 1}, diff --git a/gst/videoparsers/gstdiracparse.c b/gst/videoparsers/gstdiracparse.c index 6a7c115..aee281f 100644 --- a/gst/videoparsers/gstdiracparse.c +++ b/gst/videoparsers/gstdiracparse.c @@ -36,7 +36,9 @@ #include #include +#include #include "gstdiracparse.h" +#include "dirac_parse.h" /* prototypes */ @@ -52,6 +54,7 @@ static gboolean gst_dirac_parse_start (GstBaseParse * parse); static gboolean gst_dirac_parse_stop (GstBaseParse * parse); static gboolean gst_dirac_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_dirac_parse_get_sink_caps (GstBaseParse * parse); static gboolean gst_dirac_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize); static GstFlowReturn gst_dirac_parse_parse_frame (GstBaseParse * parse, @@ -76,14 +79,19 @@ static GstStaticPadTemplate gst_dirac_parse_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-dirac, parsed=(boolean)FALSE") + GST_STATIC_CAPS ("video/x-dirac") ); static GstStaticPadTemplate gst_dirac_parse_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-dirac, parsed=(boolean)TRUE") + GST_STATIC_CAPS ("video/x-dirac, parsed=(boolean)TRUE, " + "width=(int)[1,MAX], height=(int)[1,MAX], " + "framerate=(fraction)[0/1,MAX], " + "pixel-aspect-ratio=(fraction)[0/1,MAX], " + "interlaced=(boolean){TRUE,FALSE}, " + "profile=(int)[0,MAX], level=(int)[0,MAX]") ); /* class initialization */ @@ -96,10 +104,10 @@ gst_dirac_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_dirac_parse_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_dirac_parse_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_dirac_parse_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_dirac_parse_sink_template); gst_element_class_set_details_simple (element_class, "Dirac parser", "Codec/Parser/Video", "Parses Dirac streams", @@ -120,6 +128,8 @@ gst_dirac_parse_class_init (GstDiracParseClass * klass) base_parse_class->stop = GST_DEBUG_FUNCPTR (gst_dirac_parse_stop); base_parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_dirac_parse_set_sink_caps); + base_parse_class->get_sink_caps = + GST_DEBUG_FUNCPTR (gst_dirac_parse_get_sink_caps); base_parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_dirac_parse_check_valid_frame); base_parse_class->parse_frame = @@ -144,10 +154,7 @@ void gst_dirac_parse_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstDiracParse *diracparse; - g_return_if_fail (GST_IS_DIRAC_PARSE (object)); - diracparse = GST_DIRAC_PARSE (object); switch (property_id) { default: @@ -160,10 +167,7 @@ void gst_dirac_parse_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstDiracParse *diracparse; - g_return_if_fail (GST_IS_DIRAC_PARSE (object)); - diracparse = GST_DIRAC_PARSE (object); switch (property_id) { default: @@ -175,10 +179,7 @@ gst_dirac_parse_get_property (GObject * object, guint property_id, void gst_dirac_parse_dispose (GObject * object) { - GstDiracParse *diracparse; - g_return_if_fail (GST_IS_DIRAC_PARSE (object)); - diracparse = GST_DIRAC_PARSE (object); /* clean up as possible. may be called multiple times */ @@ -188,10 +189,7 @@ gst_dirac_parse_dispose (GObject * object) void gst_dirac_parse_finalize (GObject * object) { - GstDiracParse *diracparse; - g_return_if_fail (GST_IS_DIRAC_PARSE (object)); - diracparse = GST_DIRAC_PARSE (object); /* clean up object here */ @@ -202,6 +200,8 @@ gst_dirac_parse_finalize (GObject * object) static gboolean gst_dirac_parse_start (GstBaseParse * parse) { + gst_base_parse_set_min_frame_size (parse, 13); + return TRUE; } @@ -219,101 +219,132 @@ gst_dirac_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps) } static gboolean -gst_dirac_parse_frame_header (GstDiracParse * diracparse, - GstBuffer * buffer, guint * framesize) -{ - int next_header; - - next_header = GST_READ_UINT32_BE (GST_BUFFER_DATA (buffer) + 5); - - *framesize = next_header; - return TRUE; -} - -static gboolean gst_dirac_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize) { GstByteReader reader = GST_BYTE_READER_INIT_FROM_BUFFER (frame->buffer); - GstDiracParse *diracparse = GST_DIRAC_PARSE (parse); int off; guint32 next_header; - gboolean lost_sync; - gboolean draining; + guint8 *data; + int size; + gboolean have_picture = FALSE; + int offset; - if (G_UNLIKELY (GST_BUFFER_SIZE (frame->buffer) < 13)) + data = GST_BUFFER_DATA (frame->buffer); + size = GST_BUFFER_SIZE (frame->buffer); + + if (G_UNLIKELY (size < 13)) return FALSE; - off = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, - 0x42424344, 0, GST_BUFFER_SIZE (frame->buffer)); + GST_DEBUG ("%d: %02x %02x %02x %02x", size, data[0], data[1], data[2], + data[3]); - if (off < 0) { - *skipsize = GST_BUFFER_SIZE (frame->buffer) - 3; - return FALSE; - } + if (GST_READ_UINT32_BE (data) != 0x42424344) { + off = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, + 0x42424344, 0, GST_BUFFER_SIZE (frame->buffer)); - GST_LOG_OBJECT (parse, "possible sync at buffer offset %d", off); + if (off < 0) { + *skipsize = GST_BUFFER_SIZE (frame->buffer) - 3; + return FALSE; + } - if (off > 0) { - GST_ERROR ("skipping %d", off); + GST_LOG_OBJECT (parse, "possible sync at buffer offset %d", off); + + GST_DEBUG ("skipping %d", off); *skipsize = off; return FALSE; } - if (!gst_dirac_parse_frame_header (diracparse, frame->buffer, framesize)) { - GST_ERROR ("bad header"); - *skipsize = 3; - return FALSE; - } + /* have sync, parse chunks */ + + offset = 0; + while (!have_picture) { + GST_DEBUG ("offset %d:", offset); - GST_LOG ("framesize %d", *framesize); + if (offset + 13 >= size) { + *framesize = offset + 13; + return FALSE; + } - lost_sync = GST_BASE_PARSE_LOST_SYNC (frame); - draining = GST_BASE_PARSE_DRAINING (frame); + GST_DEBUG ("chunk type %02x", data[offset + 4]); - if (lost_sync && !draining) { - guint32 next_sync_word = 0; + if (GST_READ_UINT32_BE (data + offset) != 0x42424344) { + GST_DEBUG ("bad header"); + *skipsize = 3; + return FALSE; + } - next_header = GST_READ_UINT32_BE (GST_BUFFER_DATA (frame->buffer) + 5); - GST_LOG ("next header %d", next_header); + next_header = GST_READ_UINT32_BE (data + offset + 5); + GST_DEBUG ("next_header %d", next_header); + if (next_header == 0) + next_header = 13; - if (!gst_byte_reader_skip (&reader, next_header) || - !gst_byte_reader_get_uint32_be (&reader, &next_sync_word)) { - gst_base_parse_set_min_frame_size (parse, next_header + 4); - *skipsize = 0; + if (SCHRO_PARSE_CODE_IS_PICTURE (data[offset + 4])) { + have_picture = TRUE; + } + + offset += next_header; + if (offset >= size) { + *framesize = offset; return FALSE; - } else { - if (next_sync_word != 0x42424344) { - *skipsize = 3; - return FALSE; - } else { - gst_base_parse_set_min_frame_size (parse, next_header); - - } } } + *framesize = offset; + GST_DEBUG ("framesize %d", *framesize); + return TRUE; } static GstFlowReturn gst_dirac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { - //GstDiracParse * diracparse = GST_DIRAC_PARSE (parse); + GstDiracParse *diracparse = GST_DIRAC_PARSE (parse); + guint8 *data; + int size; /* Called when processing incoming buffers. Function should parse a checked frame. */ /* MUST implement */ - if (GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (parse)) == NULL) { - GstCaps *caps = gst_caps_new_simple ("video/x-dirac", NULL); - - gst_buffer_set_caps (frame->buffer, caps); - gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); - gst_caps_unref (caps); - + data = GST_BUFFER_DATA (frame->buffer); + size = GST_BUFFER_SIZE (frame->buffer); + + //GST_ERROR("got here %d", size); + + if (data[4] == SCHRO_PARSE_CODE_SEQUENCE_HEADER) { + GstCaps *caps; + DiracSequenceHeader sequence_header; + int ret; + + ret = dirac_sequence_header_parse (&sequence_header, data + 13, size - 13); + if (ret) { + memcpy (&diracparse->sequence_header, &sequence_header, + sizeof (sequence_header)); + caps = gst_caps_new_simple ("video/x-dirac", + "width", G_TYPE_INT, sequence_header.width, + "height", G_TYPE_INT, sequence_header.height, + "framerate", GST_TYPE_FRACTION, + sequence_header.frame_rate_numerator, + sequence_header.frame_rate_denominator, + "pixel-aspect-ratio", GST_TYPE_FRACTION, + sequence_header.aspect_ratio_numerator, + sequence_header.aspect_ratio_denominator, + "interlaced", G_TYPE_BOOLEAN, sequence_header.interlaced, + "profile", G_TYPE_INT, sequence_header.profile, + "level", G_TYPE_INT, sequence_header.level, NULL); + gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); + gst_caps_unref (caps); + + gst_base_parse_set_frame_rate (parse, + sequence_header.frame_rate_numerator, + sequence_header.frame_rate_denominator, 0, 0); + } } + gst_buffer_set_caps (frame->buffer, + GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (parse))); + gst_base_parse_set_min_frame_size (parse, 13); return GST_FLOW_OK; @@ -350,3 +381,35 @@ gst_dirac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) return GST_FLOW_OK; } + +static GstCaps * +gst_dirac_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/videoparsers/gstdiracparse.h b/gst/videoparsers/gstdiracparse.h index abf3821..7691c57 100644 --- a/gst/videoparsers/gstdiracparse.h +++ b/gst/videoparsers/gstdiracparse.h @@ -22,6 +22,7 @@ #include #include +#include "dirac_parse.h" G_BEGIN_DECLS @@ -38,6 +39,9 @@ struct _GstDiracParse { GstBaseParse base_diracparse; + DiracSequenceHeader sequence_header; + + guint32 frame_number; }; struct _GstDiracParseClass diff --git a/gst/videoparsers/gsth263parse.c b/gst/videoparsers/gsth263parse.c index d77a9c7..85e94d8 100644 --- a/gst/videoparsers/gsth263parse.c +++ b/gst/videoparsers/gsth263parse.c @@ -39,14 +39,13 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-h263, variant = (string) itu, " - "parsed = (boolean) true") + "parsed = (boolean) true, framerate=(fraction)[0/1,MAX]") ); static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-h263, variant = (string) itu, " - "parsed = (boolean) false") + GST_STATIC_CAPS ("video/x-h263, variant = (string) itu") ); GST_BOILERPLATE (GstH263Parse, gst_h263_parse, GstElement, GST_TYPE_BASE_PARSE); @@ -59,16 +58,17 @@ static gboolean gst_h263_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize); static GstFlowReturn gst_h263_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); +static GstCaps *gst_h263_parse_get_sink_caps (GstBaseParse * parse); static void gst_h263_parse_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, + &srctemplate); + gst_element_class_add_static_pad_template (gstelement_class, + &sinktemplate); gst_element_class_set_details_simple (gstelement_class, "H.263 parser", "Codec/Parser/Video", "Parses H.263 streams", @@ -90,6 +90,7 @@ gst_h263_parse_class_init (GstH263ParseClass * klass) parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_h263_parse_check_valid_frame); parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_h263_parse_parse_frame); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_h263_parse_get_sink_caps); } static void @@ -102,7 +103,7 @@ gst_h263_parse_start (GstBaseParse * parse) { GstH263Parse *h263parse = GST_H263_PARSE (parse); - GST_DEBUG ("Start"); + GST_DEBUG_OBJECT (h263parse, "start"); h263parse->bitrate = 0; h263parse->profile = -1; @@ -110,7 +111,7 @@ gst_h263_parse_start (GstBaseParse * parse) h263parse->state = PARSING; - gst_base_parse_set_min_frame_size (parse, 512); + gst_base_parse_set_min_frame_size (parse, 4); return TRUE; } @@ -118,7 +119,7 @@ gst_h263_parse_start (GstBaseParse * parse) static gboolean gst_h263_parse_stop (GstBaseParse * parse) { - GST_DEBUG ("Stop"); + GST_DEBUG_OBJECT (parse, "stop"); return TRUE; } @@ -139,7 +140,7 @@ gst_h263_parse_sink_event (GstBaseParse * parse, GstEvent * event) gst_event_parse_tag (event, &taglist); if (gst_tag_list_get_uint (taglist, GST_TAG_BITRATE, &h263parse->bitrate)) - GST_DEBUG ("Got bitrate tag: %u", h263parse->bitrate); + GST_DEBUG_OBJECT (h263parse, "got bitrate tag: %u", h263parse->bitrate); break; } @@ -201,7 +202,7 @@ gst_h263_parse_set_src_caps (GstH263Parse * h263parse, if (sink_caps && (st = gst_caps_get_structure (sink_caps, 0)) && gst_structure_get_fraction (st, "framerate", &fr_num, &fr_denom)) { /* Got it in caps - nothing more to do */ - GST_DEBUG ("Sink caps override framerate from headers"); + GST_DEBUG_OBJECT (h263parse, "sink caps override framerate from headers"); } else { /* Caps didn't have the framerate - get it from params */ gst_h263_parse_get_framerate (params, &fr_num, &fr_denom); @@ -209,6 +210,10 @@ gst_h263_parse_set_src_caps (GstH263Parse * h263parse, gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, fr_num, fr_denom, NULL); + if (params->width && params->height) + gst_caps_set_simple (caps, "width", G_TYPE_INT, params->width, + "height", G_TYPE_INT, params->height, NULL); + if (h263parse->state == GOT_HEADER) { gst_caps_set_simple (caps, "annex-d", G_TYPE_BOOLEAN, (params->features & H263_OPTION_UMV_MODE), @@ -304,13 +309,14 @@ gst_h263_parse_check_valid_frame (GstBaseParse * parse, /* XXX: After getting a keyframe, should we adjust min_frame_size to * something smaller so we don't end up collecting too many non-keyframes? */ - GST_DEBUG ("Found a frame of size %d at pos %d", *framesize, *skipsize); + GST_DEBUG_OBJECT (h263parse, "found a frame of size %d at pos %d", + *framesize, *skipsize); return TRUE; more: - /* Ask for 1024 bytes more - this is an arbitrary choice */ - gst_base_parse_set_min_frame_size (parse, GST_BUFFER_SIZE (buffer) + 1024); + /* ask for best next available */ + *framesize = G_MAXUINT; *skipsize = psc_pos; @@ -343,8 +349,16 @@ gst_h263_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) /* h263parse->state is now GOT_HEADER */ +#ifdef GST_H263PARSE_MODIFICATION /* do not set caps in every frame */ + if (buffer != NULL && GST_BUFFER_CAPS (buffer) == NULL) { + GST_WARNING_OBJECT (h263parse, "buffer caps is null. gst_buffer_set_caps from src_caps"); + gst_buffer_set_caps (buffer, + GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (GST_BASE_PARSE (h263parse)))); + } +#else gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (GST_BASE_PARSE (h263parse)))); +#endif if (gst_h263_parse_is_delta_unit (¶ms)) GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); @@ -355,3 +369,35 @@ out: return res; } + +static GstCaps * +gst_h263_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index 8b996fe..f263767 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -1,7 +1,10 @@ /* GStreamer H.264 Parser - * Copyright (C) <2010> Mark Nauwelaerts - * Copyright (C) <2010> Collabora Multimedia + * Copyright (C) <2010> Collabora ltd * Copyright (C) <2010> Nokia Corporation + * Copyright (C) <2011> Intel Corporation + * + * Copyright (C) <2010> Mark Nauwelaerts + * Copyright (C) <2011> Thibault Saunier * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -26,6 +29,7 @@ #include #include #include +#include #include "gsth264parse.h" #include @@ -33,13 +37,14 @@ GST_DEBUG_CATEGORY (h264_parse_debug); #define GST_CAT_DEFAULT h264_parse_debug -#define DEFAULT_SPLIT_PACKETIZED FALSE +/* Modification: only packetized format(3gpp) need to be set passthrough */ +#define CHECK_PACKETIZED_FOR_PASSTHROUGH + #define DEFAULT_CONFIG_INTERVAL (0) enum { PROP_0, - PROP_SPLIT_PACKETIZED, PROP_CONFIG_INTERVAL, PROP_LAST }; @@ -61,14 +66,17 @@ enum static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-h264, parsed = (boolean) false")); + GST_STATIC_CAPS ("video/x-h264")); static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-h264, parsed = (boolean) true")); + GST_STATIC_CAPS ("video/x-h264, parsed = (boolean) true, " + "stream-format=(string) { avc, byte-stream }, " + "alignment=(string) { au, nal }")); -GST_BOILERPLATE (GstH264Parse, gst_h264_parse, GstElement, GST_TYPE_BASE_PARSE); +GST_BOILERPLATE (GstH264Parse, gst_h264_parse, GstBaseParse, + GST_TYPE_BASE_PARSE); static void gst_h264_parse_finalize (GObject * object); @@ -87,20 +95,22 @@ static void gst_h264_parse_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static gboolean gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_h264_parse_get_caps (GstBaseParse * parse); static GstFlowReturn gst_h264_parse_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_h264_parse_event (GstBaseParse * parse, GstEvent * event); +static gboolean gst_h264_parse_src_event (GstBaseParse * parse, + GstEvent * event); static void gst_h264_parse_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, &srctemplate); + gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate); gst_element_class_set_details_simple (gstelement_class, "H.264 parser", - "Codec/Parser/Video", + "Codec/Parser/Converter/Video", "Parses H.264 streams", "Mark Nauwelaerts "); @@ -117,10 +127,6 @@ gst_h264_parse_class_init (GstH264ParseClass * klass) gobject_class->set_property = gst_h264_parse_set_property; gobject_class->get_property = gst_h264_parse_get_property; - g_object_class_install_property (gobject_class, PROP_SPLIT_PACKETIZED, - g_param_spec_boolean ("split-packetized", "Split packetized", - "Split NAL units of packetized streams", DEFAULT_SPLIT_PACKETIZED, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CONFIG_INTERVAL, g_param_spec_uint ("config-interval", "SPS PPS Send Interval", @@ -138,6 +144,9 @@ gst_h264_parse_class_init (GstH264ParseClass * klass) parse_class->pre_push_frame = GST_DEBUG_FUNCPTR (gst_h264_parse_pre_push_frame); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_h264_parse_set_caps); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_h264_parse_get_caps); + parse_class->event = GST_DEBUG_FUNCPTR (gst_h264_parse_event); + parse_class->src_event = GST_DEBUG_FUNCPTR (gst_h264_parse_src_event); } static void @@ -168,14 +177,22 @@ gst_h264_parse_finalize (GObject * object) static void gst_h264_parse_reset_frame (GstH264Parse * h264parse) { + GST_DEBUG_OBJECT (h264parse, "reset frame"); + /* done parsing; reset state */ - h264parse->last_nal_pos = 0; - h264parse->next_sc_pos = 0; + h264parse->nalu.valid = FALSE; + h264parse->nalu.offset = 0; + h264parse->nalu.sc_offset = 0; + h264parse->nalu.size = 0; + h264parse->current_off = 0; + h264parse->picture_start = FALSE; h264parse->update_caps = FALSE; h264parse->idr_pos = -1; + h264parse->sei_pos = -1; h264parse->keyframe = FALSE; h264parse->frame_start = FALSE; + gst_adapter_clear (h264parse->frame_out); } static void @@ -185,6 +202,11 @@ gst_h264_parse_reset (GstH264Parse * h264parse) h264parse->height = 0; h264parse->fps_num = 0; h264parse->fps_den = 0; + h264parse->aspect_ratio_idc = 0; + h264parse->sar_width = 0; + h264parse->sar_height = 0; + h264parse->upstream_par_n = -1; + h264parse->upstream_par_d = -1; gst_buffer_replace (&h264parse->codec_data, NULL); h264parse->nal_length_size = 4; h264parse->packetized = FALSE; @@ -195,6 +217,13 @@ gst_h264_parse_reset (GstH264Parse * h264parse) h264parse->last_report = GST_CLOCK_TIME_NONE; h264parse->push_codec = FALSE; + h264parse->dts = GST_CLOCK_TIME_NONE; + h264parse->ts_trn_nb = GST_CLOCK_TIME_NONE; + h264parse->do_ts = TRUE; + + h264parse->pending_key_unit_ts = GST_CLOCK_TIME_NONE; + h264parse->force_key_unit_event = NULL; + gst_h264_parse_reset_frame (h264parse); } @@ -203,12 +232,18 @@ gst_h264_parse_start (GstBaseParse * parse) { GstH264Parse *h264parse = GST_H264_PARSE (parse); - GST_DEBUG ("Start"); + GST_DEBUG_OBJECT (parse, "start"); gst_h264_parse_reset (h264parse); - gst_h264_params_create (&h264parse->params, GST_ELEMENT (h264parse)); + h264parse->nalparser = gst_h264_nal_parser_new (); + + h264parse->dts = GST_CLOCK_TIME_NONE; + h264parse->ts_trn_nb = GST_CLOCK_TIME_NONE; + h264parse->sei_pic_struct_pres_flag = FALSE; + h264parse->sei_pic_struct = 0; + h264parse->field_pic_flag = 0; - gst_base_parse_set_min_frame_size (parse, 512); + gst_base_parse_set_min_frame_size (parse, 6); return TRUE; } @@ -216,13 +251,18 @@ gst_h264_parse_start (GstBaseParse * parse) static gboolean gst_h264_parse_stop (GstBaseParse * parse) { + guint i; GstH264Parse *h264parse = GST_H264_PARSE (parse); - GST_DEBUG ("Stop"); + GST_DEBUG_OBJECT (parse, "stop"); gst_h264_parse_reset (h264parse); - gst_h264_params_free (h264parse->params); - h264parse->params = NULL; + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) + gst_buffer_replace (&h264parse->sps_nals[i], NULL); + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) + gst_buffer_replace (&h264parse->pps_nals[i], NULL); + + gst_h264_nal_parser_free (h264parse->nalparser); return TRUE; } @@ -251,44 +291,80 @@ gst_h264_parse_get_string (GstH264Parse * parse, gboolean format, gint code) } } -/* check downstream caps to configure format and alignment */ static void -gst_h264_parse_negotiate (GstH264Parse * h264parse) +gst_h264_parse_format_from_caps (GstCaps * caps, guint * format, guint * align) { - GstCaps *caps; - guint format = GST_H264_PARSE_FORMAT_NONE; - guint align = GST_H264_PARSE_ALIGN_NONE; + g_return_if_fail (gst_caps_is_fixed (caps)); - caps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (h264parse)); - GST_DEBUG_OBJECT (h264parse, "allowed caps: %" GST_PTR_FORMAT, caps); + GST_DEBUG ("parsing caps: %" GST_PTR_FORMAT, caps); + + if (format) + *format = GST_H264_PARSE_FORMAT_NONE; + + if (align) + *align = GST_H264_PARSE_ALIGN_NONE; if (caps && gst_caps_get_size (caps) > 0) { GstStructure *s = gst_caps_get_structure (caps, 0); const gchar *str = NULL; - if ((str = gst_structure_get_string (s, "stream-format"))) { - if (strcmp (str, "avc") == 0) { - format = GST_H264_PARSE_FORMAT_AVC; - } else if (strcmp (str, "byte-stream") == 0) { - format = GST_H264_PARSE_FORMAT_BYTE; - } else { - GST_DEBUG_OBJECT (h264parse, "unknown stream-format: %s", str); + if (format) { + if ((str = gst_structure_get_string (s, "stream-format"))) { + if (strcmp (str, "avc") == 0) + *format = GST_H264_PARSE_FORMAT_AVC; + else if (strcmp (str, "byte-stream") == 0) + *format = GST_H264_PARSE_FORMAT_BYTE; } } - if ((str = gst_structure_get_string (s, "alignment"))) { - if (strcmp (str, "au") == 0) { - align = GST_H264_PARSE_ALIGN_AU; - } else if (strcmp (str, "nal") == 0) { - align = GST_H264_PARSE_ALIGN_NAL; - } else { - GST_DEBUG_OBJECT (h264parse, "unknown alignment: %s", str); + if (align) { + if ((str = gst_structure_get_string (s, "alignment"))) { + if (strcmp (str, "au") == 0) + *align = GST_H264_PARSE_ALIGN_AU; + else if (strcmp (str, "nal") == 0) + *align = GST_H264_PARSE_ALIGN_NAL; } } } +} - if (caps) +/* check downstream caps to configure format and alignment */ +static void +gst_h264_parse_negotiate (GstH264Parse * h264parse, GstCaps * in_caps) +{ + GstCaps *caps; + guint format = GST_H264_PARSE_FORMAT_NONE; + guint align = GST_H264_PARSE_ALIGN_NONE; + + g_return_if_fail ((in_caps == NULL) || gst_caps_is_fixed (in_caps)); + + caps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (h264parse)); + GST_DEBUG_OBJECT (h264parse, "allowed caps: %" GST_PTR_FORMAT, caps); + + /* concentrate on leading structure, since decodebin2 parser + * capsfilter always includes parser template caps */ + if (caps) { + caps = gst_caps_make_writable (caps); + gst_caps_truncate (caps); + GST_DEBUG_OBJECT (h264parse, "negotiating with caps: %" GST_PTR_FORMAT, + caps); + } + + if (in_caps && caps) { + if (gst_caps_can_intersect (in_caps, caps)) { + GST_DEBUG_OBJECT (h264parse, "downstream accepts upstream caps"); + gst_h264_parse_format_from_caps (in_caps, &format, &align); + gst_caps_unref (caps); + caps = NULL; + } + } + + if (caps) { + /* fixate to avoid ambiguity with lists when parsing */ + gst_pad_fixate_caps (GST_BASE_PARSE_SRC_PAD (h264parse), caps); + gst_h264_parse_format_from_caps (caps, &format, &align); gst_caps_unref (caps); + } /* default */ if (!format) @@ -309,13 +385,18 @@ gst_h264_parse_wrap_nal (GstH264Parse * h264parse, guint format, guint8 * data, guint size) { GstBuffer *buf; - const guint nl = h264parse->nal_length_size; + guint nl = h264parse->nal_length_size; + + GST_DEBUG_OBJECT (h264parse, "nal length %d", size); buf = gst_buffer_new_and_alloc (size + nl + 4); if (format == GST_H264_PARSE_FORMAT_AVC) { GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl)); } else { - g_assert (nl == 4); + /* HACK: nl should always be 4 here, otherwise this won't work. + * There are legit cases where nl in avc stream is 2, but byte-stream + * SC is still always 4 bytes. */ + nl = 4; GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), 1); } @@ -325,92 +406,228 @@ gst_h264_parse_wrap_nal (GstH264Parse * h264parse, guint format, guint8 * data, return buf; } +static void +gst_h264_parser_store_nal (GstH264Parse * h264parse, guint id, + GstH264NalUnitType naltype, GstH264NalUnit * nalu) +{ + GstBuffer *buf, **store; + guint size = nalu->size, store_size; + + if (naltype == GST_H264_NAL_SPS) { + store_size = GST_H264_MAX_SPS_COUNT; + store = h264parse->sps_nals; + GST_DEBUG_OBJECT (h264parse, "storing sps %u", id); + } else if (naltype == GST_H264_NAL_PPS) { + store_size = GST_H264_MAX_PPS_COUNT; + store = h264parse->pps_nals; + GST_DEBUG_OBJECT (h264parse, "storing pps %u", id); + } else + return; + + if (id >= store_size) { + GST_DEBUG_OBJECT (h264parse, "unable to store nal, id out-of-range %d", id); + return; + } + + buf = gst_buffer_new_and_alloc (size); + memcpy (GST_BUFFER_DATA (buf), nalu->data + nalu->offset, size); + + if (store[id]) + gst_buffer_unref (store[id]); + + store[id] = buf; +} + /* SPS/PPS/IDR considered key, all others DELTA; * so downstream waiting for keyframe can pick up at SPS/PPS/IDR */ #define NAL_TYPE_IS_KEY(nt) (((nt) == 5) || ((nt) == 7) || ((nt) == 8)) /* caller guarantees 2 bytes of nal payload */ static void -gst_h264_parse_process_nal (GstH264Parse * h264parse, guint8 * data, - gint sc_pos, gint nal_pos, guint nal_size) +gst_h264_parse_process_nal (GstH264Parse * h264parse, GstH264NalUnit * nalu) { guint nal_type; - - g_return_if_fail (nal_size >= 2); - g_return_if_fail (nal_pos - sc_pos > 0 && nal_pos - sc_pos <= 4); - - /* lower layer collects params */ - gst_h264_params_parse_nal (h264parse->params, data + nal_pos, nal_size); + GstH264PPS pps; + GstH264SPS sps; + GstH264SEIMessage sei; + GstH264NalParser *nalparser = h264parse->nalparser; + + /* nothing to do for broken input */ + if (G_UNLIKELY (nalu->size < 2)) { + GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size); + return; + } /* we have a peek as well */ - nal_type = data[nal_pos] & 0x1f; + nal_type = nalu->type; h264parse->keyframe |= NAL_TYPE_IS_KEY (nal_type); + GST_DEBUG_OBJECT (h264parse, "processing nal of type %u, size %u", + nal_type, nalu->size); + switch (nal_type) { - case NAL_SPS: - case NAL_PPS: + case GST_H264_NAL_SPS: + gst_h264_parser_parse_sps (nalparser, nalu, &sps, TRUE); + + GST_DEBUG_OBJECT (h264parse, "triggering src caps check"); + h264parse->update_caps = TRUE; + /* found in stream, no need to forcibly push at start */ + h264parse->push_codec = FALSE; + + gst_h264_parser_store_nal (h264parse, sps.id, nal_type, nalu); + break; + case GST_H264_NAL_PPS: + gst_h264_parser_parse_pps (nalparser, nalu, &pps); /* parameters might have changed, force caps check */ GST_DEBUG_OBJECT (h264parse, "triggering src caps check"); h264parse->update_caps = TRUE; /* found in stream, no need to forcibly push at start */ h264parse->push_codec = FALSE; + + gst_h264_parser_store_nal (h264parse, pps.id, nal_type, nalu); break; - case NAL_SLICE: - case NAL_SLICE_DPA: - case NAL_SLICE_DPB: - case NAL_SLICE_DPC: - /* real frame data */ - h264parse->frame_start |= (h264parse->params->first_mb_in_slice == 0); + case GST_H264_NAL_SEI: + gst_h264_parser_parse_sei (nalparser, nalu, &sei); + switch (sei.payloadType) { + case GST_H264_SEI_PIC_TIMING: + h264parse->sei_pic_struct_pres_flag = + sei.pic_timing.pic_struct_present_flag; + h264parse->sei_cpb_removal_delay = sei.pic_timing.cpb_removal_delay; + if (h264parse->sei_pic_struct_pres_flag) + h264parse->sei_pic_struct = sei.pic_timing.pic_struct; + break; + case GST_H264_SEI_BUF_PERIOD: + if (h264parse->ts_trn_nb == GST_CLOCK_TIME_NONE || + h264parse->dts == GST_CLOCK_TIME_NONE) + h264parse->ts_trn_nb = 0; + else + h264parse->ts_trn_nb = h264parse->dts; + + GST_LOG_OBJECT (h264parse, + "new buffering period; ts_trn_nb updated: %" GST_TIME_FORMAT, + GST_TIME_ARGS (h264parse->ts_trn_nb)); + break; + } + /* mark SEI pos */ + if (h264parse->sei_pos == -1) { + if (h264parse->format == GST_H264_PARSE_FORMAT_AVC) + h264parse->sei_pos = gst_adapter_available (h264parse->frame_out); + else + h264parse->sei_pos = nalu->sc_offset; + GST_DEBUG_OBJECT (h264parse, "marking SEI in frame at offset %d", + h264parse->sei_pos); + } + break; + + case GST_H264_NAL_SLICE: + case GST_H264_NAL_SLICE_DPA: + case GST_H264_NAL_SLICE_DPB: + case GST_H264_NAL_SLICE_DPC: + case GST_H264_NAL_SLICE_IDR: + /* don't need to parse the whole slice (header) here */ + if (*(nalu->data + nalu->offset + 1) & 0x80) { + /* means first_mb_in_slice == 0 */ + /* real frame data */ + GST_DEBUG_OBJECT (h264parse, "first_mb_in_slice = 0"); + h264parse->frame_start = TRUE; + } + GST_DEBUG_OBJECT (h264parse, "frame start: %i", h264parse->frame_start); +#ifndef GST_DISABLE_GST_DEBUG + { + GstH264SliceHdr slice; + GstH264ParserResult pres; + + pres = gst_h264_parser_parse_slice_hdr (nalparser, nalu, &slice, + FALSE, FALSE); + GST_DEBUG_OBJECT (h264parse, + "parse result %d, first MB: %u, slice type: %u", + pres, slice.first_mb_in_slice, slice.type); + } +#endif + if (G_LIKELY (nal_type != GST_H264_NAL_SLICE_IDR && + !h264parse->push_codec)) + break; /* if we need to sneak codec NALs into the stream, * this is a good place, so fake it as IDR * (which should be at start anyway) */ - if (G_LIKELY (!h264parse->push_codec)) - break; - /* fall-through */ - case NAL_SLICE_IDR: - /* real frame data */ - h264parse->frame_start |= (h264parse->params->first_mb_in_slice == 0); /* mark where config needs to go if interval expired */ /* mind replacement buffer if applicable */ - if (h264parse->format == GST_H264_PARSE_FORMAT_AVC) - h264parse->idr_pos = gst_adapter_available (h264parse->frame_out); - else - h264parse->idr_pos = sc_pos; - GST_DEBUG_OBJECT (h264parse, "marking IDR in frame at offset %d", - h264parse->idr_pos); + if (h264parse->idr_pos == -1) { + if (h264parse->format == GST_H264_PARSE_FORMAT_AVC) + h264parse->idr_pos = gst_adapter_available (h264parse->frame_out); + else + h264parse->idr_pos = nalu->sc_offset; + GST_DEBUG_OBJECT (h264parse, "marking IDR in frame at offset %d", + h264parse->idr_pos); + } + /* if SEI preceeds (faked) IDR, then we have to insert config there */ + if (h264parse->sei_pos >= 0 && h264parse->idr_pos > h264parse->sei_pos) { + h264parse->idr_pos = h264parse->sei_pos; + GST_DEBUG_OBJECT (h264parse, "moved IDR mark to SEI position %d", + h264parse->idr_pos); + } break; + default: + gst_h264_parser_parse_nal (nalparser, nalu); } /* if AVC output needed, collect properly prefixed nal in adapter, * and use that to replace outgoing buffer data later on */ if (h264parse->format == GST_H264_PARSE_FORMAT_AVC) { GstBuffer *buf; - - GST_LOG_OBJECT (h264parse, "collecting NAL in AVC frame"); - buf = gst_h264_parse_wrap_nal (h264parse, h264parse->format, - data + nal_pos, nal_size); - gst_adapter_push (h264parse->frame_out, buf); +#ifdef GST_H264PARSE_MODIFICATION + unsigned int length = 0; + gboolean isnalu = FALSE; + + if (nalu->offset + nalu->size >= 3) { + while (length < (nalu->offset + nalu->size - 3)) { + if (nalu->data[length] == 0x00 && + nalu->data[length+1] == 0x00 && + nalu->data[length+2] == 0x01) { + isnalu = TRUE; + h264parse->format = GST_H264_PARSE_FORMAT_BYTE; + GST_INFO_OBJECT(h264parse, "H264 format is NALU"); + break; + } else { + length++; + } + } + } + if (!isnalu) +#endif + { + GST_INFO_OBJECT (h264parse, "collecting NAL in AVC frame"); + buf = gst_h264_parse_wrap_nal (h264parse, h264parse->format, + nalu->data + nalu->offset, nalu->size); + gst_adapter_push (h264parse->frame_out, buf); + } } } /* caller guarantees at least 2 bytes of nal payload for each nal * returns TRUE if next_nal indicates that nal terminates an AU */ static inline gboolean -gst_h264_parse_collect_nal (GstH264Parse * h264parse, guint8 * nal, - guint8 * next_nal) +gst_h264_parse_collect_nal (GstH264Parse * h264parse, const guint8 * data, + guint size, GstH264NalUnit * nalu) { - gint nal_type; gboolean complete; + GstH264ParserResult parse_res; + GstH264NalUnitType nal_type = nalu->type; + GstH264NalUnit nnalu; + + GST_DEBUG_OBJECT (h264parse, "parsing collected nal"); + parse_res = gst_h264_parser_identify_nalu (h264parse->nalparser, data, + nalu->offset + nalu->size, size, &nnalu); - if (h264parse->align == GST_H264_PARSE_ALIGN_NAL) - return TRUE; + if (parse_res == GST_H264_PARSER_ERROR) + return FALSE; /* determine if AU complete */ - nal_type = nal[0] & 0x1f; GST_LOG_OBJECT (h264parse, "nal type: %d", nal_type); /* coded slice NAL starts a picture, * i.e. other types become aggregated in front of it */ - h264parse->picture_start |= (nal_type == 1 || nal_type == 2 || nal_type == 5); + h264parse->picture_start |= (nal_type == GST_H264_NAL_SLICE || + nal_type == GST_H264_NAL_SLICE_DPA || nal_type == GST_H264_NAL_SLICE_IDR); /* consider a coded slices (IDR or not) to start a picture, * (so ending the previous one) if first_mb_in_slice == 0 @@ -419,34 +636,26 @@ gst_h264_parse_collect_nal (GstH264Parse * h264parse, guint8 * nal, * but in practice it works in sane cases, needs not much parsing, * and also works with broken frame_num in NAL * (where spec-wise would fail) */ - nal_type = next_nal[0] & 0x1f; + nal_type = nnalu.type; + complete = h264parse->picture_start && (nal_type >= GST_H264_NAL_SEI && + nal_type <= GST_H264_NAL_AU_DELIMITER); + GST_LOG_OBJECT (h264parse, "next nal type: %d", nal_type); - complete = h264parse->picture_start && (nal_type >= 6 && nal_type <= 9); complete |= h264parse->picture_start && - (nal_type == 1 || nal_type == 2 || nal_type == 5) && + (nal_type == GST_H264_NAL_SLICE || + nal_type == GST_H264_NAL_SLICE_DPA || + nal_type == GST_H264_NAL_SLICE_IDR) && /* first_mb_in_slice == 0 considered start of frame */ - (next_nal[1] & 0x80); + (nnalu.data[nnalu.offset + 1] & 0x80); GST_LOG_OBJECT (h264parse, "au complete: %d", complete); return complete; } -/* finds next startcode == 00 00 01, along with a subsequent byte */ -static guint -gst_h264_parse_find_sc (GstBuffer * buffer, guint skip) -{ - GstByteReader br; - guint sc_pos = -1; - - gst_byte_reader_init_from_buffer (&br, buffer); - - /* NALU not empty, so we can at least expect 1 (even 2) bytes following sc */ - sc_pos = gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, - skip, gst_byte_reader_get_remaining (&br) - skip); - - return sc_pos; -} +/* FIXME move into baseparse, or anything equivalent; + * see https://bugzilla.gnome.org/show_bug.cgi?id=650093 */ +#define GST_BASE_PARSE_FRAME_FLAG_PARSING 0x10000 static gboolean gst_h264_parse_check_valid_frame (GstBaseParse * parse, @@ -454,10 +663,11 @@ gst_h264_parse_check_valid_frame (GstBaseParse * parse, { GstH264Parse *h264parse = GST_H264_PARSE (parse); GstBuffer *buffer = frame->buffer; - gint sc_pos, nal_pos, next_sc_pos, next_nal_pos; guint8 *data; - guint size; + guint size, current_off = 0; gboolean drain; + GstH264NalParser *nalparser = h264parse->nalparser; + GstH264NalUnit nalu; /* expect at least 3 bytes startcode == sc, and 2 bytes NALU payload */ if (G_UNLIKELY (GST_BUFFER_SIZE (buffer) < 5)) @@ -465,96 +675,179 @@ gst_h264_parse_check_valid_frame (GstBaseParse * parse, /* need to configure aggregation */ if (G_UNLIKELY (h264parse->format == GST_H264_PARSE_FORMAT_NONE)) - gst_h264_parse_negotiate (h264parse); + gst_h264_parse_negotiate (h264parse, NULL); + + /* avoid stale cached parsing state */ + if (!(frame->flags & GST_BASE_PARSE_FRAME_FLAG_PARSING)) { + GST_LOG_OBJECT (h264parse, "parsing new frame"); + gst_h264_parse_reset_frame (h264parse); + frame->flags |= GST_BASE_PARSE_FRAME_FLAG_PARSING; + } else { + GST_LOG_OBJECT (h264parse, "resuming frame parsing"); + } data = GST_BUFFER_DATA (buffer); size = GST_BUFFER_SIZE (buffer); - GST_LOG_OBJECT (h264parse, "last_nal_pos: %d, last_scan_pos %d", - h264parse->last_nal_pos, h264parse->next_sc_pos); + drain = FALSE; + nalu = h264parse->nalu; + current_off = h264parse->current_off; - nal_pos = h264parse->last_nal_pos; - next_sc_pos = h264parse->next_sc_pos; + g_assert (current_off < size); - if (!next_sc_pos) { - sc_pos = gst_h264_parse_find_sc (buffer, 0); + GST_DEBUG_OBJECT (h264parse, "last parse position %u", current_off); + while (TRUE) { + GstH264ParserResult pres; + + if (h264parse->packetized_chunked) + pres = + gst_h264_parser_identify_nalu_unchecked (nalparser, data, current_off, + size, &nalu); + else + pres = + gst_h264_parser_identify_nalu (nalparser, data, current_off, size, + &nalu); + + switch (pres) { + case GST_H264_PARSER_OK: + GST_DEBUG_OBJECT (h264parse, "complete nal found. " + "current offset: %u, Nal offset: %u, Nal Size: %u", + current_off, nalu.offset, nalu.size); + + GST_DEBUG_OBJECT (h264parse, "current off. %u", + nalu.offset + nalu.size); + + if (!h264parse->nalu.size && !h264parse->nalu.valid) + h264parse->nalu = nalu; + + /* need 2 bytes of next nal */ + if (!h264parse->packetized_chunked && + (nalu.offset + nalu.size + 4 + 2 > size)) { + if (GST_BASE_PARSE_DRAINING (parse)) { + drain = TRUE; + } else { + GST_DEBUG_OBJECT (h264parse, "need more bytes of next nal"); + current_off = nalu.sc_offset; + goto more; + } + } else if (h264parse->packetized_chunked) { + /* normal next nal based collection not possible, + * _chain will have to tell us whether this was last one for AU */ + drain = h264parse->packetized_last; + } + break; + case GST_H264_PARSER_BROKEN_LINK: + return FALSE; + case GST_H264_PARSER_ERROR: + current_off = size - 3; + goto parsing_error; + case GST_H264_PARSER_NO_NAL: + /* don't expect to have found any NAL so far */ + g_assert (h264parse->nalu.size == 0); + current_off = h264parse->nalu.sc_offset = size - 3; + goto more; + case GST_H264_PARSER_BROKEN_DATA: + GST_WARNING_OBJECT (h264parse, "input stream is corrupt; " + "it contains a NAL unit of length %d", nalu.size); + + /* broken nal at start -> arrange to skip it, + * otherwise have it terminate current au + * (and so it will be skipped on next frame round) */ + if (nalu.sc_offset == h264parse->nalu.sc_offset) { + *skipsize = nalu.offset; + + GST_DEBUG_OBJECT (h264parse, "skipping broken nal"); + goto invalid; + } else { + nalu.size = 0; + goto end; + } + case GST_H264_PARSER_NO_NAL_END: + GST_DEBUG_OBJECT (h264parse, "not a complete nal found at offset %u", + nalu.offset); + + current_off = nalu.sc_offset; + /* We keep the reference to this nal so we start over the parsing + * here */ + if (!h264parse->nalu.size && !h264parse->nalu.valid) + h264parse->nalu = nalu; + + if (GST_BASE_PARSE_DRAINING (parse)) { + drain = TRUE; + GST_DEBUG_OBJECT (h264parse, "draining NAL %u %u %u", size, + h264parse->nalu.offset, h264parse->nalu.size); + /* Can't parse the nalu */ + if (size - h264parse->nalu.offset < 2) { + *skipsize = nalu.offset; + goto invalid; + } - if (sc_pos == -1) { - /* SC not found, need more data */ - sc_pos = GST_BUFFER_SIZE (buffer) - 3; - goto more; + /* We parse it anyway */ + nalu.size = size - nalu.offset; + break; + } + goto more; } - nal_pos = sc_pos + 3; - next_sc_pos = nal_pos; - /* sc might have 2 or 3 0-bytes */ - if (sc_pos > 0 && data[sc_pos - 1] == 00) - sc_pos--; - GST_LOG_OBJECT (h264parse, "found sc at offset %d", sc_pos); - } else { - /* previous checks already arrange sc at start */ - sc_pos = 0; - } + current_off = nalu.offset + nalu.size; - drain = GST_BASE_PARSE_DRAINING (parse); - while (TRUE) { - gint prev_sc_pos; - - next_sc_pos = gst_h264_parse_find_sc (buffer, next_sc_pos); - if (next_sc_pos == -1) { - GST_LOG_OBJECT (h264parse, "no next sc"); - if (drain) { - /* FLUSH/EOS, it's okay if we can't find the next frame */ - next_sc_pos = size; - next_nal_pos = size; - } else { - next_sc_pos = size - 3; - goto more; - } - } else { - next_nal_pos = next_sc_pos + 3; - if (data[next_sc_pos - 1] == 00) - next_sc_pos--; - GST_LOG_OBJECT (h264parse, "found next sc at offset %d", next_sc_pos); - /* need at least 1 more byte of next NAL */ - if (!drain && (next_nal_pos == size - 1)) - goto more; + GST_DEBUG_OBJECT (h264parse, "%p complete nal found. Off: %u, Size: %u", + data, nalu.offset, nalu.size); + + gst_h264_parse_process_nal (h264parse, &nalu); + + /* simulate no next nal if none needed */ + drain = drain || (h264parse->align == GST_H264_PARSE_ALIGN_NAL); + + /* In packetized mode we know there's only on NALU in each input packet, + * but we may not have seen the whole AU already, possibly need more */ + if (h264parse->packetized_chunked) { + if (drain) + break; + /* next NALU expected at end of current data */ + current_off = size; + goto more; } - /* determine nal's sc position */ - prev_sc_pos = nal_pos - 3; - g_assert (prev_sc_pos >= 0); - if (prev_sc_pos > 0 && data[prev_sc_pos - 1] == 0) - prev_sc_pos--; - - /* already consume and gather info from NAL */ - gst_h264_parse_process_nal (h264parse, data, prev_sc_pos, nal_pos, - next_sc_pos - nal_pos); - if (next_nal_pos >= size - 1 || - gst_h264_parse_collect_nal (h264parse, data + nal_pos, - data + next_nal_pos)) + /* if no next nal, we know it's complete here */ + if (drain || gst_h264_parse_collect_nal (h264parse, data, size, &nalu)) break; - /* move along */ - next_sc_pos = nal_pos = next_nal_pos; + GST_DEBUG_OBJECT (h264parse, "Looking for more"); } - *skipsize = sc_pos; - *framesize = next_sc_pos - sc_pos; +end: + *skipsize = h264parse->nalu.sc_offset; + *framesize = nalu.offset + nalu.size - h264parse->nalu.sc_offset; + h264parse->current_off = current_off; return TRUE; +parsing_error: + GST_DEBUG_OBJECT (h264parse, "error parsing Nal Unit"); + more: - /* Ask for 1024 bytes more - this is an arbitrary choice */ - gst_base_parse_set_min_frame_size (parse, GST_BUFFER_SIZE (buffer) + 1024); + /* ask for best next available */ + *framesize = G_MAXUINT; + if (!h264parse->nalu.size) { + /* skip up to initial startcode */ + *skipsize = h264parse->nalu.sc_offset; + /* but mind some stuff will have been skipped */ + g_assert (current_off >= *skipsize); + current_off -= *skipsize; + h264parse->nalu.sc_offset = 0; + } else { + *skipsize = 0; + } - /* skip up to initial startcode */ - *skipsize = sc_pos; - /* resume scanning here next time */ - h264parse->last_nal_pos = nal_pos; - h264parse->next_sc_pos = next_sc_pos; + /* Restart parsing from here next time */ + h264parse->current_off = current_off; return FALSE; + +invalid: + gst_h264_parse_reset_frame (h264parse); + return FALSE; } /* byte together avc codec data based on collected pps and sps so far */ @@ -569,8 +862,8 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) /* only nal payload in stored nals */ - for (i = 0; i < MAX_SPS_COUNT; i++) { - if ((nal = h264parse->params->sps_nals[i])) { + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) { + if ((nal = h264parse->sps_nals[i])) { num_sps++; /* size bytes also count */ sps_size += GST_BUFFER_SIZE (nal) + 2; @@ -582,8 +875,8 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) } } } - for (i = 0; i < MAX_PPS_COUNT; i++) { - if ((nal = h264parse->params->pps_nals[i])) { + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) { + if ((nal = h264parse->pps_nals[i])) { num_pps++; /* size bytes also count */ pps_size += GST_BUFFER_SIZE (nal) + 2; @@ -603,12 +896,16 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) data[1] = profile_idc; /* profile_idc */ data[2] = profile_comp; /* profile_compability */ data[3] = level_idc; /* level_idc */ +#ifdef GST_H264PARSE_MODIFICATION + data[4] = 0xfc | ( h264parse->nal_length_size - 1); /* nal_length_size_minus1 */ +#else data[4] = 0xfc | (4 - 1); /* nal_length_size_minus1 */ +#endif data[5] = 0xe0 | num_sps; /* number of SPSs */ data += 6; - for (i = 0; i < MAX_SPS_COUNT; i++) { - if ((nal = h264parse->params->sps_nals[i])) { + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) { + if ((nal = h264parse->sps_nals[i])) { GST_WRITE_UINT16_BE (data, GST_BUFFER_SIZE (nal)); memcpy (data + 2, GST_BUFFER_DATA (nal), GST_BUFFER_SIZE (nal)); data += 2 + GST_BUFFER_SIZE (nal); @@ -617,8 +914,8 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) data[0] = num_pps; data++; - for (i = 0; i < MAX_PPS_COUNT; i++) { - if ((nal = h264parse->params->pps_nals[i])) { + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) { + if ((nal = h264parse->pps_nals[i])) { GST_WRITE_UINT16_BE (data, GST_BUFFER_SIZE (nal)); memcpy (data + 2, GST_BUFFER_DATA (nal), GST_BUFFER_SIZE (nal)); data += 2 + GST_BUFFER_SIZE (nal); @@ -629,10 +926,102 @@ gst_h264_parse_make_codec_data (GstH264Parse * h264parse) } static void -gst_h264_parse_update_src_caps (GstH264Parse * h264parse) +gst_h264_parse_get_par (GstH264Parse * h264parse, gint * num, gint * den) +{ + gint par_n, par_d; + + if (h264parse->upstream_par_n != -1 && h264parse->upstream_par_d != -1) { + *num = h264parse->upstream_par_n; + *den = h264parse->upstream_par_d; + return; + } + + par_n = par_d = 0; + switch (h264parse->aspect_ratio_idc) { + case 0: + par_n = par_d = 0; + break; + case 1: + par_n = 1; + par_d = 1; + break; + case 2: + par_n = 12; + par_d = 11; + break; + case 3: + par_n = 10; + par_d = 11; + break; + case 4: + par_n = 16; + par_d = 11; + break; + case 5: + par_n = 40; + par_d = 33; + break; + case 6: + par_n = 24; + par_d = 11; + break; + case 7: + par_n = 20; + par_d = 11; + break; + case 8: + par_n = 32; + par_d = 11; + break; + case 9: + par_n = 80; + par_d = 33; + break; + case 10: + par_n = 18; + par_d = 11; + break; + case 11: + par_n = 15; + par_d = 11; + break; + case 12: + par_n = 64; + par_d = 33; + break; + case 13: + par_n = 160; + par_d = 99; + break; + case 14: + par_n = 4; + par_d = 3; + break; + case 15: + par_n = 3; + par_d = 2; + break; + case 16: + par_n = 2; + par_d = 1; + break; + case 255: + par_n = h264parse->sar_width; + par_d = h264parse->sar_height; + break; + default: + par_n = par_d = 0; + } + + *num = par_n; + *den = par_d; +} + +static void +gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) { - GstH264ParamsSPS *sps; - GstCaps *caps = NULL, *sink_caps; + GstH264SPS *sps; + GstCaps *sink_caps; gboolean modified = FALSE; GstBuffer *buf = NULL; @@ -641,14 +1030,20 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse) else if (G_UNLIKELY (!h264parse->update_caps)) return; + /* if this is being called from the first _setcaps call, caps on the sinkpad + * aren't set yet and so they need to be passed as an argument */ + if (caps) + sink_caps = caps; + else + sink_caps = GST_PAD_CAPS (GST_BASE_PARSE_SINK_PAD (h264parse)); + /* carry over input caps as much as possible; override with our own stuff */ - sink_caps = GST_PAD_CAPS (GST_BASE_PARSE_SINK_PAD (h264parse)); if (sink_caps) gst_caps_ref (sink_caps); else sink_caps = gst_caps_new_simple ("video/x-h264", NULL); - sps = h264parse->params->sps; + sps = h264parse->nalparser->last_sps; GST_DEBUG_OBJECT (h264parse, "sps: %p", sps); /* only codec-data for nice-and-clean au aligned packetized avc format */ @@ -667,35 +1062,83 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse) } } + caps = NULL; if (G_UNLIKELY (!sps)) { caps = gst_caps_copy (sink_caps); - } else if (G_UNLIKELY (h264parse->width != sps->width || - h264parse->height != sps->height || h264parse->fps_num != sps->fps_num - || h264parse->fps_den != sps->fps_den || modified)) { - caps = gst_caps_copy (sink_caps); - /* sps should give this */ - gst_caps_set_simple (caps, "width", G_TYPE_INT, sps->width, - "height", G_TYPE_INT, sps->height, NULL); - h264parse->height = sps->height; - h264parse->width = sps->width; - /* but not necessarily or reliably this */ - if ((!h264parse->fps_num || !h264parse->fps_den) && - sps->fps_num > 0 && sps->fps_den > 0) { - gst_caps_set_simple (caps, "framerate", - GST_TYPE_FRACTION, sps->fps_num, sps->fps_den, NULL); - h264parse->fps_num = sps->fps_num; - h264parse->fps_den = sps->fps_den; - gst_base_parse_set_frame_rate (GST_BASE_PARSE (h264parse), - h264parse->fps_num, h264parse->fps_den, 0, 0); + } else { + if (G_UNLIKELY (h264parse->width != sps->width || + h264parse->height != sps->height)) { + GST_INFO_OBJECT (h264parse, "resolution changed %dx%d", + sps->width, sps->height); + h264parse->width = sps->width; + h264parse->height = sps->height; + modified = TRUE; + } + + /* 0/1 is set as the default in the codec parser */ + if (sps->vui_parameters.timing_info_present_flag && + !(sps->fps_num == 0 && sps->fps_den == 1)) { + if (G_UNLIKELY (h264parse->fps_num != sps->fps_num + || h264parse->fps_den != sps->fps_den)) { + GST_INFO_OBJECT (h264parse, "framerate changed %d/%d", + sps->fps_num, sps->fps_den); + h264parse->fps_num = sps->fps_num; + h264parse->fps_den = sps->fps_den; + gst_base_parse_set_frame_rate (GST_BASE_PARSE (h264parse), + h264parse->fps_num, h264parse->fps_den, 0, 0); + modified = TRUE; + } + } + + if (sps->vui_parameters.aspect_ratio_info_present_flag) { + if (G_UNLIKELY (h264parse->aspect_ratio_idc != + sps->vui_parameters.aspect_ratio_idc)) { + h264parse->aspect_ratio_idc = sps->vui_parameters.aspect_ratio_idc; + GST_INFO_OBJECT (h264parse, "aspect ratio idc changed %d", + h264parse->aspect_ratio_idc); + modified = TRUE; + } + + /* 255 means sar_width and sar_height present */ + if (G_UNLIKELY (sps->vui_parameters.aspect_ratio_idc == 255 && + (h264parse->sar_width != sps->vui_parameters.sar_width || + h264parse->sar_height != sps->vui_parameters.sar_height))) { + h264parse->sar_width = sps->vui_parameters.sar_width; + h264parse->sar_height = sps->vui_parameters.sar_height; + GST_INFO_OBJECT (h264parse, "aspect ratio SAR changed %d/%d", + h264parse->sar_width, h264parse->sar_height); + modified = TRUE; + } + } + + if (G_UNLIKELY (modified)) { + caps = gst_caps_copy (sink_caps); + /* sps should give this */ + gst_caps_set_simple (caps, "width", G_TYPE_INT, sps->width, + "height", G_TYPE_INT, sps->height, NULL); + /* but not necessarily or reliably this */ + if (h264parse->fps_num > 0 && h264parse->fps_den > 0) + gst_caps_set_simple (caps, "framerate", + GST_TYPE_FRACTION, h264parse->fps_num, h264parse->fps_den, NULL); } } if (caps) { + gint par_n, par_d; + gst_caps_set_simple (caps, "parsed", G_TYPE_BOOLEAN, TRUE, "stream-format", G_TYPE_STRING, gst_h264_parse_get_string (h264parse, TRUE, h264parse->format), "alignment", G_TYPE_STRING, gst_h264_parse_get_string (h264parse, FALSE, h264parse->align), NULL); + + gst_h264_parse_get_par (h264parse, &par_n, &par_d); + if (par_n != 0 && par_d != 0) { + GST_INFO_OBJECT (h264parse, "PAR %d/%d", par_n, par_d); + gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION, + par_n, par_d, NULL); + } + if (buf) { gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, buf, NULL); gst_buffer_replace (&h264parse->codec_data, buf); @@ -716,6 +1159,134 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse) gst_buffer_unref (buf); } +static void +gst_h264_parse_get_timestamp (GstH264Parse * h264parse, + GstClockTime * out_ts, GstClockTime * out_dur, gboolean frame) +{ + GstH264SPS *sps = h264parse->nalparser->last_sps; + GstClockTime upstream; + gint duration = 1; + + g_return_if_fail (out_dur != NULL); + g_return_if_fail (out_ts != NULL); + + upstream = *out_ts; + + if (!frame) { + GST_LOG_OBJECT (h264parse, "no frame data -> 0 duration"); + *out_dur = 0; + goto exit; + } else { + *out_ts = upstream; + } + + if (!sps) { + GST_DEBUG_OBJECT (h264parse, "referred SPS invalid"); + goto exit; + } else if (!sps->vui_parameters.timing_info_present_flag) { + GST_DEBUG_OBJECT (h264parse, + "unable to compute timestamp: timing info not present"); + goto exit; + } else if (sps->vui_parameters.time_scale == 0) { + GST_DEBUG_OBJECT (h264parse, + "unable to compute timestamp: time_scale = 0 " + "(this is forbidden in spec; bitstream probably contains error)"); + goto exit; + } + + if (h264parse->sei_pic_struct_pres_flag && + h264parse->sei_pic_struct != (guint8) - 1) { + /* Note that when h264parse->sei_pic_struct == -1 (unspecified), there + * are ways to infer its value. This is related to computing the + * TopFieldOrderCnt and BottomFieldOrderCnt, which looks + * complicated and thus not implemented for the time being. Yet + * the value we have here is correct for many applications + */ + switch (h264parse->sei_pic_struct) { + case GST_H264_SEI_PIC_STRUCT_TOP_FIELD: + case GST_H264_SEI_PIC_STRUCT_BOTTOM_FIELD: + duration = 1; + break; + case GST_H264_SEI_PIC_STRUCT_FRAME: + case GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM: + case GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP: + duration = 2; + break; + case GST_H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP: + case GST_H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: + duration = 3; + break; + case GST_H264_SEI_PIC_STRUCT_FRAME_DOUBLING: + duration = 4; + break; + case GST_H264_SEI_PIC_STRUCT_FRAME_TRIPLING: + duration = 6; + break; + default: + GST_DEBUG_OBJECT (h264parse, + "h264parse->sei_pic_struct of unknown value %d. Not parsed", + h264parse->sei_pic_struct); + break; + } + } else { + duration = h264parse->field_pic_flag ? 1 : 2; + } + + GST_LOG_OBJECT (h264parse, "frame tick duration %d", duration); + + /* + * h264parse.264 C.1.2 Timing of coded picture removal (equivalent to DTS): + * Tr,n(0) = initial_cpb_removal_delay[ SchedSelIdx ] / 90000 + * Tr,n(n) = Tr,n(nb) + Tc * cpb_removal_delay(n) + * where + * Tc = num_units_in_tick / time_scale + */ + + if (h264parse->ts_trn_nb != GST_CLOCK_TIME_NONE) { + GST_LOG_OBJECT (h264parse, "buffering based ts"); + /* buffering period is present */ + if (upstream != GST_CLOCK_TIME_NONE) { + /* If upstream timestamp is valid, we respect it and adjust current + * reference point */ + h264parse->ts_trn_nb = upstream - + (GstClockTime) gst_util_uint64_scale_int + (h264parse->sei_cpb_removal_delay * GST_SECOND, + sps->vui_parameters.num_units_in_tick, + sps->vui_parameters.time_scale); + } else { + /* If no upstream timestamp is given, we write in new timestamp */ + upstream = h264parse->dts = h264parse->ts_trn_nb + + (GstClockTime) gst_util_uint64_scale_int + (h264parse->sei_cpb_removal_delay * GST_SECOND, + sps->vui_parameters.num_units_in_tick, + sps->vui_parameters.time_scale); + } + } else { + GstClockTime dur; + + GST_LOG_OBJECT (h264parse, "duration based ts"); + /* naive method: no removal delay specified + * track upstream timestamp and provide best guess frame duration */ + dur = gst_util_uint64_scale_int (duration * GST_SECOND, + sps->vui_parameters.num_units_in_tick, sps->vui_parameters.time_scale); + /* sanity check */ + if (dur < GST_MSECOND) { + GST_DEBUG_OBJECT (h264parse, "discarding dur %" GST_TIME_FORMAT, + GST_TIME_ARGS (dur)); + } else { + *out_dur = dur; + } + } + +exit: + if (GST_CLOCK_TIME_IS_VALID (upstream)) + *out_ts = h264parse->dts = upstream; + + if (GST_CLOCK_TIME_IS_VALID (*out_dur) && + GST_CLOCK_TIME_IS_VALID (h264parse->dts)) + h264parse->dts += *out_dur; +} + static GstFlowReturn gst_h264_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { @@ -726,11 +1297,14 @@ gst_h264_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) h264parse = GST_H264_PARSE (parse); buffer = frame->buffer; - gst_h264_parse_update_src_caps (h264parse); + gst_h264_parse_update_src_caps (h264parse, NULL); - gst_h264_params_get_timestamp (h264parse->params, - &GST_BUFFER_TIMESTAMP (buffer), &GST_BUFFER_DURATION (buffer), - h264parse->frame_start); + /* don't mess with timestamps if provided by upstream, + * particularly since our ts not that good they handle seeking etc */ + if (h264parse->do_ts) + gst_h264_parse_get_timestamp (h264parse, + &GST_BUFFER_TIMESTAMP (buffer), &GST_BUFFER_DURATION (buffer), + h264parse->frame_start); if (h264parse->keyframe) GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); @@ -745,6 +1319,7 @@ gst_h264_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) buf = gst_adapter_take_buffer (h264parse->frame_out, av); gst_buffer_copy_metadata (buf, buffer, GST_BUFFER_COPY_ALL); gst_buffer_replace (&frame->buffer, buf); + gst_buffer_unref (buf); } return GST_FLOW_OK; @@ -767,15 +1342,111 @@ gst_h264_parse_push_codec_buffer (GstH264Parse * h264parse, GstBuffer * nal, return gst_pad_push (GST_BASE_PARSE_SRC_PAD (h264parse), nal); } +static GstEvent * +check_pending_key_unit_event (GstEvent * pending_event, GstSegment * segment, + GstClockTime timestamp, guint flags, GstClockTime pending_key_unit_ts) +{ + GstClockTime running_time, stream_time; + gboolean all_headers; + guint count; + GstEvent *event = NULL; + + g_return_val_if_fail (segment != NULL, NULL); + + if (pending_event == NULL) + goto out; + + if (GST_CLOCK_TIME_IS_VALID (pending_key_unit_ts) && + timestamp == GST_CLOCK_TIME_NONE) + goto out; + + running_time = gst_segment_to_running_time (segment, + GST_FORMAT_TIME, timestamp); + + GST_INFO ("now %" GST_TIME_FORMAT " wanted %" GST_TIME_FORMAT, + GST_TIME_ARGS (running_time), GST_TIME_ARGS (pending_key_unit_ts)); + if (GST_CLOCK_TIME_IS_VALID (pending_key_unit_ts) && + running_time < pending_key_unit_ts) + goto out; + +#if 0 + if (flags & GST_BUFFER_FLAG_DELTA_UNIT) { + GST_DEBUG ("pending force key unit, waiting for keyframe"); + goto out; + } +#endif + + stream_time = gst_segment_to_stream_time (segment, + GST_FORMAT_TIME, timestamp); + + gst_video_event_parse_upstream_force_key_unit (pending_event, + NULL, &all_headers, &count); + + event = + gst_video_event_new_downstream_force_key_unit (timestamp, stream_time, + running_time, all_headers, count); + gst_event_set_seqnum (event, gst_event_get_seqnum (pending_event)); + +out: + return event; +} + +static void +gst_h264_parse_prepare_key_unit (GstH264Parse * parse, GstEvent * event) +{ + GstClockTime running_time; + guint count; + gboolean have_sps, have_pps; + gint i; + + parse->pending_key_unit_ts = GST_CLOCK_TIME_NONE; + gst_event_replace (&parse->force_key_unit_event, NULL); + + gst_video_event_parse_downstream_force_key_unit (event, + NULL, NULL, &running_time, NULL, &count); + + GST_INFO_OBJECT (parse, "pushing downstream force-key-unit event %d " + "%" GST_TIME_FORMAT " count %d", gst_event_get_seqnum (event), + GST_TIME_ARGS (running_time), count); + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (parse), event); + + have_sps = have_pps = FALSE; + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) { + if (parse->sps_nals[i] != NULL) { + have_sps = TRUE; + break; + } + } + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) { + if (parse->pps_nals[i] != NULL) { + have_pps = TRUE; + break; + } + } + + GST_INFO_OBJECT (parse, "preparing key unit, have sps %d have pps %d", + have_sps, have_pps); + + /* set push_codec to TRUE so that pre_push_frame sends SPS/PPS again */ + parse->push_codec = TRUE; +} + static GstFlowReturn gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { GstH264Parse *h264parse; GstBuffer *buffer; + GstEvent *event; h264parse = GST_H264_PARSE (parse); buffer = frame->buffer; + if ((event = check_pending_key_unit_event (h264parse->force_key_unit_event, + &parse->segment, GST_BUFFER_TIMESTAMP (buffer), + GST_BUFFER_FLAGS (buffer), h264parse->pending_key_unit_ts))) { + gst_h264_parse_prepare_key_unit (h264parse, event); + } + /* periodic SPS/PPS sending */ if (h264parse->interval > 0 || h264parse->push_codec) { GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); @@ -815,16 +1486,16 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) if (h264parse->align == GST_H264_PARSE_ALIGN_NAL) { /* send separate config NAL buffers */ GST_DEBUG_OBJECT (h264parse, "- sending SPS/PPS"); - for (i = 0; i < MAX_SPS_COUNT; i++) { - if ((codec_nal = h264parse->params->sps_nals[i])) { + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) { + if ((codec_nal = h264parse->sps_nals[i])) { GST_DEBUG_OBJECT (h264parse, "sending SPS nal"); gst_h264_parse_push_codec_buffer (h264parse, codec_nal, timestamp); h264parse->last_report = new_ts; } } - for (i = 0; i < MAX_PPS_COUNT; i++) { - if ((codec_nal = h264parse->params->pps_nals[i])) { + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) { + if ((codec_nal = h264parse->pps_nals[i])) { GST_DEBUG_OBJECT (h264parse, "sending PPS nal"); gst_h264_parse_push_codec_buffer (h264parse, codec_nal, timestamp); @@ -841,8 +1512,8 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) gst_byte_writer_put_data (&bw, GST_BUFFER_DATA (buffer), h264parse->idr_pos); GST_DEBUG_OBJECT (h264parse, "- inserting SPS/PPS"); - for (i = 0; i < MAX_SPS_COUNT; i++) { - if ((codec_nal = h264parse->params->sps_nals[i])) { + for (i = 0; i < GST_H264_MAX_SPS_COUNT; i++) { + if ((codec_nal = h264parse->sps_nals[i])) { GST_DEBUG_OBJECT (h264parse, "inserting SPS nal"); gst_byte_writer_put_uint32_be (&bw, bs ? 1 : GST_BUFFER_SIZE (codec_nal)); @@ -851,8 +1522,8 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) h264parse->last_report = new_ts; } } - for (i = 0; i < MAX_PPS_COUNT; i++) { - if ((codec_nal = h264parse->params->pps_nals[i])) { + for (i = 0; i < GST_H264_MAX_PPS_COUNT; i++) { + if ((codec_nal = h264parse->pps_nals[i])) { GST_DEBUG_OBJECT (h264parse, "inserting PPS nal"); gst_byte_writer_put_uint32_be (&bw, bs ? 1 : GST_BUFFER_SIZE (codec_nal)); @@ -867,7 +1538,11 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) /* collect result and push */ new_buf = gst_byte_writer_reset_and_get_buffer (&bw); gst_buffer_copy_metadata (new_buf, buffer, GST_BUFFER_COPY_ALL); + /* should already be keyframe/IDR, but it may not have been, + * so mark it as such to avoid being discarded by picky decoder */ + GST_BUFFER_FLAG_UNSET (new_buf, GST_BUFFER_FLAG_DELTA_UNIT); gst_buffer_replace (&frame->buffer, new_buf); + gst_buffer_unref (new_buf); } } /* we pushed whatever we had */ @@ -886,8 +1561,10 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps) GstH264Parse *h264parse; GstStructure *str; const GValue *value; - GstBuffer *buffer = NULL; - guint size; + GstBuffer *codec_data = NULL; + guint size, format, align, off; + GstH264NalUnit nalu; + GstH264ParserResult parseres; h264parse = GST_H264_PARSE (parse); @@ -901,25 +1578,43 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps) gst_structure_get_int (str, "height", &h264parse->height); gst_structure_get_fraction (str, "framerate", &h264parse->fps_num, &h264parse->fps_den); + gst_structure_get_fraction (str, "pixel-aspect-ratio", + &h264parse->upstream_par_n, &h264parse->upstream_par_d); + + /* get upstream format and align from caps */ + gst_h264_parse_format_from_caps (caps, &format, &align); /* packetized video has a codec_data */ - if ((value = gst_structure_get_value (str, "codec_data"))) { + if (format != GST_H264_PARSE_FORMAT_BYTE && + (value = gst_structure_get_value (str, "codec_data"))) { guint8 *data; - guint num_sps, num_pps, profile, len; + guint num_sps, num_pps, profile; gint i; GST_DEBUG_OBJECT (h264parse, "have packetized h264"); /* make note for optional split processing */ h264parse->packetized = TRUE; - buffer = gst_value_get_buffer (value); - if (!buffer) + codec_data = gst_value_get_buffer (value); + if (!codec_data) goto wrong_type; - data = GST_BUFFER_DATA (buffer); - size = GST_BUFFER_SIZE (buffer); + data = GST_BUFFER_DATA (codec_data); + size = GST_BUFFER_SIZE (codec_data); + +#ifdef GST_H264PARSE_MODIFICATION /* handle byte-stream codec_data */ + if(size >= 4) { + if (data[0] == 0x00 && data[1] == 0x00 && + (data[2] == 0x01 || (data[2] == 0x00 && data[3] == 0x01))) { + h264parse->format = GST_H264_PARSE_FORMAT_BYTE; + GST_WARNING_OBJECT(h264parse, "has codec_data, but byte stream format."); + h264parse->packetized = FALSE; + return TRUE; + } + } +#endif /* parse the avcC data */ - if (size < 7) + if (size < 8) goto avcc_too_small; /* parse the version, this must be 1 */ if (data[0] != 1) @@ -935,31 +1630,42 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps) /* this is the number of bytes in front of the NAL units to mark their * length */ h264parse->nal_length_size = (data[4] & 0x03) + 1; - GST_DEBUG_OBJECT (h264parse, "nal length %u", h264parse->nal_length_size); + GST_DEBUG_OBJECT (h264parse, "nal length size %u", + h264parse->nal_length_size); num_sps = data[5] & 0x1f; - data += 6; - size -= 6; + off = 6; for (i = 0; i < num_sps; i++) { - len = GST_READ_UINT16_BE (data); - if (size < len + 2 || len < 2) + parseres = gst_h264_parser_identify_nalu_avc (h264parse->nalparser, + data, off, size, 2, &nalu); + if (parseres != GST_H264_PARSER_OK) goto avcc_too_small; - /* digest for later reference */ - gst_h264_parse_process_nal (h264parse, data, 0, 2, len); - data += len + 2; - size -= len + 2; + + gst_h264_parse_process_nal (h264parse, &nalu); + off = nalu.offset + nalu.size; } - num_pps = data[0]; - data++; - size++; + + num_pps = data[off]; + off++; + for (i = 0; i < num_pps; i++) { - len = GST_READ_UINT16_BE (data); - if (size < len + 2 || len < 2) + parseres = gst_h264_parser_identify_nalu_avc (h264parse->nalparser, + data, off, size, 2, &nalu); + if (parseres != GST_H264_PARSER_OK) { goto avcc_too_small; - /* digest for later reference */ - gst_h264_parse_process_nal (h264parse, data, 0, 2, len); - data += len + 2; - size -= len + 2; + } + + gst_h264_parse_process_nal (h264parse, &nalu); + off = nalu.offset + nalu.size; + } + + h264parse->codec_data = gst_buffer_ref (codec_data); + + /* if upstream sets codec_data without setting stream-format and alignment, we + * assume stream-format=avc,alignment=au */ + if (format == GST_H264_PARSE_FORMAT_NONE) { + format = GST_H264_PARSE_FORMAT_AVC; + align = GST_H264_PARSE_ALIGN_AU; } } else { GST_DEBUG_OBJECT (h264parse, "have bytestream h264"); @@ -967,40 +1673,53 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps) h264parse->packetized = FALSE; /* we have 4 sync bytes */ h264parse->nal_length_size = 4; - } - if (h264parse->packetized) { - if (h264parse->split_packetized) { - GST_DEBUG_OBJECT (h264parse, - "converting AVC to nal bytestream prior to parsing"); - /* negotiate behaviour with upstream */ - gst_h264_parse_negotiate (h264parse); - if (h264parse->format == GST_H264_PARSE_FORMAT_BYTE) { - /* arrange to insert codec-data in-stream if needed */ - h264parse->push_codec = h264parse->packetized; - } - gst_base_parse_set_passthrough (parse, FALSE); - } else { - GST_DEBUG_OBJECT (h264parse, "passing on packetized AVC"); - /* no choice to negotiate */ - h264parse->format = GST_H264_PARSE_FORMAT_AVC; - h264parse->align = GST_H264_PARSE_ALIGN_AU; - /* fallback codec-data */ - h264parse->codec_data = gst_buffer_ref (buffer); - /* pass through unharmed, though _chain will parse a bit */ - gst_base_parse_set_passthrough (parse, TRUE); - /* we did parse codec-data and might supplement src caps */ - gst_h264_parse_update_src_caps (h264parse); + if (format == GST_H264_PARSE_FORMAT_NONE) { + format = GST_H264_PARSE_FORMAT_BYTE; + align = GST_H264_PARSE_ALIGN_AU; } } - /* src caps are only arranged for later on */ +#ifdef CHECK_PACKETIZED_FOR_PASSTHROUGH +if(h264parse->packetized) +#endif /* CHECK_PACKETIZED_FOR_PASSTHROUGH */ + { + { + GstCaps *in_caps; + + /* prefer input type determined above */ + in_caps = gst_caps_new_simple ("video/x-h264", + "parsed", G_TYPE_BOOLEAN, TRUE, + "stream-format", G_TYPE_STRING, + gst_h264_parse_get_string (h264parse, TRUE, format), + "alignment", G_TYPE_STRING, + gst_h264_parse_get_string (h264parse, FALSE, align), NULL); + /* negotiate with downstream, sets ->format and ->align */ + gst_h264_parse_negotiate (h264parse, in_caps); + gst_caps_unref (in_caps); + } + + if (format == h264parse->format && align == h264parse->align) { + gst_base_parse_set_passthrough (parse, TRUE); + + /* we did parse codec-data and might supplement src caps */ + gst_h264_parse_update_src_caps (h264parse, caps); + } else if (format == GST_H264_PARSE_FORMAT_AVC) { + /* if input != output, and input is avc, must split before anything else */ + /* arrange to insert codec-data in-stream if needed. + * src caps are only arranged for later on */ + h264parse->push_codec = TRUE; + h264parse->split_packetized = TRUE; + h264parse->packetized = TRUE; + } +} + return TRUE; /* ERRORS */ avcc_too_small: { - GST_DEBUG_OBJECT (h264parse, "avcC size %u < 7", size); + GST_DEBUG_OBJECT (h264parse, "avcC size %u < 8", size); goto refuse_caps; } wrong_version: @@ -1020,53 +1739,184 @@ refuse_caps: } } +static GstCaps * +gst_h264_parse_get_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + gst_structure_remove_field (s, "alignment"); + gst_structure_remove_field (s, "stream-format"); + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} + +static gboolean +gst_h264_parse_event (GstBaseParse * parse, GstEvent * event) +{ + gboolean handled = FALSE; + GstH264Parse *h264parse = GST_H264_PARSE (parse); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_DOWNSTREAM: + { + GstClockTime timestamp, stream_time, running_time; + gboolean all_headers; + guint count; + + if (!gst_video_event_is_force_key_unit (event)) + break; + + gst_video_event_parse_downstream_force_key_unit (event, + ×tamp, &stream_time, &running_time, &all_headers, &count); + + GST_INFO_OBJECT (h264parse, "received downstream force key unit event, " + "seqnum %d running_time %" GST_TIME_FORMAT " all_headers %d count %d", + gst_event_get_seqnum (event), GST_TIME_ARGS (running_time), + all_headers, count); + handled = TRUE; + + if (h264parse->force_key_unit_event) { + GST_INFO_OBJECT (h264parse, "ignoring force key unit event " + "as one is already queued"); + break; + } + + h264parse->pending_key_unit_ts = running_time; + gst_event_replace (&h264parse->force_key_unit_event, event); + break; + } + case GST_EVENT_FLUSH_STOP: + h264parse->dts = GST_CLOCK_TIME_NONE; + h264parse->ts_trn_nb = GST_CLOCK_TIME_NONE; + break; + case GST_EVENT_NEWSEGMENT: + { + gdouble rate, applied_rate; + GstFormat format; + gint64 start; + + gst_event_parse_new_segment_full (event, NULL, &rate, &applied_rate, + &format, &start, NULL, NULL); + /* don't try to mess with more subtle cases (e.g. seek) */ + if (format == GST_FORMAT_TIME && + (start != 0 || rate != 1.0 || applied_rate != 1.0)) + h264parse->do_ts = FALSE; + break; + } + default: + break; + } + + return handled; +} + +static gboolean +gst_h264_parse_src_event (GstBaseParse * parse, GstEvent * event) +{ + gboolean handled = FALSE; + GstH264Parse *h264parse = GST_H264_PARSE (parse); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_UPSTREAM: + { + GstClockTime running_time; + gboolean all_headers; + guint count; + + if (!gst_video_event_is_force_key_unit (event)) + break; + + gst_video_event_parse_upstream_force_key_unit (event, + &running_time, &all_headers, &count); + + GST_INFO_OBJECT (h264parse, "received upstream force-key-unit event, " + "seqnum %d running_time %" GST_TIME_FORMAT " all_headers %d count %d", + gst_event_get_seqnum (event), GST_TIME_ARGS (running_time), + all_headers, count); + + if (!all_headers) + break; + + h264parse->pending_key_unit_ts = running_time; + gst_event_replace (&h264parse->force_key_unit_event, event); + /* leave handled = FALSE so that the event gets propagated upstream */ + break; + } + default: + break; + } + + return handled; +} + static GstFlowReturn gst_h264_parse_chain (GstPad * pad, GstBuffer * buffer) { GstH264Parse *h264parse = GST_H264_PARSE (GST_PAD_PARENT (pad)); if (h264parse->packetized && buffer) { - GstByteReader br; GstBuffer *sub; GstFlowReturn ret = GST_FLOW_OK; - guint32 len; + GstH264ParserResult parse_res; + GstH264NalUnit nalu; const guint nl = h264parse->nal_length_size; + if (nl < 1 || nl > 4) { + GST_DEBUG_OBJECT (h264parse, "insufficient data to split input"); + gst_buffer_unref (buffer); + + return GST_FLOW_NOT_NEGOTIATED; + } + GST_LOG_OBJECT (h264parse, "processing packet buffer of size %d", GST_BUFFER_SIZE (buffer)); - gst_byte_reader_init_from_buffer (&br, buffer); - while (ret == GST_FLOW_OK && gst_byte_reader_get_remaining (&br)) { + + parse_res = gst_h264_parser_identify_nalu_avc (h264parse->nalparser, + GST_BUFFER_DATA (buffer), 0, GST_BUFFER_SIZE (buffer), nl, &nalu); + + while (parse_res == GST_H264_PARSER_OK) { GST_DEBUG_OBJECT (h264parse, "AVC nal offset %d", - gst_byte_reader_get_pos (&br)); - if (gst_byte_reader_get_remaining (&br) < nl) - goto parse_failed; - switch (nl) { - case 4: - len = gst_byte_reader_get_uint32_be_unchecked (&br); - break; - case 3: - len = gst_byte_reader_get_uint24_be_unchecked (&br); - break; - case 2: - len = gst_byte_reader_get_uint16_be_unchecked (&br); - break; - case 1: - len = gst_byte_reader_get_uint8_unchecked (&br); - break; - default: - goto not_negotiated; - break; - } - GST_DEBUG_OBJECT (h264parse, "AVC nal size %d", len); - if (gst_byte_reader_get_remaining (&br) < len) - goto parse_failed; + nalu.offset + nalu.size); + if (h264parse->split_packetized) { /* convert to NAL aligned byte stream input */ sub = gst_h264_parse_wrap_nal (h264parse, GST_H264_PARSE_FORMAT_BYTE, - (guint8 *) gst_byte_reader_get_data_unchecked (&br, len), len); + nalu.data + nalu.offset, nalu.size); /* at least this should make sense */ GST_BUFFER_TIMESTAMP (sub) = GST_BUFFER_TIMESTAMP (buffer); - GST_LOG_OBJECT (h264parse, "pushing NAL of size %d", len); + /* transfer flags (e.g. DISCONT) for first fragment */ + if (nalu.offset <= nl) + gst_buffer_copy_metadata (sub, buffer, GST_BUFFER_COPY_FLAGS); + /* in reverse playback, baseparse gathers buffers, so we cannot + * guarantee a buffer to contain a single whole NALU */ + h264parse->packetized_chunked = + (GST_BASE_PARSE (h264parse)->segment.rate > 0.0); + h264parse->packetized_last = + (nalu.offset + nalu.size + nl >= GST_BUFFER_SIZE (buffer)); + GST_LOG_OBJECT (h264parse, "pushing NAL of size %d, last = %d", + nalu.size, h264parse->packetized_last); ret = h264parse->parse_chain (pad, sub); } else { /* pass-through: no looking for frames (and nal processing), @@ -1074,41 +1924,41 @@ gst_h264_parse_chain (GstPad * pad, GstBuffer * buffer) /* NOTE: so if it is really configured to do so, * pre_push can/will still insert codec-data at intervals, * which is not really pure pass-through, but anyway ... */ - gst_h264_parse_process_nal (h264parse, - GST_BUFFER_DATA (buffer), gst_byte_reader_get_pos (&br) - nl, - gst_byte_reader_get_pos (&br), len); - gst_byte_reader_skip_unchecked (&br, len); + gst_h264_parse_process_nal (h264parse, &nalu); + } + + parse_res = gst_h264_parser_identify_nalu_avc (h264parse->nalparser, + GST_BUFFER_DATA (buffer), nalu.offset + nalu.size, + GST_BUFFER_SIZE (buffer), nl, &nalu); } - if (h264parse->split_packetized) + + if (h264parse->split_packetized) { + gst_buffer_unref (buffer); return ret; - } + } else { + /* nal processing in pass-through might have collected stuff; + * ensure nothing happens with this later on */ + gst_adapter_clear (h264parse->frame_out); + } -exit: - /* nal processing in pass-through might have collected stuff; - * ensure nothing happens with this later on */ - gst_adapter_clear (h264parse->frame_out); + if (parse_res == GST_H264_PARSER_NO_NAL_END || + parse_res == GST_H264_PARSER_BROKEN_DATA) { - return h264parse->parse_chain (pad, buffer); + if (h264parse->split_packetized) { + GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), + ("invalid AVC input data")); + gst_buffer_unref (buffer); - /* ERRORS */ -not_negotiated: - { - GST_DEBUG_OBJECT (h264parse, "insufficient data to split input"); - return GST_FLOW_NOT_NEGOTIATED; - } -parse_failed: - { - if (h264parse->split_packetized) { - GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), - ("invalid AVC input data")); - return GST_FLOW_ERROR; - } else { - /* do not meddle to much in this case */ - GST_DEBUG_OBJECT (h264parse, "parsing packet failed"); - goto exit; + return GST_FLOW_ERROR; + } else { + /* do not meddle to much in this case */ + GST_DEBUG_OBJECT (h264parse, "parsing packet failed"); + } } } + + return h264parse->parse_chain (pad, buffer); } static void @@ -1120,9 +1970,6 @@ gst_h264_parse_set_property (GObject * object, guint prop_id, parse = GST_H264_PARSE (object); switch (prop_id) { - case PROP_SPLIT_PACKETIZED: - parse->split_packetized = g_value_get_boolean (value); - break; case PROP_CONFIG_INTERVAL: parse->interval = g_value_get_uint (value); break; @@ -1141,9 +1988,6 @@ gst_h264_parse_get_property (GObject * object, guint prop_id, GValue * value, parse = GST_H264_PARSE (object); switch (prop_id) { - case PROP_SPLIT_PACKETIZED: - g_value_set_boolean (value, parse->split_packetized); - break; case PROP_CONFIG_INTERVAL: g_value_set_uint (value, parse->interval); break; diff --git a/gst/videoparsers/gsth264parse.h b/gst/videoparsers/gsth264parse.h index 1aa1323..d60d94c 100644 --- a/gst/videoparsers/gsth264parse.h +++ b/gst/videoparsers/gsth264parse.h @@ -1,7 +1,10 @@ /* GStreamer H.264 Parser - * Copyright (C) <2010> Mark Nauwelaerts - * Copyright (C) <2010> Collabora Multimedia + * Copyright (C) <2010> Collabora ltd * Copyright (C) <2010> Nokia Corporation + * Copyright (C) <2011> Intel Corporation + * + * Copyright (C) <2010> Mark Nauwelaerts + * Copyright (C) <2011> Thibault Saunier * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -24,8 +27,7 @@ #include #include - -#include "h264parse.h" +#include G_BEGIN_DECLS @@ -56,22 +58,46 @@ struct _GstH264Parse /* stream */ gint width, height; gint fps_num, fps_den; + gint aspect_ratio_idc; + gint sar_width, sar_height; + gint upstream_par_n, upstream_par_d; GstBuffer *codec_data; guint nal_length_size; gboolean packetized; /* state */ - GstH264Params *params; + GstH264NalParser *nalparser; + GstH264NalUnit nalu; guint align; guint format; + guint current_off; + gboolean packetized_last; + gboolean packetized_chunked; GstClockTime last_report; gboolean push_codec; + /* collected SPS and PPS NALUs */ + GstBuffer *sps_nals[GST_H264_MAX_SPS_COUNT]; + GstBuffer *pps_nals[GST_H264_MAX_PPS_COUNT]; + + /* Infos we need to keep track of */ + guint32 sei_cpb_removal_delay; + guint8 sei_pic_struct; + guint8 sei_pic_struct_pres_flag; + guint field_pic_flag; + + /* cached timestamps */ + /* (trying to) track upstream dts and interpolate */ + GstClockTime dts; + /* dts at start of last buffering period */ + GstClockTime ts_trn_nb; + gboolean do_ts; + /* frame parsing */ - guint last_nal_pos; - guint next_sc_pos; - gint idr_pos; + /*guint last_nal_pos;*/ + /*guint next_sc_pos;*/ + gint idr_pos, sei_pos; gboolean update_caps; GstAdapter *frame_out; gboolean keyframe; @@ -82,6 +108,9 @@ struct _GstH264Parse /* props */ gboolean split_packetized; guint interval; + + GstClockTime pending_key_unit_ts; + GstEvent *force_key_unit_event; }; struct _GstH264ParseClass diff --git a/gst/videoparsers/gstmpeg4videoparse.c b/gst/videoparsers/gstmpeg4videoparse.c new file mode 100644 index 0000000..14fba00 --- /dev/null +++ b/gst/videoparsers/gstmpeg4videoparse.c @@ -0,0 +1,694 @@ +/* GStreamer + * Copyright (C) <2008> Mindfruit B.V. + * @author Sjoerd Simons + * Copyright (C) <2007> Julien Moutte + * Copyright (C) <2011> Mark Nauwelaerts + * Copyright (C) <2011> Nokia Corporation + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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 "gstmpeg4videoparse.h" + +GST_DEBUG_CATEGORY (mpeg4v_parse_debug); +#define GST_CAT_DEFAULT mpeg4v_parse_debug + +static GstStaticPadTemplate src_template = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) 4, " + "parsed = (boolean) true, " "systemstream = (boolean) false") + ); + +static GstStaticPadTemplate sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) 4, " "systemstream = (boolean) false") + ); + +/* Properties */ +#define DEFAULT_PROP_DROP TRUE +#define DEFAULT_CONFIG_INTERVAL (0) + +enum +{ + PROP_0, + PROP_DROP, + PROP_CONFIG_INTERVAL, + PROP_LAST +}; + +GST_BOILERPLATE (GstMpeg4VParse, gst_mpeg4vparse, GstBaseParse, + GST_TYPE_BASE_PARSE); + +static gboolean gst_mpeg4vparse_start (GstBaseParse * parse); +static gboolean gst_mpeg4vparse_stop (GstBaseParse * parse); +static gboolean gst_mpeg4vparse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * framesize, gint * skipsize); +static GstFlowReturn gst_mpeg4vparse_parse_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); +static GstFlowReturn gst_mpeg4vparse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); +static gboolean gst_mpeg4vparse_set_caps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_mpeg4vparse_get_caps (GstBaseParse * parse); + +static void gst_mpeg4vparse_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_mpeg4vparse_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void +gst_mpeg4vparse_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, &sink_template); + + gst_element_class_set_details_simple (element_class, + "MPEG 4 video elementary stream parser", "Codec/Parser/Video", + "Parses MPEG-4 Part 2 elementary video streams", + "Julien Moutte "); + + GST_DEBUG_CATEGORY_INIT (mpeg4v_parse_debug, "mpeg4videoparse", 0, + "MPEG-4 video parser"); +} + +static void +gst_mpeg4vparse_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GstMpeg4VParse *parse = GST_MPEG4VIDEO_PARSE (object); + + switch (property_id) { + case PROP_DROP: + parse->drop = g_value_get_boolean (value); + break; + case PROP_CONFIG_INTERVAL: + parse->interval = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gst_mpeg4vparse_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + GstMpeg4VParse *parse = GST_MPEG4VIDEO_PARSE (object); + + switch (property_id) { + case PROP_DROP: + g_value_set_boolean (value, parse->drop); + break; + case PROP_CONFIG_INTERVAL: + g_value_set_uint (value, parse->interval); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gst_mpeg4vparse_class_init (GstMpeg4VParseClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->set_property = gst_mpeg4vparse_set_property; + gobject_class->get_property = gst_mpeg4vparse_get_property; + + g_object_class_install_property (gobject_class, PROP_DROP, + g_param_spec_boolean ("drop", "drop", + "Drop data untill valid configuration data is received either " + "in the stream or through caps", DEFAULT_PROP_DROP, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_CONFIG_INTERVAL, + g_param_spec_uint ("config-interval", + "Configuration Send Interval", + "Send Configuration Insertion Interval in seconds (configuration headers " + "will be multiplexed in the data stream when detected.) (0 = disabled)", + 0, 3600, DEFAULT_CONFIG_INTERVAL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /* Override BaseParse vfuncs */ + parse_class->start = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_start); + parse_class->stop = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_stop); + parse_class->check_valid_frame = + GST_DEBUG_FUNCPTR (gst_mpeg4vparse_check_valid_frame); + parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_parse_frame); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_mpeg4vparse_pre_push_frame); + parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_set_caps); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_mpeg4vparse_get_caps); +} + +static void +gst_mpeg4vparse_init (GstMpeg4VParse * parse, GstMpeg4VParseClass * g_class) +{ + parse->interval = DEFAULT_CONFIG_INTERVAL; + parse->last_report = GST_CLOCK_TIME_NONE; +} + +static void +gst_mpeg4vparse_reset_frame (GstMpeg4VParse * mp4vparse) +{ + /* done parsing; reset state */ + mp4vparse->last_sc = -1; + mp4vparse->vop_offset = -1; + mp4vparse->vo_found = FALSE; + mp4vparse->vol_offset = -1; +} + +static void +gst_mpeg4vparse_reset (GstMpeg4VParse * mp4vparse) +{ + gst_mpeg4vparse_reset_frame (mp4vparse); + mp4vparse->update_caps = TRUE; + mp4vparse->profile = NULL; + mp4vparse->level = NULL; + + gst_buffer_replace (&mp4vparse->config, NULL); + memset (&mp4vparse->vol, 0, sizeof (mp4vparse->vol)); +} + +static gboolean +gst_mpeg4vparse_start (GstBaseParse * parse) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + + GST_DEBUG_OBJECT (parse, "start"); + + gst_mpeg4vparse_reset (mp4vparse); + /* at least this much for a valid frame */ + gst_base_parse_set_min_frame_size (parse, 6); + + return TRUE; +} + +static gboolean +gst_mpeg4vparse_stop (GstBaseParse * parse) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + + GST_DEBUG_OBJECT (parse, "stop"); + + gst_mpeg4vparse_reset (mp4vparse); + + return TRUE; +} + +static gboolean +gst_mpeg4vparse_process_config (GstMpeg4VParse * mp4vparse, + const guint8 * data, guint offset, gsize size) +{ + /* only do stuff if something new */ + if (mp4vparse->config && size == GST_BUFFER_SIZE (mp4vparse->config) && + memcmp (GST_BUFFER_DATA (mp4vparse->config), data, size) == 0) + return TRUE; + + if (mp4vparse->vol_offset < 0) { + GST_WARNING ("No video object Layer parsed in this frame, cannot accept " + "config"); + return FALSE; + } + + /* If the parsing fail, we accept the config only if we don't have + * any config yet. */ + if (gst_mpeg4_parse_video_object_layer (&mp4vparse->vol, + NULL, data + mp4vparse->vol_offset, + size - mp4vparse->vol_offset) != GST_MPEG4_PARSER_OK && + mp4vparse->config) + return FALSE; + + GST_LOG_OBJECT (mp4vparse, "Width/Height: %u/%u, " + "time increment resolution: %u fixed time increment: %u", + mp4vparse->vol.width, mp4vparse->vol.height, + mp4vparse->vol.vop_time_increment_resolution, + mp4vparse->vol.fixed_vop_time_increment); + + + GST_LOG_OBJECT (mp4vparse, "accepting parsed config size %" G_GSSIZE_FORMAT, + size); + + if (mp4vparse->config != NULL) + gst_buffer_unref (mp4vparse->config); + + mp4vparse->config = gst_buffer_new_and_alloc (size); + + memcpy (GST_BUFFER_DATA (mp4vparse->config), data, size); + + + /* trigger src caps update */ + mp4vparse->update_caps = TRUE; + + return TRUE; +} + +/* caller guarantees at least start code in @buf at @off */ +static gboolean +gst_mpeg4vparse_process_sc (GstMpeg4VParse * mp4vparse, GstMpeg4Packet * packet, + gsize size) +{ + + GST_LOG_OBJECT (mp4vparse, "process startcode %x", packet->type); + + /* if we found a VOP, next start code ends it, + * except for final VOS end sequence code included in last VOP-frame */ + if (mp4vparse->vop_offset >= 0 && + packet->type != GST_MPEG4_VISUAL_OBJ_SEQ_END) { + if (G_LIKELY (size > mp4vparse->vop_offset + 1)) { + mp4vparse->intra_frame = + ((packet->data[mp4vparse->vop_offset + 1] >> 6 & 0x3) == 0); + } else { + GST_WARNING_OBJECT (mp4vparse, "no data following VOP startcode"); + mp4vparse->intra_frame = FALSE; + } + GST_LOG_OBJECT (mp4vparse, "ending frame of size %d, is intra %d", + packet->offset - 3, mp4vparse->intra_frame); + return TRUE; + } + + switch (packet->type) { + case GST_MPEG4_VIDEO_OBJ_PLANE: + case GST_MPEG4_GROUP_OF_VOP: + { + + if (packet->type == GST_MPEG4_VIDEO_OBJ_PLANE) { + GST_LOG_OBJECT (mp4vparse, "startcode is VOP"); + mp4vparse->vop_offset = packet->offset; + } else { + GST_LOG_OBJECT (mp4vparse, "startcode is GOP"); + } + /* parse config data ending here if proper startcodes found earlier; + * preferably start at VOS (visual object sequence), + * otherwise at VO (video object) */ + if (mp4vparse->vo_found) { + + /*Do not take care startcode into account */ + gst_mpeg4vparse_process_config (mp4vparse, + packet->data, packet->offset, packet->offset - 3); + + /* avoid accepting again for a VOP sc following a GOP sc */ + mp4vparse->vo_found = FALSE; + } + break; + } + case GST_MPEG4_VISUAL_OBJ_SEQ_START: + GST_LOG_OBJECT (mp4vparse, "Visual Sequence Start"); + mp4vparse->vo_found = TRUE; + mp4vparse->profile = gst_codec_utils_mpeg4video_get_profile (packet->data + + packet->offset + 1, packet->offset); + mp4vparse->level = gst_codec_utils_mpeg4video_get_level (packet->data + + packet->offset + 1, packet->offset); + break; + case GST_MPEG4_VISUAL_OBJ: + GST_LOG_OBJECT (mp4vparse, "Visual Object"); + default: + if (packet->type >= GST_MPEG4_VIDEO_LAYER_FIRST && + packet->type <= GST_MPEG4_VIDEO_LAYER_LAST) { + + GST_LOG_OBJECT (mp4vparse, "Video Object Layer"); + + /* wee keep track of the offset to parse later on */ + if (mp4vparse->vol_offset < 0) + mp4vparse->vol_offset = packet->offset; + + /* VO (video object) cases */ + } else if (packet->type <= GST_MPEG4_VIDEO_OBJ_LAST) { + GST_LOG_OBJECT (mp4vparse, "Video object"); + mp4vparse->vo_found = TRUE; + } + break; + } + + /* at least need to have a VOP in a frame */ + return FALSE; +} + +/* FIXME move into baseparse, or anything equivalent; + * see https://bugzilla.gnome.org/show_bug.cgi?id=650093 */ +#define GST_BASE_PARSE_FRAME_FLAG_PARSING 0x10000 + +static gboolean +gst_mpeg4vparse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * framesize, gint * skipsize) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + GstMpeg4Packet packet; + guint8 *data = GST_BUFFER_DATA (frame->buffer); + guint size = GST_BUFFER_SIZE (frame->buffer); + gint off = 0; + gboolean ret; + +retry: + /* at least start code and subsequent byte */ + if (G_UNLIKELY (size - off < 5)) + return FALSE; + + /* avoid stale cached parsing state */ + if (!(frame->flags & GST_BASE_PARSE_FRAME_FLAG_PARSING)) { + GST_LOG_OBJECT (mp4vparse, "parsing new frame"); + gst_mpeg4vparse_reset_frame (mp4vparse); + frame->flags |= GST_BASE_PARSE_FRAME_FLAG_PARSING; + } else { + GST_LOG_OBJECT (mp4vparse, "resuming frame parsing"); + } + + /* if already found a previous start code, e.g. start of frame, go for next */ + if (mp4vparse->last_sc >= 0) { + off = mp4vparse->last_sc; + goto next; + } + + /* didn't find anything that looks like a sync word, skip */ + switch (gst_mpeg4_parse (&packet, TRUE, NULL, data, off, size)) { + case (GST_MPEG4_PARSER_NO_PACKET): + case (GST_MPEG4_PARSER_ERROR): + *skipsize = size - 3; + return FALSE; + default: + break; + } + off = packet.offset; + + /* possible frame header, but not at offset 0? skip bytes before sync */ + if (G_UNLIKELY (off > 3)) { + *skipsize = off - 3; + return FALSE; + } + + switch (packet.type) { + case GST_MPEG4_GROUP_OF_VOP: + case GST_MPEG4_VISUAL_OBJ_SEQ_START: + case GST_MPEG4_VIDEO_OBJ_PLANE: + break; + default: + if (packet.type <= GST_MPEG4_VIDEO_OBJ_LAST) + break; + /* undesirable sc */ + GST_LOG_OBJECT (mp4vparse, "start code is no VOS, VO, VOP or GOP"); + goto retry; + } + + /* found sc */ + mp4vparse->last_sc = 0; + + /* examine start code, which should not end frame at present */ + gst_mpeg4vparse_process_sc (mp4vparse, &packet, size); + +next: + GST_LOG_OBJECT (mp4vparse, "Looking for frame end"); + + /* start is fine as of now */ + *skipsize = 0; + /* position a bit further than last sc */ + off++; + + /* so now we have start code at start of data; locate next packet */ + switch (gst_mpeg4_parse (&packet, TRUE, NULL, data, off, size)) { + case (GST_MPEG4_PARSER_NO_PACKET_END): + ret = gst_mpeg4vparse_process_sc (mp4vparse, &packet, size); + if (ret) + break; + case (GST_MPEG4_PARSER_NO_PACKET): + case (GST_MPEG4_PARSER_ERROR): + /* if draining, take all */ + if (GST_BASE_PARSE_DRAINING (parse)) { + *framesize = size; + return TRUE; + } else { + /* resume scan where we left it */ + mp4vparse->last_sc = size - 3; + /* request best next available */ + *framesize = G_MAXUINT; + return FALSE; + } + default: + /* decide whether this startcode ends a frame */ + ret = gst_mpeg4vparse_process_sc (mp4vparse, &packet, size); + break; + } + + off = packet.offset; + + if (ret) { + *framesize = off - 3; + } else { + goto next; + } + + return ret; +} + +static void +gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse) +{ + GstCaps *caps = NULL; + + GST_LOG_OBJECT (mp4vparse, "Updating caps"); + + /* only update if no src caps yet or explicitly triggered */ + if (G_LIKELY (GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (mp4vparse)) && + !mp4vparse->update_caps)) + return; + + /* carry over input caps as much as possible; override with our own stuff */ + caps = GST_PAD_CAPS (GST_BASE_PARSE_SINK_PAD (mp4vparse)); + if (caps) { + caps = gst_caps_copy (caps); + } else { + caps = gst_caps_new_simple ("video/mpeg", + "mpegversion", G_TYPE_INT, 4, NULL); + } + + gst_caps_set_simple (caps, "systemstream", G_TYPE_BOOLEAN, FALSE, + "parsed", G_TYPE_BOOLEAN, TRUE, NULL); + + if (mp4vparse->profile && mp4vparse->level) { + gst_caps_set_simple (caps, "profile", G_TYPE_STRING, mp4vparse->profile, + "level", G_TYPE_STRING, mp4vparse->level, NULL); + } + + if (mp4vparse->config != NULL) { + gst_caps_set_simple (caps, "codec_data", + GST_TYPE_BUFFER, mp4vparse->config, NULL); + } + + if (mp4vparse->vol.width > 0 && mp4vparse->vol.height > 0) { + gst_caps_set_simple (caps, "width", G_TYPE_INT, mp4vparse->vol.width, + "height", G_TYPE_INT, mp4vparse->vol.height, NULL); + } + + /* perhaps we have a framerate */ + if (mp4vparse->vol.fixed_vop_time_increment != 0) { + gint fps_num = mp4vparse->vol.vop_time_increment_resolution; + gint fps_den = mp4vparse->vol.fixed_vop_time_increment; + GstClockTime latency = gst_util_uint64_scale (GST_SECOND, fps_den, fps_num); + + gst_caps_set_simple (caps, "framerate", + GST_TYPE_FRACTION, fps_num, fps_den, NULL); + gst_base_parse_set_frame_rate (GST_BASE_PARSE (mp4vparse), + fps_num, fps_den, 0, 0); + gst_base_parse_set_latency (GST_BASE_PARSE (mp4vparse), latency, latency); + } + + /* or pixel-aspect-ratio */ + if (mp4vparse->vol.par_width > 0 && mp4vparse->vol.par_height > 0) { + gst_caps_set_simple (caps, "pixel-aspect-ratio", + GST_TYPE_FRACTION, mp4vparse->vol.par_width, + mp4vparse->vol.par_height, NULL); + } + + gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (mp4vparse), caps); + gst_caps_unref (caps); + + mp4vparse->update_caps = FALSE; +} + +static GstFlowReturn +gst_mpeg4vparse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + GstBuffer *buffer = frame->buffer; + + gst_mpeg4vparse_update_src_caps (mp4vparse); + + if (mp4vparse->intra_frame) + GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); + else + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); + + if (G_UNLIKELY (mp4vparse->drop && !mp4vparse->config)) { + GST_LOG_OBJECT (mp4vparse, "dropping frame as no config yet"); + return GST_BASE_PARSE_FLOW_DROPPED; + } else + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_mpeg4vparse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + GstBuffer *buffer = frame->buffer; + + /* periodic config sending */ + if (mp4vparse->interval > 0) { + GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); + guint64 diff; + + /* init */ + if (!GST_CLOCK_TIME_IS_VALID (mp4vparse->last_report)) { + mp4vparse->last_report = timestamp; + } + + if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) { + if (timestamp > mp4vparse->last_report) + diff = timestamp - mp4vparse->last_report; + else + diff = 0; + + GST_LOG_OBJECT (mp4vparse, + "now %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp), GST_TIME_ARGS (mp4vparse->last_report)); + + GST_LOG_OBJECT (mp4vparse, + "interval since last config %" GST_TIME_FORMAT, GST_TIME_ARGS (diff)); + + if (GST_TIME_AS_SECONDS (diff) >= mp4vparse->interval) { + /* we need to send config now first */ + GST_LOG_OBJECT (parse, "inserting config in stream"); + + /* avoid inserting duplicate config */ + if ((GST_BUFFER_SIZE (buffer) < GST_BUFFER_SIZE (mp4vparse->config)) || + memcmp (GST_BUFFER_DATA (buffer), + GST_BUFFER_DATA (mp4vparse->config), + GST_BUFFER_SIZE (mp4vparse->config))) { + GstBuffer *superbuf; + + /* insert header */ + superbuf = gst_buffer_merge (mp4vparse->config, buffer); + gst_buffer_copy_metadata (superbuf, buffer, GST_BUFFER_COPY_ALL); + gst_buffer_replace (&frame->buffer, superbuf); + gst_buffer_unref (superbuf); + } else { + GST_LOG_OBJECT (parse, "... but avoiding duplication"); + } + + if (G_UNLIKELY (timestamp != -1)) { + mp4vparse->last_report = timestamp; + } + } + } + } + + return GST_FLOW_OK; +} + +static gboolean +gst_mpeg4vparse_set_caps (GstBaseParse * parse, GstCaps * caps) +{ + GstMpeg4VParse *mp4vparse = GST_MPEG4VIDEO_PARSE (parse); + GstStructure *s; + const GValue *value; + GstBuffer *buf; + guint8 *data; + gsize size; + + GstMpeg4Packet packet; + GstMpeg4ParseResult res; + + GST_DEBUG_OBJECT (parse, "setcaps called with %" GST_PTR_FORMAT, caps); + + s = gst_caps_get_structure (caps, 0); + + if ((value = gst_structure_get_value (s, "codec_data")) != NULL + && (buf = gst_value_get_buffer (value))) { + /* best possible parse attempt, + * src caps are based on sink caps so it will end up in there + * whether sucessful or not */ + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + res = gst_mpeg4_parse (&packet, TRUE, NULL, data, 0, size); + + while (res == GST_MPEG4_PARSER_OK || res == GST_MPEG4_PARSER_NO_PACKET_END) { + + if (packet.type >= GST_MPEG4_VIDEO_LAYER_FIRST && + packet.type <= GST_MPEG4_VIDEO_LAYER_LAST) + mp4vparse->vol_offset = packet.offset; + + res = gst_mpeg4_parse (&packet, TRUE, NULL, data, packet.offset, size); + } + + /* And take it as config */ + gst_mpeg4vparse_process_config (mp4vparse, GST_BUFFER_DATA (buf), + 3, GST_BUFFER_SIZE (buf)); + } + + /* let's not interfere and accept regardless of config parsing success */ + return TRUE; +} + + +static GstCaps * +gst_mpeg4vparse_get_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/videoparsers/gstmpeg4videoparse.h b/gst/videoparsers/gstmpeg4videoparse.h new file mode 100644 index 0000000..3036853 --- /dev/null +++ b/gst/videoparsers/gstmpeg4videoparse.h @@ -0,0 +1,76 @@ +/* GStreamer + * Copyright (C) <2007> 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 __MPEG4VIDEO_PARSE_H__ +#define __MPEG4VIDEO_PARSE_H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_MPEG4VIDEO_PARSE (gst_mpeg4vparse_get_type()) +#define GST_MPEG4VIDEO_PARSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\ + GST_TYPE_MPEG4VIDEO_PARSE, GstMpeg4VParse)) +#define GST_MPEG4VIDEO_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\ + GST_TYPE_MPEG4VIDEO_PARSE, GstMpeg4VParseClass)) +#define GST_MPEG4VIDEO_PARSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\ + GST_TYPE_MPEG4VIDEO_PARSE, GstMpeg4VParseClass)) +#define GST_IS_MPEG4VIDEO_PARSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\ + GST_TYPE_MPEG4VIDEO_PARSE)) +#define GST_IS_MPEG4VIDEO_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\ + GST_TYPE_MPEG4VIDEO_PARSE)) + +typedef struct _GstMpeg4VParse GstMpeg4VParse; +typedef struct _GstMpeg4VParseClass GstMpeg4VParseClass; + +struct _GstMpeg4VParse { + GstBaseParse element; + + GstClockTime last_report; + + /* parse state */ + gint last_sc; + gint vop_offset; + gboolean vo_found; + gboolean intra_frame; + gboolean update_caps; + + GstBuffer *config; + GstMpeg4VideoObjectLayer vol; + gboolean vol_offset; + const gchar *profile; + const gchar *level; + + /* properties */ + gboolean drop; + guint interval; +}; + +struct _GstMpeg4VParseClass { + GstBaseParseClass parent_class; +}; + +GType gst_mpeg4vparse_get_type (void); + +G_END_DECLS + +#endif /* __MPEG4VIDEO_PARSE_H__ */ diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c new file mode 100644 index 0000000..4486cf7 --- /dev/null +++ b/gst/videoparsers/gstmpegvideoparse.c @@ -0,0 +1,800 @@ +/* GStreamer + * Copyright (C) <2007> Jan Schmidt + * Copyright (C) <2011> Mark Nauwelaerts + * Copyright (C) <2011> Thibault Saunier + * Copyright (C) <2011> Collabora ltd + * Copyright (C) <2011> Nokia Corporation + * Copyright (C) <2011> Intel Corporation + * + * 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 "gstmpegvideoparse.h" + +GST_DEBUG_CATEGORY (mpegv_parse_debug); +#define GST_CAT_DEFAULT mpegv_parse_debug + +static GstStaticPadTemplate src_template = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) [1, 2], " + "parsed = (boolean) true, " "systemstream = (boolean) false") + ); + +static GstStaticPadTemplate sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) [1, 2], " "systemstream = (boolean) false") + ); + +/* Properties */ +#define DEFAULT_PROP_DROP TRUE +#define DEFAULT_PROP_GOP_SPLIT FALSE + +enum +{ + PROP_0, + PROP_DROP, + PROP_GOP_SPLIT, + PROP_LAST +}; + +GST_BOILERPLATE (GstMpegvParse, gst_mpegv_parse, GstBaseParse, + GST_TYPE_BASE_PARSE); + +static gboolean gst_mpegv_parse_start (GstBaseParse * parse); +static gboolean gst_mpegv_parse_stop (GstBaseParse * parse); +static gboolean gst_mpegv_parse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * framesize, gint * skipsize); +static GstFlowReturn gst_mpegv_parse_parse_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); +static gboolean gst_mpegv_parse_set_caps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_mpegv_parse_get_caps (GstBaseParse * parse); +static GstFlowReturn gst_mpegv_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); + +static void gst_mpegv_parse_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_mpegv_parse_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void +gst_mpegv_parse_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + + gst_element_class_set_details_simple (element_class, + "MPEG video elementary stream parser", + "Codec/Parser/Video", + "Parses and frames MPEG-1 and MPEG-2 elementary video streams", + "Wim Taymans , " + "Jan Schmidt , " + "Mark Nauwelaerts "); + + GST_DEBUG_CATEGORY_INIT (mpegv_parse_debug, "mpegvideoparse", 0, + "MPEG-1/2 video parser"); +} + +static void +gst_mpegv_parse_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GstMpegvParse *parse = GST_MPEGVIDEO_PARSE (object); + + switch (property_id) { + case PROP_DROP: + parse->drop = g_value_get_boolean (value); + break; + case PROP_GOP_SPLIT: + parse->gop_split = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gst_mpegv_parse_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + GstMpegvParse *parse = GST_MPEGVIDEO_PARSE (object); + + switch (property_id) { + case PROP_DROP: + g_value_set_boolean (value, parse->drop); + break; + case PROP_GOP_SPLIT: + g_value_set_boolean (value, parse->gop_split); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gst_mpegv_parse_class_init (GstMpegvParseClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->set_property = gst_mpegv_parse_set_property; + gobject_class->get_property = gst_mpegv_parse_get_property; + + g_object_class_install_property (gobject_class, PROP_DROP, + g_param_spec_boolean ("drop", "drop", + "Drop data untill valid configuration data is received either " + "in the stream or through caps", DEFAULT_PROP_DROP, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_GOP_SPLIT, + g_param_spec_boolean ("gop-split", "gop-split", + "Split frame when encountering GOP", DEFAULT_PROP_GOP_SPLIT, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /* Override BaseParse vfuncs */ + parse_class->start = GST_DEBUG_FUNCPTR (gst_mpegv_parse_start); + parse_class->stop = GST_DEBUG_FUNCPTR (gst_mpegv_parse_stop); + parse_class->check_valid_frame = + GST_DEBUG_FUNCPTR (gst_mpegv_parse_check_valid_frame); + parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_mpegv_parse_parse_frame); + parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_mpegv_parse_set_caps); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_mpegv_parse_get_caps); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_mpegv_parse_pre_push_frame); +} + +static void +gst_mpegv_parse_init (GstMpegvParse * parse, GstMpegvParseClass * g_class) +{ + parse->mpeg_version = 0; +} + +static void +gst_mpegv_parse_reset_frame (GstMpegvParse * mpvparse) +{ + /* done parsing; reset state */ + mpvparse->last_sc = -1; + mpvparse->seq_offset = G_MAXUINT; + mpvparse->pic_offset = -1; + mpvparse->frame_repeat_count = 0; +} + +static void +gst_mpegv_parse_reset (GstMpegvParse * mpvparse) +{ + gst_mpegv_parse_reset_frame (mpvparse); + mpvparse->profile = 0; + mpvparse->update_caps = TRUE; + mpvparse->send_codec_tag = TRUE; + + gst_buffer_replace (&mpvparse->config, NULL); + memset (&mpvparse->sequencehdr, 0, sizeof (mpvparse->sequencehdr)); + memset (&mpvparse->sequenceext, 0, sizeof (mpvparse->sequenceext)); + memset (&mpvparse->pichdr, 0, sizeof (mpvparse->pichdr)); +} + +static gboolean +gst_mpegv_parse_start (GstBaseParse * parse) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + + GST_DEBUG_OBJECT (parse, "start"); + + gst_mpegv_parse_reset (mpvparse); + /* at least this much for a valid frame */ + gst_base_parse_set_min_frame_size (parse, 6); + + return TRUE; +} + +static gboolean +gst_mpegv_parse_stop (GstBaseParse * parse) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + + GST_DEBUG_OBJECT (parse, "stop"); + + gst_mpegv_parse_reset (mpvparse); + + return TRUE; +} + +static gboolean +gst_mpegv_parse_process_config (GstMpegvParse * mpvparse, GstBuffer * buf, + guint size) +{ + GList *tmp; + guint8 *data = GST_BUFFER_DATA (buf); + data = data + mpvparse->seq_offset; + + /* only do stuff if something new */ + if (mpvparse->config && size == GST_BUFFER_SIZE (mpvparse->config) && + memcmp (GST_BUFFER_DATA (mpvparse->config), data, size) == 0) + return TRUE; + + if (gst_mpeg_video_parse_sequence_header (&mpvparse->sequencehdr, data, + GST_BUFFER_SIZE (buf) - mpvparse->seq_offset, 0)) { + if (mpvparse->fps_num == 0 || mpvparse->fps_den == 0) { + mpvparse->fps_num = mpvparse->sequencehdr.fps_n; + mpvparse->fps_den = mpvparse->sequencehdr.fps_d; + } + } else { + GST_DEBUG_OBJECT (mpvparse, + "failed to parse config data (size %d) at offset %d", + size, mpvparse->seq_offset); + return FALSE; + } + + GST_LOG_OBJECT (mpvparse, "accepting parsed config size %d", size); + + /* Set mpeg version, and parse sequence extension */ + if (mpvparse->mpeg_version <= 0) { + GstMpegVideoTypeOffsetSize *tpoffsz; + + mpvparse->mpeg_version = 1; + for (tmp = mpvparse->typeoffsize; tmp; tmp = tmp->next) { + tpoffsz = tmp->data; + + if (tpoffsz->type == GST_MPEG_VIDEO_PACKET_EXTENSION) { + mpvparse->mpeg_version = 2; + + if (gst_mpeg_video_parse_sequence_extension (&mpvparse->sequenceext, + GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), + tpoffsz->offset)) { + mpvparse->fps_num = + mpvparse->sequencehdr.fps_n * (mpvparse->sequenceext.fps_n_ext + + 1) * 2; + mpvparse->fps_den = + mpvparse->sequencehdr.fps_d * (mpvparse->sequenceext.fps_d_ext + + 1); + } + } + } + } + + /* parsing ok, so accept it as new config */ + if (mpvparse->config != NULL) + gst_buffer_unref (mpvparse->config); + + mpvparse->config = gst_buffer_new_and_alloc (size); + memcpy (GST_BUFFER_DATA (mpvparse->config), data, size); + + /* trigger src caps update */ + mpvparse->update_caps = TRUE; + + return TRUE; +} + +#ifndef GST_DISABLE_GST_DEBUG +static const gchar * +picture_start_code_name (guint8 psc) +{ + guint i; + const struct + { + guint8 psc; + const gchar *name; + } psc_names[] = { + { + 0x00, "Picture Start"}, { + 0xb0, "Reserved"}, { + 0xb1, "Reserved"}, { + 0xb2, "User Data Start"}, { + 0xb3, "Sequence Header Start"}, { + 0xb4, "Sequence Error"}, { + 0xb5, "Extension Start"}, { + 0xb6, "Reserved"}, { + 0xb7, "Sequence End"}, { + 0xb8, "Group Start"}, { + 0xb9, "Program End"} + }; + if (psc < 0xB0 && psc > 0) + return "Slice Start"; + + for (i = 0; i < G_N_ELEMENTS (psc_names); i++) + if (psc_names[i].psc == psc) + return psc_names[i].name; + + return "UNKNOWN"; +}; + +static const gchar * +picture_type_name (guint8 pct) +{ + guint i; + const struct + { + guint8 pct; + const gchar *name; + } pct_names[] = { + { + 0, "Forbidden"}, { + 1, "I Frame"}, { + 2, "P Frame"}, { + 3, "B Frame"}, { + 4, "DC Intra Coded (Shall Not Be Used!)"} + }; + + for (i = 0; i < G_N_ELEMENTS (pct_names); i++) + if (pct_names[i].pct == pct) + return pct_names[i].name; + + return "Reserved/Unknown"; +} +#endif /* GST_DISABLE_GST_DEBUG */ + +static void +parse_picture_extension (GstMpegvParse * mpvparse, GstBuffer * buf, guint off) +{ + GstMpegVideoPictureExt ext; + if (gst_mpeg_video_parse_picture_extension (&ext, GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf), off)) { + mpvparse->frame_repeat_count = 1; + + if (ext.repeat_first_field) { + if (mpvparse->sequenceext.progressive) { + if (ext.top_field_first) + mpvparse->frame_repeat_count = 5; + else + mpvparse->frame_repeat_count = 3; + } else if (ext.progressive_frame) { + mpvparse->frame_repeat_count = 2; + } + } + } +} + +/* caller guarantees at least start code in @buf at @off */ +/* for off == 0 initial code; returns TRUE if code starts a frame, + * otherwise returns TRUE if code terminates preceding frame */ +static gboolean +gst_mpegv_parse_process_sc (GstMpegvParse * mpvparse, + GstBuffer * buf, guint off, guint8 code) +{ + gboolean ret = FALSE, packet = TRUE; + + g_return_val_if_fail (buf && GST_BUFFER_SIZE (buf) >= 4, FALSE); + + GST_LOG_OBJECT (mpvparse, "process startcode %x (%s)", code, + picture_start_code_name (code)); + + switch (code) { + case GST_MPEG_VIDEO_PACKET_PICTURE: + GST_LOG_OBJECT (mpvparse, "startcode is PICTURE"); + /* picture is aggregated with preceding sequence/gop, if any. + * so, picture start code only ends if already a previous one */ + if (mpvparse->pic_offset < 0) + mpvparse->pic_offset = off; + else + ret = TRUE; + if (off == 4) + ret = TRUE; + break; + case GST_MPEG_VIDEO_PACKET_SEQUENCE: + GST_LOG_OBJECT (mpvparse, "startcode is SEQUENCE"); + if (off < mpvparse->seq_offset) + mpvparse->seq_offset = off; + ret = TRUE; + break; + case GST_MPEG_VIDEO_PACKET_GOP: + GST_LOG_OBJECT (mpvparse, "startcode is GOP"); + if (mpvparse->seq_offset < G_MAXUINT) + ret = mpvparse->gop_split; + else + ret = TRUE; + break; + case GST_MPEG_VIDEO_PACKET_EXTENSION: + GST_LOG_OBJECT (mpvparse, "startcode is VIDEO PACKET EXTENSION"); + parse_picture_extension (mpvparse, buf, off); + packet = FALSE; + default: + packet = FALSE; + break; + } + + if (mpvparse->seq_offset != G_MAXUINT && off != mpvparse->seq_offset && + packet) { + gst_mpegv_parse_process_config (mpvparse, buf, off - mpvparse->seq_offset); + mpvparse->seq_offset = G_MAXUINT; + } + + /* extract some picture info if there is any in the frame being terminated */ + if (ret && mpvparse->pic_offset >= 0 && mpvparse->pic_offset < off) { + if (gst_mpeg_video_parse_picture_header (&mpvparse->pichdr, + GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), mpvparse->pic_offset)) + GST_LOG_OBJECT (mpvparse, "picture_coding_type %d (%s), ending" + "frame of size %d", mpvparse->pichdr.pic_type, + picture_type_name (mpvparse->pichdr.pic_type), off - 4); + else + GST_LOG_OBJECT (mpvparse, "Couldn't parse picture at offset %d", + mpvparse->pic_offset); + } + + return ret; +} + +static inline gint +get_frame_size (GstMpegvParse * mpvparse, GstBuffer * buf, GList * l_codoffsz) +{ + GList *tmp; + GstMpegVideoTypeOffsetSize *codoffsz; + + for (tmp = l_codoffsz; tmp; tmp = tmp->next) { + codoffsz = tmp->data; + + GST_LOG_OBJECT (mpvparse, "next start code at %d", codoffsz->offset); + + if (gst_mpegv_parse_process_sc (mpvparse, buf, codoffsz->offset, + codoffsz->type)) + return codoffsz->offset - 4; + } + + return -1; +} + +/* FIXME move into baseparse, or anything equivalent; + * see https://bugzilla.gnome.org/show_bug.cgi?id=650093 */ +#define GST_BASE_PARSE_FRAME_FLAG_PARSING 0x10000 + +static inline void +update_frame_parsing_status (GstMpegvParse * mpvparse, + GstBaseParseFrame * frame) +{ + /* avoid stale cached parsing state */ + if (!(frame->flags & GST_BASE_PARSE_FRAME_FLAG_PARSING)) { + GST_LOG_OBJECT (mpvparse, "parsing new frame"); + gst_mpegv_parse_reset_frame (mpvparse); + frame->flags |= GST_BASE_PARSE_FRAME_FLAG_PARSING; + } else { + GST_LOG_OBJECT (mpvparse, "resuming frame parsing"); + } +} + + +static gboolean +gst_mpegv_parse_check_valid_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, guint * framesize, gint * skipsize) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + GstBuffer *buf = frame->buffer; + gboolean ret = FALSE; + GList *tmp; + gint off = 0, fsize = -1; + + update_frame_parsing_status (mpvparse, frame); + + if (mpvparse->last_sc >= 0) + off = mpvparse->last_sc; + + mpvparse->typeoffsize = + gst_mpeg_video_parse (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), off); + + /* No sc found */ + if (mpvparse->typeoffsize == NULL) + goto end; + + /* Already found the start code looking for the end */ + if (mpvparse->last_sc >= 0) { + *skipsize = 0; + fsize = get_frame_size (mpvparse, buf, mpvparse->typeoffsize); + + goto end; + } + + for (tmp = mpvparse->typeoffsize; tmp; tmp = g_list_next (tmp)) { + GstMpegVideoTypeOffsetSize *codoffsz = tmp->data; + + GST_LOG_OBJECT (mpvparse, "next start code at %d", codoffsz->offset); + + if (codoffsz->size < 0) + break; + + ret = gst_mpegv_parse_process_sc (mpvparse, buf, codoffsz->offset, + codoffsz->type); + + if (ret) { + *skipsize = 0; + fsize = get_frame_size (mpvparse, buf, tmp->next); + break; + } + } + +end: + if (fsize > 0) { + *framesize = fsize; + ret = TRUE; + } else if (GST_BASE_PARSE_DRAINING (parse)) { + *framesize = GST_BUFFER_SIZE (buf); + ret = TRUE; + + } else { + /* resume scan where we left it */ + if (!mpvparse->last_sc) + *skipsize = mpvparse->last_sc = GST_BUFFER_SIZE (buf) - 3; + else if (mpvparse->typeoffsize) + mpvparse->last_sc = GST_BUFFER_SIZE (buf) - 3; + else + *skipsize = 0; + + /* request best next available */ + *framesize = G_MAXUINT; + ret = FALSE; + } + + g_list_foreach (mpvparse->typeoffsize, (GFunc) g_free, NULL); + g_list_free (mpvparse->typeoffsize); + mpvparse->typeoffsize = NULL; + + return ret; +} + +static void +gst_mpegv_parse_update_src_caps (GstMpegvParse * mpvparse) +{ + GstCaps *caps = NULL; + + /* only update if no src caps yet or explicitly triggered */ + if (G_LIKELY (GST_PAD_CAPS (GST_BASE_PARSE_SRC_PAD (mpvparse)) && + !mpvparse->update_caps)) + return; + + /* carry over input caps as much as possible; override with our own stuff */ + caps = GST_PAD_CAPS (GST_BASE_PARSE_SINK_PAD (mpvparse)); + if (caps) { + caps = gst_caps_copy (caps); + } else { + caps = gst_caps_new_simple ("video/mpeg", NULL); + } + + /* typically we don't output buffers until we have properly parsed some + * config data, so we should at least know about version. + * If not, it means it has been requested not to drop data, and + * upstream and/or app must know what they are doing ... */ + + if (G_LIKELY (mpvparse->mpeg_version)) + gst_caps_set_simple (caps, + "mpegversion", G_TYPE_INT, mpvparse->mpeg_version, NULL); + + gst_caps_set_simple (caps, "systemstream", G_TYPE_BOOLEAN, FALSE, + "parsed", G_TYPE_BOOLEAN, TRUE, NULL); + + if (mpvparse->sequencehdr.width > 0 && mpvparse->sequencehdr.height > 0) { + gst_caps_set_simple (caps, "width", G_TYPE_INT, mpvparse->sequencehdr.width, + "height", G_TYPE_INT, mpvparse->sequencehdr.height, NULL); + } + + /* perhaps we have a framerate */ + if (mpvparse->fps_num > 0 && mpvparse->fps_den > 0) { + gint fps_num = mpvparse->fps_num; + gint fps_den = mpvparse->fps_den; + GstClockTime latency = gst_util_uint64_scale (GST_SECOND, fps_den, fps_num); + + gst_caps_set_simple (caps, "framerate", + GST_TYPE_FRACTION, fps_num, fps_den, NULL); + gst_base_parse_set_frame_rate (GST_BASE_PARSE (mpvparse), + fps_num, fps_den, 0, 0); + gst_base_parse_set_latency (GST_BASE_PARSE (mpvparse), latency, latency); + } + + /* or pixel-aspect-ratio */ + if (mpvparse->sequencehdr.par_w && mpvparse->sequencehdr.par_h > 0) { + gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION, + mpvparse->sequencehdr.par_w, mpvparse->sequencehdr.par_h, NULL); + } + + if (mpvparse->config != NULL) { + gst_caps_set_simple (caps, "codec_data", + GST_TYPE_BUFFER, mpvparse->config, NULL); + } + + if (mpvparse->mpeg_version == 2) { + const guint profile_c = mpvparse->sequenceext.profile; + const guint level_c = mpvparse->sequenceext.level; + const gchar *profile = NULL, *level = NULL; + /* + * Profile indication - 1 => High, 2 => Spatially Scalable, + * 3 => SNR Scalable, 4 => Main, 5 => Simple + * 4:2:2 and Multi-view have profile = 0, with the escape bit set to 1 + */ + const gchar *profiles[] = { "high", "spatial", "snr", "main", "simple" }; + /* + * Level indication - 4 => High, 6 => High-1440, 8 => Main, 10 => Low, + * except in the case of profile = 0 + */ + const gchar *levels[] = { "high", "high-1440", "main", "low" }; + + if (profile_c > 0 && profile_c < 6) + profile = profiles[profile_c - 1]; + + if ((level_c > 3) && (level_c < 11) && (level_c % 2 == 0)) + level = levels[(level_c >> 1) - 1]; + + if (profile_c == 8) { + /* Non-hierarchical profile */ + switch (level_c) { + case 2: + level = levels[0]; + case 5: + level = levels[2]; + profile = "4:2:2"; + break; + case 10: + level = levels[0]; + case 11: + level = levels[1]; + case 13: + level = levels[2]; + case 14: + level = levels[3]; + profile = "multiview"; + break; + default: + break; + } + } + + /* FIXME does it make sense to expose profile/level in the caps ? */ + + if (profile) + gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile, NULL); + else + GST_DEBUG_OBJECT (mpvparse, "Invalid profile - %u", profile_c); + + if (level) + gst_caps_set_simple (caps, "level", G_TYPE_STRING, level, NULL); + else + GST_DEBUG_OBJECT (mpvparse, "Invalid level - %u", level_c); + + gst_caps_set_simple (caps, "interlaced", + G_TYPE_BOOLEAN, !mpvparse->sequenceext.progressive, NULL); + } + + gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (mpvparse), caps); + gst_caps_unref (caps); +} + +static GstFlowReturn +gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + GstBuffer *buffer = frame->buffer; + + gst_mpegv_parse_update_src_caps (mpvparse); + + if (G_UNLIKELY (mpvparse->pichdr.pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_I)) + GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); + else + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); + + /* maybe only sequence in this buffer, though not recommended, + * so mark it as such and force 0 duration */ + if (G_UNLIKELY (mpvparse->pic_offset < 0)) { + GST_DEBUG_OBJECT (mpvparse, "frame holds no picture data"); + frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NO_FRAME; + GST_BUFFER_DURATION (buffer) = 0; + } + + GST_BUFFER_DURATION (buffer) = + (1 + mpvparse->frame_repeat_count) * GST_BUFFER_DURATION (buffer); + + if (G_UNLIKELY (mpvparse->drop && !mpvparse->config)) { + GST_DEBUG_OBJECT (mpvparse, "dropping frame as no config yet"); + return GST_BASE_PARSE_FLOW_DROPPED; + } else + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_mpegv_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + GstTagList *taglist; + + /* tag sending done late enough in hook to ensure pending events + * have already been sent */ + + if (G_UNLIKELY (mpvparse->send_codec_tag)) { + gchar *codec; + + /* codec tag */ + codec = g_strdup_printf ("MPEG %d Video", mpvparse->mpeg_version); + taglist = gst_tag_list_new (); + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, + GST_TAG_VIDEO_CODEC, codec, NULL); + g_free (codec); + + gst_element_found_tags_for_pad (GST_ELEMENT (mpvparse), + GST_BASE_PARSE_SRC_PAD (mpvparse), taglist); + + mpvparse->send_codec_tag = FALSE; + } + + /* usual clipping applies */ + frame->flags |= GST_BASE_PARSE_FRAME_FLAG_CLIP; + + return GST_FLOW_OK; +} + +static gboolean +gst_mpegv_parse_set_caps (GstBaseParse * parse, GstCaps * caps) +{ + GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); + GstStructure *s; + const GValue *value; + GstBuffer *buf; + + GST_DEBUG_OBJECT (parse, "setcaps called with %" GST_PTR_FORMAT, caps); + + s = gst_caps_get_structure (caps, 0); + + if ((value = gst_structure_get_value (s, "codec_data")) != NULL + && (buf = gst_value_get_buffer (value))) { + /* best possible parse attempt, + * src caps are based on sink caps so it will end up in there + * whether sucessful or not */ + gst_mpegv_parse_process_config (mpvparse, buf, GST_BUFFER_SIZE (buf)); + } + + /* let's not interfere and accept regardless of config parsing success */ + return TRUE; +} + +static GstCaps * +gst_mpegv_parse_get_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/videoparsers/gstmpegvideoparse.h b/gst/videoparsers/gstmpegvideoparse.h new file mode 100644 index 0000000..addd02b --- /dev/null +++ b/gst/videoparsers/gstmpegvideoparse.h @@ -0,0 +1,85 @@ +/* GStreamer + * Copyright (C) <2007> Jan Schmidt + * Copyright (C) <2011> Mark Nauwelaerts + * Copyright (C) <2011> Thibault Saunier + * Copyright (C) <2011> Collabora ltd + * Copyright (C) <2011> Nokia Corporation + * Copyright (C) <2011> Intel Corporation + * + * 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_MPEGVIDEO_PARSE_H__ +#define __GST_MPEGVIDEO_PARSE_H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_MPEGVIDEO_PARSE (gst_mpegv_parse_get_type()) +#define GST_MPEGVIDEO_PARSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\ + GST_TYPE_MPEGVIDEO_PARSE, GstMpegvParse)) +#define GST_MPEGVIDEO_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\ + GST_TYPE_MPEGVIDEO_PARSE, GstMpegvParseClass)) +#define GST_MPEGVIDEO_PARSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\ + GST_TYPE_MPEGVIDEO_PARSE, GstMpegvParseClass)) +#define GST_IS_MPEGVIDEO_PARSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\ + GST_TYPE_MPEGVIDEO_PARSE)) +#define GST_IS_MPEGVIDEO_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\ + GST_TYPE_MPEGVIDEO_PARSE)) + +typedef struct _GstMpegvParse GstMpegvParse; +typedef struct _GstMpegvParseClass GstMpegvParseClass; + +struct _GstMpegvParse { + GstBaseParse element; + + /* parse state */ + GList *typeoffsize; + gint last_sc; + gint seq_offset; + gint pic_offset; + gboolean update_caps; + gboolean send_codec_tag; + + GstBuffer *config; + guint8 profile; + guint mpeg_version; + GstMpegVideoSequenceHdr sequencehdr; + GstMpegVideoSequenceExt sequenceext; + GstMpegVideoPictureHdr pichdr; + + /* properties */ + gboolean drop; + gboolean gop_split; + + int fps_num; + int fps_den; + int frame_repeat_count; +}; + +struct _GstMpegvParseClass { + GstBaseParseClass parent_class; +}; + +GType gst_mpegv_parse_get_type (void); + +G_END_DECLS + +#endif /* __GST_MPEGVIDEO_PARSE_H__ */ diff --git a/gst/videoparsers/h263parse.c b/gst/videoparsers/h263parse.c index 1fdf223..14a5f67 100644 --- a/gst/videoparsers/h263parse.c +++ b/gst/videoparsers/h263parse.c @@ -21,7 +21,7 @@ */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include @@ -142,6 +142,8 @@ gst_h263_parse_get_params (H263Params * params, GstBuffer * buffer, /* Fill in width/height based on format */ params->width = sizetable[params->format][0]; params->height = sizetable[params->format][1]; + GST_DEBUG (" Picture width x height: %d x %d", + params->width, params->height); /* Default PAR is 12/11 */ params->parnum = 12; @@ -267,6 +269,36 @@ gst_h263_parse_get_params (H263Params * params, GstBuffer * buffer, guint32 cpfmt = 0; /* 5.1.5 CPFMT : Custom Picture Format (23 bits) */ +#ifdef GST_H263PARSE_MODIFICATION /* check format when parsing CPFMT */ + if (params->format == 6) { /* 110. custom source format */ + GST_DEBUG (" Source Format in OPPTYPE: %d (custom source format)", params->format); + if (!gst_bit_reader_get_bits_uint32 (&br, &cpfmt, 23)) + goto more; + if (!(cpfmt & 0x200)) { + GST_WARNING ("Corrupted CPFMT (0x%x)", cpfmt); + goto beach; + } + temp8 = cpfmt >> 19; /* aspect_ratio_info */ + params->height = (cpfmt & 0x1ff) * 4; /* 9bit */ + params->width = (((cpfmt >> 10) & 0x1ff) + 1) * 4; /* 9bit */ + if (temp8 == 0xf) { /* aspect extended: 15 */ + guint32 epar = 0; + /* 5.1.6 EPAR : Extended Pixel Aspect Ratio (16bits) */ + if (!gst_bit_reader_get_bits_uint32 (&br, &epar, 16)) + goto more; + params->parnum = epar >> 8; + params->pardenom = epar & 0xf; + } else { + params->parnum = partable[temp8][0]; + params->pardenom = partable[temp8][1]; + } + } else { + params->width = sizetable[params->format][0]; + params->height = sizetable[params->format][1]; + } + GST_DEBUG (" Picture width x height: %d x %d", + params->width, params->height); +#else if (!gst_bit_reader_get_bits_uint32 (&br, &cpfmt, 23)) goto more; if (!(cpfmt & 0x200)) { @@ -288,6 +320,7 @@ gst_h263_parse_get_params (H263Params * params, GstBuffer * buffer, params->parnum = partable[temp8][0]; params->pardenom = partable[temp8][1]; } +#endif if (params->custompcfpresent) { /* 5.1.7 CPCFC : Custom Picture Clock Frequency Code (8bits) */ @@ -453,7 +486,7 @@ beach: gint gst_h263_parse_get_profile (const H263Params * params) { - gboolean c, d, d1, d21, d22, e, f, f2, g, h, i, j, k, k0, k1, k2, l, m, n, o, + gboolean c, d, d1, d21, e, f, f2, g, h, i, j, k, k0, k1, l, m, n, o, p, q, r, s, t, u, v, w; /* FIXME: some parts of Annex C can be discovered, others can not */ @@ -462,7 +495,7 @@ gst_h263_parse_get_profile (const H263Params * params) /* d1: Annex D.1; d21: Annex D.2 with UUI=1; d22: Annex D.2 with UUI=01 */ d1 = (d && params->uui == UUI_ABSENT); d21 = (d && params->uui == UUI_IS_1); - d22 = (d && params->uui == UUI_IS_01); + /* d22 = (d && params->uui == UUI_IS_01); */ e = (params->features & H263_OPTION_SAC_MODE) != 0; /* f:Annex F.2 or F.3 may be used; f2: only Annex F.2 is used (we have no * way of detecting this right now */ @@ -476,7 +509,7 @@ gst_h263_parse_get_profile (const H263Params * params) /* k0: Annex K without submodes; k1: Annex K with ASO; k2: Annex K with RS */ k0 = (k && params->sss == 0x0); k1 = (k && params->sss == 0x2); - k2 = (k && params->sss == 0x1); + /* k2 = (k && params->sss == 0x1); */ l = FALSE; m = (params->type == PICTURE_IMPROVED_PB); n = (params->features & H263_OPTION_RPS_MODE) != 0; diff --git a/gst/videoparsers/h264parse.c b/gst/videoparsers/h264parse.c deleted file mode 100644 index 0fac34e..0000000 --- a/gst/videoparsers/h264parse.c +++ /dev/null @@ -1,1046 +0,0 @@ -/* GStreamer H.264 Parser - * Copyright (C) <2010> Mark Nauwelaerts - * Copyright (C) <2010> Collabora Multimedia - * Copyright (C) <2010> Nokia Corporation - * - * Some bits C-c,C-v'ed and s/4/3 from h264parse: - * (C) 2005 Michal Benes - * (C) 2008 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 "h264parse.h" - -#include - -GST_DEBUG_CATEGORY_EXTERN (h264_parse_debug); -#define GST_CAT_DEFAULT h264_parse_debug - -/* simple bitstream parser, automatically skips over - * emulation_prevention_three_bytes. */ -typedef struct -{ - const guint8 *orig_data; - const guint8 *data; - const guint8 *end; - /* bitpos in the cache of next bit */ - gint head; - /* cached bytes */ - guint64 cache; -} GstNalBs; - -static void -gst_nal_bs_init (GstNalBs * bs, const guint8 * data, guint size) -{ - bs->orig_data = data; - bs->data = data; - bs->end = data + size; - bs->head = 0; - /* fill with something other than 0 to detect emulation prevention bytes */ - bs->cache = 0xffffffff; -} - -static inline void -gst_nal_bs_get_data (GstNalBs * bs, const guint8 ** data, guint * size) -{ - *data = bs->orig_data; - *size = bs->end - bs->orig_data; -} - -static guint32 -gst_nal_bs_read (GstNalBs * bs, guint n) -{ - guint32 res = 0; - gint shift; - - if (n == 0) - return res; - - /* fill up the cache if we need to */ - while (bs->head < n) { - guint8 byte; - gboolean check_three_byte; - - check_three_byte = TRUE; - next_byte: - if (bs->data >= bs->end) { - /* we're at the end, can't produce more than head number of bits */ - n = bs->head; - break; - } - /* get the byte, this can be an emulation_prevention_three_byte that we need - * to ignore. */ - byte = *bs->data++; - if (check_three_byte && byte == 0x03 && ((bs->cache & 0xffff) == 0)) { - /* next byte goes unconditionally to the cache, even if it's 0x03 */ - check_three_byte = FALSE; - goto next_byte; - } - /* shift bytes in cache, moving the head bits of the cache left */ - bs->cache = (bs->cache << 8) | byte; - bs->head += 8; - } - - /* bring the required bits down and truncate */ - if ((shift = bs->head - n) > 0) - res = bs->cache >> shift; - else - res = bs->cache; - - /* mask out required bits */ - if (n < 32) - res &= (1 << n) - 1; - - bs->head = shift; - - return res; -} - -static gboolean -gst_nal_bs_eos (GstNalBs * bs) -{ - return (bs->data >= bs->end) && (bs->head == 0); -} - -/* read unsigned Exp-Golomb code */ -static gint -gst_nal_bs_read_ue (GstNalBs * bs) -{ - gint i = 0; - - while (gst_nal_bs_read (bs, 1) == 0 && !gst_nal_bs_eos (bs) && i < 32) - i++; - - return ((1 << i) - 1 + gst_nal_bs_read (bs, i)); -} - -/* read signed Exp-Golomb code */ -static gint -gst_nal_bs_read_se (GstNalBs * bs) -{ - gint i = 0; - - i = gst_nal_bs_read_ue (bs); - /* (-1)^(i+1) Ceil (i / 2) */ - i = (i + 1) / 2 * (i & 1 ? 1 : -1); - - return i; -} - -/* end parser helper */ - -static void -gst_h264_params_store_nal (GstH264Params * params, GstBuffer ** store, gint id, - GstNalBs * bs) -{ - const guint8 *data; - GstBuffer *buf; - guint size; - - g_return_if_fail (MAX_SPS_COUNT == MAX_PPS_COUNT); - - if (id >= MAX_SPS_COUNT) { - GST_DEBUG_OBJECT (params->el, - "unable to store nal, id out-of-range %d", id); - return; - } - - gst_nal_bs_get_data (bs, &data, &size); - buf = gst_buffer_new_and_alloc (size); - memcpy (GST_BUFFER_DATA (buf), data, size); - - if (store[id]) - gst_buffer_unref (store[id]); - - store[id] = buf; -} - -static GstH264ParamsSPS * -gst_h264_params_get_sps (GstH264Params * params, guint8 sps_id, gboolean set) -{ - GstH264ParamsSPS *sps; - - g_return_val_if_fail (params != NULL, NULL); - - if (G_UNLIKELY (sps_id >= MAX_SPS_COUNT)) { - GST_WARNING_OBJECT (params->el, - "requested sps_id=%04x out of range", sps_id); - return NULL; - } - - sps = ¶ms->sps_buffers[sps_id]; - if (set) { - if (sps->valid) { - params->sps = sps; - } else { - GST_WARNING_OBJECT (params->el, "invalid sps not selected"); - params->sps = NULL; - sps = NULL; - } - } - - return sps; -} - -static GstH264ParamsPPS * -gst_h264_params_get_pps (GstH264Params * params, guint8 pps_id, gboolean set) -{ - GstH264ParamsPPS *pps; - - g_return_val_if_fail (params != NULL, NULL); - - if (G_UNLIKELY (pps_id >= MAX_PPS_COUNT)) { - GST_WARNING_OBJECT (params->el, - "requested pps_id=%04x out of range", pps_id); - return NULL; - } - - pps = ¶ms->pps_buffers[pps_id]; - if (set) { - if (pps->valid) { - params->pps = pps; - } else { - GST_WARNING_OBJECT (params->el, "invalid pps not selected"); - params->pps = NULL; - pps = NULL; - } - } - - return pps; -} - -static gboolean -gst_h264_params_decode_sps_vui_hrd (GstH264Params * params, - GstH264ParamsSPS * sps, GstNalBs * bs) -{ - gint sched_sel_idx; - - sps->cpb_cnt_minus1 = gst_nal_bs_read_ue (bs); - if (sps->cpb_cnt_minus1 > 31U) { - GST_WARNING_OBJECT (params->el, "cpb_cnt_minus1 = %d out of range", - sps->cpb_cnt_minus1); - return FALSE; - } - - /* bit_rate_scale */ - gst_nal_bs_read (bs, 4); - /* cpb_size_scale */ - gst_nal_bs_read (bs, 4); - - for (sched_sel_idx = 0; sched_sel_idx <= sps->cpb_cnt_minus1; sched_sel_idx++) { - /* bit_rate_value_minus1 */ - gst_nal_bs_read_ue (bs); - /* cpb_size_value_minus1 */ - gst_nal_bs_read_ue (bs); - /* cbr_flag */ - gst_nal_bs_read (bs, 1); - } - - sps->initial_cpb_removal_delay_length_minus1 = gst_nal_bs_read (bs, 5); - sps->cpb_removal_delay_length_minus1 = gst_nal_bs_read (bs, 5); - sps->dpb_output_delay_length_minus1 = gst_nal_bs_read (bs, 5); - sps->time_offset_length_minus1 = gst_nal_bs_read (bs, 5); - - return TRUE; -} - -static gboolean -gst_h264_params_decode_sps_vui (GstH264Params * params, GstH264ParamsSPS * sps, - GstNalBs * bs) -{ - if (G_UNLIKELY (!sps)) - return FALSE; - - /* aspect_ratio_info_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* aspect_ratio_idc */ - if (gst_nal_bs_read (bs, 8) == 255) { - /* Extended_SAR */ - /* sar_width */ - gst_nal_bs_read (bs, 16); - /* sar_height */ - gst_nal_bs_read (bs, 16); - } - } - - /* overscan_info_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* overscan_appropriate_flag */ - gst_nal_bs_read (bs, 1); - } - - /* video_signal_type_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* video_format */ - gst_nal_bs_read (bs, 3); - /* video_full_range_flag */ - gst_nal_bs_read (bs, 1); - - /* colour_description_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* colour_primaries */ - gst_nal_bs_read (bs, 8); - /* transfer_characteristics */ - gst_nal_bs_read (bs, 8); - /* matrix_coefficients */ - gst_nal_bs_read (bs, 8); - } - } - - /* chroma_loc_info_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* chroma_sample_loc_type_top_field */ - gst_nal_bs_read_ue (bs); - /* chroma_sample_loc_type_bottom_field */ - gst_nal_bs_read_ue (bs); - } - - sps->timing_info_present_flag = gst_nal_bs_read (bs, 1); - if (sps->timing_info_present_flag) { - guint32 num_units_in_tick = gst_nal_bs_read (bs, 32); - guint32 time_scale = gst_nal_bs_read (bs, 32); - - /* If any of these parameters = 0, discard all timing_info */ - if (time_scale == 0) { - GST_WARNING_OBJECT (params->el, - "time_scale = 0 detected in stream (incompliant to H.264 E.2.1)." - " Discarding related info."); - } else if (num_units_in_tick == 0) { - GST_WARNING_OBJECT (params->el, - "num_units_in_tick = 0 detected in stream (incompliant to H.264 E.2.1)." - " Discarding related info."); - } else { - sps->num_units_in_tick = num_units_in_tick; - sps->time_scale = time_scale; - sps->fixed_frame_rate_flag = gst_nal_bs_read (bs, 1); - GST_LOG_OBJECT (params->el, "timing info: dur=%d/%d fixed=%d", - num_units_in_tick, time_scale, sps->fixed_frame_rate_flag); - } - } - - sps->nal_hrd_parameters_present_flag = gst_nal_bs_read (bs, 1); - if (sps->nal_hrd_parameters_present_flag) { - gst_h264_params_decode_sps_vui_hrd (params, sps, bs); - } - sps->vcl_hrd_parameters_present_flag = gst_nal_bs_read (bs, 1); - if (sps->vcl_hrd_parameters_present_flag) { - gst_h264_params_decode_sps_vui_hrd (params, sps, bs); - } - if (sps->nal_hrd_parameters_present_flag - || sps->vcl_hrd_parameters_present_flag) { - gst_nal_bs_read (bs, 1); /* low_delay_hrd_flag */ - } - - sps->pic_struct_present_flag = gst_nal_bs_read (bs, 1); - - /* derive framerate */ - /* FIXME verify / also handle other cases */ - if (sps->fixed_frame_rate_flag && sps->frame_mbs_only_flag && - !sps->pic_struct_present_flag) { - sps->fps_num = sps->time_scale; - sps->fps_den = sps->num_units_in_tick; - /* picture is a frame = 2 fields */ - sps->fps_den *= 2; - GST_LOG_OBJECT (params->el, "framerate %d/%d", sps->fps_num, sps->fps_den); - } - - return TRUE; -} - -static gboolean -gst_h264_params_decode_sps (GstH264Params * params, GstNalBs * bs) -{ - guint8 profile_idc, level_idc; - guint8 sps_id; - GstH264ParamsSPS *sps = NULL; - guint subwc[] = { 1, 2, 2, 1 }; - guint subhc[] = { 1, 2, 1, 1 }; - guint chroma; - guint fc_top, fc_bottom, fc_left, fc_right; - gint width, height; - - profile_idc = gst_nal_bs_read (bs, 8); - /* constraint_set0_flag */ - gst_nal_bs_read (bs, 1); - /* constraint_set1_flag */ - gst_nal_bs_read (bs, 1); - /* constraint_set1_flag */ - gst_nal_bs_read (bs, 1); - /* constraint_set1_flag */ - gst_nal_bs_read (bs, 1); - /* reserved */ - gst_nal_bs_read (bs, 4); - level_idc = gst_nal_bs_read (bs, 8); - - sps_id = gst_nal_bs_read_ue (bs); - sps = gst_h264_params_get_sps (params, sps_id, FALSE); - if (G_UNLIKELY (sps == NULL)) - return FALSE; - - gst_h264_params_store_nal (params, params->sps_nals, sps_id, bs); - - /* could be redefined mid stream, arrange for clear state */ - memset (sps, 0, sizeof (*sps)); - - GST_LOG_OBJECT (params->el, "sps id %d", sps_id); - sps->valid = TRUE; - /* validate and force activate this one if it is the first SPS we see */ - if (params->sps == NULL) - params->sps = sps; - - sps->profile_idc = profile_idc; - sps->level_idc = level_idc; - - if (profile_idc == 100 || profile_idc == 110 || profile_idc == 122 - || profile_idc == 244 || profile_idc == 44 || - profile_idc == 83 || profile_idc == 86) { - gint scp_flag = 0; - - /* chroma_format_idc */ - if ((chroma = gst_nal_bs_read_ue (bs)) == 3) { - /* separate_colour_plane_flag */ - sps->scp_flag = gst_nal_bs_read (bs, 1); - } - /* bit_depth_luma_minus8 */ - gst_nal_bs_read_ue (bs); - /* bit_depth_chroma_minus8 */ - gst_nal_bs_read_ue (bs); - /* qpprime_y_zero_transform_bypass_flag */ - gst_nal_bs_read (bs, 1); - /* seq_scaling_matrix_present_flag */ - if (gst_nal_bs_read (bs, 1)) { - gint i, j, m, d; - - m = (chroma != 3) ? 8 : 12; - for (i = 0; i < m; i++) { - /* seq_scaling_list_present_flag[i] */ - d = gst_nal_bs_read (bs, 1); - if (d) { - gint lastScale = 8, nextScale = 8, deltaScale; - - j = (i < 6) ? 16 : 64; - for (; j > 0; j--) { - if (nextScale != 0) { - deltaScale = gst_nal_bs_read_se (bs); - nextScale = (lastScale + deltaScale + 256) % 256; - } - if (nextScale != 0) - lastScale = nextScale; - } - } - } - } - if (scp_flag) - chroma = 0; - } else { - /* inferred value */ - chroma = 1; - } - - /* between 0 and 12 */ - sps->log2_max_frame_num_minus4 = gst_nal_bs_read_ue (bs); - if (sps->log2_max_frame_num_minus4 > 12) { - GST_WARNING_OBJECT (params->el, - "log2_max_frame_num_minus4 = %d out of range" " [0,12]", - sps->log2_max_frame_num_minus4); - return FALSE; - } - - sps->pic_order_cnt_type = gst_nal_bs_read_ue (bs); - if (sps->pic_order_cnt_type == 0) { - sps->log2_max_pic_order_cnt_lsb_minus4 = gst_nal_bs_read_ue (bs); - } else if (sps->pic_order_cnt_type == 1) { - gint d; - - /* delta_pic_order_always_zero_flag */ - gst_nal_bs_read (bs, 1); - /* offset_for_non_ref_pic */ - gst_nal_bs_read_ue (bs); - /* offset_for_top_to_bottom_field */ - gst_nal_bs_read_ue (bs); - /* num_ref_frames_in_pic_order_cnt_cycle */ - d = gst_nal_bs_read_ue (bs); - for (; d > 0; d--) { - /* offset_for_ref_frame[i] */ - gst_nal_bs_read_ue (bs); - } - } - - /* max_num_ref_frames */ - gst_nal_bs_read_ue (bs); - /* gaps_in_frame_num_value_allowed_flag */ - gst_nal_bs_read (bs, 1); - /* pic_width_in_mbs_minus1 */ - width = gst_nal_bs_read_ue (bs); - /* pic_height_in_map_units_minus1 */ - height = gst_nal_bs_read_ue (bs); - - sps->frame_mbs_only_flag = gst_nal_bs_read (bs, 1); - if (!sps->frame_mbs_only_flag) { - /* mb_adaptive_frame_field_flag */ - gst_nal_bs_read (bs, 1); - } - - width++; - width *= 16; - height++; - height *= 16 * (2 - sps->frame_mbs_only_flag); - - /* direct_8x8_inference_flag */ - gst_nal_bs_read (bs, 1); - /* frame_cropping_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* frame_crop_left_offset */ - fc_left = gst_nal_bs_read_ue (bs); - /* frame_crop_right_offset */ - fc_right = gst_nal_bs_read_ue (bs); - /* frame_crop_top_offset */ - fc_top = gst_nal_bs_read_ue (bs); - /* frame_crop_bottom_offset */ - fc_bottom = gst_nal_bs_read_ue (bs); - } else { - fc_left = fc_right = fc_top = fc_bottom = 0; - } - - GST_LOG_OBJECT (params->el, "decoding SPS: profile_idc = %d, " - "level_idc = %d, sps_id = %d, pic_order_cnt_type = %d, " - "frame_mbs_only_flag = %d", - sps->profile_idc, sps->level_idc, sps_id, sps->pic_order_cnt_type, - sps->frame_mbs_only_flag); - - /* calculate width and height */ - GST_LOG_OBJECT (params->el, "initial width=%d, height=%d", width, height); - GST_LOG_OBJECT (params->el, "crop (%d,%d)(%d,%d)", - fc_left, fc_top, fc_right, fc_bottom); - if (chroma > 3) { - GST_LOG_OBJECT (params->el, "chroma=%d in SPS is out of range", chroma); - return FALSE; - } - width -= (fc_left + fc_right) * subwc[chroma]; - height -= - (fc_top + fc_bottom) * subhc[chroma] * (2 - sps->frame_mbs_only_flag); - if (width < 0 || height < 0) { - GST_WARNING_OBJECT (params->el, "invalid width/height in SPS"); - return FALSE; - } - GST_LOG_OBJECT (params->el, "final width=%u, height=%u", width, height); - sps->width = width; - sps->height = height; - - sps->vui_parameters_present_flag = gst_nal_bs_read (bs, 1); - if (sps->vui_parameters_present_flag) { - /* discard parsing problem */ - gst_h264_params_decode_sps_vui (params, sps, bs); - } - - return TRUE; -} - -static gboolean -gst_h264_params_decode_pps (GstH264Params * params, GstNalBs * bs) -{ - guint8 pps_id; - GstH264ParamsPPS *pps = NULL; - - pps_id = gst_nal_bs_read_ue (bs); - - pps = gst_h264_params_get_pps (params, pps_id, FALSE); - if (G_UNLIKELY (pps == NULL)) - return FALSE; - - /* validate and set */ - pps->valid = TRUE; - params->pps = pps; - - gst_h264_params_store_nal (params, params->pps_nals, pps_id, bs); - - pps->sps_id = gst_nal_bs_read_ue (bs); - GST_LOG_OBJECT (params->el, "pps %d referencing sps %d", pps_id, pps->sps_id); - - /* activate referenced sps */ - if (!gst_h264_params_get_sps (params, pps->sps_id, TRUE)) - return FALSE; - - /* not parsing the rest for the time being */ - return TRUE; -} - -static gboolean -gst_h264_params_decode_sei_buffering_period (GstH264Params * params, - GstNalBs * bs) -{ -#ifdef EXTRA_PARSE - guint8 sps_id; - gint sched_sel_idx; - GstH264ParamsSPS *sps; - - sps_id = gst_nal_bs_read_ue (bs); - sps = gst_h264_params_get_sps (params, sps_id, TRUE); - if (G_UNLIKELY (sps == NULL)) - return FALSE; - - if (sps->nal_hrd_parameters_present_flag) { - for (sched_sel_idx = 0; sched_sel_idx <= sps->cpb_cnt_minus1; - sched_sel_idx++) { - params->initial_cpb_removal_delay[sched_sel_idx] - = gst_nal_bs_read (bs, - sps->initial_cpb_removal_delay_length_minus1 + 1); - /* initial_cpb_removal_delay_offset */ - gst_nal_bs_read (bs, sps->initial_cpb_removal_delay_length_minus1 + 1); - } - } - - if (sps->vcl_hrd_parameters_present_flag) { - for (sched_sel_idx = 0; sched_sel_idx <= sps->cpb_cnt_minus1; - sched_sel_idx++) { - params->initial_cpb_removal_delay[sched_sel_idx] - = gst_nal_bs_read (bs, - sps->initial_cpb_removal_delay_length_minus1 + 1); - /* initial_cpb_removal_delay_offset */ - gst_nal_bs_read (bs, sps->initial_cpb_removal_delay_length_minus1 + 1); - } - } -#endif - - if (params->ts_trn_nb == GST_CLOCK_TIME_NONE || - params->dts == GST_CLOCK_TIME_NONE) - params->ts_trn_nb = 0; - else - params->ts_trn_nb = params->dts; - - GST_LOG_OBJECT (params->el, - "new buffering period; ts_trn_nb updated: %" GST_TIME_FORMAT, - GST_TIME_ARGS (params->ts_trn_nb)); - - return 0; -} - -static gboolean -gst_h264_params_decode_sei_picture_timing (GstH264Params * params, - GstNalBs * bs) -{ - GstH264ParamsSPS *sps = params->sps; - - if (sps == NULL) { - GST_WARNING_OBJECT (params->el, - "SPS == NULL; delayed decoding of picture timing info not implemented "); - return FALSE; - } - - if (sps->nal_hrd_parameters_present_flag - || sps->vcl_hrd_parameters_present_flag) { - params->sei_cpb_removal_delay = - gst_nal_bs_read (bs, sps->cpb_removal_delay_length_minus1 + 1); - /* sei_dpb_output_delay */ - gst_nal_bs_read (bs, sps->dpb_output_delay_length_minus1 + 1); - } - - if (sps->pic_struct_present_flag) { -#ifdef EXTRA_PARSE - /* pic_struct to NumClockTS lookup table */ - static const guint8 sei_num_clock_ts_table[9] = - { 1, 1, 1, 2, 2, 3, 3, 2, 3 }; - guint i, num_clock_ts; - guint sei_ct_type = 0; -#endif - - params->sei_pic_struct = gst_nal_bs_read (bs, 4); - GST_LOG_OBJECT (params, "pic_struct:%d", params->sei_pic_struct); - if (params->sei_pic_struct > SEI_PIC_STRUCT_FRAME_TRIPLING) - return FALSE; - -#ifdef EXTRA_PARSE - num_clock_ts = sei_num_clock_ts_table[params->sei_pic_struct]; - - for (i = 0; i < num_clock_ts; i++) { - /* clock_timestamp_flag */ - if (gst_nal_bs_read (bs, 1)) { - guint full_timestamp_flag; - - sei_ct_type |= 1 << gst_nal_bs_read (bs, 2); - /* nuit_field_based_flag */ - gst_nal_bs_read (bs, 1); - /* counting_type */ - gst_nal_bs_read (bs, 5); - full_timestamp_flag = gst_nal_bs_read (bs, 1); - /* discontinuity_flag */ - gst_nal_bs_read (bs, 1); - /* cnt_dropped_flag */ - gst_nal_bs_read (bs, 1); - /* n_frames */ - gst_nal_bs_read (bs, 8); - if (full_timestamp_flag) { - /* seconds_value 0..59 */ - gst_nal_bs_read (bs, 6); - /* minutes_value 0..59 */ - gst_nal_bs_read (bs, 6); - /* hours_value 0..23 */ - gst_nal_bs_read (bs, 5); - } else { - /* seconds_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* seconds_value range 0..59 */ - gst_nal_bs_read (bs, 6); - /* minutes_flag */ - if (gst_nal_bs_read (bs, 1)) { - /* minutes_value 0..59 */ - gst_nal_bs_read (bs, 6); - /* hours_flag */ - if (gst_nal_bs_read (bs, 1)) - /* hours_value 0..23 */ - gst_nal_bs_read (bs, 5); - } - } - } - if (sps->time_offset_length_minus1 >= 0) { - /* time_offset */ - gst_nal_bs_read (bs, sps->time_offset_length_minus1 + 1); - } - } - } - - GST_LOG_OBJECT (params, "ct_type:%X", sei_ct_type); -#endif - } - - return TRUE; -} - -static gboolean -gst_h264_params_decode_sei (GstH264Params * params, GstNalBs * bs) -{ - guint8 tmp; - GstH264ParamsSEIPayloadType payloadType = 0; - gint8 payloadSize = 0; - - do { - tmp = gst_nal_bs_read (bs, 8); - payloadType += tmp; - } while (tmp == 255); - do { - tmp = gst_nal_bs_read (bs, 8); - payloadSize += tmp; - } while (tmp == 255); - - GST_LOG_OBJECT (params->el, - "SEI message received: payloadType = %d, payloadSize = %d bytes", - payloadType, payloadSize); - - switch (payloadType) { - case SEI_BUF_PERIOD: - if (!gst_h264_params_decode_sei_buffering_period (params, bs)) - return FALSE; - break; - case SEI_PIC_TIMING: - /* TODO: According to H264 D2.2 Note1, it might be the case that the - * picture timing SEI message is encountered before the corresponding SPS - * is specified. Need to hold down the message and decode it later. */ - if (!gst_h264_params_decode_sei_picture_timing (params, bs)) - return FALSE; - break; - default: - GST_LOG_OBJECT (params->el, - "SEI message of payloadType = %d is received but not parsed", - payloadType); - break; - } - - return TRUE; -} - -static gboolean -gst_h264_params_decode_slice_header (GstH264Params * params, GstNalBs * bs) -{ - GstH264ParamsSPS *sps; - GstH264ParamsPPS *pps; - guint8 pps_id; - - params->first_mb_in_slice = gst_nal_bs_read_ue (bs); - params->slice_type = gst_nal_bs_read_ue (bs); - - pps_id = gst_nal_bs_read_ue (bs); - GST_LOG_OBJECT (params->el, "slice header references pps id %d", pps_id); - pps = gst_h264_params_get_pps (params, pps_id, TRUE); - if (G_UNLIKELY (pps == NULL)) - return FALSE; - sps = gst_h264_params_get_sps (params, pps->sps_id, TRUE); - if (G_UNLIKELY (sps == NULL)) - return FALSE; - - if (sps->scp_flag) { - /* colour_plane_id */ - gst_nal_bs_read (bs, 2); - } - - /* frame num */ - gst_nal_bs_read (bs, sps->log2_max_pic_order_cnt_lsb_minus4 + 4); - - if (!sps->frame_mbs_only_flag) { - params->field_pic_flag = gst_nal_bs_read (bs, 1); - if (params->field_pic_flag) - params->bottom_field_flag = gst_nal_bs_read (bs, 1); - } - - /* not parsing the rest for the time being */ - return TRUE; -} - -/* only payload in @data */ -gboolean -gst_h264_params_parse_nal (GstH264Params * params, guint8 * data, gint size) -{ - GstH264ParamsNalUnitType nal_type; - GstNalBs bs; - gint nal_ref_idc; - gboolean res = TRUE; - - g_return_val_if_fail (params != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (size != 0, FALSE); - - nal_type = (data[0] & 0x1f); - nal_ref_idc = (data[0] & 0x60) >> 5; - - GST_LOG_OBJECT (params->el, "NAL type: %d, ref_idc: %d", nal_type, - nal_ref_idc); - - gst_nal_bs_init (&bs, data + 1, size - 1); - /* optimality HACK */ - bs.orig_data = data; - - /* first parse some things needed to get to the frame type */ - switch (nal_type) { - case NAL_SLICE: - case NAL_SLICE_DPA: - case NAL_SLICE_DPB: - case NAL_SLICE_DPC: - case NAL_SLICE_IDR: - { - gint first_mb_in_slice, slice_type; - - gst_h264_params_decode_slice_header (params, &bs); - first_mb_in_slice = params->first_mb_in_slice; - slice_type = params->slice_type; - - GST_LOG_OBJECT (params->el, "first MB: %d, slice type: %d", - first_mb_in_slice, slice_type); - - switch (slice_type) { - case 0: - case 5: - case 3: - case 8: /* SP */ - /* P frames */ - GST_LOG_OBJECT (params->el, "we have a P slice"); - break; - case 1: - case 6: - /* B frames */ - GST_LOG_OBJECT (params->el, "we have a B slice"); - break; - case 2: - case 7: - case 4: - case 9: - /* I frames */ - GST_LOG_OBJECT (params->el, "we have an I slice"); - break; - } - break; - } - case NAL_SEI: - GST_LOG_OBJECT (params->el, "SEI NAL"); - res = gst_h264_params_decode_sei (params, &bs); - break; - case NAL_SPS: - GST_LOG_OBJECT (params->el, "SPS NAL"); - res = gst_h264_params_decode_sps (params, &bs); - break; - case NAL_PPS: - GST_LOG_OBJECT (params->el, "PPS NAL"); - res = gst_h264_params_decode_pps (params, &bs); - break; - case NAL_AU_DELIMITER: - GST_LOG_OBJECT (params->el, "AU delimiter NAL"); - break; - default: - GST_LOG_OBJECT (params->el, "unparsed NAL"); - break; - } - - return res; -} - -void -gst_h264_params_get_timestamp (GstH264Params * params, - GstClockTime * out_ts, GstClockTime * out_dur, gboolean frame) -{ - GstH264ParamsSPS *sps = params->sps; - GstClockTime upstream; - gint duration = 1; - - g_return_if_fail (out_dur != NULL); - g_return_if_fail (out_ts != NULL); - - upstream = *out_ts; - - if (!frame) { - GST_LOG_OBJECT (params->el, "no frame data -> 0 duration"); - *out_dur = 0; - goto exit; - } else { - *out_ts = upstream; - } - - if (!sps) { - GST_DEBUG_OBJECT (params->el, "referred SPS invalid"); - goto exit; - } else if (!sps->timing_info_present_flag) { - GST_DEBUG_OBJECT (params->el, - "unable to compute timestamp: timing info not present"); - goto exit; - } else if (sps->time_scale == 0) { - GST_DEBUG_OBJECT (params->el, - "unable to compute timestamp: time_scale = 0 " - "(this is forbidden in spec; bitstream probably contains error)"); - goto exit; - } - - if (sps->pic_struct_present_flag && params->sei_pic_struct != (guint8) - 1) { - /* Note that when h264parse->sei_pic_struct == -1 (unspecified), there - * are ways to infer its value. This is related to computing the - * TopFieldOrderCnt and BottomFieldOrderCnt, which looks - * complicated and thus not implemented for the time being. Yet - * the value we have here is correct for many applications - */ - switch (params->sei_pic_struct) { - case SEI_PIC_STRUCT_TOP_FIELD: - case SEI_PIC_STRUCT_BOTTOM_FIELD: - duration = 1; - break; - case SEI_PIC_STRUCT_FRAME: - case SEI_PIC_STRUCT_TOP_BOTTOM: - case SEI_PIC_STRUCT_BOTTOM_TOP: - duration = 2; - break; - case SEI_PIC_STRUCT_TOP_BOTTOM_TOP: - case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: - duration = 3; - break; - case SEI_PIC_STRUCT_FRAME_DOUBLING: - duration = 4; - break; - case SEI_PIC_STRUCT_FRAME_TRIPLING: - duration = 6; - break; - default: - GST_DEBUG_OBJECT (params, - "h264parse->sei_pic_struct of unknown value %d. Not parsed", - params->sei_pic_struct); - break; - } - } else { - duration = params->field_pic_flag ? 1 : 2; - } - - GST_LOG_OBJECT (params->el, "frame tick duration %d", duration); - - /* - * h264parse.264 C.1.2 Timing of coded picture removal (equivalent to DTS): - * Tr,n(0) = initial_cpb_removal_delay[ SchedSelIdx ] / 90000 - * Tr,n(n) = Tr,n(nb) + Tc * cpb_removal_delay(n) - * where - * Tc = num_units_in_tick / time_scale - */ - - if (params->ts_trn_nb != GST_CLOCK_TIME_NONE) { - GST_LOG_OBJECT (params->el, "buffering based ts"); - /* buffering period is present */ - if (upstream != GST_CLOCK_TIME_NONE) { - /* If upstream timestamp is valid, we respect it and adjust current - * reference point */ - params->ts_trn_nb = upstream - - (GstClockTime) gst_util_uint64_scale_int - (params->sei_cpb_removal_delay * GST_SECOND, - sps->num_units_in_tick, sps->time_scale); - } else { - /* If no upstream timestamp is given, we write in new timestamp */ - upstream = params->dts = params->ts_trn_nb + - (GstClockTime) gst_util_uint64_scale_int - (params->sei_cpb_removal_delay * GST_SECOND, - sps->num_units_in_tick, sps->time_scale); - } - } else { - GstClockTime dur; - - GST_LOG_OBJECT (params->el, "duration based ts"); - /* naive method: no removal delay specified - * track upstream timestamp and provide best guess frame duration */ - dur = gst_util_uint64_scale_int (duration * GST_SECOND, - sps->num_units_in_tick, sps->time_scale); - /* sanity check */ - if (dur < GST_MSECOND) { - GST_DEBUG_OBJECT (params->el, "discarding dur %" GST_TIME_FORMAT, - GST_TIME_ARGS (dur)); - } else { - *out_dur = dur; - } - } - -exit: - if (GST_CLOCK_TIME_IS_VALID (upstream)) - *out_ts = params->dts = upstream; - - if (GST_CLOCK_TIME_IS_VALID (*out_dur) && - GST_CLOCK_TIME_IS_VALID (params->dts)) - params->dts += *out_dur; -} - -void -gst_h264_params_create (GstH264Params ** _params, GstElement * element) -{ - GstH264Params *params; - - g_return_if_fail (_params != NULL); - - params = g_new0 (GstH264Params, 1); - params->el = element; - - params->dts = GST_CLOCK_TIME_NONE; - params->ts_trn_nb = GST_CLOCK_TIME_NONE; - - *_params = params; -} - -void -gst_h264_params_free (GstH264Params * params) -{ - gint i; - - g_return_if_fail (params != NULL); - - for (i = 0; i < MAX_SPS_COUNT; i++) - gst_buffer_replace (¶ms->sps_nals[i], NULL); - for (i = 0; i < MAX_PPS_COUNT; i++) - gst_buffer_replace (¶ms->pps_nals[i], NULL); - - g_free (params); -} diff --git a/gst/videoparsers/h264parse.h b/gst/videoparsers/h264parse.h deleted file mode 100644 index 141564b..0000000 --- a/gst/videoparsers/h264parse.h +++ /dev/null @@ -1,186 +0,0 @@ -/* GStreamer H.264 Parser - * Copyright (C) <2010> Mark Nauwelaerts - * Copyright (C) <2010> Collabora Multimedia - * Copyright (C) <2010> Nokia Corporation - * - * Some bits C-c,C-v'ed and s/4/3 from h264parse: - * (C) 2005 Michal Benes - * (C) 2008 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. - */ - -#ifndef __GST_H264_PARAMS_H__ -#define __GST_H264_PARAMS_H__ - -#include - -G_BEGIN_DECLS - -typedef enum -{ - NAL_UNKNOWN = 0, - NAL_SLICE = 1, - NAL_SLICE_DPA = 2, - NAL_SLICE_DPB = 3, - NAL_SLICE_DPC = 4, - NAL_SLICE_IDR = 5, - NAL_SEI = 6, - NAL_SPS = 7, - NAL_PPS = 8, - NAL_AU_DELIMITER = 9, - NAL_SEQ_END = 10, - NAL_STREAM_END = 11, - NAL_FILTER_DATA = 12 -} GstH264ParamsNalUnitType; - -/* SEI type */ -typedef enum -{ - SEI_BUF_PERIOD = 0, - SEI_PIC_TIMING = 1 - /* and more... */ -} GstH264ParamsSEIPayloadType; - -/* SEI pic_struct type */ -typedef enum -{ - SEI_PIC_STRUCT_FRAME = 0, - SEI_PIC_STRUCT_TOP_FIELD = 1, - SEI_PIC_STRUCT_BOTTOM_FIELD = 2, - SEI_PIC_STRUCT_TOP_BOTTOM = 3, - SEI_PIC_STRUCT_BOTTOM_TOP = 4, - SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, - SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, - SEI_PIC_STRUCT_FRAME_DOUBLING = 7, - SEI_PIC_STRUCT_FRAME_TRIPLING = 8 -} GstH264ParamsSEIPicStructType; - -typedef struct _GstH264Params GstH264Params; -typedef struct _GstH264ParamsSPS GstH264ParamsSPS; -typedef struct _GstH264ParamsPPS GstH264ParamsPPS; - -#define MAX_SPS_COUNT 32 -#define MAX_PPS_COUNT 32 - -/* SPS: sequential parameter sets */ -struct _GstH264ParamsSPS -{ - gboolean valid; - - /* raw values */ - guint8 profile_idc; - guint8 level_idc; - - guint8 sps_id; - - guint8 pic_order_cnt_type; - - guint8 log2_max_frame_num_minus4; - gboolean frame_mbs_only_flag; - guint8 log2_max_pic_order_cnt_lsb_minus4; - - gboolean frame_cropping_flag; - gboolean scp_flag; - - /* VUI parameters */ - gboolean vui_parameters_present_flag; - - gboolean timing_info_present_flag; - guint32 num_units_in_tick; - guint32 time_scale; - gboolean fixed_frame_rate_flag; - - gboolean nal_hrd_parameters_present_flag; - gboolean vcl_hrd_parameters_present_flag; - - /* hrd parameters */ - guint8 cpb_cnt_minus1; - gint initial_cpb_removal_delay_length_minus1; - gint cpb_removal_delay_length_minus1; - gint dpb_output_delay_length_minus1; - gboolean time_offset_length_minus1; - - gboolean pic_struct_present_flag; - - /* ... and probably more ... */ - - /* derived values */ - gint width, height; - gint fps_num, fps_den; -}; - -/* PPS: pic parameter sets */ -struct _GstH264ParamsPPS -{ - gboolean valid; - - /* raw values */ - guint8 pps_id; - guint8 sps_id; -}; - -struct _GstH264Params -{ - /* debug purposes */ - GstElement *el; - - /* SPS: sequential parameter set */ - GstH264ParamsSPS sps_buffers[MAX_SPS_COUNT]; - /* current SPS; most recent one in stream or referenced by PPS */ - GstH264ParamsSPS *sps; - /* PPS: sequential parameter set */ - GstH264ParamsPPS pps_buffers[MAX_PPS_COUNT]; - /* current PPS; most recent one in stream */ - GstH264ParamsPPS *pps; - - /* extracted from slice header or otherwise relevant nal */ - guint8 first_mb_in_slice; - guint8 slice_type; - gboolean field_pic_flag; - gboolean bottom_field_flag; - - /* SEI: supplemental enhancement messages */ -#ifdef EXTRA_PARSE - /* buffering period */ - guint32 initial_cpb_removal_delay[32]; -#endif - /* picture timing */ - guint32 sei_cpb_removal_delay; - guint8 sei_pic_struct; - /* And more... */ - - /* cached timestamps */ - /* (trying to) track upstream dts and interpolate */ - GstClockTime dts; - /* dts at start of last buffering period */ - GstClockTime ts_trn_nb; - - /* collected SPS and PPS NALUs */ - GstBuffer *sps_nals[MAX_SPS_COUNT]; - GstBuffer *pps_nals[MAX_PPS_COUNT]; -}; - -gboolean gst_h264_params_parse_nal (GstH264Params * params, guint8 * nal, gint size); -void gst_h264_params_get_timestamp (GstH264Params * params, - GstClockTime * out_ts, GstClockTime * out_dur, - gboolean frame); -void gst_h264_params_create (GstH264Params ** _params, GstElement * element); -void gst_h264_params_free (GstH264Params * params); - - -G_END_DECLS -#endif diff --git a/gst/videoparsers/plugin.c b/gst/videoparsers/plugin.c index cfd8a48..01a9b99 100644 --- a/gst/videoparsers/plugin.c +++ b/gst/videoparsers/plugin.c @@ -25,18 +25,24 @@ #include "gsth263parse.h" #include "gsth264parse.h" #include "gstdiracparse.h" +#include "gstmpegvideoparse.h" +#include "gstmpeg4videoparse.h" static gboolean plugin_init (GstPlugin * plugin) { - gboolean ret; + gboolean ret = FALSE; - ret = gst_element_register (plugin, "h263parse", + ret |= gst_element_register (plugin, "h263parse", GST_RANK_NONE, GST_TYPE_H263_PARSE); - ret = gst_element_register (plugin, "h264parse", - GST_RANK_NONE, GST_TYPE_H264_PARSE); - ret = gst_element_register (plugin, "diracparse", + ret |= gst_element_register (plugin, "h264parse", + GST_RANK_PRIMARY + 1, GST_TYPE_H264_PARSE); + ret |= gst_element_register (plugin, "diracparse", GST_RANK_NONE, GST_TYPE_DIRAC_PARSE); + ret |= gst_element_register (plugin, "mpegvideoparse", + GST_RANK_NONE, GST_TYPE_MPEGVIDEO_PARSE); + ret |= gst_element_register (plugin, "mpeg4videoparse", + GST_RANK_NONE, GST_TYPE_MPEG4VIDEO_PARSE); return ret; } diff --git a/gst/videosignal/Makefile.in b/gst/videosignal/Makefile.in index 28213f1..8cd9eee 100644 --- a/gst/videosignal/Makefile.in +++ b/gst/videosignal/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +118,8 @@ am_libgstvideosignal_la_OBJECTS = \ libgstvideosignal_la-gstvideodetect.lo \ libgstvideosignal_la-gstvideomark.lo libgstvideosignal_la_OBJECTS = $(am_libgstvideosignal_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideosignal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,21 +135,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideosignal_la_SOURCES) DIST_SOURCES = $(libgstvideosignal_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -609,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideosignal.la: $(libgstvideosignal_la_OBJECTS) $(libgstvideosignal_la_DEPENDENCIES) +libgstvideosignal.la: $(libgstvideosignal_la_OBJECTS) $(libgstvideosignal_la_DEPENDENCIES) $(EXTRA_libgstvideosignal_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideosignal_la_LINK) -rpath $(plugindir) $(libgstvideosignal_la_OBJECTS) $(libgstvideosignal_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -626,58 +653,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideosignal_la-gstvideosignal.lo: gstvideosignal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -MT libgstvideosignal_la-gstvideosignal.lo -MD -MP -MF $(DEPDIR)/libgstvideosignal_la-gstvideosignal.Tpo -c -o libgstvideosignal_la-gstvideosignal.lo `test -f 'gstvideosignal.c' || echo '$(srcdir)/'`gstvideosignal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideosignal_la-gstvideosignal.Tpo $(DEPDIR)/libgstvideosignal_la-gstvideosignal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideosignal.c' object='libgstvideosignal_la-gstvideosignal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideosignal.c' object='libgstvideosignal_la-gstvideosignal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideosignal.lo `test -f 'gstvideosignal.c' || echo '$(srcdir)/'`gstvideosignal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideosignal.lo `test -f 'gstvideosignal.c' || echo '$(srcdir)/'`gstvideosignal.c libgstvideosignal_la-gstvideoanalyse.lo: gstvideoanalyse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -MT libgstvideosignal_la-gstvideoanalyse.lo -MD -MP -MF $(DEPDIR)/libgstvideosignal_la-gstvideoanalyse.Tpo -c -o libgstvideosignal_la-gstvideoanalyse.lo `test -f 'gstvideoanalyse.c' || echo '$(srcdir)/'`gstvideoanalyse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideosignal_la-gstvideoanalyse.Tpo $(DEPDIR)/libgstvideosignal_la-gstvideoanalyse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideoanalyse.c' object='libgstvideosignal_la-gstvideoanalyse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoanalyse.c' object='libgstvideosignal_la-gstvideoanalyse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideoanalyse.lo `test -f 'gstvideoanalyse.c' || echo '$(srcdir)/'`gstvideoanalyse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideoanalyse.lo `test -f 'gstvideoanalyse.c' || echo '$(srcdir)/'`gstvideoanalyse.c libgstvideosignal_la-gstvideodetect.lo: gstvideodetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -MT libgstvideosignal_la-gstvideodetect.lo -MD -MP -MF $(DEPDIR)/libgstvideosignal_la-gstvideodetect.Tpo -c -o libgstvideosignal_la-gstvideodetect.lo `test -f 'gstvideodetect.c' || echo '$(srcdir)/'`gstvideodetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideosignal_la-gstvideodetect.Tpo $(DEPDIR)/libgstvideosignal_la-gstvideodetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideodetect.c' object='libgstvideosignal_la-gstvideodetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideodetect.c' object='libgstvideosignal_la-gstvideodetect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideodetect.lo `test -f 'gstvideodetect.c' || echo '$(srcdir)/'`gstvideodetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideodetect.lo `test -f 'gstvideodetect.c' || echo '$(srcdir)/'`gstvideodetect.c libgstvideosignal_la-gstvideomark.lo: gstvideomark.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -MT libgstvideosignal_la-gstvideomark.lo -MD -MP -MF $(DEPDIR)/libgstvideosignal_la-gstvideomark.Tpo -c -o libgstvideosignal_la-gstvideomark.lo `test -f 'gstvideomark.c' || echo '$(srcdir)/'`gstvideomark.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideosignal_la-gstvideomark.Tpo $(DEPDIR)/libgstvideosignal_la-gstvideomark.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideomark.c' object='libgstvideosignal_la-gstvideomark.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideomark.c' object='libgstvideosignal_la-gstvideomark.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideomark.lo `test -f 'gstvideomark.c' || echo '$(srcdir)/'`gstvideomark.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideosignal_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideosignal_la_CFLAGS) $(CFLAGS) -c -o libgstvideosignal_la-gstvideomark.lo `test -f 'gstvideomark.c' || echo '$(srcdir)/'`gstvideomark.c mostlyclean-libtool: -rm -f *.lo @@ -784,10 +804,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videosignal/gstvideoanalyse.c b/gst/videosignal/gstvideoanalyse.c index 7ca6626..ab2d674 100644 --- a/gst/videosignal/gstvideoanalyse.c +++ b/gst/videosignal/gstvideoanalyse.c @@ -279,10 +279,10 @@ gst_video_analyse_base_init (gpointer g_class) "Filter/Analyzer/Video", "Analyse video signal", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_analyse_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_analyse_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_analyse_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_analyse_src_template); } static void diff --git a/gst/videosignal/gstvideodetect.c b/gst/videosignal/gstvideodetect.c index 09de8b6..1e795d3 100644 --- a/gst/videosignal/gstvideodetect.c +++ b/gst/videosignal/gstvideodetect.c @@ -438,10 +438,10 @@ gst_video_detect_base_init (gpointer g_class) "Filter/Effect/Video", "Detect patterns in a video signal", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_detect_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_detect_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_detect_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_detect_src_template); } static void diff --git a/gst/videosignal/gstvideomark.c b/gst/videosignal/gstvideomark.c index c45820a..89fbf70 100644 --- a/gst/videosignal/gstvideomark.c +++ b/gst/videosignal/gstvideomark.c @@ -325,10 +325,10 @@ gst_video_mark_base_init (gpointer g_class) "Filter/Effect/Video", "Marks a video signal with a pattern", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_mark_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_mark_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_mark_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_mark_src_template); } static void diff --git a/gst/vmnc/Makefile.in b/gst/vmnc/Makefile.in index a472929..48343ce 100644 --- a/gst/vmnc/Makefile.in +++ b/gst/vmnc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstvmnc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstvmnc_la_OBJECTS = libgstvmnc_la-vmncdec.lo libgstvmnc_la_OBJECTS = $(am_libgstvmnc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvmnc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvmnc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvmnc_la_SOURCES) DIST_SOURCES = $(libgstvmnc_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -595,7 +622,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvmnc.la: $(libgstvmnc_la_OBJECTS) $(libgstvmnc_la_DEPENDENCIES) +libgstvmnc.la: $(libgstvmnc_la_OBJECTS) $(libgstvmnc_la_DEPENDENCIES) $(EXTRA_libgstvmnc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvmnc_la_LINK) -rpath $(plugindir) $(libgstvmnc_la_OBJECTS) $(libgstvmnc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -609,34 +636,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvmnc_la-vmncdec.lo: vmncdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvmnc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvmnc_la_CFLAGS) $(CFLAGS) -MT libgstvmnc_la-vmncdec.lo -MD -MP -MF $(DEPDIR)/libgstvmnc_la-vmncdec.Tpo -c -o libgstvmnc_la-vmncdec.lo `test -f 'vmncdec.c' || echo '$(srcdir)/'`vmncdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvmnc_la-vmncdec.Tpo $(DEPDIR)/libgstvmnc_la-vmncdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vmncdec.c' object='libgstvmnc_la-vmncdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vmncdec.c' object='libgstvmnc_la-vmncdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvmnc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvmnc_la_CFLAGS) $(CFLAGS) -c -o libgstvmnc_la-vmncdec.lo `test -f 'vmncdec.c' || echo '$(srcdir)/'`vmncdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvmnc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvmnc_la_CFLAGS) $(CFLAGS) -c -o libgstvmnc_la-vmncdec.lo `test -f 'vmncdec.c' || echo '$(srcdir)/'`vmncdec.c mostlyclean-libtool: -rm -f *.lo @@ -743,10 +766,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c index 3db3511..08085b5 100644 --- a/gst/vmnc/vmncdec.c +++ b/gst/vmnc/vmncdec.c @@ -168,10 +168,10 @@ gst_vmnc_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 (&vmnc_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&vmnc_dec_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &vmnc_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &vmnc_dec_sink_factory); gst_element_class_set_details_simple (element_class, "VMnc video decoder", "Codec/Decoder/Video", "Decode VmWare video to raw (RGB) video", diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in index 35b8410..7bc5064 100644 --- a/gst/y4m/Makefile.in +++ b/gst/y4m/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgsty4mdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgsty4mdec_la_OBJECTS = libgsty4mdec_la-gsty4mdec.lo libgsty4mdec_la_OBJECTS = $(am_libgsty4mdec_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsty4mdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsty4mdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsty4mdec_la_SOURCES) DIST_SOURCES = $(libgsty4mdec_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -603,7 +630,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsty4mdec.la: $(libgsty4mdec_la_OBJECTS) $(libgsty4mdec_la_DEPENDENCIES) +libgsty4mdec.la: $(libgsty4mdec_la_OBJECTS) $(libgsty4mdec_la_DEPENDENCIES) $(EXTRA_libgsty4mdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsty4mdec_la_LINK) -rpath $(plugindir) $(libgsty4mdec_la_OBJECTS) $(libgsty4mdec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +644,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsty4mdec_la-gsty4mdec.lo: gsty4mdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4mdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4mdec_la_CFLAGS) $(CFLAGS) -MT libgsty4mdec_la-gsty4mdec.lo -MD -MP -MF $(DEPDIR)/libgsty4mdec_la-gsty4mdec.Tpo -c -o libgsty4mdec_la-gsty4mdec.lo `test -f 'gsty4mdec.c' || echo '$(srcdir)/'`gsty4mdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsty4mdec_la-gsty4mdec.Tpo $(DEPDIR)/libgsty4mdec_la-gsty4mdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsty4mdec.c' object='libgsty4mdec_la-gsty4mdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsty4mdec.c' object='libgsty4mdec_la-gsty4mdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4mdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4mdec_la_CFLAGS) $(CFLAGS) -c -o libgsty4mdec_la-gsty4mdec.lo `test -f 'gsty4mdec.c' || echo '$(srcdir)/'`gsty4mdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4mdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4mdec_la_CFLAGS) $(CFLAGS) -c -o libgsty4mdec_la-gsty4mdec.lo `test -f 'gsty4mdec.c' || echo '$(srcdir)/'`gsty4mdec.c mostlyclean-libtool: -rm -f *.lo @@ -751,10 +774,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/y4m/gsty4mdec.c b/gst/y4m/gsty4mdec.c index 0be92a8..2163d02 100644 --- a/gst/y4m/gsty4mdec.c +++ b/gst/y4m/gsty4mdec.c @@ -94,10 +94,10 @@ gst_y4m_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_y4m_dec_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_y4m_dec_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_y4m_dec_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_y4m_dec_sink_template); gst_element_class_set_details_simple (element_class, "YUV4MPEG demuxer/decoder", "Codec/Demuxer", @@ -146,10 +146,7 @@ void gst_y4m_dec_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - GstY4mDec *y4mdec; - g_return_if_fail (GST_IS_Y4M_DEC (object)); - y4mdec = GST_Y4M_DEC (object); switch (property_id) { default: @@ -162,10 +159,7 @@ void gst_y4m_dec_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - GstY4mDec *y4mdec; - g_return_if_fail (GST_IS_Y4M_DEC (object)); - y4mdec = GST_Y4M_DEC (object); switch (property_id) { default: @@ -194,10 +188,7 @@ gst_y4m_dec_dispose (GObject * object) void gst_y4m_dec_finalize (GObject * object) { - GstY4mDec *y4mdec; - g_return_if_fail (GST_IS_Y4M_DEC (object)); - y4mdec = GST_Y4M_DEC (object); /* clean up object here */ @@ -207,11 +198,9 @@ gst_y4m_dec_finalize (GObject * object) static GstStateChangeReturn gst_y4m_dec_change_state (GstElement * element, GstStateChange transition) { - GstY4mDec *y4mdec; GstStateChangeReturn ret; g_return_val_if_fail (GST_IS_Y4M_DEC (element), GST_STATE_CHANGE_FAILURE); - y4mdec = GST_Y4M_DEC (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: @@ -541,7 +530,7 @@ gst_y4m_dec_chain (GstPad * pad, GstBuffer * buffer) GST_BUFFER_TIMESTAMP (buffer) = gst_y4m_dec_frames_to_timestamp (y4mdec, y4mdec->frame_index); GST_BUFFER_DURATION (buffer) = - gst_y4m_dec_frames_to_timestamp (y4mdec, y4mdec->frame_index) - + gst_y4m_dec_frames_to_timestamp (y4mdec, y4mdec->frame_index + 1) - GST_BUFFER_TIMESTAMP (buffer); if (y4mdec->interlaced && y4mdec->tff) { GST_BUFFER_FLAG_SET (buffer, GST_VIDEO_BUFFER_TFF); @@ -602,6 +591,9 @@ gst_y4m_dec_sink_event (GstPad * pad, GstEvent * event) } res = TRUE; + /* not sure why it's not forwarded, but let's unref it so it + doesn't leak, remove the unref if it gets forwarded again */ + gst_event_unref (event); //res = gst_pad_push_event (y4mdec->srcpad, event); } break; diff --git a/install-sh b/install-sh index 6781b98..a9244eb 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -200,7 +208,11 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -385,7 +392,7 @@ do case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ do for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/ltmain.sh b/ltmain.sh old mode 100755 new mode 100644 index d88da2c..c7d06c3 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,9 +1,9 @@ -# Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.6b +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -32,50 +32,57 @@ # # Provide generalized library-building support services. # -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print informational messages (default) -# --version print version information -# -h, --help print short or long help message +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory # -# MODE-ARGS vary depending on the MODE. +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 -# automake: $automake_version -# autoconf: $autoconf_version +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1 +# automake: $automake_version +# autoconf: $autoconf_version # # Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . -PROGRAM=ltmain.sh +PROGRAM=libtool PACKAGE=libtool -VERSION="2.2.6b Debian-2.2.6b-2" +VERSION="2.4.2 Debian-2.4.2-1" TIMESTAMP="" -package_revision=1.3017 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -91,10 +98,15 @@ fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # NLS nuisances: We save the old values to restore during execute mode. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES @@ -107,24 +119,28 @@ do lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL $lt_unset CDPATH +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" : ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -144,6 +160,27 @@ IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," +# 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 () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: @@ -158,33 +195,183 @@ basename="s,^.*/,," # those functions but instead duplicate the functionality here. func_dirname_and_basename () { - # 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_result=`$ECHO "X${1}" | $Xsed -e "$basename"` + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -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_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# 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 "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } -# Generated shell functions inserted here. +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} # The name of this program: -# In the unlikely event $progname began with a '-', it would play havoc with -# func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result -case $progname in - -*) progname=./$progname ;; -esac # Make sure we have an absolute path for reexecution: case $progpath in @@ -196,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. @@ -243,7 +439,7 @@ opt_warning=: # name if it has been set yet. func_echo () { - $ECHO "$progname${mode+: }$mode: $*" + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... @@ -258,18 +454,25 @@ func_verbose () : } +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + # func_error arg... # Echo program name prefixed message to standard error. func_error () { - $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { - $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : @@ -326,9 +529,9 @@ func_mkdir_p () case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do @@ -378,7 +581,7 @@ func_mktempdir () func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi - $ECHO "X$my_tmpdir" | $Xsed + $ECHO "$my_tmpdir" } @@ -392,7 +595,7 @@ func_quote_for_eval () { case $1 in *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac @@ -419,7 +622,7 @@ func_quote_for_expand () { case $1 in *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ + my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; @@ -488,15 +691,39 @@ func_show_eval_locale () fi } - - +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} # func_version # Echo version message to standard output and exit. func_version () { - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ @@ -509,22 +736,28 @@ func_version () # Echo short help message to standard output and exit. func_usage () { - $SED -n '/^# Usage:/,/# -h/ { + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" - $ECHO + echo $ECHO "run \`$progname --help | more' for full usage" exit $? } -# func_help -# Echo long help message to standard output and exit. +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. func_help () { + $opt_debug + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print s/^# // s/^# *$// s*\$progname*'$progname'* @@ -534,11 +767,18 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p - }' < "$progpath" - exit $? + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi } # func_missing_arg argname @@ -546,63 +786,106 @@ func_help () # exit_cmd. func_missing_arg () { - func_error "missing argument for $1" + $opt_debug + + func_error "missing argument for $1." exit_cmd=exit } -exit_cmd=: +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: -# Check that we have a working $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, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. @@ -636,16 +919,16 @@ func_config () # Display the features supported by this script. func_features () { - $ECHO "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $ECHO "enable shared libraries" + echo "enable shared libraries" else - $ECHO "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $ECHO "enable static libraries" + echo "enable static libraries" else - $ECHO "disable static libraries" + echo "disable static libraries" fi exit $? @@ -692,117 +975,209 @@ func_enable_tag () esac } -# Parse options once, thoroughly. This comes as soon as possible in -# the script to make things like `libtool --version' happen quickly. +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () { + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac - # Parse non-mode specific arguments: - while test "$#" -gt 0; do +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do opt="$1" shift - case $opt in - --config) func_config ;; - - --debug) preserve_args="$preserve_args $opt" + --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" - opt_debug='set -x' $opt_debug ;; - - -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break - execute_dlfiles="$execute_dlfiles $1" - shift + --dry-run|--dryrun|-n) + opt_dry_run=: ;; - - --dry-run | -n) opt_dry_run=: ;; - --features) func_features ;; - --finish) mode="finish" ;; - - --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break - case $1 in - # Valid mode arguments: - clean) ;; - compile) ;; - execute) ;; - finish) ;; - install) ;; - link) ;; - relink) ;; - uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; - esac - - mode="$1" + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" shift ;; - --preserve-dup-deps) - opt_duplicate_deps=: ;; - - --quiet|--silent) preserve_args="$preserve_args $opt" - opt_silent=: + opt_preserve_dup_deps=: ;; - - --verbose| -v) preserve_args="$preserve_args $opt" + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" ;; - - --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break - preserve_args="$preserve_args $opt $1" - func_enable_tag "$1" # tagname is set here + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" shift ;; + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + # Separate optargs to long options: - -dlopen=*|--mode=*|--tag=*) - func_opt_split "$opt" - set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; - -\?|-h) func_usage ;; - --help) opt_help=: ;; - --version) func_version ;; - - -*) func_fatal_help "unrecognized option \`$opt'" ;; - - *) nonopt="$opt" - break + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) @@ -810,82 +1185,44 @@ func_enable_tag () opt_duplicate_compiler_generated_deps=: ;; *) - opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac - # Having warned about all mis-specified options, bail out if - # anything was wrong. - $exit_cmd $EXIT_FAILURE -} + $opt_help || { + # Sanity checks first: + func_check_version_match -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" fi - exit $EXIT_MISMATCH - fi -} - - -## ----------- ## -## Main. ## -## ----------- ## - -$opt_help || { - # Sanity checks first: - func_check_version_match + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi - test -z "$mode" && func_fatal_error "error: you must specify a MODE." + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." -} +## ----------- ## +## Main. ## +## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. @@ -950,12 +1287,9 @@ func_ltwrapper_executable_p () # temporary ltwrapper_script. func_ltwrapper_scriptname () { - func_ltwrapper_scriptname_result="" - if func_ltwrapper_executable_p "$1"; then - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - fi + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file @@ -1001,6 +1335,37 @@ func_source () } +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. @@ -1013,13 +1378,15 @@ func_infer_tag () if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) @@ -1030,11 +1397,13 @@ func_infer_tag () CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. @@ -1097,6 +1466,486 @@ EOF } } + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + # func_mode_compile arg... func_mode_compile () { @@ -1137,12 +1986,12 @@ func_mode_compile () ;; -pie | -fpie | -fPIE) - pie_flag="$pie_flag $arg" + func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" + func_append later " $arg" continue ;; @@ -1163,15 +2012,14 @@ func_mode_compile () save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" - func_quote_for_eval "$arg" - lastarg="$lastarg $func_quote_for_eval_result" + func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" + func_append base_compile " $lastarg" continue ;; @@ -1187,8 +2035,7 @@ func_mode_compile () esac # case $arg_mode # Aesthetically quote the previous argument. - func_quote_for_eval "$lastarg" - base_compile="$base_compile $func_quote_for_eval_result" + func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in @@ -1213,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -1288,7 +2135,7 @@ func_mode_compile () # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then - output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= @@ -1319,17 +2166,16 @@ compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi - removelist="$removelist $output_obj" + func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist - removelist="$removelist $lockfile" + func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result @@ -1349,7 +2195,7 @@ compiler." if test -z "$output_obj"; then # Place PIC objects in $objdir - command="$command -o $lobj" + func_append command " -o $lobj" fi func_show_eval_locale "$command" \ @@ -1396,11 +2242,11 @@ compiler." command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then - command="$command -o $obj" + func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" + func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' @@ -1445,13 +2291,13 @@ compiler." } $opt_help || { -test "$mode" = compile && func_mode_compile ${1+"$@"} + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. - case $mode in + case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. @@ -1482,10 +2328,11 @@ This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. @@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: - -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." @@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) @@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially: -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. @@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM." ;; *) - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac - $ECHO + echo $ECHO "Try \`$progname --help' for more information about other modes." - - exit $? } - # Now that we've collected a possible --mode arg, show help if necessary - $opt_help && func_mode_help +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi # func_mode_execute arg... @@ -1643,13 +2523,16 @@ func_mode_execute () func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do + for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" @@ -1671,7 +2554,7 @@ func_mode_execute () dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" + func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" @@ -1712,7 +2595,7 @@ func_mode_execute () for file do case $file in - -*) ;; + -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then @@ -1728,8 +2611,7 @@ func_mode_execute () ;; esac # Quote arguments (to preserve shell metacharacters). - func_quote_for_eval "$file" - args="$args $func_quote_for_eval_result" + func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then @@ -1754,29 +2636,66 @@ func_mode_execute () # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - $ECHO "export $shlibpath_var" + echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } -test "$mode" = execute && func_mode_execute ${1+"$@"} +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug - libdirs="$nonopt" + libs= + libdirs= admincmds= - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. @@ -1786,7 +2705,7 @@ func_mode_finish () if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done @@ -1795,53 +2714,55 @@ func_mode_finish () # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS - $ECHO "X----------------------------------------------------------------------" | $Xsed - $ECHO "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - $ECHO - $ECHO "If you ever happen to want to link against installed libraries" - $ECHO "in a given directory, LIBDIR, you must either use libtool, and" - $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" - $ECHO "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" - $ECHO " during execution" - fi - if test -n "$runpath_var"; then - $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" - $ECHO " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $ECHO + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo - $ECHO "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" - $ECHO "pages." - ;; - *) - $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - $ECHO "X----------------------------------------------------------------------" | $Xsed + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi exit $EXIT_SUCCESS } -test "$mode" = finish && func_mode_finish ${1+"$@"} +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... @@ -1852,7 +2773,7 @@ func_mode_install () # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. - $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -1866,7 +2787,12 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" - install_prog="$install_prog$func_quote_for_eval_result" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac # We need to accept at least all the BSD install flags. dest= @@ -1876,10 +2802,12 @@ func_mode_install () install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then - files="$files $dest" + func_append files " $dest" dest=$arg continue fi @@ -1887,10 +2815,9 @@ func_mode_install () case $arg in -d) isdir=yes ;; -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac + if $install_cp; then :; else + prev=$arg + fi ;; -g | -m | -o) prev=$arg @@ -1904,6 +2831,10 @@ func_mode_install () *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg @@ -1914,7 +2845,11 @@ func_mode_install () # Aesthetically quote the argument. func_quote_for_eval "$arg" - install_prog="$install_prog $func_quote_for_eval_result" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ @@ -1923,6 +2858,13 @@ func_mode_install () test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" @@ -1977,10 +2919,13 @@ func_mode_install () case $file in *.$libext) # Do the static libraries later. - staticlibs="$staticlibs $file" + func_append staticlibs " $file" ;; *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" @@ -1994,23 +2939,23 @@ func_mode_install () if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; + *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; + *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" - dir="$dir$objdir" + func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -2023,9 +2968,9 @@ func_mode_install () if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" @@ -2043,7 +2988,7 @@ func_mode_install () test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. - func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in @@ -2083,7 +3028,7 @@ func_mode_install () func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) @@ -2183,7 +3128,7 @@ func_mode_install () if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no @@ -2202,7 +3147,7 @@ func_mode_install () file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" @@ -2221,7 +3166,7 @@ func_mode_install () } else # Install the binary that we compiled earlier. - file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -2257,11 +3202,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -2280,7 +3227,7 @@ func_mode_install () fi } -test "$mode" = install && func_mode_install ${1+"$@"} +test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -2323,6 +3270,22 @@ func_generate_dlsyms () extern \"C\" { #endif +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + /* External symbol declarations for the compiler. */\ " @@ -2332,10 +3295,11 @@ extern \"C\" { $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. - progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do - func_verbose "extracting global C symbols from \`$progfile'" - $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then @@ -2371,7 +3335,7 @@ extern \"C\" { eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2384,10 +3348,52 @@ extern \"C\" { func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac done $opt_dry_run || { @@ -2415,36 +3421,19 @@ extern \"C\" { if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else - $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; -" - case $host in - *cygwin* | *mingw* | *cegcc* ) - $ECHO >> "$output_objdir/$my_dlsyms" "\ -/* DATA imports from DLLs on WIN32 con't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs. */" - lt_dlsym_const= ;; - *osf5*) - echo >> "$output_objdir/$my_dlsyms" "\ -/* This system does not cope well with relocations in const data */" - lt_dlsym_const= ;; - *) - lt_dlsym_const=const ;; - esac - - $ECHO >> "$output_objdir/$my_dlsyms" "\ -extern $lt_dlsym_const lt_dlsymlist +extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; -$lt_dlsym_const lt_dlsymlist +LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," @@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; @@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() { for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; - *) symtab_cflags="$symtab_cflags $arg" ;; + *) func_append symtab_cflags " $arg" ;; esac done @@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() { case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; @@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() { # really was required. # Nullify the symbol file. - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } @@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() { # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2559,9 +3549,11 @@ func_win32_libid () win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ @@ -2590,6 +3582,131 @@ func_win32_libid () $ECHO "$win32_libid_type" } +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} # func_extract_an_archive dir oldlib @@ -2598,7 +3715,18 @@ func_extract_an_archive () $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else @@ -2669,7 +3797,7 @@ func_extract_archives () darwin_file= darwin_files= for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ @@ -2684,25 +3812,30 @@ func_extract_archives () func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } - -# func_emit_wrapper_part1 [arg=no] +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. # -# Emit the first part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part1 () +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () { - func_emit_wrapper_part1_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part1_arg1=$1 - fi + func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL @@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 () # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible @@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then - ECHO=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$ECHO works! - : - else - # Restart under the correct shell, and then maybe \$ECHO will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ " - $ECHO "\ + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -2783,30 +4019,13 @@ else esac fi - file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done -" -} -# end: func_emit_wrapper_part1 - -# func_emit_wrapper_part2 [arg=no] -# -# Emit the second part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part2 () -{ - func_emit_wrapper_part2_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part2_arg1=$1 - fi - - $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 () fi # remove .libs from thisdir case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi @@ -2869,6 +4088,18 @@ func_emit_wrapper_part2 () if test -f \"\$progdir/\$program\"; then" + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ @@ -2877,253 +4108,28 @@ func_emit_wrapper_part2 () # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 + func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } -# end: func_emit_wrapper_part2 - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=no - if test -n "$1" ; then - func_emit_wrapper_arg1=$1 - fi - - # split this up so that func_emit_cwrapperexe_src - # can call each part independently. - func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" - func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -} - - -# func_to_host_path arg -# -# Convert paths to host format when used with build tools. -# Intended for use with "native" mingw (where libtool itself -# is running under the msys shell), or in the following cross- -# build environments: -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# where wine is equipped with the `winepath' executable. -# In the native mingw case, the (msys) shell automatically -# converts paths for any non-msys applications it launches, -# but that facility isn't available from inside the cwrapper. -# Similar accommodations are necessary for $host mingw and -# $build cygwin. Calling this function does no harm for other -# $host/$build combinations not listed above. -# -# ARG is the path (on $build) that should be converted to -# the proper representation for $host. The result is stored -# in $func_to_host_path_result. -func_to_host_path () -{ - func_to_host_path_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - case $build in - *mingw* ) # actually, msys - # awkward: cmd appends spaces to result - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_path_tmp1=`( cmd //c echo "$1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_path_tmp1=`cygpath -w "$1"` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # Unfortunately, winepath does not exit with a non-zero - # error code, so we are forced to check the contents of - # stdout. On the other hand, if the command is not - # found, the shell will set an exit code of 127 and print - # *an error message* to stdout. So we must check for both - # error code of zero AND non-empty stdout, which explains - # the odd construction: - func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` - if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - else - # Allow warning below. - func_to_host_path_result="" - fi - ;; - esac - if test -z "$func_to_host_path_result" ; then - func_error "Could not determine host path corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_path_result="$1" - fi - ;; - esac - fi -} -# end: func_to_host_path -# func_to_host_pathlist arg -# -# Convert pathlists to host format when used with build tools. -# See func_to_host_path(), above. This function supports the -# following $build/$host combinations (but does no harm for -# combinations not listed here): -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# -# Path separators are also converted from $build format to -# $host format. If ARG begins or ends with a path separator -# character, it is preserved (but converted to $host format) -# on output. -# -# ARG is a pathlist (on $build) that should be converted to -# the proper representation on $host. The result is stored -# in $func_to_host_pathlist_result. -func_to_host_pathlist () -{ - func_to_host_pathlist_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_to_host_pathlist_tmp2="$1" - # Once set for this call, this variable should not be - # reassigned. It is used in tha fallback case. - func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e 's|^:*||' -e 's|:*$||'` - case $build in - *mingw* ) # Actually, msys. - # Awkward: cmd appends spaces to result. - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # unfortunately, winepath doesn't convert pathlists - func_to_host_pathlist_result="" - func_to_host_pathlist_oldIFS=$IFS - IFS=: - for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do - IFS=$func_to_host_pathlist_oldIFS - if test -n "$func_to_host_pathlist_f" ; then - func_to_host_path "$func_to_host_pathlist_f" - if test -n "$func_to_host_path_result" ; then - if test -z "$func_to_host_pathlist_result" ; then - func_to_host_pathlist_result="$func_to_host_path_result" - else - func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" - fi - fi - fi - IFS=: - done - IFS=$func_to_host_pathlist_oldIFS - ;; - esac - if test -z "$func_to_host_pathlist_result" ; then - func_error "Could not determine the host path(s) corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This may break if $1 contains DOS-style drive - # specifications. The fix is not to complicate the expression - # below, but for the user to provide a working wine installation - # with winepath so that path translation in the cross-to-mingw - # case works properly. - lt_replace_pathsep_nix_to_dos="s|:|;|g" - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_replace_pathsep_nix_to_dos"` - fi - # Now, add the leading and trailing path separators back - case "$1" in - :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" - ;; - esac - case "$1" in - *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" - ;; - esac - ;; - esac - fi -} -# end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout @@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src () This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "$SHELL $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. */ EOF cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include #include #ifdef _MSC_VER # include # include # include -# define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include -# define HAVE_SETENV -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif # endif #endif #include @@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int); #include #include +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) @@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int); # define S_IXGRP 0 #endif -#ifdef _MSC_VER -# define S_IXUSR _S_IEXEC -# define stat _stat -# ifndef _INTPTR_T_DEFINED -# define intptr_t int -# endif -#endif - +/* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' @@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int); # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ -#ifdef __CYGWIN__ -# define FOPEN_WB "wb" -#endif - #ifndef FOPEN_WB # define FOPEN_WB "w" #endif @@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int); if (stale) { free ((void *) stale); stale = 0; } \ } while (0) -#undef LTWRAPPER_DEBUGPRINTF -#if defined DEBUGWRAPPER -# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -static void -ltwrapper_debugprintf (const char *fmt, ...) -{ - va_list args; - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); -} +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; #else -# define LTWRAPPER_DEBUGPRINTF(args) +static int lt_debug = 0; #endif -const char *program_name = NULL; +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); @@ -3271,41 +4287,27 @@ char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); -void lt_fatal (const char *message, ...); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_opt_process_env_set (const char *arg); -void lt_opt_process_env_prepend (const char *arg); -void lt_opt_process_env_append (const char *arg); -int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); - -static const char *script_text_part1 = -EOF - - func_emit_wrapper_part1 yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ "/' -e 's/$/\\n"/' - echo ";" - cat <"))); + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); } EOF @@ -3560,11 +4523,14 @@ EOF mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ - LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; @@ -3586,7 +4552,7 @@ xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) - lt_fatal ("Memory exhausted"); + lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } @@ -3620,8 +4586,8 @@ check_executable (const char *path) { struct stat st; - LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3638,8 +4604,8 @@ make_executable (const char *path) int rval = 0; struct stat st; - LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3665,8 +4631,8 @@ find_executable (const char *wrapper) int tmp_len; char *concat_name; - LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", - wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; @@ -3719,7 +4685,8 @@ find_executable (const char *wrapper) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); @@ -3744,7 +4711,8 @@ find_executable (const char *wrapper) } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); @@ -3770,8 +4738,9 @@ chase_symlinks (const char *pathspec) int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { - LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", - tmp_pathspec)); + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) @@ -3793,8 +4762,9 @@ chase_symlinks (const char *pathspec) } else { - char *errstr = strerror (errno); - lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); @@ -3807,7 +4777,8 @@ chase_symlinks (const char *pathspec) tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { - lt_fatal ("Could not follow symlinks for %s", pathspec); + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif @@ -3833,11 +4804,25 @@ strendzap (char *str, const char *pat) return str; } +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + static void -lt_error_core (int exit_status, const char *mode, +lt_error_core (int exit_status, const char *file, + int line, const char *mode, const char *message, va_list ap) { - fprintf (stderr, "%s: %s: ", program_name, mode); + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); @@ -3846,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode, } void -lt_fatal (const char *message, ...) +lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + void lt_setenv (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ @@ -3904,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) return new_value; } -int -lt_split_name_value (const char *arg, char** name, char** value) -{ - const char *p; - int len; - if (!arg || !*arg) - return 1; - - p = strchr (arg, (int)'='); - - if (!p) - return 1; - - *value = xstrdup (++p); - - len = strlen (arg) - strlen (*value); - *name = XMALLOC (char, len); - strncpy (*name, arg, len-1); - (*name)[len - 1] = '\0'; - - return 0; -} - -void -lt_opt_process_env_set (const char *arg) -{ - char *name = NULL; - char *value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); - } - - lt_setenv (name, value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_prepend (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_append (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 1); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - void lt_update_exe_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4011,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value) void lt_update_lib_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4023,11 +4937,158 @@ lt_update_lib_path (const char *name, const char *value) } } +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} EOF } # end: func_emit_cwrapperexe_src +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + # func_mode_link arg... func_mode_link () { @@ -4072,6 +5133,7 @@ func_mode_link () new_inherited_linker_flags= avoid_version=no + bindir= dlfiles= dlprefiles= dlself=no @@ -4164,6 +5226,11 @@ func_mode_link () esac case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. @@ -4195,9 +5262,9 @@ func_mode_link () ;; *) if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" + func_append dlfiles " $arg" else - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $arg" fi prev= continue @@ -4221,7 +5288,7 @@ func_mode_link () *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; - *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; @@ -4240,7 +5307,7 @@ func_mode_link () moreargs= for fil in `cat "$save_arg"` do -# moreargs="$moreargs $fil" +# func_append moreargs " $fil" arg=$fil # A libtool-controlled object. @@ -4269,7 +5336,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4281,7 +5348,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4351,12 +5418,12 @@ func_mode_link () if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; - *) rpath="$rpath $arg" ;; + *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; + *) func_append xrpath " $arg" ;; esac fi prev= @@ -4368,28 +5435,28 @@ func_mode_link () continue ;; weak) - weak_libs="$weak_libs $arg" + func_append weak_libs " $arg" prev= continue ;; xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) - compiler_flags="$compiler_flags $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" @@ -4425,6 +5492,11 @@ func_mode_link () continue ;; + -bindir) + prev=bindir + continue + ;; + -dlopen) prev=dlfiles continue @@ -4475,15 +5547,16 @@ func_mode_link () ;; -L*) - func_stripname '-L' '' "$arg" - dir=$func_stripname_result - if test -z "$dir"; then + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -4495,24 +5568,30 @@ func_mode_link () ;; esac case "$deplibs " in - *" -L$dir "*) ;; + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; + *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -4522,7 +5601,7 @@ func_mode_link () -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4536,7 +5615,7 @@ func_mode_link () ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -4556,7 +5635,7 @@ func_mode_link () ;; esac fi - deplibs="$deplibs $arg" + func_append deplibs " $arg" continue ;; @@ -4568,21 +5647,22 @@ func_mode_link () # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot) - compiler_flags="$compiler_flags $arg" + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; @@ -4649,13 +5729,17 @@ func_mode_link () # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac continue ;; @@ -4708,8 +5792,8 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $func_quote_for_eval_result" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4724,9 +5808,9 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" - linker_flags="$linker_flags $func_quote_for_eval_result" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4754,23 +5838,27 @@ func_mode_link () arg="$func_quote_for_eval_result" ;; - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # @file GCC response files + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" - compiler_flags="$compiler_flags $arg" + func_append compiler_flags " $arg" continue ;; @@ -4782,7 +5870,7 @@ func_mode_link () *.$objext) # A standard object. - objs="$objs $arg" + func_append objs " $arg" ;; *.lo) @@ -4813,7 +5901,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4825,7 +5913,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4870,24 +5958,25 @@ func_mode_link () *.$libext) # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" + func_append deplibs " $arg" + func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. + func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" + func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $func_resolve_sysroot_result" prev= else - deplibs="$deplibs $arg" + func_append deplibs " $func_resolve_sysroot_result" fi continue ;; @@ -4925,7 +6014,7 @@ func_mode_link () if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi @@ -4934,6 +6023,8 @@ func_mode_link () func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" @@ -4954,12 +6045,12 @@ func_mode_link () # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - libs="$libs $deplib" + func_append libs " $deplib" done if test "$linkmode" = lib; then @@ -4972,9 +6063,9 @@ func_mode_link () if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac - pre_post_deps="$pre_post_deps $pre_post_dep" + func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= @@ -5044,17 +6135,19 @@ func_mode_link () for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= + func_resolve_sysroot "$lib" case $lib in - *.la) func_source "$lib" ;; + *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + func_basename "$deplib" + deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; - *) deplibs="$deplibs $deplib" ;; + *) func_append deplibs " $deplib" ;; esac done done @@ -5070,16 +6163,17 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - compiler_flags="$compiler_flags $deplib" + func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5164,7 +6258,7 @@ func_mode_link () if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5177,7 +6271,8 @@ func_mode_link () test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then @@ -5191,7 +6286,8 @@ func_mode_link () finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" @@ -5202,17 +6298,21 @@ func_mode_link () -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" - dir=$func_stripname_result + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; - *.la) lib="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" @@ -5230,7 +6330,7 @@ func_mode_link () match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi @@ -5240,15 +6340,15 @@ func_mode_link () ;; esac if test "$valid_a_lib" != yes; then - $ECHO + echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because the file extensions .$libext of this argument makes me believe" - $ECHO "*** that it is just a static archive that I should not use here." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" @@ -5275,11 +6375,11 @@ func_mode_link () if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. - newdlprefiles="$newdlprefiles $deplib" + func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - newdlfiles="$newdlfiles $deplib" + func_append newdlfiles " $deplib" fi fi continue @@ -5321,20 +6421,20 @@ func_mode_link () # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; - *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then @@ -5345,17 +6445,17 @@ func_mode_link () func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" @@ -5366,9 +6466,15 @@ func_mode_link () # Get the name of the library we link against. linklib= - for l in $old_library $library_names; do - linklib="$l" - done + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi @@ -5385,9 +6491,9 @@ func_mode_link () # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" + func_append dlprefiles " $lib $dependency_libs" else - newdlfiles="$newdlfiles $lib" + func_append newdlfiles " $lib" fi continue fi # $pass = dlopen @@ -5409,14 +6515,14 @@ func_mode_link () # Find the relevant object directory and library name. if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5424,12 +6530,12 @@ func_mode_link () dir="$ladir" absdir="$abs_ladir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" @@ -5440,20 +6546,46 @@ func_mode_link () if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac fi # $pass = dlpreopen if test -z "$libdir"; then @@ -5471,7 +6603,7 @@ func_mode_link () if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" + func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no @@ -5484,7 +6616,8 @@ func_mode_link () for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? @@ -5495,12 +6628,12 @@ func_mode_link () # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... @@ -5515,7 +6648,7 @@ func_mode_link () # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; - *) temp_rpath="$temp_rpath$absdir:" ;; + *) func_append temp_rpath "$absdir:" ;; esac fi @@ -5527,7 +6660,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5536,7 +6669,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5561,12 +6694,12 @@ func_mode_link () case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=yes fi ;; @@ -5583,7 +6716,7 @@ func_mode_link () fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO + echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else @@ -5601,7 +6734,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5610,7 +6743,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5664,7 +6797,7 @@ func_mode_link () linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$mode" != relink; then + if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= @@ -5686,9 +6819,9 @@ func_mode_link () if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then - $ECHO - $ECHO "*** And there doesn't seem to be a static archive available" - $ECHO "*** The link will probably fail, sorry" + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi @@ -5715,12 +6848,12 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5742,7 +6875,7 @@ func_mode_link () if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then @@ -5756,13 +6889,13 @@ func_mode_link () test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi - if test "$linkmode" = prog || test "$mode" = relink; then + if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= @@ -5776,7 +6909,7 @@ func_mode_link () elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then @@ -5793,7 +6926,7 @@ func_mode_link () if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5828,21 +6961,21 @@ func_mode_link () # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - $ECHO + echo $ECHO "*** Warning: This system can not link to static lib archive $lib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - $ECHO "*** But as you try to build a module library, libtool will still create " - $ECHO "*** a static module, that should work as long as the dlopening application" - $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module @@ -5870,27 +7003,33 @@ func_mode_link () temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; + *) func_append xrpath " $temp_xrpath";; esac;; - *) temp_deplibs="$temp_deplibs $libdir";; + *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi - newlib_search_path="$newlib_search_path $absdir" + func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" - if $opt_duplicate_deps ; then + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then @@ -5900,8 +7039,10 @@ func_mode_link () case $deplib in -L*) path="$deplib" ;; *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; @@ -5928,8 +7069,8 @@ func_mode_link () if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi @@ -5962,7 +7103,7 @@ func_mode_link () compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else - compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" @@ -5979,7 +7120,7 @@ func_mode_link () for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; + *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= @@ -6037,10 +7178,10 @@ func_mode_link () -L*) case " $tmp_libs " in *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" @@ -6056,7 +7197,7 @@ func_mode_link () ;; esac if test -n "$i" ; then - tmp_libs="$tmp_libs $i" + func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs @@ -6097,7 +7238,7 @@ func_mode_link () # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" - objs="$objs$old_deplibs" + func_append objs "$old_deplibs" ;; lib) @@ -6130,10 +7271,10 @@ func_mode_link () if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" - libobjs="$libobjs $objs" + func_append libobjs " $objs" fi fi @@ -6192,13 +7333,14 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; - freebsd-aout|freebsd-elf|sunos) + freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" @@ -6311,7 +7453,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -6334,7 +7476,7 @@ func_mode_link () done # Make executables depend on our current version. - verstring="$verstring:${current}.0" + func_append verstring ":${current}.0" ;; qnx) @@ -6402,10 +7544,10 @@ func_mode_link () fi func_generate_dlsyms "$libname" "$libname" "yes" - libobjs="$libobjs $symfileobj" + func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= - if test "$mode" != relink; then + if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -6421,7 +7563,7 @@ func_mode_link () continue fi fi - removelist="$removelist $p" + func_append removelist " $p" ;; *) ;; esac @@ -6432,27 +7574,28 @@ func_mode_link () # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" + func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do - # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` - # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` - # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then @@ -6466,7 +7609,7 @@ func_mode_link () for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; + *) func_append dlfiles " $lib" ;; esac done @@ -6476,19 +7619,19 @@ func_mode_link () for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; + *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. @@ -6505,7 +7648,7 @@ func_mode_link () *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" + func_append deplibs " -lc" fi ;; esac @@ -6554,7 +7697,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6565,21 +7708,21 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which I believe you do not have" - $ECHO "*** because a test_compile did reveal that the linker did not use it for" - $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6597,7 +7740,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6608,29 +7751,29 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because a test_compile did reveal that the linker did not use this one" - $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - $ECHO "*** make it link in! You will probably need to install it or some" - $ECHO "*** library that it depends on before this library will be fully" - $ECHO "*** functional. Installing it before continuing would be even better." + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6647,15 +7790,27 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + if test "$want_nocaseglob" = yes; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | @@ -6672,13 +7827,13 @@ EOF potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6687,12 +7842,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else @@ -6703,7 +7858,7 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. @@ -6719,7 +7874,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac @@ -6730,9 +7885,9 @@ EOF potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6741,12 +7896,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else @@ -6757,32 +7912,32 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" - tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ - -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO + case $tmp_deplibs in + *[!\ \ ]*) + echo if test "X$deplibs_check_method" = "Xnone"; then - $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + echo "*** Warning: inter-library dependencies are not supported in this platform." else - $ECHO "*** Warning: inter-library dependencies are not known to be supported." + echo "*** Warning: inter-library dependencies are not known to be supported." fi - $ECHO "*** All declared inter-library dependencies are being dropped." + echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes - fi + ;; + esac ;; esac versuffix=$versuffix_save @@ -6794,23 +7949,23 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - $ECHO - $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - $ECHO "*** a static module, that should work as long as the dlopening" - $ECHO "*** application is linked with the -dlopen flag." + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -6820,16 +7975,16 @@ EOF build_libtool_libs=no fi else - $ECHO "*** The inter-library dependencies that have been dropped here will be" - $ECHO "*** automatically added whenever a program is linked with this library" - $ECHO "*** or is declared to -dlopen it." + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then - $ECHO - $ECHO "*** Since this library must not contain undefined symbols," - $ECHO "*** because either the platform does not support them or" - $ECHO "*** it was explicitly requested with -no-undefined," - $ECHO "*** libtool will only create a static version of it." + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -6846,9 +8001,9 @@ EOF # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -6861,7 +8016,7 @@ EOF *) case " $deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -6871,10 +8026,10 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" @@ -6886,15 +8041,22 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else @@ -6903,18 +8065,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" + func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -6922,17 +8084,13 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi @@ -6940,7 +8098,7 @@ EOF fi shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -6966,18 +8124,18 @@ EOF linknames= for link do - linknames="$linknames $link" + func_append linknames " $link" done # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" - delfiles="$delfiles $export_symbols" + func_append delfiles " $export_symbols" fi orig_export_symbols= @@ -7008,13 +8166,45 @@ EOF $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do + for cmd1 in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" - func_len " $cmd" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. @@ -7036,7 +8226,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then @@ -7048,7 +8238,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7058,7 +8248,7 @@ EOF case " $convenience " in *" $test_deplib "*) ;; *) - tmp_deplibs="$tmp_deplibs $test_deplib" + func_append tmp_deplibs " $test_deplib" ;; esac done @@ -7078,21 +8268,21 @@ EOF test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" + func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi @@ -7137,7 +8327,8 @@ EOF save_libobjs=$libobjs fi save_output=$output - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + func_basename "$output" + output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. @@ -7150,13 +8341,16 @@ EOF if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" - $ECHO 'INPUT (' > $output + echo 'INPUT (' > $output for obj in $save_libobjs do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - $ECHO ')' >> $output - delfiles="$delfiles $output" + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" @@ -7170,10 +8364,12 @@ EOF fi for obj do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - delfiles="$delfiles $output" - output=$firstobj\"$file_list_spec$output\" + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." @@ -7197,17 +8393,19 @@ EOF # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext - objlist=$obj + objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result @@ -7217,11 +8415,12 @@ EOF # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi - delfiles="$delfiles $output" + func_append delfiles " $output" else output= @@ -7255,7 +8454,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7276,7 +8475,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then @@ -7288,7 +8487,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7329,10 +8528,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi @@ -7348,7 +8547,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7360,7 +8559,7 @@ EOF IFS="$save_ifs" # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -7441,18 +8640,21 @@ EOF if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' @@ -7512,8 +8714,8 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac @@ -7524,14 +8726,14 @@ EOF if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7545,7 +8747,7 @@ EOF *) case " $compile_deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -7555,17 +8757,17 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. @@ -7573,7 +8775,7 @@ EOF # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done fi @@ -7592,18 +8794,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi case $host in @@ -7612,12 +8814,12 @@ EOF case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; - *) dllsearchpath="$dllsearchpath:$libdir";; + *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -7643,18 +8845,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + *) func_append finalize_perm_rpath " $libdir" ;; esac fi done @@ -7668,8 +8870,8 @@ EOF if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" @@ -7681,15 +8883,15 @@ EOF wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; - *cegcc) - # Disable wrappers for cegcc, we are cross compiling anyway. - wrappers_required=no - ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no @@ -7698,13 +8900,19 @@ EOF esac if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' @@ -7727,7 +8935,7 @@ EOF # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7735,7 +8943,7 @@ EOF # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7745,11 +8953,18 @@ EOF # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + exit $EXIT_SUCCESS fi @@ -7764,7 +8979,7 @@ EOF if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -7776,13 +8991,19 @@ EOF fi # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Now create the wrapper script. func_verbose "creating $output" @@ -7800,18 +9021,7 @@ EOF fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $ECHO for shipping. - if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. @@ -7891,7 +9101,7 @@ EOF else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then - oldobjs="$oldobjs $symfileobj" + func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" @@ -7899,10 +9109,10 @@ EOF if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. @@ -7913,10 +9123,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have @@ -7932,9 +9142,9 @@ EOF done | sort | sort -uc >/dev/null 2>&1); then : else - $ECHO "copying selected object files to avoid basename conflicts..." + echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= @@ -7958,18 +9168,30 @@ EOF esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" ;; - *) oldobjs="$oldobjs $obj" ;; + *) func_append oldobjs " $obj" ;; esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." @@ -8043,7 +9265,7 @@ EOF done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -8063,12 +9285,23 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" - newdependency_libs="$newdependency_libs $libdir/$name" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" @@ -8082,9 +9315,9 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlfiles="$newdlfiles $libdir/$name" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; - *) newdlfiles="$newdlfiles $lib" ;; + *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" @@ -8101,7 +9334,7 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlprefiles="$newdlprefiles $libdir/$name" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done @@ -8113,7 +9346,7 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlfiles="$newdlfiles $abs" + func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= @@ -8122,15 +9355,33 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlprefiles="$newdlprefiles $abs" + func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; esac $ECHO > $output "\ # $outputname - a libtool library file @@ -8189,7 +9440,7 @@ relink_command=\"$relink_command\"" exit $EXIT_SUCCESS } -{ test "$mode" = link || test "$mode" = relink; } && +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} @@ -8209,9 +9460,9 @@ func_mode_uninstall () for arg do case $arg in - -f) RM="$RM $arg"; rmforce=yes ;; - -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; esac done @@ -8220,24 +9471,23 @@ func_mode_uninstall () rmdirs= - origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then - objdir="$origobjdir" + odir="$objdir" else - objdir="$dir/$origobjdir" + odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" + test "$opt_mode" = uninstall && odir="$dir" - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; esac fi @@ -8263,18 +9513,17 @@ func_mode_uninstall () # Delete the libtool libraries and symlinks. for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" + func_append rmfiles " $odir/$n" done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$mode" in + case "$opt_mode" in clean) - case " $library_names " in - # " " in the beginning catches empty $dlname + case " $library_names " in *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then @@ -8302,19 +9551,19 @@ func_mode_uninstall () # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" + func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" + func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$mode" = clean ; then + if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) @@ -8324,7 +9573,7 @@ func_mode_uninstall () noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe - rmfiles="$rmfiles $file" + func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. @@ -8333,7 +9582,7 @@ func_mode_uninstall () func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result - rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename @@ -8341,12 +9590,12 @@ func_mode_uninstall () # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" + func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi @@ -8354,7 +9603,6 @@ func_mode_uninstall () esac func_show_eval "$RM $rmfiles" 'exit_status=1' done - objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do @@ -8366,16 +9614,16 @@ func_mode_uninstall () exit $exit_status } -{ test "$mode" = uninstall || test "$mode" = clean; } && +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} -test -z "$mode" && { +test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" diff --git a/m4/Makefile.in b/m4/Makefile.in index 41e26c1..72933b7 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -89,7 +90,6 @@ 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@ @@ -107,7 +107,6 @@ 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@ @@ -142,6 +141,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -181,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -198,6 +199,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -206,13 +208,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -237,13 +242,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -291,6 +297,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -322,8 +329,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -347,6 +358,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -371,10 +384,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -386,6 +403,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -410,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -589,10 +610,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/m4/glibc2.m4 b/m4/glibc2.m4 deleted file mode 100644 index e8f5bfe..0000000 --- a/m4/glibc2.m4 +++ /dev/null @@ -1,30 +0,0 @@ -# glibc2.m4 serial 1 -dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# Test for the GNU C Library, version 2.0 or newer. -# From Bruno Haible. - -AC_DEFUN([gt_GLIBC2], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, - ac_cv_gnu_library_2, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2=yes, - ac_cv_gnu_library_2=no) - ] - ) - AC_SUBST(GLIBC2) - GLIBC2="$ac_cv_gnu_library_2" - ] -) diff --git a/m4/intl.m4 b/m4/intl.m4 deleted file mode 100644 index 934408b..0000000 --- a/m4/intl.m4 +++ /dev/null @@ -1,285 +0,0 @@ -# intl.m4 serial 8 (gettext-0.17) -dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006. - -AC_PREREQ(2.52) - -dnl Checks for all prerequisites of the intl subdirectory, -dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, -dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. -AC_DEFUN([AM_INTL_SUBDIR], -[ - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([gt_GLIBC2])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([gl_VISIBILITY])dnl - AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl - AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl - AC_REQUIRE([gt_TYPE_WCHAR_T])dnl - AC_REQUIRE([gt_TYPE_WINT_T])dnl - AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gt_TYPE_INTMAX_T]) - AC_REQUIRE([gt_PRINTF_POSIX]) - AC_REQUIRE([gl_GLIBC21])dnl - AC_REQUIRE([gl_XSIZE])dnl - AC_REQUIRE([gt_INTL_MACOSX])dnl - - AC_CHECK_TYPE([ptrdiff_t], , - [AC_DEFINE([ptrdiff_t], [long], - [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) - ]) - AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) - AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) - - dnl Use the _snprintf function only if it is declared (because on NetBSD it - dnl is defined as a weak alias of snprintf; we prefer to use the latter). - gt_CHECK_DECL(_snprintf, [#include ]) - gt_CHECK_DECL(_snwprintf, [#include ]) - - dnl Use the *_unlocked functions only if they are declared. - dnl (because some of them were defined without being declared in Solaris - dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built - dnl on Solaris 2.5.1 to run on Solaris 2.6). - dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. - gt_CHECK_DECL(getc_unlocked, [#include ]) - - case $gt_cv_func_printf_posix in - *yes) HAVE_POSIX_PRINTF=1 ;; - *) HAVE_POSIX_PRINTF=0 ;; - esac - AC_SUBST([HAVE_POSIX_PRINTF]) - if test "$ac_cv_func_asprintf" = yes; then - HAVE_ASPRINTF=1 - else - HAVE_ASPRINTF=0 - fi - AC_SUBST([HAVE_ASPRINTF]) - if test "$ac_cv_func_snprintf" = yes; then - HAVE_SNPRINTF=1 - else - HAVE_SNPRINTF=0 - fi - AC_SUBST([HAVE_SNPRINTF]) - if test "$ac_cv_func_wprintf" = yes; then - HAVE_WPRINTF=1 - else - HAVE_WPRINTF=0 - fi - AC_SUBST([HAVE_WPRINTF]) - - AM_LANGINFO_CODESET - gt_LC_MESSAGES - - dnl Compilation on mingw and Cygwin needs special Makefile rules, because - dnl 1. when we install a shared library, we must arrange to export - dnl auxiliary pointer variables for every exported variable, - dnl 2. when we install a shared library and a static library simultaneously, - dnl the include file specifies __declspec(dllimport) and therefore we - dnl must arrange to define the auxiliary pointer variables for the - dnl exported variables _also_ in the static library. - if test "$enable_shared" = yes; then - case "$host_os" in - mingw* | cygwin*) is_woe32dll=yes ;; - *) is_woe32dll=no ;; - esac - else - is_woe32dll=no - fi - WOE32DLL=$is_woe32dll - AC_SUBST([WOE32DLL]) - - dnl On mingw and Cygwin, we can activate special Makefile rules which add - dnl version information to the shared libraries and executables. - case "$host_os" in - mingw* | cygwin*) is_woe32=yes ;; - *) is_woe32=no ;; - esac - WOE32=$is_woe32 - AC_SUBST([WOE32]) - if test $WOE32 = yes; then - dnl Check for a program that compiles Windows resource files. - AC_CHECK_TOOL([WINDRES], [windres]) - fi - - dnl Determine whether when creating a library, "-lc" should be passed to - dnl libtool or not. On many platforms, it is required for the libtool option - dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool - dnl in the *.la files - makes it impossible to create multithreaded programs, - dnl because libtool also reorders the -lc to come before the -pthread, and - dnl this disables pthread_create() . - case "$host_os" in - hpux*) LTLIBC="" ;; - *) LTLIBC="-lc" ;; - esac - AC_SUBST([LTLIBC]) - - dnl Rename some macros and functions used for locking. - AH_BOTTOM([ -#define __libc_lock_t gl_lock_t -#define __libc_lock_define gl_lock_define -#define __libc_lock_define_initialized gl_lock_define_initialized -#define __libc_lock_init gl_lock_init -#define __libc_lock_lock gl_lock_lock -#define __libc_lock_unlock gl_lock_unlock -#define __libc_lock_recursive_t gl_recursive_lock_t -#define __libc_lock_define_recursive gl_recursive_lock_define -#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized -#define __libc_lock_init_recursive gl_recursive_lock_init -#define __libc_lock_lock_recursive gl_recursive_lock_lock -#define __libc_lock_unlock_recursive gl_recursive_lock_unlock -#define glthread_in_use libintl_thread_in_use -#define glthread_lock_init libintl_lock_init -#define glthread_lock_lock libintl_lock_lock -#define glthread_lock_unlock libintl_lock_unlock -#define glthread_lock_destroy libintl_lock_destroy -#define glthread_rwlock_init libintl_rwlock_init -#define glthread_rwlock_rdlock libintl_rwlock_rdlock -#define glthread_rwlock_wrlock libintl_rwlock_wrlock -#define glthread_rwlock_unlock libintl_rwlock_unlock -#define glthread_rwlock_destroy libintl_rwlock_destroy -#define glthread_recursive_lock_init libintl_recursive_lock_init -#define glthread_recursive_lock_lock libintl_recursive_lock_lock -#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock -#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy -#define glthread_once libintl_once -#define glthread_once_call libintl_once_call -#define glthread_once_singlethreaded libintl_once_singlethreaded -]) -]) - - -dnl Checks for the core files of the intl subdirectory: -dnl dcigettext.c -dnl eval-plural.h -dnl explodename.c -dnl finddomain.c -dnl gettextP.h -dnl gmo.h -dnl hash-string.h hash-string.c -dnl l10nflist.c -dnl libgnuintl.h.in (except the *printf stuff) -dnl loadinfo.h -dnl loadmsgcat.c -dnl localealias.c -dnl log.c -dnl plural-exp.h plural-exp.c -dnl plural.y -dnl Used by libglocale. -AC_DEFUN([gt_INTL_SUBDIR_CORE], -[ - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([gl_AC_HEADER_STDINT_H]) - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([gt_INTDIV0])dnl - AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl - AC_REQUIRE([gt_INTTYPES_PRI])dnl - AC_REQUIRE([gl_LOCK])dnl - - AC_TRY_LINK( - [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], - [], - [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, - [Define to 1 if the compiler understands __builtin_expect.])]) - - AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ - stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ - argz_next __fsetlocking]) - - dnl Use the *_unlocked functions only if they are declared. - dnl (because some of them were defined without being declared in Solaris - dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built - dnl on Solaris 2.5.1 to run on Solaris 2.6). - dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. - gt_CHECK_DECL(feof_unlocked, [#include ]) - gt_CHECK_DECL(fgets_unlocked, [#include ]) - - AM_ICONV - - dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, - dnl and a _NL_LOCALE_NAME macro always. - AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, - [AC_TRY_LINK([#include -#include ], - [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES)); - return !cs; - ], - gt_cv_nl_locale_name=yes, - gt_cv_nl_locale_name=no) - ]) - if test $gt_cv_nl_locale_name = yes; then - AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, - [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi -]) - - -dnl gt_CHECK_DECL(FUNC, INCLUDES) -dnl Check whether a function is declared. -AC_DEFUN([gt_CHECK_DECL], -[ - AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, - [AC_TRY_COMPILE([$2], [ -#ifndef $1 - char *p = (char *) $1; -#endif -], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) - if test $ac_cv_have_decl_$1 = yes; then - gt_value=1 - else - gt_value=0 - fi - AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], - [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) -]) diff --git a/m4/intldir.m4 b/m4/intldir.m4 deleted file mode 100644 index 7a28843..0000000 --- a/m4/intldir.m4 +++ /dev/null @@ -1,19 +0,0 @@ -# intldir.m4 serial 1 (gettext-0.16) -dnl Copyright (C) 2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -AC_PREREQ(2.52) - -dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. -AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) diff --git a/m4/intmax.m4 b/m4/intmax.m4 deleted file mode 100644 index ce7a8a4..0000000 --- a/m4/intmax.m4 +++ /dev/null @@ -1,33 +0,0 @@ -# intmax.m4 serial 3 (gettext-0.16) -dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether the system has the 'intmax_t' type, but don't attempt to -dnl find a replacement if it is lacking. - -AC_DEFUN([gt_TYPE_INTMAX_T], -[ - AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gl_AC_HEADER_STDINT_H]) - AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, - [AC_TRY_COMPILE([ -#include -#include -#if HAVE_STDINT_H_WITH_UINTMAX -#include -#endif -#if HAVE_INTTYPES_H_WITH_UINTMAX -#include -#endif -], [intmax_t x = -1; - return !x;], - gt_cv_c_intmax_t=yes, - gt_cv_c_intmax_t=no)]) - if test $gt_cv_c_intmax_t = yes; then - AC_DEFINE(HAVE_INTMAX_T, 1, - [Define if you have the 'intmax_t' type in or .]) - fi -]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 index a3fee53..828104c 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,7 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -10,7 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 56 LT_INIT +# serial 57 LT_INIT # LT_PREREQ(VERSION) @@ -66,6 +68,7 @@ esac # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl @@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) @@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME], *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) @@ -138,6 +143,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS], m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -160,10 +170,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our @@ -179,7 +192,6 @@ fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl -_LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) @@ -193,23 +205,6 @@ aix3*) ;; 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 @@ -250,6 +245,28 @@ _LT_CONFIG_COMMANDS ])# _LT_SETUP +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify 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' +]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' @@ -408,7 +425,7 @@ m4_define([_lt_decl_all_varnames], # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS @@ -418,7 +435,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE], # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # -# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) @@ -517,12 +534,20 @@ LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -533,9 +558,9 @@ done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -543,16 +568,38 @@ for var in lt_decl_all_varnames([[ \ esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - _LT_OUTPUT_LIBTOOL_INIT ]) +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- @@ -562,20 +609,11 @@ _LT_OUTPUT_LIBTOOL_INIT AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) -cat >"$CONFIG_LT" <<_LTEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. - -lt_cl_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_LTEOF +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 +lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo @@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -646,15 +684,13 @@ chmod +x "$CONFIG_LT" # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. -if test "$no_create" != yes; then - lt_cl_success=: - test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" - exec AS_MESSAGE_LOG_FD>/dev/null - $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false - exec AS_MESSAGE_LOG_FD>>config.log - $lt_cl_success || AS_EXIT(1) -fi +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT @@ -717,15 +753,12 @@ _LT_EOF # 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) - - _LT_PROG_XSI_SHELLFNS + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) + _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], @@ -770,6 +803,7 @@ AC_DEFUN([LT_LANG], m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -791,6 +825,31 @@ m4_defun([_LT_LANG], ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -821,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ], m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER @@ -921,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ $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 + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -929,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -940,6 +1012,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -967,7 +1067,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -977,8 +1077,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -987,7 +1087,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(whole_archive_flag_spec, $1)='' + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in @@ -995,7 +1101,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="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}" @@ -1011,203 +1117,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], fi ]) -# _LT_SYS_MODULE_PATH_AIX -# ----------------------- +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -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],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`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 "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + # _LT_PROG_ECHO_BACKSLASH # ----------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_LT_SHELL_INIT([ -# 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! - : +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' 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 + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' 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 +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} - 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 +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -# 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 +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -AC_SUBST(lt_ECHO) -]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], - [An echo program that does not interpret backslashes]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], @@ -1236,7 +1281,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -1329,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1354,14 +1412,47 @@ need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) +[_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: @@ -1380,18 +1471,27 @@ 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 -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE @@ -1416,15 +1516,15 @@ AC_CACHE_CHECK([$1], [$2], -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1464,7 +1564,7 @@ AC_CACHE_CHECK([$1], [$2], if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1527,6 +1627,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + 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. @@ -1552,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + 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 @@ -1591,8 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # 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 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -1643,7 +1753,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" +[#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -1684,7 +1794,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -1693,7 +1809,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -1869,16 +1989,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/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_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes @@ -2037,6 +2157,7 @@ m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2045,16 +2166,23 @@ if test "$GCC" = yes; then 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 + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # 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 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # 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= @@ -2067,7 +2195,7 @@ if test "$GCC" = yes; then 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 ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -2087,7 +2215,13 @@ BEGIN {RS=" "; FS="/|\n";} { 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` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) @@ -2113,7 +2247,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2122,7 +2256,7 @@ aix3*) ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2175,7 +2309,7 @@ amigaos*) 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' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''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 ;; @@ -2187,7 +2321,7 @@ beos*) ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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' @@ -2206,8 +2340,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2228,36 +2363,83 @@ cygwin* | mingw* | pw32* | cegcc*) 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" +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; 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 + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + 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 + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # 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' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -2278,7 +2460,7 @@ m4_if([$1], [],[ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2286,10 +2468,6 @@ dgux*) 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. @@ -2297,7 +2475,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2315,7 +2493,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2335,12 +2513,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + 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=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -2386,12 +2578,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2407,7 +2601,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2444,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2454,16 +2648,21 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) 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_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -2472,7 +2671,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) # 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' ' '` + 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -2516,7 +2715,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -2585,7 +2784,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2610,7 +2809,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -2634,7 +2833,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -2665,7 +2864,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2675,7 +2874,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor 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 @@ -2717,6 +2916,8 @@ _LT_DECL([], [library_names_spec], [1], The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], @@ -2829,6 +3030,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], @@ -2950,6 +3152,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -2958,8 +3165,8 @@ case $host_os in fi ;; esac -_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_DECL([], [reload_cmds], [2])dnl +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD @@ -3011,16 +3218,18 @@ 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 + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && 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)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +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' @@ -3050,6 +3259,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3058,11 +3271,11 @@ hpux10.20* | hpux11*) 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_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? 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_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 @@ -3083,7 +3296,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3162,6 +3375,21 @@ tpf*) ;; esac ]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + 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 @@ -3169,7 +3397,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method == "file_magic"]) + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD @@ -3226,8 +3458,20 @@ 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. - AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) - AC_SUBST([DUMPBIN]) + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi @@ -3239,13 +3483,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -3260,6 +3504,67 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + # LT_LIB_M # -------- @@ -3268,7 +3573,7 @@ AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3296,7 +3601,12 @@ m4_defun([_LT_COMPILER_NO_RTTI], _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, @@ -3313,6 +3623,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl @@ -3380,8 +3691,8 @@ esac 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'" +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= @@ -3405,6 +3716,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -3417,6 +3729,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -3438,7 +3751,7 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -3450,6 +3763,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -3461,7 +3786,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT@&t@_DLSYM_CONST struct { const char *name; void *address; } @@ -3487,15 +3812,15 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi @@ -3528,6 +3853,13 @@ else AC_MSG_RESULT(ok) fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], @@ -3538,6 +3870,8 @@ _LT_DECL([global_symbol_to_c_name_address], _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -3549,7 +3883,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= -AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -3600,6 +3933,11 @@ m4_if([$1], [CXX], [ # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -3649,6 +3987,12 @@ m4_if([$1], [CXX], [ ;; esac ;; + 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). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) @@ -3738,8 +4082,8 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' @@ -3801,7 +4145,7 @@ m4_if([$1], [CXX], [ ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3905,6 +4249,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + 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 @@ -3947,6 +4297,15 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -4010,7 +4369,13 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -4022,25 +4387,40 @@ m4_if([$1], [CXX], [ # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; @@ -4072,7 +4452,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; @@ -4129,9 +4509,11 @@ case $host_os in _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac -AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. @@ -4150,6 +4532,8 @@ fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # @@ -4170,6 +4554,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl @@ -4178,30 +4563,40 @@ m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 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 + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - _LT_TAGVAR(export_symbols_cmds, $1)='$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) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no - ;; + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -4216,7 +4611,6 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4261,13 +4655,39 @@ dnl Note also adjust exclude_expsyms for C++ above. openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -4301,11 +4721,12 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, 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. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -4341,10 +4762,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -4362,6 +4785,11 @@ _LT_EOF fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4387,15 +4815,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -4406,13 +4835,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; - xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${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' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -4428,17 +4861,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='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' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -4452,8 +4884,8 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -4471,8 +4903,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4518,8 +4950,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4559,8 +4991,10 @@ _LT_EOF 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 + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -4648,9 +5082,9 @@ _LT_EOF _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$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" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -4659,14 +5093,19 @@ _LT_EOF else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${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. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$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' @@ -4698,20 +5137,64 @@ _LT_EOF # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=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. - _LT_TAGVAR(archive_cmds, $1)='$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. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # 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. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=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. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac ;; darwin* | rhapsody*) @@ -4724,10 +5207,6 @@ _LT_EOF _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=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 @@ -4740,7 +5219,7 @@ _LT_EOF ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -4749,7 +5228,7 @@ _LT_EOF # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4757,7 +5236,7 @@ _LT_EOF hpux9*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$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 @@ -4772,14 +5251,13 @@ _LT_EOF ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -4791,16 +5269,16 @@ _LT_EOF ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -4812,7 +5290,14 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi @@ -4840,19 +5325,34 @@ _LT_EOF irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" - AC_LINK_IFELSE(int foo(void) {}, - _LT_TAGVAR(archive_expsym_cmds, $1)='$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' - ) - LDFLAGS="$save_LDFLAGS" + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - _LT_TAGVAR(archive_cmds, $1)='$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' - _LT_TAGVAR(archive_expsym_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4914,17 +5414,17 @@ _LT_EOF _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$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' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4934,13 +5434,13 @@ _LT_EOF osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -4953,9 +5453,9 @@ _LT_EOF _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='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' + $CC -shared $pic_flag ${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"*) @@ -5131,36 +5631,38 @@ x|xyes) # 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. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi @@ -5197,9 +5699,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1], _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5225,8 +5724,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], @@ -5237,6 +5734,8 @@ _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented @@ -5330,37 +5829,22 @@ CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG -# _LT_PROG_CXX -# ------------ -# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -# compiler, we have our own version here. -m4_defun([_LT_PROG_CXX], -[ -pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -AC_PROG_CXX -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_CXX - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_CXX], []) - - # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], -[AC_REQUIRE([_LT_PROG_CXX])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no @@ -5372,7 +5856,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -5382,6 +5865,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -5413,6 +5898,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -5430,6 +5916,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -5451,8 +5938,8 @@ if test "$_lt_caught_CXX_error" != yes; then # 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 - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5484,7 +5971,7 @@ if test "$_lt_caught_CXX_error" != yes; then # 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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -5593,10 +6080,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$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" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -5605,14 +6092,19 @@ if test "$_lt_caught_CXX_error" != yes; then else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${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. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -5642,28 +6134,75 @@ if test "$_lt_caught_CXX_error" != yes; then ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$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... - _LT_TAGVAR(archive_expsym_cmds, $1)='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 - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # 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. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$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... + _LT_TAGVAR(archive_expsym_cmds, $1)='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 + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; @@ -5686,7 +6225,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -5705,6 +6244,11 @@ if test "$_lt_caught_CXX_error" != yes; then gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: @@ -5729,11 +6273,11 @@ if test "$_lt_caught_CXX_error" != yes; then # 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' + 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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 _LT_TAGVAR(ld_shlibs, $1)=no @@ -5794,7 +6338,7 @@ if test "$_lt_caught_CXX_error" != yes; then # 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' + 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -5804,10 +6348,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -5837,7 +6381,7 @@ if test "$_lt_caught_CXX_error" != yes; then case $cc_basename in CC*) # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 @@ -5848,9 +6392,9 @@ if test "$_lt_caught_CXX_error" != yes; then *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -5879,7 +6423,7 @@ if test "$_lt_caught_CXX_error" != yes; then # 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' + 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; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5916,26 +6460,26 @@ if test "$_lt_caught_CXX_error" != yes; then pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='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`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='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`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='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' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$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' ;; @@ -5943,7 +6487,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -5962,9 +6506,9 @@ if test "$_lt_caught_CXX_error" != yes; then # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5984,13 +6528,13 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${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' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=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' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6059,7 +6603,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6094,15 +6638,15 @@ if test "$_lt_caught_CXX_error" != yes; then case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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~ + $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 "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; @@ -6118,17 +6662,17 @@ if test "$_lt_caught_CXX_error" != yes; then # 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' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -6138,7 +6682,7 @@ if test "$_lt_caught_CXX_error" != yes; then # 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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -6174,7 +6718,7 @@ if test "$_lt_caught_CXX_error" != yes; then solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -6195,7 +6739,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac _LT_TAGVAR(link_all_deplibs, $1)=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6215,14 +6759,14 @@ if test "$_lt_caught_CXX_error" != yes; then if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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' + $CC -shared $pic_flag -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"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -6233,7 +6777,7 @@ if test "$_lt_caught_CXX_error" != yes; then # 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"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' @@ -6287,6 +6831,10 @@ if test "$_lt_caught_CXX_error" != yes; then CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -6342,6 +6890,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -6356,6 +6905,29 @@ AC_LANG_POP ])# _LT_LANG_CXX_CONFIG +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf 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). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -6364,6 +6936,7 @@ AC_LANG_POP # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= @@ -6413,7 +6986,20 @@ public class foo { } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then @@ -6425,7 +7011,7 @@ if AC_TRY_EVAL(ac_compile); then pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -6434,13 +7020,22 @@ if AC_TRY_EVAL(ac_compile); then test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} 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. @@ -6460,8 +7055,10 @@ if AC_TRY_EVAL(ac_compile); then _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -6497,6 +7094,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], @@ -6533,7 +7131,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -6577,32 +7175,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1], ])# _LT_SYS_HIDDEN_LIBDEPS -# _LT_PROG_F77 -# ------------ -# Since AC_PROG_F77 is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_F77], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -AC_PROG_F77 -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_F77 - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_F77], []) - - # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], -[AC_REQUIRE([_LT_PROG_F77])dnl -AC_LANG_PUSH(Fortran 77) +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6612,7 +7194,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6621,6 +7202,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6660,7 +7243,9 @@ if test "$_lt_disable_F77" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6714,38 +7299,24 @@ if test "$_lt_disable_F77" != yes; then GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG -# _LT_PROG_FC -# ----------- -# Since AC_PROG_FC is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_FC], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -AC_PROG_FC -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_FC - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_FC], []) - - # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], -[AC_REQUIRE([_LT_PROG_FC])dnl -AC_LANG_PUSH(Fortran) +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6755,7 +7326,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6764,6 +7334,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6803,7 +7375,9 @@ if test "$_lt_disable_FC" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu @@ -6859,7 +7433,8 @@ if test "$_lt_disable_FC" != yes; then fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP @@ -6896,10 +7471,12 @@ _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" @@ -6909,6 +7486,8 @@ _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -6928,10 +7507,82 @@ fi AC_LANG_RESTORE GCC=$lt_save_GCC -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## 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_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -6963,9 +7614,11 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} +CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6978,7 +7631,8 @@ fi GCC=$lt_save_GCC AC_LANG_RESTORE -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG @@ -6998,6 +7652,13 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], @@ -7037,6 +7698,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) # _LT_DECL_SED # ------------ @@ -7130,8 +7800,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -7170,208 +7840,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES -# _LT_PROG_XSI_SHELLFNS -# --------------------- -# Bourne and XSI compatible variants of some useful shell functions. -m4_defun([_LT_PROG_XSI_SHELLFNS], -[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 -} +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# 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_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # 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_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 -} + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -dnl func_dirname_and_basename -dnl A portable version of this function is already defined in general.m4sh -dnl so there is no need for it here. + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -# 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 -} + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) -# 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/'` -} + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -# 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_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -_LT_EOF -esac + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]+=\$[2]" -} -_LT_EOF +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - 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 + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac ]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/lock.m4 b/m4/lock.m4 deleted file mode 100644 index 9111933..0000000 --- a/m4/lock.m4 +++ /dev/null @@ -1,316 +0,0 @@ -# lock.m4 serial 7 (gettext-0.17) -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests for a multithreading library to be used. -dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, -dnl USE_PTH_THREADS, USE_WIN32_THREADS -dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use -dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with -dnl libtool). -dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for -dnl programs that really need multithread functionality. The difference -dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak -dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". -dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for -dnl multithread-safe programs. - -AC_DEFUN([gl_LOCK_EARLY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) -]) - -dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_EARLY_BODY], -[ - dnl Ordering constraints: This macro modifies CPPFLAGS in a way that - dnl influences the result of the autoconf tests that test for *_unlocked - dnl declarations, on AIX 5 at least. Therefore it must come early. - AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl - AC_BEFORE([$0], [gl_ARGP])dnl - - AC_REQUIRE([AC_CANONICAL_HOST]) - dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. - dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes - dnl AC_GNU_SOURCE. - m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], - [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], - [AC_REQUIRE([AC_GNU_SOURCE])]) - dnl Check for multithreading. - AC_ARG_ENABLE(threads, -AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) -AC_HELP_STRING([--disable-threads], [build without multithread safety]), - [gl_use_threads=$enableval], - [case "$host_os" in - dnl Disable multithreading by default on OSF/1, because it interferes - dnl with fork()/exec(): When msgexec is linked with -lpthread, its child - dnl process gets an endless segmentation fault inside execvp(). - osf*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac - ]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # For using : - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_TRY_LINK test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - fi -]) - -dnl The guts of gl_LOCK. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_BODY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) - gl_threads_api=none - LIBTHREAD= - LTLIBTHREAD= - LIBMULTITHREAD= - LTLIBMULTITHREAD= - if test "$gl_use_threads" != no; then - dnl Check whether the compiler and linker support weak declarations. - AC_MSG_CHECKING([whether imported symbols can be declared weak]) - gl_have_weak=no - AC_TRY_LINK([extern void xyzzy (); -#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) - AC_MSG_RESULT([$gl_have_weak]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_LOCK_EARLY_BODY. - AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - gl_have_pthread= - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - AC_TRY_LINK([#include ], - [pthread_mutex_lock((pthread_mutex_t*)0); - pthread_mutexattr_init((pthread_mutexattr_t*)0);], - [gl_have_pthread=yes]) - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test -n "$gl_have_pthread"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - AC_CHECK_LIB(pthread, pthread_kill, - [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - case "$host_os" in - solaris* | hpux*) - AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, - [Define if the pthread_in_use() detection is hard.]) - esac - ]) - else - # Some library is needed. Try libpthread and libc_r. - AC_CHECK_LIB(pthread, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread - LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) - if test -z "$gl_have_pthread"; then - # For FreeBSD 4. - AC_CHECK_LIB(c_r, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r - LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) - fi - fi - if test -n "$gl_have_pthread"; then - gl_threads_api=posix - AC_DEFINE([USE_POSIX_THREADS], 1, - [Define if the POSIX multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, - [Define if references to the POSIX multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the - # pthread_rwlock_* functions. - AC_CHECK_TYPE([pthread_rwlock_t], - [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, - [Define if the POSIX multithreading library has read/write locks.])], - [], - [#include ]) - # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. - AC_TRY_COMPILE([#include ], - [#if __FreeBSD__ == 4 -error "No, in FreeBSD 4.0 recursive mutexes actually don't work." -#else -int x = (int)PTHREAD_MUTEX_RECURSIVE; -return !x; -#endif], - [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, - [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) - fi - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then - gl_have_solaristhread= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lthread" - AC_TRY_LINK([#include -#include ], - [thr_self();], - [gl_have_solaristhread=yes]) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_solaristhread"; then - gl_threads_api=solaris - LIBTHREAD=-lthread - LTLIBTHREAD=-lthread - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_SOLARIS_THREADS], 1, - [Define if the old Solaris multithreading library can be used.]) - if test $gl_have_weak = yes; then - AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, - [Define if references to the old Solaris multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - fi - fi - if test "$gl_use_threads" = pth; then - gl_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_LINKFLAGS(pth) - gl_have_pth= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lpth" - AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_pth"; then - gl_threads_api=pth - LIBTHREAD="$LIBPTH" - LTLIBTHREAD="$LTLIBPTH" - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_PTH_THREADS], 1, - [Define if the GNU Pth multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_PTH_THREADS_WEAK], 1, - [Define if references to the GNU Pth multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - else - CPPFLAGS="$gl_save_CPPFLAGS" - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then - if { case "$host_os" in - mingw*) true;; - *) false;; - esac - }; then - gl_threads_api=win32 - AC_DEFINE([USE_WIN32_THREADS], 1, - [Define if the Win32 multithreading API can be used.]) - fi - fi - fi - fi - AC_MSG_CHECKING([for multithread API to use]) - AC_MSG_RESULT([$gl_threads_api]) - AC_SUBST(LIBTHREAD) - AC_SUBST(LTLIBTHREAD) - AC_SUBST(LIBMULTITHREAD) - AC_SUBST(LTLIBMULTITHREAD) -]) - -AC_DEFUN([gl_LOCK], -[ - AC_REQUIRE([gl_LOCK_EARLY]) - AC_REQUIRE([gl_LOCK_BODY]) - gl_PREREQ_LOCK -]) - -# Prerequisites of lib/lock.c. -AC_DEFUN([gl_PREREQ_LOCK], [ - AC_REQUIRE([AC_C_INLINE]) -]) - -dnl Survey of platforms: -dnl -dnl Platform Available Compiler Supports test-lock -dnl flavours option weak result -dnl --------------- --------- --------- -------- --------- -dnl Linux 2.4/glibc posix -lpthread Y OK -dnl -dnl GNU Hurd/glibc posix -dnl -dnl FreeBSD 5.3 posix -lc_r Y -dnl posix -lkse ? Y -dnl posix -lpthread ? Y -dnl posix -lthr Y -dnl -dnl FreeBSD 5.2 posix -lc_r Y -dnl posix -lkse Y -dnl posix -lthr Y -dnl -dnl FreeBSD 4.0,4.10 posix -lc_r Y OK -dnl -dnl NetBSD 1.6 -- -dnl -dnl OpenBSD 3.4 posix -lpthread Y OK -dnl -dnl MacOS X 10.[123] posix -lpthread Y OK -dnl -dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK -dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK -dnl -dnl HP-UX 11 posix -lpthread N (cc) OK -dnl Y (gcc) -dnl -dnl IRIX 6.5 posix -lpthread Y 0.5 -dnl -dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK -dnl -dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK -dnl -lpthread (gcc) Y -dnl -dnl Cygwin posix -lpthread Y OK -dnl -dnl Any of the above pth -lpth 0.0 -dnl -dnl Mingw win32 N OK -dnl -dnl BeOS 5 -- -dnl -dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is -dnl turned off: -dnl OK if all three tests terminate OK, -dnl 0.5 if the first test terminates OK but the second one loops endlessly, -dnl 0.0 if the first test already loops endlessly. diff --git a/m4/longlong.m4 b/m4/longlong.m4 deleted file mode 100644 index a72e53b..0000000 --- a/m4/longlong.m4 +++ /dev/null @@ -1,109 +0,0 @@ -# longlong.m4 serial 13 -dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert. - -# Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'long long int' exists but is only 32 bits large -# (as on some very old compilers), HAVE_LONG_LONG_INT will not be -# defined. In this case you can treat 'long long int' like 'long int'. - -AC_DEFUN([AC_TYPE_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. - dnl If cross compiling, assume the bug isn't important, since - dnl nobody cross compiles for this platform as far as we know. - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[@%:@include - @%:@ifndef LLONG_MAX - @%:@ define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - @%:@ define LLONG_MAX (HALF - 1 + HALF) - @%:@endif]], - [[long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0;]])], - [ac_cv_type_long_long_int=yes], - [ac_cv_type_long_long_int=no], - [ac_cv_type_long_long_int=yes])], - [ac_cv_type_long_long_int=no])]) - if test $ac_cv_type_long_long_int = yes; then - AC_DEFINE([HAVE_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `long long int'.]) - fi -]) - -# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'unsigned long long int' exists but is only 32 bits -# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT -# will not be defined. In this case you can treat 'unsigned long long int' -# like 'unsigned long int'. - -AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for unsigned long long int], - [ac_cv_type_unsigned_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [ac_cv_type_unsigned_long_long_int=yes], - [ac_cv_type_unsigned_long_long_int=no])]) - if test $ac_cv_type_unsigned_long_long_int = yes; then - AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `unsigned long long int'.]) - fi -]) - -# Expands to a C program that can be used to test for simultaneous support -# of 'long long' and 'unsigned long long'. We don't want to say that -# 'long long' is available if 'unsigned long long' is not, or vice versa, -# because too many programs rely on the symmetry between signed and unsigned -# integer types (excluding 'bool'). -AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], -[ - AC_LANG_PROGRAM( - [[/* Test preprocessor. */ - #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - error in preprocessor; - #endif - #if ! (18446744073709551615ULL <= -1ull) - error in preprocessor; - #endif - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63;]], - [[/* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull));]]) -]) diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 34151a3..5d9acd8 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -1,13 +1,14 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # 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 ltoptions.m4 +# serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -133,13 +134,13 @@ case $host in esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], @@ -325,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index f3c5309..07a8602 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -7,17 +7,17 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# Generated from ltversion.in. +# @configure_input@ -# serial 3017 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6b]) -m4_define([LT_PACKAGE_REVISION], [1.3017]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6b' -macro_revision='1.3017' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 index 637bb20..c573da9 100644 --- a/m4/lt~obsolete.m4 +++ b/m4/lt~obsolete.m4 @@ -1,13 +1,13 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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 lt~obsolete.m4 +# serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # @@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) @@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/printf-posix.m4 b/m4/printf-posix.m4 deleted file mode 100644 index 14ba612..0000000 --- a/m4/printf-posix.m4 +++ /dev/null @@ -1,44 +0,0 @@ -# printf-posix.m4 serial 3 (gettext-0.17) -dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether the printf() function supports POSIX/XSI format strings with -dnl positions. - -AC_DEFUN([gt_PRINTF_POSIX], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], - gt_cv_func_printf_posix, - [ - AC_TRY_RUN([ -#include -#include -/* The string "%2$d %1$d", with dollar characters protected from the shell's - dollar expansion (possibly an autoconf bug). */ -static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; -static char buf[100]; -int main () -{ - sprintf (buf, format, 33, 55); - return (strcmp (buf, "55 33") != 0); -}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, - [ - AC_EGREP_CPP(notposix, [ -#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ - notposix -#endif - ], gt_cv_func_printf_posix="guessing no", - gt_cv_func_printf_posix="guessing yes") - ]) - ]) - case $gt_cv_func_printf_posix in - *yes) - AC_DEFINE(HAVE_POSIX_PRINTF, 1, - [Define if your printf() function supports format strings with positions.]) - ;; - esac -]) diff --git a/m4/size_max.m4 b/m4/size_max.m4 deleted file mode 100644 index 6cb4868..0000000 --- a/m4/size_max.m4 +++ /dev/null @@ -1,68 +0,0 @@ -# size_max.m4 serial 6 -dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([gl_SIZE_MAX], -[ - AC_CHECK_HEADERS(stdint.h) - dnl First test whether the system already has SIZE_MAX. - AC_MSG_CHECKING([for SIZE_MAX]) - AC_CACHE_VAL([gl_cv_size_max], [ - gl_cv_size_max= - AC_EGREP_CPP([Found it], [ -#include -#if HAVE_STDINT_H -#include -#endif -#ifdef SIZE_MAX -Found it -#endif -], gl_cv_size_max=yes) - if test -z "$gl_cv_size_max"; then - dnl Define it ourselves. Here we assume that the type 'size_t' is not wider - dnl than the type 'unsigned long'. Try hard to find a definition that can - dnl be used in a preprocessor #if, i.e. doesn't contain a cast. - AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], - [#include -#include ], size_t_bits_minus_1=) - AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], - [#include ], fits_in_uint=) - if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then - if test $fits_in_uint = 1; then - dnl Even though SIZE_MAX fits in an unsigned int, it must be of type - dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. - AC_TRY_COMPILE([#include - extern size_t foo; - extern unsigned long foo; - ], [], fits_in_uint=0) - fi - dnl We cannot use 'expr' to simplify this expression, because 'expr' - dnl works only with 'long' integers in the host environment, while we - dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. - if test $fits_in_uint = 1; then - gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" - else - gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" - fi - else - dnl Shouldn't happen, but who knows... - gl_cv_size_max='((size_t)~(size_t)0)' - fi - fi - ]) - AC_MSG_RESULT([$gl_cv_size_max]) - if test "$gl_cv_size_max" != yes; then - AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], - [Define as the maximum value of type 'size_t', if the system doesn't define it.]) - fi -]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/visibility.m4 b/m4/visibility.m4 deleted file mode 100644 index 2ff6330..0000000 --- a/m4/visibility.m4 +++ /dev/null @@ -1,52 +0,0 @@ -# visibility.m4 serial 1 (gettext-0.15) -dnl Copyright (C) 2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests whether the compiler supports the command-line option -dnl -fvisibility=hidden and the function and variable attributes -dnl __attribute__((__visibility__("hidden"))) and -dnl __attribute__((__visibility__("default"))). -dnl Does *not* test for __visibility__("protected") - which has tricky -dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on -dnl MacOS X. -dnl Does *not* test for __visibility__("internal") - which has processor -dnl dependent semantics. -dnl Does *not* test for #pragma GCC visibility push(hidden) - which is -dnl "really only recommended for legacy code". -dnl Set the variable CFLAG_VISIBILITY. -dnl Defines and sets the variable HAVE_VISIBILITY. - -AC_DEFUN([gl_VISIBILITY], -[ - AC_REQUIRE([AC_PROG_CC]) - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - AC_MSG_CHECKING([for simple visibility declarations]) - AC_CACHE_VAL(gl_cv_cc_visibility, [ - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - AC_TRY_COMPILE( - [extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void);], - [], - gl_cv_cc_visibility=yes, - gl_cv_cc_visibility=no) - CFLAGS="$gl_save_CFLAGS"]) - AC_MSG_RESULT([$gl_cv_cc_visibility]) - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - AC_SUBST([CFLAG_VISIBILITY]) - AC_SUBST([HAVE_VISIBILITY]) - AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], - [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) -]) diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 deleted file mode 100644 index cde2129..0000000 --- a/m4/wchar_t.m4 +++ /dev/null @@ -1,20 +0,0 @@ -# wchar_t.m4 serial 1 (gettext-0.12) -dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether has the 'wchar_t' type. -dnl Prerequisite: AC_PROG_CC - -AC_DEFUN([gt_TYPE_WCHAR_T], -[ - AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, - [AC_TRY_COMPILE([#include - wchar_t foo = (wchar_t)'\0';], , - gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) - if test $gt_cv_c_wchar_t = yes; then - AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) - fi -]) diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 deleted file mode 100644 index af5ed93..0000000 --- a/m4/wint_t.m4 +++ /dev/null @@ -1,28 +0,0 @@ -# wint_t.m4 serial 2 (gettext-0.17) -dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether has the 'wint_t' type. -dnl Prerequisite: AC_PROG_CC - -AC_DEFUN([gt_TYPE_WINT_T], -[ - AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, - [AC_TRY_COMPILE([ -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be included - before . */ -#include -#include -#include -#include - wint_t foo = (wchar_t)'\0';], , - gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) - if test $gt_cv_c_wint_t = yes; then - AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) - fi -]) diff --git a/m4/xsize.m4 b/m4/xsize.m4 deleted file mode 100644 index 85bb721..0000000 --- a/m4/xsize.m4 +++ /dev/null @@ -1,13 +0,0 @@ -# xsize.m4 serial 3 -dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_XSIZE], -[ - dnl Prerequisites of lib/xsize.h. - AC_REQUIRE([gl_SIZE_MAX]) - AC_REQUIRE([AC_C_INLINE]) - AC_CHECK_HEADERS(stdint.h) -]) diff --git a/missing b/missing index 28055d2..86a8fc3 100755 --- a/missing +++ b/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ case $1 in # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/packaging/gst-plugins-bad.spec b/packaging/gst-plugins-bad.spec index ffcc50b..50de492 100644 --- a/packaging/gst-plugins-bad.spec +++ b/packaging/gst-plugins-bad.spec @@ -1,16 +1,18 @@ +#sbs-git:slp/pkgs/g/gst-plugins-bad0.10 gst-plugins-bad 0.10.23 3e50f3f786fc9956e191c290b2169d52808cd441 Name: gst-plugins-bad Summary: GStreamer plugins from the "bad" set -Version: 0.10.22 -Release: 2 -Group: TO_BE/FILLED_IN +Version: 0.10.23 +Release: 9 +Group: Applications/Multimedia License: LGPLv2+ Source0: %{name}-%{version}.tar.gz Patch0: gst-plugins-bad-disable-gtk-doc.patch -BuildRequires: gettext-tools +BuildRequires: gettext BuildRequires: gst-plugins-base-devel BuildRequires: pkgconfig(gstreamer-0.10) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(liboil-0.3) +BuildRequires: pkgconfig(libcrypto) %description GStreamer is a streaming media framework, based on graphs of filters @@ -34,122 +36,137 @@ real live maintainer, or some actual wide use. %build -./autogen.sh -%configure --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-vp8 \ - --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 +./autogen.sh + +export CFLAGS+=" -Wall -g -fPIC\ + -DGST_EXT_HLS_MODIFICATION\ + -DGST_H263PARSE_MODIFICATION\ + -DGST_H264PARSE_MODIFICATION" + +%configure --prefix=%{_prefix}\ + --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-dvdspu\ + --disable-festival\ + --disable-freeze\ + --disable-frei0r\ + --disable-hdvparse\ + --disable-librfb\ + --disable-modplug\ + --disable-mpegpsmux\ + --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-vp8\ + --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-segmentclip\ + --disable-geometrictransform\ + --disable-inter\ + --disable-dvbsuboverlay\ + --disable-ivfparse\ + --disable-gsettings\ + --disable-opus\ + --disable-openal\ + --disable-snapdsp\ + --disable-teletextdec\ + --disable-audiovisualizers\ + --disable-faceoverlay\ + --disable-freeverb\ + --disable-removesilence\ + --disable-smooth\ + --disable-avc\ + --disable-d3dvideosink\ + --disable-pvr2d make %{?jobs:-j%jobs} @@ -169,6 +186,7 @@ rm -rf %{buildroot} %{_libdir}/gstreamer-0.10/libgstdtmf.so %{_libdir}/gstreamer-0.10/libgstfieldanalysis.so %{_libdir}/gstreamer-0.10/libgstmpegtsdemux.so +%{_libdir}/gstreamer-0.10/libgstmpegtsmux.so %{_libdir}/gstreamer-0.10/libgstfragmented.so %{_libdir}/gstreamer-0.10/libgstvideoparsersbad.so %{_libdir}/gstreamer-0.10/libgstrtpmux.so @@ -176,30 +194,41 @@ rm -rf %{buildroot} %{_libdir}/gstreamer-0.10/libgstpatchdetect.so %{_libdir}/gstreamer-0.10/libgstmpegdemux.so %{_libdir}/gstreamer-0.10/libgstlegacyresample.so -%{_libdir}/gstreamer-0.10/libgstcamerabin.so +%exclude %{_libdir}/gstreamer-0.10/libgstcamerabin.so +%exclude %{_libdir}/gstreamer-0.10/libgstcamerabin2.so %{_libdir}/gstreamer-0.10/libgsth264parse.so -%{_libdir}/gstreamer-0.10/libgstmpeg4videoparse.so +%{_libdir}/gstreamer-0.10/libgstjpegformat.so +%{_libdir}/gstreamer-0.10/libgstmpegvideoparse.so %{_libdir}/gstreamer-0.10/libgstlinsys.so %{_libdir}/gstreamer-0.10/libgstsdi.so %{_libdir}/gstreamer-0.10/libgstdecklink.so %{_libdir}/gstreamer-0.10/libgstid3tag.so %{_libdir}/gstreamer-0.10/libgstsdpelem.so %{_libdir}/gstreamer-0.10/libgstrawparse.so -%{_libdir}/libgstsignalprocessor-0.10.so.0.0.0 -%{_libdir}/libgstbasevideo-0.10.so.0.0.0 -%{_libdir}/libgstphotography-0.10.so.0.0.0 -%{_libdir}/libgstphotography-0.10.so.0 -%{_libdir}/libgstbasevideo-0.10.so -%{_libdir}/libgstsignalprocessor-0.10.so.0 -%{_libdir}/libgstphotography-0.10.so -%{_libdir}/libgstsignalprocessor-0.10.so -%{_libdir}/libgstbasevideo-0.10.so.0 +%{_libdir}/gstreamer-0.10/libgstdebugutilsbad.so +%{_libdir}/libgstbasevideo-0.10.so* +%exclude %{_libdir}/libgstphotography-0.10.so* +%exclude %{_libdir}/libgstsignalprocessor-0.10.so* +%{_libdir}/libgstcodecparsers-0.10.so* +%exclude %{_libdir}/libgstbasecamerabinsrc-0.10.so* +%exclude %{_includedir}/gstreamer-0.10/gst/basecamerabinsrc/gstbasecamerasrc.h +%exclude %{_includedir}/gstreamer-0.10/gst/basecamerabinsrc/gstcamerabin-enum.h +%exclude %{_includedir}/gstreamer-0.10/gst/basecamerabinsrc/gstcamerabinpreview.h +%exclude %{_includedir}/gstreamer-0.10/gst/codecparsers/gsth264parser.h +%exclude %{_includedir}/gstreamer-0.10/gst/codecparsers/gstmpeg4parser.h +%exclude %{_includedir}/gstreamer-0.10/gst/codecparsers/gstmpegvideoparser.h +%exclude %{_includedir}/gstreamer-0.10/gst/codecparsers/gstvc1parser.h %exclude %{_includedir}/gstreamer-0.10/gst/interfaces/photography-enumtypes.h %exclude %{_includedir}/gstreamer-0.10/gst/interfaces/photography.h %exclude %{_includedir}/gstreamer-0.10/gst/signalprocessor/gstsignalprocessor.h %exclude %{_includedir}/gstreamer-0.10/gst/video/gstbasevideocodec.h %exclude %{_includedir}/gstreamer-0.10/gst/video/gstbasevideodecoder.h %exclude %{_includedir}/gstreamer-0.10/gst/video/gstbasevideoencoder.h +%exclude %{_includedir}/gstreamer-0.10/gst/video/gstbasevideoutils.h +%exclude %{_includedir}/gstreamer-0.10/gst/video/gstsurfacebuffer.h +%exclude %{_includedir}/gstreamer-0.10/gst/video/gstsurfaceconverter.h +%exclude %{_includedir}/gstreamer-0.10/gst/video/videocontext.h %exclude %{_libdir}/pkgconfig/gstreamer-plugins-bad-0.10.pc - +%exclude %{_libdir}/pkgconfig/gstreamer-basevideo-0.10.pc +%exclude %{_libdir}/pkgconfig/gstreamer-codecparsers-0.10.pc diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am index 38cd20b..4058adc 100644 --- a/pkgconfig/Makefile.am +++ b/pkgconfig/Makefile.am @@ -1,9 +1,13 @@ ### all of the standard pc files we need to generate pcverfiles = \ - gstreamer-plugins-bad-@GST_MAJORMINOR@.pc + gstreamer-plugins-bad-@GST_MAJORMINOR@.pc \ + gstreamer-codecparsers-@GST_MAJORMINOR@.pc \ + gstreamer-basevideo-@GST_MAJORMINOR@.pc pcverfiles_uninstalled = \ - gstreamer-plugins-bad-@GST_MAJORMINOR@-uninstalled.pc + gstreamer-plugins-bad-@GST_MAJORMINOR@-uninstalled.pc \ + gstreamer-codecparsers-@GST_MAJORMINOR@-uninstalled.pc \ + gstreamer-basevideo-@GST_MAJORMINOR@-uninstalled.pc all-local: $(pcverfiles) $(pcverfiles_uninstalled) @@ -22,7 +26,9 @@ pkgconfig_DATA = $(pcverfiles) CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled) pcinfiles = \ - gstreamer-plugins-bad.pc.in gstreamer-plugins-bad-uninstalled.pc.in + gstreamer-plugins-bad.pc.in gstreamer-plugins-bad-uninstalled.pc.in \ + gstreamer-codecparsers.pc.in gstreamer-codecparsers-uninstalled.pc.in \ + gstreamer-basevideo.pc.in gstreamer-basevideo-uninstalled.pc.in DISTCLEANFILES = $(pcinfiles:.in=) EXTRA_DIST = $(pcinfiles) diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in index bfaee0a..a7c3f04 100644 --- a/pkgconfig/Makefile.in +++ b/pkgconfig/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -36,12 +36,17 @@ build_triplet = @build@ host_triplet = @host@ subdir = pkgconfig DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/gstreamer-basevideo-uninstalled.pc.in \ + $(srcdir)/gstreamer-basevideo.pc.in \ + $(srcdir)/gstreamer-codecparsers-uninstalled.pc.in \ + $(srcdir)/gstreamer-codecparsers.pc.in \ $(srcdir)/gstreamer-plugins-bad-uninstalled.pc.in \ $(srcdir)/gstreamer-plugins-bad.pc.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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -78,13 +83,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gstreamer-plugins-bad.pc \ - gstreamer-plugins-bad-uninstalled.pc + gstreamer-plugins-bad-uninstalled.pc gstreamer-codecparsers.pc \ + gstreamer-codecparsers-uninstalled.pc gstreamer-basevideo.pc \ + gstreamer-basevideo-uninstalled.pc CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -109,6 +116,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -116,7 +129,6 @@ 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@ @@ -134,7 +146,6 @@ 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@ @@ -169,6 +180,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -208,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -225,6 +238,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -233,13 +247,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -264,13 +281,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -318,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -349,8 +368,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -374,6 +397,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -398,10 +423,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -413,6 +442,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -437,6 +470,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -472,7 +506,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -496,10 +529,14 @@ top_srcdir = @top_srcdir@ ### all of the standard pc files we need to generate pcverfiles = \ - gstreamer-plugins-bad-@GST_MAJORMINOR@.pc + gstreamer-plugins-bad-@GST_MAJORMINOR@.pc \ + gstreamer-codecparsers-@GST_MAJORMINOR@.pc \ + gstreamer-basevideo-@GST_MAJORMINOR@.pc pcverfiles_uninstalled = \ - gstreamer-plugins-bad-@GST_MAJORMINOR@-uninstalled.pc + gstreamer-plugins-bad-@GST_MAJORMINOR@-uninstalled.pc \ + gstreamer-codecparsers-@GST_MAJORMINOR@-uninstalled.pc \ + gstreamer-basevideo-@GST_MAJORMINOR@-uninstalled.pc cp_verbose = $(cp_verbose_$(V)) cp_verbose_ = $(cp_verbose_$(AM_DEFAULT_VERBOSITY)) @@ -508,7 +545,9 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = $(pcverfiles) CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled) pcinfiles = \ - gstreamer-plugins-bad.pc.in gstreamer-plugins-bad-uninstalled.pc.in + gstreamer-plugins-bad.pc.in gstreamer-plugins-bad-uninstalled.pc.in \ + gstreamer-codecparsers.pc.in gstreamer-codecparsers-uninstalled.pc.in \ + gstreamer-basevideo.pc.in gstreamer-basevideo-uninstalled.pc.in DISTCLEANFILES = $(pcinfiles:.in=) EXTRA_DIST = $(pcinfiles) @@ -549,6 +588,14 @@ gstreamer-plugins-bad.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-plug cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ gstreamer-plugins-bad-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-plugins-bad-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gstreamer-codecparsers.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-codecparsers.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gstreamer-codecparsers-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-codecparsers-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gstreamer-basevideo.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-basevideo.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gstreamer-basevideo-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-basevideo-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo @@ -572,9 +619,7 @@ uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -629,10 +674,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/pkgconfig/gstreamer-basevideo-uninstalled.pc.in b/pkgconfig/gstreamer-basevideo-uninstalled.pc.in new file mode 100644 index 0000000..151e66f --- /dev/null +++ b/pkgconfig/gstreamer-basevideo-uninstalled.pc.in @@ -0,0 +1,12 @@ +prefix= +exec_prefix= +libdir=${pcfiledir}/../gst-libs/gst/video +includedir=${pcfiledir}/../gst-libs + +Name: GStreamer base video, Uninstalled +Description: Base class, interface and utilities for video elements, Uninstalled +Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ +Version: @VERSION@ +Libs: -L${libdir} ${libdir}/libgstbasevideo-@GST_MAJORMINOR@.la +Cflags: -I${includedir} + diff --git a/pkgconfig/gstreamer-basevideo.pc.in b/pkgconfig/gstreamer-basevideo.pc.in new file mode 100644 index 0000000..d892fac --- /dev/null +++ b/pkgconfig/gstreamer-basevideo.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@/gstreamer-@GST_MAJORMINOR@ + +Name: GStreamer base video +Description: Base class, interface and utilities for video elements +Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ +Version: @VERSION@ +Libs: -L${libdir} -lgstbasevideo-@GST_MAJORMINOR@ +Cflags: -I${includedir} + diff --git a/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in b/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in new file mode 100644 index 0000000..5a01ba8 --- /dev/null +++ b/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in @@ -0,0 +1,12 @@ +prefix= +exec_prefix= +libdir=${pcfiledir}/../gst-libs/gst/codecparsers +includedir=${pcfiledir}/../gst-libs + +Name: GStreamer codec parsers, Uninstalled +Description: Bitstream parsers for GStreamer elements, uninstalled +Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ +Version: @VERSION@ +Libs: -L${libdir} ${libdir}/libgstcodecparsers-@GST_MAJORMINOR@.la +Cflags: -I${includedir} + diff --git a/pkgconfig/gstreamer-codecparsers.pc.in b/pkgconfig/gstreamer-codecparsers.pc.in new file mode 100644 index 0000000..e2fc6d1 --- /dev/null +++ b/pkgconfig/gstreamer-codecparsers.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@/gstreamer-@GST_MAJORMINOR@ + +Name: GStreamer codec parsers +Description: Bitstream parsers for GStreamer elements +Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ +Version: @VERSION@ +Libs: -L${libdir} -lgstcodecparsers-@GST_MAJORMINOR@ +Cflags: -I${includedir} + diff --git a/pkgconfig/gstreamer-plugins-bad.pc.in b/pkgconfig/gstreamer-plugins-bad.pc.in index c75ff59..5e21301 100644 --- a/pkgconfig/gstreamer-plugins-bad.pc.in +++ b/pkgconfig/gstreamer-plugins-bad.pc.in @@ -9,4 +9,3 @@ Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ Version: @VERSION@ Libs: -L${libdir} -lgstphotography-@GST_MAJORMINOR@ Cflags: -I${includedir} - diff --git a/po/LINGUAS b/po/LINGUAS index e1a6c64..592640a 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -af az bg ca cs da de el en_GB es eu fi fr gl hu id it ja ky lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN +af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja ky lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN diff --git a/po/Makevars.template b/po/Makevars.template deleted file mode 100644 index 32692ab..0000000 --- a/po/Makevars.template +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po/af.gmo b/po/af.gmo index e0ece2c5142cef07baf335019b5f24ef8fd40f5f..e3e4b4b4c6fe666a366e26d082a6be336a15252b 100644 GIT binary patch delta 29 kcmeBY>u1|g!zf^+Yha{nWT;?ZWMyEeZD6puhq0Lv0BybpB>(^b delta 29 kcmeBY>u1|g!zf^=YhbEtXrN$dU}a>XZD6>$hq0Lv0B#NkE&u=k diff --git a/po/af.po b/po/af.po index e1f7c4e..f312ab2 100644 --- a/po/af.po +++ b/po/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.7.6\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2004-03-18 14:16+0200\n" "Last-Translator: Petri Jooste \n" "Language-Team: Afrikaans \n" diff --git a/po/az.gmo b/po/az.gmo index 4779e77bacd5c19d82f00dd0db5632b3ea48f606..ea3ca1a90ed04e38fcba18098d9310776d945fcf 100644 GIT binary patch delta 29 kcmX@hc9v~J4WodOu7Q!Rk)eWtk(Gg=wt>Os9>#-=0DH;@-v9sr delta 29 kcmX@hc9v~J4Wodeu7Rnpp@D*-ft8Vkwt?a19>#-=0DKw;=l}o! diff --git a/po/az.po b/po/az.po index f99ffa8..7a5bd5b 100644 --- a/po/az.po +++ b/po/az.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2004-03-19 18:29+0200\n" "Last-Translator: Metin Amiroff \n" "Language-Team: Azerbaijani \n" diff --git a/po/bg.gmo b/po/bg.gmo index c3232e57d6ae0ea9dcdcde75b54832f7f1bd63fe..b04d82b0fc9d8c038ad9b5dc06795160ebf78303 100644 GIT binary patch delta 28 jcmew({6}~Ji-3`?fsw9}p@M;tm4TtQfx%`0mN%>bcbNx- delta 28 jcmew({6}~Ji-4i7fvK*cfr6odm63(Ef#GHWmN%>bcj*U> diff --git a/po/bg.po b/po/bg.po index b2da8b3..a37c620 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-26 22:30+0300\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" diff --git a/po/ca.gmo b/po/ca.gmo index c9cccbc725159ad7d4c32996d77e153747778c94..b739dd511ca833d9615bd06097417c5a8beaa4ef 100644 GIT binary patch delta 748 zcmZ9|&ubGw6bJCPN!DmhZBVglmA+yNiYD$X{%TMZ3@VCPM7(*JWXELeX1DBag&ZV! z){Bfn!HWlPf*^tRTzk}`S4BMNRsR9;JDZY&k9qmbzM0Ig&y(+}gKv9FuLv=PJc4|Q zoJLk0{2;neKn)k*>uopTJidRyeXvp>T80cyz~}HNT!%C83!H_&A;W5s=n&C>1Uh!Y zEqDxe;2IWv25;bd-X%H*d+-8$3+;ivLVMt;9YjyzDR>^fhsWVhIA_PpL>?5d4qNav ze39EB+C*m&g+CDcj-!Mg*2n{Ap*=|KIgW{Ok7zgg_62b{+J)SSoJ3ZTHp-^vtPh&^ zn{~PxuZ96famI;~0oxki>*|zyvd=Ar)|RWO;;gIeAY(*D?WDhwseomK%*%nwYdVfN z)U8A&eLK@GtD`iNVW@)t_Zt3i4m$;3n7@UaXZ@Pz*L=aA-|)mq4>7THr*>C8)+yGk zHD#t6?0W+91R9Go4Y6pR6sKpe>yWR-Nm~YzFLoY|dRID8+*9>9>6ne;hZ4_SV)Ll9 zWy=F6LL5qN oVU~_FJPrp6Ewztg$J=^qXiN63qImnyqc`}t5#o@;+wQ>m2W^d;2mk;8 delta 446 zcmX}oF-yZh6bJB^G^tuGL???aUQxj!sdvF@4GL~bQCu8cV;g8}O(4zU)I|_i4?*-J zI8-UrT~{Y{_7jMH1Mz=SeDLR&clRzAa%a6{yB|}=6``_79yvoMkxxVw*N6lZZ~@kb zUch4LW5`(KEg8mg6abb zCea$)hl}tW7U4bQ@D-~0RGMfRIzx}(I{Hh9YyN6%sG%ltFJ+KXWCX!`XdJ=(f2qHd zLMEiI4f?lwPSZtI4pKEs*t}v3&IEUz>Jk^yGN!k=EwH}A9N}^Yi=1b6y-s2u#9r8G zdr1_#tQN(MfbDthwpVYmjbqhrb%L-FodjVJl|w&~E#pBiZc1ie%O|sB)MMY1-)5!% HoNj8rQI, 2004, 2005, 2010. +# Jordi Estrada , 2011. +# Gil Forcada , 2012. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.18.2\n" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2010-11-04 21:02+0100\n" -"Last-Translator: Jordi Mallach \n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2012-01-01 14:19+0100\n" +"Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n!=1;\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" msgid "Could not read title information for DVD." msgstr "No s'ha pogut llegir la informació del títol del DVD." @@ -31,17 +33,18 @@ msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"No s'ha pogut llegir el DVD. Possiblement el DVD està encriptat i la " +"biblioteca de desencriptació de DVD no està instal·lada." -#, fuzzy msgid "Could not read DVD." -msgstr "No s'ha pogut llegir la informació del títol del DVD." +msgstr "No s'ha pogut llegir el DVD." msgid "No file name specified for writing." msgstr "No s'ha especificat cap nom de fitxer per a l'escriptura." #, c-format msgid "Could not open file \"%s\" for writing." -msgstr "No s'ha pogut obrir «%s» per a l'escriptura." +msgstr "No s'ha pogut obrir el fitxer «%s» per a l'escriptura." msgid "Internal data stream error." msgstr "S'ha produït un error intern de flux de dades." @@ -59,7 +62,7 @@ msgstr "El dispositiu «%s» no existeix." #, c-format msgid "Could not open frontend device \"%s\"." -msgstr "No s'ha pogut crear el dispositiu frontal «%s»." +msgstr "No s'ha pogut obrir el dispositiu frontal «%s»." #, c-format msgid "Could not get settings from frontend device \"%s\"." diff --git a/po/cs.gmo b/po/cs.gmo index 697909cb314fe16d3c5e911efc434e11a9393fd8..d0623905394500ae352f839c00cf69c658540f44 100644 GIT binary patch delta 29 kcmX@edysd72eW{Yu7Q!Rk)eWtk(Gg=wt>Os28vp\n" "Language-Team: Czech \n" diff --git a/po/da.gmo b/po/da.gmo index 290131852ab2283a4f2f22b24a7d38b12dc40cbb..ae3820163d47491fb500200430aff3c7767cf0fe 100644 GIT binary patch delta 28 jcmcb|caLuYi-3`?fsw9}p@M;tm4TtQfx%`07C&YHZvzIN delta 28 jcmcb|caLuYi-4i7fvK*cfr6odm63(Ef#GHW7C&YHZ&L=R diff --git a/po/da.po b/po/da.po index 8206381..68ba550 100644 --- a/po/da.po +++ b/po/da.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-28 11:28+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" diff --git a/po/de.gmo b/po/de.gmo index 6fc800b8298874f51baeaeb2434977d7db1f0143..6c38d5e1778d572b114cafca6a871d41d6c71a3a 100644 GIT binary patch delta 28 jcmX>ma7ma7\n" "Language-Team: German \n" diff --git a/po/el.gmo b/po/el.gmo index cf0cccc994b9257de0980ba687b26b371ad1080d..5c9ea1eb0c631a8b9801646a87cf1b9023fa2920 100644 GIT binary patch delta 29 kcmaFH|BQcw2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2\n" "Language-Team: Greek \n" diff --git a/po/en_GB.gmo b/po/en_GB.gmo index 5b50e5d152cf63fb06e795d41aa224a973280ed2..6ea17316fc12788997d5edc1d65652dc8812c79d 100644 GIT binary patch delta 29 kcmeBV>tx$d!zf^+Yha{nWT;?ZWMyEeZD6puhq0Cs0Bm9h6951J delta 29 kcmeBV>tx$d!zf^=YhbEtXrN$dU}a>XZD6>$hq0Cs0Bo`c8~^|S diff --git a/po/en_GB.po b/po/en_GB.po index a952504..c17c13f 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.8.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2004-04-26 10:41-0400\n" "Last-Translator: Gareth Owen \n" "Language-Team: English (British) \n" diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 0000000000000000000000000000000000000000..a6eb702d6f4c7c3a91c002e551c220dbf6eb0109 GIT binary patch literal 1705 zcma)6O>Z1E7#^TNS>OO1_!cj%La2f#vm=C}NrMWT4FpIUm8G1$Gw;qi>$O+5hc*!$ zkht{7fgb?BgJUHmB<`H}1&9+zka)Z^P11lWth{EzUnv{U6s8;l2q$bxceDsx zku0)|lrlgwp^p>d{jUB%{6-JVXKCfodl zDmxk~%WWOLt$aw69SMf27_j6kwp_LDt1Eu>?78Pa2OkV*EIk4|^K41dt_kdn)KtkJ zX`<~dV&|+&llxD60AcfcXZu})M$Vc1f=e|~$QlPaq5r_yLoS2Zt;9`s9s?It`ydv& zslk#M<4&@)pQU*}&3iX^VO>ZK4O?h7QH`cNoexFD* zH*(T=ErWFhee6K-p)~aA;KRM$?Gas_bvvmqr*l<>Yqhnt<~c4QE$#eWh(+iM#6ed=xFN(OZ`r-s96l7iUw_ICG%r~LKPtT(W@GJ{r+ z7MMBk?XbSkQkhLEr_$k?w>}%~h>cUfSb4%u3{7dHehS(ctI#{pjgwmJ;5qt&46X&A zekpNYrl7An!mG*_f0Rn{wZc*aY8;`T^$t_O)Etb2@( zdGUsYIg{r8eHxCTqSlQVTJv=Gj+#I=5|6r~u|lIZ@XS(d2@NlgWo5}=ie*5nQ3&ln zsz9Yyi&mxf&_GRHu`|AH>l8)PahD!R`IsW3DvW;jt zOcUr6vN&#Mad+=Tl`R8L)EH&j%*8}E0x!$i2OR9PQBBt&WMjMGJGJ6hCh~Ld7XAVC CweEHR literal 0 HcmV?d00001 diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..5df70cb --- /dev/null +++ b/po/eo.po @@ -0,0 +1,71 @@ +# Esperanto translation for gst-plugins-bad. +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the gst-plugins-bad package. +# Kristjan SCHMIDT , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2011-06-04 22:18+0200\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +msgid "Could not read title information for DVD." +msgstr "Ne eblis legi la titol-informojn de la DVD." + +#, c-format +msgid "Failed to open DVD device '%s'." +msgstr "Fiaskis malfermi la DVD-aparaton \"%s\"." + +msgid "Failed to set PGC based seeking." +msgstr "PGC-bazita serĉo fiaskis." + +msgid "" +"Could not read DVD. This may be because the DVD is encrypted and a DVD " +"decryption library is not installed." +msgstr "" +"Ne eblis legi la DVD-n. Eble la DVD estas ĉifrita sed biblioteko por " +"malĉifrado ne estas instalite." + +msgid "Could not read DVD." +msgstr "Ne eblis legi la DVD-n." + +msgid "No file name specified for writing." +msgstr "Neniu dosiernomo estas specifite por skribi." + +#, c-format +msgid "Could not open file \"%s\" for writing." +msgstr "Ne eblis malfermi la dosieron \"%s\" por skribi." + +msgid "Internal data stream error." +msgstr "Interna datum-flu-eraro." + +#, c-format +msgid "Could not write to file \"%s\"." +msgstr "Ne eblis skribi al dosiero \"%s\"." + +msgid "Internal data flow error." +msgstr "Interna datum-flu-eraro." + +#, c-format +msgid "Device \"%s\" does not exist." +msgstr "Aparato \"%s\" ne ekzistas." + +#, fuzzy, c-format +msgid "Could not open frontend device \"%s\"." +msgstr "Ne eblis malfermi la \"Frontend\"-aparaton \"%s\"." + +#, fuzzy, c-format +msgid "Could not get settings from frontend device \"%s\"." +msgstr "Ne eblis akiri la agordojn de la \"Frontend\"-aparato \"%s\"." + +#, c-format +msgid "Could not open file \"%s\" for reading." +msgstr "Ne eblis malfermi la dosieron \"%s\" por legi." diff --git a/po/es.gmo b/po/es.gmo index 2765259d248a5f219d0b3315fb369f9c0da69b68..0aec48cb4b16e079113e8012449623c86b8564de 100644 GIT binary patch delta 733 zcmZ9|ziSjh6bJCP_rqws7||kV3_ekbA{%xVgL-mR&PGLpi2dx%m>V2-&)MC;72*B> z?M@4|QG2UENeukf*NKeO}Z=e}R~wK)2Etnq>ni^x;R=g1{w zE5HlUhXNXS9=@LX5uU^McX%AOYDAA9!;A14T!DLV8GeSR;ZMl$Xr1T;(TD^Ze!wkw z7H+|JSoA5}!1r2{D1;9BgS>$e+=u?4^#epZa2Z~OFQGrcK4kbCuELeM$-EoT@3URG zMf3`dYv}j@vF|JzXkl&@I13#?V$WI3&ss!>(e{53m!m_-gUAJB3+ZES90q%%?t|_c zZDgfYoMr_(EfxDdzTY=FKbAvIG@hO;bInCx`y!*F)1Dg+3awbC$f{fEs?TI8Ta!5H zhJK`9)}(nMt<~!Py>`C^Cxcon#(!!z*W)mX!&q<>wWLd0CN(Z)d(&nA`I!~IN3+b88xM=(sX0?qrNB3`&);)!Om2 zpEpabG)j(@P7JD&pOku9W}O$G-g3`8bP}Z@Tgiz@tjP-e6U@Mq|EsFWlDP47n!k2a MTB+pj?WPR=0xxZpZvX%Q delta 382 zcmX}o&q_i;6vy#%uXF9Mr7a3cail^-F3nsKyh5vXEpppFdIDFj+yv5kaMij+3y~1q z^%B{(9-w-FXd!*aq{IF3xx<{91M|H*&JEu8)JUitDUn-JAYa6n2}CSfJi+UgcX-Tt zf^~ewGA{5COQA>w+oA!C-cu~NyY2y z-7IsFx3Ou()@W-wNxNaJ%d3MOlg4~Ws*`5NCa$I4Tp`+5x_YKvJ^GkFX1l>JUehYd diff --git a/po/es.po b/po/es.po index 6619786..597c276 100644 --- a/po/es.po +++ b/po/es.po @@ -1,21 +1,21 @@ -# translation of gst-plugins-bad-0.10.13.2.po to Español +# translation of gst-plugins-bad-0.10.21.2.po to Español # spanish translation for gst-plugins-bad # This file is put in the public domain. +# Jorge González , 2007, 2008, 2009, 2011. # -# Jorge González González , 2007, 2008, 2009. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.13.2\n" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2009-09-29 23:12+0200\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2011-10-02 15:47+0200\n" "Last-Translator: Jorge González González \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" msgid "Could not read title information for DVD." msgstr "No se pudo leer la información del título para el DVD." @@ -31,10 +31,11 @@ msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"No se pudo leer el DVD. Puede ser debido a que el DVD está cifrado y la " +"biblioteca de descifrado del DVD no está instalada." -#, fuzzy msgid "Could not read DVD." -msgstr "No se pudo leer la información del título para el DVD." +msgstr "No se pudo leer el DVD." msgid "No file name specified for writing." msgstr "No se especificó un nombre de archivo para su escritura." @@ -69,11 +70,359 @@ msgstr "No se pudieron obtener los ajustes del dispositivo frontend «%s»." msgid "Could not open file \"%s\" for reading." msgstr "No se pudo abrir el archivo «%s» para leer." +#~ msgid "Internal clock error." +#~ msgstr "Error en el reloj interno." + +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "" +#~ "No se pudo abrir el dispositivo de sonido para manejar el control del " +#~ "mezclador." + +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "" +#~ "No se pudo abrir el dispositivo para manejar el control del mezclador. " +#~ "Este elemento no soporta esta versión del Open Sound System." + +#~ msgid "Volume" +#~ msgstr "Volumen" + +#~ msgid "Master" +#~ msgstr "Maestro" + +#~ msgid "Front" +#~ msgstr "Frontal" + +#~ msgid "Rear" +#~ msgstr "Trasero" + +#~ msgid "Headphones" +#~ msgstr "Auriculares" + +#~ msgid "Center" +#~ msgstr "Centrado" + +#~ msgid "LFE" +#~ msgstr "LFE" + +#~ msgid "Surround" +#~ msgstr "Sonido envolvente" + +#~ msgid "Side" +#~ msgstr "Lateral" + +#~ msgid "Built-in Speaker" +#~ msgstr "Altavoz integrado" + +#~ msgid "AUX 1 Out" +#~ msgstr "Salida auxiliar 1" + +#~ msgid "AUX 2 Out" +#~ msgstr "Salida auxiliar 2" + +#~ msgid "AUX Out" +#~ msgstr "Salida auxiliar" + +#~ msgid "Bass" +#~ msgstr "Bajos" + +#~ msgid "Treble" +#~ msgstr "Agudos" + +#~ msgid "3D Depth" +#~ msgstr "Profundidad 3D" + +#~ msgid "3D Center" +#~ msgstr "Centro 3D" + +#~ msgid "3D Enhance" +#~ msgstr "Mejora 3D" + +#~ msgid "Telephone" +#~ msgstr "Teléfono" + +#~ msgid "Microphone" +#~ msgstr "Micrófono" + +#~ msgid "Line Out" +#~ msgstr "Línea de salida" + +#~ msgid "Line In" +#~ msgstr "Línea de entrada" + +#~ msgid "Internal CD" +#~ msgstr "CD interno" + +#~ msgid "Video In" +#~ msgstr "Entrada de vídeo" + +#~ msgid "AUX 1 In" +#~ msgstr "Entrada auxiliar 1" + +#~ msgid "AUX 2 In" +#~ msgstr "Entrada auxiliar 2" + +#~ msgid "AUX In" +#~ msgstr "Entrada auxiliar" + +#~ msgid "PCM" +#~ msgstr "PCM" + +#~ msgid "Record Gain" +#~ msgstr "Ganancia de grabación" + +#~ msgid "Output Gain" +#~ msgstr "Salida de grabación" + +#~ msgid "Microphone Boost" +#~ msgstr "Aumento del micrófono" + +#~ msgid "Loopback" +#~ msgstr "Bucle local" + +#~ msgid "Diagnostic" +#~ msgstr "Diagnóstico" + +#~ msgid "Bass Boost" +#~ msgstr "Aumento de bajos" + +#~ msgid "Playback Ports" +#~ msgstr "Puertos de reproducción" + +#~ msgid "Input" +#~ msgstr "Entrada" + +#~ msgid "Record Source" +#~ msgstr "Origen de la grabación" + +#~ msgid "Monitor Source" +#~ msgstr "Origen del monitor" + +#~ msgid "Keyboard Beep" +#~ msgstr "Pitido del teclado" + +#~ msgid "Monitor" +#~ msgstr "Monitor" + +#~ msgid "Simulate Stereo" +#~ msgstr "Simular estéreo" + +#~ msgid "Stereo" +#~ msgstr "Estéreo" + +#~ msgid "Surround Sound" +#~ msgstr "Sonido envolvente" + +#~ msgid "Microphone Gain" +#~ msgstr "Ganancia del micrófono" + +#~ msgid "Speaker Source" +#~ msgstr "Origen de los altavoces" + +#~ msgid "Microphone Source" +#~ msgstr "Origen del micrófono" + +#~ msgid "Jack" +#~ msgstr "Jack" + +#~ msgid "Center / LFE" +#~ msgstr "Centrado / LFE" + +#~ msgid "Stereo Mix" +#~ msgstr "Mezclador estéreo" + +#~ msgid "Mono Mix" +#~ msgstr "Mezclador mono" + +#~ msgid "Input Mix" +#~ msgstr "Mezclador de entrada" + +#~ msgid "SPDIF In" +#~ msgstr "Entrada S/PDIF" + +#~ msgid "SPDIF Out" +#~ msgstr "Salida S/PDIF" + +#~ msgid "Microphone 1" +#~ msgstr "Micrófono 1" + +#~ msgid "Microphone 2" +#~ msgstr "Micrófono 2" + +#~ msgid "Digital Out" +#~ msgstr "Salida digital" + +#~ msgid "Digital In" +#~ msgstr "Entrada digital" + +#~ msgid "HDMI" +#~ msgstr "HDMI" + +#~ msgid "Modem" +#~ msgstr "Módem" + +#~ msgid "Handset" +#~ msgstr "Auriculares" + +#~ msgid "Other" +#~ msgstr "Otro" + +#~ msgid "None" +#~ msgstr "Ninguno" + +#~ msgid "On" +#~ msgstr "Encendido" + +#~ msgid "Off" +#~ msgstr "Apagado" + +#~ msgid "Mute" +#~ msgstr "Silenciar" + +#~ msgid "Fast" +#~ msgstr "Rápido" + +#~ msgid "Very Low" +#~ msgstr "Muy bajo" + +#~ msgid "Low" +#~ msgstr "Bajo" + +#~ msgid "Medium" +#~ msgstr "Medio" + +#~ msgid "High" +#~ msgstr "Alto" + +#~ msgid "Very High" +#~ msgstr "Muy alto" + +#~ msgid "Production" +#~ msgstr "Producción" + +#~ msgid "Front Panel Microphone" +#~ msgstr "Micrófono del panel frontal" + +#~ msgid "Front Panel Line In" +#~ msgstr "Línea de entrada del panel frontal" + +#~ msgid "Front Panel Headphones" +#~ msgstr "Auriculares del panel frontal" + +#~ msgid "Front Panel Line Out" +#~ msgstr "Línea de salida del panel frontal" + +#~ msgid "Green Connector" +#~ msgstr "Conector verde" + +#~ msgid "Pink Connector" +#~ msgstr "Conector rosa" + +#~ msgid "Blue Connector" +#~ msgstr "Conector azul" + +#~ msgid "White Connector" +#~ msgstr "Conector blanco" + +#~ msgid "Black Connector" +#~ msgstr "Conector negro" + +#~ msgid "Gray Connector" +#~ msgstr "Conector gris" + +#~ msgid "Orange Connector" +#~ msgstr "Conector naranja" + +#~ msgid "Red Connector" +#~ msgstr "Conector rojo" + +#~ msgid "Yellow Connector" +#~ msgstr "Conector amarillo" + +#~ msgid "Green Front Panel Connector" +#~ msgstr "Conector verde del panel frontal" + +#~ msgid "Pink Front Panel Connector" +#~ msgstr "Conector rosa del panel frontal" + +#~ msgid "Blue Front Panel Connector" +#~ msgstr "Conector azul del panel frontal" + +#~ msgid "White Front Panel Connector" +#~ msgstr "Conector blanco del panel frontal" + +#~ msgid "Black Front Panel Connector" +#~ msgstr "Conector negro del panel frontal" + +#~ msgid "Gray Front Panel Connector" +#~ msgstr "Conector gris del panel frontal" + +#~ msgid "Orange Front Panel Connector" +#~ msgstr "Conector naranja del panel frontal" + +#~ msgid "Red Front Panel Connector" +#~ msgstr "Conector rojo del panel frontal" + +#~ msgid "Yellow Front Panel Connector" +#~ msgstr "Conector amarillo del panel frontal" + +#~ msgid "Spread Output" +#~ msgstr "Expandir salida" + +#~ msgid "Downmix" +#~ msgstr "Reducción de canales" + +#~ msgid "Virtual Mixer Input" +#~ msgstr "Entrada del mezclador virtual" + +#~ msgid "Virtual Mixer Output" +#~ msgstr "Salida del mezclador virtual" + +#~ msgid "Virtual Mixer Channels" +#~ msgstr "Canales del mezclador virtual" + +#~ msgid "%s Function" +#~ msgstr "Función %s" + #~ msgid "%s %d" #~ msgstr "%s %d" -#~ msgid "Internal clock error." -#~ msgstr "Error en el reloj interno." +#~ msgid "" +#~ "Could not open audio device for playback. Device is being used by another " +#~ "application." +#~ msgstr "" +#~ "No se pudo abrir el dispositivo de sonido para reproducir. Otra " +#~ "aplicación está usando el dispositivo." + +#~ msgid "" +#~ "Could not open audio device for playback. You don't have permission to " +#~ "open the device." +#~ msgstr "" +#~ "No se pudo abrir el dispositivo de sonido para reproducir. No tiene " +#~ "permiso para abrir el dispositivo." + +#~ msgid "Could not open audio device for playback." +#~ msgstr "No se pudo abrir el dispositivo de sonido para reproducción." + +#~ msgid "" +#~ "Could not open audio device for playback. This version of the Open Sound " +#~ "System is not supported by this element." +#~ msgstr "" +#~ "No se pudo abrir el dispositivo para reproducir. Este elemento no soporta " +#~ "esta versión del Open Sound System." + +#~ msgid "Playback is not supported by this audio device." +#~ msgstr "Este dispositivo de sonido no soporta reproducción." + +#~ msgid "Audio playback error." +#~ msgstr "Error en la reproducción del sonido." + +#~ msgid "Recording is not supported by this audio device." +#~ msgstr "Este dispositivo de sonido no soporta grabación." + +#~ msgid "Error recording from audio device." +#~ msgstr "Error al grabar desde el dispositivo de sonido." #~ msgid "PCM 1" #~ msgstr "PCM 1" diff --git a/po/eu.gmo b/po/eu.gmo index b42697e0d6a71866b799556bfb944be8bd4dc637..bfa00b30e2a45ac2293114d47dbbd0abf893d64e 100644 GIT binary patch delta 29 kcmZ3%yMlLv2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2<8B00B+C*&;S4c delta 29 kcmZ3%yMlLv2eW{ou7Rnpp@D*-ft8Vkwt?a12<8B00B;}$*#H0l diff --git a/po/eu.po b/po/eu.po index 4d4c735..d039324 100644 --- a/po/eu.po +++ b/po/eu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.17.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2010-03-25 12:30+0100\n" "Last-Translator: Mikel Olasagasti Uranga \n" "Language-Team: Basque \n" diff --git a/po/fi.gmo b/po/fi.gmo index 9dec3ad40657ddf943a3a24d293b553a9ccd536c..4c6278ae3a82bc167f194d5a6184447312cf4ff0 100644 GIT binary patch delta 29 kcmaFQ^PXpe2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2xf6+0DZ6rBLDyZ delta 29 kcmaFQ^PXpe2eW{ou7Rnpp@D*-ft8Vkwt?a12xf6+0Db@mEC2ui diff --git a/po/fi.po b/po/fi.po index 86dd293..80d3d1c 100644 --- a/po/fi.po +++ b/po/fi.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.13.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2009-08-12 22:13+0300\n" "Last-Translator: Tommi Vainikainen \n" "Language-Team: Finnish \n" diff --git a/po/fr.gmo b/po/fr.gmo index de8dbf6d0573117c1244ff9ba6f4e3d857a1aba9..737c0931346adc2b6bb20e1abff6e47256426a2c 100644 GIT binary patch delta 28 jcmZn{Xct((B4DIzV5Dngs9<1ZWnidnV6a($\n" "Language-Team: French \n" diff --git a/po/gl.gmo b/po/gl.gmo index 0906ffa08a3b00834c94808df2d280a7ce2397b8..c40c6b9bdcc9931f65fc7c53a15f68e7426658cf 100644 GIT binary patch delta 718 zcmZ9IziSjh6vy9QE}q6q3{en&;R9nKvSD{&6|YmTF@lOn`q|r;+~B$scXoqU$aOY) z)hP)64Hj~cRwa$CU~OTO)=I=e{LbESg^&I2=lz&@Z)Qd-hpWTyYt1(VI{}@CUPGs$ zwuc|A4~C!yFN5!9{0y!mJ_JvK?FP|fkije9EARri51s?RffvD_AcLz5L}!SG6vA-} z?t+)V9q=QXz65W&{31~Vj=<~SCol$ogKpo(5uz91Cg}2CK_6_jrh{Ve8saUm1CBsf z|59^@=og$@NUR?v!rZwv;h|S;I18;nm^rtlxkq#yzI#Djj*dZSMaxhda@HFA-u|$= z)!m@mrpi*zP059*lwFP=^|j?EYQTx$>#52LmwjoG1x67WtBs9I+Z%7P0pE4 z3RMi;O4nBBwp3Xr>Ho7PKfJSEBMQfV8=G33Br z9gc!9^n)9I5OWxH;$ZxI;m_n*^OQF<^}*>L#%~+VyT%^8PbA|^3ZB;Zjx7xesjx+I zdMN}?E19lfv85>P>Fq+Lh6RVuxs-zsYIX&cDz5Ur;zTEzHYFa0(I6GuTb^w~h&P&4 Hi*LPuPBf3f delta 375 zcmX}ou}i~16vy#*>9yKwC5nT^iUD;H3B7Ab8@koezo0|6($!U*is0hlbUNw3ARPjo zJG)l86dZN&FAynyQ-cqFd~)wy?%+QC`>oOYj(!xXO6ug6Y?CjNl~E!VEuP>Y_YRL) zkMR`W@Bo*%k9AMv5EBfrhc&#$Z0_(#WF%ugru;O+E`tXx(!@Eov0N01v738^A?p_m zaDgrS!45{HzxieEGoI6bMXp&@IafT rn-ng58=5$@Ca|W{OwNpTzTT^vtQpaaXu4Q`tA5%j?yB^obfbO&POvG} diff --git a/po/gl.po b/po/gl.po index 4ccab04..f3339d6 100644 --- a/po/gl.po +++ b/po/gl.po @@ -2,20 +2,21 @@ # Copyright (C) 2010 Fran Dieguez # This file is distributed under the same license as the gst-plugins-bad package. # Fran Diéguez , 2010. +# Fran Dieguez , 2011. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.18.2\n" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2010-05-30 13:28+0200\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2011-09-05 12:50+0200\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\\\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Poedit-Language: galego\n" msgid "Could not read title information for DVD." @@ -32,10 +33,11 @@ msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"Non foi posíbel ler o DVD. Isto pode ser cause de que o DVD estea cifrado e " +"non teña instalada unha biblioteca de descifrado de DVD." -#, fuzzy msgid "Could not read DVD." -msgstr "Non foi posíbel ler a información do título do DVD" +msgstr "Non foi posíbel ler o DVD." msgid "No file name specified for writing." msgstr "Non se especificou ningún nome de ficheiro para a súa escritura." diff --git a/po/gst-plugins-bad-0.10.pot b/po/gst-plugins-bad-0.10.pot index ef5d1ff..3ac7298 100644 --- a/po/gst-plugins-bad-0.10.pot +++ b/po/gst-plugins-bad-0.10.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.22\n" +"Project-Id-Version: gst-plugins-bad 0.10.23\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,11 +39,11 @@ msgstr "" msgid "Could not read DVD." msgstr "" -#: ext/sndfile/gstsfsink.c:277 ext/sndfile/gstsfsrc.c:341 +#: ext/sndfile/gstsfsink.c:277 ext/sndfile/gstsfsrc.c:346 msgid "No file name specified for writing." msgstr "" -#: ext/sndfile/gstsfsink.c:290 ext/sndfile/gstsfsrc.c:347 +#: ext/sndfile/gstsfsink.c:290 ext/sndfile/gstsfsrc.c:352 #, c-format msgid "Could not open file \"%s\" for writing." msgstr "" @@ -57,26 +57,26 @@ msgstr "" msgid "Could not write to file \"%s\"." msgstr "" -#: gst/aiff/aiffparse.c:1276 +#: gst/aiff/aiffparse.c:1319 msgid "Internal data flow error." msgstr "" -#: sys/dvb/gstdvbsrc.c:728 sys/dvb/gstdvbsrc.c:821 +#: sys/dvb/gstdvbsrc.c:741 sys/dvb/gstdvbsrc.c:834 #, c-format msgid "Device \"%s\" does not exist." msgstr "" -#: sys/dvb/gstdvbsrc.c:732 +#: sys/dvb/gstdvbsrc.c:745 #, c-format msgid "Could not open frontend device \"%s\"." msgstr "" -#: sys/dvb/gstdvbsrc.c:744 +#: sys/dvb/gstdvbsrc.c:757 #, c-format msgid "Could not get settings from frontend device \"%s\"." msgstr "" -#: sys/dvb/gstdvbsrc.c:825 +#: sys/dvb/gstdvbsrc.c:838 #, c-format msgid "Could not open file \"%s\" for reading." msgstr "" diff --git a/po/hu.gmo b/po/hu.gmo index 87beef025a54166159e2c166dcaf4c211855f26c..5457ae578558c1b5de5294bcb53137883d451da0 100644 GIT binary patch delta 29 kcmZ3-yN-8*2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2<9+m0B|e@;s5{u delta 29 kcmZ3-yN-8*2eW{ou7Rnpp@D*-ft8Vkwt?a12<9+m0C0Q;>i_@% diff --git a/po/hu.po b/po/hu.po index 46a3708..572ab9d 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.13.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2009-08-12 23:33+0200\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" diff --git a/po/id.gmo b/po/id.gmo index 4332ad87c567d23e6004aa0e27cbd0e52b665e4c..0d9a303ea8bbabef90a1b7034d93f25b6126f6ca 100644 GIT binary patch delta 667 zcmZ9|zi-n(6u|Lw(oiU&MWh1p`ytv22(ElyT4i7%5(owmAogp0BqzI0WIITi!cMmU z3;Y+6Dn^iCWMgJvVSs^|0r7QGW#B0a0>Dr76k-_wg!r@Ew=F z#9OSd)s$+MeY}Zdyn!F^H2%bASUED=cX);M8(hWrcnQDY2L3`GR*l8dj#55FNaGIj z?mQN#I6DnyQOhK6&0}d^DRrE>{0I4Q>KJ*HJVDmUG8V_acQ9%{ZEvdEy+IO5+AAcp zCX%uzPr5FbJu{RY%V*aNaw|pGmYc$kO?R_lzp#;*l$^FBJMFn%Dv8_4Og1b}me;y8 zFHDly=>NAS-@S8QCDh};m3!NvAB29WB?w!AZU)5C!w3E&``qQ+>9(GO8s0zjID9Yw delta 372 zcmX}oF-ikL6vpwln=y$RB`bmiqpqj{O$KLnBaA6>08d~kh`p^?1jNRA5DUG-7J)s1 zp1^dXC$JYR)c=|#4?ceLcr!eh@8##l=wn6Q3$;Yr, 2009. +# Andhika Padmawan , 2009-2012. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.13.2\n" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2009-08-24 11:38-0400\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2012-01-28 10:27+0700\n" "Last-Translator: Andhika Padmawan \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -29,10 +29,11 @@ msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"Tak dapat membaca DVD. Hal ini kemungkinan karena DVD terenkripsi dan " +"pustaka dekripsi tidak diinstal." -#, fuzzy msgid "Could not read DVD." -msgstr "Tak dapat membaca informasi judul untuk DVD." +msgstr "Tak dapat membaca DVD." msgid "No file name specified for writing." msgstr "Tak ada nama berkas yang ditentukan untuk ditulis." @@ -67,11 +68,357 @@ msgstr "Tak dapat mendapatkan pengaturan dari divais ujung-depan \"%s\"." msgid "Could not open file \"%s\" for reading." msgstr "Tak dapat membuka berkas \"%s\" untuk dibaca." +#~ msgid "Internal clock error." +#~ msgstr "Galat jam internal." + +#~ msgid "Could not open audio device for mixer control handling." +#~ msgstr "Tak dapat membuka divais audio untuk pengendalian kontrol mixer." + +#~ msgid "" +#~ "Could not open audio device for mixer control handling. This version of " +#~ "the Open Sound System is not supported by this element." +#~ msgstr "" +#~ "Tak dapat membuka divais audio untuk pengendalian kontrol mixer. Versi " +#~ "Open Sound System ini tak didukung oleh elemen ini." + +#~ msgid "Volume" +#~ msgstr "Volume" + +#~ msgid "Master" +#~ msgstr "Induk" + +#~ msgid "Front" +#~ msgstr "Depan" + +#~ msgid "Rear" +#~ msgstr "Belakang" + +#~ msgid "Headphones" +#~ msgstr "Headphone" + +#~ msgid "Center" +#~ msgstr "Tengah" + +#~ msgid "LFE" +#~ msgstr "LFE" + +#~ msgid "Surround" +#~ msgstr "Surround" + +#~ msgid "Side" +#~ msgstr "Samping" + +#~ msgid "Built-in Speaker" +#~ msgstr "Pengeras Suara Terbina" + +#~ msgid "AUX 1 Out" +#~ msgstr "AUX 1 Keluar" + +#~ msgid "AUX 2 Out" +#~ msgstr "AUX 2 Keluar" + +#~ msgid "AUX Out" +#~ msgstr "AUX Keluar" + +#~ msgid "Bass" +#~ msgstr "Bass" + +#~ msgid "Treble" +#~ msgstr "Treble" + +#~ msgid "3D Depth" +#~ msgstr "3D Dalam" + +#~ msgid "3D Center" +#~ msgstr "3D Tengah" + +#~ msgid "3D Enhance" +#~ msgstr "3D Tingkatkan" + +#~ msgid "Telephone" +#~ msgstr "Telepon" + +#~ msgid "Microphone" +#~ msgstr "Mikrofon" + +#~ msgid "Line Out" +#~ msgstr "Jalur Masuk" + +#~ msgid "Line In" +#~ msgstr "Jalur Masuk" + +#~ msgid "Internal CD" +#~ msgstr "CD Internal" + +#~ msgid "Video In" +#~ msgstr "Video Masuk" + +#~ msgid "AUX 1 In" +#~ msgstr "AUX 1 Masuk" + +#~ msgid "AUX 2 In" +#~ msgstr "AUX 2 Masuk" + +#~ msgid "AUX In" +#~ msgstr "AUX Masuk" + +#~ msgid "PCM" +#~ msgstr "PCM" + +#~ msgid "Record Gain" +#~ msgstr "Gain Rekaman" + +#~ msgid "Output Gain" +#~ msgstr "Keluaran Gain" + +#~ msgid "Microphone Boost" +#~ msgstr "Mikrofon Galak" + +#~ msgid "Loopback" +#~ msgstr "Simpul Berulang" + +#~ msgid "Diagnostic" +#~ msgstr "Diagnostik" + +#~ msgid "Bass Boost" +#~ msgstr "Bass Galak" + +#~ msgid "Playback Ports" +#~ msgstr "Pangkalan Putar Kembali" + +#~ msgid "Input" +#~ msgstr "Masukan" + +#~ msgid "Record Source" +#~ msgstr "Sumber Rekaman" + +#~ msgid "Monitor Source" +#~ msgstr "Sumber Monitor" + +#~ msgid "Keyboard Beep" +#~ msgstr "Bip Papan Ketik" + +#~ msgid "Monitor" +#~ msgstr "Monitor" + +#~ msgid "Simulate Stereo" +#~ msgstr "Simulasikan Stereo" + +#~ msgid "Stereo" +#~ msgstr "Stereo" + +#~ msgid "Surround Sound" +#~ msgstr "Suara Surround" + +#~ msgid "Microphone Gain" +#~ msgstr "Mikrofon Galak" + +#~ msgid "Speaker Source" +#~ msgstr "Sumber Pengeras Suara" + +#~ msgid "Microphone Source" +#~ msgstr "Sumber Mikrofon" + +#~ msgid "Jack" +#~ msgstr "Pengungkit" + +#~ msgid "Center / LFE" +#~ msgstr "Tengah / LFE" + +#~ msgid "Stereo Mix" +#~ msgstr "Mix Stereo" + +#~ msgid "Mono Mix" +#~ msgstr "Mix Mono" + +#~ msgid "Input Mix" +#~ msgstr "Mix Masukan" + +#~ msgid "SPDIF In" +#~ msgstr "SPDIF Masukan" + +#~ msgid "SPDIF Out" +#~ msgstr "SPDIF Keluaran" + +#~ msgid "Microphone 1" +#~ msgstr "Mikrofon 1" + +#~ msgid "Microphone 2" +#~ msgstr "Mikrofon 2" + +#~ msgid "Digital Out" +#~ msgstr "Digital Keluar" + +#~ msgid "Digital In" +#~ msgstr "Digital Masuk" + +#~ msgid "HDMI" +#~ msgstr "HDMI" + +#~ msgid "Modem" +#~ msgstr "Modem" + +#~ msgid "Handset" +#~ msgstr "Handset" + +#~ msgid "Other" +#~ msgstr "Lainnya" + +#~ msgid "None" +#~ msgstr "Tak Ada" + +#~ msgid "On" +#~ msgstr "Hidup" + +#~ msgid "Off" +#~ msgstr "Mati" + +#~ msgid "Mute" +#~ msgstr "Diam" + +#~ msgid "Fast" +#~ msgstr "Cepat" + +#~ msgid "Very Low" +#~ msgstr "Sangat Rendah" + +#~ msgid "Low" +#~ msgstr "Rendah" + +#~ msgid "Medium" +#~ msgstr "Sedang" + +#~ msgid "High" +#~ msgstr "Tinggi" + +#~ msgid "Very High" +#~ msgstr "Sangat Tinggi" + +#~ msgid "Production" +#~ msgstr "Produksi" + +#~ msgid "Front Panel Microphone" +#~ msgstr "Mikrofon Panel Depan" + +#~ msgid "Front Panel Line In" +#~ msgstr "Jalur Masuk Panel Depan" + +#~ msgid "Front Panel Headphones" +#~ msgstr "Headphone Panel Depan" + +#~ msgid "Front Panel Line Out" +#~ msgstr "Jalur Keluar Panel Depan" + +#~ msgid "Green Connector" +#~ msgstr "Konektor Hijau" + +#~ msgid "Pink Connector" +#~ msgstr "Konektor Merah Jambu" + +#~ msgid "Blue Connector" +#~ msgstr "Konektor Biru" + +#~ msgid "White Connector" +#~ msgstr "Konektor Putih" + +#~ msgid "Black Connector" +#~ msgstr "Konektor Hitam" + +#~ msgid "Gray Connector" +#~ msgstr "Konektor Abu-abu" + +#~ msgid "Orange Connector" +#~ msgstr "Konektor Jingga" + +#~ msgid "Red Connector" +#~ msgstr "Konektor Merah" + +#~ msgid "Yellow Connector" +#~ msgstr "Konektor Kuning" + +#~ msgid "Green Front Panel Connector" +#~ msgstr "Konektor Panel Depan Hijau" + +#~ msgid "Pink Front Panel Connector" +#~ msgstr "Konektor Panel Depan Merah Jambu" + +#~ msgid "Blue Front Panel Connector" +#~ msgstr "Konektor Panel Depan Biru" + +#~ msgid "White Front Panel Connector" +#~ msgstr "Konektor Panel Depan Putih" + +#~ msgid "Black Front Panel Connector" +#~ msgstr "Konektor Panel Depan Hitam" + +#~ msgid "Gray Front Panel Connector" +#~ msgstr "Konektor Panel Depan Abu-abu" + +#~ msgid "Orange Front Panel Connector" +#~ msgstr "Konektor Panel Depan Jingga" + +#~ msgid "Red Front Panel Connector" +#~ msgstr "Konektor Panel Depan Merah" + +#~ msgid "Yellow Front Panel Connector" +#~ msgstr "Konektor Panel Depan Kuning" + +#~ msgid "Spread Output" +#~ msgstr "Sebar Keluaran" + +#~ msgid "Downmix" +#~ msgstr "Downmix" + +#~ msgid "Virtual Mixer Input" +#~ msgstr "Masukan Mixer Virtual" + +#~ msgid "Virtual Mixer Output" +#~ msgstr "Keluaran Mixer Virtual" + +#~ msgid "Virtual Mixer Channels" +#~ msgstr "Kanal Mixer Virtual" + +#~ msgid "%s Function" +#~ msgstr "Fungsi %s" + #~ msgid "%s %d" #~ msgstr "%s %d" -#~ msgid "Internal clock error." -#~ msgstr "Galat jam internal." +#~ msgid "" +#~ "Could not open audio device for playback. Device is being used by another " +#~ "application." +#~ msgstr "" +#~ "Tak dapat membuka divais audio untuk putar kembali. Divais sedang " +#~ "digunakan oleh aplikasi lain." + +#~ msgid "" +#~ "Could not open audio device for playback. You don't have permission to " +#~ "open the device." +#~ msgstr "" +#~ "Tak dapat membuka divais audio untuk putar kembali. Anda tak memiliki hak " +#~ "akses untuk membuka divais." + +#~ msgid "Could not open audio device for playback." +#~ msgstr "Tak dapat membuka divais audio untuk putar kembali." + +#~ msgid "" +#~ "Could not open audio device for playback. This version of the Open Sound " +#~ "System is not supported by this element." +#~ msgstr "" +#~ "Tak dapat membuka divais audio untuk putar kembali. Versi Open Sound " +#~ "System ini tak didukung oleh elemen ini." + +#~ msgid "Playback is not supported by this audio device." +#~ msgstr "Putar kembali tak didukung oleh divais audio ini." + +#~ msgid "Audio playback error." +#~ msgstr "Putar kembali audio galat." + +#~ msgid "Recording is not supported by this audio device." +#~ msgstr "Perekaman tak didukung oleh divais audio ini." + +#~ msgid "Error recording from audio device." +#~ msgstr "Galat ketika merekam dari divais audio." #~ msgid "PCM 1" #~ msgstr "PCM 1" diff --git a/po/it.gmo b/po/it.gmo index c86698cdf413a2e6fd1847a8e635ef3cc984056f..fff22cb513d1c62530b9a370c89c85bb92fe06ca 100644 GIT binary patch delta 29 kcmey#^OI+T2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2xdiQ0DtrcK>z>% delta 29 kcmey#^OI+T2eW{ou7Rnpp@D*-ft8Vkwt?a12xdiQ0DwdXN&o-= diff --git a/po/it.po b/po/it.po index e750b0f..bebf9d1 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.13.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2009-08-14 00:12+0200\n" "Last-Translator: Luca Ferretti \n" "Language-Team: Italian \n" diff --git a/po/ja.gmo b/po/ja.gmo index e88e988650e9bf5777a71c9856a94c7bda99928c..3c32243acb415e493e983ce67130d99efc336cae 100644 GIT binary patch delta 28 jcmX>rbXI5qi-3`?fsw9}p@M;tm4TtQfx%`07F$*TY#j!5 delta 28 jcmX>rbXI5qi-4i7fvK*cfr6odm63(Ef#GHW7F$*TY;6X9 diff --git a/po/ja.po b/po/ja.po index 10545fb..140369c 100644 --- a/po/ja.po +++ b/po/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-26 19:38+0900\n" "Last-Translator: Makoto Kato \n" "Language-Team: Japanese \n" diff --git a/po/ky.gmo b/po/ky.gmo index a1903093b4a19cea7659b39af67aa4ac49ea78d4..37f2dddb31d49e67f98b627819011d37a78b789c 100644 GIT binary patch delta 29 kcmX@beu{m=6h;9fT>~RsBSQrPBP#<#Z3BbNOBmId0DQv-aR2}S delta 29 kcmX@beu{m=6h;9\n" "Language-Team: Kirghiz \n" diff --git a/po/lt.gmo b/po/lt.gmo index 46e6b8fde8c110087dd6f01146a3b21dce410ce5..f71e71fd4c18dd36a5bd677f55e449c940c0a260 100644 GIT binary patch delta 29 kcmaFP^_*)%5tD$Cu7Q!Rk)eWtk(Gg=wt>OsCZ?xM0D+wdE&u=k delta 29 kcmaFP^_*)%5tD$Su7Rnpp@D*-ft8Vkwt?a1CZ?xM0D\n" "Language-Team: Lithuanian \n" diff --git a/po/lv.gmo b/po/lv.gmo index c8eda9a54b164c977ff201337bd525adf0ed37b3..db66e0522c7cc54dc7eb5260b81658db4f88456a 100644 GIT binary patch delta 703 zcmZ9|&ubGw6u|M9w6R)aEh^NXIR5CN=*HbePz#=nhg$F#;(gK`n@P8uvbzZcgn03! zAQC-!Djq!sdJ_~<@DK3pp%?MyA0Xm)))2u*UOuyL-ptPI^SO`n{clI6-wJVPKP~j53#51^qr|>JD#h<8feoEwoNM8a5u3;4~ z;5shQ^a5}5{JtVm!yg#p@qHpbuHrF#iYk7MUYC!z5-WBawrQ-52ECa)4wjIYd@T7c&E|w9~IYuGi#N zyAww$Y3C|6I#RBt9yM*IHg!)m48Jwq$&AXI#!V__OtO~twsI3GosdO2GDXd{6BXM= zs?(n9blch_%XJ)^=>K;O_ev*Ag`QCw`rWLvJhnO#;J ze-Ca`wYzPf(4A+hlN6WH`M9*ZtrMN8hHb>QosR~rNpyF7C06KK@v7mM%FWUr&UTLU delta 377 zcmX}oJx;?w5QgEgvn2cmhbCAAVSZ8|G62hyDL8>*X_~!lDQLVf%M1~>5xwn%0?oJihVqd1< zuHrYYU@sO~!xA$*#S||w%sp<3jAYD1m%Nfg1|LRbfI21O@Co&F1#F>U@` z#9>%>f?, 2009. +# Rihards PriedÄ«tis , 2011. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad 0.10.13.2\n" +"Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2009-08-12 20:33+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2011-09-02 12:04-0000\n" "Last-Translator: Rihards PriedÄ«tis \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -33,10 +34,11 @@ msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"Nevarēja nolasÄ«t DVD. Iespējams, ka DVD ir Å¡ifrēts un DVD atÅ¡ifrēšanas " +"bibliotēka nav instalēta." -#, fuzzy msgid "Could not read DVD." -msgstr "Nevarēja nolasÄ«t virsrakstu informāciju no DVD." +msgstr "Nevar nolasÄ«t DVD." msgid "No file name specified for writing." msgstr "IerakstÄ«Å¡anai nav norādÄ«ts neviens faila nosaukums." diff --git a/po/mt.gmo b/po/mt.gmo index 5e8bb03cdbe31ebe2d5168472c119225a849f621..95d32b8ce944b01c6a942f1f3f6e90bc6968278f 100644 GIT binary patch delta 29 kcmcb?bAxAt7_)$pu7Q!Rk)eWtk(Gg=wt>NBHD)7b0CQ#rtN;K2 delta 29 kcmcb?bAxAt7_)$(u7Rnpp@D*-ft8Vkwt?YhHD)7b0CTnmwEzGB diff --git a/po/mt.po b/po/mt.po index b95e792..09bc282 100644 --- a/po/mt.po +++ b/po/mt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad-0.10.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2008-10-26 20:27+0100\n" "Last-Translator: Michel Bugeja \n" "Language-Team: Maltese \n" diff --git a/po/nb.gmo b/po/nb.gmo index 6f086cc35ff488c020269fe6f1b7f29b291f118e..79143fead5c4708887551f3d3a955c228c43f53c 100644 GIT binary patch delta 29 kcmdnUxsh{20h54{u7Q!Rk)eWtk(Gg=wt>Os1|~x$0CV>T2mk;8 delta 29 kcmdnUxsh{20h55Cu7Rnpp@D*-ft8Vkwt?a11|~x$0CYzO5dZ)H diff --git a/po/nb.po b/po/nb.po index 4498758..2f399e7 100644 --- a/po/nb.po +++ b/po/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.5\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2007-11-03 14:46+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian Bokmaal \n" diff --git a/po/nl.gmo b/po/nl.gmo index c49fe386cbe5aa69b19b5ab85b545181f9c6c253..d76d1426dfa2a1f6a88823d83634dd17a488d2ba 100644 GIT binary patch delta 28 jcmeys|ABu2i-3`?fsw9}p@M;tm4TtQfx%`0mIurLbSDQ^ delta 28 jcmeys|ABu2i-4i7fvK*cfr6odm63(Ef#GHWmIurLbaw|| diff --git a/po/nl.po b/po/nl.po index f81cb1e..dddc5e3 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-27 00:16+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" diff --git a/po/or.gmo b/po/or.gmo index 6ec376562bf6f9de698e1ed293cb56c5ec5b726b..3e86d041df8b6c0db32f568f16cad3c2512f5c82 100644 GIT binary patch delta 29 kcmdnZzMFkR4WodOu7Q!Rk)eWtk(Gg=wt>Os9!7m80Cw#MEC2ui delta 29 kcmdnZzMFkR4Wodeu7Rnpp@D*-ft8Vkwt?a19!7m80CznHH2?qr diff --git a/po/or.po b/po/or.po index 7c49b5c..c3e641e 100644 --- a/po/or.po +++ b/po/or.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2004-09-27 13:32+0530\n" "Last-Translator: Gora Mohanty \n" "Language-Team: Oriya \n" diff --git a/po/pl.gmo b/po/pl.gmo index fd20b68c3f72efbfe76c5b4edd965bf8615f5dca..c6e9c6a0213e0a7c2848e01cda432639a93b7114 100644 GIT binary patch delta 28 jcmey%|CfIOi-3`?fsw9}p@M;tm4TtQfx%`0mbc6RcK-)` delta 28 jcmey%|CfIOi-4i7fvK*cfr6odm63(Ef#GHWmbc6RcTWd~ diff --git a/po/pl.po b/po/pl.po index ddd139e..cb8eb16 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-26 17:57+0200\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index afd8e9809931dae870fde210ce0ba9cf3f1ce6fc..61372e9113eb510391811c84c9d0961822ab4480 100644 GIT binary patch delta 29 kcmcc0dzE*C2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2\n" "Language-Team: Brazilian Portuguese \n" diff --git a/po/ro.gmo b/po/ro.gmo index ee26237d939fd413ad937f259ec9ebe0379a6b11..9984c108a6678cc98b66c399fb51066cb4d0f028 100644 GIT binary patch delta 29 kcmdnXx0i2&2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2\n" "Language-Team: Romanian \n" diff --git a/po/ru.gmo b/po/ru.gmo index a73bbe977f6e295881e7c2199799b06bc05cf359..7b7f677d27f40fbe3cb2c3327722cf315f4e39ee 100644 GIT binary patch delta 28 jcmX>rd{%e?i-3`?fsw9}p@M;tm4TtQfx%`0mc6V1ZBYjI delta 28 jcmX>rd{%e?i-4i7fvK*cfr6odm63(Ef#GHWmc6V1ZJ`GM diff --git a/po/ru.po b/po/ru.po index 84c3d3e..e64e2a5 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-26 20:31+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" diff --git a/po/sk.gmo b/po/sk.gmo index 28ddc2d5446539434afc512133c879cb66e31b9e..170f0f6625496bddab3e7df1ef62d72da748d1d9 100644 GIT binary patch delta 29 kcmaFQ`<{1$2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2\n" "Language-Team: Slovak \n" diff --git a/po/sl.gmo b/po/sl.gmo index aa1e6a8948416992c350c60c3dcde21a8c47900b..09cdfb74fb7c06674594f54e45f9de28ceff0ed2 100644 GIT binary patch delta 28 jcmdlYuti`2i-3`?fsw9}p@M;tm4TtQfx%`078Mo%W;_NZ delta 28 jcmdlYuti`2i-4i7fvK*cfr6odm63(Ef#GHW78Mo%W{d_d diff --git a/po/sl.po b/po/sl.po index 7be957f..c87ef8d 100644 --- a/po/sl.po +++ b/po/sl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-26 15:21+0100\n" "Last-Translator: Klemen KoÅ¡ir \n" "Language-Team: Slovenian \n" diff --git a/po/sq.gmo b/po/sq.gmo index 4ac46b004a451a61026b029c48227294ad2fc940..32f75cf7cb0ab23ef0324ae09f87775891750350 100644 GIT binary patch delta 29 kcmaFO`I>V>5tD$Cu7Q!Rk)eWtk(Gg=wt>OsCZV>5tD$Su7Rnpp@D*-ft8Vkwt?a1CZ\n" "Language-Team: Albanian \n" diff --git a/po/sr.gmo b/po/sr.gmo index c8ef0f9ab530b8f4fbb1749702cc084fd78b46d1..495d3227cf4b101545bd5f4be8bab215681bb670 100644 GIT binary patch literal 2619 zcmb_c-ES0C6u%;Vt@sgrP@~2pS`f)>XI6}5+eJbPq-wE&ioDM5+)l^N&TQ`7E!2=m zfj|>YOb8|j=!^frDik)gU1H*sPj?cZec;7cA5DDmcV@p@sKA3ad*^pQ&N=s--#KUh zcy9AI0^=FXS1>PPzJR&qA$%}qfDSMK4gjxo@E72l*#8N99=K(b5VJr6?f`xTd=+>D z_%iT!;A_CYfCPN@VIf`uIzYbv5cmer2M$5zOCa0(^${Ts0qsYH_yG6?a02)nko|e_ zF(Fofdw`z;{{apIk325K+rY1Z2Z77LdEllegxCu_2`mCvf%|}e0})DZY{m*tWCN~< zr!nD5Z{&I_A)dsV`Gea6W(1xRPhoDs(=&?dZD!bevefvPN zeeFF`M3Vfr@ROE)_x!R@aFg{LFsaWO3`kO?9uxj`2P{+Z@tx8I2 zvJy-Ou*w1Tax|&p&tyegK+J zn4e9<{6ywE(=^Mbg>5svLL=2c#Sos0g4s9>DtlF2nU%VVl;kUMbq_2?e% z*UeJ8m>o6J%aB2u@Ht~{A!iUwzcr2Ye3q_jIL6^pdI3k5Aa(oH_XEl8Q&;mFzST-k z90xRtv4QfwJz|EVnE0{9M;$i_JH(Mu)dt zby*B}_do1HaS`>f0=}~f<>)cjR|s@}=+|8@8~hd`Lk(wPv=CJ@dj@$&Fl-ZxTQCN< zvg*I1B0K!9sp+2Wd)w)@%>wxEbkR*j0veDc<`-nPY3IBy;HZ;3_5=h`_D8syp5v&w z&$vZ70U(ou1-WO^)0ve;*nvD>bDJ*nCevW1I$JE-&DG$8`y05ID*l?=)d4qAZ%bTH VTywldjQsDtu8}zdS^xGL?q8*QgBJh* delta 361 zcmdlj@{7Ixo)F7a1|VPsVi_QI0b+I_&H-W&=m26>Ant_H>w&Z^5MKpiX(0X##P=B) z82EuW2*`fV#J~^$q@9=<7_5QxWFV~tq|XCspb`ck1qLiY5@;tUm;=kiz*N`JK*7+!%E&_7z;Lnvi@2kKiLQaMuA#Al zfq|7FNYuc9%O|n8L^q@;F|Rl$u_V99O2H*DFEb}!AviTXF;BrJr5Hpzq~})X<)xNP z?q*rdrJ$ftkW*Tem}5KHj#ZjTL1S_xtHoq}He2C~4Hq_C*m7Zq!o~IrJ1#a|*l=;y xWPc8c$@kd!CI_)e2_od1FYE`ZXaveS3e3H*RRPG|cd-$uW#7dalmD?v0RYBIVA=ox diff --git a/po/sr.po b/po/sr.po index 4bfb572..c022ab7 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,75 +1,77 @@ # Serbian translation of gst-plugins # Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the gst-plugins-bad package. # Danilo Segan , 2004. -# +# Мирослав Николић , 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins 0.7.6\n" +"Project-Id-Version: gst-plugins-bad-0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" -"PO-Revision-Date: 2004-03-13 00:18+0100\n" -"Last-Translator: Danilo Segan \n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" +"PO-Revision-Date: 2011-12-04 09:59+0200\n" +"Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" -#, fuzzy msgid "Could not read title information for DVD." -msgstr "Не могу да пишем у датотеку „%s“." +msgstr "Не могу да прочитам информације о наслову ДВД-а." -#, fuzzy, c-format +#, c-format msgid "Failed to open DVD device '%s'." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Нисам успео да отворим ДВД уређај „%s“." msgid "Failed to set PGC based seeking." -msgstr "" +msgstr "Нисам успео да подесим позиционирање засновано на ланцу програма." msgid "" "Could not read DVD. This may be because the DVD is encrypted and a DVD " "decryption library is not installed." msgstr "" +"Не могу да читам ДВД. Можда зато што је ДВД шифрован а библиотека за " +"дешифровање ДВД-а није инсталирана." -#, fuzzy msgid "Could not read DVD." -msgstr "Не могу да пишем у датотеку „%s“." +msgstr "Не могу да читам ДВД." -#, fuzzy msgid "No file name specified for writing." -msgstr "Име датотеке није задато." +msgstr "Није наведен назив датотеке за упис." #, c-format msgid "Could not open file \"%s\" for writing." -msgstr "Не могу да отворим датотеку „%s“ ради уписа." +msgstr "Не могу да отворим датотеку „%s“ за упис." msgid "Internal data stream error." -msgstr "" +msgstr "Унутрашња грешка тока података." #, c-format msgid "Could not write to file \"%s\"." msgstr "Не могу да пишем у датотеку „%s“." msgid "Internal data flow error." -msgstr "" +msgstr "Унутрашња грешка протока података." #, c-format msgid "Device \"%s\" does not exist." -msgstr "Не постоји уређај „%s“." +msgstr "Уређај „%s“ не постоји." -#, fuzzy, c-format +#, c-format msgid "Could not open frontend device \"%s\"." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Не могу да отворим управљачки уређај „%s“." -#, fuzzy, c-format +#, c-format msgid "Could not get settings from frontend device \"%s\"." -msgstr "Не могу да примим довољно бафера са уређаја „%s“." +msgstr "Не могу да добавим подешавања са управљачког уређаја „%s“." #, c-format msgid "Could not open file \"%s\" for reading." -msgstr "Не могу да отворим датотеку „%s“ ради читања." +msgstr "Не могу да отворим датотеку „%s“ за читање." #~ msgid "Could not open device \"%s\" for reading and writing." #~ msgstr "Не могу да отворим уређај „%s“ ради читања и уписа." @@ -83,6 +85,9 @@ msgstr "Не могу да отворим датотеку „%s“ ради ч #~ msgid "Could not get buffers from device \"%s\"." #~ msgstr "Не могу да примим бафере са уређаја „%s“." +#~ msgid "Could not open audio device \"%s\" for writing." +#~ msgstr "Не могу да отворим звучни уређај „%s“ ради уписа." + #~ msgid "Could not open control device \"%s\" for writing." #~ msgstr "Не могу да отворим управљачки уређај „%s“ ради уписа." @@ -119,9 +124,30 @@ msgstr "Не могу да отворим датотеку „%s“ ради ч #~ msgid "Could not open device \"%s\" for reading." #~ msgstr "Не могу да отворим уређај „%s“ ради читања." +#~ msgid "Volume" +#~ msgstr "Јачина звука" + +#~ msgid "Bass" +#~ msgstr "Бас" + +#~ msgid "Treble" +#~ msgstr "Шум" + #~ msgid "Synth" #~ msgstr "Синт." +#~ msgid "PCM" +#~ msgstr "ПЦМ" + +#~ msgid "Speaker" +#~ msgstr "Звучник" + +#~ msgid "Line-in" +#~ msgstr "Ул.лин." + +#~ msgid "Microphone" +#~ msgstr "Микрофон" + #~ msgid "CD" #~ msgstr "ЦД" @@ -131,9 +157,15 @@ msgstr "Не могу да отворим датотеку „%s“ ради ч #~ msgid "PCM-2" #~ msgstr "ПЦМ-2" +#~ msgid "Record" +#~ msgstr "Снимање" + #~ msgid "In-gain" #~ msgstr "Ул. пој." +#~ msgid "Out-gain" +#~ msgstr "Из. пој." + #~ msgid "Line-1" #~ msgstr "Лин. 1" @@ -143,6 +175,9 @@ msgstr "Не могу да отворим датотеку „%s“ ради ч #~ msgid "Line-3" #~ msgstr "Лин. 3" +#~ msgid "Digital-1" +#~ msgstr "Диг. 1" + #~ msgid "Digital-2" #~ msgstr "Диг. 2" @@ -155,9 +190,19 @@ msgstr "Не могу да отворим датотеку „%s“ ради ч #~ msgid "Phone-out" #~ msgstr "Тел. из." +#~ msgid "Video" +#~ msgstr "Видео" + #~ msgid "Radio" #~ msgstr "Радио" +#~ msgid "Monitor" +#~ msgstr "Праћење" + +#, fuzzy +#~ msgid "PC Speaker" +#~ msgstr "Звучник" + #~ msgid "Could not open CD device for reading." #~ msgstr "Не могу да отворим ЦД уређај ради читања." diff --git a/po/sv.gmo b/po/sv.gmo index 5e22ab41b2c9a5aa28beff47aa33775e79f40951..2c498a50308c38c31d2c693a66eefd6de1b59b50 100644 GIT binary patch delta 29 kcmdnOvxR4a2eW{Yu7Q!Rk)eWtk(Gg=wt>Os2\n" "Language-Team: Swedish \n" diff --git a/po/tr.gmo b/po/tr.gmo index 80611925f48f99dd05a757ef93d730c1e11dec51..4769609016bfec4af5d897f9f9b07b5eacda3206 100644 GIT binary patch delta 28 jcmZ3\n" "Language-Team: Turkish \n" diff --git a/po/uk.gmo b/po/uk.gmo index 290fe626cf092d317ebf280520c8fd24f3a047b6..063c6195f013ad986b7391de64c1513fffd928b7 100644 GIT binary patch delta 28 jcmX>ka!6zWi-3`?fsw9}p@M;tm4TtQfx%`079%zQY90nz delta 28 jcmX>ka!6zWi-4i7fvK*cfr6odm63(Ef#GHW79%zQYHkK% diff --git a/po/uk.po b/po/uk.po index 1b5d58f..09e32bd 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.21.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2011-04-30 14:00+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" diff --git a/po/vi.gmo b/po/vi.gmo index 6b4888baf097964f0da17eaa715006811edaee88..d5aa8895d02c7ae7735489ff0fdc2f7efe7c6610 100644 GIT binary patch delta 29 kcmey(`Os2\n" "Language-Team: Vietnamese \n" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 65f65ad9664e99a55275cb7246eed026e36ab123..9b55bd1aada2aa5bf8a51619b6f4a1b5f8ef9eb1 100644 GIT binary patch delta 29 kcmZqXY3AAB!7N~;Yha{nWT;?ZWMyEeZD6oDf_XI)0B1J_-T(jq delta 29 kcmZqXY3AAB!7N~?YhbEtXrN$dU}a>XZD6=Lf_XI)0B45==Kufz diff --git a/po/zh_CN.po b/po/zh_CN.po index 53bfef6..10598f8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-bad 0.10.16.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 10:28+0100\n" +"POT-Creation-Date: 2012-02-21 02:01+0000\n" "PO-Revision-Date: 2009-11-20 18:12中国标准时间\n" "Last-Translator: Ji ZhengYu \n" "Language-Team: Chinese (simplified) \n" diff --git a/stamp-h.in b/stamp-h.in deleted file mode 100644 index 9788f70..0000000 --- a/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/sys/Makefile.am b/sys/Makefile.am index 8c161d0..a48b0d2 100644 --- a/sys/Makefile.am +++ b/sys/Makefile.am @@ -22,6 +22,12 @@ endif # CDROM_DIR= # endif +if USE_DIRECT3D +D3DVIDEOSINK_DIR=d3dvideosink +else +D3DVIDEOSINK_DIR= +endif + if USE_DECKLINK DECKLINK_DIR=decklink else @@ -95,15 +101,28 @@ else VDPAU_DIR= endif + if USE_SHM SHM_DIR=shm else SHM_DIR= endif -SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) +if USE_AVC +AVC_DIR=avc +else +AVC_DIR= +endif + +if USE_PVR +PVR_DIR=pvr2d +else +PVR_DIR= +endif + +SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(PVR_DIR) -DIST_SUBDIRS = acmenc acmmp3dec applemedia decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \ - osxvideo qtwrapper shm vcd vdpau wasapi wininet winks winscreencap +DIST_SUBDIRS = acmenc acmmp3dec applemedia avc d3dvideosink decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \ + osxvideo qtwrapper shm vcd vdpau wasapi wininet winks winscreencap pvr2d include $(top_srcdir)/common/parallel-subdirs.mak diff --git a/sys/Makefile.in b/sys/Makefile.in index ab28d1d..f36b045 100644 --- a/sys/Makefile.in +++ b/sys/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -57,6 +57,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -94,11 +95,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -146,7 +147,6 @@ 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@ @@ -164,7 +164,6 @@ 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@ @@ -199,6 +198,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -238,6 +238,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -255,6 +256,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -263,13 +265,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -294,13 +299,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -348,6 +354,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -379,8 +386,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -404,6 +415,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -428,10 +441,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -443,6 +460,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -467,6 +488,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -502,7 +524,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -525,13 +546,15 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @USE_VCD_FALSE@VCD_DIR = @USE_VCD_TRUE@VCD_DIR = vcd -@USE_DECKLINK_FALSE@DECKLINK_DIR = +@USE_DIRECT3D_FALSE@D3DVIDEOSINK_DIR = # if USE_CDROM # CDROM_DIR=cdrom # else # CDROM_DIR= # endif +@USE_DIRECT3D_TRUE@D3DVIDEOSINK_DIR = d3dvideosink +@USE_DECKLINK_FALSE@DECKLINK_DIR = @USE_DECKLINK_TRUE@DECKLINK_DIR = decklink @USE_DIRECTDRAW_FALSE@DIRECTDRAW_DIR = @USE_DIRECTDRAW_TRUE@DIRECTDRAW_DIR = directdraw @@ -557,9 +580,13 @@ top_srcdir = @top_srcdir@ @USE_VDPAU_TRUE@VDPAU_DIR = vdpau @USE_SHM_FALSE@SHM_DIR = @USE_SHM_TRUE@SHM_DIR = shm -SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) -DIST_SUBDIRS = acmenc acmmp3dec applemedia decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \ - osxvideo qtwrapper shm vcd vdpau wasapi wininet winks winscreencap +@USE_AVC_FALSE@AVC_DIR = +@USE_AVC_TRUE@AVC_DIR = avc +@USE_PVR_FALSE@PVR_DIR = +@USE_PVR_TRUE@PVR_DIR = pvr2d +SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(PVR_DIR) +DIST_SUBDIRS = acmenc acmmp3dec applemedia avc d3dvideosink decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \ + osxvideo qtwrapper shm vcd vdpau wasapi wininet winks winscreencap pvr2d all: all-recursive @@ -585,6 +612,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -809,10 +837,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/acmenc/Makefile.in b/sys/acmenc/Makefile.in index 657947f..1098343 100644 --- a/sys/acmenc/Makefile.in +++ b/sys/acmenc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,8 +112,8 @@ libgstacmenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstacmenc_la_OBJECTS = libgstacmenc_la-acmenc.lo libgstacmenc_la_OBJECTS = $(am_libgstacmenc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstacmenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstacmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstacmenc_la_SOURCES) DIST_SOURCES = $(libgstacmenc_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -604,7 +631,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstacmenc.la: $(libgstacmenc_la_OBJECTS) $(libgstacmenc_la_DEPENDENCIES) +libgstacmenc.la: $(libgstacmenc_la_OBJECTS) $(libgstacmenc_la_DEPENDENCIES) $(EXTRA_libgstacmenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstacmenc_la_LINK) -rpath $(plugindir) $(libgstacmenc_la_OBJECTS) $(libgstacmenc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -618,34 +645,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstacmenc_la-acmenc.lo: acmenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstacmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstacmenc_la_CFLAGS) $(CFLAGS) -MT libgstacmenc_la-acmenc.lo -MD -MP -MF $(DEPDIR)/libgstacmenc_la-acmenc.Tpo -c -o libgstacmenc_la-acmenc.lo `test -f 'acmenc.c' || echo '$(srcdir)/'`acmenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstacmenc_la-acmenc.Tpo $(DEPDIR)/libgstacmenc_la-acmenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='acmenc.c' object='libgstacmenc_la-acmenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acmenc.c' object='libgstacmenc_la-acmenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstacmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstacmenc_la_CFLAGS) $(CFLAGS) -c -o libgstacmenc_la-acmenc.lo `test -f 'acmenc.c' || echo '$(srcdir)/'`acmenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstacmenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstacmenc_la_CFLAGS) $(CFLAGS) -c -o libgstacmenc_la-acmenc.lo `test -f 'acmenc.c' || echo '$(srcdir)/'`acmenc.c mostlyclean-libtool: -rm -f *.lo @@ -752,10 +775,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/acmenc/acmenc.c b/sys/acmenc/acmenc.c index b2db28e..2b637a5 100644 --- a/sys/acmenc/acmenc.c +++ b/sys/acmenc/acmenc.c @@ -470,10 +470,10 @@ acmenc_base_init (ACMEncClass * klass) gchar *shortname, *longname, *detail, *description; MMRESULT res; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&acmenc_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&acmenc_src_template)); + gst_element_class_add_static_pad_template (element_class, + &acmenc_sink_template); + gst_element_class_add_static_pad_template (element_class, + &acmenc_src_template); params = (ACMEncParams *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), ACMENC_PARAMS_QDATA); diff --git a/sys/acmmp3dec/Makefile.am b/sys/acmmp3dec/Makefile.am index 27c895c..f927c72 100644 --- a/sys/acmmp3dec/Makefile.am +++ b/sys/acmmp3dec/Makefile.am @@ -11,4 +11,4 @@ libgstacmmp3dec_la_LIBADD = \ -lgsttag-$(GST_MAJORMINOR) \ -lmsacm32 libgstacmmp3dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS) - +libgstacmmp3dec_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/sys/acmmp3dec/Makefile.in b/sys/acmmp3dec/Makefile.in index eebfe4f..5996e1f 100644 --- a/sys/acmmp3dec/Makefile.in +++ b/sys/acmmp3dec/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -40,6 +40,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -98,6 +99,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -105,12 +112,12 @@ libgstacmmp3dec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstacmmp3dec_la_OBJECTS = libgstacmmp3dec_la-acmmp3dec.lo libgstacmmp3dec_la_OBJECTS = $(am_libgstacmmp3dec_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstacmmp3dec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) \ + $(libgstacmmp3dec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) \ $(libgstacmmp3dec_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -122,21 +129,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstacmmp3dec_la_SOURCES) DIST_SOURCES = $(libgstacmmp3dec_la_SOURCES) @@ -147,7 +154,6 @@ 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@ @@ -165,7 +171,6 @@ 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@ @@ -200,6 +205,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -239,6 +245,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -256,6 +263,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -264,13 +272,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -295,13 +306,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -349,6 +361,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -380,8 +393,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -405,6 +422,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -429,10 +448,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -444,6 +467,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -468,6 +495,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -503,7 +531,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -538,6 +565,7 @@ libgstacmmp3dec_la_LIBADD = \ -lmsacm32 libgstacmmp3dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS) +libgstacmmp3dec_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: @@ -603,7 +631,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstacmmp3dec.la: $(libgstacmmp3dec_la_OBJECTS) $(libgstacmmp3dec_la_DEPENDENCIES) +libgstacmmp3dec.la: $(libgstacmmp3dec_la_OBJECTS) $(libgstacmmp3dec_la_DEPENDENCIES) $(EXTRA_libgstacmmp3dec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstacmmp3dec_la_LINK) -rpath $(plugindir) $(libgstacmmp3dec_la_OBJECTS) $(libgstacmmp3dec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,34 +645,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstacmmp3dec_la-acmmp3dec.lo: acmmp3dec.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) $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) -MT libgstacmmp3dec_la-acmmp3dec.lo -MD -MP -MF $(DEPDIR)/libgstacmmp3dec_la-acmmp3dec.Tpo -c -o libgstacmmp3dec_la-acmmp3dec.lo `test -f 'acmmp3dec.c' || echo '$(srcdir)/'`acmmp3dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstacmmp3dec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) -MT libgstacmmp3dec_la-acmmp3dec.lo -MD -MP -MF $(DEPDIR)/libgstacmmp3dec_la-acmmp3dec.Tpo -c -o libgstacmmp3dec_la-acmmp3dec.lo `test -f 'acmmp3dec.c' || echo '$(srcdir)/'`acmmp3dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstacmmp3dec_la-acmmp3dec.Tpo $(DEPDIR)/libgstacmmp3dec_la-acmmp3dec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='acmmp3dec.c' object='libgstacmmp3dec_la-acmmp3dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acmmp3dec.c' object='libgstacmmp3dec_la-acmmp3dec.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) $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) -c -o libgstacmmp3dec_la-acmmp3dec.lo `test -f 'acmmp3dec.c' || echo '$(srcdir)/'`acmmp3dec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstacmmp3dec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstacmmp3dec_la_CFLAGS) $(CFLAGS) -c -o libgstacmmp3dec_la-acmmp3dec.lo `test -f 'acmmp3dec.c' || echo '$(srcdir)/'`acmmp3dec.c mostlyclean-libtool: -rm -f *.lo @@ -751,10 +775,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/acmmp3dec/acmmp3dec.c b/sys/acmmp3dec/acmmp3dec.c index 2f27992..870a9bf 100644 --- a/sys/acmmp3dec/acmmp3dec.c +++ b/sys/acmmp3dec/acmmp3dec.c @@ -405,10 +405,10 @@ acmmp3dec_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&acmmp3dec_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&acmmp3dec_src_template)); + gst_element_class_add_static_pad_template (element_class, + &acmmp3dec_sink_template); + gst_element_class_add_static_pad_template (element_class, + &acmmp3dec_src_template); gst_element_class_set_details_simple (element_class, "ACM MP3 decoder", "Codec/Decoder/Audio", "Decode MP3 using ACM decoder", diff --git a/sys/applemedia/Makefile.in b/sys/applemedia/Makefile.in index f7d51fa..77c5441 100644 --- a/sys/applemedia/Makefile.in +++ b/sys/applemedia/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -63,6 +63,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -121,6 +122,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -153,8 +160,8 @@ am_libgstapplemedia_la_OBJECTS = libgstapplemedia_la-plugin.lo \ libgstapplemedia_la-vtapi.lo libgstapplemedia_la-dynapi.lo \ $(am__objects_1) $(am__objects_2) libgstapplemedia_la_OBJECTS = $(am_libgstapplemedia_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstapplemedia_la_LINK = $(LIBTOOL) $(AM_V_lt) \ $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -170,18 +177,18 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; OBJCCOMPILE = $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) @@ -189,18 +196,18 @@ LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_OBJCFLAGS) $(OBJCFLAGS) -AM_V_OBJC = $(am__v_OBJC_$(V)) -am__v_OBJC_ = $(am__v_OBJC_$(AM_DEFAULT_VERBOSITY)) +AM_V_OBJC = $(am__v_OBJC_@AM_V@) +am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@) am__v_OBJC_0 = @echo " OBJC " $@; OBJCLD = $(OBJC) OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_OBJCLD = $(am__v_OBJCLD_$(V)) -am__v_OBJCLD_ = $(am__v_OBJCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@) +am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@) am__v_OBJCLD_0 = @echo " OBJCLD" $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstapplemedia_la_SOURCES) DIST_SOURCES = $(am__libgstapplemedia_la_SOURCES_DIST) @@ -212,7 +219,6 @@ 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@ @@ -230,7 +236,6 @@ 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@ @@ -265,6 +270,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -304,6 +310,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -321,6 +328,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -329,13 +337,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -360,13 +371,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -414,6 +426,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -445,8 +458,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -470,6 +487,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -494,10 +513,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -509,6 +532,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -533,6 +560,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -568,7 +596,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -704,7 +731,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstapplemedia.la: $(libgstapplemedia_la_OBJECTS) $(libgstapplemedia_la_DEPENDENCIES) +libgstapplemedia.la: $(libgstapplemedia_la_OBJECTS) $(libgstapplemedia_la_DEPENDENCIES) $(EXTRA_libgstapplemedia_la_DEPENDENCIES) $(AM_V_OBJCLD)$(libgstapplemedia_la_LINK) -rpath $(plugindir) $(libgstapplemedia_la_OBJECTS) $(libgstapplemedia_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -739,226 +766,198 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstapplemedia_la-vth264decbin.lo: vth264decbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vth264decbin.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vth264decbin.Tpo -c -o libgstapplemedia_la-vth264decbin.lo `test -f 'vth264decbin.c' || echo '$(srcdir)/'`vth264decbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vth264decbin.Tpo $(DEPDIR)/libgstapplemedia_la-vth264decbin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vth264decbin.c' object='libgstapplemedia_la-vth264decbin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vth264decbin.c' object='libgstapplemedia_la-vth264decbin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vth264decbin.lo `test -f 'vth264decbin.c' || echo '$(srcdir)/'`vth264decbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vth264decbin.lo `test -f 'vth264decbin.c' || echo '$(srcdir)/'`vth264decbin.c libgstapplemedia_la-vth264encbin.lo: vth264encbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vth264encbin.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vth264encbin.Tpo -c -o libgstapplemedia_la-vth264encbin.lo `test -f 'vth264encbin.c' || echo '$(srcdir)/'`vth264encbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vth264encbin.Tpo $(DEPDIR)/libgstapplemedia_la-vth264encbin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vth264encbin.c' object='libgstapplemedia_la-vth264encbin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vth264encbin.c' object='libgstapplemedia_la-vth264encbin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vth264encbin.lo `test -f 'vth264encbin.c' || echo '$(srcdir)/'`vth264encbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vth264encbin.lo `test -f 'vth264encbin.c' || echo '$(srcdir)/'`vth264encbin.c libgstapplemedia_la-vtenc.lo: vtenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtenc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtenc.Tpo -c -o libgstapplemedia_la-vtenc.lo `test -f 'vtenc.c' || echo '$(srcdir)/'`vtenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtenc.Tpo $(DEPDIR)/libgstapplemedia_la-vtenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtenc.c' object='libgstapplemedia_la-vtenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtenc.c' object='libgstapplemedia_la-vtenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtenc.lo `test -f 'vtenc.c' || echo '$(srcdir)/'`vtenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtenc.lo `test -f 'vtenc.c' || echo '$(srcdir)/'`vtenc.c libgstapplemedia_la-vtdec.lo: vtdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtdec.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtdec.Tpo -c -o libgstapplemedia_la-vtdec.lo `test -f 'vtdec.c' || echo '$(srcdir)/'`vtdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtdec.Tpo $(DEPDIR)/libgstapplemedia_la-vtdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtdec.c' object='libgstapplemedia_la-vtdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtdec.c' object='libgstapplemedia_la-vtdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtdec.lo `test -f 'vtdec.c' || echo '$(srcdir)/'`vtdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtdec.lo `test -f 'vtdec.c' || echo '$(srcdir)/'`vtdec.c libgstapplemedia_la-vtutil.lo: vtutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtutil.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtutil.Tpo -c -o libgstapplemedia_la-vtutil.lo `test -f 'vtutil.c' || echo '$(srcdir)/'`vtutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtutil.Tpo $(DEPDIR)/libgstapplemedia_la-vtutil.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtutil.c' object='libgstapplemedia_la-vtutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtutil.c' object='libgstapplemedia_la-vtutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtutil.lo `test -f 'vtutil.c' || echo '$(srcdir)/'`vtutil.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtutil.lo `test -f 'vtutil.c' || echo '$(srcdir)/'`vtutil.c libgstapplemedia_la-corevideobuffer.lo: corevideobuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-corevideobuffer.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-corevideobuffer.Tpo -c -o libgstapplemedia_la-corevideobuffer.lo `test -f 'corevideobuffer.c' || echo '$(srcdir)/'`corevideobuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-corevideobuffer.Tpo $(DEPDIR)/libgstapplemedia_la-corevideobuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='corevideobuffer.c' object='libgstapplemedia_la-corevideobuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='corevideobuffer.c' object='libgstapplemedia_la-corevideobuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-corevideobuffer.lo `test -f 'corevideobuffer.c' || echo '$(srcdir)/'`corevideobuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-corevideobuffer.lo `test -f 'corevideobuffer.c' || echo '$(srcdir)/'`corevideobuffer.c libgstapplemedia_la-coremediabuffer.lo: coremediabuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-coremediabuffer.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-coremediabuffer.Tpo -c -o libgstapplemedia_la-coremediabuffer.lo `test -f 'coremediabuffer.c' || echo '$(srcdir)/'`coremediabuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-coremediabuffer.Tpo $(DEPDIR)/libgstapplemedia_la-coremediabuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coremediabuffer.c' object='libgstapplemedia_la-coremediabuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coremediabuffer.c' object='libgstapplemedia_la-coremediabuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediabuffer.lo `test -f 'coremediabuffer.c' || echo '$(srcdir)/'`coremediabuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediabuffer.lo `test -f 'coremediabuffer.c' || echo '$(srcdir)/'`coremediabuffer.c libgstapplemedia_la-coremediactx.lo: coremediactx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-coremediactx.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-coremediactx.Tpo -c -o libgstapplemedia_la-coremediactx.lo `test -f 'coremediactx.c' || echo '$(srcdir)/'`coremediactx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-coremediactx.Tpo $(DEPDIR)/libgstapplemedia_la-coremediactx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coremediactx.c' object='libgstapplemedia_la-coremediactx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coremediactx.c' object='libgstapplemedia_la-coremediactx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediactx.lo `test -f 'coremediactx.c' || echo '$(srcdir)/'`coremediactx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediactx.lo `test -f 'coremediactx.c' || echo '$(srcdir)/'`coremediactx.c libgstapplemedia_la-cvapi.lo: cvapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-cvapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-cvapi.Tpo -c -o libgstapplemedia_la-cvapi.lo `test -f 'cvapi.c' || echo '$(srcdir)/'`cvapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-cvapi.Tpo $(DEPDIR)/libgstapplemedia_la-cvapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cvapi.c' object='libgstapplemedia_la-cvapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cvapi.c' object='libgstapplemedia_la-cvapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-cvapi.lo `test -f 'cvapi.c' || echo '$(srcdir)/'`cvapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-cvapi.lo `test -f 'cvapi.c' || echo '$(srcdir)/'`cvapi.c libgstapplemedia_la-cmapi.lo: cmapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-cmapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-cmapi.Tpo -c -o libgstapplemedia_la-cmapi.lo `test -f 'cmapi.c' || echo '$(srcdir)/'`cmapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-cmapi.Tpo $(DEPDIR)/libgstapplemedia_la-cmapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmapi.c' object='libgstapplemedia_la-cmapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cmapi.c' object='libgstapplemedia_la-cmapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-cmapi.lo `test -f 'cmapi.c' || echo '$(srcdir)/'`cmapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-cmapi.lo `test -f 'cmapi.c' || echo '$(srcdir)/'`cmapi.c libgstapplemedia_la-vtapi.lo: vtapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtapi.Tpo -c -o libgstapplemedia_la-vtapi.lo `test -f 'vtapi.c' || echo '$(srcdir)/'`vtapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtapi.Tpo $(DEPDIR)/libgstapplemedia_la-vtapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtapi.c' object='libgstapplemedia_la-vtapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtapi.c' object='libgstapplemedia_la-vtapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtapi.lo `test -f 'vtapi.c' || echo '$(srcdir)/'`vtapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtapi.lo `test -f 'vtapi.c' || echo '$(srcdir)/'`vtapi.c libgstapplemedia_la-dynapi.lo: dynapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-dynapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-dynapi.Tpo -c -o libgstapplemedia_la-dynapi.lo `test -f 'dynapi.c' || echo '$(srcdir)/'`dynapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-dynapi.Tpo $(DEPDIR)/libgstapplemedia_la-dynapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dynapi.c' object='libgstapplemedia_la-dynapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dynapi.c' object='libgstapplemedia_la-dynapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-dynapi.lo `test -f 'dynapi.c' || echo '$(srcdir)/'`dynapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-dynapi.lo `test -f 'dynapi.c' || echo '$(srcdir)/'`dynapi.c libgstapplemedia_la-celvideosrc.lo: celvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-celvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-celvideosrc.Tpo -c -o libgstapplemedia_la-celvideosrc.lo `test -f 'celvideosrc.c' || echo '$(srcdir)/'`celvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-celvideosrc.Tpo $(DEPDIR)/libgstapplemedia_la-celvideosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='celvideosrc.c' object='libgstapplemedia_la-celvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='celvideosrc.c' object='libgstapplemedia_la-celvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-celvideosrc.lo `test -f 'celvideosrc.c' || echo '$(srcdir)/'`celvideosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-celvideosrc.lo `test -f 'celvideosrc.c' || echo '$(srcdir)/'`celvideosrc.c libgstapplemedia_la-mtapi.lo: mtapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-mtapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-mtapi.Tpo -c -o libgstapplemedia_la-mtapi.lo `test -f 'mtapi.c' || echo '$(srcdir)/'`mtapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-mtapi.Tpo $(DEPDIR)/libgstapplemedia_la-mtapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mtapi.c' object='libgstapplemedia_la-mtapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtapi.c' object='libgstapplemedia_la-mtapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-mtapi.lo `test -f 'mtapi.c' || echo '$(srcdir)/'`mtapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-mtapi.lo `test -f 'mtapi.c' || echo '$(srcdir)/'`mtapi.c libgstapplemedia_la-celapi.lo: celapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-celapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-celapi.Tpo -c -o libgstapplemedia_la-celapi.lo `test -f 'celapi.c' || echo '$(srcdir)/'`celapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-celapi.Tpo $(DEPDIR)/libgstapplemedia_la-celapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='celapi.c' object='libgstapplemedia_la-celapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='celapi.c' object='libgstapplemedia_la-celapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-celapi.lo `test -f 'celapi.c' || echo '$(srcdir)/'`celapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-celapi.lo `test -f 'celapi.c' || echo '$(srcdir)/'`celapi.c libgstapplemedia_la-miovideosrc.lo: miovideosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-miovideosrc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-miovideosrc.Tpo -c -o libgstapplemedia_la-miovideosrc.lo `test -f 'miovideosrc.c' || echo '$(srcdir)/'`miovideosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-miovideosrc.Tpo $(DEPDIR)/libgstapplemedia_la-miovideosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='miovideosrc.c' object='libgstapplemedia_la-miovideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='miovideosrc.c' object='libgstapplemedia_la-miovideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-miovideosrc.lo `test -f 'miovideosrc.c' || echo '$(srcdir)/'`miovideosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-miovideosrc.lo `test -f 'miovideosrc.c' || echo '$(srcdir)/'`miovideosrc.c libgstapplemedia_la-miovideodevice.lo: miovideodevice.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-miovideodevice.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-miovideodevice.Tpo -c -o libgstapplemedia_la-miovideodevice.lo `test -f 'miovideodevice.c' || echo '$(srcdir)/'`miovideodevice.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-miovideodevice.Tpo $(DEPDIR)/libgstapplemedia_la-miovideodevice.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='miovideodevice.c' object='libgstapplemedia_la-miovideodevice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='miovideodevice.c' object='libgstapplemedia_la-miovideodevice.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-miovideodevice.lo `test -f 'miovideodevice.c' || echo '$(srcdir)/'`miovideodevice.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-miovideodevice.lo `test -f 'miovideodevice.c' || echo '$(srcdir)/'`miovideodevice.c libgstapplemedia_la-mioapi.lo: mioapi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-mioapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-mioapi.Tpo -c -o libgstapplemedia_la-mioapi.lo `test -f 'mioapi.c' || echo '$(srcdir)/'`mioapi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-mioapi.Tpo $(DEPDIR)/libgstapplemedia_la-mioapi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mioapi.c' object='libgstapplemedia_la-mioapi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mioapi.c' object='libgstapplemedia_la-mioapi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-mioapi.lo `test -f 'mioapi.c' || echo '$(srcdir)/'`mioapi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-mioapi.lo `test -f 'mioapi.c' || echo '$(srcdir)/'`mioapi.c .m.o: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ $< +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ $< .m.obj: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .m.lo: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LTOBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LTOBJCCOMPILE) -c -o $@ $< +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LTOBJCCOMPILE) -c -o $@ $< libgstapplemedia_la-plugin.lo: plugin.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstapplemedia_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-plugin.Tpo -c -o libgstapplemedia_la-plugin.lo `test -f 'plugin.m' || echo '$(srcdir)/'`plugin.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-plugin.Tpo $(DEPDIR)/libgstapplemedia_la-plugin.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='plugin.m' object='libgstapplemedia_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='plugin.m' object='libgstapplemedia_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-plugin.lo `test -f 'plugin.m' || echo '$(srcdir)/'`plugin.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-plugin.lo `test -f 'plugin.m' || echo '$(srcdir)/'`plugin.m libgstapplemedia_la-bufferfactory.lo: bufferfactory.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstapplemedia_la-bufferfactory.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-bufferfactory.Tpo -c -o libgstapplemedia_la-bufferfactory.lo `test -f 'bufferfactory.m' || echo '$(srcdir)/'`bufferfactory.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-bufferfactory.Tpo $(DEPDIR)/libgstapplemedia_la-bufferfactory.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='bufferfactory.m' object='libgstapplemedia_la-bufferfactory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='bufferfactory.m' object='libgstapplemedia_la-bufferfactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-bufferfactory.lo `test -f 'bufferfactory.m' || echo '$(srcdir)/'`bufferfactory.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-bufferfactory.lo `test -f 'bufferfactory.m' || echo '$(srcdir)/'`bufferfactory.m libgstapplemedia_la-avfvideosrc.lo: avfvideosrc.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstapplemedia_la-avfvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-avfvideosrc.Tpo -c -o libgstapplemedia_la-avfvideosrc.lo `test -f 'avfvideosrc.m' || echo '$(srcdir)/'`avfvideosrc.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-avfvideosrc.Tpo $(DEPDIR)/libgstapplemedia_la-avfvideosrc.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='avfvideosrc.m' object='libgstapplemedia_la-avfvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='avfvideosrc.m' object='libgstapplemedia_la-avfvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-avfvideosrc.lo `test -f 'avfvideosrc.m' || echo '$(srcdir)/'`avfvideosrc.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-avfvideosrc.lo `test -f 'avfvideosrc.m' || echo '$(srcdir)/'`avfvideosrc.m libgstapplemedia_la-qtkitvideosrc.lo: qtkitvideosrc.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstapplemedia_la-qtkitvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-qtkitvideosrc.Tpo -c -o libgstapplemedia_la-qtkitvideosrc.lo `test -f 'qtkitvideosrc.m' || echo '$(srcdir)/'`qtkitvideosrc.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-qtkitvideosrc.Tpo $(DEPDIR)/libgstapplemedia_la-qtkitvideosrc.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='qtkitvideosrc.m' object='libgstapplemedia_la-qtkitvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='qtkitvideosrc.m' object='libgstapplemedia_la-qtkitvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-qtkitvideosrc.lo `test -f 'qtkitvideosrc.m' || echo '$(srcdir)/'`qtkitvideosrc.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstapplemedia_la-qtkitvideosrc.lo `test -f 'qtkitvideosrc.m' || echo '$(srcdir)/'`qtkitvideosrc.m mostlyclean-libtool: -rm -f *.lo @@ -1065,10 +1064,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/applemedia/avfvideosrc.m b/sys/applemedia/avfvideosrc.m index 37ff576..d20f942 100644 --- a/sys/applemedia/avfvideosrc.m +++ b/sys/applemedia/avfvideosrc.m @@ -567,8 +567,7 @@ gst_avf_video_src_base_init (gpointer gclass) "Reads frames from an iOS AVFoundation device", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void diff --git a/sys/applemedia/celvideosrc.c b/sys/applemedia/celvideosrc.c index 6ea15e8..2ef1076 100644 --- a/sys/applemedia/celvideosrc.c +++ b/sys/applemedia/celvideosrc.c @@ -833,8 +833,7 @@ gst_cel_video_src_base_init (gpointer gclass) "Reads frames from an iOS Celestial device", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void diff --git a/sys/applemedia/miovideosrc.c b/sys/applemedia/miovideosrc.c index 7b0e428..aec4a56 100644 --- a/sys/applemedia/miovideosrc.c +++ b/sys/applemedia/miovideosrc.c @@ -1129,8 +1129,7 @@ gst_mio_video_src_base_init (gpointer gclass) "Reads frames from a Mac OS X MIO device", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void diff --git a/sys/applemedia/plugin.m b/sys/applemedia/plugin.m index 1bcd3cf..02f7ca0 100644 --- a/sys/applemedia/plugin.m +++ b/sys/applemedia/plugin.m @@ -58,7 +58,7 @@ plugin_init (GstPlugin * plugin) #else enable_mt_mode (); - res = gst_element_register (plugin, "qtkitvideosrc", GST_RANK_NONE, + res = gst_element_register (plugin, "qtkitvideosrc", GST_RANK_PRIMARY, GST_TYPE_QTKIT_VIDEO_SRC); res &= gst_element_register (plugin, "miovideosrc", GST_RANK_NONE, GST_TYPE_MIO_VIDEO_SRC); diff --git a/sys/applemedia/qtkitvideosrc.m b/sys/applemedia/qtkitvideosrc.m index 67388f0..8553bd1 100644 --- a/sys/applemedia/qtkitvideosrc.m +++ b/sys/applemedia/qtkitvideosrc.m @@ -42,40 +42,35 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", "format = (fourcc) " DEVICE_YUV_FOURCC ", " "width = (int) 640, " "height = (int) 480, " - "framerate = (fraction) " G_STRINGIFY (DEVICE_FPS_N) "/" - G_STRINGIFY (DEVICE_FPS_D) ", " + "framerate = [0/1, 100/1], " "pixel-aspect-ratio = (fraction) 1/1" "; " "video/x-raw-yuv, " "format = (fourcc) " DEVICE_YUV_FOURCC ", " "width = (int) 160, " "height = (int) 120, " - "framerate = (fraction) " G_STRINGIFY (DEVICE_FPS_N) "/" - G_STRINGIFY (DEVICE_FPS_D) ", " + "framerate = [0/1, 100/1], " "pixel-aspect-ratio = (fraction) 1/1" "; " "video/x-raw-yuv, " "format = (fourcc) " DEVICE_YUV_FOURCC ", " "width = (int) 176, " "height = (int) 144, " - "framerate = (fraction) " G_STRINGIFY (DEVICE_FPS_N) "/" - G_STRINGIFY (DEVICE_FPS_D) ", " + "framerate = [0/1, 100/1], " "pixel-aspect-ratio = (fraction) 12/11" "; " "video/x-raw-yuv, " "format = (fourcc) " DEVICE_YUV_FOURCC ", " "width = (int) 320, " "height = (int) 240, " - "framerate = (fraction) " G_STRINGIFY (DEVICE_FPS_N) "/" - G_STRINGIFY (DEVICE_FPS_D) ", " + "framerate = [0/1, 100/1], " "pixel-aspect-ratio = (fraction) 1/1" "; " "video/x-raw-yuv, " "format = (fourcc) " DEVICE_YUV_FOURCC ", " "width = (int) 352, " "height = (int) 288, " - "framerate = (fraction) " G_STRINGIFY (DEVICE_FPS_N) "/" - G_STRINGIFY (DEVICE_FPS_D) ", " + "framerate = [0/1, 100/1], " "pixel-aspect-ratio = (fraction) 12/11" ";" ) @@ -107,6 +102,7 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc, BOOL stopRequest; gint width, height; + gint fps_n, fps_d; GstClockTime duration; guint64 offset; } @@ -123,6 +119,7 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc, - (BOOL)stop; - (BOOL)unlock; - (BOOL)unlockStop; +- (void)fixate:(GstCaps *)caps; - (BOOL)query:(GstQuery *)query; - (GstStateChangeReturn)changeState:(GstStateChange)transition; - (GstFlowReturn)create:(GstBuffer **)buf; @@ -243,6 +240,7 @@ openFailed: NSDictionary *outputAttrs; BOOL success; NSRunLoop *mainRunLoop; + NSTimeInterval interval; g_assert (device != nil); @@ -251,7 +249,12 @@ openFailed: s = gst_caps_get_structure (caps, 0); gst_structure_get_int (s, "width", &width); gst_structure_get_int (s, "height", &height); + if (!gst_structure_get_fraction (s, "framerate", &fps_n, &fps_d)) { + fps_n = DEVICE_FPS_N; + fps_d = DEVICE_FPS_D; + } + GST_INFO ("got caps %dx%d %d/%d", width, height, fps_n, fps_d); input = [[QTCaptureDeviceInput alloc] initWithDevice:device]; output = [[QTCaptureDecompressedVideoOutput alloc] init]; @@ -269,6 +272,16 @@ openFailed: ]; [output setPixelBufferAttributes:outputAttrs]; + if (fps_n != 0) { + duration = gst_util_uint64_scale (GST_SECOND, fps_d, fps_n); + gst_util_fraction_to_double (fps_d, fps_n, (gdouble *) &interval); + } else { + duration = GST_CLOCK_TIME_NONE; + interval = 0; + } + + [output setMinimumVideoFrameInterval:interval]; + session = [[QTCaptureSession alloc] init]; success = [session addInput:input error:nil]; @@ -299,8 +312,11 @@ openFailed: queue = [[NSMutableArray alloc] initWithCapacity:FRAME_QUEUE_SIZE]; stopRequest = NO; - duration = gst_util_uint64_scale (GST_SECOND, DEVICE_FPS_D, DEVICE_FPS_N); offset = 0; + width = height = 0; + fps_n = 0; + fps_d = 1; + duration = GST_CLOCK_TIME_NONE; return YES; } @@ -359,6 +375,18 @@ openFailed: return YES; } +- (void)fixate:(GstCaps *)caps +{ + GstStructure *structure; + + gst_caps_truncate (caps); + structure = gst_caps_get_structure (caps, 0); + if (gst_structure_has_field (structure, "framerate")) { + gst_structure_fixate_field_nearest_fraction (structure, "framerate", + DEVICE_FPS_N, DEVICE_FPS_D); + } +} + - (GstStateChangeReturn)changeState:(GstStateChange)transition { GstStateChangeReturn ret; @@ -484,6 +512,7 @@ static gboolean gst_qtkit_video_src_unlock (GstBaseSrc * basesrc); static gboolean gst_qtkit_video_src_unlock_stop (GstBaseSrc * basesrc); static GstFlowReturn gst_qtkit_video_src_create (GstPushSrc * pushsrc, GstBuffer ** buf); +static void gst_qtkit_video_src_fixate (GstBaseSrc * basesrc, GstCaps * caps); static void gst_qtkit_video_src_base_init (gpointer gclass) @@ -495,8 +524,7 @@ gst_qtkit_video_src_base_init (gpointer gclass) "Reads frames from a Mac OS X QTKit device", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void @@ -519,6 +547,7 @@ gst_qtkit_video_src_class_init (GstQTKitVideoSrcClass * klass) gstbasesrc_class->query = gst_qtkit_video_src_query; gstbasesrc_class->unlock = gst_qtkit_video_src_unlock; gstbasesrc_class->unlock_stop = gst_qtkit_video_src_unlock_stop; + gstbasesrc_class->fixate = gst_qtkit_video_src_fixate; gstpushsrc_class->create = gst_qtkit_video_src_create; @@ -684,3 +713,11 @@ gst_qtkit_video_src_create (GstPushSrc * pushsrc, GstBuffer ** buf) return ret; } + +static void +gst_qtkit_video_src_fixate (GstBaseSrc * basesrc, GstCaps * caps) +{ + OBJC_CALLOUT_BEGIN (); + [GST_QTKIT_VIDEO_SRC_IMPL (basesrc) fixate: caps]; + OBJC_CALLOUT_END (); +} diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index 22db2e8..982f73c 100644 --- a/sys/applemedia/vtdec.c +++ b/sys/applemedia/vtdec.c @@ -89,6 +89,7 @@ gst_vtdec_base_init (GstVTDecClass * klass) sink_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps); gst_element_class_add_pad_template (element_class, sink_template); + gst_object_unref (sink_template); src_template = gst_pad_template_new ("src", GST_PAD_SRC, @@ -100,6 +101,7 @@ gst_vtdec_base_init (GstVTDecClass * klass) "framerate", GST_TYPE_FRACTION_RANGE, min_fps_n, min_fps_d, max_fps_n, max_fps_d, NULL)); gst_element_class_add_pad_template (element_class, src_template); + gst_object_unref (src_template); } static void diff --git a/sys/applemedia/vtenc.c b/sys/applemedia/vtenc.c index c787848..aa0bcdd 100644 --- a/sys/applemedia/vtenc.c +++ b/sys/applemedia/vtenc.c @@ -118,6 +118,7 @@ gst_vtenc_base_init (GstVTEncClass * klass) "framerate", GST_TYPE_FRACTION_RANGE, min_fps_n, min_fps_d, max_fps_n, max_fps_d, NULL)); gst_element_class_add_pad_template (element_class, sink_template); + gst_object_unref (sink_template); src_caps = gst_caps_new_simple (codec_details->mimetype, "width", GST_TYPE_INT_RANGE, min_width, max_width, @@ -131,6 +132,7 @@ gst_vtenc_base_init (GstVTEncClass * klass) src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, src_caps); gst_element_class_add_pad_template (element_class, src_template); + gst_object_unref (src_template); } static void diff --git a/sys/applemedia/vth264decbin.c b/sys/applemedia/vth264decbin.c index fbc718b..816e15e 100644 --- a/sys/applemedia/vth264decbin.c +++ b/sys/applemedia/vth264decbin.c @@ -218,10 +218,10 @@ gst_vt_h264_dec_bin_base_init (gpointer gclass) "VideoToolbox H.264 decoder bin", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&vth264decbin_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&vth264decbin_src_template)); + gst_element_class_add_static_pad_template (element_class, + &vth264decbin_sink_template); + gst_element_class_add_static_pad_template (element_class, + &vth264decbin_src_template); } static void diff --git a/sys/applemedia/vth264encbin.c b/sys/applemedia/vth264encbin.c index e97ef29..222a731 100644 --- a/sys/applemedia/vth264encbin.c +++ b/sys/applemedia/vth264encbin.c @@ -80,10 +80,10 @@ gst_vt_h264_enc_bin_base_init (gpointer gclass) "VideoToolbox H.264 encoder bin", "Ole André Vadla RavnÃ¥s "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&vth264encbin_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&vth264encbin_src_template)); + gst_element_class_add_static_pad_template (element_class, + &vth264encbin_sink_template); + gst_element_class_add_static_pad_template (element_class, + &vth264encbin_src_template); } static void diff --git a/sys/avc/Makefile.am b/sys/avc/Makefile.am new file mode 100644 index 0000000..963f514 --- /dev/null +++ b/sys/avc/Makefile.am @@ -0,0 +1,25 @@ + +plugin_LTLIBRARIES = libgstavc.la + +libgstavc_la_SOURCES = gstavcplugin.cpp gstavcsrc.cpp +libgstavc_la_CPPFLAGS = \ + $(GST_PLUGINS_BAD_CXXFLAGS) \ + $(GST_PLUGINS_BASE_CXXFLAGS) \ + $(GST_CXXFLAGS) \ + -framework AVCVideoServices \ + -Wno-deprecated-declarations +libgstavc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) + +libgstavc_la_LIBTOOLFLAGS = --tag=disable-static + +libgstavc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) \ + -Wl,-framework -Wl,AVCVideoServices \ + -Wl,-framework -Wl,Cocoa \ + -Wl,-framework -Wl,QuickTime + +noinst_HEADERS = gstavcsrc.h + diff --git a/sys/avc/Makefile.in b/sys/avc/Makefile.in new file mode 100644 index 0000000..7198115 --- /dev/null +++ b/sys/avc/Makefile.in @@ -0,0 +1,907 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = sys/avc +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstavc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstavc_la_OBJECTS = libgstavc_la-gstavcplugin.lo \ + libgstavc_la-gstavcsrc.lo +libgstavc_la_OBJECTS = $(am_libgstavc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstavc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstavc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(libgstavc_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_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstavc_la_SOURCES) +DIST_SOURCES = $(libgstavc_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstavc.la +libgstavc_la_SOURCES = gstavcplugin.cpp gstavcsrc.cpp +libgstavc_la_CPPFLAGS = \ + $(GST_PLUGINS_BAD_CXXFLAGS) \ + $(GST_PLUGINS_BASE_CXXFLAGS) \ + $(GST_CXXFLAGS) \ + -framework AVCVideoServices \ + -Wno-deprecated-declarations + +libgstavc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) + +libgstavc_la_LIBTOOLFLAGS = --tag=disable-static +libgstavc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) \ + -Wl,-framework -Wl,AVCVideoServices \ + -Wl,-framework -Wl,Cocoa \ + -Wl,-framework -Wl,QuickTime + +noinst_HEADERS = gstavcsrc.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .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 sys/avc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu sys/avc/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 +libgstavc.la: $(libgstavc_la_OBJECTS) $(libgstavc_la_DEPENDENCIES) $(EXTRA_libgstavc_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstavc_la_LINK) -rpath $(plugindir) $(libgstavc_la_OBJECTS) $(libgstavc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstavc_la-gstavcplugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstavc_la-gstavcsrc.Plo@am__quote@ + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.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 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< + +libgstavc_la-gstavcplugin.lo: gstavcplugin.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstavc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstavc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstavc_la-gstavcplugin.lo -MD -MP -MF $(DEPDIR)/libgstavc_la-gstavcplugin.Tpo -c -o libgstavc_la-gstavcplugin.lo `test -f 'gstavcplugin.cpp' || echo '$(srcdir)/'`gstavcplugin.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavc_la-gstavcplugin.Tpo $(DEPDIR)/libgstavc_la-gstavcplugin.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstavcplugin.cpp' object='libgstavc_la-gstavcplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstavc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstavc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstavc_la-gstavcplugin.lo `test -f 'gstavcplugin.cpp' || echo '$(srcdir)/'`gstavcplugin.cpp + +libgstavc_la-gstavcsrc.lo: gstavcsrc.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstavc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstavc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstavc_la-gstavcsrc.lo -MD -MP -MF $(DEPDIR)/libgstavc_la-gstavcsrc.Tpo -c -o libgstavc_la-gstavcsrc.lo `test -f 'gstavcsrc.cpp' || echo '$(srcdir)/'`gstavcsrc.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavc_la-gstavcsrc.Tpo $(DEPDIR)/libgstavc_la-gstavcsrc.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstavcsrc.cpp' object='libgstavc_la-gstavcsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstavc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstavc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstavc_la-gstavcsrc.lo `test -f 'gstavcsrc.cpp' || echo '$(srcdir)/'`gstavcsrc.cpp + +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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/sys/avc/gstavcplugin.cpp b/sys/avc/gstavcplugin.cpp new file mode 100644 index 0000000..0763210 --- /dev/null +++ b/sys/avc/gstavcplugin.cpp @@ -0,0 +1,41 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstavcsrc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + + gst_element_register (plugin, "avcsrc", GST_RANK_NONE, + gst_avc_src_get_type ()); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "avcsrc", + "AVC Video Services plugin", + plugin_init, VERSION, "LGPL", PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/sys/avc/gstavcsrc.cpp b/sys/avc/gstavcsrc.cpp new file mode 100644 index 0000000..4053552 --- /dev/null +++ b/sys/avc/gstavcsrc.cpp @@ -0,0 +1,424 @@ +/* GStreamer + * Copyright (C) 2011 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., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstavcsrc + * + * The avcsrc element captures video from an OS/X AVC Video Services + * devices, typically a FireWire camera. + * + * + * Example launch line + * |[ + * gst-launch -v avcsrc ! decodebin ! osxvideosink + * ]| + * + * This pipeline captures from an AVC source, decodes the stream (either + * DV or HDV), and displays the video. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +using namespace AVS; + +#include +#include +#include "gstavcsrc.h" + +GST_DEBUG_CATEGORY_STATIC (gst_avc_src_debug_category); +#define GST_CAT_DEFAULT gst_avc_src_debug_category + +/* prototypes */ + + +static void gst_avc_src_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_avc_src_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_avc_src_dispose (GObject * object); +static void gst_avc_src_finalize (GObject * object); + +static GstCaps *gst_avc_src_get_caps (GstBaseSrc * src); +static gboolean gst_avc_src_start (GstBaseSrc * src); +static gboolean gst_avc_src_stop (GstBaseSrc * src); +static gboolean gst_avc_src_is_seekable (GstBaseSrc * src); +static gboolean gst_avc_src_unlock (GstBaseSrc * src); +static gboolean gst_avc_src_event (GstBaseSrc * src, GstEvent * event); +static GstFlowReturn +gst_avc_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf); +static gboolean gst_avc_src_query (GstBaseSrc * src, GstQuery * query); +static gboolean gst_avc_src_unlock_stop (GstBaseSrc * src); + +enum +{ + PROP_0 +}; + +/* pad templates */ + +static GstStaticPadTemplate gst_avc_src_src_template = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ("video/dv,systemstream=true;video/mpegts,systemstream=true,packetsize=188") + ); + + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_avc_src_debug_category, "avcsrc", 0, \ + "debug category for avcsrc element"); + +GST_BOILERPLATE_FULL (GstAVCSrc, gst_avc_src, GstBaseSrc, + GST_TYPE_BASE_SRC, DEBUG_INIT); + +static void +gst_avc_src_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_avc_src_src_template); + + gst_element_class_set_details_simple (element_class, + "AVC Video Services Source", "Video/Source", + "Captures DV or HDV video from Firewire port", + "David Schleef "); +} + +static void +gst_avc_src_class_init (GstAVCSrcClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS (klass); + + gobject_class->set_property = gst_avc_src_set_property; + gobject_class->get_property = gst_avc_src_get_property; + gobject_class->dispose = gst_avc_src_dispose; + gobject_class->finalize = gst_avc_src_finalize; + base_src_class->get_caps = GST_DEBUG_FUNCPTR (gst_avc_src_get_caps); + base_src_class->start = GST_DEBUG_FUNCPTR (gst_avc_src_start); + base_src_class->stop = GST_DEBUG_FUNCPTR (gst_avc_src_stop); + base_src_class->is_seekable = GST_DEBUG_FUNCPTR (gst_avc_src_is_seekable); + base_src_class->unlock = GST_DEBUG_FUNCPTR (gst_avc_src_unlock); + base_src_class->event = GST_DEBUG_FUNCPTR (gst_avc_src_event); + base_src_class->create = GST_DEBUG_FUNCPTR (gst_avc_src_create); + if (0) + base_src_class->query = GST_DEBUG_FUNCPTR (gst_avc_src_query); + if (0) + base_src_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_avc_src_unlock_stop); + +} + +static void +gst_avc_src_init (GstAVCSrc * avcsrc, GstAVCSrcClass * avcsrc_class) +{ + gst_base_src_set_live (GST_BASE_SRC (avcsrc), TRUE); + + avcsrc->srcpad = gst_pad_new_from_static_template (&gst_avc_src_src_template, + "src"); + + avcsrc->queue = gst_atomic_queue_new (16); + avcsrc->cond = g_cond_new (); + avcsrc->queue_lock = g_mutex_new (); +} + +void +gst_avc_src_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + /* GstAVCSrc *avcsrc = GST_AVC_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_avc_src_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + /* GstAVCSrc *avcsrc = GST_AVC_SRC (object); */ + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_avc_src_dispose (GObject * object) +{ + /* GstAVCSrc *avcsrc = GST_AVC_SRC (object); */ + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_avc_src_finalize (GObject * object) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (object); + + /* clean up object here */ + gst_atomic_queue_unref (avcsrc->queue); + g_cond_free (avcsrc->cond); + g_mutex_free (avcsrc->queue_lock); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + +static GstCaps * +gst_avc_src_get_caps (GstBaseSrc * src) +{ + /* GstAVCSrc *avcsrc = GST_AVC_SRC (src); */ + + return gst_caps_from_string ("video/mpegts,systemstream=true,packetsize=188"); +} + +#define kNumCyclesInMPEGReceiverSegment 200 +#define kNumSegmentsInMPEGReceiverProgram 10 + +void +MPEGReceiverMessageReceivedProc (UInt32 msg, UInt32 param1, UInt32 param2, + void *pRefCon) +{ + +} + +IOReturn +MyStructuredDataPushProc (UInt32 CycleDataCount, + MPEGReceiveCycleData * pCycleData, void *pRefCon) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (pRefCon); + + if (avcsrc) { + UInt32 numPackets = 0; + for (UInt32 cycle = 0; cycle < CycleDataCount; cycle++) + numPackets += pCycleData[cycle].tsPacketCount; + GstBuffer *buffer; + + buffer = gst_buffer_new_and_alloc (numPackets*kMPEG2TSPacketSize); + + guint8 *data = GST_BUFFER_DATA (buffer); + + for (UInt32 cycle = 0; cycle < CycleDataCount; cycle++) { + GST_LOG("Received cycle %lu of %lu - %lu packets (fw time %lx)", + cycle, CycleDataCount, pCycleData[cycle].tsPacketCount, + pCycleData[cycle].fireWireTimeStamp); + for (UInt32 sourcePacket = 0; sourcePacket < pCycleData[cycle].tsPacketCount; + sourcePacket++) { + memcpy (data, + pCycleData[cycle].pBuf[sourcePacket], kMPEG2TSPacketSize); + data += kMPEG2TSPacketSize; + + avcsrc->packets_enqueued++; + } + } + + gst_atomic_queue_push (avcsrc->queue, buffer); + + g_mutex_lock (avcsrc->queue_lock); + g_cond_signal (avcsrc->cond); + g_mutex_unlock (avcsrc->queue_lock); + } + + return 0; +} + +static gboolean +gst_avc_src_start (GstBaseSrc * src) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "start"); + + avcsrc->unlock = FALSE; + + // Create a AVCDeviceController + if (!avcsrc->pAVCDeviceController) + CreateAVCDeviceController (&avcsrc->pAVCDeviceController); + if (!avcsrc->pAVCDeviceController) { + // TODO: This should never happen (unless we've run out of memory), but we should handle it cleanly anyway + GST_ERROR ("Failed to create AVC device controller."); + return FALSE; + } + + GST_INFO ("Created AVC device controller."); + + if (avcsrc->deviceIndex >= CFArrayGetCount (avcsrc->pAVCDeviceController->avcDeviceArray)) { + GST_ERROR ("Failed to find AVC device %d", avcsrc->deviceIndex); + return FALSE; + } + + avcsrc->pAVCDevice = (AVCDevice *) + CFArrayGetValueAtIndex (avcsrc->pAVCDeviceController->avcDeviceArray, + avcsrc->deviceIndex); + + if (!avcsrc->pAVCDevice) { + GST_ERROR ("Failed to find AVC device %d", avcsrc->deviceIndex); + return FALSE; + } + + GST_INFO ("Found device with GUID 0x%016llX\n", avcsrc->pAVCDevice->guid); + + avcsrc->pAVCDevice->openDevice (nil, nil); + + avcsrc->pAVCDeviceStream = avcsrc->pAVCDevice->CreateMPEGReceiverForDevicePlug (0, nil, // We'll install the structured callback later (MyStructuredDataPushProc), + nil, + MPEGReceiverMessageReceivedProc, + nil, + nil, kNumCyclesInMPEGReceiverSegment, kNumSegmentsInMPEGReceiverProgram); + + avcsrc->pAVCDeviceStream->pMPEGReceiver->registerStructuredDataPushCallback + (MyStructuredDataPushProc, + kNumCyclesInMPEGReceiverSegment, (void *) avcsrc); + + avcsrc->pAVCDevice->StartAVCDeviceStream (avcsrc->pAVCDeviceStream); + + return TRUE; +} + +static gboolean +gst_avc_src_stop (GstBaseSrc * src) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + GstBuffer *buffer; + + GST_DEBUG_OBJECT (avcsrc, "stop"); + + // Stop the stream + avcsrc->pAVCDevice->StopAVCDeviceStream(avcsrc->pAVCDeviceStream); + // Destroy the stream + avcsrc->pAVCDevice->DestroyAVCDeviceStream(avcsrc->pAVCDeviceStream); + avcsrc->pAVCDeviceStream = nil; + + // Forget about the device (don't destroy it; pAVCDeviceController manages it) + avcsrc->pAVCDevice = nil; + + GST_DEBUG("Packets enqueued = %llu", avcsrc->packets_enqueued); + GST_DEBUG("Packets dequeued = %llu", avcsrc->packets_dequeued); + + while ((buffer = GST_BUFFER (gst_atomic_queue_pop (avcsrc->queue))) != NULL) { + gst_buffer_unref (buffer); + } + + return TRUE; +} + +static gboolean +gst_avc_src_is_seekable (GstBaseSrc * src) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "is_seekable"); + + return FALSE; +} + +static gboolean +gst_avc_src_unlock (GstBaseSrc * src) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "unlock"); + + g_mutex_lock (avcsrc->queue_lock); + avcsrc->unlock = TRUE; + g_cond_signal (avcsrc->cond); + g_mutex_unlock (avcsrc->queue_lock); + + return TRUE; +} + +static gboolean +gst_avc_src_event (GstBaseSrc * src, GstEvent * event) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "event of type '%s'", GST_EVENT_TYPE_NAME(event)); + + GST_DEBUG("Packets enqueued = %llu, dequeued = %llu", + avcsrc->packets_enqueued, avcsrc->packets_dequeued); + + return TRUE; +} + +static GstFlowReturn +gst_avc_src_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + GstBuffer *buffer; + + GST_DEBUG_OBJECT (avcsrc, "create"); + + g_mutex_lock (avcsrc->queue_lock); + buffer = GST_BUFFER (gst_atomic_queue_pop (avcsrc->queue)); + while (buffer == NULL && !avcsrc->unlock) { + g_cond_wait (avcsrc->cond, avcsrc->queue_lock); + buffer = GST_BUFFER (gst_atomic_queue_pop (avcsrc->queue)); + } + g_mutex_unlock (avcsrc->queue_lock); + + if (avcsrc->unlock) { + if (buffer) + gst_buffer_unref (buffer); + return GST_FLOW_WRONG_STATE; + } + + gst_buffer_set_caps (buffer, GST_PAD_CAPS (avcsrc->srcpad)); + + *buf = buffer; + + avcsrc->packets_dequeued++; + + return GST_FLOW_OK; +} + +static gboolean +gst_avc_src_query (GstBaseSrc * src, GstQuery * query) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "query"); + + return TRUE; +} + +static gboolean +gst_avc_src_unlock_stop (GstBaseSrc * src) +{ + GstAVCSrc *avcsrc = GST_AVC_SRC (src); + + GST_DEBUG_OBJECT (avcsrc, "stop"); + + return TRUE; +} diff --git a/sys/avc/gstavcsrc.h b/sys/avc/gstavcsrc.h new file mode 100644 index 0000000..e0fcf43 --- /dev/null +++ b/sys/avc/gstavcsrc.h @@ -0,0 +1,67 @@ +/* GStreamer + * Copyright (C) 2011 FIXME + * + * 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_AVC_SRC_H_ +#define _GST_AVC_SRC_H_ + +#include +#include +using namespace AVS; + +G_BEGIN_DECLS + +#define GST_TYPE_AVC_SRC (gst_avc_src_get_type()) +#define GST_AVC_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AVC_SRC,GstAVCSrc)) +#define GST_AVC_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AVC_SRC,GstAVCSrcClass)) +#define GST_IS_AVC_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AVC_SRC)) +#define GST_IS_AVC_SRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AVC_SRC)) + +typedef struct _GstAVCSrc GstAVCSrc; +typedef struct _GstAVCSrcClass GstAVCSrcClass; + +struct _GstAVCSrc +{ + GstBaseSrc base_avcsrc; + + GstPad *srcpad; + + AVCDeviceController *pAVCDeviceController; + AVCDevice *pAVCDevice; + AVCDeviceStream *pAVCDeviceStream; + int deviceIndex; + + guint64 packets_enqueued; + guint64 packets_dequeued; + + GstAtomicQueue *queue; + GCond *cond; + GMutex *queue_lock; + gboolean unlock; +}; + +struct _GstAVCSrcClass +{ + GstBaseSrcClass base_avcsrc_class; +}; + +GType gst_avc_src_get_type (void); + +G_END_DECLS + +#endif diff --git a/sys/d3dvideosink/Makefile.am b/sys/d3dvideosink/Makefile.am new file mode 100644 index 0000000..183e460 --- /dev/null +++ b/sys/d3dvideosink/Makefile.am @@ -0,0 +1,17 @@ +plugin_LTLIBRARIES = libgstd3dvideosink.la + +libgstd3dvideosink_la_SOURCES = d3dvideosink.c directx/d3d.c directx/dx.c \ + directx/directx9/dx9.c directx/directx9/dx9_d3d.c \ + directx/directx10/dx10.c directx/directx10/dx10_d3d.c \ + directx/directx11/dx11.c directx/directx11/dx11_d3d.c +libgstd3dvideosink_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_CFLAGS) +libgstd3dvideosink_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) -lgstinterfaces-$(GST_MAJORMINOR) \ + $(DIRECT3D_LIBS) +libgstd3dvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstd3dvideosink_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = d3dvideosink.h directx/d3d.h directx/dx.h directx/directx.h \ + directx/directx9/dx9.h directx/directx9/dx9_d3d.h \ + directx/directx10/dx10.h directx/directx10/dx10_d3d.h \ + directx/directx11/dx11.h directx/directx11/dx11_d3d.h diff --git a/sys/d3dvideosink/Makefile.in b/sys/d3dvideosink/Makefile.in new file mode 100644 index 0000000..331291d --- /dev/null +++ b/sys/d3dvideosink/Makefile.in @@ -0,0 +1,965 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = sys/d3dvideosink +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstd3dvideosink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstd3dvideosink_la_OBJECTS = \ + libgstd3dvideosink_la-d3dvideosink.lo \ + libgstd3dvideosink_la-d3d.lo libgstd3dvideosink_la-dx.lo \ + libgstd3dvideosink_la-dx9.lo libgstd3dvideosink_la-dx9_d3d.lo \ + libgstd3dvideosink_la-dx10.lo \ + libgstd3dvideosink_la-dx10_d3d.lo \ + libgstd3dvideosink_la-dx11.lo \ + libgstd3dvideosink_la-dx11_d3d.lo +libgstd3dvideosink_la_OBJECTS = $(am_libgstd3dvideosink_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstd3dvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) \ + $(libgstd3dvideosink_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstd3dvideosink_la_SOURCES) +DIST_SOURCES = $(libgstd3dvideosink_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstd3dvideosink.la +libgstd3dvideosink_la_SOURCES = d3dvideosink.c directx/d3d.c directx/dx.c \ + directx/directx9/dx9.c directx/directx9/dx9_d3d.c \ + directx/directx10/dx10.c directx/directx10/dx10_d3d.c \ + directx/directx11/dx11.c directx/directx11/dx11_d3d.c + +libgstd3dvideosink_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_CFLAGS) +libgstd3dvideosink_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) -lgstinterfaces-$(GST_MAJORMINOR) \ + $(DIRECT3D_LIBS) + +libgstd3dvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstd3dvideosink_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = d3dvideosink.h directx/d3d.h directx/dx.h directx/directx.h \ + directx/directx9/dx9.h directx/directx9/dx9_d3d.h \ + directx/directx10/dx10.h directx/directx10/dx10_d3d.h \ + directx/directx11/dx11.h directx/directx11/dx11_d3d.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 sys/d3dvideosink/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu sys/d3dvideosink/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 +libgstd3dvideosink.la: $(libgstd3dvideosink_la_OBJECTS) $(libgstd3dvideosink_la_DEPENDENCIES) $(EXTRA_libgstd3dvideosink_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstd3dvideosink_la_LINK) -rpath $(plugindir) $(libgstd3dvideosink_la_OBJECTS) $(libgstd3dvideosink_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-d3d.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-d3dvideosink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx10.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx10_d3d.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx11.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx11_d3d.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx9.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstd3dvideosink_la-dx9_d3d.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstd3dvideosink_la-d3dvideosink.lo: d3dvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-d3dvideosink.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-d3dvideosink.Tpo -c -o libgstd3dvideosink_la-d3dvideosink.lo `test -f 'd3dvideosink.c' || echo '$(srcdir)/'`d3dvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-d3dvideosink.Tpo $(DEPDIR)/libgstd3dvideosink_la-d3dvideosink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='d3dvideosink.c' object='libgstd3dvideosink_la-d3dvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-d3dvideosink.lo `test -f 'd3dvideosink.c' || echo '$(srcdir)/'`d3dvideosink.c + +libgstd3dvideosink_la-d3d.lo: directx/d3d.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-d3d.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-d3d.Tpo -c -o libgstd3dvideosink_la-d3d.lo `test -f 'directx/d3d.c' || echo '$(srcdir)/'`directx/d3d.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-d3d.Tpo $(DEPDIR)/libgstd3dvideosink_la-d3d.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/d3d.c' object='libgstd3dvideosink_la-d3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-d3d.lo `test -f 'directx/d3d.c' || echo '$(srcdir)/'`directx/d3d.c + +libgstd3dvideosink_la-dx.lo: directx/dx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx.Tpo -c -o libgstd3dvideosink_la-dx.lo `test -f 'directx/dx.c' || echo '$(srcdir)/'`directx/dx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/dx.c' object='libgstd3dvideosink_la-dx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx.lo `test -f 'directx/dx.c' || echo '$(srcdir)/'`directx/dx.c + +libgstd3dvideosink_la-dx9.lo: directx/directx9/dx9.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx9.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx9.Tpo -c -o libgstd3dvideosink_la-dx9.lo `test -f 'directx/directx9/dx9.c' || echo '$(srcdir)/'`directx/directx9/dx9.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx9.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx9.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx9/dx9.c' object='libgstd3dvideosink_la-dx9.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx9.lo `test -f 'directx/directx9/dx9.c' || echo '$(srcdir)/'`directx/directx9/dx9.c + +libgstd3dvideosink_la-dx9_d3d.lo: directx/directx9/dx9_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx9_d3d.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx9_d3d.Tpo -c -o libgstd3dvideosink_la-dx9_d3d.lo `test -f 'directx/directx9/dx9_d3d.c' || echo '$(srcdir)/'`directx/directx9/dx9_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx9_d3d.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx9_d3d.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx9/dx9_d3d.c' object='libgstd3dvideosink_la-dx9_d3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx9_d3d.lo `test -f 'directx/directx9/dx9_d3d.c' || echo '$(srcdir)/'`directx/directx9/dx9_d3d.c + +libgstd3dvideosink_la-dx10.lo: directx/directx10/dx10.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx10.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx10.Tpo -c -o libgstd3dvideosink_la-dx10.lo `test -f 'directx/directx10/dx10.c' || echo '$(srcdir)/'`directx/directx10/dx10.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx10.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx10.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx10/dx10.c' object='libgstd3dvideosink_la-dx10.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx10.lo `test -f 'directx/directx10/dx10.c' || echo '$(srcdir)/'`directx/directx10/dx10.c + +libgstd3dvideosink_la-dx10_d3d.lo: directx/directx10/dx10_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx10_d3d.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx10_d3d.Tpo -c -o libgstd3dvideosink_la-dx10_d3d.lo `test -f 'directx/directx10/dx10_d3d.c' || echo '$(srcdir)/'`directx/directx10/dx10_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx10_d3d.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx10_d3d.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx10/dx10_d3d.c' object='libgstd3dvideosink_la-dx10_d3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx10_d3d.lo `test -f 'directx/directx10/dx10_d3d.c' || echo '$(srcdir)/'`directx/directx10/dx10_d3d.c + +libgstd3dvideosink_la-dx11.lo: directx/directx11/dx11.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx11.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx11.Tpo -c -o libgstd3dvideosink_la-dx11.lo `test -f 'directx/directx11/dx11.c' || echo '$(srcdir)/'`directx/directx11/dx11.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx11.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx11.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx11/dx11.c' object='libgstd3dvideosink_la-dx11.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx11.lo `test -f 'directx/directx11/dx11.c' || echo '$(srcdir)/'`directx/directx11/dx11.c + +libgstd3dvideosink_la-dx11_d3d.lo: directx/directx11/dx11_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -MT libgstd3dvideosink_la-dx11_d3d.lo -MD -MP -MF $(DEPDIR)/libgstd3dvideosink_la-dx11_d3d.Tpo -c -o libgstd3dvideosink_la-dx11_d3d.lo `test -f 'directx/directx11/dx11_d3d.c' || echo '$(srcdir)/'`directx/directx11/dx11_d3d.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstd3dvideosink_la-dx11_d3d.Tpo $(DEPDIR)/libgstd3dvideosink_la-dx11_d3d.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='directx/directx11/dx11_d3d.c' object='libgstd3dvideosink_la-dx11_d3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstd3dvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstd3dvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstd3dvideosink_la-dx11_d3d.lo `test -f 'directx/directx11/dx11_d3d.c' || echo '$(srcdir)/'`directx/directx11/dx11_d3d.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c new file mode 100644 index 0000000..ed4d249 --- /dev/null +++ b/sys/d3dvideosink/d3dvideosink.c @@ -0,0 +1,2628 @@ +/* GStreamer + * Copyright (C) 2010-2011 David Hoyt + * Copyright (C) 2010 Andoni Morales + * + * 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 "d3dvideosink.h" + +#define IPC_SET_WINDOW 1 +#define IDT_DEVICELOST 1 + +/* Provide access to data that will be shared among all instantiations of this element */ +#define GST_D3DVIDEOSINK_SHARED_D3D_LOCK g_static_mutex_lock (&shared_d3d_lock); +#define GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK g_static_mutex_unlock (&shared_d3d_lock); +#define GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK g_static_mutex_lock (&shared_d3d_dev_lock); +#define GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK g_static_mutex_unlock (&shared_d3d_dev_lock); +#define GST_D3DVIDEOSINK_SHARED_D3D_HOOK_LOCK g_static_mutex_lock (&shared_d3d_hook_lock); +#define GST_D3DVIDEOSINK_SHARED_D3D_HOOK_UNLOCK g_static_mutex_unlock (&shared_d3d_hook_lock); +typedef struct _GstD3DVideoSinkShared GstD3DVideoSinkShared; +struct _GstD3DVideoSinkShared +{ + LPDIRECT3D9 d3d; + LPDIRECT3DDEVICE9 d3ddev; + D3DCAPS9 d3dcaps; + D3DFORMAT d3ddmformat; + D3DFORMAT d3dformat; + D3DFORMAT d3dfourcc; + D3DFORMAT d3dstencilformat; + D3DTEXTUREFILTERTYPE d3dfiltertype; + gboolean d3dEnableAutoDepthStencil; + + GList *element_list; + gint32 element_count; + + gboolean device_lost; + UINT_PTR device_lost_timer; + + HWND hidden_window_handle; + HANDLE hidden_window_created_signal; + GThread *hidden_window_thread; + + GHashTable *hook_tbl; +}; +typedef struct _GstD3DVideoSinkHookData GstD3DVideoSinkHookData; +struct _GstD3DVideoSinkHookData +{ + HHOOK hook; + HWND window_handle; + DWORD thread_id; + DWORD process_id; +}; +/* Holds our shared information */ +static GstD3DVideoSinkShared shared; +/* Define a shared lock to synchronize the creation/destruction of the d3d device */ +static GStaticMutex shared_d3d_lock = G_STATIC_MUTEX_INIT; +static GStaticMutex shared_d3d_dev_lock = G_STATIC_MUTEX_INIT; +static GStaticMutex shared_d3d_hook_lock = G_STATIC_MUTEX_INIT; +/* Hold a reference to our dll's HINSTANCE */ +static HINSTANCE g_hinstDll = NULL; + +typedef struct _IPCData IPCData; +struct _IPCData +{ + HWND hwnd; + LONG_PTR wnd_proc; +}; +/* Holds data that may be used to communicate across processes */ +/*static IPCData ipc_data;*/ +/*static COPYDATASTRUCT ipc_cds;*/ + +GST_DEBUG_CATEGORY (d3dvideosink_debug); +#define GST_CAT_DEFAULT d3dvideosink_debug + +/* TODO: Support RGB! */ +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ YUY2, UYVY, YV12, I420 }")) + //";" GST_VIDEO_CAPS_RGBx) + ); + +static void gst_d3dvideosink_init_interfaces (GType type); + +GST_BOILERPLATE_FULL (GstD3DVideoSink, gst_d3dvideosink, GstVideoSink, + GST_TYPE_VIDEO_SINK, gst_d3dvideosink_init_interfaces); + +enum +{ + PROP_0, PROP_KEEP_ASPECT_RATIO, PROP_PIXEL_ASPECT_RATIO, + PROP_ENABLE_NAVIGATION_EVENTS, PROP_LAST +}; + +/* GObject methods */ +static void gst_d3dvideosink_finalize (GObject * gobject); +static void gst_d3dvideosink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_d3dvideosink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +/* GstElement methods */ +static GstStateChangeReturn gst_d3dvideosink_change_state (GstElement * element, + GstStateChange transition); + +/* GstBaseSink methods */ +static gboolean gst_d3dvideosink_start (GstBaseSink * bsink); +static gboolean gst_d3dvideosink_stop (GstBaseSink * bsink); +static gboolean gst_d3dvideosink_set_caps (GstBaseSink * bsink, GstCaps * caps); +static GstCaps *gst_d3dvideosink_get_caps (GstBaseSink * bsink); +static GstFlowReturn gst_d3dvideosink_show_frame (GstVideoSink * sink, + GstBuffer * buffer); + +/* GstXOverlay methods */ +static void gst_d3dvideosink_set_window_handle (GstXOverlay * overlay, + guintptr window_id); +static void gst_d3dvideosink_expose (GstXOverlay * overlay); + +/* GstNavigation methods */ +static void gst_d3dvideosink_navigation_send_event (GstNavigation * navigation, + GstStructure * structure); + +/* WndProc methods */ +LRESULT APIENTRY WndProc (HWND hWnd, UINT message, WPARAM wParam, + LPARAM lParam); +LRESULT APIENTRY SharedHiddenWndProc (HWND hWnd, UINT message, WPARAM wParam, + LPARAM lParam); +static void gst_d3dvideosink_wnd_proc (GstD3DVideoSink * sink, HWND hWnd, + UINT message, WPARAM wParam, LPARAM lParam); + +/* HookProc methods */ +LRESULT APIENTRY WndProcHook (HWND hWnd, UINT message, WPARAM wParam, + LPARAM lParam); +LRESULT CALLBACK gst_d3dvideosink_hook_proc (int nCode, WPARAM wParam, + LPARAM lParam); + +/* Paint/update methods */ +static void gst_d3dvideosink_update (GstBaseSink * bsink); +static gboolean gst_d3dvideosink_refresh (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_update_all (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_refresh_all (GstD3DVideoSink * sink); +static void gst_d3dvideosink_stretch (GstD3DVideoSink * sink, + LPDIRECT3DSURFACE9 backBuffer); + +/* Misc methods */ +BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, PVOID fImpLoad); +static void gst_d3dvideosink_remove_window_for_renderer (GstD3DVideoSink * + sink); +static gboolean gst_d3dvideosink_initialize_direct3d (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_initialize_d3d_device (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_initialize_swap_chain (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_resize_swap_chain (GstD3DVideoSink * sink, + gint width, gint height); +static gboolean gst_d3dvideosink_notify_device_lost (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_notify_device_reset (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_device_lost (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_release_swap_chain (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_release_d3d_device (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_release_direct3d (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_window_size (GstD3DVideoSink * sink, + gint * width, gint * height); +static gboolean gst_d3dvideosink_direct3d_supported (GstD3DVideoSink * sink); +static gboolean gst_d3dvideosink_shared_hidden_window_thread (GstD3DVideoSink * + sink); +static void gst_d3dvideosink_hook_window_for_renderer (GstD3DVideoSink * sink); +static void gst_d3dvideosink_unhook_window_for_renderer (GstD3DVideoSink * + sink); +static void gst_d3dvideosink_unhook_all_windows (void); +static void gst_d3dvideosink_log_debug (const gchar * file, + const gchar * function, gint line, const gchar * format, va_list args); +static void gst_d3dvideosink_log_warning (const gchar * file, + const gchar * function, gint line, const gchar * format, va_list args); +static void gst_d3dvideosink_log_error (const gchar * file, + const gchar * function, gint line, const gchar * format, va_list args); + +static DirectXInitParams directx_init_params = { + gst_d3dvideosink_log_debug, gst_d3dvideosink_log_warning, + gst_d3dvideosink_log_error +}; + +/* TODO: event, preroll, buffer_alloc? + * buffer_alloc won't generally be all that useful because the renderers require a + * different stride to GStreamer's implicit values. + */ + +BOOL WINAPI +DllMain (HINSTANCE hinstDll, DWORD fdwReason, PVOID fImpLoad) +{ + switch (fdwReason) { + case DLL_PROCESS_ATTACH: + g_hinstDll = hinstDll; + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + case DLL_PROCESS_DETACH: + gst_d3dvideosink_unhook_all_windows (); + break; + } + return TRUE; +} + +static gboolean +gst_d3dvideosink_interface_supported (GstImplementsInterface * iface, + GType type) +{ + return (type == GST_TYPE_X_OVERLAY || type == GST_TYPE_NAVIGATION); +} + +static void +gst_d3dvideosink_interface_init (GstImplementsInterfaceClass * klass) +{ + klass->supported = gst_d3dvideosink_interface_supported; +} + +static void +gst_d3dvideosink_xoverlay_interface_init (GstXOverlayClass * iface) +{ + iface->set_window_handle = gst_d3dvideosink_set_window_handle; + iface->expose = gst_d3dvideosink_expose; +} + +static void +gst_d3dvideosink_navigation_interface_init (GstNavigationInterface * iface) +{ + iface->send_event = gst_d3dvideosink_navigation_send_event; +} + +static void +gst_d3dvideosink_init_interfaces (GType type) +{ + static const GInterfaceInfo iface_info = { + (GInterfaceInitFunc) gst_d3dvideosink_interface_init, + NULL, + NULL + }; + + static const GInterfaceInfo xoverlay_info = { + (GInterfaceInitFunc) gst_d3dvideosink_xoverlay_interface_init, + NULL, + NULL + }; + + static const GInterfaceInfo navigation_info = { + (GInterfaceInitFunc) gst_d3dvideosink_navigation_interface_init, + NULL, + NULL, + }; + + g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, + &iface_info); + g_type_add_interface_static (type, GST_TYPE_X_OVERLAY, &xoverlay_info); + g_type_add_interface_static (type, GST_TYPE_NAVIGATION, &navigation_info); + + GST_DEBUG_CATEGORY_INIT (d3dvideosink_debug, "d3dvideosink", 0, + "Direct3D video sink"); +} + +static void +gst_d3dvideosink_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, + &sink_template); + + gst_element_class_set_details_simple (element_class, "Direct3D video sink", + "Sink/Video", + "Display data using a Direct3D video renderer", + "David Hoyt "); +} + +static void +gst_d3dvideosink_class_init (GstD3DVideoSinkClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + GstBaseSinkClass *gstbasesink_class; + GstVideoSinkClass *gstvideosink_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + gstbasesink_class = (GstBaseSinkClass *) klass; + gstvideosink_class = (GstVideoSinkClass *) klass; + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_d3dvideosink_finalize); + gobject_class->set_property = + GST_DEBUG_FUNCPTR (gst_d3dvideosink_set_property); + gobject_class->get_property = + GST_DEBUG_FUNCPTR (gst_d3dvideosink_get_property); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_d3dvideosink_change_state); + + gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_d3dvideosink_get_caps); + gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_d3dvideosink_set_caps); + gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_d3dvideosink_start); + gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_d3dvideosink_stop); + /*gstbasesink_class->unlock = GST_DEBUG_FUNCPTR (gst_d3dvideosink_unlock); */ + /*gstbasesink_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_d3dvideosink_unlock_stop); */ + + gstvideosink_class->show_frame = + GST_DEBUG_FUNCPTR (gst_d3dvideosink_show_frame); + + /* Add properties */ + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_KEEP_ASPECT_RATIO, g_param_spec_boolean ("force-aspect-ratio", + "Force aspect ratio", + "When enabled, scaling will respect original aspect ratio", FALSE, + (GParamFlags) G_PARAM_READWRITE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_PIXEL_ASPECT_RATIO, g_param_spec_string ("pixel-aspect-ratio", + "Pixel Aspect Ratio", + "The pixel aspect ratio of the device", "1/1", + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_ENABLE_NAVIGATION_EVENTS, + g_param_spec_boolean ("enable-navigation-events", + "Enable navigation events", + "When enabled, navigation events are sent upstream", TRUE, + (GParamFlags) G_PARAM_READWRITE)); + + /* Initialize DirectX abstraction */ + GST_DEBUG ("Initializing DirectX abstraction layer"); + directx_initialize (&directx_init_params); + + /* Initialize DirectX API */ + if (!directx_initialize_best_available_api ()) + GST_DEBUG ("Unable to initialize DirectX"); + + /* Determine DirectX version */ + klass->directx_api = directx_get_best_available_api (); + klass->directx_version = + (klass->directx_api != + NULL ? klass->directx_api->version : DIRECTX_VERSION_UNKNOWN); + klass->is_directx_supported = directx_is_supported (); +} + +static void +gst_d3dvideosink_clear (GstD3DVideoSink * sink) +{ + sink->enable_navigation_events = TRUE; + sink->keep_aspect_ratio = FALSE; + + sink->window_closed = FALSE; + sink->window_handle = NULL; + sink->is_new_window = FALSE; + sink->is_hooked = FALSE; +} + +static void +gst_d3dvideosink_init (GstD3DVideoSink * sink, GstD3DVideoSinkClass * klass) +{ + gst_d3dvideosink_clear (sink); + + sink->d3d_swap_chain_lock = g_mutex_new (); + + sink->par = g_new0 (GValue, 1); + g_value_init (sink->par, GST_TYPE_FRACTION); + gst_value_set_fraction (sink->par, 1, 1); + + /* TODO: Copied from GstVideoSink; should we use that as base class? */ + /* 20ms is more than enough, 80-130ms is noticable */ + gst_base_sink_set_max_lateness (GST_BASE_SINK (sink), 20 * GST_MSECOND); + gst_base_sink_set_qos_enabled (GST_BASE_SINK (sink), TRUE); +} + +static void +gst_d3dvideosink_finalize (GObject * gobject) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (gobject); + + if (sink->par) { + g_free (sink->par); + sink->par = NULL; + } + + g_mutex_free (sink->d3d_swap_chain_lock); + sink->d3d_swap_chain_lock = NULL; + + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + +static void +gst_d3dvideosink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (object); + + switch (prop_id) { + case PROP_ENABLE_NAVIGATION_EVENTS: + sink->enable_navigation_events = g_value_get_boolean (value); + break; + case PROP_KEEP_ASPECT_RATIO: + sink->keep_aspect_ratio = g_value_get_boolean (value); + break; + case PROP_PIXEL_ASPECT_RATIO: + g_free (sink->par); + sink->par = g_new0 (GValue, 1); + g_value_init (sink->par, GST_TYPE_FRACTION); + if (!g_value_transform (value, sink->par)) { + g_warning ("Could not transform string to aspect ratio"); + gst_value_set_fraction (sink->par, 1, 1); + } + GST_DEBUG_OBJECT (sink, "set PAR to %d/%d", + gst_value_get_fraction_numerator (sink->par), + gst_value_get_fraction_denominator (sink->par)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_d3dvideosink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (object); + + switch (prop_id) { + case PROP_ENABLE_NAVIGATION_EVENTS: + g_value_set_boolean (value, sink->enable_navigation_events); + break; + case PROP_KEEP_ASPECT_RATIO: + g_value_set_boolean (value, sink->keep_aspect_ratio); + break; + case PROP_PIXEL_ASPECT_RATIO: + g_value_transform (sink->par, value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstCaps * +gst_d3dvideosink_get_caps (GstBaseSink * basesink) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (basesink); + + return + gst_caps_copy (gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD (sink))); +} + +static void +gst_d3dvideosink_close_window (GstD3DVideoSink * sink) +{ + if (!sink || !sink->window_handle) + return; + + if (!sink->is_new_window) { + gst_d3dvideosink_remove_window_for_renderer (sink); + return; + } + + SendMessage (sink->window_handle, WM_CLOSE, (WPARAM) NULL, (WPARAM) NULL); + g_thread_join (sink->window_thread); + sink->is_new_window = FALSE; +} + +static gboolean +gst_d3dvideosink_create_shared_hidden_window (GstD3DVideoSink * sink) +{ + GST_DEBUG ("Creating Direct3D hidden window"); + + shared.hidden_window_created_signal = CreateSemaphore (NULL, 0, 1, NULL); + if (shared.hidden_window_created_signal == NULL) + goto failed; + + shared.hidden_window_thread = g_thread_create ((GThreadFunc) + gst_d3dvideosink_shared_hidden_window_thread, sink, TRUE, NULL); + + /* wait maximum 60 seconds for window to be created */ + if (WaitForSingleObject (shared.hidden_window_created_signal, + 60000) != WAIT_OBJECT_0) + goto failed; + + CloseHandle (shared.hidden_window_created_signal); + + if (!shared.d3ddev) + goto failed; + + GST_DEBUG ("Successfully created Direct3D hidden window, handle: %p", + shared.hidden_window_handle); + + return (shared.hidden_window_handle != NULL); + +failed: + CloseHandle (shared.hidden_window_created_signal); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, + ("Error creating Direct3D hidden window"), (NULL)); + return FALSE; +} + +static gboolean +gst_d3dvideosink_shared_hidden_window_created (GstD3DVideoSink * sink) +{ + /* Should only be called from the shared window thread. */ + ReleaseSemaphore (shared.hidden_window_created_signal, 1, NULL); + return TRUE; +} + +static gboolean +gst_d3dvideosink_shared_hidden_window_thread (GstD3DVideoSink * sink) +{ + WNDCLASS WndClass; + HWND hWnd; + MSG msg; + + memset (&WndClass, 0, sizeof (WNDCLASS)); + WndClass.hInstance = GetModuleHandle (NULL); + WndClass.lpszClassName = TEXT ("GST-Shared-Hidden-D3DSink"); + WndClass.lpfnWndProc = SharedHiddenWndProc; + if (!RegisterClass (&WndClass)) { + GST_ERROR ("Unable to register Direct3D hidden window class"); + return FALSE; + } + + hWnd = CreateWindowEx (0, WndClass.lpszClassName, + TEXT ("GStreamer Direct3D hidden window"), + WS_POPUP, 0, 0, 1, 1, HWND_MESSAGE, NULL, WndClass.hInstance, sink); + + if (hWnd == NULL) { + GST_ERROR_OBJECT (sink, "Failed to create Direct3D hidden window"); + goto error; + } + + GST_DEBUG ("Direct3D hidden window handle: %p", hWnd); + + shared.hidden_window_handle = hWnd; + shared.device_lost_timer = 0; + + GST_DEBUG ("Initializing Direct3D"); + SendMessage (shared.hidden_window_handle, WM_DIRECTX_D3D_INIT_DEVICE, 0, 0); + GST_DEBUG ("Direct3D initialization complete"); + + gst_d3dvideosink_shared_hidden_window_created (sink); + + GST_DEBUG ("Entering Direct3D hidden window message loop"); + + /* start message loop processing */ + while (TRUE) { + while (GetMessage (&msg, NULL, 0, 0)) { + TranslateMessage (&msg); + DispatchMessage (&msg); + } + + if (msg.message == WM_QUIT || msg.message == WM_CLOSE) + break; + } + + GST_DEBUG ("Leaving Direct3D hidden window message loop"); + +/*success:*/ + /* Kill the device lost timer if it's running */ + if (shared.device_lost_timer != 0) + KillTimer (hWnd, shared.device_lost_timer); + UnregisterClass (WndClass.lpszClassName, WndClass.hInstance); + + shared.device_lost_timer = 0; + return TRUE; + +error: + /* Kill the device lost timer if it's running */ + if (shared.device_lost_timer != 0) + KillTimer (hWnd, shared.device_lost_timer); + if (hWnd) + DestroyWindow (hWnd); + UnregisterClass (WndClass.lpszClassName, WndClass.hInstance); + + shared.hidden_window_handle = NULL; + shared.device_lost_timer = 0; + + ReleaseSemaphore (shared.hidden_window_created_signal, 1, NULL); + return FALSE; +} + +LRESULT APIENTRY +SharedHiddenWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + GstD3DVideoSink *sink; + + if (message == WM_CREATE) { + /* lParam holds a pointer to a CREATESTRUCT instance which in turn holds the parameter used when creating the window. */ + sink = (GstD3DVideoSink *) ((LPCREATESTRUCT) lParam)->lpCreateParams; + + /* In our case, this is a pointer to the sink. So we immediately attach it for use in subsequent calls. */ + SetWindowLongPtr (hWnd, GWLP_USERDATA, (LONG_PTR) sink); + } + + sink = (GstD3DVideoSink *) GetWindowLongPtr (hWnd, GWLP_USERDATA); + + switch (message) { + case WM_DIRECTX_D3D_INIT_DEVICE: + { + gst_d3dvideosink_initialize_d3d_device (sink); + break; + } + case WM_DIRECTX_D3D_INIT_DEVICELOST: + { + if (!shared.device_lost) { + //GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK + //GST_D3DVIDEOSINK_SHARED_D3D_LOCK + + shared.device_lost = TRUE; + + /* Handle device lost by creating a timer and posting WM_D3D_DEVICELOST twice a second */ + /* Create a timer to periodically check the d3d device and attempt to recreate it */ + shared.device_lost_timer = SetTimer (hWnd, IDT_DEVICELOST, 500, NULL); + + /* Try it once immediately */ + SendMessage (hWnd, WM_DIRECTX_D3D_DEVICELOST, 0, 0); + } + break; + } + case WM_TIMER: + { + /* Did we receive a message to check if the device is available again? */ + if (wParam == IDT_DEVICELOST) { + /* This will synchronously call SharedHiddenWndProc() because this thread is the one that created the window. */ + SendMessage (hWnd, WM_DIRECTX_D3D_DEVICELOST, 0, 0); + return 0; + } + break; + } + case WM_DIRECTX_D3D_DEVICELOST: + { + gst_d3dvideosink_device_lost (sink); + break; + } + case WM_DIRECTX_D3D_END_DEVICELOST: + { + if (shared.device_lost) { + /* gst_d3dvideosink_notify_device_reset() sends this message. */ + if (shared.device_lost_timer != 0) + KillTimer (hWnd, shared.device_lost_timer); + + shared.device_lost_timer = 0; + shared.device_lost = FALSE; + + /* Refresh the video with the last buffer */ + gst_d3dvideosink_update_all (sink); + + /* Then redraw just in case we don't have a last buffer */ + gst_d3dvideosink_refresh_all (sink); + + //GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + //GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK + } + break; + } + case WM_DESTROY: + { + PostQuitMessage (0); + return 0; + } + } + + return DefWindowProc (hWnd, message, wParam, lParam); +} + +static void +gst_d3dvideosink_close_shared_hidden_window (GstD3DVideoSink * sink) +{ + if (!shared.hidden_window_handle) + return; + + SendMessage (shared.hidden_window_handle, WM_CLOSE, (WPARAM) NULL, + (WPARAM) NULL); + if (shared.hidden_window_thread) { + g_thread_join (shared.hidden_window_thread); + shared.hidden_window_thread = NULL; + } + shared.hidden_window_handle = NULL; + + GST_DEBUG ("Successfully closed Direct3D hidden window"); +} + +/* WNDPROC for application-supplied windows */ +LRESULT APIENTRY +WndProcHook (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + /* Handle certain actions specially on the window passed to us. + * Then forward back to the original window. + */ + GstD3DVideoSink *sink = + (GstD3DVideoSink *) GetProp (hWnd, TEXT ("GstD3DVideoSink")); + + switch (message) { + case WM_ERASEBKGND: + return TRUE; + case WM_COPYDATA: + { + gst_d3dvideosink_wnd_proc (sink, hWnd, message, wParam, lParam); + return TRUE; + } + case WM_PAINT: + { + LRESULT ret; + ret = CallWindowProc (sink->prevWndProc, hWnd, message, wParam, lParam); + /* Call this afterwards to ensure that our paint happens last */ + gst_d3dvideosink_wnd_proc (sink, hWnd, message, wParam, lParam); + return ret; + } + default: + { + /* Check it */ + gst_d3dvideosink_wnd_proc (sink, hWnd, message, wParam, lParam); + return CallWindowProc (sink->prevWndProc, hWnd, message, wParam, lParam); + } + } +} + +/* WndProc for our default window, if the application didn't supply one */ +LRESULT APIENTRY +WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + GstD3DVideoSink *sink; + + if (message == WM_CREATE) { + /* lParam holds a pointer to a CREATESTRUCT instance which in turn holds the parameter used when creating the window. */ + GstD3DVideoSink *sink = + (GstD3DVideoSink *) ((LPCREATESTRUCT) lParam)->lpCreateParams; + + /* In our case, this is a pointer to the sink. So we immediately attach it for use in subsequent calls. */ + SetWindowLongPtr (hWnd, GWLP_USERDATA, (LONG_PTR) sink); + + /* signal application we created a window */ + gst_x_overlay_got_window_handle (GST_X_OVERLAY (sink), (guintptr) hWnd); + } + + + sink = (GstD3DVideoSink *) GetWindowLongPtr (hWnd, GWLP_USERDATA); + gst_d3dvideosink_wnd_proc (sink, hWnd, message, wParam, lParam); + + switch (message) { + case WM_ERASEBKGND: + case WM_COPYDATA: + return TRUE; + + case WM_DESTROY: + { + PostQuitMessage (0); + return 0; + } + } + + return DefWindowProc (hWnd, message, wParam, lParam); +} + +static void +gst_d3dvideosink_wnd_proc (GstD3DVideoSink * sink, HWND hWnd, UINT message, + WPARAM wParam, LPARAM lParam) +{ + switch (message) { + case WM_COPYDATA: + { + PCOPYDATASTRUCT p_ipc_cds; + p_ipc_cds = (PCOPYDATASTRUCT) lParam; + switch (p_ipc_cds->dwData) { + case IPC_SET_WINDOW: + { + IPCData *p_ipc_data; + p_ipc_data = (IPCData *) p_ipc_cds->dwData; + + GST_DEBUG ("Received IPC call to subclass the window handler"); + + sink->window_handle = p_ipc_data->hwnd; + sink->prevWndProc = + (WNDPROC) SetWindowLongPtr (sink->window_handle, GWLP_WNDPROC, + (LONG_PTR) p_ipc_data->wnd_proc); + break; + } + } + break; + } + case WM_PAINT: + { + gst_d3dvideosink_refresh (sink); + break; + } + case WM_SIZE: + case WM_DIRECTX_D3D_RESIZE: + { + gint width; + gint height; + gst_d3dvideosink_window_size (sink, &width, &height); + gst_d3dvideosink_resize_swap_chain (sink, width, height); + gst_d3dvideosink_refresh (sink); + //gst_d3dvideosink_resize_swap_chain(sink, MAX(1, ABS(LOWORD(lParam))), MAX(1, ABS(HIWORD(lParam)))); + break; + } + case WM_CLOSE: + case WM_DESTROY: + { + sink->window_closed = TRUE; + //GST_ELEMENT_ERROR (sink, RESOURCE, NOT_FOUND, ("Output window was closed"), (NULL)); + break; + } + case WM_CHAR: + case WM_KEYDOWN: + case WM_KEYUP: + { + if (!sink->enable_navigation_events) + break; + } + { + gunichar2 wcrep[128]; + if (GetKeyNameTextW (lParam, (LPWSTR) wcrep, 128)) { + gchar *utfrep = g_utf16_to_utf8 (wcrep, 128, NULL, NULL, NULL); + if (utfrep) { + if (message == WM_CHAR || message == WM_KEYDOWN) + gst_navigation_send_key_event (GST_NAVIGATION (sink), "key-press", + utfrep); + if (message == WM_CHAR || message == WM_KEYUP) + gst_navigation_send_key_event (GST_NAVIGATION (sink), + "key-release", utfrep); + g_free (utfrep); + } + } + break; + } + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_MOUSEMOVE: + { + if (!sink->enable_navigation_events) + break; + } + { + gint x, y, button; + const gchar *action; + + switch (message) { + case WM_MOUSEMOVE: + button = 0; + action = "mouse-move"; + break; + case WM_LBUTTONDOWN: + button = 1; + action = "mouse-button-press"; + break; + case WM_LBUTTONUP: + button = 1; + action = "mouse-button-release"; + break; + case WM_RBUTTONDOWN: + button = 2; + action = "mouse-button-press"; + break; + case WM_RBUTTONUP: + button = 2; + action = "mouse-button-release"; + break; + case WM_MBUTTONDOWN: + button = 3; + action = "mouse-button-press"; + break; + case WM_MBUTTONUP: + button = 3; + action = "mouse-button-release"; + break; + default: + button = 4; + action = NULL; + break; + } + + x = LOWORD (lParam); + y = HIWORD (lParam); + + if (button == 0) { + GST_DEBUG_OBJECT (sink, "Mouse moved to %dx%d", x, y); + } else + GST_DEBUG_OBJECT (sink, "Mouse button %d pressed at %dx%d", button, x, + y); + + if (button < 4) + gst_navigation_send_mouse_event (GST_NAVIGATION (sink), action, + button, x, y); + + break; + } + } +} + +static gpointer +gst_d3dvideosink_window_thread (GstD3DVideoSink * sink) +{ + WNDCLASS WndClass; + int width, height; + int offx, offy; + DWORD exstyle, style; + HWND video_window; + RECT rect; + int screenwidth; + int screenheight; + MSG msg; + + memset (&WndClass, 0, sizeof (WNDCLASS)); + WndClass.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW; + WndClass.hInstance = GetModuleHandle (NULL); + WndClass.lpszClassName = TEXT ("GST-D3DSink"); + WndClass.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); + WndClass.hCursor = LoadCursor (NULL, IDC_ARROW); + WndClass.hIcon = LoadIcon (NULL, IDI_APPLICATION); + WndClass.cbClsExtra = 0; + WndClass.cbWndExtra = 0; + WndClass.lpfnWndProc = WndProc; + RegisterClass (&WndClass); + + /* By default, create a normal top-level window, the size of the video. */ + + /* GST_VIDEO_SINK_WIDTH() is the aspect-ratio-corrected size of the video. */ + /* GetSystemMetrics() returns the width of the dialog's border (doubled b/c of left and right borders). */ + width = GST_VIDEO_SINK_WIDTH (sink) + GetSystemMetrics (SM_CXSIZEFRAME) * 2; + height = GST_VIDEO_SINK_HEIGHT (sink) + GetSystemMetrics (SM_CYCAPTION) + + (GetSystemMetrics (SM_CYSIZEFRAME) * 2); + + SystemParametersInfo (SPI_GETWORKAREA, 0, &rect, 0); + screenwidth = rect.right - rect.left; + screenheight = rect.bottom - rect.top; + offx = rect.left; + offy = rect.top; + + /* Make it fit into the screen without changing the aspect ratio. */ + if (width > screenwidth) { + double ratio = (double) screenwidth / (double) width; + width = screenwidth; + height = (int) (height * ratio); + } + + if (height > screenheight) { + double ratio = (double) screenheight / (double) height; + height = screenheight; + width = (int) (width * ratio); + } + + style = WS_OVERLAPPEDWINDOW; /* Normal top-level window */ + exstyle = 0; + + video_window = CreateWindowEx (exstyle, TEXT ("GST-D3DSink"), + TEXT ("GStreamer Direct3D sink default window"), + style, offx, offy, width, height, NULL, NULL, WndClass.hInstance, sink); + + if (video_window == NULL) { + GST_ERROR_OBJECT (sink, "Failed to create window"); + return NULL; + } + + sink->is_new_window = TRUE; + sink->window_handle = video_window; + + /* Now show the window, as appropriate */ + ShowWindow (video_window, SW_SHOWNORMAL); + + /* Trigger the initial paint of the window */ + UpdateWindow (video_window); + + ReleaseSemaphore (sink->window_created_signal, 1, NULL); + + /* start message loop processing our default window messages */ + while (TRUE) { + //while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + while (GetMessage (&msg, NULL, 0, 0)) { + TranslateMessage (&msg); + DispatchMessage (&msg); + } + + if (msg.message == WM_QUIT || msg.message == WM_CLOSE) + break; + } + + UnregisterClass (WndClass.lpszClassName, WndClass.hInstance); + sink->window_handle = NULL; + return NULL; + +/*destroy_window:*/ +/* if (video_window) { */ +/* DestroyWindow(video_window); */ +/* UnregisterClass(WndClass.lpszClassName, WndClass.hInstance); */ +/* } */ +/* sink->window_handle = NULL; */ +/* ReleaseSemaphore (sink->window_created_signal, 1, NULL); */ +/* return NULL; */ +} + +static gboolean +gst_d3dvideosink_create_default_window (GstD3DVideoSink * sink) +{ + if (shared.device_lost) + return FALSE; + + sink->window_created_signal = CreateSemaphore (NULL, 0, 1, NULL); + if (sink->window_created_signal == NULL) + goto failed; + + sink->window_thread = + g_thread_create ((GThreadFunc) gst_d3dvideosink_window_thread, sink, TRUE, + NULL); + + /* wait maximum 10 seconds for window to be created */ + if (WaitForSingleObject (sink->window_created_signal, 10000) != WAIT_OBJECT_0) + goto failed; + + CloseHandle (sink->window_created_signal); + return (sink->window_handle != NULL); + +failed: + CloseHandle (sink->window_created_signal); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, + ("Error creating our default window"), (NULL)); + return FALSE; +} + +static void +gst_d3dvideosink_set_window_handle (GstXOverlay * overlay, guintptr window_id) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (overlay); + HWND hWnd = (HWND) window_id; + + if (hWnd == sink->window_handle) { + GST_DEBUG ("Window already set"); + return; + } + + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + /* If we're already playing/paused, then we need to lock the swap chain, and recreate it with the new window. */ + gboolean init_swap_chain = sink->d3d_swap_chain != NULL; + + gst_d3dvideosink_release_swap_chain (sink); + + /* Close our existing window if there is one */ + gst_d3dvideosink_close_window (sink); + + /* Save our window id */ + sink->window_handle = hWnd; + + if (init_swap_chain) + gst_d3dvideosink_initialize_swap_chain (sink); + } + +/*success:*/ + GST_DEBUG ("Direct3D window id successfully changed for sink %p to %p", sink, + hWnd); + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return; +/*error:*/ +/* GST_DEBUG("Error attempting to change the window id for sink %d to %d", sink, hWnd); */ +/* GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return; */ +} + +/* Hook for out-of-process rendering */ +LRESULT CALLBACK +gst_d3dvideosink_hook_proc (int nCode, WPARAM wParam, LPARAM lParam) +{ + //LPCWPSTRUCT p = (LPCWPSTRUCT)lParam; + // + //if (p && p->hwnd) + // WndProcHook(p->hwnd, p->message, p->wParam, p->lParam); + return CallNextHookEx (NULL, nCode, wParam, lParam); +} + +static void +gst_d3dvideosink_set_window_for_renderer (GstD3DVideoSink * sink) +{ + WNDPROC currWndProc; + + /* Application has requested a specific window ID */ + sink->is_new_window = FALSE; + currWndProc = (WNDPROC) GetWindowLongPtr (sink->window_handle, GWLP_WNDPROC); + if (sink->prevWndProc != currWndProc && currWndProc != WndProcHook) + sink->prevWndProc = + (WNDPROC) SetWindowLongPtr (sink->window_handle, GWLP_WNDPROC, + (LONG_PTR) WndProcHook); + + /* Allows us to pick up the video sink inside the msg handler */ + SetProp (sink->window_handle, TEXT ("GstD3DVideoSink"), sink); + + if (!(sink->prevWndProc)) { + /* If we were unable to set the window procedure, it's possible we're attempting to render into the */ + /* window from a separate process. In that case, we need to use a windows hook to see the messages */ + /* going to the window we're drawing on. We must take special care that our hook is properly removed */ + /* when we're done. */ + GST_DEBUG ("Unable to set window procedure. Error: %s", + g_win32_error_message (GetLastError ())); + GST_D3DVIDEOSINK_SHARED_D3D_HOOK_LOCK + gst_d3dvideosink_hook_window_for_renderer (sink); + GST_D3DVIDEOSINK_SHARED_D3D_HOOK_UNLOCK} else { + GST_DEBUG ("Set wndproc to %p from %p", WndProcHook, sink->prevWndProc); + GST_DEBUG ("Set renderer window to %p", sink->window_handle); + } + + sink->is_new_window = FALSE; +} + +static HHOOK +gst_d3dvideosink_find_hook (DWORD pid, DWORD tid) +{ + HWND key; + GHashTableIter iter; + GstD3DVideoSinkHookData *value; + + if (!shared.hook_tbl) + return NULL; + + g_hash_table_iter_init (&iter, shared.hook_tbl); + while (g_hash_table_iter_next (&iter, (gpointer) & key, (gpointer) & value)) { + if (value && value->process_id == pid && value->thread_id == tid) + return value->hook; + } + return NULL; +} + +static GstD3DVideoSinkHookData * +gst_d3dvideosink_hook_data (HWND window_id) +{ + if (!shared.hook_tbl) + return NULL; + return (GstD3DVideoSinkHookData *) g_hash_table_lookup (shared.hook_tbl, + window_id); +} + +static GstD3DVideoSinkHookData * +gst_d3dvideosink_register_hook_data (HWND window_id) +{ + GstD3DVideoSinkHookData *data; + if (!shared.hook_tbl) + shared.hook_tbl = g_hash_table_new (NULL, NULL); + data = + (GstD3DVideoSinkHookData *) g_hash_table_lookup (shared.hook_tbl, + window_id); + if (!data) { + data = + (GstD3DVideoSinkHookData *) g_malloc (sizeof (GstD3DVideoSinkHookData)); + memset (data, 0, sizeof (GstD3DVideoSinkHookData)); + g_hash_table_insert (shared.hook_tbl, window_id, data); + } + return data; +} + +static gboolean +gst_d3dvideosink_unregister_hook_data (HWND window_id) +{ + GstD3DVideoSinkHookData *data; + if (!shared.hook_tbl) + return FALSE; + data = + (GstD3DVideoSinkHookData *) g_hash_table_lookup (shared.hook_tbl, + window_id); + if (!data) + return TRUE; + if (g_hash_table_remove (shared.hook_tbl, window_id)) + g_free (data); + return TRUE; +} + +static void +gst_d3dvideosink_hook_window_for_renderer (GstD3DVideoSink * sink) +{ + /* Ensure that our window hook isn't already installed. */ + if (!sink->is_new_window && !sink->is_hooked && sink->window_handle) { + DWORD pid; + DWORD tid; + + GST_DEBUG ("Attempting to apply a windows hook in process %lu.", + GetCurrentProcessId ()); + + /* Get thread id of the window in question. */ + tid = GetWindowThreadProcessId (sink->window_handle, &pid); + + if (tid) { + HHOOK hook; + GstD3DVideoSinkHookData *data; + + /* Only apply a hook if there's not one already there. It's possible this is the case if there are multiple */ + /* embedded windows that we're hooking inside of the same dialog/thread. */ + + hook = gst_d3dvideosink_find_hook (pid, tid); + data = gst_d3dvideosink_register_hook_data (sink->window_handle); + if (data && !hook) { + GST_DEBUG + ("No other hooks exist for pid %lu and tid %lu. Attempting to add one.", + pid, tid); + hook = + SetWindowsHookEx (WH_CALLWNDPROCRET, gst_d3dvideosink_hook_proc, + g_hinstDll, tid); + } + + sink->is_hooked = (hook ? TRUE : FALSE); + + if (sink->is_hooked) { + data->hook = hook; + data->process_id = pid; + data->thread_id = tid; + data->window_handle = sink->window_handle; + + PostThreadMessage (tid, WM_NULL, 0, 0); + + GST_DEBUG ("Window successfully hooked. GetLastError() returned: %s", + g_win32_error_message (GetLastError ())); + } else { + /* Ensure that we clean up any allocated memory. */ + if (data) + gst_d3dvideosink_unregister_hook_data (sink->window_handle); + GST_DEBUG + ("Unable to hook the window. The system provided error was: %s", + g_win32_error_message (GetLastError ())); + } + } + } +} + +static void +gst_d3dvideosink_unhook_window_for_renderer (GstD3DVideoSink * sink) +{ + if (!sink->is_new_window && sink->is_hooked && sink->window_handle) { + GstD3DVideoSinkHookData *data; + + GST_DEBUG ("Unhooking a window in process %lu.", GetCurrentProcessId ()); + + data = gst_d3dvideosink_hook_data (sink->window_handle); + if (data) { + DWORD pid; + DWORD tid; + HHOOK hook; + + /* Save off a temp ref to the data */ + hook = data->hook; + tid = data->thread_id; + pid = data->process_id; + + /* Free the memory */ + if (gst_d3dvideosink_unregister_hook_data (sink->window_handle)) { + /* Check if there's anyone else who still has the hook. If so, then we do nothing. */ + /* If not, then go ahead and unhook. */ + if (gst_d3dvideosink_find_hook (pid, tid)) { + UnhookWindowsHookEx (hook); + GST_DEBUG ("Unhooked the window for process %lu and thread %lu.", pid, + tid); + } + } + } + + sink->is_hooked = FALSE; + + GST_DEBUG ("Window successfully unhooked in process %lu.", + GetCurrentProcessId ()); + } +} + +static void +gst_d3dvideosink_unhook_all_windows (void) +{ + /* Unhook all windows that may be currently hooked. This is mainly a precaution in case */ + /* a wayward process doesn't properly set state back to NULL (which would remove the hook). */ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK + GST_D3DVIDEOSINK_SHARED_D3D_LOCK GST_D3DVIDEOSINK_SHARED_D3D_HOOK_LOCK { + GList *item; + GstD3DVideoSink *s; + + GST_DEBUG ("Attempting to unhook all windows for process %lu", + GetCurrentProcessId ()); + + for (item = g_list_first (shared.element_list); item; item = item->next) { + s = (GstD3DVideoSink *) item->data; + gst_d3dvideosink_unhook_window_for_renderer (s); + } + } +GST_D3DVIDEOSINK_SHARED_D3D_HOOK_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK} + +static void +gst_d3dvideosink_remove_window_for_renderer (GstD3DVideoSink * sink) +{ + //GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK + //GST_D3DVIDEOSINK_SHARED_D3D_LOCK + //GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK(sink); + { + GST_DEBUG ("Removing custom rendering window procedure"); + if (!sink->is_new_window && sink->window_handle) { + WNDPROC currWndProc; + + /* Retrieve current msg handler */ + currWndProc = + (WNDPROC) GetWindowLongPtr (sink->window_handle, GWLP_WNDPROC); + + /* Return control of application window */ + if (sink->prevWndProc != NULL && currWndProc == WndProcHook) { + SetWindowLongPtr (sink->window_handle, GWLP_WNDPROC, + (LONG_PTR) sink->prevWndProc); + + sink->prevWndProc = NULL; + sink->window_handle = NULL; + sink->is_new_window = FALSE; + } + } + + GST_D3DVIDEOSINK_SHARED_D3D_HOOK_LOCK + gst_d3dvideosink_unhook_window_for_renderer (sink); + GST_D3DVIDEOSINK_SHARED_D3D_HOOK_UNLOCK + /* Remove the property associating our sink with the window */ + RemoveProp (sink->window_handle, TEXT ("GstD3DVideoSink")); + } + //GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); + //GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + //GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK +} + +static void +gst_d3dvideosink_prepare_window (GstD3DVideoSink * sink) +{ + /* Give the app a last chance to supply a window id */ + if (!sink->window_handle) { + gst_x_overlay_prepare_xwindow_id (GST_X_OVERLAY (sink)); + } + + /* If the app supplied one, use it. Otherwise, go ahead + * and create (and use) our own window */ + if (sink->window_handle) { + gst_d3dvideosink_set_window_for_renderer (sink); + } else { + gst_d3dvideosink_create_default_window (sink); + } + + gst_d3dvideosink_initialize_swap_chain (sink); +} + +static GstStateChangeReturn +gst_d3dvideosink_change_state (GstElement * element, GstStateChange transition) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (element); + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_d3dvideosink_initialize_direct3d (sink)) + return GST_STATE_CHANGE_FAILURE; + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_NULL: + 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: + gst_d3dvideosink_remove_window_for_renderer (sink); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_d3dvideosink_release_direct3d (sink); + gst_d3dvideosink_clear (sink); + break; + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + } + + return ret; +} + +static gboolean +gst_d3dvideosink_start (GstBaseSink * bsink) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); + + /* Determine if Direct 3D is supported */ + return gst_d3dvideosink_direct3d_supported (sink); +} + +static gboolean +gst_d3dvideosink_set_caps (GstBaseSink * bsink, GstCaps * caps) +{ + GstD3DVideoSink *sink; + GstCaps *sink_caps; + gint video_width, video_height; + gint video_par_n, video_par_d; /* video's PAR */ + gint display_par_n, display_par_d; /* display's PAR */ + gint fps_n, fps_d; + guint num, den; + + sink = GST_D3DVIDEOSINK (bsink); + sink_caps = gst_static_pad_template_get_caps (&sink_template); + + GST_DEBUG_OBJECT (sink, + "In setcaps. Possible caps %" GST_PTR_FORMAT ", setting caps %" + GST_PTR_FORMAT, sink_caps, caps); + + if (!gst_caps_can_intersect (sink_caps, caps)) + goto incompatible_caps; + + if (!gst_video_format_parse_caps (caps, &sink->format, &video_width, + &video_height)) + goto invalid_format; + + if (!gst_video_parse_caps_framerate (caps, &fps_n, &fps_d) || + !video_width || !video_height) + goto incomplete_caps; + + /* 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 */ + + /* get video's PAR */ + if (!gst_video_parse_caps_pixel_aspect_ratio (caps, &video_par_n, + &video_par_d)) { + video_par_n = 1; + video_par_d = 1; + } + /* get display's PAR */ + if (sink->par) { + display_par_n = gst_value_get_fraction_numerator (sink->par); + display_par_d = gst_value_get_fraction_denominator (sink->par); + } else { + display_par_n = 1; + display_par_d = 1; + } + + if (!gst_video_calculate_display_ratio (&num, &den, video_width, + video_height, video_par_n, video_par_d, display_par_n, display_par_d)) + goto no_disp_ratio; + + GST_DEBUG_OBJECT (sink, + "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 (sink, "keeping video height"); + GST_VIDEO_SINK_WIDTH (sink) = (guint) + gst_util_uint64_scale_int (video_height, num, den); + GST_VIDEO_SINK_HEIGHT (sink) = video_height; + } else if (video_width % num == 0) { + GST_DEBUG_OBJECT (sink, "keeping video width"); + GST_VIDEO_SINK_WIDTH (sink) = video_width; + GST_VIDEO_SINK_HEIGHT (sink) = (guint) + gst_util_uint64_scale_int (video_width, den, num); + } else { + GST_DEBUG_OBJECT (sink, "approximating while keeping video height"); + GST_VIDEO_SINK_WIDTH (sink) = (guint) + gst_util_uint64_scale_int (video_height, num, den); + GST_VIDEO_SINK_HEIGHT (sink) = video_height; + } + GST_DEBUG_OBJECT (sink, "scaling to %dx%d", + GST_VIDEO_SINK_WIDTH (sink), GST_VIDEO_SINK_HEIGHT (sink)); + + if (GST_VIDEO_SINK_WIDTH (sink) <= 0 || GST_VIDEO_SINK_HEIGHT (sink) <= 0) + goto no_display_size; + + sink->width = video_width; + sink->height = video_height; + + /* Create a window (or start using an application-supplied one, then connect the graph */ + gst_d3dvideosink_prepare_window (sink); + + return TRUE; + /* ERRORS */ +incompatible_caps: + { + GST_ERROR_OBJECT (sink, "caps incompatible"); + return FALSE; + } +incomplete_caps: + { + GST_DEBUG_OBJECT (sink, "Failed to retrieve either width, " + "height or framerate from intersected caps"); + return FALSE; + } +invalid_format: + { + gchar *caps_txt = gst_caps_to_string (caps); + GST_DEBUG_OBJECT (sink, + "Could not locate image format from caps %s", caps_txt); + g_free (caps_txt); + return FALSE; + } +no_disp_ratio: + { + GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL), + ("Error calculating the output display ratio of the video.")); + return FALSE; + } +no_display_size: + { + GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL), + ("Error calculating the output display ratio of the video.")); + return FALSE; + } +} + +static gboolean +gst_d3dvideosink_stop (GstBaseSink * bsink) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); + gst_d3dvideosink_close_window (sink); + gst_d3dvideosink_release_swap_chain (sink); + return TRUE; +} + +static GstFlowReturn +gst_d3dvideosink_show_frame (GstVideoSink * vsink, GstBuffer * buffer) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (vsink); + + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + HRESULT hr; + LPDIRECT3DSURFACE9 backBuffer; + + if (!shared.d3ddev) { + if (!shared.device_lost) { + GST_WARNING ("No Direct3D device has been created, stopping"); + goto error; + } else { + GST_WARNING + ("Direct3D device is lost. Maintaining flow until it has been reset."); + goto success; + } + } + + if (!sink->d3d_offscreen_surface) { + GST_WARNING ("No Direct3D offscreen surface has been created, stopping"); + goto error; + } + + if (!sink->d3d_swap_chain) { + GST_WARNING ("No Direct3D swap chain has been created, stopping"); + goto error; + } + + if (sink->window_closed) { + GST_WARNING ("Window has been closed, stopping"); + goto error; + } + + if (sink->window_handle && !sink->is_new_window) { + if (shared.d3ddev) { + gint win_width = 0, win_height = 0; + D3DPRESENT_PARAMETERS d3dpp; + + ZeroMemory (&d3dpp, sizeof (d3dpp)); + + if (gst_d3dvideosink_window_size (sink, &win_width, &win_height)) { + IDirect3DSwapChain9_GetPresentParameters (sink->d3d_swap_chain, + &d3dpp); + if ((d3dpp.BackBufferWidth > 0 && d3dpp.BackBufferHeight > 0 + && win_width != d3dpp.BackBufferWidth) + || win_height != d3dpp.BackBufferHeight) + gst_d3dvideosink_resize_swap_chain (sink, win_width, win_height); + } + } + } + + /* Set the render target to our swap chain */ + IDirect3DSwapChain9_GetBackBuffer (sink->d3d_swap_chain, 0, + D3DBACKBUFFER_TYPE_MONO, &backBuffer); + IDirect3DDevice9_SetRenderTarget (shared.d3ddev, 0, backBuffer); + IDirect3DSurface9_Release (backBuffer); + + /* Clear the target */ + IDirect3DDevice9_Clear (shared.d3ddev, 0, NULL, D3DCLEAR_TARGET, + D3DCOLOR_XRGB (0, 0, 0), 1.0f, 0); + + if (SUCCEEDED (IDirect3DDevice9_BeginScene (shared.d3ddev))) { + if (GST_BUFFER_DATA (buffer)) { + D3DLOCKED_RECT lr; + guint8 *dest, *source; + int srcstride, dststride, i; + + IDirect3DSurface9_LockRect (sink->d3d_offscreen_surface, &lr, NULL, 0); + dest = (guint8 *) lr.pBits; + source = GST_BUFFER_DATA (buffer); + + if (dest) { + if (gst_video_format_is_yuv (sink->format)) { + guint32 fourcc = gst_video_format_to_fourcc (sink->format); + + switch (fourcc) { + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + case GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V'): + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + dststride = lr.Pitch; + srcstride = GST_BUFFER_SIZE (buffer) / sink->height; + for (i = 0; i < sink->height; ++i) + memcpy (dest + dststride * i, source + srcstride * i, + srcstride); + break; + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + { + int srcystride, srcvstride, srcustride; + int dstystride, dstvstride, dstustride; + int rows; + guint8 *srcv, *srcu, *dstv, *dstu; + + rows = sink->height; + + /* Source y, u and v strides */ + srcystride = GST_ROUND_UP_4 (sink->width); + srcustride = GST_ROUND_UP_8 (sink->width) / 2; + srcvstride = GST_ROUND_UP_8 (srcystride) / 2; + + /* Destination y, u and v strides */ + dstystride = lr.Pitch; + dstustride = dstystride / 2; + dstvstride = dstustride; + + srcu = source + srcystride * GST_ROUND_UP_2 (rows); + srcv = srcu + srcustride * GST_ROUND_UP_2 (rows) / 2; + + if (fourcc == GST_MAKE_FOURCC ('I', '4', '2', '0')) { + /* swap u and v planes */ + dstv = dest + dstystride * rows; + dstu = dstv + dstustride * rows / 2; + } else { + dstu = dest + dstystride * rows; + dstv = dstu + dstustride * rows / 2; + } + + for (i = 0; i < rows; ++i) { + /* Copy the y plane */ + memcpy (dest + dstystride * i, source + srcystride * i, + srcystride); + } + + for (i = 0; i < rows / 2; ++i) { + /* Copy the u plane */ + memcpy (dstu + dstustride * i, srcu + srcustride * i, + srcustride); + /* Copy the v plane */ + memcpy (dstv + dstvstride * i, srcv + srcvstride * i, + srcvstride); + } + break; + } + default: + g_assert_not_reached (); + } + } else if (gst_video_format_is_rgb (sink->format)) { + dststride = lr.Pitch; + srcstride = GST_BUFFER_SIZE (buffer) / sink->height; + for (i = 0; i < sink->height; ++i) + memcpy (dest + dststride * i, source + srcstride * i, srcstride); + } + } + + IDirect3DSurface9_UnlockRect (sink->d3d_offscreen_surface); + } + gst_d3dvideosink_stretch (sink, backBuffer); + IDirect3DDevice9_EndScene (shared.d3ddev); + } + /* Swap back and front buffers on video card and present to the user */ + if (FAILED (hr = + IDirect3DSwapChain9_Present (sink->d3d_swap_chain, NULL, NULL, NULL, + NULL, 0))) { + switch (hr) { + case D3DERR_DEVICELOST: + case D3DERR_DEVICENOTRESET: + gst_d3dvideosink_notify_device_lost (sink); + break; + default: + goto wrong_state; + } + } + } + +success: + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return GST_FLOW_OK; +wrong_state: + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return GST_FLOW_WRONG_STATE; +/*unexpected:*/ +/* GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return GST_FLOW_UNEXPECTED; */ +error: + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return GST_FLOW_ERROR; +} + +/* Simply redraws the last item on our offscreen surface to the window */ +static gboolean +gst_d3dvideosink_refresh (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + HRESULT hr; + LPDIRECT3DSURFACE9 backBuffer; + + if (!shared.d3ddev) { + if (!shared.device_lost) + GST_DEBUG ("No Direct3D device has been created"); + goto error; + } + + if (!sink->d3d_offscreen_surface) { + GST_DEBUG ("No Direct3D offscreen surface has been created"); + goto error; + } + + if (!sink->d3d_swap_chain) { + GST_DEBUG ("No Direct3D swap chain has been created"); + goto error; + } + + if (sink->window_closed) { + GST_DEBUG ("Window has been closed"); + goto error; + } + + /* Set the render target to our swap chain */ + IDirect3DSwapChain9_GetBackBuffer (sink->d3d_swap_chain, 0, + D3DBACKBUFFER_TYPE_MONO, &backBuffer); + IDirect3DDevice9_SetRenderTarget (shared.d3ddev, 0, backBuffer); + IDirect3DSurface9_Release (backBuffer); + + /* Clear the target */ + IDirect3DDevice9_Clear (shared.d3ddev, 0, NULL, D3DCLEAR_TARGET, + D3DCOLOR_XRGB (0, 0, 0), 1.0f, 0); + + if (SUCCEEDED (IDirect3DDevice9_BeginScene (shared.d3ddev))) { + gst_d3dvideosink_stretch (sink, backBuffer); + IDirect3DDevice9_EndScene (shared.d3ddev); + } + + /* Swap back and front buffers on video card and present to the user */ + if (FAILED (hr = + IDirect3DSwapChain9_Present (sink->d3d_swap_chain, NULL, NULL, NULL, + NULL, 0))) { + switch (hr) { + case D3DERR_DEVICELOST: + case D3DERR_DEVICENOTRESET: + gst_d3dvideosink_notify_device_lost (sink); + break; + default: + goto error; + } + } + } + +/*success:*/ + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_update_all (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + { + GList *item; + GstD3DVideoSink *s; + for (item = g_list_first (shared.element_list); item; item = item->next) { + s = (GstD3DVideoSink *) item->data; + gst_d3dvideosink_update (GST_BASE_SINK (s)); + } + } +/*success:*/ + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +/*error:*/ +/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return FALSE; */ +} + +static gboolean +gst_d3dvideosink_refresh_all (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + { + GList *item; + GstD3DVideoSink *s; + for (item = g_list_first (shared.element_list); item; item = item->next) { + s = (GstD3DVideoSink *) item->data; + gst_d3dvideosink_refresh (s); + } + } +/*success:*/ + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +/*error:*/ +/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return FALSE; */ +} + +static void +gst_d3dvideosink_stretch (GstD3DVideoSink * sink, LPDIRECT3DSURFACE9 backBuffer) +{ + if (sink->keep_aspect_ratio) { + gint window_width; + gint window_height; + RECT r; + GstVideoRectangle src; + GstVideoRectangle dst; + GstVideoRectangle result; + + gst_d3dvideosink_window_size (sink, &window_width, &window_height); + + src.w = GST_VIDEO_SINK_WIDTH (sink); + src.h = GST_VIDEO_SINK_HEIGHT (sink); + + dst.w = window_width; + dst.h = window_height; + + gst_video_sink_center_rect (src, dst, &result, TRUE); + + r.left = result.x; + r.top = result.y; + r.right = result.x + result.w; + r.bottom = result.y + result.h; + + IDirect3DDevice9_StretchRect (shared.d3ddev, sink->d3d_offscreen_surface, + NULL, backBuffer, &r, sink->d3dfiltertype); + } else { + IDirect3DDevice9_StretchRect (shared.d3ddev, sink->d3d_offscreen_surface, + NULL, backBuffer, NULL, sink->d3dfiltertype); + } +} + +static void +gst_d3dvideosink_expose (GstXOverlay * overlay) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (overlay); + GstBuffer *last_buffer; + + last_buffer = gst_base_sink_get_last_buffer (GST_BASE_SINK (sink)); + if (last_buffer) { + gst_d3dvideosink_show_frame (GST_VIDEO_SINK (sink), last_buffer); + gst_buffer_unref (last_buffer); + } +} + +static void +gst_d3dvideosink_update (GstBaseSink * bsink) +{ + GstBuffer *last_buffer; + + last_buffer = gst_base_sink_get_last_buffer (bsink); + if (last_buffer) { + gst_d3dvideosink_show_frame (GST_VIDEO_SINK (bsink), last_buffer); + gst_buffer_unref (last_buffer); + } +} + +/* TODO: How can we implement these? Figure that out... */ +/* +static gboolean +gst_d3dvideosink_unlock (GstBaseSink * bsink) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); + + return TRUE; +} + +static gboolean +gst_d3dvideosink_unlock_stop (GstBaseSink * bsink) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (bsink); + + return TRUE; +} +*/ + +static gboolean +gst_d3dvideosink_initialize_direct3d (GstD3DVideoSink * sink) +{ + /* Let's hope this is never a problem (they have millions of d3d elements going at the same time) */ + if (shared.element_count >= G_MAXINT32) { + GST_ERROR + ("There are too many d3dvideosink elements. Creating more elements would put this element into an unknown state."); + return FALSE; + } + + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + /* Add to our GList containing all of our elements. */ + /* GLists are doubly-linked lists and calling prepend() prevents it from having to traverse the entire list just to add one item. */ + shared.element_list = g_list_prepend (shared.element_list, sink); + + /* Increment our count of the number of elements we have */ + shared.element_count++; + if (shared.element_count > 1) + goto success; + + /* We want to initialize direct3d only for the first element that's using it. */ + /* We'll destroy this once all elements using direct3d have been finalized. */ + /* See gst_d3dvideosink_release_direct3d() for details. */ + + /* We create a window that's hidden and used by the Direct3D device. The */ + /* device is shared among all d3dvideosink windows. */ + + GST_DEBUG ("Creating hidden window for Direct3D"); + if (!gst_d3dvideosink_create_shared_hidden_window (sink)) + goto error; + +success: + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_initialize_d3d_device (GstD3DVideoSink * sink) +{ + HRESULT hr; + DWORD d3dcreate; + LPDIRECT3D9 d3d; + D3DCAPS9 d3dcaps; + D3DFORMAT d3ddmformat; + D3DDISPLAYMODE d3ddm; + LPDIRECT3DDEVICE9 d3ddev; + D3DPRESENT_PARAMETERS d3dpp; + D3DTEXTUREFILTERTYPE d3dfiltertype; + GstD3DVideoSinkClass *klass; + DirectXAPI *api; + + if (!sink) { + GST_WARNING ("Missing gobject instance."); + goto error; + } + + klass = GST_D3DVIDEOSINK_GET_CLASS (sink); + if (!klass) { + GST_WARNING ("Unable to retrieve gobject class"); + goto error; + } + + api = klass->directx_api; + if (!api) { + GST_WARNING ("Missing DirectX api"); + goto error; + } + //d3d = Direct3DCreate9(D3D_SDK_VERSION); + d3d = + (LPDIRECT3D9) DX9_D3D_COMPONENT_CALL_FUNC (DIRECTX_D3D (api), + Direct3DCreate9, D3D_SDK_VERSION); + if (!d3d) { + GST_WARNING ("Unable to create Direct3D interface"); + goto error; + } + + if (FAILED (IDirect3D9_GetAdapterDisplayMode (d3d, D3DADAPTER_DEFAULT, + &d3ddm))) { + /* Prevent memory leak */ + IDirect3D9_Release (d3d); + GST_WARNING ("Unable to request adapter display mode"); + goto error; + } + + if (FAILED (IDirect3D9_GetDeviceCaps (d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, + &d3dcaps))) { + /* Prevent memory leak */ + IDirect3D9_Release (d3d); + GST_WARNING ("Unable to request device caps"); + goto error; + } + + /* Ask DirectX to please not clobber the FPU state when making DirectX API calls. */ + /* This can cause libraries such as cairo to misbehave in certain scenarios. */ + d3dcreate = 0 | D3DCREATE_FPU_PRESERVE; + + /* Determine vertex processing capabilities. Some cards have issues using software vertex processing. */ + /* Courtesy http://www.chadvernon.com/blog/resources/directx9/improved-direct3d-initialization/ */ + if ((d3dcaps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == + D3DDEVCAPS_HWTRANSFORMANDLIGHT) { + d3dcreate |= D3DCREATE_HARDWARE_VERTEXPROCESSING; + /* if ((d3dcaps.DevCaps & D3DDEVCAPS_PUREDEVICE) == D3DDEVCAPS_PUREDEVICE) */ + /* d3dcreate |= D3DCREATE_PUREDEVICE; */ + } else { + d3dcreate |= D3DCREATE_SOFTWARE_VERTEXPROCESSING; + } + + /* Check the filter type. */ + if ((d3dcaps.StretchRectFilterCaps & D3DPTFILTERCAPS_MINFLINEAR) == + D3DPTFILTERCAPS_MINFLINEAR + && (d3dcaps.StretchRectFilterCaps & D3DPTFILTERCAPS_MAGFLINEAR) == + D3DPTFILTERCAPS_MAGFLINEAR) { + d3dfiltertype = D3DTEXF_LINEAR; + } else { + d3dfiltertype = D3DTEXF_NONE; + } + + /* Setup the display mode format. */ + d3ddmformat = d3ddm.Format; + + ZeroMemory (&d3dpp, sizeof (d3dpp)); + //d3dpp.Flags = D3DPRESENTFLAG_VIDEO; + d3dpp.Windowed = TRUE; + d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; + d3dpp.BackBufferCount = 1; + d3dpp.BackBufferFormat = d3ddmformat; + d3dpp.BackBufferWidth = 1; + d3dpp.BackBufferHeight = 1; + d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; + d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; //D3DPRESENT_INTERVAL_IMMEDIATE; + + GST_DEBUG ("Creating Direct3D device for hidden window %p", + shared.hidden_window_handle); + + if (FAILED (hr = IDirect3D9_CreateDevice (d3d, + D3DADAPTER_DEFAULT, + D3DDEVTYPE_HAL, + shared.hidden_window_handle, d3dcreate, &d3dpp, &d3ddev))) { + /* Prevent memory leak */ + IDirect3D9_Release (d3d); + GST_WARNING ("Unable to create Direct3D device. Result: %ld (0x%lx)", hr, + hr); + goto error; + } + //if (FAILED(IDirect3DDevice9_GetDeviceCaps( + // d3ddev, + // &d3dcaps + //))) { + // /* Prevent memory leak */ + // IDirect3D9_Release(d3d); + // GST_WARNING ("Unable to retrieve Direct3D device caps"); + // goto error; + //} + + shared.d3d = d3d; + shared.d3ddev = d3ddev; + shared.d3ddmformat = d3ddmformat; + shared.d3dfiltertype = d3dfiltertype; + +/*success:*/ + return TRUE; +error: + return FALSE; +} + +static gboolean +gst_d3dvideosink_initialize_swap_chain (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + gint width; + gint height; + //D3DDISPLAYMODE mode; + D3DPRESENT_PARAMETERS d3dpp; + D3DFORMAT d3dformat; + D3DFORMAT d3dfourcc; + //D3DFORMAT d3dstencilformat; + LPDIRECT3DSWAPCHAIN9 d3dswapchain; + LPDIRECT3DSURFACE9 d3dsurface; + D3DTEXTUREFILTERTYPE d3dfiltertype; + //gboolean d3dEnableAutoDepthStencil; + + /* This should always work since gst_d3dvideosink_initialize_direct3d() should have always been called previously */ + if (!shared.d3ddev) { + GST_ERROR ("Direct3D device has not been initialized"); + goto error; + } + + GST_DEBUG ("Initializing Direct3D swap chain for sink %p", sink); + + if (gst_video_format_is_yuv (sink->format)) { + switch (gst_video_format_to_fourcc (sink->format)) { + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + d3dformat = D3DFMT_X8R8G8B8; + d3dfourcc = (D3DFORMAT) MAKEFOURCC ('Y', 'U', 'Y', '2'); + break; + //case GST_MAKE_FOURCC ('Y', 'U', 'V', 'Y'): + // d3dformat = D3DFMT_X8R8G8B8; + // d3dfourcc = (D3DFORMAT)MAKEFOURCC('Y', 'U', 'V', 'Y'); + // break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + d3dformat = D3DFMT_X8R8G8B8; + d3dfourcc = (D3DFORMAT) MAKEFOURCC ('U', 'Y', 'V', 'Y'); + break; + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + d3dformat = D3DFMT_X8R8G8B8; + d3dfourcc = (D3DFORMAT) MAKEFOURCC ('Y', 'V', '1', '2'); + break; + default: + g_assert_not_reached (); + goto error; + } + } else if (gst_video_format_is_rgb (sink->format)) { + d3dformat = D3DFMT_X8R8G8B8; + d3dfourcc = D3DFMT_X8R8G8B8; + } else { + g_assert_not_reached (); + goto error; + } + + GST_DEBUG ("Determined Direct3D format: %d", d3dfourcc); + + //Stencil/depth buffers aren't created by default when using swap chains + //if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D32))) { + // d3dstencilformat = D3DFMT_D32; + // d3dEnableAutoDepthStencil = TRUE; + //} else if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D24X8))) { + // d3dstencilformat = D3DFMT_D24X8; + // d3dEnableAutoDepthStencil = TRUE; + //} else if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D16))) { + // d3dstencilformat = D3DFMT_D16; + // d3dEnableAutoDepthStencil = TRUE; + //} else { + // d3dstencilformat = D3DFMT_X8R8G8B8; + // d3dEnableAutoDepthStencil = FALSE; + //} + // + //GST_DEBUG("Determined Direct3D stencil format: %d", d3dstencilformat); + + GST_DEBUG ("Direct3D back buffer size: %dx%d", GST_VIDEO_SINK_WIDTH (sink), + GST_VIDEO_SINK_HEIGHT (sink)); + + /* Get the current size of the window */ + gst_d3dvideosink_window_size (sink, &width, &height); + + ZeroMemory (&d3dpp, sizeof (d3dpp)); + d3dpp.Windowed = TRUE; + d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; + d3dpp.hDeviceWindow = sink->window_handle; + d3dpp.BackBufferFormat = d3dformat; + d3dpp.BackBufferWidth = width; + d3dpp.BackBufferHeight = height; + + if (FAILED (IDirect3DDevice9_CreateAdditionalSwapChain (shared.d3ddev, + &d3dpp, &d3dswapchain))) + goto error; + + if (FAILED (IDirect3DDevice9_CreateOffscreenPlainSurface (shared.d3ddev, + sink->width, sink->height, d3dfourcc, D3DPOOL_DEFAULT, + &d3dsurface, NULL))) { + /* Ensure that we release our newly created swap chain to prevent memory leaks */ + IDirect3DSwapChain9_Release (d3dswapchain); + goto error; + } + + /* Determine texture filtering support. If it's supported for this format, use the filter type determined when we created the dev and checked the dev caps. */ + if (SUCCEEDED (IDirect3D9_CheckDeviceFormat (shared.d3d, D3DADAPTER_DEFAULT, + D3DDEVTYPE_HAL, shared.d3ddmformat, D3DUSAGE_QUERY_FILTER, + D3DRTYPE_TEXTURE, d3dformat))) { + d3dfiltertype = shared.d3dfiltertype; + } else { + d3dfiltertype = D3DTEXF_NONE; + } + + GST_DEBUG ("Direct3D stretch rect texture filter: %d", d3dfiltertype); + + sink->d3dformat = d3dformat; + sink->d3dfourcc = d3dfourcc; + sink->d3dfiltertype = d3dfiltertype; + sink->d3d_swap_chain = d3dswapchain; + sink->d3d_offscreen_surface = d3dsurface; + } + +/*success:*/ + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_resize_swap_chain (GstD3DVideoSink * sink, gint width, + gint height) +{ + if (width <= 0 || height <= 0 || width > GetSystemMetrics (SM_CXFULLSCREEN) + || height > GetSystemMetrics (SM_CYFULLSCREEN)) { + GST_DEBUG ("Invalid size"); + return FALSE; + } + + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + int ref_count; + D3DPRESENT_PARAMETERS d3dpp; + LPDIRECT3DSWAPCHAIN9 d3dswapchain; + + GST_DEBUG ("Resizing Direct3D swap chain for sink %p to %dx%d", sink, width, + height); + + if (!shared.d3d || !shared.d3ddev) { + if (!shared.device_lost) + GST_WARNING ("Direct3D device has not been initialized"); + goto error; + } + + if (!sink->d3d_swap_chain) { + GST_DEBUG ("Direct3D swap chain has not been initialized"); + goto error; + } + + /* Get the parameters used to create this swap chain */ + if (FAILED (IDirect3DSwapChain9_GetPresentParameters (sink->d3d_swap_chain, + &d3dpp))) { + GST_DEBUG + ("Unable to determine Direct3D present parameters for swap chain"); + goto error; + } + + /* Release twice because IDirect3DSwapChain9_GetPresentParameters() adds a reference */ + while ((ref_count = + IDirect3DSwapChain9_Release (sink->d3d_swap_chain)) > 0); + sink->d3d_swap_chain = NULL; + GST_DEBUG ("Old Direct3D swap chain released. Reference count: %d", + ref_count); + + /* Adjust back buffer width/height */ + d3dpp.BackBufferWidth = width; + d3dpp.BackBufferHeight = height; + + if (FAILED (IDirect3DDevice9_CreateAdditionalSwapChain (shared.d3ddev, + &d3dpp, &d3dswapchain))) + goto error; + + sink->d3d_swap_chain = d3dswapchain; + } + +/*success:*/ + GST_DEBUG ("Direct3D swap chain successfully resized for sink %p", sink); + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_DEBUG ("Error attempting to resize the Direct3D swap chain for sink %p", + sink); + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_release_swap_chain (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK (sink); + { + GST_DEBUG ("Releasing Direct3D swap chain for sink %p", sink); + + /* This should always work since gst_d3dvideosink_initialize_direct3d() should have always been called previously */ + if (!shared.d3d || !shared.d3ddev) { + if (!shared.device_lost) + GST_ERROR ("Direct3D device has not been initialized"); + goto error; + } + + if (!sink->d3d_swap_chain && !sink->d3d_offscreen_surface) + goto success; + + if (sink->d3d_offscreen_surface) { + int ref_count; + while ((ref_count = + IDirect3DSurface9_Release (sink->d3d_offscreen_surface)) > 0); + sink->d3d_offscreen_surface = NULL; + GST_DEBUG + ("Direct3D offscreen surface released for sink %p. Reference count: %d", + sink, ref_count); + } + + if (sink->d3d_swap_chain) { + int ref_count; + while ((ref_count = + IDirect3DSwapChain9_Release (sink->d3d_swap_chain)) > 0); + sink->d3d_swap_chain = NULL; + GST_DEBUG + ("Direct3D swap chain released for sink %p. Reference count: %d", + sink, ref_count); + } + } + +success: + GST_DEBUG ("Direct3D swap chain successfully released for sink %p", sink); + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_DEBUG ("Error attempting to release the Direct3D swap chain for sink %p", + sink); + GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink); + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_notify_device_lost (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + { + /* Send notification asynchronously */ + PostMessage (shared.hidden_window_handle, WM_DIRECTX_D3D_INIT_DEVICELOST, 0, + 0); + } +/*success:*/ + GST_DEBUG ("Successfully sent notification of device lost event for sink %p", + sink); + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK + return TRUE; +/*error:*/ +/* GST_DEBUG("Error attempting to send notification of device lost event for sink %d", sink); */ +/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return FALSE; */ +} + +static gboolean +gst_d3dvideosink_notify_device_reset (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + { + /* Send notification synchronously -- let's ensure the timer's been killed before returning */ + SendMessage (shared.hidden_window_handle, WM_DIRECTX_D3D_END_DEVICELOST, 0, + 0); + } +/*success:*/ + GST_DEBUG ("Successfully sent notification of device reset event for sink %p", + sink); + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK + return TRUE; +/*error:*/ +/* GST_DEBUG("Error attempting to send notification of reset lost event for sink %d", sink); */ +/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return FALSE; */ +} + +static gboolean +gst_d3dvideosink_device_lost (GstD3DVideoSink * sink) +{ + /* Must be called from hidden window's message loop! */ + + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + { + GST_DEBUG ("Direct3D device lost. Resetting the device."); + + if (g_thread_self () != shared.hidden_window_thread) + { + GST_ERROR + ("Direct3D device can only be reset by the thread that created it."); + goto error; + } + + if (!shared.device_lost && (!shared.d3d || !shared.d3ddev)) + { + GST_ERROR ("Direct3D device has not been initialized"); + goto error; + } + + { + GList *item; + GstD3DVideoSink *s; + + /* This is technically a bit different from the normal. We don't call reset(), instead */ + /* we recreate everything from scratch. */ + + /* Release all swap chains, surfaces, buffers, etc. */ + for (item = g_list_first (shared.element_list); item; item = item->next) { + s = (GstD3DVideoSink *) item->data; + gst_d3dvideosink_release_swap_chain (s); + } + + /* Release the device */ + if (!gst_d3dvideosink_release_d3d_device (NULL)) + goto error; + + /* Recreate device */ + if (!gst_d3dvideosink_initialize_d3d_device (sink)) + goto error; + + /* Reinitialize all swap chains, surfaces, buffers, etc. */ + for (item = g_list_first (shared.element_list); item; item = item->next) { + s = (GstD3DVideoSink *) item->data; + gst_d3dvideosink_initialize_swap_chain (s); + } + } + + /* Let the hidden window know that it's okay to kill the timer */ + gst_d3dvideosink_notify_device_reset (sink); + } + +/*success:*/ + GST_DEBUG ("Direct3D device has successfully been reset."); + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +error: + GST_DEBUG ("Unable to successfully reset the Direct3D device."); + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return FALSE; +} + +static gboolean +gst_d3dvideosink_release_d3d_device (GstD3DVideoSink * sink) +{ + GST_DEBUG ("Cleaning all Direct3D objects"); + + if (shared.d3ddev) { + int ref_count; + ref_count = IDirect3DDevice9_Release (shared.d3ddev); + shared.d3ddev = NULL; + GST_DEBUG ("Direct3D device released. Reference count: %d", ref_count); + } + + if (shared.d3d) { + int ref_count; + ref_count = IDirect3D9_Release (shared.d3d); + shared.d3d = NULL; + GST_DEBUG ("Direct3D object released. Reference count: %d", ref_count); + } + + return TRUE; +} + +static gboolean +gst_d3dvideosink_release_direct3d (GstD3DVideoSink * sink) +{ + GST_D3DVIDEOSINK_SHARED_D3D_DEV_LOCK GST_D3DVIDEOSINK_SHARED_D3D_LOCK + /* Be absolutely sure that we've released this sink's hook (if any). */ + gst_d3dvideosink_unhook_window_for_renderer (sink); + + /* Remove item from the list */ + shared.element_list = g_list_remove (shared.element_list, sink); + + /* Decrement our count of the number of elements we have */ + shared.element_count--; + if (shared.element_count < 0) + shared.element_count = 0; + if (shared.element_count > 0) + goto success; + + gst_d3dvideosink_release_d3d_device (sink); + + GST_DEBUG ("Closing hidden Direct3D window"); + gst_d3dvideosink_close_shared_hidden_window (sink); + +success: + GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK + GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK return TRUE; +/*error:*/ +/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */ +/* GST_D3DVIDEOSINK_SHARED_D3D_DEV_UNLOCK */ +/* return FALSE; */ +} + +static gboolean +gst_d3dvideosink_window_size (GstD3DVideoSink * sink, gint * width, + gint * height) +{ + if (!sink || !sink->window_handle) { + if (width && height) { + *width = 0; + *height = 0; + } + return FALSE; + } + + { + RECT sz; + GetClientRect (sink->window_handle, &sz); + + *width = MAX (1, ABS (sz.right - sz.left)); + *height = MAX (1, ABS (sz.bottom - sz.top)); + } + return TRUE; +} + +static void +gst_d3dvideosink_navigation_send_event (GstNavigation * navigation, + GstStructure * structure) +{ + GstD3DVideoSink *sink = GST_D3DVIDEOSINK (navigation); + gint window_width; + gint window_height; + GstEvent *e; + GstVideoRectangle src, dst, result; + double x, y, old_x, old_y; + GstPad *pad = NULL; + + gst_d3dvideosink_window_size (sink, &window_width, &window_height); + + src.w = GST_VIDEO_SINK_WIDTH (sink); + src.h = GST_VIDEO_SINK_HEIGHT (sink); + dst.w = window_width; + dst.h = window_height; + + e = gst_event_new_navigation (structure); + + if (sink->keep_aspect_ratio) { + gst_video_sink_center_rect (src, dst, &result, TRUE); + } else { + result.x = 0; + result.y = 0; + result.w = dst.w; + result.h = dst.h; + } + + /* 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 = 0; + } else if (x >= result.x + result.w) { + x = src.w; + } else { + x = MAX (0, MIN (src.w, MAX (0, x - result.x) / result.w * src.w)); + } + GST_DEBUG_OBJECT (sink, + "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 = 0; + } else if (y >= result.y + result.h) { + y = src.h; + } else { + y = MAX (0, MIN (src.h, MAX (0, y - result.y) / result.h * src.h)); + } + GST_DEBUG_OBJECT (sink, + "translated navigation event y coordinate from %f to %f", old_y, y); + gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE, y, NULL); + } + + pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sink)); + + if (GST_IS_PAD (pad) && GST_IS_EVENT (e)) { + gst_pad_send_event (pad, e); + gst_object_unref (pad); + } +} + +static gboolean +gst_d3dvideosink_direct3d_supported (GstD3DVideoSink * sink) +{ + GstD3DVideoSinkClass *klass = GST_D3DVIDEOSINK_GET_CLASS (sink); + + return (klass != NULL && klass->is_directx_supported); +} + +static void +gst_d3dvideosink_log_debug (const gchar * file, const gchar * function, + gint line, const gchar * format, va_list args) +{ + if (G_UNLIKELY (GST_LEVEL_DEBUG <= __gst_debug_min)) + gst_debug_log_valist (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, file, function, + line, NULL, format, args); +} + +static void +gst_d3dvideosink_log_warning (const gchar * file, const gchar * function, + gint line, const gchar * format, va_list args) +{ + if (G_UNLIKELY (GST_LEVEL_WARNING <= __gst_debug_min)) + gst_debug_log_valist (GST_CAT_DEFAULT, GST_LEVEL_WARNING, file, function, + line, NULL, format, args); +} + +static void +gst_d3dvideosink_log_error (const gchar * file, const gchar * function, + gint line, const gchar * format, va_list args) +{ + if (G_UNLIKELY (GST_LEVEL_ERROR <= __gst_debug_min)) + gst_debug_log_valist (GST_CAT_DEFAULT, GST_LEVEL_ERROR, file, function, + line, NULL, format, args); +} + +/* Plugin entry point */ +static gboolean +plugin_init (GstPlugin * plugin) +{ + /* PRIMARY: this is the best videosink to use on windows */ + if (!gst_element_register (plugin, "d3dvideosink", + GST_RANK_PRIMARY, GST_TYPE_D3DVIDEOSINK)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "d3dsinkwrapper", + "Direct3D sink wrapper plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/sys/d3dvideosink/d3dvideosink.h b/sys/d3dvideosink/d3dvideosink.h new file mode 100644 index 0000000..e067dd3 --- /dev/null +++ b/sys/d3dvideosink/d3dvideosink.h @@ -0,0 +1,106 @@ +/* GStreamer + * Copyright (C) 2010 David Hoyt + * + * 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 __D3DVIDEOSINK_H__ +#define __D3DVIDEOSINK_H__ + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "directx/directx.h" + +#ifdef _MSC_VER +#pragma warning( disable : 4090 4024) +#endif + +G_BEGIN_DECLS +#define GST_TYPE_D3DVIDEOSINK (gst_d3dvideosink_get_type()) +#define GST_D3DVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_D3DVIDEOSINK,GstD3DVideoSink)) +#define GST_D3DVIDEOSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_D3DVIDEOSINK,GstD3DVideoSinkClass)) +#define GST_D3DVIDEOSINK_GET_CLASS(obj) (GST_D3DVIDEOSINK_CLASS(G_OBJECT_GET_CLASS(obj))) +#define GST_IS_D3DVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_D3DVIDEOSINK)) +#define GST_IS_D3DVIDEOSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_D3DVIDEOSINK)) + +typedef struct _GstD3DVideoSink GstD3DVideoSink; +typedef struct _GstD3DVideoSinkClass GstD3DVideoSinkClass; + +#define GST_D3DVIDEOSINK_SWAP_CHAIN_LOCK(sink) g_mutex_lock (GST_D3DVIDEOSINK (sink)->d3d_swap_chain_lock); +#define GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink) g_mutex_unlock (GST_D3DVIDEOSINK (sink)->d3d_swap_chain_lock); + +struct _GstD3DVideoSink +{ + GstVideoSink sink; + + /* source rectangle */ + gint width; + gint height; + + GstVideoFormat format; + + gboolean enable_navigation_events; + + gboolean keep_aspect_ratio; + GValue *par; + + /* If the window is closed, we set this and error out */ + gboolean window_closed; + + /* The video window set through GstXOverlay */ + HWND window_handle; + + /* If we created the window, it needs to be closed in ::stop() */ + gboolean is_new_window; + + /* If we create our own window, we run it from another thread */ + GThread *window_thread; + HANDLE window_created_signal; + + /* If we use an app-supplied window, we need to hook its WNDPROC */ + WNDPROC prevWndProc; + gboolean is_hooked; + + GMutex *d3d_swap_chain_lock; + LPDIRECT3DSWAPCHAIN9 d3d_swap_chain; + LPDIRECT3DSURFACE9 d3d_offscreen_surface; + + D3DFORMAT d3dformat; + D3DFORMAT d3dfourcc; + D3DTEXTUREFILTERTYPE d3dfiltertype; +}; + +struct _GstD3DVideoSinkClass +{ + GstVideoSinkClass parent_class; + + gboolean is_directx_supported; + gint directx_version; + DirectXAPI *directx_api; +}; + +GType gst_d3dvideosink_get_type (void); + +G_END_DECLS +#endif /* __D3DVIDEOSINK_H__ */ diff --git a/sys/d3dvideosink/directx/d3d.c b/sys/d3dvideosink/directx/d3d.c new file mode 100644 index 0000000..33589a3 --- /dev/null +++ b/sys/d3dvideosink/directx/d3d.c @@ -0,0 +1,65 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include "directx.h" + +const DirectXD3D * +directx_d3d_create (const DirectXAPI * api) +{ + if (!api) + return NULL; + + return DIRECTX_D3D_CALL_API_FUNCTION (api, create, api); +} + +gboolean +directx_d3d_resize (const DirectXD3D * d3d) +{ + if (!d3d) + return FALSE; + + return DIRECTX_D3D_CALL_FUNCTION (d3d, resize, d3d); +} + +gboolean +directx_d3d_device_lost (const DirectXD3D * d3d) +{ + if (!d3d) + return FALSE; + + return DIRECTX_D3D_CALL_FUNCTION (d3d, device_lost, d3d); +} + +gboolean +directx_d3d_notify_device_reset (const DirectXD3D * d3d) +{ + if (!d3d) + return FALSE; + + return DIRECTX_D3D_CALL_FUNCTION (d3d, notify_device_reset, d3d); +} + +gboolean +directx_d3d_release (const DirectXD3D * d3d) +{ + if (!d3d) + return FALSE; + + return DIRECTX_D3D_CALL_FUNCTION (d3d, release, d3d); +} diff --git a/sys/d3dvideosink/directx/d3d.h b/sys/d3dvideosink/directx/d3d.h new file mode 100644 index 0000000..c58310f --- /dev/null +++ b/sys/d3dvideosink/directx/d3d.h @@ -0,0 +1,99 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_D3D_H__ +#define __DIRECTX_D3D_H__ + +#include + +#include "dx.h" + +G_BEGIN_DECLS + +#define WM_DIRECTX_D3D_INIT_DEVICE WM_DIRECTX + 1 +#define WM_DIRECTX_D3D_INIT_DEVICELOST WM_DIRECTX + 2 +#define WM_DIRECTX_D3D_DEVICELOST WM_DIRECTX + 3 +#define WM_DIRECTX_D3D_END_DEVICELOST WM_DIRECTX + 4 +#define WM_DIRECTX_D3D_RESIZE WM_DIRECTX + 5 + +#define DIRECTX_D3D_API(version, dispatch_table, init_function, create_function, resize_function, device_lost_function, notify_device_reset_function, release_function) \ + static gpointer DIRECTX_API_COMPONENT_D3D_ ## version ## _DISPATCH_TABLE = &dispatch_table; \ + static DirectXAPIComponentD3D DIRECTX_API_COMPONENT_D3D_ ## version ## _INIT = { \ + create_function /*create_function*/ \ + , resize_function /*resize_function*/ \ + , device_lost_function /*device_lost_function*/ \ + , notify_device_reset_function /*notify_device_reset_function*/ \ + , release_function /*release_function*/ \ + , NULL /*private_data*/ \ + }; \ + static void init_directx_api_component_d3d_ ## version ## _(const DirectXAPI* api) { \ + gpointer private_data = &DIRECTX_API_COMPONENT_D3D_ ## version ## _INIT; \ + gpointer vtable = DIRECTX_API_COMPONENT_D3D_ ## version ## _DISPATCH_TABLE; \ + DIRECTX_SET_COMPONENT_INIT(DIRECTX_D3D(api), init_function); \ + DIRECTX_SET_COMPONENT_DATA(DIRECTX_D3D(api), private_data); \ + DIRECTX_SET_COMPONENT_DISPATCH_TABLE(DIRECTX_D3D(api), vtable); \ + } + +#define INITIALIZE_DIRECTX_D3D_API(version, api) \ + init_directx_api_component_d3d_ ## version ## _(api); + +#define DIRECTX_D3D_FUNCTIONS(d3d) ((DirectXAPIComponentD3D*)d3d->d3d_component) +#define DIRECTX_D3D_API_FUNCTIONS(api) ((DirectXAPIComponentD3D*)DIRECTX_D3D_COMPONENT_DATA(api)) +#define DIRECTX_D3D_CALL_FUNCTION(d3d, func_name, ...) (DIRECTX_D3D_FUNCTIONS(d3d)->func_name(__VA_ARGS__)) +#define DIRECTX_D3D_CALL_API_FUNCTION(api, func_name, ...) (DIRECTX_D3D_API_FUNCTIONS(api)->func_name(__VA_ARGS__)) + +typedef struct _DirectXD3D DirectXD3D; +typedef struct _DirectXAPIComponentD3D DirectXAPIComponentD3D; + +/* Function pointers */ +typedef DirectXD3D* (*DirectXD3DCreateFunction) (const DirectXAPI* api); +typedef gboolean (*DirectXD3DResizeFunction) (const DirectXD3D* d3d); +typedef gboolean (*DirectXD3DDeviceLostFunction) (const DirectXD3D* d3d); +typedef gboolean (*DirectXD3DNotifyDeviceResetFunction) (const DirectXD3D* d3d); +typedef gboolean (*DirectXD3DReleaseFunction) (const DirectXD3D* d3d); + +struct _DirectXAPIComponentD3D +{ + DirectXD3DCreateFunction create; + DirectXD3DResizeFunction resize; + DirectXD3DDeviceLostFunction device_lost; + DirectXD3DNotifyDeviceResetFunction notify_device_reset; + DirectXD3DReleaseFunction release; + + gpointer private_data; +}; + +struct _DirectXD3D +{ + DirectXAPI* api; + DirectXAPIComponent* api_component; + DirectXAPIComponentD3D* d3d_component; + + gpointer private_data; +}; + +const DirectXD3D* directx_d3d_create(const DirectXAPI* api); +gboolean directx_d3d_resize(const DirectXD3D* d3d); +gboolean directx_d3d_device_lost(const DirectXD3D* d3d); +gboolean directx_d3d_notify_device_reset(const DirectXD3D* d3d); +gboolean directx_d3d_release(const DirectXD3D* d3d); + +G_END_DECLS + +#endif /* __DIRECTX_D3D_H__ */ diff --git a/sys/d3dvideosink/directx/directx.h b/sys/d3dvideosink/directx/directx.h new file mode 100644 index 0000000..40c33dd --- /dev/null +++ b/sys/d3dvideosink/directx/directx.h @@ -0,0 +1,33 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX_H__ +#define __DIRECTX_DIRECTX_H__ + +#include "dx.h" +#include "d3d.h" + +/* TODO: Remove these headers -- they should not be publically distributed. */ +/* They're included for now only for expediancy in getting d3dvideosink */ +/* out the door. */ +#include "directx9/dx9.h" +#include "directx10/dx10.h" +#include "directx11/dx11.h" + +#endif /* __DIRECTX_DIRECTX_H__ */ diff --git a/sys/d3dvideosink/directx/directx10/dx10.c b/sys/d3dvideosink/directx/directx10/dx10.c new file mode 100644 index 0000000..f902db4 --- /dev/null +++ b/sys/d3dvideosink/directx/directx10/dx10.c @@ -0,0 +1,27 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include "dx10.h" + +void +dx10_init (const DirectXAPI * api) +{ + DIRECTX_DEBUG ("Initializing DirectX10 API"); + INITIALIZE_DIRECTX_D3D_API (DIRECTX_10, api); +} diff --git a/sys/d3dvideosink/directx/directx10/dx10.h b/sys/d3dvideosink/directx/directx10/dx10.h new file mode 100644 index 0000000..a0965eb --- /dev/null +++ b/sys/d3dvideosink/directx/directx10/dx10.h @@ -0,0 +1,39 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX10_DX10_H__ +#define __DIRECTX_DIRECTX10_DX10_H__ + +#include "../dx.h" + +#include "dx10_d3d.h" + +/* Function declarations */ +void dx10_init(const DirectXAPI* api); + +DIRECTX_API( + DIRECTX_10, + dx10_init, + "d3d10", + "D3D10CreateDevice", + "DirectX10Description", + "DirectX 10.0" +) + +#endif /* __DIRECTX_DIRECTX10_DX10_H__ */ diff --git a/sys/d3dvideosink/directx/directx10/dx10_d3d.c b/sys/d3dvideosink/directx/directx10/dx10_d3d.c new file mode 100644 index 0000000..04a0c33 --- /dev/null +++ b/sys/d3dvideosink/directx/directx10/dx10_d3d.c @@ -0,0 +1,77 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#define CINTERFACE +#define D3D10_IGNORE_SDK_LAYERS + +#include +#include + +#include "dx10_d3d.h" + +void +dx10_d3d_init (DirectXAPIComponent * component, gpointer data) +{ + DIRECTX_DEBUG ("Initializing Direct3D"); + DIRECTX_OPEN_COMPONENT_MODULE (component, "d3d10"); + DIRECTX_DEBUG ("Completed Initializing Direct3D"); + + DIRECTX_DEBUG ("Setting Direct3D dispatch table"); + DIRECTX_OPEN_COMPONENT_SYMBOL (component, D3D10DispatchTable, + D3D10CreateDevice); + + //{ + // ID3D10Device* pDevice = NULL; + // DIRECTX_DEBUG("Calling D3D10CreateDevice"); + // DX10_D3D_COMPONENT_CALL_FUNC(component, D3D10CreateDevice, NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0, D3D10_SDK_VERSION, &pDevice); + // DIRECTX_DEBUG("Releasing D3D10 device"); + // ID3D10Device_Release(pDevice); + // DIRECTX_DEBUG("Released D3D10 device"); + //} +} + +DirectXD3D * +dx10_d3d_create (const DirectXAPI * api) +{ + return NULL; +} + +gboolean +dx10_d3d_resize (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx10_d3d_device_lost (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx10_d3d_notify_device_reset (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx10_d3d_release (const DirectXD3D * d3d) +{ + return TRUE; +} diff --git a/sys/d3dvideosink/directx/directx10/dx10_d3d.h b/sys/d3dvideosink/directx/directx10/dx10_d3d.h new file mode 100644 index 0000000..a91c4f6 --- /dev/null +++ b/sys/d3dvideosink/directx/directx10/dx10_d3d.h @@ -0,0 +1,72 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX10_DX10_D3D_H__ +#define __DIRECTX_DIRECTX10_DX10_D3D_H__ + +#include + +#include "../d3d.h" + +#define DX10_D3D_API_CALL_FUNC(api, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(DIRECTX_D3D(api), D3D10DispatchTable, func_name, __VA_ARGS__)) +#define DX10_D3D_COMPONENT_CALL_FUNC(component, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(component, D3D10DispatchTable, func_name, __VA_ARGS__)) + +/* Structs */ +typedef struct _D3D10 D3D10; +typedef struct _D3D10DispatchTable D3D10DispatchTable; + +/* Functions */ +/* Courtesy http://code.google.com/p/theaimworldeditor/source/browse/trunk/DXUT/Core/DXUTmisc.cpp */ +typedef HRESULT (WINAPI *LPD3D10CREATEDEVICE)(gpointer /* IDXGIAdapter* */, UINT /* D3D10_DRIVER_TYPE */, HMODULE, UINT, UINT32, gpointer* /* ID3D10Device** */ ); + +struct _D3D10DispatchTable +{ + LPD3D10CREATEDEVICE D3D10CreateDevice; +}; + +/* Global data */ +struct _D3D10 +{ + D3D10DispatchTable vtable; +}; + +/* Global vars */ +static D3D10 dx10_d3d; + +/* Function declarations */ + +void dx10_d3d_init(DirectXAPIComponent* component, gpointer data); +DirectXD3D* dx10_d3d_create(const DirectXAPI* api); +gboolean dx10_d3d_resize(const DirectXD3D* d3d); +gboolean dx10_d3d_device_lost(const DirectXD3D* d3d); +gboolean dx10_d3d_notify_device_reset(const DirectXD3D* d3d); +gboolean dx10_d3d_release(const DirectXD3D* d3d); + +DIRECTX_D3D_API( + DIRECTX_10, + dx10_d3d.vtable, + dx10_d3d_init, + dx10_d3d_create, + dx10_d3d_resize, + dx10_d3d_device_lost, + dx10_d3d_notify_device_reset, + dx10_d3d_release +) + +#endif /* __DIRECTX_DIRECTX10_DX10_D3D_H__ */ diff --git a/sys/d3dvideosink/directx/directx11/dx11.c b/sys/d3dvideosink/directx/directx11/dx11.c new file mode 100644 index 0000000..2cfe187 --- /dev/null +++ b/sys/d3dvideosink/directx/directx11/dx11.c @@ -0,0 +1,27 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include "dx11.h" + +void +dx11_init (const DirectXAPI * api) +{ + DIRECTX_DEBUG ("Initializing DirectX11 API"); + INITIALIZE_DIRECTX_D3D_API (DIRECTX_11, api); +} diff --git a/sys/d3dvideosink/directx/directx11/dx11.h b/sys/d3dvideosink/directx/directx11/dx11.h new file mode 100644 index 0000000..3df04a1 --- /dev/null +++ b/sys/d3dvideosink/directx/directx11/dx11.h @@ -0,0 +1,39 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX11_DX11_H__ +#define __DIRECTX_DIRECTX11_DX11_H__ + +#include "../dx.h" + +#include "dx11_d3d.h" + +/* Function declarations */ +void dx11_init(const DirectXAPI* api); + +DIRECTX_API( + DIRECTX_11, + dx11_init, + "d3d11", + "D3D11CreateDevice", + "DirectX11Description", + "DirectX 11.0" +) + +#endif /* __DIRECTX_DIRECTX10_DX10_H__ */ diff --git a/sys/d3dvideosink/directx/directx11/dx11_d3d.c b/sys/d3dvideosink/directx/directx11/dx11_d3d.c new file mode 100644 index 0000000..2b62b9c --- /dev/null +++ b/sys/d3dvideosink/directx/directx11/dx11_d3d.c @@ -0,0 +1,75 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#define CINTERFACE + +#include +//#include + +#include "dx11_d3d.h" + +void +dx11_d3d_init (DirectXAPIComponent * component, gpointer data) +{ + DIRECTX_DEBUG ("Initializing Direct3D"); + DIRECTX_OPEN_COMPONENT_MODULE (component, "d3d11"); + DIRECTX_DEBUG ("Completed Initializing Direct3D"); + + DIRECTX_DEBUG ("Setting Direct3D dispatch table"); + //DIRECTX_OPEN_COMPONENT_SYMBOL(component, D3D11DispatchTable, D3D11CreateDevice); + + //{ + // ID3D11Device* pDevice = NULL; + // DIRECTX_DEBUG("Calling D3D11CreateDevice"); + // DX11_D3D_COMPONENT_CALL_FUNC(component, D3D11CreateDevice, NULL, D3D11_DRIVER_TYPE_HARDWARE, NULL, 0, D3D11_SDK_VERSION, &pDevice); + // DIRECTX_DEBUG("Releasing D3D11 device"); + // ID3D11Device_Release(pDevice); + // DIRECTX_DEBUG("Released D3D11 device"); + //} +} + +DirectXD3D * +dx11_d3d_create (const DirectXAPI * api) +{ + return NULL; +} + +gboolean +dx11_d3d_resize (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx11_d3d_device_lost (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx11_d3d_notify_device_reset (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx11_d3d_release (const DirectXD3D * d3d) +{ + return TRUE; +} diff --git a/sys/d3dvideosink/directx/directx11/dx11_d3d.h b/sys/d3dvideosink/directx/directx11/dx11_d3d.h new file mode 100644 index 0000000..6eb158b --- /dev/null +++ b/sys/d3dvideosink/directx/directx11/dx11_d3d.h @@ -0,0 +1,72 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX11_DX11_D3D_H__ +#define __DIRECTX_DIRECTX11_DX11_D3D_H__ + +#include + +#include "../d3d.h" + +#define DX11_D3D_API_CALL_FUNC(api, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(DIRECTX_D3D(api), D3D11DispatchTable, func_name, __VA_ARGS__)) +#define DX11_D3D_COMPONENT_CALL_FUNC(component, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(component, D3D11DispatchTable, func_name, __VA_ARGS__)) + +/* Structs */ +typedef struct _D3D11 D3D11; +typedef struct _D3D11DispatchTable D3D11DispatchTable; + +/* Functions */ +/* Courtesy http://code.google.com/p/theaimworldeditor/source/browse/trunk/DXUT/Core/DXUTmisc.cpp */ +typedef HRESULT (WINAPI *LPD3D11CREATEDEVICE)(gpointer /* IDXGIAdapter* */, UINT /* D3D11_DRIVER_TYPE */, HMODULE, UINT, UINT32, gpointer* /* ID3D11Device** */ ); + +struct _D3D11DispatchTable +{ + LPD3D11CREATEDEVICE D3D11CreateDevice; +}; + +/* Global data */ +struct _D3D11 +{ + D3D11DispatchTable vtable; +}; + +/* Global vars */ +static D3D11 dx11_d3d; + +/* Function declarations */ + +void dx11_d3d_init(DirectXAPIComponent* component, gpointer data); +DirectXD3D* dx11_d3d_create(const DirectXAPI* api); +gboolean dx11_d3d_resize(const DirectXD3D* d3d); +gboolean dx11_d3d_device_lost(const DirectXD3D* d3d); +gboolean dx11_d3d_notify_device_reset(const DirectXD3D* d3d); +gboolean dx11_d3d_release(const DirectXD3D* d3d); + +DIRECTX_D3D_API( + DIRECTX_11, + dx11_d3d.vtable, + dx11_d3d_init, + dx11_d3d_create, + dx11_d3d_resize, + dx11_d3d_device_lost, + dx11_d3d_notify_device_reset, + dx11_d3d_release +) + +#endif /* __DIRECTX_DIRECTX11_DX11_D3D_H__ */ diff --git a/sys/d3dvideosink/directx/directx9/dx9.c b/sys/d3dvideosink/directx/directx9/dx9.c new file mode 100644 index 0000000..6d39afa --- /dev/null +++ b/sys/d3dvideosink/directx/directx9/dx9.c @@ -0,0 +1,27 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include "dx9.h" + +void +dx9_init (const DirectXAPI * api) +{ + DIRECTX_DEBUG ("Initializing DirectX9 API"); + INITIALIZE_DIRECTX_D3D_API (DIRECTX_9, api); +} diff --git a/sys/d3dvideosink/directx/directx9/dx9.h b/sys/d3dvideosink/directx/directx9/dx9.h new file mode 100644 index 0000000..6fb6402 --- /dev/null +++ b/sys/d3dvideosink/directx/directx9/dx9.h @@ -0,0 +1,38 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX9_DX10_H__ +#define __DIRECTX_DIRECTX9_DX10_H__ + +#include "../dx.h" + +#include "dx9_d3d.h" + +void dx9_init(const DirectXAPI* api); + +DIRECTX_API( + DIRECTX_9, + dx9_init, + "d3d9", + "Direct3DCreate9", + "DirectX9Description", + "DirectX 9.0" +) + +#endif /* __DIRECTX_DIRECTX9_DX10_H__ */ diff --git a/sys/d3dvideosink/directx/directx9/dx9_d3d.c b/sys/d3dvideosink/directx/directx9/dx9_d3d.c new file mode 100644 index 0000000..5b50aba --- /dev/null +++ b/sys/d3dvideosink/directx/directx9/dx9_d3d.c @@ -0,0 +1,73 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include +#include + +#include "dx9_d3d.h" + +void +dx9_d3d_init (DirectXAPIComponent * component, gpointer data) +{ + DIRECTX_DEBUG ("Initializing Direct3D"); + DIRECTX_OPEN_COMPONENT_MODULE (component, "d3d9"); + + DIRECTX_DEBUG ("Setting Direct3D dispatch table"); + DIRECTX_OPEN_COMPONENT_SYMBOL (component, D3D9DispatchTable, Direct3DCreate9); + + //{ + // IDirect3D9* blah; + // DIRECTX_DEBUG("CALLING CREATE9!"); + // //blah = DX9_CALL_FUNC(data, Direct3DCreate9, D3D_SDK_VERSION); + // blah = DX9_D3D_COMPONENT_CALL_FUNC(component, Direct3DCreate9, D3D_SDK_VERSION); + // DIRECTX_DEBUG("RELEASING CREATE9!"); + // IDirect3D9_Release(blah); + // DIRECTX_DEBUG("RELEASED CREATE9!"); + //} +} + +DirectXD3D * +dx9_d3d_create (const DirectXAPI * api) +{ + return NULL; +} + +gboolean +dx9_d3d_resize (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx9_d3d_device_lost (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx9_d3d_notify_device_reset (const DirectXD3D * d3d) +{ + return TRUE; +} + +gboolean +dx9_d3d_release (const DirectXD3D * d3d) +{ + return TRUE; +} diff --git a/sys/d3dvideosink/directx/directx9/dx9_d3d.h b/sys/d3dvideosink/directx/directx9/dx9_d3d.h new file mode 100644 index 0000000..28e27fe --- /dev/null +++ b/sys/d3dvideosink/directx/directx9/dx9_d3d.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DIRECTX9_DX9_D3D_H__ +#define __DIRECTX_DIRECTX9_DX9_D3D_H__ + +#include + +#include "../d3d.h" + +#define DX9_D3D_API_CALL_FUNC(api, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(DIRECTX_D3D(api), D3D9DispatchTable, func_name, __VA_ARGS__)) +#define DX9_D3D_COMPONENT_CALL_FUNC(component, func_name, ...) (DIRECTX_CALL_COMPONENT_SYMBOL(component, D3D9DispatchTable, func_name, __VA_ARGS__)) + +/* Structs */ +typedef struct _D3D9 D3D9; +typedef struct _D3D9DispatchTable D3D9DispatchTable; + +/* Functions */ +typedef gpointer /* IDirect3D9* */ (WINAPI *LPDIRECT3DCREATE9) (UINT); + +struct _D3D9DispatchTable +{ + LPDIRECT3DCREATE9 Direct3DCreate9; +}; + +/* Global data */ +struct _D3D9 +{ + D3D9DispatchTable vtable; +}; + +/* Global vars */ +static D3D9 dx9_d3d; + +/* Function declarations */ + +void dx9_d3d_init(DirectXAPIComponent* component, gpointer data); +DirectXD3D* dx9_d3d_create(const DirectXAPI* api); +gboolean dx9_d3d_resize(const DirectXD3D* d3d); +gboolean dx9_d3d_device_lost(const DirectXD3D* d3d); +gboolean dx9_d3d_notify_device_reset(const DirectXD3D* d3d); +gboolean dx9_d3d_release(const DirectXD3D* d3d); + +DIRECTX_D3D_API( + DIRECTX_9, + dx9_d3d.vtable, + dx9_d3d_init, + dx9_d3d_create, + dx9_d3d_resize, + dx9_d3d_device_lost, + dx9_d3d_notify_device_reset, + dx9_d3d_release +) + +#endif /* __DIRECTX_DIRECTX9_DX9_D3D_H__ */ diff --git a/sys/d3dvideosink/directx/dx.c b/sys/d3dvideosink/directx/dx.c new file mode 100644 index 0000000..b52e51f --- /dev/null +++ b/sys/d3dvideosink/directx/dx.c @@ -0,0 +1,282 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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. + */ + +#include +#include +#include + +#include "dx.h" +#include "directx9/dx9.h" +#include "directx10/dx10.h" +#include "directx11/dx11.h" + + + +static void +init_supported_apis (void) +{ + /* Gather information we'll need about each version of DirectX. */ + /* Insert in reverse order of desired priority due to the g_list_prepend() call in directx_determine_best_available_api(). */ + INITIALIZE_SUPPORTED_DIRECTX_API (DIRECTX_9); + /* TODO: Add DirectX 10 support. */ + /*INITIALIZE_SUPPORTED_DIRECTX_API(DIRECTX_10); */ + /* TODO: Add DirectX 11 support. */ + /*INITIALIZE_SUPPORTED_DIRECTX_API(DIRECTX_11); */ +} + + + +/* Function declarations */ +static DirectXAPI *directx_determine_best_available_api (void); + +/* Mutex macros */ +#define DIRECTX_LOCK g_static_rec_mutex_lock (&dx_lock); +#define DIRECTX_UNLOCK g_static_rec_mutex_unlock (&dx_lock); + +typedef struct _DirectXInfo DirectXInfo; +struct _DirectXInfo +{ + gboolean initialized; + gboolean supported; + + DirectXInitParams *init_params; + DirectXAPI *best_api; + GList *supported_api_list; + gint32 supported_api_count; +}; + +/* Private vars */ +static DirectXInfo dx; +static GStaticRecMutex dx_lock = G_STATIC_REC_MUTEX_INIT; + +gboolean +directx_initialize (DirectXInitParams * init_params) +{ + DIRECTX_LOCK if (dx.initialized) + goto success; + + dx.init_params = NULL; + dx.init_params = init_params; + + init_supported_apis (); + + dx.best_api = directx_determine_best_available_api (); + dx.supported = (dx.best_api != NULL + && !DIRECTX_VERSION_IS_UNKNOWN (dx.best_api->version)); + dx.initialized = TRUE; + +success: + DIRECTX_UNLOCK return TRUE; +} + +gboolean +directx_api_initialize (DirectXAPI * api) +{ + if (!api) + return FALSE; + + DIRECTX_LOCK if (!directx_is_initialized ()) + goto error; + + if (api->initialized) + goto success; + + /* API init */ + api->initialize (api); + + /* Component initialization */ + DIRECTX_COMPONENT_INIT (DIRECTX_D3D (api)); + DIRECTX_COMPONENT_INIT (DIRECTX_DINPUT (api)); + DIRECTX_COMPONENT_INIT (DIRECTX_DSOUND (api)); + DIRECTX_COMPONENT_INIT (DIRECTX_DWRITE (api)); + DIRECTX_COMPONENT_INIT (DIRECTX_D2D (api)); + DIRECTX_COMPONENT_INIT (DIRECTX_DCOMPUTE (api)); + + /* All done */ + api->initialized = TRUE; + +success: + DIRECTX_UNLOCK return TRUE; +error: + DIRECTX_UNLOCK return FALSE; +} + +gboolean +directx_initialize_best_available_api (void) +{ + return directx_api_initialize (directx_get_best_available_api ()); +} + +gboolean +directx_is_initialized (void) +{ + gboolean initialized = FALSE; + + DIRECTX_LOCK initialized = dx.initialized; + DIRECTX_UNLOCK return initialized; +} + +gboolean +directx_api_is_initialized (const DirectXAPI * api) +{ + if (!api) + return FALSE; + { + gboolean initialized; + + DIRECTX_LOCK initialized = api->initialized; + DIRECTX_UNLOCK return initialized; + } +} + +gboolean +directx_best_available_api_is_initialized (void) +{ + return directx_api_is_initialized (directx_get_best_available_api ()); +} + +gboolean +directx_is_supported (void) +{ + return dx.supported; +} + +GList * +directx_get_supported_apis (void) +{ + return dx.supported_api_list; +} + +gint32 +directx_get_supported_api_count (void) +{ + return dx.supported_api_count; +} + +DirectXAPI * +directx_get_best_available_api (void) +{ + return dx.best_api; +} + +void +directx_log_debug (const gchar * file, const gchar * function, gint line, + const gchar * format, ...) +{ + if (!dx.init_params || !dx.init_params->log_debug) + return; + { + va_list args; + va_start (args, format); + dx.init_params->log_debug (file, function, line, format, args); + va_end (args); + } +} + +void +directx_log_warning (const gchar * file, const gchar * function, gint line, + const gchar * format, ...) +{ + if (!dx.init_params || !dx.init_params->log_warning) + return; + { + va_list args; + va_start (args, format); + dx.init_params->log_warning (file, function, line, format, args); + va_end (args); + } +} + +void +directx_log_error (const gchar * file, const gchar * function, gint line, + const gchar * format, ...) +{ + if (!dx.init_params || !dx.init_params->log_error) + return; + { + va_list args; + va_start (args, format); + dx.init_params->log_error (file, function, line, format, args); + va_end (args); + } +} + +/* This should only be called through use of the DIRECTX_API() macro. It should never be called directly. */ +gboolean +directx_add_supported_api (DirectXAPI * api) +{ + if (!api) + return FALSE; + + DIRECTX_LOCK { + + /* Add to our GList containing all of our supported APIs. */ + /* GLists are doubly-linked lists and calling prepend() prevents it from having to traverse the entire list just to add one item. */ + dx.supported_api_list = g_list_prepend (dx.supported_api_list, api); + dx.supported_api_count++; + + } +/*success:*/ + DIRECTX_UNLOCK return TRUE; +} + +static DirectXAPI * +directx_determine_best_available_api (void) +{ + if (!g_module_supported ()) + return NULL; + + { + GList *item; + GModule *lib; + DirectXAPI *dxlib = NULL; + + DIRECTX_LOCK { + /* Search supported APIs (DirectX9, DirectX10, etc.) looking for the first one that works. */ + DIRECTX_DEBUG + ("Searching supported DirectX APIs for the best (most recent) one available"); + for (item = g_list_first (dx.supported_api_list); item; item = item->next) { + if ((dxlib = (DirectXAPI *) item->data) == NULL) + continue; + + DIRECTX_DEBUG ("Determining support for %s", dxlib->description); + DIRECTX_DEBUG ("Searching for module \"%s\" with the symbol \"%s\"", + dxlib->module_test, dxlib->symbol_test); + + /* Can we locate and open a Direct3D library (e.g. d3d9.dll or d3d10.dll)? */ + if ((lib = + g_module_open (dxlib->module_test, + G_MODULE_BIND_LAZY)) != NULL) { + /* Look for a symbol/function (e.g. "Direct3DCreate9") in the module and if it exists, we found one! */ + gpointer symbol; + if (g_module_symbol (lib, dxlib->symbol_test, &symbol)) { + g_module_close (lib); + DIRECTX_DEBUG ("Selected %s", dxlib->description); + goto done; + } + /* Ensure we don't have a mem leak. */ + g_module_close (lib); + } + } + + } + done: + DIRECTX_UNLOCK return dxlib; + } +} diff --git a/sys/d3dvideosink/directx/dx.h b/sys/d3dvideosink/directx/dx.h new file mode 100644 index 0000000..60dd6d8 --- /dev/null +++ b/sys/d3dvideosink/directx/dx.h @@ -0,0 +1,265 @@ +/* GStreamer + * Copyright (C) 2011 David Hoyt + * + * 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 __DIRECTX_DX_H__ +#define __DIRECTX_DX_H__ + +#include +#include + +G_BEGIN_DECLS + +#define WM_DIRECTX WM_USER + 500 + +#define DIRECTX_VERSION_UNKNOWN 0 + +#define DIRECTX_VERSION_ENCODE_FULL(major, minor, micro) ( \ + ((major) * 10000) \ + + ((minor) * 100) \ + + ((micro) * 1)) + +#define DIRECTX_VERSION_ENCODE(major) \ + DIRECTX_VERSION_ENCODE_FULL(major, 0, 0) + +typedef enum +{ + DIRECTX_UNKNOWN = DIRECTX_VERSION_UNKNOWN, + DIRECTX_9 = DIRECTX_VERSION_ENCODE(9), + DIRECTX_10 = DIRECTX_VERSION_ENCODE(10), + DIRECTX_10_1 = DIRECTX_VERSION_ENCODE_FULL(10, 1, 0), + DIRECTX_11 = DIRECTX_VERSION_ENCODE(11) +} DirectXVersion; + +#define DIRECTX_API(version, initialization_function, module_test, symbol_test, i18n_key, description) \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECT3D_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECTINPUT_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECTSOUND_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECTWRITE_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECT2D_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPIComponent DIRECTX_ ## version ## _DIRECTCOMPUTE_COMPONENT = { \ + NULL /*api*/ \ + , FALSE /*initialized*/ \ + , NULL /*initialize*/ \ + , NULL /*module*/ \ + , NULL /*module_name*/ \ + , NULL /*private_data*/ \ + }; \ + static DirectXAPI DIRECTX_ ## version ## _API = { \ + version \ + , module_test "." G_MODULE_SUFFIX \ + , symbol_test \ + , i18n_key \ + , description \ + , FALSE \ + , initialization_function \ + , &DIRECTX_ ## version ## _DIRECT3D_COMPONENT \ + , &DIRECTX_ ## version ## _DIRECTINPUT_COMPONENT \ + , &DIRECTX_ ## version ## _DIRECTSOUND_COMPONENT \ + , &DIRECTX_ ## version ## _DIRECTWRITE_COMPONENT \ + , &DIRECTX_ ## version ## _DIRECT2D_COMPONENT \ + , &DIRECTX_ ## version ## _DIRECTCOMPUTE_COMPONENT \ + , {NULL, NULL, NULL} /*reserved*/ \ + }; \ + static void init_directx_ ## version ## _supported_api(void) { \ + DirectXAPI* api; \ + api = &DIRECTX_ ## version ## _API; \ + api->d3d->api = api; \ + api->dinput->api = api; \ + api->dsound->api = api; \ + api->dwrite->api = api; \ + api->d2d->api = api; \ + api->dcompute->api = api; \ + directx_add_supported_api(api); \ + } + +#define INITIALIZE_SUPPORTED_DIRECTX_API(version) \ + init_directx_ ## version ## _supported_api(); + +#define DIRECTX_COMPONENT_INIT(component) \ + { \ + if (component != NULL && component->initialize != NULL && !component->initialized) { \ + component->initialize(component, DIRECTX_COMPONENT_DATA(component)); \ + } \ + } + +#define DIRECTX_OPEN_COMPONENT_MODULE(component, component_module_name) \ + { \ + GModule* lib; \ + if (component && component->module == NULL && (lib = g_module_open(component_module_name "." G_MODULE_SUFFIX, G_MODULE_BIND_LAZY)) != NULL) { \ + component->module_name = component_module_name "." G_MODULE_SUFFIX; \ + component->module = lib; \ + } \ + } + +#define DIRECTX_OPEN_COMPONENT_SYMBOL(component, dispatch_table_type, component_symbol_name) \ + { \ + gpointer symbol; \ + if (component && component->module && g_module_symbol(component->module, #component_symbol_name, &symbol)) { \ + ((dispatch_table_type*)component->vtable)->component_symbol_name = symbol; \ + } \ + } + +#define DIRECTX_CALL_COMPONENT_SYMBOL(component, dispatch_table_type, component_symbol_name, ...) \ + (((dispatch_table_type*)component->vtable)->component_symbol_name(__VA_ARGS__)) + + +/* Borrowed from GST_FUNCTION */ +#ifndef DIRECTX_FUNCTION +#if defined (__GNUC__) || (defined (_MSC_VER) && _MSC_VER >= 1300) +# define DIRECTX_FUNCTION ((const char*) (__FUNCTION__)) +#elif defined (__STDC__) && defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +# define DIRECTX_FUNCTION ((const char*) (__func__)) +#else +# define DIRECTX_FUNCTION ((const char*) ("???")) +#endif +#endif + +#define DIRECTX_DEBUG(...) (directx_log_debug(__FILE__, DIRECTX_FUNCTION, __LINE__, __VA_ARGS__)) +#define DIRECTX_WARNING(...) (directx_log_warning(__FILE__, DIRECTX_FUNCTION, __LINE__, __VA_ARGS__)) +#define DIRECTX_ERROR(...) (directx_log_error(__FILE__, DIRECTX_FUNCTION, __LINE__, __VA_ARGS__)) + +#define DIRECTX_COMPONENT_API(component) (component->api) +#define DIRECTX_COMPONENT_DATA(component) (component->private_data) +#define DIRECTX_SET_COMPONENT_DATA(component, data) (component->private_data = data) +#define DIRECTX_SET_COMPONENT_INIT(component, init_function) (component->initialize = init_function) +#define DIRECTX_SET_COMPONENT_DISPATCH_TABLE(component, dispatch_table) (component->vtable = dispatch_table) +#define DIRECTX_VERSION_IS_UNKNOWN(version) (version == DIRECTX_VERSION_UNKNOWN) +#define DIRECTX_SUPPORTED_API_IS_LAST(lib) (lib == NULL || lib->version == DIRECTX_VERSION_UNKNOWN || lib->module_name == NULL) + +typedef struct _DirectXInitParams DirectXInitParams; +typedef struct _DirectXAPI DirectXAPI; +typedef struct _DirectXAPIComponent DirectXAPIComponent; + +/* Function pointers */ +typedef void (*DirectXInitializationFunction) (const DirectXAPI* api); +typedef void (*DirectXLogFunction) (const gchar* file, const gchar* function, gint line, const gchar* format, va_list args); /* vprintf-style logging function */ + +struct _DirectXInitParams +{ + DirectXLogFunction log_debug; + DirectXLogFunction log_warning; + DirectXLogFunction log_error; +}; + +struct _DirectXAPI +{ + gint version; + const gchar* module_test; + const gchar* symbol_test; + const gchar* i18n_key; + const gchar* description; + gboolean initialized; + DirectXInitializationFunction initialize; + DirectXAPIComponent* d3d; + DirectXAPIComponent* dinput; + DirectXAPIComponent* dsound; + DirectXAPIComponent* dwrite; + DirectXAPIComponent* d2d; + DirectXAPIComponent* dcompute; + gpointer reserved[3]; +}; + +#define DIRECTX_D3D(api) (api->d3d) +#define DIRECTX_DINPUT(api) (api->dinput) +#define DIRECTX_DSOUND(api) (api->dsound) +#define DIRECTX_DWRITE(api) (api->dwrite) +#define DIRECTX_D2D(api) (api->d2d) +#define DIRECTX_DCOMPUTE(api) (api->dcompute) + +#define DIRECTX_D3D_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_D3D(api))) +#define DIRECTX_DINPUT_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_DINPUT(api))) +#define DIRECTX_DSOUND_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_DSOUND(api))) +#define DIRECTX_DWRITE_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_DWRITE(api))) +#define DIRECTX_D2D_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_D2D(api))) +#define DIRECTX_DCOMPUTE_COMPONENT_DATA(api) (DIRECTX_COMPONENT_DATA(DIRECTX_DCOMPUTE(api))) + +/* DirectX component function table */ +typedef void (*DirectXComponentInitializeFunction) (DirectXAPIComponent* d3d, gpointer data); +struct _DirectXAPIComponent +{ + DirectXAPI* api; + gboolean initialized; + DirectXComponentInitializeFunction initialize; + + GModule* module; + const gchar* module_name; + + gpointer vtable; + + gpointer private_data; +}; + +gboolean directx_initialize (DirectXInitParams* init_params); +gboolean directx_is_initialized (void); + +gboolean directx_is_supported (void); + +void directx_log_debug(const gchar* file, const gchar* function, gint line, const gchar * format, ...); +void directx_log_warning(const gchar* file, const gchar* function, gint line, const gchar * format, ...); +void directx_log_error(const gchar* file, const gchar* function, gint line, const gchar * format, ...); + +GList* directx_get_supported_apis (void); +gint32 directx_get_supported_api_count (void); +gboolean directx_add_supported_api (DirectXAPI* api); + +DirectXAPI* directx_get_best_available_api (void); +gboolean directx_initialize_best_available_api (void); +gboolean directx_best_available_api_is_initialized (void); + +gboolean directx_api_initialize (DirectXAPI* api); +gboolean directx_api_is_initialized (const DirectXAPI* api); + +G_END_DECLS + +#endif /* __DIRECTX_DX_H__ */ diff --git a/sys/decklink/DeckLinkAPIDispatch.cpp b/sys/decklink/DeckLinkAPIDispatch.cpp deleted file mode 100644 index 7260778..0000000 --- a/sys/decklink/DeckLinkAPIDispatch.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -**/ - -#include -#include -#include - -#include "DeckLinkAPI.h" - -#define kDeckLinkAPI_Name "libDeckLinkAPI.so" -#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" - -typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; - -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; - -static -void InitDeckLinkAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0001"); - if (!gCreateIteratorFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); - if (!gCreateVideoConversionFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -static -void InitDeckLinkPreviewAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); - if (!gCreateOpenGLPreviewFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - return gCreateIteratorFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - return gCreateVideoConversionFunc(); -} - diff --git a/sys/decklink/Makefile.am b/sys/decklink/Makefile.am index ffa4ac2..63fe397 100644 --- a/sys/decklink/Makefile.am +++ b/sys/decklink/Makefile.am @@ -1,10 +1,13 @@ plugin_LTLIBRARIES = libgstdecklink.la libgstdecklink_la_CPPFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ $(GST_CXXFLAGS) \ $(DECKLINK_CXXFLAGS) libgstdecklink_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(DECKLINK_LIBS) \ @@ -17,12 +20,18 @@ libgstdecklink_la_SOURCES = \ gstdecklinksink.cpp \ gstdecklink.cpp \ capture.cpp \ - DeckLinkAPIDispatch.cpp + linux/DeckLinkAPIDispatch.cpp noinst_HEADERS = \ + gstdecklink.h \ gstdecklinksrc.h \ gstdecklinksink.h \ capture.h \ - DeckLinkAPI.h \ - LinuxCOM.h + linux/DeckLinkAPI.h \ + linux/LinuxCOM.h + +EXTRA_DIST = \ + win/DeckLinkAPI.h \ + win/DeckLinkAPIDispatch.cpp \ + win/DeckLinkAPI_i.c diff --git a/sys/decklink/Makefile.in b/sys/decklink/Makefile.in index 31d37dc..e2760c4 100644 --- a/sys/decklink/Makefile.in +++ b/sys/decklink/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,19 +101,25 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstdecklink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstdecklink_la_OBJECTS = libgstdecklink_la-gstdecklinksrc.lo \ libgstdecklink_la-gstdecklinksink.lo \ libgstdecklink_la-gstdecklink.lo libgstdecklink_la-capture.lo \ libgstdecklink_la-DeckLinkAPIDispatch.lo libgstdecklink_la_OBJECTS = $(am_libgstdecklink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdecklink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +135,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdecklink_la_SOURCES) DIST_SOURCES = $(libgstdecklink_la_SOURCES) @@ -154,7 +161,6 @@ 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@ @@ -172,7 +178,6 @@ 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@ @@ -207,6 +212,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +270,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +279,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +313,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +368,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +400,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +429,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +455,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +474,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +502,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +538,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -533,11 +560,14 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstdecklink.la libgstdecklink_la_CPPFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ $(GST_CXXFLAGS) \ $(DECKLINK_CXXFLAGS) libgstdecklink_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(DECKLINK_LIBS) \ @@ -550,14 +580,20 @@ libgstdecklink_la_SOURCES = \ gstdecklinksink.cpp \ gstdecklink.cpp \ capture.cpp \ - DeckLinkAPIDispatch.cpp + linux/DeckLinkAPIDispatch.cpp noinst_HEADERS = \ + gstdecklink.h \ gstdecklinksrc.h \ gstdecklinksink.h \ capture.h \ - DeckLinkAPI.h \ - LinuxCOM.h + linux/DeckLinkAPI.h \ + linux/LinuxCOM.h + +EXTRA_DIST = \ + win/DeckLinkAPI.h \ + win/DeckLinkAPIDispatch.cpp \ + win/DeckLinkAPI_i.c all: all-am @@ -624,7 +660,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdecklink.la: $(libgstdecklink_la_OBJECTS) $(libgstdecklink_la_DEPENDENCIES) +libgstdecklink.la: $(libgstdecklink_la_OBJECTS) $(libgstdecklink_la_DEPENDENCIES) $(EXTRA_libgstdecklink_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstdecklink_la_LINK) -rpath $(plugindir) $(libgstdecklink_la_OBJECTS) $(libgstdecklink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -642,66 +678,58 @@ distclean-compile: .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libgstdecklink_la-gstdecklinksrc.lo: gstdecklinksrc.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-gstdecklinksrc.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-gstdecklinksrc.Tpo -c -o libgstdecklink_la-gstdecklinksrc.lo `test -f 'gstdecklinksrc.cpp' || echo '$(srcdir)/'`gstdecklinksrc.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecklink_la-gstdecklinksrc.Tpo $(DEPDIR)/libgstdecklink_la-gstdecklinksrc.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdecklinksrc.cpp' object='libgstdecklink_la-gstdecklinksrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdecklinksrc.cpp' object='libgstdecklink_la-gstdecklinksrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklinksrc.lo `test -f 'gstdecklinksrc.cpp' || echo '$(srcdir)/'`gstdecklinksrc.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklinksrc.lo `test -f 'gstdecklinksrc.cpp' || echo '$(srcdir)/'`gstdecklinksrc.cpp libgstdecklink_la-gstdecklinksink.lo: gstdecklinksink.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-gstdecklinksink.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-gstdecklinksink.Tpo -c -o libgstdecklink_la-gstdecklinksink.lo `test -f 'gstdecklinksink.cpp' || echo '$(srcdir)/'`gstdecklinksink.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecklink_la-gstdecklinksink.Tpo $(DEPDIR)/libgstdecklink_la-gstdecklinksink.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdecklinksink.cpp' object='libgstdecklink_la-gstdecklinksink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdecklinksink.cpp' object='libgstdecklink_la-gstdecklinksink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklinksink.lo `test -f 'gstdecklinksink.cpp' || echo '$(srcdir)/'`gstdecklinksink.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklinksink.lo `test -f 'gstdecklinksink.cpp' || echo '$(srcdir)/'`gstdecklinksink.cpp libgstdecklink_la-gstdecklink.lo: gstdecklink.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-gstdecklink.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-gstdecklink.Tpo -c -o libgstdecklink_la-gstdecklink.lo `test -f 'gstdecklink.cpp' || echo '$(srcdir)/'`gstdecklink.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecklink_la-gstdecklink.Tpo $(DEPDIR)/libgstdecklink_la-gstdecklink.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdecklink.cpp' object='libgstdecklink_la-gstdecklink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdecklink.cpp' object='libgstdecklink_la-gstdecklink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklink.lo `test -f 'gstdecklink.cpp' || echo '$(srcdir)/'`gstdecklink.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-gstdecklink.lo `test -f 'gstdecklink.cpp' || echo '$(srcdir)/'`gstdecklink.cpp libgstdecklink_la-capture.lo: capture.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-capture.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-capture.Tpo -c -o libgstdecklink_la-capture.lo `test -f 'capture.cpp' || echo '$(srcdir)/'`capture.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecklink_la-capture.Tpo $(DEPDIR)/libgstdecklink_la-capture.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='capture.cpp' object='libgstdecklink_la-capture.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='capture.cpp' object='libgstdecklink_la-capture.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-capture.lo `test -f 'capture.cpp' || echo '$(srcdir)/'`capture.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-capture.lo `test -f 'capture.cpp' || echo '$(srcdir)/'`capture.cpp -libgstdecklink_la-DeckLinkAPIDispatch.lo: DeckLinkAPIDispatch.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-DeckLinkAPIDispatch.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-DeckLinkAPIDispatch.Tpo -c -o libgstdecklink_la-DeckLinkAPIDispatch.lo `test -f 'DeckLinkAPIDispatch.cpp' || echo '$(srcdir)/'`DeckLinkAPIDispatch.cpp +libgstdecklink_la-DeckLinkAPIDispatch.lo: linux/DeckLinkAPIDispatch.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdecklink_la-DeckLinkAPIDispatch.lo -MD -MP -MF $(DEPDIR)/libgstdecklink_la-DeckLinkAPIDispatch.Tpo -c -o libgstdecklink_la-DeckLinkAPIDispatch.lo `test -f 'linux/DeckLinkAPIDispatch.cpp' || echo '$(srcdir)/'`linux/DeckLinkAPIDispatch.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecklink_la-DeckLinkAPIDispatch.Tpo $(DEPDIR)/libgstdecklink_la-DeckLinkAPIDispatch.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DeckLinkAPIDispatch.cpp' object='libgstdecklink_la-DeckLinkAPIDispatch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='linux/DeckLinkAPIDispatch.cpp' object='libgstdecklink_la-DeckLinkAPIDispatch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-DeckLinkAPIDispatch.lo `test -f 'DeckLinkAPIDispatch.cpp' || echo '$(srcdir)/'`DeckLinkAPIDispatch.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdecklink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstdecklink_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdecklink_la-DeckLinkAPIDispatch.lo `test -f 'linux/DeckLinkAPIDispatch.cpp' || echo '$(srcdir)/'`linux/DeckLinkAPIDispatch.cpp mostlyclean-libtool: -rm -f *.lo @@ -808,10 +836,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/decklink/capture.cpp b/sys/decklink/capture.cpp index 20bd660..bc3d9e0 100644 --- a/sys/decklink/capture.cpp +++ b/sys/decklink/capture.cpp @@ -28,41 +28,37 @@ #include #include #include -#include #include #include #include "gstdecklinksrc.h" -#include "DeckLinkAPI.h" #include "capture.h" - -int videoOutputFile = -1; -int audioOutputFile = -1; +#define GST_CAT_DEFAULT gst_decklink_src_debug_category IDeckLink *deckLink; IDeckLinkInput *deckLinkInput; IDeckLinkDisplayModeIterator *displayModeIterator; -static BMDTimecodeFormat g_timecodeFormat = 0; +static BMDTimecodeFormat g_timecodeFormat = (BMDTimecodeFormat)0; DeckLinkCaptureDelegate::DeckLinkCaptureDelegate ():m_refCount (0) { - pthread_mutex_init (&m_mutex, NULL); + m_mutex = g_mutex_new(); } DeckLinkCaptureDelegate::~DeckLinkCaptureDelegate () { - pthread_mutex_destroy (&m_mutex); + g_mutex_free (m_mutex); } ULONG DeckLinkCaptureDelegate::AddRef (void) { - pthread_mutex_lock (&m_mutex); + g_mutex_lock (m_mutex); m_refCount++; - pthread_mutex_unlock (&m_mutex); + g_mutex_unlock (m_mutex); return (ULONG) m_refCount; } @@ -70,9 +66,9 @@ DeckLinkCaptureDelegate::AddRef (void) ULONG DeckLinkCaptureDelegate::Release (void) { - pthread_mutex_lock (&m_mutex); + g_mutex_lock (m_mutex); m_refCount--; - pthread_mutex_unlock (&m_mutex); + g_mutex_unlock (m_mutex); if (m_refCount == 0) { delete this; @@ -83,43 +79,52 @@ DeckLinkCaptureDelegate::Release (void) } HRESULT -DeckLinkCaptureDelegate::VideoInputFrameArrived (IDeckLinkVideoInputFrame * + DeckLinkCaptureDelegate::VideoInputFrameArrived (IDeckLinkVideoInputFrame * videoFrame, IDeckLinkAudioInputPacket * audioFrame) { - GstDecklinkSrc *decklinksrc = GST_DECKLINK_SRC (priv); + GstDecklinkSrc *decklinksrc; + + g_return_val_if_fail (priv != NULL, S_OK); + g_return_val_if_fail (GST_IS_DECKLINK_SRC (priv), S_OK); + + decklinksrc = GST_DECKLINK_SRC (priv); // Handle Video Frame if (videoFrame) { if (videoFrame->GetFlags () & bmdFrameHasNoInputSource) { - GST_DEBUG("Frame received - No input signal detected"); + GST_DEBUG ("Frame received - No input signal detected"); } else { const char *timecodeString = NULL; if (g_timecodeFormat != 0) { IDeckLinkTimecode *timecode; if (videoFrame->GetTimecode (g_timecodeFormat, &timecode) == S_OK) { timecode->GetString (&timecodeString); + CONVERT_COM_STRING (timecodeString); } } - GST_DEBUG("Frame received [%s] - %s - Size: %li bytes", + GST_DEBUG ("Frame received [%s] - %s - Size: %li bytes", timecodeString != NULL ? timecodeString : "No timecode", - "Valid Frame", - videoFrame->GetRowBytes () * videoFrame->GetHeight ()); + "Valid Frame", videoFrame->GetRowBytes () * videoFrame->GetHeight ()); if (timecodeString) - free ((void *) timecodeString); + FREE_COM_STRING (timecodeString); g_mutex_lock (decklinksrc->mutex); if (decklinksrc->video_frame != NULL) { decklinksrc->dropped_frames++; } else { - videoFrame->AddRef(); + videoFrame->AddRef (); decklinksrc->video_frame = videoFrame; if (audioFrame) { - audioFrame->AddRef(); + audioFrame->AddRef (); decklinksrc->audio_frame = audioFrame; } } + + /* increment regardless whether frame was dropped or not */ + decklinksrc->frame_num++; + g_cond_signal (decklinksrc->cond); g_mutex_unlock (decklinksrc->mutex); } @@ -128,303 +133,9 @@ DeckLinkCaptureDelegate::VideoInputFrameArrived (IDeckLinkVideoInputFrame * } HRESULT -DeckLinkCaptureDelegate:: -VideoInputFormatChanged (BMDVideoInputFormatChangedEvents events, - IDeckLinkDisplayMode * mode, BMDDetectedVideoInputFormatFlags) -{ - GST_ERROR("moo"); + DeckLinkCaptureDelegate::VideoInputFormatChanged + (BMDVideoInputFormatChangedEvents events, IDeckLinkDisplayMode * mode, + BMDDetectedVideoInputFormatFlags) { + GST_ERROR ("moo"); return S_OK; } - -#ifdef unused -int -usage (int status) -{ - HRESULT result; - IDeckLinkDisplayMode *displayMode; - int displayModeCount = 0; - - fprintf (stderr, - "Usage: Capture -m [OPTIONS]\n" "\n" " -m :\n"); - - while (displayModeIterator->Next (&displayMode) == S_OK) { - char *displayModeString = NULL; - - result = displayMode->GetName ((const char **) &displayModeString); - if (result == S_OK) { - BMDTimeValue frameRateDuration, frameRateScale; - displayMode->GetFrameRate (&frameRateDuration, &frameRateScale); - - fprintf (stderr, " %2d: %-20s \t %li x %li \t %g FPS\n", - displayModeCount, displayModeString, displayMode->GetWidth (), - displayMode->GetHeight (), - (double) frameRateScale / (double) frameRateDuration); - - free (displayModeString); - displayModeCount++; - } - // Release the IDeckLinkDisplayMode object to prevent a leak - displayMode->Release (); - } - - fprintf (stderr, - " -p \n" - " 0: 8 bit YUV (4:2:2) (default)\n" - " 1: 10 bit YUV (4:2:2)\n" - " 2: 10 bit RGB (4:4:4)\n" - " -t Print timecode\n" - " rp188: RP 188\n" - " vitc: VITC\n" - " serial: Serial Timecode\n" - " -f Filename raw video will be written to\n" - " -a Filename raw audio will be written to\n" - " -c Audio Channels (2, 8 or 16 - default is 2)\n" - " -s Audio Sample Depth (16 or 32 - default is 16)\n" - " -n Number of frames to capture (default is unlimited)\n" - " -3 Capture Stereoscopic 3D (Requires 3D Hardware support)\n" - "\n" - "Capture video and/or audio to a file. Raw video and/or audio can be viewed with mplayer eg:\n" - "\n" - " Capture -m2 -n 50 -f video.raw -a audio.raw\n" - " mplayer video.raw -demuxer rawvideo -rawvideo pal:uyvy -audiofile audio.raw -audio-demuxer 20 -rawaudio rate=48000\n"); - - exit (status); -} - -int -main (int argc, char *argv[]) -{ - IDeckLinkIterator *deckLinkIterator = CreateDeckLinkIteratorInstance (); - DeckLinkCaptureDelegate *delegate; - IDeckLinkDisplayMode *displayMode; - BMDVideoInputFlags inputFlags = 0; - BMDDisplayMode selectedDisplayMode = bmdModeNTSC; - BMDPixelFormat pixelFormat = bmdFormat8BitYUV; - int displayModeCount = 0; - int exitStatus = 1; - int ch; - bool foundDisplayMode = false; - HRESULT result; - - pthread_mutex_init (&sleepMutex, NULL); - pthread_cond_init (&sleepCond, NULL); - - if (!deckLinkIterator) { - fprintf (stderr, - "This application requires the DeckLink drivers installed.\n"); - goto bail; - } - - /* Connect to the first DeckLink instance */ - result = deckLinkIterator->Next (&deckLink); - if (result != S_OK) { - fprintf (stderr, "No DeckLink PCI cards found.\n"); - goto bail; - } - - if (deckLink->QueryInterface (IID_IDeckLinkInput, - (void **) &deckLinkInput) != S_OK) - goto bail; - - delegate = new DeckLinkCaptureDelegate (); - deckLinkInput->SetCallback (delegate); - - // Obtain an IDeckLinkDisplayModeIterator to enumerate the display modes supported on output - result = deckLinkInput->GetDisplayModeIterator (&displayModeIterator); - if (result != S_OK) { - fprintf (stderr, - "Could not obtain the video output display mode iterator - result = %08x\n", - result); - goto bail; - } - // Parse command line options - while ((ch = getopt (argc, argv, "?h3c:s:f:a:m:n:p:t:")) != -1) { - switch (ch) { - case 'm': - g_videoModeIndex = atoi (optarg); - break; - case 'c': - g_audioChannels = atoi (optarg); - if (g_audioChannels != 2 && - g_audioChannels != 8 && g_audioChannels != 16) { - fprintf (stderr, - "Invalid argument: Audio Channels must be either 2, 8 or 16\n"); - goto bail; - } - break; - case 's': - g_audioSampleDepth = atoi (optarg); - if (g_audioSampleDepth != 16 && g_audioSampleDepth != 32) { - fprintf (stderr, - "Invalid argument: Audio Sample Depth must be either 16 bits or 32 bits\n"); - goto bail; - } - break; - case 'f': - g_videoOutputFile = optarg; - break; - case 'a': - g_audioOutputFile = optarg; - break; - case 'n': - g_maxFrames = atoi (optarg); - break; - case '3': - inputFlags |= bmdVideoInputDualStream3D; - break; - case 'p': - switch (atoi (optarg)) { - case 0: - pixelFormat = bmdFormat8BitYUV; - break; - case 1: - pixelFormat = bmdFormat10BitYUV; - break; - case 2: - pixelFormat = bmdFormat10BitRGB; - break; - default: - fprintf (stderr, "Invalid argument: Pixel format %d is not valid", - atoi (optarg)); - goto bail; - } - break; - case 't': - if (!strcmp (optarg, "rp188")) - g_timecodeFormat = bmdTimecodeRP188; - else if (!strcmp (optarg, "vitc")) - g_timecodeFormat = bmdTimecodeVITC; - else if (!strcmp (optarg, "serial")) - g_timecodeFormat = bmdTimecodeSerial; - else { - fprintf (stderr, - "Invalid argument: Timecode format \"%s\" is invalid\n", optarg); - goto bail; - } - break; - case '?': - case 'h': - usage (0); - } - } - - if (g_videoModeIndex < 0) { - fprintf (stderr, "No video mode specified\n"); - usage (0); - } - - if (g_videoOutputFile != NULL) { - videoOutputFile = - open (g_videoOutputFile, O_WRONLY | O_CREAT | O_TRUNC, 0664); - if (videoOutputFile < 0) { - fprintf (stderr, "Could not open video output file \"%s\"\n", - g_videoOutputFile); - goto bail; - } - } - if (g_audioOutputFile != NULL) { - audioOutputFile = - open (g_audioOutputFile, O_WRONLY | O_CREAT | O_TRUNC, 0664); - if (audioOutputFile < 0) { - fprintf (stderr, "Could not open audio output file \"%s\"\n", - g_audioOutputFile); - goto bail; - } - } - - while (displayModeIterator->Next (&displayMode) == S_OK) { - if (g_videoModeIndex == displayModeCount) { - BMDDisplayModeSupport result; - const char *displayModeName; - - foundDisplayMode = true; - displayMode->GetName (&displayModeName); - selectedDisplayMode = displayMode->GetDisplayMode (); - - deckLinkInput->DoesSupportVideoMode (selectedDisplayMode, pixelFormat, - bmdVideoInputFlagDefault, &result, NULL); - - if (result == bmdDisplayModeNotSupported) { - fprintf (stderr, - "The display mode %s is not supported with the selected pixel format\n", - displayModeName); - goto bail; - } - - if (inputFlags & bmdVideoInputDualStream3D) { - if (!(displayMode->GetFlags () & bmdDisplayModeSupports3D)) { - fprintf (stderr, "The display mode %s is not supported with 3D\n", - displayModeName); - goto bail; - } - } - - break; - } - displayModeCount++; - displayMode->Release (); - } - - if (!foundDisplayMode) { - fprintf (stderr, "Invalid mode %d specified\n", g_videoModeIndex); - goto bail; - } - - result = - deckLinkInput->EnableVideoInput (selectedDisplayMode, pixelFormat, - inputFlags); - if (result != S_OK) { - fprintf (stderr, - "Failed to enable video input. Is another application using the card?\n"); - goto bail; - } - - result = - deckLinkInput->EnableAudioInput (bmdAudioSampleRate48kHz, - g_audioSampleDepth, g_audioChannels); - if (result != S_OK) { - goto bail; - } - - result = deckLinkInput->StartStreams (); - if (result != S_OK) { - goto bail; - } - // All Okay. - exitStatus = 0; - - // Block main thread until signal occurs - pthread_mutex_lock (&sleepMutex); - pthread_cond_wait (&sleepCond, &sleepMutex); - pthread_mutex_unlock (&sleepMutex); - fprintf (stderr, "Stopping Capture\n"); - -bail: - - if (videoOutputFile) - close (videoOutputFile); - if (audioOutputFile) - close (audioOutputFile); - - if (displayModeIterator != NULL) { - displayModeIterator->Release (); - displayModeIterator = NULL; - } - - if (deckLinkInput != NULL) { - deckLinkInput->Release (); - deckLinkInput = NULL; - } - - if (deckLink != NULL) { - deckLink->Release (); - deckLink = NULL; - } - - if (deckLinkIterator != NULL) - deckLinkIterator->Release (); - - return exitStatus; -} -#endif - diff --git a/sys/decklink/capture.h b/sys/decklink/capture.h index 3c1ab46..c501616 100644 --- a/sys/decklink/capture.h +++ b/sys/decklink/capture.h @@ -1,7 +1,7 @@ #ifndef __CAPTURE_H__ #define __CAPTURE_H__ -#include "DeckLinkAPI.h" +#include "gstdecklink.h" class DeckLinkCaptureDelegate : public IDeckLinkInputCallback { @@ -18,8 +18,8 @@ class DeckLinkCaptureDelegate : public IDeckLinkInputCallback void *priv; private: - ULONG m_refCount; - pthread_mutex_t m_mutex; + ULONG m_refCount; + GMutex *m_mutex; }; #endif diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp index 4d4ed44..0920cca 100644 --- a/sys/decklink/gstdecklink.cpp +++ b/sys/decklink/gstdecklink.cpp @@ -22,9 +22,170 @@ #endif #include +#include "gstdecklink.h" #include "gstdecklinksrc.h" #include "gstdecklinksink.h" +GType +gst_decklink_mode_get_type (void) +{ + static GType type; + + if (!type) { + static const GEnumValue modes[] = { + {GST_DECKLINK_MODE_NTSC, "ntsc", "NTSC SD 60i"}, + {GST_DECKLINK_MODE_NTSC2398, "ntsc2398", "NTSC SD 60i (24 fps)"}, + {GST_DECKLINK_MODE_PAL, "pal", "PAL SD 50i"}, + {GST_DECKLINK_MODE_NTSC_P, "ntsc-p", "NTSC SD 60p"}, + {GST_DECKLINK_MODE_PAL_P, "pal-p", "PAL SD 50p"}, + + {GST_DECKLINK_MODE_1080p2398, "1080p2398", "HD1080 23.98p"}, + {GST_DECKLINK_MODE_1080p24, "1080p24", "HD1080 24p"}, + {GST_DECKLINK_MODE_1080p25, "1080p25", "HD1080 25p"}, + {GST_DECKLINK_MODE_1080p2997, "1080p2997", "HD1080 29.97p"}, + {GST_DECKLINK_MODE_1080p30, "1080p30", "HD1080 30p"}, + + {GST_DECKLINK_MODE_1080i50, "1080i50", "HD1080 50i"}, + {GST_DECKLINK_MODE_1080i5994, "1080i5994", "HD1080 59.94i"}, + {GST_DECKLINK_MODE_1080i60, "1080i60", "HD1080 60i"}, + + {GST_DECKLINK_MODE_1080p50, "1080p50", "HD1080 50p"}, + {GST_DECKLINK_MODE_1080p5994, "1080p5994", "HD1080 59.94p"}, + {GST_DECKLINK_MODE_1080p60, "1080p60", "HD1080 60p"}, + + {GST_DECKLINK_MODE_720p50, "720p50", "HD720 50p"}, + {GST_DECKLINK_MODE_720p5994, "720p5994", "HD720 59.94p"}, + {GST_DECKLINK_MODE_720p60, "720p60", "HD720 60p"}, + + {0, NULL, NULL} + }; + + type = g_enum_register_static ("GstDecklinkModes", modes); + } + return type; +} + +GType +gst_decklink_connection_get_type (void) +{ + static GType type; + + if (!type) { + static const GEnumValue connections[] = { + {GST_DECKLINK_CONNECTION_SDI, "sdi", "SDI"}, + {GST_DECKLINK_CONNECTION_HDMI, "hdmi", "HDMI"}, + {GST_DECKLINK_CONNECTION_OPTICAL_SDI, "optical-sdi", "Optical SDI"}, + {GST_DECKLINK_CONNECTION_COMPONENT, "component", "Component"}, + {GST_DECKLINK_CONNECTION_COMPOSITE, "composite", "Composite"}, + {GST_DECKLINK_CONNECTION_SVIDEO, "svideo", "S-Video"}, + {0, NULL, NULL} + }; + + type = g_enum_register_static ("GstDecklinkConnection", connections); + } + return type; +} + +GType +gst_decklink_audio_connection_get_type (void) +{ + static GType type; + + if (!type) { + static const GEnumValue connections[] = { + {GST_DECKLINK_AUDIO_CONNECTION_AUTO, "auto", "Automatic"}, + {GST_DECKLINK_AUDIO_CONNECTION_EMBEDDED, "embedded", "SDI/HDMI embedded audio"}, + {GST_DECKLINK_AUDIO_CONNECTION_AES_EBU, "aes", "AES/EBU input"}, + {GST_DECKLINK_AUDIO_CONNECTION_ANALOG, "analog", "Analog input"}, + {0, NULL, NULL} + }; + + type = g_enum_register_static ("GstDecklinkAudioConnection", connections); + } + return type; +} + +#define NTSC 10, 11, false, false +#define PAL 12, 11, true, false +#define HD 1, 1, false, true + +static const GstDecklinkMode modes[] = { + {bmdModeNTSC, 720, 486, 30000, 1001, true, NTSC }, + {bmdModeNTSC2398, 720, 486, 24000, 1001, true, NTSC }, + {bmdModePAL, 720, 576, 25, 1, true, PAL }, + {bmdModeNTSCp, 720, 486, 30000, 1001, false, NTSC }, + {bmdModePALp, 720, 576, 25, 1, false, PAL }, + + {bmdModeHD1080p2398, 1920, 1080, 24000, 1001, false, HD }, + {bmdModeHD1080p24, 1920, 1080, 24, 1, false, HD }, + {bmdModeHD1080p25, 1920, 1080, 25, 1, false, HD }, + {bmdModeHD1080p2997, 1920, 1080, 30000, 1001, false, HD }, + {bmdModeHD1080p30, 1920, 1080, 30, 1, false, HD }, + + {bmdModeHD1080i50, 1920, 1080, 25, 1, true, HD }, + {bmdModeHD1080i5994, 1920, 1080, 30000, 1001, true, HD }, + {bmdModeHD1080i6000, 1920, 1080, 30, 1, true, HD }, + + {bmdModeHD1080p50, 1920, 1080, 50, 1, false, HD }, + {bmdModeHD1080p5994, 1920, 1080, 30000, 1001, false, HD }, + {bmdModeHD1080p6000, 1920, 1080, 60, 1, false, HD }, + + {bmdModeHD720p50, 1280, 720, 50, 1, false, HD }, + {bmdModeHD720p5994, 1280, 720, 60000, 1001, false, HD }, + {bmdModeHD720p60, 1280, 720, 60, 1, false, HD } + +}; + +const GstDecklinkMode * +gst_decklink_get_mode (GstDecklinkModeEnum e) +{ + return &modes[e]; +} + +static GstStructure * +gst_decklink_mode_get_structure (GstDecklinkModeEnum e) +{ + const GstDecklinkMode *mode = &modes[e]; + + return gst_structure_new ("video/x-raw-yuv", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'), + "width", G_TYPE_INT, mode->width, + "height", G_TYPE_INT, mode->height, + "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, + "interlaced", G_TYPE_BOOLEAN, mode->interlaced, + "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, + "color-matrix", G_TYPE_STRING, mode->is_hdtv ? "hdtv" : "sdtv", + "chroma-site", G_TYPE_STRING, "mpeg2", + NULL); +} + +GstCaps * +gst_decklink_mode_get_caps (GstDecklinkModeEnum e) +{ + GstCaps *caps; + + caps = gst_caps_new_empty (); + gst_caps_append_structure (caps, gst_decklink_mode_get_structure (e)); + + return caps; +} + +GstCaps * +gst_decklink_mode_get_template_caps (void) +{ + int i; + GstCaps *caps; + GstStructure *s; + + caps = gst_caps_new_empty (); + for(i=0;i<(int)G_N_ELEMENTS(modes);i++) { + s = gst_decklink_mode_get_structure ((GstDecklinkModeEnum)i); + gst_caps_append_structure (caps, s); + } + + return caps; +} + static gboolean plugin_init (GstPlugin * plugin) { diff --git a/sys/decklink/gstdecklink.h b/sys/decklink/gstdecklink.h new file mode 100644 index 0000000..e69d14b --- /dev/null +++ b/sys/decklink/gstdecklink.h @@ -0,0 +1,140 @@ +/* GStreamer + * Copyright (C) 2011 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_DECKLINK_H_ +#define _GST_DECKLINK_H_ + +#include +#ifdef G_OS_UNIX +#include "linux/DeckLinkAPI.h" +#endif + +#ifdef G_OS_WIN32 +#include "win/DeckLinkAPI.h" + +#include + +#define bool BOOL + +#define COMSTR_T BSTR* +#define FREE_COM_STRING(s) delete[] s; +#define CONVERT_COM_STRING(s) BSTR _s = (BSTR)s; s = _com_util::ConvertBSTRToString(_s); ::SysFreeString(_s); +#else +#define COMSTR_T char* +#define FREE_COM_STRING(s) free ((void *) s) +#define CONVERT_COM_STRING(s) +#endif /* _MSC_VER */ + +typedef enum { + GST_DECKLINK_MODE_NTSC, + GST_DECKLINK_MODE_NTSC2398, + GST_DECKLINK_MODE_PAL, + GST_DECKLINK_MODE_NTSC_P, + GST_DECKLINK_MODE_PAL_P, + + GST_DECKLINK_MODE_1080p2398, + GST_DECKLINK_MODE_1080p24, + GST_DECKLINK_MODE_1080p25, + GST_DECKLINK_MODE_1080p2997, + GST_DECKLINK_MODE_1080p30, + + GST_DECKLINK_MODE_1080i50, + GST_DECKLINK_MODE_1080i5994, + GST_DECKLINK_MODE_1080i60, + + GST_DECKLINK_MODE_1080p50, + GST_DECKLINK_MODE_1080p5994, + GST_DECKLINK_MODE_1080p60, + + GST_DECKLINK_MODE_720p50, + GST_DECKLINK_MODE_720p5994, + GST_DECKLINK_MODE_720p60 +} GstDecklinkModeEnum; +#define GST_TYPE_DECKLINK_MODE (gst_decklink_mode_get_type ()) +GType gst_decklink_mode_get_type (void); + +typedef enum { + GST_DECKLINK_CONNECTION_SDI, + GST_DECKLINK_CONNECTION_HDMI, + GST_DECKLINK_CONNECTION_OPTICAL_SDI, + GST_DECKLINK_CONNECTION_COMPONENT, + GST_DECKLINK_CONNECTION_COMPOSITE, + GST_DECKLINK_CONNECTION_SVIDEO +} GstDecklinkConnectionEnum; +#define GST_TYPE_DECKLINK_CONNECTION (gst_decklink_connection_get_type ()) +GType gst_decklink_connection_get_type (void); + +typedef enum { + GST_DECKLINK_AUDIO_CONNECTION_AUTO, + GST_DECKLINK_AUDIO_CONNECTION_EMBEDDED, + GST_DECKLINK_AUDIO_CONNECTION_AES_EBU, + GST_DECKLINK_AUDIO_CONNECTION_ANALOG +} GstDecklinkAudioConnectionEnum; +#define GST_TYPE_DECKLINK_AUDIO_CONNECTION (gst_decklink_audio_connection_get_type ()) +GType gst_decklink_audio_connection_get_type (void); + +typedef struct _GstDecklinkMode GstDecklinkMode; +struct _GstDecklinkMode { + BMDDisplayMode mode; + int width; + int height; + int fps_n; + int fps_d; + gboolean interlaced; + int par_n; + int par_d; + gboolean tff; + gboolean is_hdtv; +}; + +const GstDecklinkMode * gst_decklink_get_mode (GstDecklinkModeEnum e); +GstCaps * gst_decklink_mode_get_caps (GstDecklinkModeEnum e); +GstCaps * gst_decklink_mode_get_template_caps (void); + +#define GST_DECKLINK_MODE_CAPS(w,h,n,d,i) \ + "video/x-raw-yuv,format=(fourcc)UYVY,width=" #w ",height=" #h \ + ",framerate=" #n "/" #d ",interlaced=" #i + +#define GST_DECKLINK_CAPS \ + GST_DECKLINK_MODE_CAPS(720,486,30000,1001,true) ";" \ + GST_DECKLINK_MODE_CAPS(720,486,24000,1001,true) ";" \ + GST_DECKLINK_MODE_CAPS(720,576,25,1,true) ";" \ + GST_DECKLINK_MODE_CAPS(720,486,30000,1001,false) ";" \ + GST_DECKLINK_MODE_CAPS(720,576,25,1,false) ";" \ + \ + GST_DECKLINK_MODE_CAPS(1920,1080,24000,1001,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,24,1,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,25,1,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,30000,1001,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,30,1,false) ";" \ + \ + GST_DECKLINK_MODE_CAPS(1920,1080,25,1,true) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,30000,1001,true) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,30,1,true) ";" \ + \ + GST_DECKLINK_MODE_CAPS(1920,1080,50,1,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,60000,1001,false) ";" \ + GST_DECKLINK_MODE_CAPS(1920,1080,60,1,false) ";" \ + \ + GST_DECKLINK_MODE_CAPS(1280,720,50,1,false) ";" \ + GST_DECKLINK_MODE_CAPS(1280,720,60000,1001,false) ";" \ + GST_DECKLINK_MODE_CAPS(1280,720,60,1,false) + + +#endif diff --git a/sys/decklink/gstdecklinksink.cpp b/sys/decklink/gstdecklinksink.cpp index 9fc39e4..bc24cfe 100644 --- a/sys/decklink/gstdecklinksink.cpp +++ b/sys/decklink/gstdecklinksink.cpp @@ -36,9 +36,11 @@ #include #include +#include "gstdecklink.h" #include "gstdecklinksink.h" #include + GST_DEBUG_CATEGORY_STATIC (gst_decklink_sink_debug_category); #define GST_CAT_DEFAULT gst_decklink_sink_debug_category @@ -67,7 +69,8 @@ static gboolean gst_decklink_sink_query (GstElement * element, GstQuery * query); static GstCaps *gst_decklink_sink_videosink_getcaps (GstPad * pad); -static gboolean gst_decklink_sink_videosink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_decklink_sink_videosink_setcaps (GstPad * pad, + GstCaps * caps); static gboolean gst_decklink_sink_videosink_acceptcaps (GstPad * pad, GstCaps * caps); static gboolean gst_decklink_sink_videosink_activate (GstPad * pad); @@ -81,15 +84,18 @@ static GstFlowReturn gst_decklink_sink_videosink_chain (GstPad * pad, GstBuffer * buffer); static GstFlowReturn gst_decklink_sink_videosink_chainlist (GstPad * pad, GstBufferList * bufferlist); -static gboolean gst_decklink_sink_videosink_event (GstPad * pad, GstEvent * event); -static gboolean gst_decklink_sink_videosink_query (GstPad * pad, GstQuery * query); +static gboolean gst_decklink_sink_videosink_event (GstPad * pad, + GstEvent * event); +static gboolean gst_decklink_sink_videosink_query (GstPad * pad, + GstQuery * query); static GstFlowReturn gst_decklink_sink_videosink_bufferalloc (GstPad * pad, guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); static GstIterator *gst_decklink_sink_videosink_iterintlink (GstPad * pad); static GstCaps *gst_decklink_sink_audiosink_getcaps (GstPad * pad); -static gboolean gst_decklink_sink_audiosink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_decklink_sink_audiosink_setcaps (GstPad * pad, + GstCaps * caps); static gboolean gst_decklink_sink_audiosink_acceptcaps (GstPad * pad, GstCaps * caps); static gboolean gst_decklink_sink_audiosink_activate (GstPad * pad); @@ -103,46 +109,32 @@ static GstFlowReturn gst_decklink_sink_audiosink_chain (GstPad * pad, GstBuffer * buffer); static GstFlowReturn gst_decklink_sink_audiosink_chainlist (GstPad * pad, GstBufferList * bufferlist); -static gboolean gst_decklink_sink_audiosink_event (GstPad * pad, GstEvent * event); -static gboolean gst_decklink_sink_audiosink_query (GstPad * pad, GstQuery * query); +static gboolean gst_decklink_sink_audiosink_event (GstPad * pad, + GstEvent * event); +static gboolean gst_decklink_sink_audiosink_query (GstPad * pad, + GstQuery * query); static GstFlowReturn gst_decklink_sink_audiosink_bufferalloc (GstPad * pad, guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); static GstIterator *gst_decklink_sink_audiosink_iterintlink (GstPad * pad); +#ifdef _MSC_VER +/* COM initialization/uninitialization thread */ +static void gst_decklink_sink_com_thread (GstDecklinkSink * src); +#endif /* _MSC_VER */ enum { - PROP_0 + PROP_0, + PROP_MODE }; /* pad templates */ -#define MODE(w,h,n,d,i) \ - "video/x-raw-yuv,format=(fourcc)UYVY,width=" #w ",height=" #h \ - ",framerate=" #n "/" #d ",interlaced=" #i - static GstStaticPadTemplate gst_decklink_sink_videosink_template = GST_STATIC_PAD_TEMPLATE ("videosink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ( - MODE(720,486,30000,1001,true) - )); -#if 0 - MODE(720,486,24000,1001,true) ";" - MODE(720,576,25,1,true) ";" - MODE(1920,1080,24000,1001,false) ";" - MODE(1920,1080,24,1,false) ";" - MODE(1920,1080,25,1,false) ";" - MODE(1920,1080,30000,1001,false) ";" - MODE(1920,1080,30,1,false) ";" - MODE(1920,1080,25,1,true) ";" - MODE(1920,1080,30000,1001,true) ";" - MODE(1920,1080,30,1,true) ";" - MODE(1280,720,50,1,true) ";" - MODE(1280,720,60000,1001,true) ";" - MODE(1280,720,60,1,true) -#endif + GST_STATIC_CAPS (GST_DECKLINK_CAPS)); static GstStaticPadTemplate gst_decklink_sink_audiosink_template = GST_STATIC_PAD_TEMPLATE ("audiosink", @@ -151,33 +143,6 @@ GST_STATIC_PAD_TEMPLATE ("audiosink", GST_STATIC_CAPS ("audio/x-raw-int,width=16,depth=16,channels=2,rate=48000") ); -typedef struct _DecklinkMode DecklinkMode; -struct _DecklinkMode { - BMDDisplayMode mode; - int width; - int height; - int fps_n; - int fps_d; - gboolean interlaced; -}; - -static DecklinkMode modes[] = { - { bmdModeNTSC, 720,486,30000,1001,true }, - { bmdModeNTSC2398, 720,486,24000,1001,true }, - { bmdModePAL, 720,576,25,1,true }, - { bmdModeHD1080p2398, 1920,1080,24000,1001,false }, - { bmdModeHD1080p24, 1920,1080,24,1,false }, - { bmdModeHD1080p25, 1920,1080,25,1,false }, - { bmdModeHD1080p2997, 1920,1080,30000,1001,false }, - { bmdModeHD1080p30, 1920,1080,30,1,false }, - { bmdModeHD1080i50, 1920,1080,25,1,true }, - { bmdModeHD1080i5994, 1920,1080,30000,1001,true }, - { bmdModeHD1080i6000, 1920,1080,30,1,true }, - { bmdModeHD720p50, 1280,720,50,1,true }, - { bmdModeHD720p5994, 1280,720,60000,1001,true }, - { bmdModeHD720p60, 1280,720,60,1,true } -}; - /* class initialization */ @@ -193,10 +158,10 @@ gst_decklink_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 (&gst_decklink_sink_videosink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_decklink_sink_audiosink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_decklink_sink_videosink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_decklink_sink_audiosink_template); gst_element_class_set_details_simple (element_class, "Decklink Sink", "Video/Sink", "Decklink Sink", "David Schleef "); @@ -222,6 +187,12 @@ gst_decklink_sink_class_init (GstDecklinkSinkClass * klass) element_class->send_event = GST_DEBUG_FUNCPTR (gst_decklink_sink_send_event); element_class->query = GST_DEBUG_FUNCPTR (gst_decklink_sink_query); + g_object_class_install_property (gobject_class, PROP_MODE, + g_param_spec_enum ("mode", "Mode", "Mode", + GST_TYPE_DECKLINK_MODE, GST_DECKLINK_MODE_NTSC, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + G_PARAM_CONSTRUCT))); + } static void @@ -294,20 +265,32 @@ gst_decklink_sink_init (GstDecklinkSink * decklinksink, gst_element_add_pad (GST_ELEMENT (decklinksink), decklinksink->audiosinkpad); - decklinksink->cond = g_cond_new(); - decklinksink->mutex = g_mutex_new(); + decklinksink->cond = g_cond_new (); + decklinksink->mutex = g_mutex_new (); + decklinksink->audio_mutex = g_mutex_new (); - decklinksink->mode = 0; - - decklinksink->width = modes[decklinksink->mode].width; - decklinksink->height = modes[decklinksink->mode].height; - decklinksink->fps_n = modes[decklinksink->mode].fps_n; - decklinksink->fps_d = modes[decklinksink->mode].fps_d; - decklinksink->interlaced = modes[decklinksink->mode].interlaced; - decklinksink->bmd_mode = modes[decklinksink->mode].mode; + decklinksink->mode = GST_DECKLINK_MODE_NTSC; decklinksink->callback = new Output; decklinksink->callback->decklinksink = decklinksink; + +#ifdef _MSC_VER + decklinksink->com_init_lock = g_mutex_new(); + decklinksink->com_deinit_lock = g_mutex_new(); + decklinksink->com_initialized = g_cond_new(); + decklinksink->com_uninitialize = g_cond_new(); + decklinksink->com_uninitialized = g_cond_new(); + + g_mutex_lock (decklinksink->com_init_lock); + + /* create the COM initialization thread */ + g_thread_create ((GThreadFunc)gst_decklink_sink_com_thread, + decklinksink, FALSE, NULL); + + /* wait until the COM thread signals that COM has been initialized */ + g_cond_wait (decklinksink->com_initialized, decklinksink->com_init_lock); + g_mutex_unlock (decklinksink->com_init_lock); +#endif /* _MSC_VER */ } void @@ -320,6 +303,9 @@ gst_decklink_sink_set_property (GObject * object, guint property_id, decklinksink = GST_DECKLINK_SINK (object); switch (property_id) { + case PROP_MODE: + decklinksink->mode = (GstDecklinkModeEnum) g_value_get_enum (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -336,19 +322,58 @@ gst_decklink_sink_get_property (GObject * object, guint property_id, decklinksink = GST_DECKLINK_SINK (object); switch (property_id) { + case PROP_MODE: + g_value_set_enum (value, decklinksink->mode); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } +#ifdef _MSC_VER +static void +gst_decklink_sink_com_thread (GstDecklinkSink * src) +{ + HRESULT res; + + g_mutex_lock (src->com_init_lock); + + /* Initialize COM with a MTA for this process. This thread will + * be the first one to enter the apartement and the last one to leave + * it, unitializing COM properly */ + + res = CoInitializeEx (0, COINIT_MULTITHREADED); + if (res == S_FALSE) + GST_WARNING_OBJECT (src, "COM has been already initialized in the same process"); + else if (res == RPC_E_CHANGED_MODE) + GST_WARNING_OBJECT (src, "The concurrency model of COM has changed."); + else + GST_INFO_OBJECT (src, "COM intialized succesfully"); + + src->comInitialized = TRUE; + + /* Signal other threads waiting on this condition that COM was initialized */ + g_cond_signal (src->com_initialized); + + g_mutex_unlock (src->com_init_lock); + + /* Wait until the unitialize condition is met to leave the COM apartement */ + g_mutex_lock (src->com_deinit_lock); + g_cond_wait (src->com_uninitialize, src->com_deinit_lock); + + CoUninitialize (); + GST_INFO_OBJECT (src, "COM unintialized succesfully"); + src->comInitialized = FALSE; + g_cond_signal (src->com_uninitialized); + g_mutex_unlock (src->com_deinit_lock); +} +#endif /* _MSC_VER */ + void gst_decklink_sink_dispose (GObject * object) { - GstDecklinkSink *decklinksink; - g_return_if_fail (GST_IS_DECKLINK_SINK (object)); - decklinksink = GST_DECKLINK_SINK (object); /* clean up as possible. may be called multiple times */ @@ -366,36 +391,51 @@ gst_decklink_sink_finalize (GObject * object) /* clean up object here */ g_cond_free (decklinksink->cond); g_mutex_free (decklinksink->mutex); + g_mutex_free (decklinksink->audio_mutex); delete decklinksink->callback; +#ifdef _MSC_VER + /* signal the COM thread that it should uninitialize COM */ + if (decklinksink->comInitialized) { + g_mutex_lock (decklinksink->com_deinit_lock); + g_cond_signal (decklinksink->com_uninitialize); + g_cond_wait (decklinksink->com_uninitialized, decklinksink->com_deinit_lock); + g_mutex_unlock (decklinksink->com_deinit_lock); + } + + g_mutex_free (decklinksink->com_init_lock); + g_mutex_free (decklinksink->com_deinit_lock); + g_cond_free (decklinksink->com_initialized); + g_cond_free (decklinksink->com_uninitialize); + g_cond_free (decklinksink->com_uninitialized); +#endif /* _MSC_VER */ + G_OBJECT_CLASS (parent_class)->finalize (object); } static gboolean -gst_decklink_sink_start (GstDecklinkSink *decklinksink) +gst_decklink_sink_start (GstDecklinkSink * decklinksink) { IDeckLinkIterator *iterator; HRESULT ret; - IDeckLinkDisplayModeIterator *mode_iterator; - IDeckLinkDisplayMode *mode; - BMDTimeValue fps_n; - BMDTimeScale fps_d; + const GstDecklinkMode *mode; + BMDAudioSampleType sample_depth; iterator = CreateDeckLinkIteratorInstance (); if (iterator == NULL) { - GST_ERROR("no driver"); + GST_ERROR ("no driver"); return FALSE; } ret = iterator->Next (&decklinksink->decklink); if (ret != S_OK) { - GST_ERROR("no card"); + GST_ERROR ("no card"); return FALSE; } ret = decklinksink->decklink->QueryInterface (IID_IDeckLinkOutput, - (void **)&decklinksink->output); + (void **) &decklinksink->output); if (ret != S_OK) { GST_ERROR ("no output"); return FALSE; @@ -403,29 +443,9 @@ gst_decklink_sink_start (GstDecklinkSink *decklinksink) decklinksink->output->SetAudioCallback (decklinksink->callback); - ret = decklinksink->output->GetDisplayModeIterator (&mode_iterator); - if (ret != S_OK) { - GST_ERROR ("failed to get display mode iterator"); - return FALSE; - } - - while (mode_iterator->Next (&mode) == S_OK) { - break; - } - if (!mode) { - GST_ERROR ("bad mode"); - return FALSE; - } - - decklinksink->width = mode->GetWidth (); - decklinksink->height = mode->GetHeight (); - mode->GetFrameRate (&fps_n, &fps_d); - decklinksink->fps_n = fps_n; - decklinksink->fps_d = fps_d; + mode = gst_decklink_get_mode (decklinksink->mode); - decklinksink->display_mode = mode->GetDisplayMode (); - - ret = decklinksink->output->EnableVideoOutput (decklinksink->display_mode, + ret = decklinksink->output->EnableVideoOutput (mode->mode, bmdVideoOutputFlagDefault); if (ret != S_OK) { GST_ERROR ("failed to enable video output"); @@ -433,16 +453,17 @@ gst_decklink_sink_start (GstDecklinkSink *decklinksink) } //decklinksink->video_enabled = TRUE; - decklinksink->output->SetScheduledFrameCompletionCallback (decklinksink->callback); + decklinksink->output-> + SetScheduledFrameCompletionCallback (decklinksink->callback); - if (0) { - ret = decklinksink->output->EnableAudioOutput (bmdAudioSampleRate48kHz, - 16, 2, bmdAudioOutputStreamContinuous); - if (ret != S_OK) { - GST_ERROR ("failed to enable audio output"); - return FALSE; - } + sample_depth = bmdAudioSampleType16bitInteger; + ret = decklinksink->output->EnableAudioOutput (bmdAudioSampleRate48kHz, + sample_depth, 2, bmdAudioOutputStreamContinuous); + if (ret != S_OK) { + GST_ERROR ("failed to enable audio output"); + return FALSE; } + decklinksink->audio_buffer = gst_buffer_new (); decklinksink->num_frames = 0; @@ -450,7 +471,7 @@ gst_decklink_sink_start (GstDecklinkSink *decklinksink) } static gboolean -gst_decklink_sink_force_stop (GstDecklinkSink *decklinksink) +gst_decklink_sink_force_stop (GstDecklinkSink * decklinksink) { g_mutex_lock (decklinksink->mutex); decklinksink->stop = TRUE; @@ -461,7 +482,7 @@ gst_decklink_sink_force_stop (GstDecklinkSink *decklinksink) } static gboolean -gst_decklink_sink_stop (GstDecklinkSink *decklinksink) +gst_decklink_sink_stop (GstDecklinkSink * decklinksink) { decklinksink->output->StopScheduledPlayback (0, NULL, 0); decklinksink->output->DisableAudioOutput (); @@ -565,7 +586,7 @@ gst_decklink_sink_videosink_getcaps (GstPad * pad) GST_DEBUG_OBJECT (decklinksink, "getcaps"); - caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + caps = gst_decklink_mode_get_caps (decklinksink->mode); gst_object_unref (decklinksink); return caps; @@ -670,6 +691,7 @@ gst_decklink_sink_videosink_chain (GstPad * pad, GstBuffer * buffer) IDeckLinkMutableVideoFrame *frame; void *data; GstFlowReturn ret; + const GstDecklinkMode *mode; decklinksink = GST_DECKLINK_SINK (gst_pad_get_parent (pad)); @@ -688,8 +710,10 @@ gst_decklink_sink_videosink_chain (GstPad * pad, GstBuffer * buffer) } #endif - decklinksink->output->CreateVideoFrame (decklinksink->width, - decklinksink->height, decklinksink->width * 2, bmdFormat8BitYUV, + mode = gst_decklink_get_mode (decklinksink->mode); + + decklinksink->output->CreateVideoFrame (mode->width, + mode->height, mode->width * 2, bmdFormat8BitYUV, bmdFrameFlagDefault, &frame); frame->GetBytes (&data); @@ -707,12 +731,11 @@ gst_decklink_sink_videosink_chain (GstPad * pad, GstBuffer * buffer) if (!decklinksink->stop) { decklinksink->output->ScheduleVideoFrame (frame, - decklinksink->num_frames * decklinksink->fps_n, - decklinksink->fps_n, decklinksink->fps_d); + decklinksink->num_frames * mode->fps_d, mode->fps_d, mode->fps_n); decklinksink->num_frames++; if (!decklinksink->sched_started) { - decklinksink->output->StartScheduledPlayback (0, 100, 1.0); + decklinksink->output->StartScheduledPlayback (0, mode->fps_d, 1.0); decklinksink->sched_started = TRUE; } @@ -782,8 +805,8 @@ gst_decklink_sink_videosink_query (GstPad * pad, GstQuery * query) } static GstFlowReturn -gst_decklink_sink_videosink_bufferalloc (GstPad * pad, guint64 offset, guint size, - GstCaps * caps, GstBuffer ** buf) +gst_decklink_sink_videosink_bufferalloc (GstPad * pad, guint64 offset, + guint size, GstCaps * caps, GstBuffer ** buf) { GstDecklinkSink *decklinksink; @@ -928,14 +951,24 @@ static GstFlowReturn gst_decklink_sink_audiosink_chain (GstPad * pad, GstBuffer * buffer) { GstDecklinkSink *decklinksink; + GstFlowReturn ret; decklinksink = GST_DECKLINK_SINK (gst_pad_get_parent (pad)); GST_DEBUG_OBJECT (decklinksink, "chain"); + // concatenate both buffers + g_mutex_lock (decklinksink->audio_mutex); + decklinksink->audio_buffer = + gst_buffer_join (decklinksink->audio_buffer, buffer); + g_mutex_unlock (decklinksink->audio_mutex); + + // GST_DEBUG("Audio Buffer Size: %d", GST_BUFFER_SIZE (decklinksink->audio_buffer)); gst_object_unref (decklinksink); - return GST_FLOW_OK; + + ret = GST_FLOW_OK; + return ret; } static GstFlowReturn @@ -993,8 +1026,8 @@ gst_decklink_sink_audiosink_query (GstPad * pad, GstQuery * query) } static GstFlowReturn -gst_decklink_sink_audiosink_bufferalloc (GstPad * pad, guint64 offset, guint size, - GstCaps * caps, GstBuffer ** buf) +gst_decklink_sink_audiosink_bufferalloc (GstPad * pad, guint64 offset, + guint size, GstCaps * caps, GstBuffer ** buf) { GstDecklinkSink *decklinksink; @@ -1029,10 +1062,10 @@ gst_decklink_sink_audiosink_iterintlink (GstPad * pad) HRESULT -Output::ScheduledFrameCompleted (IDeckLinkVideoFrame * completedFrame, + Output::ScheduledFrameCompleted (IDeckLinkVideoFrame * completedFrame, BMDOutputFrameCompletionResult result) -{ - GST_DEBUG("ScheduledFrameCompleted"); +{ + GST_DEBUG ("ScheduledFrameCompleted"); g_mutex_lock (decklinksink->mutex); g_cond_signal (decklinksink->cond); @@ -1042,18 +1075,47 @@ Output::ScheduledFrameCompleted (IDeckLinkVideoFrame * completedFrame, return S_OK; } -HRESULT -Output::ScheduledPlaybackHasStopped () +HRESULT Output::ScheduledPlaybackHasStopped () { - GST_ERROR("ScheduledPlaybackHasStopped"); + GST_ERROR ("ScheduledPlaybackHasStopped"); return S_OK; } -HRESULT -Output::RenderAudioSamples (bool preroll) +HRESULT Output::RenderAudioSamples (bool preroll) { - GST_ERROR("RenderAudioSamples"); - + uint32_t samplesWritten; + GstBuffer * buffer; + + // guint64 samplesToWrite; + + if (decklinksink->stop) { + GST_DEBUG ("decklinksink->stop set TRUE!"); + decklinksink->output->BeginAudioPreroll (); + // running = true; + } else { + g_mutex_lock (decklinksink->audio_mutex); + decklinksink->output->ScheduleAudioSamples ( + GST_BUFFER_DATA (decklinksink->audio_buffer), + GST_BUFFER_SIZE (decklinksink->audio_buffer) / 4, // 2 bytes per sample, stereo + 0, 0, &samplesWritten); + + buffer = + gst_buffer_new_and_alloc (GST_BUFFER_SIZE (decklinksink->audio_buffer) - + (samplesWritten * 4)); + + memcpy (GST_BUFFER_DATA (buffer), + GST_BUFFER_DATA (decklinksink->audio_buffer) + (samplesWritten * 4), + GST_BUFFER_SIZE (decklinksink->audio_buffer) - (samplesWritten * 4)); + + gst_buffer_unref (decklinksink->audio_buffer); + + decklinksink->audio_buffer = buffer; + + g_mutex_unlock (decklinksink->audio_mutex); + + } + + GST_DEBUG ("RenderAudioSamples"); + return S_OK; } - diff --git a/sys/decklink/gstdecklinksink.h b/sys/decklink/gstdecklinksink.h index 2f0d1d7..b5f0700 100644 --- a/sys/decklink/gstdecklinksink.h +++ b/sys/decklink/gstdecklinksink.h @@ -21,7 +21,7 @@ #define _GST_DECKLINK_SINK_H_ #include -#include "DeckLinkAPI.h" +#include "gstdecklink.h" G_BEGIN_DECLS @@ -51,12 +51,15 @@ public IDeckLinkAudioOutputCallback struct _GstDecklinkSink { GstElement base_decklinksink; + GstBuffer *audio_buffer; GstPad *videosinkpad; GstPad *audiosinkpad; GMutex *mutex; GCond *cond; + GMutex *audio_mutex; +// GCond *audio_cond; int queued_frames; gboolean stop; @@ -68,16 +71,18 @@ struct _GstDecklinkSink gboolean sched_started; int num_frames; - int fps_n; - int fps_d; - int width; - int height; - gboolean interlaced; - BMDDisplayMode bmd_mode; /* properties */ - int mode; - + GstDecklinkModeEnum mode; + +#ifdef _MSC_VER + gboolean comInitialized; + GMutex *com_init_lock; + GMutex *com_deinit_lock; + GCond *com_initialized; + GCond *com_uninitialize; + GCond *com_uninitialized; +#endif /* _MSC_VER */ }; struct _GstDecklinkSinkClass diff --git a/sys/decklink/gstdecklinksrc.cpp b/sys/decklink/gstdecklinksrc.cpp index aa42468..b2e2c51 100644 --- a/sys/decklink/gstdecklinksrc.cpp +++ b/sys/decklink/gstdecklinksrc.cpp @@ -36,11 +36,12 @@ #endif #include +#include "gstdecklink.h" #include "gstdecklinksrc.h" #include "capture.h" #include -GST_DEBUG_CATEGORY_STATIC (gst_decklink_src_debug_category); +GST_DEBUG_CATEGORY (gst_decklink_src_debug_category); #define GST_CAT_DEFAULT gst_decklink_src_debug_category /* prototypes */ @@ -68,43 +69,64 @@ static gboolean gst_decklink_src_send_event (GstElement * element, static gboolean gst_decklink_src_query (GstElement * element, GstQuery * query); static GstCaps *gst_decklink_src_audio_src_getcaps (GstPad * pad); -static gboolean gst_decklink_src_audio_src_setcaps (GstPad * pad, GstCaps * caps); -static gboolean gst_decklink_src_audio_src_acceptcaps (GstPad * pad, GstCaps * caps); -static void gst_decklink_src_audio_src_fixatecaps (GstPad * pad, GstCaps * caps); +static gboolean gst_decklink_src_audio_src_setcaps (GstPad * pad, + GstCaps * caps); +static gboolean gst_decklink_src_audio_src_acceptcaps (GstPad * pad, + GstCaps * caps); +static void gst_decklink_src_audio_src_fixatecaps (GstPad * pad, + GstCaps * caps); static gboolean gst_decklink_src_audio_src_activate (GstPad * pad); static gboolean gst_decklink_src_audio_src_activatepush (GstPad * pad, gboolean active); static gboolean gst_decklink_src_audio_src_activatepull (GstPad * pad, gboolean active); -static GstPadLinkReturn gst_decklink_src_audio_src_link (GstPad * pad, GstPad * peer); +static GstPadLinkReturn gst_decklink_src_audio_src_link (GstPad * pad, + GstPad * peer); static GstFlowReturn gst_decklink_src_audio_src_getrange (GstPad * pad, guint64 offset, guint length, GstBuffer ** buffer); -static gboolean gst_decklink_src_audio_src_event (GstPad * pad, GstEvent * event); -static gboolean gst_decklink_src_audio_src_query (GstPad * pad, GstQuery * query); +static gboolean gst_decklink_src_audio_src_event (GstPad * pad, + GstEvent * event); +static gboolean gst_decklink_src_audio_src_query (GstPad * pad, + GstQuery * query); static GstIterator *gst_decklink_src_audio_src_iterintlink (GstPad * pad); static GstCaps *gst_decklink_src_video_src_getcaps (GstPad * pad); -static gboolean gst_decklink_src_video_src_setcaps (GstPad * pad, GstCaps * caps); -static gboolean gst_decklink_src_video_src_acceptcaps (GstPad * pad, GstCaps * caps); -static void gst_decklink_src_video_src_fixatecaps (GstPad * pad, GstCaps * caps); +static gboolean gst_decklink_src_video_src_setcaps (GstPad * pad, + GstCaps * caps); +static gboolean gst_decklink_src_video_src_acceptcaps (GstPad * pad, + GstCaps * caps); +static void gst_decklink_src_video_src_fixatecaps (GstPad * pad, + GstCaps * caps); static gboolean gst_decklink_src_video_src_activate (GstPad * pad); static gboolean gst_decklink_src_video_src_activatepush (GstPad * pad, gboolean active); static gboolean gst_decklink_src_video_src_activatepull (GstPad * pad, gboolean active); -static GstPadLinkReturn gst_decklink_src_video_src_link (GstPad * pad, GstPad * peer); +static GstPadLinkReturn gst_decklink_src_video_src_link (GstPad * pad, + GstPad * peer); static GstFlowReturn gst_decklink_src_video_src_getrange (GstPad * pad, guint64 offset, guint length, GstBuffer ** buffer); -static gboolean gst_decklink_src_video_src_event (GstPad * pad, GstEvent * event); -static gboolean gst_decklink_src_video_src_query (GstPad * pad, GstQuery * query); +static gboolean gst_decklink_src_video_src_event (GstPad * pad, + GstEvent * event); +static gboolean gst_decklink_src_video_src_query (GstPad * pad, + GstQuery * query); static GstIterator *gst_decklink_src_video_src_iterintlink (GstPad * pad); static void gst_decklink_src_task (void *priv); +#ifdef _MSC_VER +/* COM initialization/uninitialization thread */ +static void gst_decklink_src_com_thread (GstDecklinkSrc * src); +#endif /* _MSC_VER */ + enum { - PROP_0 + PROP_0, + PROP_MODE, + PROP_CONNECTION, + PROP_AUDIO_INPUT, + PROP_SUBDEVICE }; /* pad templates */ @@ -116,58 +138,7 @@ GST_STATIC_PAD_TEMPLATE ("audiosrc", GST_STATIC_CAPS ("audio/x-raw-int,width=16,depth=16,channels=2,rate=48000") ); -#define MODE(w,h,n,d,i) \ - "video/x-raw-yuv,format=(fourcc)UYVY,width=" #w ",height=" #h \ - ",framerate=" #n "/" #d ",interlaced=" #i - -static GstStaticPadTemplate gst_decklink_src_video_src_template = -GST_STATIC_PAD_TEMPLATE ("videosrc", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ( - MODE(720,486,30000,1001,true) ";" - MODE(720,486,24000,1001,true) ";" - MODE(720,576,25,1,true) ";" - MODE(1920,1080,24000,1001,false) ";" - MODE(1920,1080,24,1,false) ";" - MODE(1920,1080,25,1,false) ";" - MODE(1920,1080,30000,1001,false) ";" - MODE(1920,1080,30,1,false) ";" - MODE(1920,1080,25,1,true) ";" - MODE(1920,1080,30000,1001,true) ";" - MODE(1920,1080,30,1,true) ";" - MODE(1280,720,50,1,true) ";" - MODE(1280,720,60000,1001,true) ";" - MODE(1280,720,60,1,true) - )); - -typedef struct _DecklinkMode DecklinkMode; -struct _DecklinkMode { - BMDDisplayMode mode; - int width; - int height; - int fps_n; - int fps_d; - gboolean interlaced; -}; - -static DecklinkMode modes[] = { - { bmdModeNTSC, 720,486,30000,1001,true }, - { bmdModeNTSC2398, 720,486,24000,1001,true }, - { bmdModePAL, 720,576,25,1,true }, - { bmdModeHD1080p2398, 1920,1080,24000,1001,false }, - { bmdModeHD1080p24, 1920,1080,24,1,false }, - { bmdModeHD1080p25, 1920,1080,25,1,false }, - { bmdModeHD1080p2997, 1920,1080,30000,1001,false }, - { bmdModeHD1080p30, 1920,1080,30,1,false }, - { bmdModeHD1080i50, 1920,1080,25,1,true }, - { bmdModeHD1080i5994, 1920,1080,30000,1001,true }, - { bmdModeHD1080i6000, 1920,1080,30,1,true }, - { bmdModeHD720p50, 1280,720,50,1,true }, - { bmdModeHD720p5994, 1280,720,60000,1001,true }, - { bmdModeHD720p60, 1280,720,60,1,true } -}; - +/* the video source pad template is created on the fly */ /* class initialization */ @@ -182,11 +153,15 @@ static void gst_decklink_src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + GstPadTemplate *pad_template; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_decklink_src_audio_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_decklink_src_video_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_decklink_src_audio_src_template); + pad_template = + gst_pad_template_new ("videosrc", GST_PAD_SRC, GST_PAD_ALWAYS, + gst_decklink_mode_get_template_caps ()); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); gst_element_class_set_details_simple (element_class, "Decklink source", "Source/Video", "DeckLink Source", "David Schleef "); @@ -215,6 +190,30 @@ gst_decklink_src_class_init (GstDecklinkSrcClass * klass) element_class->send_event = GST_DEBUG_FUNCPTR (gst_decklink_src_send_event); element_class->query = GST_DEBUG_FUNCPTR (gst_decklink_src_query); + g_object_class_install_property (gobject_class, PROP_MODE, + g_param_spec_enum ("mode", "Mode", "Mode", + GST_TYPE_DECKLINK_MODE, GST_DECKLINK_MODE_NTSC, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + G_PARAM_CONSTRUCT))); + + g_object_class_install_property (gobject_class, PROP_CONNECTION, + g_param_spec_enum ("connection", "Connection", "Connection", + GST_TYPE_DECKLINK_CONNECTION, GST_DECKLINK_CONNECTION_SDI, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + G_PARAM_CONSTRUCT))); + + g_object_class_install_property (gobject_class, PROP_AUDIO_INPUT, + g_param_spec_enum ("audio-input", "Audio Input", "Audio Input Connection", + GST_TYPE_DECKLINK_AUDIO_CONNECTION, + GST_DECKLINK_AUDIO_CONNECTION_AUTO, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + G_PARAM_CONSTRUCT))); + + g_object_class_install_property (gobject_class, PROP_SUBDEVICE, + g_param_spec_int ("subdevice", "Subdevice", "Subdevice", + 0, 3, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + G_PARAM_CONSTRUCT))); } static void @@ -226,7 +225,8 @@ gst_decklink_src_init (GstDecklinkSrc * decklinksrc, gst_task_set_lock (decklinksrc->task, &decklinksrc->task_mutex); decklinksrc->audiosrcpad = - gst_pad_new_from_static_template (&gst_decklink_src_audio_src_template, "audiosrc"); + gst_pad_new_from_static_template (&gst_decklink_src_audio_src_template, + "audiosrc"); gst_pad_set_getcaps_function (decklinksrc->audiosrcpad, GST_DEBUG_FUNCPTR (gst_decklink_src_audio_src_getcaps)); gst_pad_set_setcaps_function (decklinksrc->audiosrcpad, @@ -256,7 +256,8 @@ gst_decklink_src_init (GstDecklinkSrc * decklinksrc, decklinksrc->videosrcpad = - gst_pad_new_from_static_template (&gst_decklink_src_video_src_template, "videosrc"); + gst_pad_new_from_template (gst_element_class_get_pad_template + (GST_ELEMENT_CLASS (decklinksrc_class), "videosrc"), "videosrc"); gst_pad_set_getcaps_function (decklinksrc->videosrcpad, GST_DEBUG_FUNCPTR (gst_decklink_src_video_src_getcaps)); gst_pad_set_setcaps_function (decklinksrc->videosrcpad, @@ -284,19 +285,37 @@ gst_decklink_src_init (GstDecklinkSrc * decklinksrc, gst_element_add_pad (GST_ELEMENT (decklinksrc), decklinksrc->videosrcpad); - decklinksrc->cond = g_cond_new(); - decklinksrc->mutex = g_mutex_new(); + decklinksrc->cond = g_cond_new (); + decklinksrc->mutex = g_mutex_new (); decklinksrc->copy_data = TRUE; - decklinksrc->mode = 0; - - decklinksrc->width = modes[decklinksrc->mode].width; - decklinksrc->height = modes[decklinksrc->mode].height; - decklinksrc->fps_n = modes[decklinksrc->mode].fps_n; - decklinksrc->fps_d = modes[decklinksrc->mode].fps_d; - decklinksrc->interlaced = modes[decklinksrc->mode].interlaced; - decklinksrc->bmd_mode = modes[decklinksrc->mode].mode; - + decklinksrc->mode = GST_DECKLINK_MODE_NTSC; + decklinksrc->connection = GST_DECKLINK_CONNECTION_SDI; + decklinksrc->audio_connection = GST_DECKLINK_AUDIO_CONNECTION_AUTO; + decklinksrc->subdevice = 0; + + decklinksrc->stop = FALSE; + decklinksrc->dropped_frames = 0; + decklinksrc->dropped_frames_old = 0; + decklinksrc->frame_num = -1; /* -1 so will be 0 after incrementing */ + +#ifdef _MSC_VER + decklinksrc->com_init_lock = g_mutex_new(); + decklinksrc->com_deinit_lock = g_mutex_new(); + decklinksrc->com_initialized = g_cond_new(); + decklinksrc->com_uninitialize = g_cond_new(); + decklinksrc->com_uninitialized = g_cond_new(); + + g_mutex_lock (decklinksrc->com_init_lock); + + /* create the COM initialization thread */ + g_thread_create ((GThreadFunc)gst_decklink_src_com_thread, + decklinksrc, FALSE, NULL); + + /* wait until the COM thread signals that COM has been initialized */ + g_cond_wait (decklinksrc->com_initialized, decklinksrc->com_init_lock); + g_mutex_unlock (decklinksrc->com_init_lock); +#endif /* _MSC_VER */ } void @@ -309,6 +328,20 @@ gst_decklink_src_set_property (GObject * object, guint property_id, decklinksrc = GST_DECKLINK_SRC (object); switch (property_id) { + case PROP_MODE: + decklinksrc->mode = (GstDecklinkModeEnum) g_value_get_enum (value); + break; + case PROP_CONNECTION: + decklinksrc->connection = + (GstDecklinkConnectionEnum) g_value_get_enum (value); + break; + case PROP_AUDIO_INPUT: + decklinksrc->audio_connection = + (GstDecklinkAudioConnectionEnum) g_value_get_enum (value); + break; + case PROP_SUBDEVICE: + decklinksrc->subdevice = g_value_get_int (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -325,19 +358,67 @@ gst_decklink_src_get_property (GObject * object, guint property_id, decklinksrc = GST_DECKLINK_SRC (object); switch (property_id) { + case PROP_MODE: + g_value_set_enum (value, decklinksrc->mode); + break; + case PROP_CONNECTION: + g_value_set_enum (value, decklinksrc->connection); + break; + case PROP_AUDIO_INPUT: + g_value_set_enum (value, decklinksrc->audio_connection); + break; + case PROP_SUBDEVICE: + g_value_set_int (value, decklinksrc->subdevice); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } +#ifdef _MSC_VER +static void +gst_decklink_src_com_thread (GstDecklinkSrc * src) +{ + HRESULT res; + + g_mutex_lock (src->com_init_lock); + + /* Initialize COM with a MTA for this process. This thread will + * be the first one to enter the apartement and the last one to leave + * it, unitializing COM properly */ + + res = CoInitializeEx (0, COINIT_MULTITHREADED); + if (res == S_FALSE) + GST_WARNING_OBJECT (src, "COM has been already initialized in the same process"); + else if (res == RPC_E_CHANGED_MODE) + GST_WARNING_OBJECT (src, "The concurrency model of COM has changed."); + else + GST_INFO_OBJECT (src, "COM intialized succesfully"); + + src->comInitialized = TRUE; + + /* Signal other threads waiting on this condition that COM was initialized */ + g_cond_signal (src->com_initialized); + + g_mutex_unlock (src->com_init_lock); + + /* Wait until the unitialize condition is met to leave the COM apartement */ + g_mutex_lock (src->com_deinit_lock); + g_cond_wait (src->com_uninitialize, src->com_deinit_lock); + + CoUninitialize (); + GST_INFO_OBJECT (src, "COM unintialized succesfully"); + src->comInitialized = FALSE; + g_cond_signal (src->com_uninitialized); + g_mutex_unlock (src->com_deinit_lock); +} +#endif /* _MSC_VER */ + void gst_decklink_src_dispose (GObject * object) { - GstDecklinkSrc *decklinksrc; - g_return_if_fail (GST_IS_DECKLINK_SRC (object)); - decklinksrc = GST_DECKLINK_SRC (object); /* clean up as possible. may be called multiple times */ @@ -365,6 +446,22 @@ gst_decklink_src_finalize (GObject * object) gst_caps_unref (decklinksrc->video_caps); } +#ifdef _MSC_VER + /* signal the COM thread that it should uninitialize COM */ + if (decklinksrc->comInitialized) { + g_mutex_lock (decklinksrc->com_deinit_lock); + g_cond_signal (decklinksrc->com_uninitialize); + g_cond_wait (decklinksrc->com_uninitialized, decklinksrc->com_deinit_lock); + g_mutex_unlock (decklinksrc->com_deinit_lock); + } + + g_mutex_free (decklinksrc->com_init_lock); + g_mutex_free (decklinksrc->com_deinit_lock); + g_cond_free (decklinksrc->com_initialized); + g_cond_free (decklinksrc->com_uninitialize); + g_cond_free (decklinksrc->com_uninitialized); +#endif /* _MSC_VER */ + G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -390,29 +487,37 @@ gst_decklink_src_start (GstElement * element) GstDecklinkSrc *decklinksrc = GST_DECKLINK_SRC (element); IDeckLinkIterator *iterator; DeckLinkCaptureDelegate *delegate; - IDeckLinkDisplayModeIterator *mode_iterator; - IDeckLinkDisplayMode *mode; - int i; - int sample_depth; + //IDeckLinkDisplayModeIterator *mode_iterator; + //IDeckLinkDisplayMode *mode; + BMDAudioSampleType sample_depth; int channels; - BMDVideoInputFlags input_flags; - BMDDisplayMode selected_mode; - BMDPixelFormat pixel_format; HRESULT ret; + const GstDecklinkMode *mode; + IDeckLinkConfiguration *config; + BMDVideoConnection conn; + BMDAudioConnection aconn; + int i; GST_DEBUG_OBJECT (decklinksrc, "start"); iterator = CreateDeckLinkIteratorInstance (); if (iterator == NULL) { - GST_ERROR("no driver"); + GST_ERROR ("no driver"); return FALSE; } ret = iterator->Next (&decklinksrc->decklink); if (ret != S_OK) { - GST_ERROR("no card"); + GST_ERROR ("no card"); return FALSE; } + for (i = 0; i < decklinksrc->subdevice; i++) { + ret = iterator->Next (&decklinksrc->decklink); + if (ret != S_OK) { + GST_ERROR ("no card"); + return FALSE; + } + } ret = decklinksrc->decklink->QueryInterface (IID_IDeckLinkInput, (void **) &decklinksrc->input); @@ -425,9 +530,79 @@ gst_decklink_src_start (GstElement * element) delegate->priv = decklinksrc; decklinksrc->input->SetCallback (delegate); + ret = decklinksrc->decklink->QueryInterface (IID_IDeckLinkConfiguration, + (void **) &config); + if (ret != S_OK) { + GST_ERROR ("query interface failed"); + return FALSE; + } + + switch (decklinksrc->connection) { + default: + case GST_DECKLINK_CONNECTION_SDI: + conn = bmdVideoConnectionSDI; + aconn = bmdAudioConnectionEmbedded; + break; + case GST_DECKLINK_CONNECTION_HDMI: + conn = bmdVideoConnectionHDMI; + aconn = bmdAudioConnectionEmbedded; + break; + case GST_DECKLINK_CONNECTION_OPTICAL_SDI: + conn = bmdVideoConnectionOpticalSDI; + aconn = bmdAudioConnectionEmbedded; + break; + case GST_DECKLINK_CONNECTION_COMPONENT: + conn = bmdVideoConnectionComponent; + aconn = bmdAudioConnectionAnalog; + break; + case GST_DECKLINK_CONNECTION_COMPOSITE: + conn = bmdVideoConnectionComposite; + aconn = bmdAudioConnectionAnalog; + break; + case GST_DECKLINK_CONNECTION_SVIDEO: + conn = bmdVideoConnectionSVideo; + aconn = bmdAudioConnectionAnalog; + break; + } + + ret = config->SetInt (bmdDeckLinkConfigVideoInputConnection, conn); + if (ret != S_OK) { + GST_ERROR ("set configuration (input source)"); + return FALSE; + } + + if (decklinksrc->connection == GST_DECKLINK_CONNECTION_COMPOSITE) { + ret = config->SetInt (bmdDeckLinkConfigAnalogVideoInputFlags, + bmdAnalogVideoFlagCompositeSetup75); + if (ret != S_OK) { + GST_ERROR ("set configuration (composite setup)"); + return FALSE; + } + } + + switch (decklinksrc->audio_connection) { + default: + case GST_DECKLINK_AUDIO_CONNECTION_AUTO: + break; + case GST_DECKLINK_AUDIO_CONNECTION_EMBEDDED: + aconn = bmdAudioConnectionEmbedded; + break; + case GST_DECKLINK_AUDIO_CONNECTION_AES_EBU: + aconn = bmdAudioConnectionAESEBU; + break; + case GST_DECKLINK_AUDIO_CONNECTION_ANALOG: + aconn = bmdAudioConnectionAnalog; + break; + } + ret = config->SetInt (bmdDeckLinkConfigAudioInputConnection, aconn); + if (ret != S_OK) { + GST_ERROR ("set configuration (audio input connection)"); + return FALSE; + } +#if 0 ret = decklinksrc->input->GetDisplayModeIterator (&mode_iterator); if (ret != S_OK) { - GST_ERROR("failed to get display mode iterator"); + GST_ERROR ("failed to get display mode iterator"); return FALSE; } @@ -437,34 +612,33 @@ gst_decklink_src_start (GstElement * element) mode->GetName (&mode_name); - GST_ERROR("%d: mode name: %s", i, mode_name); + GST_DEBUG ("%d: mode name: %s", i, mode_name); mode->Release (); i++; } +#endif + + mode = gst_decklink_get_mode (decklinksrc->mode); - pixel_format = bmdFormat8BitYUV; - selected_mode = decklinksrc->bmd_mode; - input_flags = 0; - ret = decklinksrc->input->EnableVideoInput (selected_mode, pixel_format, - input_flags); - if (ret != S_OK){ - GST_ERROR("enable video input failed"); + ret = decklinksrc->input->EnableVideoInput (mode->mode, bmdFormat8BitYUV, 0); + if (ret != S_OK) { + GST_ERROR ("enable video input failed"); return FALSE; } - sample_depth = 16; + sample_depth = bmdAudioSampleType16bitInteger; channels = 2; - ret = decklinksrc->input->EnableAudioInput (bmdAudioSampleRate48kHz, sample_depth, - channels); - if (ret != S_OK){ - GST_ERROR("enable video input failed"); + ret = decklinksrc->input->EnableAudioInput (bmdAudioSampleRate48kHz, + sample_depth, channels); + if (ret != S_OK) { + GST_ERROR ("enable video input failed"); return FALSE; } ret = decklinksrc->input->StartStreams (); if (ret != S_OK) { - GST_ERROR("start streams failed"); + GST_ERROR ("start streams failed"); return FALSE; } @@ -489,19 +663,24 @@ gst_decklink_src_stop (GstElement * element) gst_task_join (decklinksrc->task); + decklinksrc->input->StopStreams (); + decklinksrc->input->DisableVideoInput (); + decklinksrc->input->DisableAudioInput (); + + decklinksrc->input->Release (); + decklinksrc->input = NULL; + return TRUE; } static GstStateChangeReturn gst_decklink_src_change_state (GstElement * element, GstStateChange transition) { - GstDecklinkSrc *decklinksrc; GstStateChangeReturn ret; gboolean no_preroll = FALSE; g_return_val_if_fail (GST_IS_DECKLINK_SRC (element), GST_STATE_CHANGE_FAILURE); - decklinksrc = GST_DECKLINK_SRC (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: @@ -785,7 +964,7 @@ gst_decklink_src_video_src_getcaps (GstPad * pad) GST_DEBUG_OBJECT (decklinksrc, "getcaps"); - caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + caps = gst_decklink_mode_get_caps (decklinksrc->mode); gst_object_unref (decklinksrc); return caps; @@ -971,7 +1150,7 @@ gst_decklink_src_video_src_iterintlink (GstPad * pad) static void video_frame_free (void *data) { - IDeckLinkVideoInputFrame *video_frame = (IDeckLinkVideoInputFrame *)data; + IDeckLinkVideoInputFrame *video_frame = (IDeckLinkVideoInputFrame *) data; video_frame->Release (); } @@ -984,10 +1163,10 @@ gst_decklink_src_task (void *priv) GstBuffer *audio_buffer; IDeckLinkVideoInputFrame *video_frame; IDeckLinkAudioInputPacket *audio_frame; - int dropped_frames; void *data; int n_samples; GstFlowReturn ret; + const GstDecklinkMode *mode; GST_DEBUG_OBJECT (decklinksrc, "task"); @@ -997,100 +1176,107 @@ gst_decklink_src_task (void *priv) } video_frame = decklinksrc->video_frame; audio_frame = decklinksrc->audio_frame; - dropped_frames = decklinksrc->dropped_frames; decklinksrc->video_frame = NULL; decklinksrc->audio_frame = NULL; g_mutex_unlock (decklinksrc->mutex); if (decklinksrc->stop) { - GST_ERROR("stopping task"); + GST_DEBUG ("stopping task"); return; } - if (dropped_frames > 0) { - GST_ELEMENT_ERROR(decklinksrc, RESOURCE, READ, (NULL), (NULL)); - /* ERROR */ - return; + /* warning on dropped frames */ + if (decklinksrc->dropped_frames - decklinksrc->dropped_frames_old > 0) { + GST_ELEMENT_WARNING (decklinksrc, RESOURCE, READ, + ("Dropped %d frame(s), for a total of %d frame(s)", + decklinksrc->dropped_frames - decklinksrc->dropped_frames_old, + decklinksrc->dropped_frames), + (NULL)); + decklinksrc->dropped_frames_old = decklinksrc->dropped_frames; } + mode = gst_decklink_get_mode (decklinksrc->mode); + video_frame->GetBytes (&data); if (decklinksrc->copy_data) { - buffer = gst_buffer_new_and_alloc (decklinksrc->width * decklinksrc->height * 2); + buffer = gst_buffer_new_and_alloc (mode->width * mode->height * 2); - memcpy (GST_BUFFER_DATA (buffer), data, decklinksrc->width * decklinksrc->height * 2); + memcpy (GST_BUFFER_DATA (buffer), data, mode->width * mode->height * 2); video_frame->Release (); } else { buffer = gst_buffer_new (); - GST_BUFFER_SIZE (buffer) = decklinksrc->width * decklinksrc->height * 2; + GST_BUFFER_SIZE (buffer) = mode->width * mode->height * 2; - GST_BUFFER_DATA (buffer) = (guint8 *)data; + GST_BUFFER_DATA (buffer) = (guint8 *) data; GST_BUFFER_FREE_FUNC (buffer) = video_frame_free; - GST_BUFFER_MALLOCDATA (buffer) = (guint8 *)video_frame; + GST_BUFFER_MALLOCDATA (buffer) = (guint8 *) video_frame; } GST_BUFFER_TIMESTAMP (buffer) = - gst_util_uint64_scale_int (decklinksrc->num_frames * GST_SECOND, - decklinksrc->fps_d, decklinksrc->fps_n); + gst_util_uint64_scale_int (decklinksrc->frame_num * GST_SECOND, + mode->fps_d, mode->fps_n); GST_BUFFER_DURATION (buffer) = - gst_util_uint64_scale_int ((decklinksrc->num_frames + 1) * GST_SECOND, - decklinksrc->fps_d, decklinksrc->fps_n) - - GST_BUFFER_TIMESTAMP (buffer); - GST_BUFFER_OFFSET (buffer) = decklinksrc->num_frames; - if (decklinksrc->num_frames == 0) { - GST_BUFFER_FLAG_SET(buffer, GST_BUFFER_FLAG_DISCONT); + gst_util_uint64_scale_int ((decklinksrc->frame_num + 1) * GST_SECOND, + mode->fps_d, mode->fps_n) - GST_BUFFER_TIMESTAMP (buffer); + GST_BUFFER_OFFSET (buffer) = decklinksrc->frame_num; + GST_BUFFER_OFFSET_END (buffer) = decklinksrc->frame_num; + if (decklinksrc->frame_num == 0) { + GstEvent *event; + gboolean ret; + + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); + + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, + GST_CLOCK_TIME_NONE, 0); + + ret = gst_pad_push_event (decklinksrc->videosrcpad, event); + if (!ret) { + GST_ERROR_OBJECT (decklinksrc, "new segment event ret=%d", ret); + return; + } } - decklinksrc->num_frames ++; if (decklinksrc->video_caps == NULL) { - decklinksrc->video_caps = gst_caps_new_simple ("video/x-raw-yuv", - "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC('U','Y','V','Y'), - "width", G_TYPE_INT, decklinksrc->width, - "height", G_TYPE_INT, decklinksrc->height, - "framerate", GST_TYPE_FRACTION, - decklinksrc->fps_n, decklinksrc->fps_d, - "interlaced", G_TYPE_BOOLEAN, decklinksrc->interlaced, - NULL); + decklinksrc->video_caps = gst_decklink_mode_get_caps (decklinksrc->mode); } gst_buffer_set_caps (buffer, decklinksrc->video_caps); ret = gst_pad_push (decklinksrc->videosrcpad, buffer); if (ret != GST_FLOW_OK) { - GST_ELEMENT_ERROR(decklinksrc, CORE, NEGOTIATION, (NULL), (NULL)); + GST_ELEMENT_ERROR (decklinksrc, CORE, NEGOTIATION, (NULL), (NULL)); } + if (gst_pad_is_linked (decklinksrc->audiosrcpad)) { + n_samples = audio_frame->GetSampleFrameCount (); + audio_frame->GetBytes (&data); + audio_buffer = gst_buffer_new_and_alloc (n_samples * 2 * 2); + memcpy (GST_BUFFER_DATA (audio_buffer), data, n_samples * 2 * 2); - n_samples = audio_frame->GetSampleFrameCount(); - audio_frame->GetBytes (&data); - audio_buffer = gst_buffer_new_and_alloc (n_samples * 2 * 2); - memcpy (GST_BUFFER_DATA (audio_buffer), data, n_samples * 2 * 2); - audio_frame->Release (); - - GST_BUFFER_TIMESTAMP (audio_buffer) = - gst_util_uint64_scale_int (decklinksrc->num_audio_samples * GST_SECOND, + GST_BUFFER_TIMESTAMP (audio_buffer) = + gst_util_uint64_scale_int (decklinksrc->num_audio_samples * GST_SECOND, 1, 48000); - GST_BUFFER_DURATION (audio_buffer) = - gst_util_uint64_scale_int ((decklinksrc->num_audio_samples + n_samples) * GST_SECOND, - 1, 48000) - GST_BUFFER_TIMESTAMP (audio_buffer); - decklinksrc->num_audio_samples += n_samples; - - if (decklinksrc->audio_caps == NULL) { - decklinksrc->audio_caps = gst_caps_new_simple ("audio/x-raw-int", - "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, - "signed", G_TYPE_BOOLEAN, TRUE, - "depth", G_TYPE_INT, 16, - "width", G_TYPE_INT, 16, - "channels", G_TYPE_INT, 2, - "rate", G_TYPE_INT, 48000, - NULL); - } - gst_buffer_set_caps (audio_buffer, decklinksrc->audio_caps); - - ret = gst_pad_push (decklinksrc->audiosrcpad, audio_buffer); - if (ret != GST_FLOW_OK) { - GST_ELEMENT_ERROR(decklinksrc, CORE, NEGOTIATION, (NULL), (NULL)); + GST_BUFFER_DURATION (audio_buffer) = + gst_util_uint64_scale_int ((decklinksrc->num_audio_samples + + n_samples) * GST_SECOND, 1, + 48000) - GST_BUFFER_TIMESTAMP (audio_buffer); + decklinksrc->num_audio_samples += n_samples; + + if (decklinksrc->audio_caps == NULL) { + decklinksrc->audio_caps = gst_caps_new_simple ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, + "signed", G_TYPE_BOOLEAN, TRUE, + "depth", G_TYPE_INT, 16, + "width", G_TYPE_INT, 16, + "channels", G_TYPE_INT, 2, "rate", G_TYPE_INT, 48000, NULL); + } + gst_buffer_set_caps (audio_buffer, decklinksrc->audio_caps); + + ret = gst_pad_push (decklinksrc->audiosrcpad, audio_buffer); + if (ret != GST_FLOW_OK) { + GST_ELEMENT_ERROR (decklinksrc, CORE, NEGOTIATION, (NULL), (NULL)); + } } + audio_frame->Release (); } - - diff --git a/sys/decklink/gstdecklinksrc.h b/sys/decklink/gstdecklinksrc.h index 1200dc2..69dea49 100644 --- a/sys/decklink/gstdecklinksrc.h +++ b/sys/decklink/gstdecklinksrc.h @@ -21,10 +21,10 @@ #define _GST_DECKLINK_SRC_H_ #include -#include "DeckLinkAPI.h" +#include "gstdecklink.h" G_BEGIN_DECLS - +GST_DEBUG_CATEGORY_EXTERN (gst_decklink_src_debug_category); #define GST_TYPE_DECKLINK_SRC (gst_decklink_src_get_type()) #define GST_DECKLINK_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DECKLINK_SRC,GstDecklinkSrc)) #define GST_DECKLINK_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DECKLINK_SRC,GstDecklinkSrcClass)) @@ -49,6 +49,7 @@ struct _GstDecklinkSrc GMutex *mutex; GCond *cond; int dropped_frames; + int dropped_frames_old; gboolean stop; IDeckLinkVideoInputFrame *video_frame; IDeckLinkAudioInputPacket * audio_frame; @@ -56,10 +57,10 @@ struct _GstDecklinkSrc GstTask *task; GStaticRecMutex task_mutex; - int num_audio_samples; + guint64 num_audio_samples; GstCaps *video_caps; - int num_frames; + guint64 frame_num; int fps_n; int fps_d; int width; @@ -69,7 +70,19 @@ struct _GstDecklinkSrc /* properties */ gboolean copy_data; - int mode; + GstDecklinkModeEnum mode; + GstDecklinkConnectionEnum connection; + GstDecklinkAudioConnectionEnum audio_connection; + int subdevice; + +#ifdef _MSC_VER + gboolean comInitialized; + GMutex *com_init_lock; + GMutex *com_deinit_lock; + GCond *com_initialized; + GCond *com_uninitialize; + GCond *com_uninitialized; +#endif /* _MSC_VER */ }; struct _GstDecklinkSrcClass diff --git a/sys/decklink/DeckLinkAPI.h b/sys/decklink/linux/DeckLinkAPI.h similarity index 93% rename from sys/decklink/DeckLinkAPI.h rename to sys/decklink/linux/DeckLinkAPI.h index 19eb07e..e9c1066 100644 --- a/sys/decklink/DeckLinkAPI.h +++ b/sys/decklink/linux/DeckLinkAPI.h @@ -1,5 +1,5 @@ /* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design +** Copyright (c) 2011 Blackmagic Design ** ** Permission is hereby granted, free of charge, to any person or organization ** obtaining a copy of the software and accompanying documentation covered by @@ -70,7 +70,7 @@ typedef uint32_t BMDTimecodeUserBits; #define IID_IDeckLinkKeyer /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ (REFIID){0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3} #define IID_IDeckLinkVideoConversion /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ (REFIID){0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A} #define IID_IDeckLinkDeckControlStatusCallback /* E5F693C1-4283-4716-B18F-C1431521955B */ (REFIID){0xE5,0xF6,0x93,0xC1,0x42,0x83,0x47,0x16,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B} -#define IID_IDeckLinkDeckControl /* A4D81043-0619-42B7-8ED6-602D29041DF7 */ (REFIID){0xA4,0xD8,0x10,0x43,0x06,0x19,0x42,0xB7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7} +#define IID_IDeckLinkDeckControl /* 522A9E39-0F3C-4742-94EE-D80DE335DA1D */ (REFIID){0x52,0x2A,0x9E,0x39,0x0F,0x3C,0x47,0x42,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D} /* Enum BMDDisplayMode - Video display modes */ @@ -264,7 +264,9 @@ enum _BMDDisplayModeSupport { typedef uint32_t BMDTimecodeFormat; enum _BMDTimecodeFormat { bmdTimecodeRP188 = /* 'rp18' */ 0x72703138, + bmdTimecodeRP188Field2 = /* 'rp12' */ 0x72703132, bmdTimecodeVITC = /* 'vitc' */ 0x76697463, + bmdTimecodeVITCField2 = /* 'vit2' */ 0x76697432, bmdTimecodeSerial = /* 'seri' */ 0x73657269 }; @@ -367,11 +369,24 @@ enum _BMDVideo3DPackingFormat { }; +/* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */ + +typedef uint32_t BMDIdleVideoOutputOperation; +enum _BMDIdleVideoOutputOperation { + bmdIdleVideoOutputBlack = /* 'blac' */ 0x626C6163, + bmdIdleVideoOutputLastFrame = /* 'lafa' */ 0x6C616661 +}; + + /* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ typedef uint32_t BMDDeckLinkConfigurationID; enum _BMDDeckLinkConfigurationID { + /* Serial port Flags */ + + bmdDeckLinkConfigSwapSerialRxTx = /* 'ssrt' */ 0x73737274, + /* Video Input/Output Flags */ bmdDeckLinkConfigUse1080pNotPsF = /* 'fpro' */ 0x6670726F, @@ -379,6 +394,7 @@ enum _BMDDeckLinkConfigurationID { /* Video Input/Output Integers */ bmdDeckLinkConfigHDMI3DPackingFormat = /* '3dpf' */ 0x33647066, + bmdDeckLinkConfigBypass = /* 'byps' */ 0x62797073, /* Audio Input/Output Flags */ @@ -399,6 +415,17 @@ enum _BMDDeckLinkConfigurationID { bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D, bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66, bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74, + bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */ 0x766F696F, + + /* Video Output Floats */ + + bmdDeckLinkConfigVideoOutputComponentLumaGain = /* 'oclg' */ 0x6F636C67, + bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = /* 'occb' */ 0x6F636362, + bmdDeckLinkConfigVideoOutputComponentChromaRedGain = /* 'occr' */ 0x6F636372, + bmdDeckLinkConfigVideoOutputCompositeLumaGain = /* 'oilg' */ 0x6F696C67, + bmdDeckLinkConfigVideoOutputCompositeChromaGain = /* 'oicg' */ 0x6F696367, + bmdDeckLinkConfigVideoOutputSVideoLumaGain = /* 'oslg' */ 0x6F736C67, + bmdDeckLinkConfigVideoOutputSVideoChromaGain = /* 'oscg' */ 0x6F736367, /* Video Input Integers */ @@ -410,6 +437,16 @@ enum _BMDDeckLinkConfigurationID { bmdDeckLinkConfigVANCSourceLine2Mapping = /* 'vsl2' */ 0x76736C32, bmdDeckLinkConfigVANCSourceLine3Mapping = /* 'vsl3' */ 0x76736C33, + /* Video Input Floats */ + + bmdDeckLinkConfigVideoInputComponentLumaGain = /* 'iclg' */ 0x69636C67, + bmdDeckLinkConfigVideoInputComponentChromaBlueGain = /* 'iccb' */ 0x69636362, + bmdDeckLinkConfigVideoInputComponentChromaRedGain = /* 'iccr' */ 0x69636372, + bmdDeckLinkConfigVideoInputCompositeLumaGain = /* 'iilg' */ 0x69696C67, + bmdDeckLinkConfigVideoInputCompositeChromaGain = /* 'iicg' */ 0x69696367, + bmdDeckLinkConfigVideoInputSVideoLumaGain = /* 'islg' */ 0x69736C67, + bmdDeckLinkConfigVideoInputSVideoChromaGain = /* 'iscg' */ 0x69736367, + /* Audio Input Integers */ bmdDeckLinkConfigAudioInputConnection = /* 'aicn' */ 0x6169636E, @@ -449,6 +486,10 @@ enum _BMDDeckLinkAttributeID { BMDDeckLinkSupportsInputFormatDetection = /* 'infd' */ 0x696E6664, BMDDeckLinkHasReferenceInput = /* 'hrin' */ 0x6872696E, BMDDeckLinkHasSerialPort = /* 'hspt' */ 0x68737074, + BMDDeckLinkHasAnalogVideoOutputGain = /* 'avog' */ 0x61766F67, + BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = /* 'ovog' */ 0x6F766F67, + BMDDeckLinkHasVideoInputAntiAliasingFilter = /* 'aafl' */ 0x6161666C, + BMDDeckLinkHasBypass = /* 'byps' */ 0x62797073, /* Integers */ @@ -458,6 +499,13 @@ enum _BMDDeckLinkAttributeID { BMDDeckLinkVideoOutputConnections = /* 'vocn' */ 0x766F636E, BMDDeckLinkVideoInputConnections = /* 'vicn' */ 0x7669636E, + /* Floats */ + + BMDDeckLinkVideoInputGainMinimum = /* 'vigm' */ 0x7669676D, + BMDDeckLinkVideoInputGainMaximum = /* 'vigx' */ 0x76696778, + BMDDeckLinkVideoOutputGainMinimum = /* 'vogm' */ 0x766F676D, + BMDDeckLinkVideoOutputGainMaximum = /* 'vogx' */ 0x766F6778, + /* Strings */ BMDDeckLinkSerialPortDeviceName = /* 'slpn' */ 0x736C706E @@ -566,6 +614,8 @@ enum _BMDDeckControlError { bmdDeckControlNoTapeInDeckError = /* 'nter' */ 0x6E746572, bmdDeckControlNoVideoFromCardError = /* 'nvfc' */ 0x6E766663, bmdDeckControlNoCommunicationError = /* 'ncom' */ 0x6E636F6D, + bmdDeckControlBufferTooSmallError = /* 'btsm' */ 0x6274736D, + bmdDeckControlBadChecksumError = /* 'chks' */ 0x63686B73, bmdDeckControlUnknownError = /* 'uner' */ 0x756E6572 }; @@ -1046,6 +1096,7 @@ public: virtual HRESULT Close (/* in */ bool standbyOn) = 0; virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; @@ -1085,6 +1136,7 @@ protected: extern "C" { IDeckLinkIterator* CreateDeckLinkIteratorInstance (void); + IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void); IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void); IDeckLinkVideoConversion* CreateVideoConversionInstance (void); diff --git a/sys/decklink/linux/DeckLinkAPIDispatch.cpp b/sys/decklink/linux/DeckLinkAPIDispatch.cpp new file mode 100644 index 0000000..957f9a4 --- /dev/null +++ b/sys/decklink/linux/DeckLinkAPIDispatch.cpp @@ -0,0 +1,149 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include +#include +#include + +#include "DeckLinkAPI.h" + +#define kDeckLinkAPI_Name "libDeckLinkAPI.so" +#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" + +typedef IDeckLinkIterator *(*CreateIteratorFunc) (void); +typedef IDeckLinkAPIInformation *(*CreateAPIInformationFunc) (void); +typedef IDeckLinkGLScreenPreviewHelper + *(*CreateOpenGLScreenPreviewHelperFunc) (void); +typedef IDeckLinkVideoConversion *(*CreateVideoConversionInstanceFunc) (void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; + +static bool gLoadedDeckLinkAPI = false; + +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; + +void InitDeckLinkAPI (void); +void +InitDeckLinkAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen (kDeckLinkAPI_Name, RTLD_NOW | RTLD_GLOBAL); + if (!libraryHandle) { + fprintf (stderr, "%s\n", dlerror ()); + return; + } + + gLoadedDeckLinkAPI = true; + + gCreateIteratorFunc = + (CreateIteratorFunc) dlsym (libraryHandle, + "CreateDeckLinkIteratorInstance_0001"); + if (!gCreateIteratorFunc) + fprintf (stderr, "%s\n", dlerror ()); + gCreateAPIInformationFunc = + (CreateAPIInformationFunc) dlsym (libraryHandle, + "CreateDeckLinkAPIInformationInstance_0001"); + if (!gCreateAPIInformationFunc) + fprintf (stderr, "%s\n", dlerror ()); + gCreateVideoConversionFunc = + (CreateVideoConversionInstanceFunc) dlsym (libraryHandle, + "CreateVideoConversionInstance_0001"); + if (!gCreateVideoConversionFunc) + fprintf (stderr, "%s\n", dlerror ()); +} + +void InitDeckLinkPreviewAPI (void); +void +InitDeckLinkPreviewAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen (KDeckLinkPreviewAPI_Name, RTLD_NOW | RTLD_GLOBAL); + if (!libraryHandle) { + fprintf (stderr, "%s\n", dlerror ()); + return; + } + gCreateOpenGLPreviewFunc = + (CreateOpenGLScreenPreviewHelperFunc) dlsym (libraryHandle, + "CreateOpenGLScreenPreviewHelper_0001"); + if (!gCreateOpenGLPreviewFunc) + fprintf (stderr, "%s\n", dlerror ()); +} + +bool IsDeckLinkAPIPresent (void); +bool +IsDeckLinkAPIPresent (void) +{ + // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller + return gLoadedDeckLinkAPI; +} + +IDeckLinkIterator * +CreateDeckLinkIteratorInstance (void) +{ + pthread_once (&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + return gCreateIteratorFunc (); +} + +IDeckLinkAPIInformation * +CreateDeckLinkAPIInformationInstance (void) +{ + pthread_once (&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + return gCreateAPIInformationFunc (); +} + +IDeckLinkGLScreenPreviewHelper * +CreateOpenGLScreenPreviewHelper (void) +{ + pthread_once (&gDeckLinkOnceControl, InitDeckLinkAPI); + pthread_once (&gPreviewOnceControl, InitDeckLinkPreviewAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + return gCreateOpenGLPreviewFunc (); +} + +IDeckLinkVideoConversion * +CreateVideoConversionInstance (void) +{ + pthread_once (&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + return gCreateVideoConversionFunc (); +} diff --git a/sys/decklink/LinuxCOM.h b/sys/decklink/linux/LinuxCOM.h similarity index 100% rename from sys/decklink/LinuxCOM.h rename to sys/decklink/linux/LinuxCOM.h diff --git a/sys/decklink/win/DeckLinkAPI.h b/sys/decklink/win/DeckLinkAPI.h new file mode 100644 index 0000000..0341ce8 --- /dev/null +++ b/sys/decklink/win/DeckLinkAPI.h @@ -0,0 +1,9217 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 7.00.0500 */ +/* at Fri Jun 17 10:43:51 2011 + */ +/* Compiler settings for .\win\DeckLinkAPI.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + + +#ifndef __DeckLinkAPI_h__ +#define __DeckLinkAPI_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback; +#endif /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_FWD_DEFINED__ +#define __IDeckLinkInputCallback_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback IDeckLinkInputCallback; +#endif /* __IDeckLinkInputCallback_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__ +#define __IDeckLinkMemoryAllocator_FWD_DEFINED__ +typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator; +#endif /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +#define __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback; +#endif /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkIterator_FWD_DEFINED__ +#define __IDeckLinkIterator_FWD_DEFINED__ +typedef interface IDeckLinkIterator IDeckLinkIterator; +#endif /* __IDeckLinkIterator_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkAPIInformation_FWD_DEFINED__ +#define __IDeckLinkAPIInformation_FWD_DEFINED__ +typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation; +#endif /* __IDeckLinkAPIInformation_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator; +#endif /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode; +#endif /* __IDeckLinkDisplayMode_FWD_DEFINED__ */ + + +#ifndef __IDeckLink_FWD_DEFINED__ +#define __IDeckLink_FWD_DEFINED__ +typedef interface IDeckLink IDeckLink; +#endif /* __IDeckLink_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_FWD_DEFINED__ +#define __IDeckLinkOutput_FWD_DEFINED__ +typedef interface IDeckLinkOutput IDeckLinkOutput; +#endif /* __IDeckLinkOutput_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInput_FWD_DEFINED__ +#define __IDeckLinkInput_FWD_DEFINED__ +typedef interface IDeckLinkInput IDeckLinkInput; +#endif /* __IDeckLinkInput_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkTimecode_FWD_DEFINED__ +#define __IDeckLinkTimecode_FWD_DEFINED__ +typedef interface IDeckLinkTimecode IDeckLinkTimecode; +#endif /* __IDeckLinkTimecode_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame; +#endif /* __IDeckLinkVideoFrame_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame; +#endif /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +#define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions; +#endif /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame; +#endif /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +#define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary; +#endif /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket; +#endif /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback; +#endif /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper; +#endif /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkConfiguration_FWD_DEFINED__ +#define __IDeckLinkConfiguration_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration IDeckLinkConfiguration; +#endif /* __IDeckLinkConfiguration_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkAttributes_FWD_DEFINED__ +#define __IDeckLinkAttributes_FWD_DEFINED__ +typedef interface IDeckLinkAttributes IDeckLinkAttributes; +#endif /* __IDeckLinkAttributes_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkKeyer_FWD_DEFINED__ +#define __IDeckLinkKeyer_FWD_DEFINED__ +typedef interface IDeckLinkKeyer IDeckLinkKeyer; +#endif /* __IDeckLinkKeyer_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoConversion_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion; +#endif /* __IDeckLinkVideoConversion_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback; +#endif /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDeckControl_FWD_DEFINED__ +#define __IDeckLinkDeckControl_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl IDeckLinkDeckControl; +#endif /* __IDeckLinkDeckControl_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkIterator_FWD_DEFINED__ +#define __CDeckLinkIterator_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkIterator CDeckLinkIterator; +#else +typedef struct CDeckLinkIterator CDeckLinkIterator; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkIterator_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkAPIInformation_FWD_DEFINED__ +#define __CDeckLinkAPIInformation_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation; +#else +typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkAPIInformation_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper; +#else +typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkVideoConversion_FWD_DEFINED__ +#define __CDeckLinkVideoConversion_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion; +#else +typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkVideoConversion_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ +#define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9; +#endif /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6; +#endif /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6; +#endif /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6; +#endif /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__ +#define __IDeckLinkInput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6; +#endif /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +#define __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6; +#endif /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6; +#endif /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6; +#endif /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6; +#endif /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6; +#endif /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6; +#endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6; +#endif /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6; +#endif /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6; +#endif /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6; +#endif /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6; +#else +typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */ + + +#ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6; +#else +typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6; +#endif /* __cplusplus */ + +#endif /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3; +#endif /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3; +#endif /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__ +#define __IDeckLinkInput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3; +#endif /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3; +#endif /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1; +#endif /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1; +#endif /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1; +#endif /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1; +#endif /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1; +#endif /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1; +#endif /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1; +#endif /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1; +#endif /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__ +#define __IDeckLinkInput_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1; +#endif /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "unknwn.h" + +#ifdef __cplusplus +extern "C"{ +#endif + + + +#ifndef __DeckLinkAPI_LIBRARY_DEFINED__ +#define __DeckLinkAPI_LIBRARY_DEFINED__ + +/* library DeckLinkAPI */ +/* [helpstring][version][uuid] */ + +typedef LONGLONG BMDTimeValue; + +typedef LONGLONG BMDTimeScale; + +typedef unsigned long BMDTimecodeBCD; + +typedef unsigned long BMDTimecodeUserBits; + +typedef unsigned long BMDDisplayModeFlags; +typedef unsigned long BMDFrameFlags; +typedef unsigned long BMDVideoInputFlags; +typedef unsigned long BMDVideoInputFormatChangedEvents; +typedef unsigned long BMDDetectedVideoInputFormatFlags; +typedef unsigned long BMDTimecodeFlags; +typedef unsigned long BMDAnalogVideoFlags; +typedef unsigned long BMDDeckControlStatusFlags; +typedef unsigned long BMDDeckControlExportModeOpsFlags; +#if 0 +typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags; + +typedef enum _BMDFrameFlags BMDFrameFlags; + +typedef enum _BMDVideoInputFlags BMDVideoInputFlags; + +typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents; + +typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags; + +typedef enum _BMDTimecodeFlags BMDTimecodeFlags; + +typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags; + +typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags; + +typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags; + +#endif +typedef /* [v1_enum] */ +enum _BMDDisplayMode + { bmdModeNTSC = 0x6e747363, + bmdModeNTSC2398 = 0x6e743233, + bmdModePAL = 0x70616c20, + bmdModeNTSCp = 0x6e747370, + bmdModePALp = 0x70616c70, + bmdModeHD1080p2398 = 0x32337073, + bmdModeHD1080p24 = 0x32347073, + bmdModeHD1080p25 = 0x48703235, + bmdModeHD1080p2997 = 0x48703239, + bmdModeHD1080p30 = 0x48703330, + bmdModeHD1080i50 = 0x48693530, + bmdModeHD1080i5994 = 0x48693539, + bmdModeHD1080i6000 = 0x48693630, + bmdModeHD1080p50 = 0x48703530, + bmdModeHD1080p5994 = 0x48703539, + bmdModeHD1080p6000 = 0x48703630, + bmdModeHD720p50 = 0x68703530, + bmdModeHD720p5994 = 0x68703539, + bmdModeHD720p60 = 0x68703630, + bmdMode2k2398 = 0x326b3233, + bmdMode2k24 = 0x326b3234, + bmdMode2k25 = 0x326b3235 + } BMDDisplayMode; + +typedef /* [v1_enum] */ +enum _BMDFieldDominance + { bmdUnknownFieldDominance = 0, + bmdLowerFieldFirst = 0x6c6f7772, + bmdUpperFieldFirst = 0x75707072, + bmdProgressiveFrame = 0x70726f67, + bmdProgressiveSegmentedFrame = 0x70736620 + } BMDFieldDominance; + +typedef /* [v1_enum] */ +enum _BMDPixelFormat + { bmdFormat8BitYUV = 0x32767579, + bmdFormat10BitYUV = 0x76323130, + bmdFormat8BitARGB = 32, + bmdFormat8BitBGRA = 0x42475241, + bmdFormat10BitRGB = 0x72323130 + } BMDPixelFormat; + +/* [v1_enum] */ +enum _BMDDisplayModeFlags + { bmdDisplayModeSupports3D = ( 1 << 0 ) , + bmdDisplayModeColorspaceRec601 = ( 1 << 1 ) , + bmdDisplayModeColorspaceRec709 = ( 1 << 2 ) + } ; +typedef /* [v1_enum] */ +enum _BMDVideoOutputFlags + { bmdVideoOutputFlagDefault = 0, + bmdVideoOutputVANC = ( 1 << 0 ) , + bmdVideoOutputVITC = ( 1 << 1 ) , + bmdVideoOutputRP188 = ( 1 << 2 ) , + bmdVideoOutputDualStream3D = ( 1 << 4 ) + } BMDVideoOutputFlags; + +/* [v1_enum] */ +enum _BMDFrameFlags + { bmdFrameFlagDefault = 0, + bmdFrameFlagFlipVertical = ( 1 << 0 ) , + bmdFrameHasNoInputSource = ( 1 << 31 ) + } ; +/* [v1_enum] */ +enum _BMDVideoInputFlags + { bmdVideoInputFlagDefault = 0, + bmdVideoInputEnableFormatDetection = ( 1 << 0 ) , + bmdVideoInputDualStream3D = ( 1 << 1 ) + } ; +/* [v1_enum] */ +enum _BMDVideoInputFormatChangedEvents + { bmdVideoInputDisplayModeChanged = ( 1 << 0 ) , + bmdVideoInputFieldDominanceChanged = ( 1 << 1 ) , + bmdVideoInputColorspaceChanged = ( 1 << 2 ) + } ; +/* [v1_enum] */ +enum _BMDDetectedVideoInputFormatFlags + { bmdDetectedVideoInputYCbCr422 = ( 1 << 0 ) , + bmdDetectedVideoInputRGB444 = ( 1 << 1 ) + } ; +typedef /* [v1_enum] */ +enum _BMDOutputFrameCompletionResult + { bmdOutputFrameCompleted = 0, + bmdOutputFrameDisplayedLate = ( bmdOutputFrameCompleted + 1 ) , + bmdOutputFrameDropped = ( bmdOutputFrameDisplayedLate + 1 ) , + bmdOutputFrameFlushed = ( bmdOutputFrameDropped + 1 ) + } BMDOutputFrameCompletionResult; + +typedef /* [v1_enum] */ +enum _BMDReferenceStatus + { bmdReferenceNotSupportedByHardware = ( 1 << 0 ) , + bmdReferenceLocked = ( 1 << 1 ) + } BMDReferenceStatus; + +typedef /* [v1_enum] */ +enum _BMDAudioSampleRate + { bmdAudioSampleRate48kHz = 48000 + } BMDAudioSampleRate; + +typedef /* [v1_enum] */ +enum _BMDAudioSampleType + { bmdAudioSampleType16bitInteger = 16, + bmdAudioSampleType32bitInteger = 32 + } BMDAudioSampleType; + +typedef /* [v1_enum] */ +enum _BMDAudioOutputStreamType + { bmdAudioOutputStreamContinuous = 0, + bmdAudioOutputStreamContinuousDontResample = ( bmdAudioOutputStreamContinuous + 1 ) , + bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) + } BMDAudioOutputStreamType; + +typedef /* [v1_enum] */ +enum _BMDDisplayModeSupport + { bmdDisplayModeNotSupported = 0, + bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) , + bmdDisplayModeSupportedWithConversion = ( bmdDisplayModeSupported + 1 ) + } BMDDisplayModeSupport; + +typedef /* [v1_enum] */ +enum _BMDTimecodeFormat + { bmdTimecodeRP188 = 0x72703138, + bmdTimecodeRP188Field2 = 0x72703132, + bmdTimecodeVITC = 0x76697463, + bmdTimecodeVITCField2 = 0x76697432, + bmdTimecodeSerial = 0x73657269 + } BMDTimecodeFormat; + +/* [v1_enum] */ +enum _BMDTimecodeFlags + { bmdTimecodeFlagDefault = 0, + bmdTimecodeIsDropFrame = ( 1 << 0 ) + } ; +typedef /* [v1_enum] */ +enum _BMDVideoConnection + { bmdVideoConnectionSDI = ( 1 << 0 ) , + bmdVideoConnectionHDMI = ( 1 << 1 ) , + bmdVideoConnectionOpticalSDI = ( 1 << 2 ) , + bmdVideoConnectionComponent = ( 1 << 3 ) , + bmdVideoConnectionComposite = ( 1 << 4 ) , + bmdVideoConnectionSVideo = ( 1 << 5 ) + } BMDVideoConnection; + +/* [v1_enum] */ +enum _BMDAnalogVideoFlags + { bmdAnalogVideoFlagCompositeSetup75 = ( 1 << 0 ) , + bmdAnalogVideoFlagComponentBetacamLevels = ( 1 << 1 ) + } ; +typedef /* [v1_enum] */ +enum _BMDAudioConnection + { bmdAudioConnectionEmbedded = 0x656d6264, + bmdAudioConnectionAESEBU = 0x61657320, + bmdAudioConnectionAnalog = 0x616e6c67 + } BMDAudioConnection; + +typedef /* [v1_enum] */ +enum _BMDAudioOutputAnalogAESSwitch + { bmdAudioOutputSwitchAESEBU = 0x61657320, + bmdAudioOutputSwitchAnalog = 0x616e6c67 + } BMDAudioOutputAnalogAESSwitch; + +typedef /* [v1_enum] */ +enum _BMDVideoOutputConversionMode + { bmdNoVideoOutputConversion = 0x6e6f6e65, + bmdVideoOutputLetterboxDownconversion = 0x6c746278, + bmdVideoOutputAnamorphicDownconversion = 0x616d7068, + bmdVideoOutputHD720toHD1080Conversion = 0x37323063, + bmdVideoOutputHardwareLetterboxDownconversion = 0x48576c62, + bmdVideoOutputHardwareAnamorphicDownconversion = 0x4857616d, + bmdVideoOutputHardwareCenterCutDownconversion = 0x48576363, + bmdVideoOutputHardware720p1080pCrossconversion = 0x78636170, + bmdVideoOutputHardwareAnamorphic720pUpconversion = 0x75613770, + bmdVideoOutputHardwareAnamorphic1080iUpconversion = 0x75613169, + bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 0x75343770, + bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 0x75343169, + bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770, + bmdVideoOutputHardwarePillarbox1080iUpconversion = 0x75703169 + } BMDVideoOutputConversionMode; + +typedef /* [v1_enum] */ +enum _BMDVideoInputConversionMode + { bmdNoVideoInputConversion = 0x6e6f6e65, + bmdVideoInputLetterboxDownconversionFromHD1080 = 0x31306c62, + bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d, + bmdVideoInputLetterboxDownconversionFromHD720 = 0x37326c62, + bmdVideoInputAnamorphicDownconversionFromHD720 = 0x3732616d, + bmdVideoInputLetterboxUpconversion = 0x6c627570, + bmdVideoInputAnamorphicUpconversion = 0x616d7570 + } BMDVideoInputConversionMode; + +typedef /* [v1_enum] */ +enum _BMDVideo3DPackingFormat + { bmdVideo3DPackingSidebySideHalf = 0x73627368, + bmdVideo3DPackingLinebyLine = 0x6c62796c, + bmdVideo3DPackingTopAndBottom = 0x7461626f, + bmdVideo3DPackingFramePacking = 0x6672706b, + bmdVideo3DPackingLeftOnly = 0x6c656674, + bmdVideo3DPackingRightOnly = 0x72696768 + } BMDVideo3DPackingFormat; + +typedef /* [v1_enum] */ +enum _BMDIdleVideoOutputOperation + { bmdIdleVideoOutputBlack = 0x626c6163, + bmdIdleVideoOutputLastFrame = 0x6c616661 + } BMDIdleVideoOutputOperation; + +typedef /* [v1_enum] */ +enum _BMDDeckLinkConfigurationID + { bmdDeckLinkConfigSwapSerialRxTx = 0x73737274, + bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f, + bmdDeckLinkConfigHDMI3DPackingFormat = 0x33647066, + bmdDeckLinkConfigBypass = 0x62797073, + bmdDeckLinkConfigAnalogAudioConsumerLevels = 0x6161636c, + bmdDeckLinkConfigFieldFlickerRemoval = 0x66646672, + bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 0x746f3539, + bmdDeckLinkConfig444SDIVideoOutput = 0x3434346f, + bmdDeckLinkConfig3GBpsVideoOutput = 0x33676273, + bmdDeckLinkConfigBlackVideoOutputDuringCapture = 0x62766f63, + bmdDeckLinkConfigLowLatencyVideoOutput = 0x6c6c766f, + bmdDeckLinkConfigVideoOutputConnection = 0x766f636e, + bmdDeckLinkConfigVideoOutputConversionMode = 0x766f636d, + bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66, + bmdDeckLinkConfigReferenceInputTimingOffset = 0x676c6f74, + bmdDeckLinkConfigVideoOutputIdleOperation = 0x766f696f, + bmdDeckLinkConfigVideoOutputComponentLumaGain = 0x6f636c67, + bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 0x6f636362, + bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 0x6f636372, + bmdDeckLinkConfigVideoOutputCompositeLumaGain = 0x6f696c67, + bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367, + bmdDeckLinkConfigVideoOutputSVideoLumaGain = 0x6f736c67, + bmdDeckLinkConfigVideoOutputSVideoChromaGain = 0x6f736367, + bmdDeckLinkConfigVideoInputConnection = 0x7669636e, + bmdDeckLinkConfigAnalogVideoInputFlags = 0x61766966, + bmdDeckLinkConfigVideoInputConversionMode = 0x7669636d, + bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966, + bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31, + bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32, + bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33, + bmdDeckLinkConfigVideoInputComponentLumaGain = 0x69636c67, + bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 0x69636362, + bmdDeckLinkConfigVideoInputComponentChromaRedGain = 0x69636372, + bmdDeckLinkConfigVideoInputCompositeLumaGain = 0x69696c67, + bmdDeckLinkConfigVideoInputCompositeChromaGain = 0x69696367, + bmdDeckLinkConfigVideoInputSVideoLumaGain = 0x69736c67, + bmdDeckLinkConfigVideoInputSVideoChromaGain = 0x69736367, + bmdDeckLinkConfigAudioInputConnection = 0x6169636e, + bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331, + bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 0x61697332, + bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 0x61697333, + bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 0x61697334, + bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973, + bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 0x616f6161, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334, + bmdDeckLinkConfigDigitalAudioOutputScale = 0x64616f73 + } BMDDeckLinkConfigurationID; + +typedef /* [v1_enum] */ +enum _BMDDeckLinkAttributeID + { BMDDeckLinkSupportsInternalKeying = 0x6b657969, + BMDDeckLinkSupportsExternalKeying = 0x6b657965, + BMDDeckLinkSupportsHDKeying = 0x6b657968, + BMDDeckLinkSupportsInputFormatDetection = 0x696e6664, + BMDDeckLinkHasReferenceInput = 0x6872696e, + BMDDeckLinkHasSerialPort = 0x68737074, + BMDDeckLinkHasAnalogVideoOutputGain = 0x61766f67, + BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 0x6f766f67, + BMDDeckLinkHasVideoInputAntiAliasingFilter = 0x6161666c, + BMDDeckLinkHasBypass = 0x62797073, + BMDDeckLinkMaximumAudioChannels = 0x6d616368, + BMDDeckLinkNumberOfSubDevices = 0x6e736264, + BMDDeckLinkSubDeviceIndex = 0x73756269, + BMDDeckLinkVideoOutputConnections = 0x766f636e, + BMDDeckLinkVideoInputConnections = 0x7669636e, + BMDDeckLinkVideoInputGainMinimum = 0x7669676d, + BMDDeckLinkVideoInputGainMaximum = 0x76696778, + BMDDeckLinkVideoOutputGainMinimum = 0x766f676d, + BMDDeckLinkVideoOutputGainMaximum = 0x766f6778, + BMDDeckLinkSerialPortDeviceName = 0x736c706e + } BMDDeckLinkAttributeID; + +typedef /* [v1_enum] */ +enum _BMDDeckLinkAPIInformationID + { BMDDeckLinkAPIVersion = 0x76657273 + } BMDDeckLinkAPIInformationID; + +typedef /* [v1_enum] */ +enum _BMDDeckControlMode + { bmdDeckControlNotOpened = 0x6e746f70, + bmdDeckControlVTRControlMode = 0x76747263, + bmdDeckControlExportMode = 0x6578706d, + bmdDeckControlCaptureMode = 0x6361706d + } BMDDeckControlMode; + +typedef /* [v1_enum] */ +enum _BMDDeckControlEvent + { bmdDeckControlAbortedEvent = 0x61627465, + bmdDeckControlPrepareForExportEvent = 0x70666565, + bmdDeckControlExportCompleteEvent = 0x65786365, + bmdDeckControlPrepareForCaptureEvent = 0x70666365, + bmdDeckControlCaptureCompleteEvent = 0x63636576 + } BMDDeckControlEvent; + +typedef /* [v1_enum] */ +enum _BMDDeckControlVTRControlState + { bmdDeckControlNotInVTRControlMode = 0x6e76636d, + bmdDeckControlVTRControlPlaying = 0x76747270, + bmdDeckControlVTRControlRecording = 0x76747272, + bmdDeckControlVTRControlStill = 0x76747261, + bmdDeckControlVTRControlSeeking = 0x76747273, + bmdDeckControlVTRControlStopped = 0x7674726f + } BMDDeckControlVTRControlState; + +/* [v1_enum] */ +enum _BMDDeckControlStatusFlags + { bmdDeckControlStatusDeckConnected = ( 1 << 0 ) , + bmdDeckControlStatusRemoteMode = ( 1 << 1 ) , + bmdDeckControlStatusRecordInhibited = ( 1 << 2 ) , + bmdDeckControlStatusCassetteOut = ( 1 << 3 ) + } ; +/* [v1_enum] */ +enum _BMDDeckControlExportModeOpsFlags + { bmdDeckControlExportModeInsertVideo = ( 1 << 0 ) , + bmdDeckControlExportModeInsertAudio1 = ( 1 << 1 ) , + bmdDeckControlExportModeInsertAudio2 = ( 1 << 2 ) , + bmdDeckControlExportModeInsertAudio3 = ( 1 << 3 ) , + bmdDeckControlExportModeInsertAudio4 = ( 1 << 4 ) , + bmdDeckControlExportModeInsertAudio5 = ( 1 << 5 ) , + bmdDeckControlExportModeInsertAudio6 = ( 1 << 6 ) , + bmdDeckControlExportModeInsertAudio7 = ( 1 << 7 ) , + bmdDeckControlExportModeInsertAudio8 = ( 1 << 8 ) , + bmdDeckControlExportModeInsertAudio9 = ( 1 << 9 ) , + bmdDeckControlExportModeInsertAudio10 = ( 1 << 10 ) , + bmdDeckControlExportModeInsertAudio11 = ( 1 << 11 ) , + bmdDeckControlExportModeInsertAudio12 = ( 1 << 12 ) , + bmdDeckControlExportModeInsertTimeCode = ( 1 << 13 ) , + bmdDeckControlExportModeInsertAssemble = ( 1 << 14 ) , + bmdDeckControlExportModeInsertPreview = ( 1 << 15 ) , + bmdDeckControlUseManualExport = ( 1 << 16 ) + } ; +typedef /* [v1_enum] */ +enum _BMDDeckControlError + { bmdDeckControlNoError = 0x6e6f6572, + bmdDeckControlModeError = 0x6d6f6572, + bmdDeckControlMissedInPointError = 0x6d696572, + bmdDeckControlDeckTimeoutError = 0x64746572, + bmdDeckControlCommandFailedError = 0x63666572, + bmdDeckControlDeviceAlreadyOpenedError = 0x64616c6f, + bmdDeckControlFailedToOpenDeviceError = 0x66646572, + bmdDeckControlInLocalModeError = 0x6c6d6572, + bmdDeckControlEndOfTapeError = 0x65746572, + bmdDeckControlUserAbortError = 0x75616572, + bmdDeckControlNoTapeInDeckError = 0x6e746572, + bmdDeckControlNoVideoFromCardError = 0x6e766663, + bmdDeckControlNoCommunicationError = 0x6e636f6d, + bmdDeckControlBufferTooSmallError = 0x6274736d, + bmdDeckControlBadChecksumError = 0x63686b73, + bmdDeckControlUnknownError = 0x756e6572 + } BMDDeckControlError; + +typedef /* [v1_enum] */ +enum _BMD3DPreviewFormat + { bmd3DPreviewFormatDefault = 0x64656661, + bmd3DPreviewFormatLeftOnly = 0x6c656674, + bmd3DPreviewFormatRightOnly = 0x72696768, + bmd3DPreviewFormatSideBySide = 0x73696465, + bmd3DPreviewFormatTopBottom = 0x746f7062 + } BMD3DPreviewFormat; + + + + + + + + + + + + + + + + + + + + + + + + + + + +typedef /* [v1_enum] */ +enum _BMDVideoConnection_v7_6 + { bmdVideoConnectionSDI_v7_6 = 0x73646920, + bmdVideoConnectionHDMI_v7_6 = 0x68646d69, + bmdVideoConnectionOpticalSDI_v7_6 = 0x6f707469, + bmdVideoConnectionComponent_v7_6 = 0x63706e74, + bmdVideoConnectionComposite_v7_6 = 0x636d7374, + bmdVideoConnectionSVideo_v7_6 = 0x73766964 + } BMDVideoConnection_v7_6; + + + + + + + + + + + + + + + + + + + + + + + +EXTERN_C const IID LIBID_DeckLinkAPI; + +#ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoOutputCallback */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoOutputCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE") + IDeckLinkVideoOutputCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + /* [in] */ IDeckLinkVideoFrame *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoOutputCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoOutputCallback * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoOutputCallback * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoOutputCallback * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( + IDeckLinkVideoOutputCallback * This, + /* [in] */ IDeckLinkVideoFrame *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result); + + HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( + IDeckLinkVideoOutputCallback * This); + + END_INTERFACE + } IDeckLinkVideoOutputCallbackVtbl; + + interface IDeckLinkVideoOutputCallback + { + CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoOutputCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoOutputCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result) \ + ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) + +#define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) \ + ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_INTERFACE_DEFINED__ + +/* interface IDeckLinkInputCallback */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInputCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A") + IDeckLinkInputCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + /* [in] */ IDeckLinkVideoInputFrame *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInputCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInputCallback * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInputCallback * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInputCallback * This); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( + IDeckLinkInputCallback * This, + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( + IDeckLinkInputCallback * This, + /* [in] */ IDeckLinkVideoInputFrame *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE + } IDeckLinkInputCallbackVtbl; + + interface IDeckLinkInputCallback + { + CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInputCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInputCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \ + ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) + +#define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket) \ + ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ +#define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ + +/* interface IDeckLinkMemoryAllocator */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkMemoryAllocator; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8") + IDeckLinkMemoryAllocator : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( + /* [in] */ unsigned long bufferSize, + /* [out] */ void **allocatedBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( + /* [in] */ void *buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkMemoryAllocatorVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkMemoryAllocator * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkMemoryAllocator * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkMemoryAllocator * This); + + HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( + IDeckLinkMemoryAllocator * This, + /* [in] */ unsigned long bufferSize, + /* [out] */ void **allocatedBuffer); + + HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( + IDeckLinkMemoryAllocator * This, + /* [in] */ void *buffer); + + HRESULT ( STDMETHODCALLTYPE *Commit )( + IDeckLinkMemoryAllocator * This); + + HRESULT ( STDMETHODCALLTYPE *Decommit )( + IDeckLinkMemoryAllocator * This); + + END_INTERFACE + } IDeckLinkMemoryAllocatorVtbl; + + interface IDeckLinkMemoryAllocator + { + CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkMemoryAllocator_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkMemoryAllocator_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer) \ + ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) + +#define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer) \ + ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) + +#define IDeckLinkMemoryAllocator_Commit(This) \ + ( (This)->lpVtbl -> Commit(This) ) + +#define IDeckLinkMemoryAllocator_Decommit(This) \ + ( (This)->lpVtbl -> Decommit(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ + +/* interface IDeckLinkAudioOutputCallback */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkAudioOutputCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6") + IDeckLinkAudioOutputCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( + /* [in] */ BOOL preroll) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkAudioOutputCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkAudioOutputCallback * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkAudioOutputCallback * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkAudioOutputCallback * This); + + HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( + IDeckLinkAudioOutputCallback * This, + /* [in] */ BOOL preroll); + + END_INTERFACE + } IDeckLinkAudioOutputCallbackVtbl; + + interface IDeckLinkAudioOutputCallback + { + CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkAudioOutputCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkAudioOutputCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll) \ + ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkIterator_INTERFACE_DEFINED__ +#define __IDeckLinkIterator_INTERFACE_DEFINED__ + +/* interface IDeckLinkIterator */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkIterator; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69") + IDeckLinkIterator : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Next( + /* [out] */ IDeckLink **deckLinkInstance) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkIteratorVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkIterator * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkIterator * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkIterator * This); + + HRESULT ( STDMETHODCALLTYPE *Next )( + IDeckLinkIterator * This, + /* [out] */ IDeckLink **deckLinkInstance); + + END_INTERFACE + } IDeckLinkIteratorVtbl; + + interface IDeckLinkIterator + { + CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkIterator_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkIterator_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkIterator_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkIterator_Next(This,deckLinkInstance) \ + ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkIterator_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__ +#define __IDeckLinkAPIInformation_INTERFACE_DEFINED__ + +/* interface IDeckLinkAPIInformation */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkAPIInformation; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4") + IDeckLinkAPIInformation : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetFlag( + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ BSTR *value) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkAPIInformationVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkAPIInformation * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkAPIInformation * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkAPIInformation * This); + + HRESULT ( STDMETHODCALLTYPE *GetFlag )( + IDeckLinkAPIInformation * This, + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ BOOL *value); + + HRESULT ( STDMETHODCALLTYPE *GetInt )( + IDeckLinkAPIInformation * This, + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ LONGLONG *value); + + HRESULT ( STDMETHODCALLTYPE *GetFloat )( + IDeckLinkAPIInformation * This, + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ double *value); + + HRESULT ( STDMETHODCALLTYPE *GetString )( + IDeckLinkAPIInformation * This, + /* [in] */ BMDDeckLinkAPIInformationID cfgID, + /* [out] */ BSTR *value); + + END_INTERFACE + } IDeckLinkAPIInformationVtbl; + + interface IDeckLinkAPIInformation + { + CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkAPIInformation_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkAPIInformation_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkAPIInformation_GetFlag(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) + +#define IDeckLinkAPIInformation_GetInt(This,cfgID,value) \ + ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) + +#define IDeckLinkAPIInformation_GetFloat(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) + +#define IDeckLinkAPIInformation_GetString(This,cfgID,value) \ + ( (This)->lpVtbl -> GetString(This,cfgID,value) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayModeIterator */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayModeIterator; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35") + IDeckLinkDisplayModeIterator : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Next( + /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayModeIteratorVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayModeIterator * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayModeIterator * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayModeIterator * This); + + HRESULT ( STDMETHODCALLTYPE *Next )( + IDeckLinkDisplayModeIterator * This, + /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode); + + END_INTERFACE + } IDeckLinkDisplayModeIteratorVtbl; + + interface IDeckLinkDisplayModeIterator + { + CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayModeIterator_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayModeIterator_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode) \ + ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayMode */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayMode; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78") + IDeckLinkDisplayMode : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetName( + /* [out] */ BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0; + + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale) = 0; + + virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0; + + virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayModeVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayMode * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayMode * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayMode * This); + + HRESULT ( STDMETHODCALLTYPE *GetName )( + IDeckLinkDisplayMode * This, + /* [out] */ BSTR *name); + + BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( + IDeckLinkDisplayMode * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkDisplayMode * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkDisplayMode * This); + + HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( + IDeckLinkDisplayMode * This, + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale); + + BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( + IDeckLinkDisplayMode * This); + + BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkDisplayMode * This); + + END_INTERFACE + } IDeckLinkDisplayModeVtbl; + + interface IDeckLinkDisplayMode + { + CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayMode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayMode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayMode_GetName(This,name) \ + ( (This)->lpVtbl -> GetName(This,name) ) + +#define IDeckLinkDisplayMode_GetDisplayMode(This) \ + ( (This)->lpVtbl -> GetDisplayMode(This) ) + +#define IDeckLinkDisplayMode_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkDisplayMode_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) + +#define IDeckLinkDisplayMode_GetFieldDominance(This) \ + ( (This)->lpVtbl -> GetFieldDominance(This) ) + +#define IDeckLinkDisplayMode_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLink_INTERFACE_DEFINED__ +#define __IDeckLink_INTERFACE_DEFINED__ + +/* interface IDeckLink */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLink; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC") + IDeckLink : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetModelName( + /* [out] */ BSTR *modelName) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLink * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLink * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLink * This); + + HRESULT ( STDMETHODCALLTYPE *GetModelName )( + IDeckLink * This, + /* [out] */ BSTR *modelName); + + END_INTERFACE + } IDeckLinkVtbl; + + interface IDeckLink + { + CONST_VTBL struct IDeckLinkVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLink_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLink_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLink_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLink_GetModelName(This,modelName) \ + ( (This)->lpVtbl -> GetModelName(This,modelName) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLink_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_INTERFACE_DEFINED__ + +/* interface IDeckLinkOutput */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkOutput; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7") + IDeckLinkOutput : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoOutputFlags flags, + /* [out] */ BMDDisplayModeSupport *result, + /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + /* [in] */ long width, + /* [in] */ long height, + /* [in] */ long rowBytes, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + /* [in] */ BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + /* [in] */ IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + /* [in] */ IDeckLinkVideoFrame *theFrame, + /* [in] */ BMDTimeValue displayTime, + /* [in] */ BMDTimeValue displayDuration, + /* [in] */ BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + /* [out] */ unsigned long *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + /* [in] */ BMDAudioSampleRate sampleRate, + /* [in] */ BMDAudioSampleType sampleType, + /* [in] */ unsigned long channelCount, + /* [in] */ BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + /* [in] */ void *buffer, + /* [in] */ unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + /* [in] */ void *buffer, + /* [in] */ unsigned long sampleFrameCount, + /* [in] */ BMDTimeValue streamTime, + /* [in] */ BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + /* [out] */ unsigned long *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + /* [in] */ BMDTimeValue playbackStartTime, + /* [in] */ BMDTimeScale timeScale, + /* [in] */ double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + /* [in] */ BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + /* [in] */ BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + /* [out] */ BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *streamTime, + /* [out] */ double *playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( + /* [out] */ BMDReferenceStatus *referenceStatus) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkOutputVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkOutput * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkOutput * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkOutput * This, + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoOutputFlags flags, + /* [out] */ BMDDisplayModeSupport *result, + /* [out] */ IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkOutput * This, + /* [out] */ IDeckLinkDisplayModeIterator **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( + IDeckLinkOutput * This, + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDVideoOutputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkMemoryAllocator *theAllocator); + + HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( + IDeckLinkOutput * This, + /* [in] */ long width, + /* [in] */ long height, + /* [in] */ long rowBytes, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame **outFrame); + + HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( + IDeckLinkOutput * This, + /* [in] */ BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkVideoFrame *theFrame); + + HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkVideoFrame *theFrame, + /* [in] */ BMDTimeValue displayTime, + /* [in] */ BMDTimeValue displayDuration, + /* [in] */ BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkVideoOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( + IDeckLinkOutput * This, + /* [out] */ unsigned long *bufferedFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( + IDeckLinkOutput * This, + /* [in] */ BMDAudioSampleRate sampleRate, + /* [in] */ BMDAudioSampleType sampleType, + /* [in] */ unsigned long channelCount, + /* [in] */ BMDAudioOutputStreamType streamType); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( + IDeckLinkOutput * This, + /* [in] */ void *buffer, + /* [in] */ unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( + IDeckLinkOutput * This, + /* [in] */ void *buffer, + /* [in] */ unsigned long sampleFrameCount, + /* [in] */ BMDTimeValue streamTime, + /* [in] */ BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( + IDeckLinkOutput * This, + /* [out] */ unsigned long *bufferedSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( + IDeckLinkOutput * This); + + HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( + IDeckLinkOutput * This, + /* [in] */ IDeckLinkAudioOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( + IDeckLinkOutput * This, + /* [in] */ BMDTimeValue playbackStartTime, + /* [in] */ BMDTimeScale timeScale, + /* [in] */ double playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( + IDeckLinkOutput * This, + /* [in] */ BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + /* [in] */ BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( + IDeckLinkOutput * This, + /* [out] */ BOOL *active); + + HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( + IDeckLinkOutput * This, + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *streamTime, + /* [out] */ double *playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( + IDeckLinkOutput * This, + /* [out] */ BMDReferenceStatus *referenceStatus); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkOutput * This, + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame); + + END_INTERFACE + } IDeckLinkOutputVtbl; + + interface IDeckLinkOutput + { + CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkOutput_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkOutput_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkOutput_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) + +#define IDeckLinkOutput_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags) \ + ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) + +#define IDeckLinkOutput_DisableVideoOutput(This) \ + ( (This)->lpVtbl -> DisableVideoOutput(This) ) + +#define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \ + ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) + +#define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \ + ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) + +#define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) \ + ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) + +#define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame) \ + ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) + +#define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \ + ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) + +#define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) + +#define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount) \ + ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) + +#define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \ + ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) + +#define IDeckLinkOutput_DisableAudioOutput(This) \ + ( (This)->lpVtbl -> DisableAudioOutput(This) ) + +#define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \ + ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) + +#define IDeckLinkOutput_BeginAudioPreroll(This) \ + ( (This)->lpVtbl -> BeginAudioPreroll(This) ) + +#define IDeckLinkOutput_EndAudioPreroll(This) \ + ( (This)->lpVtbl -> EndAudioPreroll(This) ) + +#define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \ + ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) + +#define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \ + ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) + +#define IDeckLinkOutput_FlushBufferedAudioSamples(This) \ + ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) + +#define IDeckLinkOutput_SetAudioCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) + +#define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \ + ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) + +#define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \ + ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) + +#define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \ + ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) + +#define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \ + ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) + +#define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus) \ + ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) + +#define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkOutput_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInput_INTERFACE_DEFINED__ +#define __IDeckLinkInput_INTERFACE_DEFINED__ + +/* interface IDeckLinkInput */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInput; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F") + IDeckLinkInput : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoInputFlags flags, + /* [out] */ BMDDisplayModeSupport *result, + /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + /* [out] */ unsigned long *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + /* [in] */ BMDAudioSampleRate sampleRate, + /* [in] */ BMDAudioSampleType sampleType, + /* [in] */ unsigned long channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + /* [out] */ unsigned long *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkInputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInputVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInput * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInput * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkInput * This, + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoInputFlags flags, + /* [out] */ BMDDisplayModeSupport *result, + /* [out] */ IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkInput * This, + /* [out] */ IDeckLinkDisplayModeIterator **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkInput * This, + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( + IDeckLinkInput * This, + /* [in] */ BMDDisplayMode displayMode, + /* [in] */ BMDPixelFormat pixelFormat, + /* [in] */ BMDVideoInputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( + IDeckLinkInput * This, + /* [out] */ unsigned long *availableFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( + IDeckLinkInput * This, + /* [in] */ BMDAudioSampleRate sampleRate, + /* [in] */ BMDAudioSampleType sampleType, + /* [in] */ unsigned long channelCount); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( + IDeckLinkInput * This, + /* [out] */ unsigned long *availableSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *StartStreams )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *StopStreams )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *PauseStreams )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *FlushStreams )( + IDeckLinkInput * This); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkInput * This, + /* [in] */ IDeckLinkInputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkInput * This, + /* [in] */ BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame); + + END_INTERFACE + } IDeckLinkInputVtbl; + + interface IDeckLinkInput + { + CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInput_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInput_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInput_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) + +#define IDeckLinkInput_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags) \ + ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) + +#define IDeckLinkInput_DisableVideoInput(This) \ + ( (This)->lpVtbl -> DisableVideoInput(This) ) + +#define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount) \ + ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) + +#define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount) \ + ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) + +#define IDeckLinkInput_DisableAudioInput(This) \ + ( (This)->lpVtbl -> DisableAudioInput(This) ) + +#define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \ + ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) + +#define IDeckLinkInput_StartStreams(This) \ + ( (This)->lpVtbl -> StartStreams(This) ) + +#define IDeckLinkInput_StopStreams(This) \ + ( (This)->lpVtbl -> StopStreams(This) ) + +#define IDeckLinkInput_PauseStreams(This) \ + ( (This)->lpVtbl -> PauseStreams(This) ) + +#define IDeckLinkInput_FlushStreams(This) \ + ( (This)->lpVtbl -> FlushStreams(This) ) + +#define IDeckLinkInput_SetCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetCallback(This,theCallback) ) + +#define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInput_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__ +#define __IDeckLinkTimecode_INTERFACE_DEFINED__ + +/* interface IDeckLinkTimecode */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkTimecode; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340") + IDeckLinkTimecode : public IUnknown + { + public: + virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponents( + /* [out] */ unsigned char *hours, + /* [out] */ unsigned char *minutes, + /* [out] */ unsigned char *seconds, + /* [out] */ unsigned char *frames) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + /* [out] */ BSTR *timecode) = 0; + + virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( + /* [out] */ BMDTimecodeUserBits *userBits) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkTimecodeVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkTimecode * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkTimecode * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkTimecode * This); + + BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( + IDeckLinkTimecode * This); + + HRESULT ( STDMETHODCALLTYPE *GetComponents )( + IDeckLinkTimecode * This, + /* [out] */ unsigned char *hours, + /* [out] */ unsigned char *minutes, + /* [out] */ unsigned char *seconds, + /* [out] */ unsigned char *frames); + + HRESULT ( STDMETHODCALLTYPE *GetString )( + IDeckLinkTimecode * This, + /* [out] */ BSTR *timecode); + + BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkTimecode * This); + + HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( + IDeckLinkTimecode * This, + /* [out] */ BMDTimecodeUserBits *userBits); + + END_INTERFACE + } IDeckLinkTimecodeVtbl; + + interface IDeckLinkTimecode + { + CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkTimecode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkTimecode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkTimecode_GetBCD(This) \ + ( (This)->lpVtbl -> GetBCD(This) ) + +#define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames) \ + ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) + +#define IDeckLinkTimecode_GetString(This,timecode) \ + ( (This)->lpVtbl -> GetString(This,timecode) ) + +#define IDeckLinkTimecode_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits) \ + ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoFrame */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoFrame; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17") + IDeckLinkVideoFrame : public IUnknown + { + public: + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + /* [out] */ void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + /* [in] */ BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode **timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoFrameVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoFrame * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoFrame * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoFrame * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoFrame * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoFrame * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoFrame * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkVideoFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkVideoFrame * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + END_INTERFACE + } IDeckLinkVideoFrameVtbl; + + interface IDeckLinkVideoFrame + { + CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoFrame_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoFrame_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoFrame_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoFrame_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoFrame_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoFrame_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkVideoFrame_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ +#define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ + +/* interface IDeckLinkMutableVideoFrame */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkMutableVideoFrame; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390") + IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame + { + public: + virtual HRESULT STDMETHODCALLTYPE SetFlags( + /* [in] */ BMDFrameFlags newFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecode( + /* [in] */ BMDTimecodeFormat format, + /* [in] */ IDeckLinkTimecode *timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( + /* [in] */ BMDTimecodeFormat format, + /* [in] */ unsigned char hours, + /* [in] */ unsigned char minutes, + /* [in] */ unsigned char seconds, + /* [in] */ unsigned char frames, + /* [in] */ BMDTimecodeFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( + /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( + /* [in] */ BMDTimecodeFormat format, + /* [in] */ BMDTimecodeUserBits userBits) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkMutableVideoFrameVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkMutableVideoFrame * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkMutableVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkMutableVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkMutableVideoFrame * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkMutableVideoFrame * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkMutableVideoFrame * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkMutableVideoFrame * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkMutableVideoFrame * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkMutableVideoFrame * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + HRESULT ( STDMETHODCALLTYPE *SetFlags )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ BMDFrameFlags newFlags); + + HRESULT ( STDMETHODCALLTYPE *SetTimecode )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [in] */ IDeckLinkTimecode *timecode); + + HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [in] */ unsigned char hours, + /* [in] */ unsigned char minutes, + /* [in] */ unsigned char seconds, + /* [in] */ unsigned char frames, + /* [in] */ BMDTimecodeFlags flags); + + HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ IDeckLinkVideoFrameAncillary *ancillary); + + HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )( + IDeckLinkMutableVideoFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [in] */ BMDTimecodeUserBits userBits); + + END_INTERFACE + } IDeckLinkMutableVideoFrameVtbl; + + interface IDeckLinkMutableVideoFrame + { + CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkMutableVideoFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkMutableVideoFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkMutableVideoFrame_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkMutableVideoFrame_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkMutableVideoFrame_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkMutableVideoFrame_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkMutableVideoFrame_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + + +#define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags) \ + ( (This)->lpVtbl -> SetFlags(This,newFlags) ) + +#define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) + +#define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \ + ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) + +#define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) + +#define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits) \ + ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoFrame3DExtensions */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7") + IDeckLinkVideoFrame3DExtensions : public IUnknown + { + public: + virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( + /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoFrame3DExtensionsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoFrame3DExtensions * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoFrame3DExtensions * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoFrame3DExtensions * This); + + BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )( + IDeckLinkVideoFrame3DExtensions * This); + + HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( + IDeckLinkVideoFrame3DExtensions * This, + /* [out] */ IDeckLinkVideoFrame **rightEyeFrame); + + END_INTERFACE + } IDeckLinkVideoFrame3DExtensionsVtbl; + + interface IDeckLinkVideoFrame3DExtensions + { + CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoFrame3DExtensions_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoFrame3DExtensions_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This) \ + ( (This)->lpVtbl -> Get3DPackingFormat(This) ) + +#define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) \ + ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoInputFrame */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoInputFrame; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44") + IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame + { + public: + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + /* [in] */ BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( + /* [in] */ BMDTimeScale timeScale, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoInputFrameVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoInputFrame * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoInputFrame * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoInputFrame * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoInputFrame * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoInputFrame * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoInputFrame * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoInputFrame * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoInputFrame * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoInputFrame * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkVideoInputFrame * This, + /* [in] */ BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkVideoInputFrame * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( + IDeckLinkVideoInputFrame * This, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + /* [in] */ BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( + IDeckLinkVideoInputFrame * This, + /* [in] */ BMDTimeScale timeScale, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration); + + END_INTERFACE + } IDeckLinkVideoInputFrameVtbl; + + interface IDeckLinkVideoInputFrame + { + CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoInputFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoInputFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoInputFrame_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoInputFrame_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoInputFrame_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoInputFrame_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoInputFrame_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoInputFrame_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + + +#define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) + +#define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \ + ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoFrameAncillary */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004") + IDeckLinkVideoFrameAncillary : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( + /* [in] */ unsigned long lineNumber, + /* [out] */ void **buffer) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoFrameAncillaryVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoFrameAncillary * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoFrameAncillary * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoFrameAncillary * This); + + HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( + IDeckLinkVideoFrameAncillary * This, + /* [in] */ unsigned long lineNumber, + /* [out] */ void **buffer); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoFrameAncillary * This); + + BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( + IDeckLinkVideoFrameAncillary * This); + + END_INTERFACE + } IDeckLinkVideoFrameAncillaryVtbl; + + interface IDeckLinkVideoFrameAncillary + { + CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoFrameAncillary_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoFrameAncillary_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer) \ + ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) + +#define IDeckLinkVideoFrameAncillary_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoFrameAncillary_GetDisplayMode(This) \ + ( (This)->lpVtbl -> GetDisplayMode(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ +#define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ + +/* interface IDeckLinkAudioInputPacket */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkAudioInputPacket; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66") + IDeckLinkAudioInputPacket : public IUnknown + { + public: + virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + /* [out] */ void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPacketTime( + /* [out] */ BMDTimeValue *packetTime, + /* [in] */ BMDTimeScale timeScale) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkAudioInputPacketVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkAudioInputPacket * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkAudioInputPacket * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkAudioInputPacket * This); + + long ( STDMETHODCALLTYPE *GetSampleFrameCount )( + IDeckLinkAudioInputPacket * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkAudioInputPacket * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( + IDeckLinkAudioInputPacket * This, + /* [out] */ BMDTimeValue *packetTime, + /* [in] */ BMDTimeScale timeScale); + + END_INTERFACE + } IDeckLinkAudioInputPacketVtbl; + + interface IDeckLinkAudioInputPacket + { + CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkAudioInputPacket_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkAudioInputPacket_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkAudioInputPacket_GetSampleFrameCount(This) \ + ( (This)->lpVtbl -> GetSampleFrameCount(This) ) + +#define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale) \ + ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ + +/* interface IDeckLinkScreenPreviewCallback */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438") + IDeckLinkScreenPreviewCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DrawFrame( + /* [in] */ IDeckLinkVideoFrame *theFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkScreenPreviewCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkScreenPreviewCallback * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkScreenPreviewCallback * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkScreenPreviewCallback * This); + + HRESULT ( STDMETHODCALLTYPE *DrawFrame )( + IDeckLinkScreenPreviewCallback * This, + /* [in] */ IDeckLinkVideoFrame *theFrame); + + END_INTERFACE + } IDeckLinkScreenPreviewCallbackVtbl; + + interface IDeckLinkScreenPreviewCallback + { + CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkScreenPreviewCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkScreenPreviewCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \ + ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ + +/* interface IDeckLinkGLScreenPreviewHelper */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F") + IDeckLinkGLScreenPreviewHelper : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrame( + /* [in] */ IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( + /* [in] */ BMD3DPreviewFormat previewFormat) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkGLScreenPreviewHelperVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkGLScreenPreviewHelper * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkGLScreenPreviewHelper * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkGLScreenPreviewHelper * This); + + HRESULT ( STDMETHODCALLTYPE *InitializeGL )( + IDeckLinkGLScreenPreviewHelper * This); + + HRESULT ( STDMETHODCALLTYPE *PaintGL )( + IDeckLinkGLScreenPreviewHelper * This); + + HRESULT ( STDMETHODCALLTYPE *SetFrame )( + IDeckLinkGLScreenPreviewHelper * This, + /* [in] */ IDeckLinkVideoFrame *theFrame); + + HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( + IDeckLinkGLScreenPreviewHelper * This, + /* [in] */ BMD3DPreviewFormat previewFormat); + + END_INTERFACE + } IDeckLinkGLScreenPreviewHelperVtbl; + + interface IDeckLinkGLScreenPreviewHelper + { + CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkGLScreenPreviewHelper_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkGLScreenPreviewHelper_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkGLScreenPreviewHelper_InitializeGL(This) \ + ( (This)->lpVtbl -> InitializeGL(This) ) + +#define IDeckLinkGLScreenPreviewHelper_PaintGL(This) \ + ( (This)->lpVtbl -> PaintGL(This) ) + +#define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \ + ( (This)->lpVtbl -> SetFrame(This,theFrame) ) + +#define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \ + ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_INTERFACE_DEFINED__ + +/* interface IDeckLinkConfiguration */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkConfiguration; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0") + IDeckLinkConfiguration : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetFlag( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkConfigurationVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkConfiguration * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkConfiguration * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkConfiguration * This); + + HRESULT ( STDMETHODCALLTYPE *SetFlag )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ BOOL value); + + HRESULT ( STDMETHODCALLTYPE *GetFlag )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ BOOL *value); + + HRESULT ( STDMETHODCALLTYPE *SetInt )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ LONGLONG value); + + HRESULT ( STDMETHODCALLTYPE *GetInt )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ LONGLONG *value); + + HRESULT ( STDMETHODCALLTYPE *SetFloat )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ double value); + + HRESULT ( STDMETHODCALLTYPE *GetFloat )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ double *value); + + HRESULT ( STDMETHODCALLTYPE *SetString )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [in] */ BSTR value); + + HRESULT ( STDMETHODCALLTYPE *GetString )( + IDeckLinkConfiguration * This, + /* [in] */ BMDDeckLinkConfigurationID cfgID, + /* [out] */ BSTR *value); + + HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( + IDeckLinkConfiguration * This); + + END_INTERFACE + } IDeckLinkConfigurationVtbl; + + interface IDeckLinkConfiguration + { + CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkConfiguration_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkConfiguration_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkConfiguration_SetFlag(This,cfgID,value) \ + ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) + +#define IDeckLinkConfiguration_GetFlag(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) + +#define IDeckLinkConfiguration_SetInt(This,cfgID,value) \ + ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) + +#define IDeckLinkConfiguration_GetInt(This,cfgID,value) \ + ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) + +#define IDeckLinkConfiguration_SetFloat(This,cfgID,value) \ + ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) + +#define IDeckLinkConfiguration_GetFloat(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) + +#define IDeckLinkConfiguration_SetString(This,cfgID,value) \ + ( (This)->lpVtbl -> SetString(This,cfgID,value) ) + +#define IDeckLinkConfiguration_GetString(This,cfgID,value) \ + ( (This)->lpVtbl -> GetString(This,cfgID,value) ) + +#define IDeckLinkConfiguration_WriteConfigurationToPreferences(This) \ + ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__ +#define __IDeckLinkAttributes_INTERFACE_DEFINED__ + +/* interface IDeckLinkAttributes */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkAttributes; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4") + IDeckLinkAttributes : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetFlag( + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ BSTR *value) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkAttributesVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkAttributes * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkAttributes * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkAttributes * This); + + HRESULT ( STDMETHODCALLTYPE *GetFlag )( + IDeckLinkAttributes * This, + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ BOOL *value); + + HRESULT ( STDMETHODCALLTYPE *GetInt )( + IDeckLinkAttributes * This, + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ LONGLONG *value); + + HRESULT ( STDMETHODCALLTYPE *GetFloat )( + IDeckLinkAttributes * This, + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ double *value); + + HRESULT ( STDMETHODCALLTYPE *GetString )( + IDeckLinkAttributes * This, + /* [in] */ BMDDeckLinkAttributeID cfgID, + /* [out] */ BSTR *value); + + END_INTERFACE + } IDeckLinkAttributesVtbl; + + interface IDeckLinkAttributes + { + CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkAttributes_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkAttributes_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkAttributes_GetFlag(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) + +#define IDeckLinkAttributes_GetInt(This,cfgID,value) \ + ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) + +#define IDeckLinkAttributes_GetFloat(This,cfgID,value) \ + ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) + +#define IDeckLinkAttributes_GetString(This,cfgID,value) \ + ( (This)->lpVtbl -> GetString(This,cfgID,value) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__ +#define __IDeckLinkKeyer_INTERFACE_DEFINED__ + +/* interface IDeckLinkKeyer */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkKeyer; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3") + IDeckLinkKeyer : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Enable( + /* [in] */ BOOL isExternal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLevel( + /* [in] */ unsigned char level) = 0; + + virtual HRESULT STDMETHODCALLTYPE RampUp( + /* [in] */ unsigned long numberOfFrames) = 0; + + virtual HRESULT STDMETHODCALLTYPE RampDown( + /* [in] */ unsigned long numberOfFrames) = 0; + + virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkKeyerVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkKeyer * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkKeyer * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkKeyer * This); + + HRESULT ( STDMETHODCALLTYPE *Enable )( + IDeckLinkKeyer * This, + /* [in] */ BOOL isExternal); + + HRESULT ( STDMETHODCALLTYPE *SetLevel )( + IDeckLinkKeyer * This, + /* [in] */ unsigned char level); + + HRESULT ( STDMETHODCALLTYPE *RampUp )( + IDeckLinkKeyer * This, + /* [in] */ unsigned long numberOfFrames); + + HRESULT ( STDMETHODCALLTYPE *RampDown )( + IDeckLinkKeyer * This, + /* [in] */ unsigned long numberOfFrames); + + HRESULT ( STDMETHODCALLTYPE *Disable )( + IDeckLinkKeyer * This); + + END_INTERFACE + } IDeckLinkKeyerVtbl; + + interface IDeckLinkKeyer + { + CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkKeyer_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkKeyer_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkKeyer_Enable(This,isExternal) \ + ( (This)->lpVtbl -> Enable(This,isExternal) ) + +#define IDeckLinkKeyer_SetLevel(This,level) \ + ( (This)->lpVtbl -> SetLevel(This,level) ) + +#define IDeckLinkKeyer_RampUp(This,numberOfFrames) \ + ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) + +#define IDeckLinkKeyer_RampDown(This,numberOfFrames) \ + ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) + +#define IDeckLinkKeyer_Disable(This) \ + ( (This)->lpVtbl -> Disable(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__ +#define __IDeckLinkVideoConversion_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoConversion */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoConversion; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A") + IDeckLinkVideoConversion : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ConvertFrame( + /* [in] */ IDeckLinkVideoFrame *srcFrame, + /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoConversionVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoConversion * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoConversion * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoConversion * This); + + HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( + IDeckLinkVideoConversion * This, + /* [in] */ IDeckLinkVideoFrame *srcFrame, + /* [in] */ IDeckLinkVideoFrame *dstFrame); + + END_INTERFACE + } IDeckLinkVideoConversionVtbl; + + interface IDeckLinkVideoConversion + { + CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoConversion_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoConversion_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame) \ + ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ + +/* interface IDeckLinkDeckControlStatusCallback */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B") + IDeckLinkDeckControlStatusCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( + /* [in] */ BMDTimecodeBCD currentTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( + /* [in] */ BMDDeckControlVTRControlState newState, + /* [in] */ BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( + /* [in] */ BMDDeckControlEvent event, + /* [in] */ BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( + /* [in] */ BMDDeckControlStatusFlags flags, + /* [in] */ unsigned long mask) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDeckControlStatusCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDeckControlStatusCallback * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDeckControlStatusCallback * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDeckControlStatusCallback * This); + + HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( + IDeckLinkDeckControlStatusCallback * This, + /* [in] */ BMDTimecodeBCD currentTimecode); + + HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( + IDeckLinkDeckControlStatusCallback * This, + /* [in] */ BMDDeckControlVTRControlState newState, + /* [in] */ BMDDeckControlError error); + + HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( + IDeckLinkDeckControlStatusCallback * This, + /* [in] */ BMDDeckControlEvent event, + /* [in] */ BMDDeckControlError error); + + HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( + IDeckLinkDeckControlStatusCallback * This, + /* [in] */ BMDDeckControlStatusFlags flags, + /* [in] */ unsigned long mask); + + END_INTERFACE + } IDeckLinkDeckControlStatusCallbackVtbl; + + interface IDeckLinkDeckControlStatusCallback + { + CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDeckControlStatusCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDeckControlStatusCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \ + ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) + +#define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) \ + ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) + +#define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error) \ + ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) + +#define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask) \ + ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControl_INTERFACE_DEFINED__ + +/* interface IDeckLinkDeckControl */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDeckControl; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D") + IDeckLinkDeckControl : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Open( + /* [in] */ BMDTimeScale timeScale, + /* [in] */ BMDTimeValue timeValue, + /* [in] */ BOOL timecodeIsDropFrame, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + /* [in] */ BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentState( + /* [out] */ BMDDeckControlMode *mode, + /* [out] */ BMDDeckControlVTRControlState *vtrControlState, + /* [out] */ BMDDeckControlStatusFlags *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStandby( + /* [in] */ BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendCommand( + /* [in] */ unsigned char *inBuffer, + /* [in] */ unsigned long inBufferSize, + /* [out] */ unsigned char *outBuffer, + /* [out] */ unsigned long *outDataSize, + /* [in] */ unsigned long outBufferSize, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Play( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Eject( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GoToTimecode( + /* [in] */ BMDTimecodeBCD timecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastForward( + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Rewind( + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepForward( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepBack( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Jog( + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Shuttle( + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( + /* [out] */ BSTR *currentTimeCode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + /* [out] */ IDeckLinkTimecode **currentTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( + /* [out] */ BMDTimecodeBCD *currentTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + /* [in] */ unsigned long prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreroll( + /* [out] */ unsigned long *prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetExportOffset( + /* [in] */ long exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExportOffset( + /* [out] */ long *exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( + /* [out] */ long *deckManualExportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( + /* [in] */ long captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( + /* [out] */ long *captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartExport( + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + /* [in] */ BOOL useVITC, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + /* [out] */ unsigned short *deviceId, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDeckControlVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDeckControl * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDeckControl * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDeckControl * This); + + HRESULT ( STDMETHODCALLTYPE *Open )( + IDeckLinkDeckControl * This, + /* [in] */ BMDTimeScale timeScale, + /* [in] */ BMDTimeValue timeValue, + /* [in] */ BOOL timecodeIsDropFrame, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Close )( + IDeckLinkDeckControl * This, + /* [in] */ BOOL standbyOn); + + HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlMode *mode, + /* [out] */ BMDDeckControlVTRControlState *vtrControlState, + /* [out] */ BMDDeckControlStatusFlags *flags); + + HRESULT ( STDMETHODCALLTYPE *SetStandby )( + IDeckLinkDeckControl * This, + /* [in] */ BOOL standbyOn); + + HRESULT ( STDMETHODCALLTYPE *SendCommand )( + IDeckLinkDeckControl * This, + /* [in] */ unsigned char *inBuffer, + /* [in] */ unsigned long inBufferSize, + /* [out] */ unsigned char *outBuffer, + /* [out] */ unsigned long *outDataSize, + /* [in] */ unsigned long outBufferSize, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Play )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Stop )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Eject )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( + IDeckLinkDeckControl * This, + /* [in] */ BMDTimecodeBCD timecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *FastForward )( + IDeckLinkDeckControl * This, + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Rewind )( + IDeckLinkDeckControl * This, + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StepForward )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StepBack )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Jog )( + IDeckLinkDeckControl * This, + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Shuttle )( + IDeckLinkDeckControl * This, + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( + IDeckLinkDeckControl * This, + /* [out] */ BSTR *currentTimeCode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkDeckControl * This, + /* [out] */ IDeckLinkTimecode **currentTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( + IDeckLinkDeckControl * This, + /* [out] */ BMDTimecodeBCD *currentTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *SetPreroll )( + IDeckLinkDeckControl * This, + /* [in] */ unsigned long prerollSeconds); + + HRESULT ( STDMETHODCALLTYPE *GetPreroll )( + IDeckLinkDeckControl * This, + /* [out] */ unsigned long *prerollSeconds); + + HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( + IDeckLinkDeckControl * This, + /* [in] */ long exportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( + IDeckLinkDeckControl * This, + /* [out] */ long *exportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( + IDeckLinkDeckControl * This, + /* [out] */ long *deckManualExportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( + IDeckLinkDeckControl * This, + /* [in] */ long captureOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( + IDeckLinkDeckControl * This, + /* [out] */ long *captureOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *StartExport )( + IDeckLinkDeckControl * This, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StartCapture )( + IDeckLinkDeckControl * This, + /* [in] */ BOOL useVITC, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( + IDeckLinkDeckControl * This, + /* [out] */ unsigned short *deviceId, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Abort )( + IDeckLinkDeckControl * This); + + HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( + IDeckLinkDeckControl * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkDeckControl * This, + /* [in] */ IDeckLinkDeckControlStatusCallback *callback); + + END_INTERFACE + } IDeckLinkDeckControlVtbl; + + interface IDeckLinkDeckControl + { + CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDeckControl_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDeckControl_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \ + ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) + +#define IDeckLinkDeckControl_Close(This,standbyOn) \ + ( (This)->lpVtbl -> Close(This,standbyOn) ) + +#define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags) \ + ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) + +#define IDeckLinkDeckControl_SetStandby(This,standbyOn) \ + ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) + +#define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) \ + ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) + +#define IDeckLinkDeckControl_Play(This,error) \ + ( (This)->lpVtbl -> Play(This,error) ) + +#define IDeckLinkDeckControl_Stop(This,error) \ + ( (This)->lpVtbl -> Stop(This,error) ) + +#define IDeckLinkDeckControl_TogglePlayStop(This,error) \ + ( (This)->lpVtbl -> TogglePlayStop(This,error) ) + +#define IDeckLinkDeckControl_Eject(This,error) \ + ( (This)->lpVtbl -> Eject(This,error) ) + +#define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) \ + ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) + +#define IDeckLinkDeckControl_FastForward(This,viewTape,error) \ + ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) + +#define IDeckLinkDeckControl_Rewind(This,viewTape,error) \ + ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) + +#define IDeckLinkDeckControl_StepForward(This,error) \ + ( (This)->lpVtbl -> StepForward(This,error) ) + +#define IDeckLinkDeckControl_StepBack(This,error) \ + ( (This)->lpVtbl -> StepBack(This,error) ) + +#define IDeckLinkDeckControl_Jog(This,rate,error) \ + ( (This)->lpVtbl -> Jog(This,rate,error) ) + +#define IDeckLinkDeckControl_Shuttle(This,rate,error) \ + ( (This)->lpVtbl -> Shuttle(This,rate,error) ) + +#define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error) \ + ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) + +#define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error) \ + ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) + +#define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \ + ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) + +#define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds) \ + ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) + +#define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds) \ + ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) + +#define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields) \ + ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) + +#define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields) \ + ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) + +#define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields) \ + ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) + +#define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \ + ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) + +#define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \ + ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) + +#define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \ + ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) + +#define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error) \ + ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) + +#define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error) \ + ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) + +#define IDeckLinkDeckControl_Abort(This) \ + ( (This)->lpVtbl -> Abort(This) ) + +#define IDeckLinkDeckControl_CrashRecordStart(This,error) \ + ( (This)->lpVtbl -> CrashRecordStart(This,error) ) + +#define IDeckLinkDeckControl_CrashRecordStop(This,error) \ + ( (This)->lpVtbl -> CrashRecordStop(This,error) ) + +#define IDeckLinkDeckControl_SetCallback(This,callback) \ + ( (This)->lpVtbl -> SetCallback(This,callback) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_CDeckLinkIterator; + +#ifdef __cplusplus + +class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37") +CDeckLinkIterator; +#endif + +EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation; + +#ifdef __cplusplus + +class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237") +CDeckLinkAPIInformation; +#endif + +EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper; + +#ifdef __cplusplus + +class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343") +CDeckLinkGLScreenPreviewHelper; +#endif + +EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion; + +#ifdef __cplusplus + +class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C") +CDeckLinkVideoConversion; +#endif + +#ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ + +/* interface IDeckLinkDeckControl_v7_9 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7") + IDeckLinkDeckControl_v7_9 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Open( + /* [in] */ BMDTimeScale timeScale, + /* [in] */ BMDTimeValue timeValue, + /* [in] */ BOOL timecodeIsDropFrame, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + /* [in] */ BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentState( + /* [out] */ BMDDeckControlMode *mode, + /* [out] */ BMDDeckControlVTRControlState *vtrControlState, + /* [out] */ BMDDeckControlStatusFlags *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStandby( + /* [in] */ BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE Play( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Eject( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GoToTimecode( + /* [in] */ BMDTimecodeBCD timecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastForward( + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Rewind( + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepForward( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepBack( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Jog( + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Shuttle( + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( + /* [out] */ BSTR *currentTimeCode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + /* [out] */ IDeckLinkTimecode **currentTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( + /* [out] */ BMDTimecodeBCD *currentTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + /* [in] */ unsigned long prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreroll( + /* [out] */ unsigned long *prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetExportOffset( + /* [in] */ long exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExportOffset( + /* [out] */ long *exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( + /* [out] */ long *deckManualExportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( + /* [in] */ long captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( + /* [out] */ long *captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartExport( + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + /* [in] */ BOOL useVITC, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + /* [out] */ unsigned short *deviceId, + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( + /* [out] */ BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDeckControl_v7_9Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDeckControl_v7_9 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDeckControl_v7_9 * This); + + HRESULT ( STDMETHODCALLTYPE *Open )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BMDTimeScale timeScale, + /* [in] */ BMDTimeValue timeValue, + /* [in] */ BOOL timecodeIsDropFrame, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Close )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BOOL standbyOn); + + HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlMode *mode, + /* [out] */ BMDDeckControlVTRControlState *vtrControlState, + /* [out] */ BMDDeckControlStatusFlags *flags); + + HRESULT ( STDMETHODCALLTYPE *SetStandby )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BOOL standbyOn); + + HRESULT ( STDMETHODCALLTYPE *Play )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Stop )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Eject )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BMDTimecodeBCD timecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *FastForward )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Rewind )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BOOL viewTape, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StepForward )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StepBack )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Jog )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Shuttle )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ double rate, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BSTR *currentTimeCode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ IDeckLinkTimecode **currentTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDTimecodeBCD *currentTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *SetPreroll )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ unsigned long prerollSeconds); + + HRESULT ( STDMETHODCALLTYPE *GetPreroll )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ unsigned long *prerollSeconds); + + HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ long exportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ long *exportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ long *deckManualExportOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ long captureOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ long *captureOffsetFields); + + HRESULT ( STDMETHODCALLTYPE *StartExport )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *StartCapture )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ BOOL useVITC, + /* [in] */ BMDTimecodeBCD inTimecode, + /* [in] */ BMDTimecodeBCD outTimecode, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ unsigned short *deviceId, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *Abort )( + IDeckLinkDeckControl_v7_9 * This); + + HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( + IDeckLinkDeckControl_v7_9 * This, + /* [out] */ BMDDeckControlError *error); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkDeckControl_v7_9 * This, + /* [in] */ IDeckLinkDeckControlStatusCallback *callback); + + END_INTERFACE + } IDeckLinkDeckControl_v7_9Vtbl; + + interface IDeckLinkDeckControl_v7_9 + { + CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDeckControl_v7_9_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDeckControl_v7_9_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \ + ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) + +#define IDeckLinkDeckControl_v7_9_Close(This,standbyOn) \ + ( (This)->lpVtbl -> Close(This,standbyOn) ) + +#define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags) \ + ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) + +#define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn) \ + ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) + +#define IDeckLinkDeckControl_v7_9_Play(This,error) \ + ( (This)->lpVtbl -> Play(This,error) ) + +#define IDeckLinkDeckControl_v7_9_Stop(This,error) \ + ( (This)->lpVtbl -> Stop(This,error) ) + +#define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error) \ + ( (This)->lpVtbl -> TogglePlayStop(This,error) ) + +#define IDeckLinkDeckControl_v7_9_Eject(This,error) \ + ( (This)->lpVtbl -> Eject(This,error) ) + +#define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error) \ + ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) + +#define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error) \ + ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) + +#define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error) \ + ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) + +#define IDeckLinkDeckControl_v7_9_StepForward(This,error) \ + ( (This)->lpVtbl -> StepForward(This,error) ) + +#define IDeckLinkDeckControl_v7_9_StepBack(This,error) \ + ( (This)->lpVtbl -> StepBack(This,error) ) + +#define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) \ + ( (This)->lpVtbl -> Jog(This,rate,error) ) + +#define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error) \ + ( (This)->lpVtbl -> Shuttle(This,rate,error) ) + +#define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error) \ + ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) + +#define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error) \ + ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) + +#define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error) \ + ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) + +#define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds) \ + ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) + +#define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds) \ + ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) + +#define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields) \ + ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) + +#define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields) \ + ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) + +#define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields) \ + ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) + +#define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields) \ + ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) + +#define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields) \ + ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) + +#define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \ + ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) + +#define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error) \ + ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) + +#define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error) \ + ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) + +#define IDeckLinkDeckControl_v7_9_Abort(This) \ + ( (This)->lpVtbl -> Abort(This) ) + +#define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) \ + ( (This)->lpVtbl -> CrashRecordStart(This,error) ) + +#define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error) \ + ( (This)->lpVtbl -> CrashRecordStop(This,error) ) + +#define IDeckLinkDeckControl_v7_9_SetCallback(This,callback) \ + ( (This)->lpVtbl -> SetCallback(This,callback) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayModeIterator_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751") + IDeckLinkDisplayModeIterator_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Next( + /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayModeIterator_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayModeIterator_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayModeIterator_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *Next )( + IDeckLinkDisplayModeIterator_v7_6 * This, + /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode); + + END_INTERFACE + } IDeckLinkDisplayModeIterator_v7_6Vtbl; + + interface IDeckLinkDisplayModeIterator_v7_6 + { + CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayModeIterator_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode) \ + ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayMode_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550") + IDeckLinkDisplayMode_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetName( + /* [out] */ BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0; + + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale) = 0; + + virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayMode_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayMode_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayMode_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayMode_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetName )( + IDeckLinkDisplayMode_v7_6 * This, + /* [out] */ BSTR *name); + + BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( + IDeckLinkDisplayMode_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkDisplayMode_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkDisplayMode_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( + IDeckLinkDisplayMode_v7_6 * This, + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale); + + BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( + IDeckLinkDisplayMode_v7_6 * This); + + END_INTERFACE + } IDeckLinkDisplayMode_v7_6Vtbl; + + interface IDeckLinkDisplayMode_v7_6 + { + CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayMode_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayMode_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayMode_v7_6_GetName(This,name) \ + ( (This)->lpVtbl -> GetName(This,name) ) + +#define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) \ + ( (This)->lpVtbl -> GetDisplayMode(This) ) + +#define IDeckLinkDisplayMode_v7_6_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkDisplayMode_v7_6_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) + +#define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This) \ + ( (This)->lpVtbl -> GetFieldDominance(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkOutput_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkOutput_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955") + IDeckLinkOutput_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + /* [out] */ unsigned long *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + /* [out] */ unsigned long *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + /* [out] */ BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *streamTime, + /* [out] */ double *playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkOutput_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkOutput_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkOutput_v7_6 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkOutput_v7_6 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( + IDeckLinkOutput_v7_6 * This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkMemoryAllocator *theAllocator); + + HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( + IDeckLinkOutput_v7_6 * This, + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame); + + HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( + IDeckLinkOutput_v7_6 * This, + BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame); + + HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( + IDeckLinkOutput_v7_6 * This, + /* [out] */ unsigned long *bufferedFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( + IDeckLinkOutput_v7_6 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( + IDeckLinkOutput_v7_6 * This, + /* [out] */ unsigned long *bufferedSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( + IDeckLinkOutput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( + IDeckLinkOutput_v7_6 * This, + /* [in] */ IDeckLinkAudioOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( + IDeckLinkOutput_v7_6 * This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( + IDeckLinkOutput_v7_6 * This, + BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( + IDeckLinkOutput_v7_6 * This, + /* [out] */ BOOL *active); + + HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( + IDeckLinkOutput_v7_6 * This, + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *streamTime, + /* [out] */ double *playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkOutput_v7_6 * This, + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame); + + END_INTERFACE + } IDeckLinkOutput_v7_6Vtbl; + + interface IDeckLinkOutput_v7_6 + { + CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkOutput_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkOutput_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) \ + ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) + +#define IDeckLinkOutput_v7_6_DisableVideoOutput(This) \ + ( (This)->lpVtbl -> DisableVideoOutput(This) ) + +#define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \ + ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) + +#define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \ + ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) + +#define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer) \ + ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) + +#define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame) \ + ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) + +#define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \ + ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) + +#define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount) \ + ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) + +#define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \ + ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) + +#define IDeckLinkOutput_v7_6_DisableAudioOutput(This) \ + ( (This)->lpVtbl -> DisableAudioOutput(This) ) + +#define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \ + ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_6_BeginAudioPreroll(This) \ + ( (This)->lpVtbl -> BeginAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_6_EndAudioPreroll(This) \ + ( (This)->lpVtbl -> EndAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \ + ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \ + ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) + +#define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This) \ + ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) + +#define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \ + ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) + +#define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \ + ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) + +#define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active) \ + ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) + +#define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \ + ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) + +#define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkInput_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInput_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1") + IDeckLinkInput_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + /* [out] */ unsigned long *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + /* [out] */ unsigned long *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInput_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInput_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInput_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkInput_v7_6 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkInput_v7_6 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkInput_v7_6 * This, + /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( + IDeckLinkInput_v7_6 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( + IDeckLinkInput_v7_6 * This, + /* [out] */ unsigned long *availableFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( + IDeckLinkInput_v7_6 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( + IDeckLinkInput_v7_6 * This, + /* [out] */ unsigned long *availableSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *StartStreams )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *StopStreams )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *PauseStreams )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *FlushStreams )( + IDeckLinkInput_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkInput_v7_6 * This, + /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkInput_v7_6 * This, + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *hardwareTime, + /* [out] */ BMDTimeValue *timeInFrame, + /* [out] */ BMDTimeValue *ticksPerFrame); + + END_INTERFACE + } IDeckLinkInput_v7_6Vtbl; + + interface IDeckLinkInput_v7_6 + { + CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInput_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInput_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags) \ + ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) + +#define IDeckLinkInput_v7_6_DisableVideoInput(This) \ + ( (This)->lpVtbl -> DisableVideoInput(This) ) + +#define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount) \ + ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) + +#define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount) \ + ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) + +#define IDeckLinkInput_v7_6_DisableAudioInput(This) \ + ( (This)->lpVtbl -> DisableAudioInput(This) ) + +#define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \ + ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) + +#define IDeckLinkInput_v7_6_StartStreams(This) \ + ( (This)->lpVtbl -> StartStreams(This) ) + +#define IDeckLinkInput_v7_6_StopStreams(This) \ + ( (This)->lpVtbl -> StopStreams(This) ) + +#define IDeckLinkInput_v7_6_PauseStreams(This) \ + ( (This)->lpVtbl -> PauseStreams(This) ) + +#define IDeckLinkInput_v7_6_FlushStreams(This) \ + ( (This)->lpVtbl -> FlushStreams(This) ) + +#define IDeckLinkInput_v7_6_SetCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetCallback(This,theCallback) ) + +#define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkTimecode_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkTimecode_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6") + IDeckLinkTimecode_v7_6 : public IUnknown + { + public: + virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponents( + /* [out] */ unsigned char *hours, + /* [out] */ unsigned char *minutes, + /* [out] */ unsigned char *seconds, + /* [out] */ unsigned char *frames) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + /* [out] */ BSTR *timecode) = 0; + + virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkTimecode_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkTimecode_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkTimecode_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkTimecode_v7_6 * This); + + BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( + IDeckLinkTimecode_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetComponents )( + IDeckLinkTimecode_v7_6 * This, + /* [out] */ unsigned char *hours, + /* [out] */ unsigned char *minutes, + /* [out] */ unsigned char *seconds, + /* [out] */ unsigned char *frames); + + HRESULT ( STDMETHODCALLTYPE *GetString )( + IDeckLinkTimecode_v7_6 * This, + /* [out] */ BSTR *timecode); + + BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkTimecode_v7_6 * This); + + END_INTERFACE + } IDeckLinkTimecode_v7_6Vtbl; + + interface IDeckLinkTimecode_v7_6 + { + CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkTimecode_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkTimecode_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkTimecode_v7_6_GetBCD(This) \ + ( (This)->lpVtbl -> GetBCD(This) ) + +#define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) \ + ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) + +#define IDeckLinkTimecode_v7_6_GetString(This,timecode) \ + ( (This)->lpVtbl -> GetString(This,timecode) ) + +#define IDeckLinkTimecode_v7_6_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoFrame_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32") + IDeckLinkVideoFrame_v7_6 : public IUnknown + { + public: + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + /* [out] */ void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoFrame_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoFrame_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoFrame_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoFrame_v7_6 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoFrame_v7_6 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoFrame_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoFrame_v7_6 * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkVideoFrame_v7_6 * This, + BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode_v7_6 **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkVideoFrame_v7_6 * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + END_INTERFACE + } IDeckLinkVideoFrame_v7_6Vtbl; + + interface IDeckLinkVideoFrame_v7_6 + { + CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoFrame_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoFrame_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoFrame_v7_6_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoFrame_v7_6_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoFrame_v7_6_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoFrame_v7_6_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkMutableVideoFrame_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F") + IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 + { + public: + virtual HRESULT STDMETHODCALLTYPE SetFlags( + BMDFrameFlags newFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecode( + BMDTimecodeFormat format, + /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( + /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkMutableVideoFrame_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkMutableVideoFrame_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkMutableVideoFrame_v7_6 * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkMutableVideoFrame_v7_6 * This, + BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode_v7_6 **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkMutableVideoFrame_v7_6 * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + HRESULT ( STDMETHODCALLTYPE *SetFlags )( + IDeckLinkMutableVideoFrame_v7_6 * This, + BMDFrameFlags newFlags); + + HRESULT ( STDMETHODCALLTYPE *SetTimecode )( + IDeckLinkMutableVideoFrame_v7_6 * This, + BMDTimecodeFormat format, + /* [in] */ IDeckLinkTimecode_v7_6 *timecode); + + HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( + IDeckLinkMutableVideoFrame_v7_6 * This, + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags); + + HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( + IDeckLinkMutableVideoFrame_v7_6 * This, + /* [in] */ IDeckLinkVideoFrameAncillary *ancillary); + + END_INTERFACE + } IDeckLinkMutableVideoFrame_v7_6Vtbl; + + interface IDeckLinkMutableVideoFrame_v7_6 + { + CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkMutableVideoFrame_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + + +#define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) \ + ( (This)->lpVtbl -> SetFlags(This,newFlags) ) + +#define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) + +#define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \ + ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) + +#define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoInputFrame_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965") + IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( + BMDTimeScale timeScale, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoInputFrame_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoInputFrame_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoInputFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoInputFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoInputFrame_v7_6 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoInputFrame_v7_6 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoInputFrame_v7_6 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoInputFrame_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoInputFrame_v7_6 * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkVideoInputFrame_v7_6 * This, + BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode_v7_6 **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkVideoInputFrame_v7_6 * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( + IDeckLinkVideoInputFrame_v7_6 * This, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( + IDeckLinkVideoInputFrame_v7_6 * This, + BMDTimeScale timeScale, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration); + + END_INTERFACE + } IDeckLinkVideoInputFrame_v7_6Vtbl; + + interface IDeckLinkVideoInputFrame_v7_6 + { + CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoInputFrame_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoInputFrame_v7_6_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + + +#define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) + +#define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \ + ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkScreenPreviewCallback_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E") + IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DrawFrame( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkScreenPreviewCallback_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkScreenPreviewCallback_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkScreenPreviewCallback_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *DrawFrame )( + IDeckLinkScreenPreviewCallback_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame); + + END_INTERFACE + } IDeckLinkScreenPreviewCallback_v7_6Vtbl; + + interface IDeckLinkScreenPreviewCallback_v7_6 + { + CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkScreenPreviewCallback_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame) \ + ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkGLScreenPreviewHelper_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA") + IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrame( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *InitializeGL )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *PaintGL )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetFrame )( + IDeckLinkGLScreenPreviewHelper_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame); + + END_INTERFACE + } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl; + + interface IDeckLinkGLScreenPreviewHelper_v7_6 + { + CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) \ + ( (This)->lpVtbl -> InitializeGL(This) ) + +#define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This) \ + ( (This)->lpVtbl -> PaintGL(This) ) + +#define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame) \ + ( (This)->lpVtbl -> SetFrame(This,theFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoConversion_v7_6 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B") + IDeckLinkVideoConversion_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ConvertFrame( + /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame, + /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoConversion_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoConversion_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoConversion_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoConversion_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( + IDeckLinkVideoConversion_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame, + /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame); + + END_INTERFACE + } IDeckLinkVideoConversion_v7_6Vtbl; + + interface IDeckLinkVideoConversion_v7_6 + { + CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoConversion_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoConversion_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame) \ + ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkConfiguration_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10") + IDeckLinkConfiguration_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( + /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( + /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( + /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection, + /* [out] */ BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( + /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( + /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( + /* [in] */ BOOL enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( + /* [out] */ BOOL *enabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( + /* [in] */ BOOL enable444VideoOutput, + /* [in] */ BOOL enable3GbsOutput) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( + /* [out] */ BOOL *is444VideoOutputEnabled, + /* [out] */ BOOL *threeGbsOutputEnabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( + /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( + /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( + /* [in] */ BOOL enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( + /* [out] */ BOOL *enabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( + /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( + /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( + /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( + /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( + /* [in] */ BMDVideoInputConversionMode conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( + /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( + /* [in] */ BOOL blackOutInCapture) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( + /* [out] */ BOOL *blackOutInCapture) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( + /* [in] */ unsigned long aFrameTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( + /* [out] */ unsigned long *aFrameTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( + /* [in] */ unsigned long activeLine1VANCsource, + /* [in] */ unsigned long activeLine2VANCsource, + /* [in] */ unsigned long activeLine3VANCsource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( + /* [out] */ unsigned long *activeLine1VANCsource, + /* [out] */ unsigned long *activeLine2VANCsource, + /* [out] */ unsigned long *activeLine3VANCsource) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( + /* [in] */ BMDAudioConnection audioInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( + /* [out] */ BMDAudioConnection *audioInputFormat) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkConfiguration_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkConfiguration_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkConfiguration_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ IDeckLinkConfiguration_v7_6 **configObject); + + HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( + IDeckLinkConfiguration_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection); + + HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection, + /* [out] */ BOOL *active); + + HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDAnalogVideoFlags analogVideoFlags); + + HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDAnalogVideoFlags *analogVideoFlags); + + HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BOOL enable); + + HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BOOL *enabled); + + HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BOOL enable444VideoOutput, + /* [in] */ BOOL enable3GbsOutput); + + HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BOOL *is444VideoOutputEnabled, + /* [out] */ BOOL *threeGbsOutputEnabled); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDVideoOutputConversionMode conversionMode); + + HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDVideoOutputConversionMode *conversionMode); + + HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BOOL enable); + + HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BOOL *enabled); + + HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDVideoConnection_v7_6 videoInputFormat); + + HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat); + + HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDAnalogVideoFlags analogVideoFlags); + + HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDAnalogVideoFlags *analogVideoFlags); + + HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDVideoInputConversionMode conversionMode); + + HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDVideoInputConversionMode *conversionMode); + + HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BOOL blackOutInCapture); + + HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BOOL *blackOutInCapture); + + HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ unsigned long aFrameTimecode); + + HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ unsigned long *aFrameTimecode); + + HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ unsigned long activeLine1VANCsource, + /* [in] */ unsigned long activeLine2VANCsource, + /* [in] */ unsigned long activeLine3VANCsource); + + HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ unsigned long *activeLine1VANCsource, + /* [out] */ unsigned long *activeLine2VANCsource, + /* [out] */ unsigned long *activeLine3VANCsource); + + HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( + IDeckLinkConfiguration_v7_6 * This, + /* [in] */ BMDAudioConnection audioInputFormat); + + HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( + IDeckLinkConfiguration_v7_6 * This, + /* [out] */ BMDAudioConnection *audioInputFormat); + + END_INTERFACE + } IDeckLinkConfiguration_v7_6Vtbl; + + interface IDeckLinkConfiguration_v7_6 + { + CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkConfiguration_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkConfiguration_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject) \ + ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) + +#define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This) \ + ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) + +#define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection) \ + ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) + +#define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active) \ + ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) + +#define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags) \ + ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) + +#define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags) \ + ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) + +#define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable) \ + ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) + +#define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) \ + ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) + +#define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) \ + ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) + +#define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) \ + ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) + +#define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode) \ + ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) + +#define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode) \ + ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) + +#define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) \ + ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) + +#define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) \ + ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) + +#define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) \ + ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) + +#define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) \ + ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) + +#define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags) \ + ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) + +#define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags) \ + ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) + +#define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode) \ + ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) + +#define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode) \ + ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) + +#define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture) \ + ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) + +#define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture) \ + ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) + +#define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \ + ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) + +#define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \ + ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) + +#define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \ + ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) + +#define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \ + ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) + +#define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) \ + ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) + +#define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) \ + ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoOutputCallback_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52") + IDeckLinkVideoOutputCallback_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoOutputCallback_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoOutputCallback_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoOutputCallback_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( + IDeckLinkVideoOutputCallback_v7_6 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result); + + HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( + IDeckLinkVideoOutputCallback_v7_6 * This); + + END_INTERFACE + } IDeckLinkVideoOutputCallback_v7_6Vtbl; + + interface IDeckLinkVideoOutputCallback_v7_6 + { + CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoOutputCallback_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result) \ + ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) + +#define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This) \ + ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ + +/* interface IDeckLinkInputCallback_v7_6 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414") + IDeckLinkInputCallback_v7_6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInputCallback_v7_6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInputCallback_v7_6 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInputCallback_v7_6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInputCallback_v7_6 * This); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( + IDeckLinkInputCallback_v7_6 * This, + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( + IDeckLinkInputCallback_v7_6 * This, + /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE + } IDeckLinkInputCallback_v7_6Vtbl; + + interface IDeckLinkInputCallback_v7_6 + { + CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInputCallback_v7_6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInputCallback_v7_6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \ + ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) + +#define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) \ + ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6; + +#ifdef __cplusplus + +class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905") +CDeckLinkGLScreenPreviewHelper_v7_6; +#endif + +EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6; + +#ifdef __cplusplus + +class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B") +CDeckLinkVideoConversion_v7_6; +#endif + +#ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ + +/* interface IDeckLinkInputCallback_v7_3 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0") + IDeckLinkInputCallback_v7_3 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInputCallback_v7_3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInputCallback_v7_3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInputCallback_v7_3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInputCallback_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( + IDeckLinkInputCallback_v7_3 * This, + /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents, + /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, + /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( + IDeckLinkInputCallback_v7_3 * This, + /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE + } IDeckLinkInputCallback_v7_3Vtbl; + + interface IDeckLinkInputCallback_v7_3 + { + CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInputCallback_v7_3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInputCallback_v7_3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \ + ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) + +#define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \ + ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ + +/* interface IDeckLinkOutput_v7_3 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkOutput_v7_3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3") + IDeckLinkOutput_v7_3 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + /* [out] */ unsigned long *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + /* [out] */ unsigned long *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + /* [out] */ BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkOutput_v7_3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkOutput_v7_3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkOutput_v7_3 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkOutput_v7_3 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( + IDeckLinkOutput_v7_3 * This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkMemoryAllocator *theAllocator); + + HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( + IDeckLinkOutput_v7_3 * This, + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame); + + HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( + IDeckLinkOutput_v7_3 * This, + BMDPixelFormat pixelFormat, + /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame); + + HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkVideoOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( + IDeckLinkOutput_v7_3 * This, + /* [out] */ unsigned long *bufferedFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( + IDeckLinkOutput_v7_3 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( + IDeckLinkOutput_v7_3 * This, + /* [out] */ unsigned long *bufferedSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( + IDeckLinkOutput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( + IDeckLinkOutput_v7_3 * This, + /* [in] */ IDeckLinkAudioOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( + IDeckLinkOutput_v7_3 * This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( + IDeckLinkOutput_v7_3 * This, + BMDTimeValue stopPlaybackAtTime, + /* [out] */ BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( + IDeckLinkOutput_v7_3 * This, + /* [out] */ BOOL *active); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkOutput_v7_3 * This, + BMDTimeScale desiredTimeScale, + /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan); + + END_INTERFACE + } IDeckLinkOutput_v7_3Vtbl; + + interface IDeckLinkOutput_v7_3 + { + CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkOutput_v7_3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkOutput_v7_3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) \ + ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) + +#define IDeckLinkOutput_v7_3_DisableVideoOutput(This) \ + ( (This)->lpVtbl -> DisableVideoOutput(This) ) + +#define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \ + ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) + +#define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \ + ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) + +#define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer) \ + ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) + +#define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame) \ + ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) + +#define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \ + ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) + +#define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount) \ + ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) + +#define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \ + ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) + +#define IDeckLinkOutput_v7_3_DisableAudioOutput(This) \ + ( (This)->lpVtbl -> DisableAudioOutput(This) ) + +#define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \ + ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_3_BeginAudioPreroll(This) \ + ( (This)->lpVtbl -> BeginAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_3_EndAudioPreroll(This) \ + ( (This)->lpVtbl -> EndAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \ + ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \ + ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) + +#define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This) \ + ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) + +#define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \ + ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) + +#define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \ + ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) + +#define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active) \ + ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) + +#define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ + +/* interface IDeckLinkInput_v7_3 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInput_v7_3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB") + IDeckLinkInput_v7_3 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + /* [out] */ unsigned long *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + /* [out] */ unsigned long *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInput_v7_3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInput_v7_3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInput_v7_3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkInput_v7_3 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkInput_v7_3 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( + IDeckLinkInput_v7_3 * This, + /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( + IDeckLinkInput_v7_3 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( + IDeckLinkInput_v7_3 * This, + /* [out] */ unsigned long *availableFrameCount); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( + IDeckLinkInput_v7_3 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( + IDeckLinkInput_v7_3 * This, + /* [out] */ unsigned long *availableSampleFrameCount); + + HRESULT ( STDMETHODCALLTYPE *StartStreams )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *StopStreams )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *PauseStreams )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *FlushStreams )( + IDeckLinkInput_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkInput_v7_3 * This, + /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback); + + END_INTERFACE + } IDeckLinkInput_v7_3Vtbl; + + interface IDeckLinkInput_v7_3 + { + CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInput_v7_3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInput_v7_3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback) \ + ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) + +#define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags) \ + ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) + +#define IDeckLinkInput_v7_3_DisableVideoInput(This) \ + ( (This)->lpVtbl -> DisableVideoInput(This) ) + +#define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount) \ + ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) + +#define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount) \ + ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) + +#define IDeckLinkInput_v7_3_DisableAudioInput(This) \ + ( (This)->lpVtbl -> DisableAudioInput(This) ) + +#define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \ + ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) + +#define IDeckLinkInput_v7_3_StartStreams(This) \ + ( (This)->lpVtbl -> StartStreams(This) ) + +#define IDeckLinkInput_v7_3_StopStreams(This) \ + ( (This)->lpVtbl -> StopStreams(This) ) + +#define IDeckLinkInput_v7_3_PauseStreams(This) \ + ( (This)->lpVtbl -> PauseStreams(This) ) + +#define IDeckLinkInput_v7_3_FlushStreams(This) \ + ( (This)->lpVtbl -> FlushStreams(This) ) + +#define IDeckLinkInput_v7_3_SetCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetCallback(This,theCallback) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoInputFrame_v7_3 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66") + IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoInputFrame_v7_3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoInputFrame_v7_3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoInputFrame_v7_3 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoInputFrame_v7_3 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoInputFrame_v7_3 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoInputFrame_v7_3 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoInputFrame_v7_3 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoInputFrame_v7_3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoInputFrame_v7_3 * This, + /* [out] */ void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetTimecode )( + IDeckLinkVideoInputFrame_v7_3 * This, + BMDTimecodeFormat format, + /* [out] */ IDeckLinkTimecode_v7_6 **timecode); + + HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( + IDeckLinkVideoInputFrame_v7_3 * This, + /* [out] */ IDeckLinkVideoFrameAncillary **ancillary); + + HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( + IDeckLinkVideoInputFrame_v7_3 * This, + /* [out] */ BMDTimeValue *frameTime, + /* [out] */ BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + END_INTERFACE + } IDeckLinkVideoInputFrame_v7_3Vtbl; + + interface IDeckLinkVideoInputFrame_v7_3 + { + CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoInputFrame_v7_3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoInputFrame_v7_3_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \ + ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) + +#define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) \ + ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) + + +#define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayModeIterator_v7_1 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F") + IDeckLinkDisplayModeIterator_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Next( + /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayModeIterator_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayModeIterator_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayModeIterator_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *Next )( + IDeckLinkDisplayModeIterator_v7_1 * This, + /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode); + + END_INTERFACE + } IDeckLinkDisplayModeIterator_v7_1Vtbl; + + interface IDeckLinkDisplayModeIterator_v7_1 + { + CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayModeIterator_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode) \ + ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkDisplayMode_v7_1 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3") + IDeckLinkDisplayMode_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetName( + /* [out] */ BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0; + + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkDisplayMode_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkDisplayMode_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkDisplayMode_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkDisplayMode_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetName )( + IDeckLinkDisplayMode_v7_1 * This, + /* [out] */ BSTR *name); + + BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( + IDeckLinkDisplayMode_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkDisplayMode_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkDisplayMode_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( + IDeckLinkDisplayMode_v7_1 * This, + /* [out] */ BMDTimeValue *frameDuration, + /* [out] */ BMDTimeScale *timeScale); + + END_INTERFACE + } IDeckLinkDisplayMode_v7_1Vtbl; + + interface IDeckLinkDisplayMode_v7_1 + { + CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkDisplayMode_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkDisplayMode_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkDisplayMode_v7_1_GetName(This,name) \ + ( (This)->lpVtbl -> GetName(This,name) ) + +#define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) \ + ( (This)->lpVtbl -> GetDisplayMode(This) ) + +#define IDeckLinkDisplayMode_v7_1_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkDisplayMode_v7_1_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoFrame_v7_1 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE") + IDeckLinkVideoFrame_v7_1 : public IUnknown + { + public: + virtual long STDMETHODCALLTYPE GetWidth( void) = 0; + + virtual long STDMETHODCALLTYPE GetHeight( void) = 0; + + virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoFrame_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoFrame_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoFrame_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoFrame_v7_1 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoFrame_v7_1 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoFrame_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoFrame_v7_1 * This, + void **buffer); + + END_INTERFACE + } IDeckLinkVideoFrame_v7_1Vtbl; + + interface IDeckLinkVideoFrame_v7_1 + { + CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoFrame_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoFrame_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoFrame_v7_1_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoFrame_v7_1_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoFrame_v7_1_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoFrame_v7_1_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoInputFrame_v7_1 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B") + IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetFrameTime( + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoInputFrame_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoInputFrame_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoInputFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetWidth )( + IDeckLinkVideoInputFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetHeight )( + IDeckLinkVideoInputFrame_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetRowBytes )( + IDeckLinkVideoInputFrame_v7_1 * This); + + BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( + IDeckLinkVideoInputFrame_v7_1 * This); + + BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( + IDeckLinkVideoInputFrame_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkVideoInputFrame_v7_1 * This, + void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( + IDeckLinkVideoInputFrame_v7_1 * This, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + END_INTERFACE + } IDeckLinkVideoInputFrame_v7_1Vtbl; + + interface IDeckLinkVideoInputFrame_v7_1 + { + CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoInputFrame_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoInputFrame_v7_1_GetWidth(This) \ + ( (This)->lpVtbl -> GetWidth(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_GetHeight(This) \ + ( (This)->lpVtbl -> GetHeight(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \ + ( (This)->lpVtbl -> GetRowBytes(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This) \ + ( (This)->lpVtbl -> GetPixelFormat(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_GetFlags(This) \ + ( (This)->lpVtbl -> GetFlags(This) ) + +#define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + + +#define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale) \ + ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkAudioInputPacket_v7_1 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788") + IDeckLinkAudioInputPacket_v7_1 : public IUnknown + { + public: + virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( + BMDTimeValue *packetTime, + BMDTimeScale timeScale) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkAudioInputPacket_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkAudioInputPacket_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkAudioInputPacket_v7_1 * This); + + long ( STDMETHODCALLTYPE *GetSampleCount )( + IDeckLinkAudioInputPacket_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetBytes )( + IDeckLinkAudioInputPacket_v7_1 * This, + void **buffer); + + HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( + IDeckLinkAudioInputPacket_v7_1 * This, + BMDTimeValue *packetTime, + BMDTimeScale timeScale); + + END_INTERFACE + } IDeckLinkAudioInputPacket_v7_1Vtbl; + + interface IDeckLinkAudioInputPacket_v7_1 + { + CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkAudioInputPacket_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkAudioInputPacket_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This) \ + ( (This)->lpVtbl -> GetSampleCount(This) ) + +#define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer) \ + ( (This)->lpVtbl -> GetBytes(This,buffer) ) + +#define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale) \ + ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkVideoOutputCallback_v7_1 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9") + IDeckLinkVideoOutputCallback_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkVideoOutputCallback_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkVideoOutputCallback_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkVideoOutputCallback_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( + IDeckLinkVideoOutputCallback_v7_1 * This, + /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame, + /* [in] */ BMDOutputFrameCompletionResult result); + + END_INTERFACE + } IDeckLinkVideoOutputCallback_v7_1Vtbl; + + interface IDeckLinkVideoOutputCallback_v7_1 + { + CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkVideoOutputCallback_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result) \ + ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkInputCallback_v7_1 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC") + IDeckLinkInputCallback_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInputCallback_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInputCallback_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInputCallback_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInputCallback_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( + IDeckLinkInputCallback_v7_1 * This, + /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame, + /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket); + + END_INTERFACE + } IDeckLinkInputCallback_v7_1Vtbl; + + interface IDeckLinkInputCallback_v7_1 + { + CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInputCallback_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInputCallback_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \ + ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkOutput_v7_1 */ +/* [helpstring][local][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkOutput_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5") + IDeckLinkOutput_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( + void *buffer, + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame_v7_1 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame_v7_1 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + /* [out] */ unsigned long *bufferedSampleCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkOutput_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkOutput_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkOutput_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkOutput_v7_1 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkOutput_v7_1 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( + IDeckLinkOutput_v7_1 * This, + BMDDisplayMode displayMode); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( + IDeckLinkOutput_v7_1 * This, + /* [in] */ IDeckLinkMemoryAllocator *theAllocator); + + HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( + IDeckLinkOutput_v7_1 * This, + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame); + + HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( + IDeckLinkOutput_v7_1 * This, + void *buffer, + long width, + long height, + long rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame); + + HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( + IDeckLinkOutput_v7_1 * This, + IDeckLinkVideoFrame_v7_1 *theFrame); + + HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( + IDeckLinkOutput_v7_1 * This, + IDeckLinkVideoFrame_v7_1 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( + IDeckLinkOutput_v7_1 * This, + /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( + IDeckLinkOutput_v7_1 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( + IDeckLinkOutput_v7_1 * This, + void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( + IDeckLinkOutput_v7_1 * This, + void *buffer, + unsigned long sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + /* [out] */ unsigned long *sampleFramesWritten); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( + IDeckLinkOutput_v7_1 * This, + /* [out] */ unsigned long *bufferedSampleCount); + + HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( + IDeckLinkOutput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( + IDeckLinkOutput_v7_1 * This, + /* [in] */ IDeckLinkAudioOutputCallback *theCallback); + + HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( + IDeckLinkOutput_v7_1 * This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( + IDeckLinkOutput_v7_1 * This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( + IDeckLinkOutput_v7_1 * This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan); + + END_INTERFACE + } IDeckLinkOutput_v7_1Vtbl; + + interface IDeckLinkOutput_v7_1 + { + CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkOutput_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkOutput_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode) \ + ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) + +#define IDeckLinkOutput_v7_1_DisableVideoOutput(This) \ + ( (This)->lpVtbl -> DisableVideoOutput(This) ) + +#define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \ + ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) + +#define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \ + ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) + +#define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) \ + ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) + +#define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame) \ + ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) + +#define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \ + ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) + +#define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \ + ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) + +#define IDeckLinkOutput_v7_1_DisableAudioOutput(This) \ + ( (This)->lpVtbl -> DisableAudioOutput(This) ) + +#define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \ + ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_1_BeginAudioPreroll(This) \ + ( (This)->lpVtbl -> BeginAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_1_EndAudioPreroll(This) \ + ( (This)->lpVtbl -> EndAudioPreroll(This) ) + +#define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \ + ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) + +#define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \ + ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) + +#define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This) \ + ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) + +#define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) + +#define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \ + ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) + +#define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \ + ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) + +#define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \ + ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */ + + +#ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ + +/* interface IDeckLinkInput_v7_1 */ +/* [helpstring][uuid][object] */ + + +EXTERN_C const IID IID_IDeckLinkInput_v7_1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD") + IDeckLinkInput_v7_1 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( + void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesRead, + /* [out] */ BMDTimeValue *audioPacketTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + /* [out] */ unsigned long *bufferedSampleCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDeckLinkInput_v7_1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDeckLinkInput_v7_1 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDeckLinkInput_v7_1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( + IDeckLinkInput_v7_1 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + /* [out] */ BMDDisplayModeSupport *result); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( + IDeckLinkInput_v7_1 * This, + /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator); + + HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( + IDeckLinkInput_v7_1 * This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( + IDeckLinkInput_v7_1 * This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned long channelCount); + + HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( + IDeckLinkInput_v7_1 * This, + void *buffer, + unsigned long sampleFrameCount, + /* [out] */ unsigned long *sampleFramesRead, + /* [out] */ BMDTimeValue *audioPacketTime, + BMDTimeScale timeScale); + + HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( + IDeckLinkInput_v7_1 * This, + /* [out] */ unsigned long *bufferedSampleCount); + + HRESULT ( STDMETHODCALLTYPE *StartStreams )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *StopStreams )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *PauseStreams )( + IDeckLinkInput_v7_1 * This); + + HRESULT ( STDMETHODCALLTYPE *SetCallback )( + IDeckLinkInput_v7_1 * This, + /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback); + + END_INTERFACE + } IDeckLinkInput_v7_1Vtbl; + + interface IDeckLinkInput_v7_1 + { + CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDeckLinkInput_v7_1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDeckLinkInput_v7_1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \ + ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) + +#define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator) \ + ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) + +#define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags) \ + ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) + +#define IDeckLinkInput_v7_1_DisableVideoInput(This) \ + ( (This)->lpVtbl -> DisableVideoInput(This) ) + +#define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount) \ + ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) + +#define IDeckLinkInput_v7_1_DisableAudioInput(This) \ + ( (This)->lpVtbl -> DisableAudioInput(This) ) + +#define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) \ + ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) + +#define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \ + ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) + +#define IDeckLinkInput_v7_1_StartStreams(This) \ + ( (This)->lpVtbl -> StartStreams(This) ) + +#define IDeckLinkInput_v7_1_StopStreams(This) \ + ( (This)->lpVtbl -> StopStreams(This) ) + +#define IDeckLinkInput_v7_1_PauseStreams(This) \ + ( (This)->lpVtbl -> PauseStreams(This) ) + +#define IDeckLinkInput_v7_1_SetCallback(This,theCallback) \ + ( (This)->lpVtbl -> SetCallback(This,theCallback) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */ + +#endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/sys/decklink/win/DeckLinkAPIDispatch.cpp b/sys/decklink/win/DeckLinkAPIDispatch.cpp new file mode 100644 index 0000000..8a69a8a --- /dev/null +++ b/sys/decklink/win/DeckLinkAPIDispatch.cpp @@ -0,0 +1,40 @@ +/* -LICENSE-START- +** Copyright (c) 2011 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include "DeckLinkAPI.h" + +extern "C" { + +IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) +{ + IDeckLinkIterator *deckLinkIterator = NULL; + HRESULT res = CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL, + IID_IDeckLinkIterator, (void**)&deckLinkIterator); + return deckLinkIterator; +} + +}; \ No newline at end of file diff --git a/sys/decklink/win/DeckLinkAPI_i.c b/sys/decklink/win/DeckLinkAPI_i.c new file mode 100644 index 0000000..e9346db --- /dev/null +++ b/sys/decklink/win/DeckLinkAPI_i.c @@ -0,0 +1,259 @@ + + +/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ + +/* link this file in with the server and any clients */ + + + /* File created by MIDL compiler version 7.00.0500 */ +/* at Fri Jun 17 10:43:51 2011 + */ +/* Compiler settings for .\win\DeckLinkAPI.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else // !_MIDL_USE_GUIDDEF_ + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef struct _IID +{ + unsigned long x; + unsigned short s1; + unsigned short s2; + unsigned char c[8]; +} IID; + +#endif // __IID_DEFINED__ + +#ifndef CLSID_DEFINED +#define CLSID_DEFINED +typedef IID CLSID; +#endif // CLSID_DEFINED + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif !_MIDL_USE_GUIDDEF_ + +MIDL_DEFINE_GUID(IID, LIBID_DeckLinkAPI,0xD864517A,0xEDD5,0x466D,0x86,0x7D,0xC8,0x19,0xF1,0xC0,0x52,0xBB); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback,0x20AA5225,0x1958,0x47CB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback,0xDD04E5EC,0x7415,0x42AB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator,0xB36EB6E7,0x9D29,0x4AA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioOutputCallback,0x403C681B,0x7F46,0x4A12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator,0x74E936FC,0xCC28,0x4A67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAPIInformation,0x7BEA3C68,0x730D,0x4322,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator,0x9C88499F,0xF601,0x4021,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode,0x3EB2C1AB,0x0A3D,0x4523,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLink,0x62BFF75D,0x6569,0x4E55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput,0xA3EF0963,0x0862,0x44ED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput,0x6D40EF78,0x28B9,0x4E21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode,0xBC6CFBD3,0x8317,0x4325,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame,0x3F716FE0,0xF023,0x4111,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame,0x69E2639F,0x40DA,0x4E19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame3DExtensions,0xDA0F7E4A,0xEDC7,0x48A8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame,0x05CFE374,0x537C,0x4094,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillary,0x732E723C,0xD1A4,0x4E29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket,0xE43D5870,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback,0xB1D3F49A,0x85FE,0x4C5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper,0x504E2209,0xCAC7,0x4C1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0xC679A35B,0x610C,0x4D09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAttributes,0xABC11843,0xD966,0x44CB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer,0x89AFCAF5,0x65F8,0x421E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion,0x3BBCB8A2,0xDA2C,0x42D9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback,0xE5F693C1,0x4283,0x4716,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl,0x522A9E39,0x0F3C,0x4742,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator,0xD9EDA3B3,0x2887,0x41FA,0xB7,0x24,0x01,0x7C,0xF1,0xEB,0x1D,0x37); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkAPIInformation,0x263CA19F,0xED09,0x482E,0x9F,0x9D,0x84,0x00,0x57,0x83,0xA2,0x37); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper,0xF63E77C7,0xB655,0x4A4A,0x9A,0xD0,0x3C,0xA8,0x5D,0x39,0x43,0x43); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion,0x7DBBBB11,0x5B7B,0x467D,0xAE,0xA4,0xCE,0xA4,0x68,0xFD,0x36,0x8C); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v7_9,0xA4D81043,0x0619,0x42B7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_6,0x455D741F,0x1779,0x4800,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_6,0x87451E84,0x2B7E,0x439E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_6,0x29228142,0xEB8C,0x4141,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_6,0x300C135A,0x9F43,0x48E2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode_v7_6,0xEFB9BCA6,0xA521,0x44F7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_6,0xA8D8238E,0x6B18,0x4196,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame_v7_6,0x46FCEE00,0xB4E6,0x43D0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_6,0x9A74FA41,0xAE9F,0x47AC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback_v7_6,0x373F499D,0x4B4D,0x4518,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper_v7_6,0xBA575CD9,0xA15E,0x497B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion_v7_6,0x3EB504C9,0xF97D,0x40FE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v7_6,0xB8EAD569,0xB764,0x47F0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_6,0xE763A626,0x4A3C,0x49D1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_6,0x31D28EE7,0x88B6,0x4CB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper_v7_6,0xD398CEE7,0x4434,0x4CA3,0x9B,0xA6,0x5A,0xE3,0x45,0x56,0xB9,0x05); + + +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion_v7_6,0xFFA84F77,0x73BE,0x4FB7,0xB0,0x3E,0xB5,0xE4,0x4B,0x9F,0x75,0x9B); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_3,0xFD6F311D,0x4D00,0x444B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_3,0x271C65E3,0xC323,0x4344,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_3,0x4973F012,0x9925,0x458C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_3,0xCF317790,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_1,0xB28131B6,0x59AC,0x4857,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_1,0xAF0CD6D5,0x8376,0x435E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_1,0x333F3A10,0x8C2D,0x43CF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_1,0xC8B41D95,0x8848,0x40EE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket_v7_1,0xC86DE4F6,0xA29F,0x42E3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_1,0xEBD01AFA,0xE4B0,0x49C6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_1,0x7F94F328,0x5ED4,0x4E9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_1,0xAE5B3E9B,0x4E1E,0x4535,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5); + + +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_1,0x2B54EDEF,0x5B32,0x429F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD); + +#undef MIDL_DEFINE_GUID + +#ifdef __cplusplus +} +#endif + + + diff --git a/sys/directdraw/Makefile.in b/sys/directdraw/Makefile.in index 9ff005a..99e4627 100644 --- a/sys/directdraw/Makefile.in +++ b/sys/directdraw/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstdirectdrawsink_la_OBJECTS = \ libgstdirectdrawsink_la-gstdirectdrawplugin.lo libgstdirectdrawsink_la_OBJECTS = \ $(am_libgstdirectdrawsink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdirectdrawsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdirectdrawsink_la_SOURCES) DIST_SOURCES = $(libgstdirectdrawsink_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdirectdrawsink.la: $(libgstdirectdrawsink_la_OBJECTS) $(libgstdirectdrawsink_la_DEPENDENCIES) +libgstdirectdrawsink.la: $(libgstdirectdrawsink_la_OBJECTS) $(libgstdirectdrawsink_la_DEPENDENCIES) $(EXTRA_libgstdirectdrawsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdirectdrawsink_la_LINK) -rpath $(plugindir) $(libgstdirectdrawsink_la_OBJECTS) $(libgstdirectdrawsink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,42 +649,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdirectdrawsink_la-gstdirectdrawsink.lo: gstdirectdrawsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectdrawsink_la-gstdirectdrawsink.lo -MD -MP -MF $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawsink.Tpo -c -o libgstdirectdrawsink_la-gstdirectdrawsink.lo `test -f 'gstdirectdrawsink.c' || echo '$(srcdir)/'`gstdirectdrawsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawsink.Tpo $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectdrawsink.c' object='libgstdirectdrawsink_la-gstdirectdrawsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectdrawsink.c' object='libgstdirectdrawsink_la-gstdirectdrawsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectdrawsink_la-gstdirectdrawsink.lo `test -f 'gstdirectdrawsink.c' || echo '$(srcdir)/'`gstdirectdrawsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectdrawsink_la-gstdirectdrawsink.lo `test -f 'gstdirectdrawsink.c' || echo '$(srcdir)/'`gstdirectdrawsink.c libgstdirectdrawsink_la-gstdirectdrawplugin.lo: gstdirectdrawplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectdrawsink_la-gstdirectdrawplugin.lo -MD -MP -MF $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawplugin.Tpo -c -o libgstdirectdrawsink_la-gstdirectdrawplugin.lo `test -f 'gstdirectdrawplugin.c' || echo '$(srcdir)/'`gstdirectdrawplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawplugin.Tpo $(DEPDIR)/libgstdirectdrawsink_la-gstdirectdrawplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectdrawplugin.c' object='libgstdirectdrawsink_la-gstdirectdrawplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectdrawplugin.c' object='libgstdirectdrawsink_la-gstdirectdrawplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectdrawsink_la-gstdirectdrawplugin.lo `test -f 'gstdirectdrawplugin.c' || echo '$(srcdir)/'`gstdirectdrawplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectdrawsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectdrawsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectdrawsink_la-gstdirectdrawplugin.lo `test -f 'gstdirectdrawplugin.c' || echo '$(srcdir)/'`gstdirectdrawplugin.c mostlyclean-libtool: -rm -f *.lo @@ -764,10 +786,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/directdraw/gstdirectdrawplugin.c b/sys/directdraw/gstdirectdrawplugin.c index 190bd02..7872037 100644 --- a/sys/directdraw/gstdirectdrawplugin.c +++ b/sys/directdraw/gstdirectdrawplugin.c @@ -33,7 +33,7 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "directdrawsink", GST_RANK_PRIMARY, + if (!gst_element_register (plugin, "directdrawsink", GST_RANK_SECONDARY, GST_TYPE_DIRECTDRAW_SINK)) return FALSE; diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c index 05c8136..bd9b79c 100644 --- a/sys/directdraw/gstdirectdrawsink.c +++ b/sys/directdraw/gstdirectdrawsink.c @@ -44,6 +44,7 @@ #endif #include "gstdirectdrawsink.h" +#include GST_DEBUG_CATEGORY_STATIC (directdrawsink_debug); #define GST_CAT_DEFAULT directdrawsink_debug @@ -385,8 +386,8 @@ gst_directdraw_sink_base_init (gpointer g_class) "Sink/Video", "Output to a video card via Direct Draw", "Sebastien Moutte "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&directdrawsink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &directdrawsink_sink_factory); } static void @@ -539,11 +540,17 @@ gst_directdraw_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) GstStructure *structure = NULL; gboolean ret; const GValue *fps; + gint par_n, par_d; structure = gst_caps_get_structure (caps, 0); if (!structure) return FALSE; + if (!gst_video_parse_caps_pixel_aspect_ratio (caps, &par_n, &par_d)) { + par_n = 1; + par_d = 1; + } + ret = gst_structure_get_int (structure, "width", &ddrawsink->video_width); ret &= gst_structure_get_int (structure, "height", &ddrawsink->video_height); fps = gst_structure_get_value (structure, "framerate"); @@ -556,7 +563,7 @@ gst_directdraw_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) ("Failed to get caps properties from caps"), (NULL)); return FALSE; } - GST_VIDEO_SINK_WIDTH (ddrawsink) = ddrawsink->video_width; + GST_VIDEO_SINK_WIDTH (ddrawsink) = ddrawsink->video_width * par_n / par_d; GST_VIDEO_SINK_HEIGHT (ddrawsink) = ddrawsink->video_height; ddrawsink->fps_n = gst_value_get_fraction_numerator (fps); @@ -575,8 +582,10 @@ gst_directdraw_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) /* if we are rendering to our own window, resize it to video size */ if (ddrawsink->video_window && ddrawsink->our_video_window) { SetWindowPos (ddrawsink->video_window, NULL, - 0, 0, ddrawsink->video_width + (GetSystemMetrics (SM_CXSIZEFRAME) * 2), - ddrawsink->video_height + GetSystemMetrics (SM_CYCAPTION) + + 0, 0, + GST_VIDEO_SINK_WIDTH (ddrawsink) + + (GetSystemMetrics (SM_CXSIZEFRAME) * 2), + GST_VIDEO_SINK_HEIGHT (ddrawsink) + GetSystemMetrics (SM_CYCAPTION) + (GetSystemMetrics (SM_CYSIZEFRAME) * 2), SWP_SHOWWINDOW | SWP_NOMOVE); } @@ -923,8 +932,8 @@ gst_directdraw_sink_show_frame (GstBaseSink * bsink, GstBuffer * buf) /* center image to dest image keeping aspect ratio */ src_rect.top = 0; src_rect.left = 0; - src_rect.bottom = ddrawsink->video_height; - src_rect.right = ddrawsink->video_width; + src_rect.bottom = GST_VIDEO_SINK_HEIGHT (ddrawsink); + src_rect.right = GST_VIDEO_SINK_WIDTH (ddrawsink); gst_directdraw_sink_center_rect (ddrawsink, src_rect, destsurf_rect, &destsurf_rect); gst_directdraw_sink_draw_borders (ddrawsink, destsurf_rect); @@ -1744,9 +1753,9 @@ gst_directdraw_sink_get_depth (LPDDPIXELFORMAT lpddpfPixelFormat) gint order = 0, binary; binary = - lpddpfPixelFormat-> - dwRBitMask | lpddpfPixelFormat->dwGBitMask | lpddpfPixelFormat-> - dwBBitMask | lpddpfPixelFormat->dwRGBAlphaBitMask; + lpddpfPixelFormat->dwRBitMask | lpddpfPixelFormat-> + dwGBitMask | lpddpfPixelFormat->dwBBitMask | lpddpfPixelFormat-> + dwRGBAlphaBitMask; while (binary != 0) { if ((binary % 2) == 1) order++; diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in index 5747786..205412f 100644 --- a/sys/directsound/Makefile.in +++ b/sys/directsound/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +117,8 @@ am_libgstdirectsoundsrc_la_OBJECTS = \ libgstdirectsoundsrc_la-gstdirectsoundplugin.lo libgstdirectsoundsrc_la_OBJECTS = \ $(am_libgstdirectsoundsrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdirectsoundsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -127,21 +134,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdirectsoundsrc_la_SOURCES) DIST_SOURCES = $(libgstdirectsoundsrc_la_SOURCES) @@ -153,7 +160,6 @@ 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@ @@ -171,7 +177,6 @@ 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@ @@ -206,6 +211,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -245,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -262,6 +269,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -270,13 +278,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -301,13 +312,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -355,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -386,8 +399,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -411,6 +428,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -435,10 +454,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -450,6 +473,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -474,6 +501,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -509,7 +537,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdirectsoundsrc.la: $(libgstdirectsoundsrc_la_OBJECTS) $(libgstdirectsoundsrc_la_DEPENDENCIES) +libgstdirectsoundsrc.la: $(libgstdirectsoundsrc_la_OBJECTS) $(libgstdirectsoundsrc_la_DEPENDENCIES) $(EXTRA_libgstdirectsoundsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdirectsoundsrc_la_LINK) -rpath $(plugindir) $(libgstdirectsoundsrc_la_OBJECTS) $(libgstdirectsoundsrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,42 +649,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdirectsoundsrc_la-gstdirectsoundsrc.lo: gstdirectsoundsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsrc_la-gstdirectsoundsrc.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundsrc.Tpo -c -o libgstdirectsoundsrc_la-gstdirectsoundsrc.lo `test -f 'gstdirectsoundsrc.c' || echo '$(srcdir)/'`gstdirectsoundsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundsrc.Tpo $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectsoundsrc.c' object='libgstdirectsoundsrc_la-gstdirectsoundsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectsoundsrc.c' object='libgstdirectsoundsrc_la-gstdirectsoundsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsrc_la-gstdirectsoundsrc.lo `test -f 'gstdirectsoundsrc.c' || echo '$(srcdir)/'`gstdirectsoundsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsrc_la-gstdirectsoundsrc.lo `test -f 'gstdirectsoundsrc.c' || echo '$(srcdir)/'`gstdirectsoundsrc.c libgstdirectsoundsrc_la-gstdirectsoundplugin.lo: gstdirectsoundplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsrc_la-gstdirectsoundplugin.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundplugin.Tpo -c -o libgstdirectsoundsrc_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundplugin.Tpo $(DEPDIR)/libgstdirectsoundsrc_la-gstdirectsoundplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectsoundplugin.c' object='libgstdirectsoundsrc_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectsoundplugin.c' object='libgstdirectsoundsrc_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsrc_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsrc_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsrc_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c mostlyclean-libtool: -rm -f *.lo @@ -764,10 +786,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/directsound/gstdirectsoundsrc.c b/sys/directsound/gstdirectsoundsrc.c index 54282f6..7f0072d 100644 --- a/sys/directsound/gstdirectsoundsrc.c +++ b/sys/directsound/gstdirectsoundsrc.c @@ -156,8 +156,8 @@ gst_directsound_src_base_init (gpointer g_class) "Capture from a soundcard via DIRECTSOUND", "Joni Valtanen "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&directsound_src_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &directsound_src_src_factory); } diff --git a/sys/dshowdecwrapper/Makefile.in b/sys/dshowdecwrapper/Makefile.in index de83438..83a52ce 100644 --- a/sys/dshowdecwrapper/Makefile.in +++ b/sys/dshowdecwrapper/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +120,8 @@ am_libgstdshowdecwrapper_la_OBJECTS = \ libgstdshowdecwrapper_la-gstdshowfakesrc.lo libgstdshowdecwrapper_la_OBJECTS = \ $(am_libgstdshowdecwrapper_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdshowdecwrapper_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -130,21 +137,21 @@ 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 = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdshowdecwrapper_la_SOURCES) DIST_SOURCES = $(libgstdshowdecwrapper_la_SOURCES) @@ -156,7 +163,6 @@ 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@ @@ -174,7 +180,6 @@ 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@ @@ -209,6 +214,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -248,6 +254,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -265,6 +272,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -273,13 +281,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -304,13 +315,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -358,6 +370,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -389,8 +402,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -414,6 +431,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -438,10 +457,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -453,6 +476,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -477,6 +504,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -512,7 +540,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -612,7 +639,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdshowdecwrapper.la: $(libgstdshowdecwrapper_la_OBJECTS) $(libgstdshowdecwrapper_la_DEPENDENCIES) +libgstdshowdecwrapper.la: $(libgstdshowdecwrapper_la_OBJECTS) $(libgstdshowdecwrapper_la_DEPENDENCIES) $(EXTRA_libgstdshowdecwrapper_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgstdshowdecwrapper_la_LINK) -rpath $(plugindir) $(libgstdshowdecwrapper_la_OBJECTS) $(libgstdshowdecwrapper_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -630,66 +657,58 @@ distclean-compile: .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.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@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libgstdshowdecwrapper_la-gstdshowaudiodec.lo: gstdshowaudiodec.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdshowdecwrapper_la-gstdshowaudiodec.lo -MD -MP -MF $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowaudiodec.Tpo -c -o libgstdshowdecwrapper_la-gstdshowaudiodec.lo `test -f 'gstdshowaudiodec.cpp' || echo '$(srcdir)/'`gstdshowaudiodec.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowaudiodec.Tpo $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowaudiodec.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdshowaudiodec.cpp' object='libgstdshowdecwrapper_la-gstdshowaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdshowaudiodec.cpp' object='libgstdshowdecwrapper_la-gstdshowaudiodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowaudiodec.lo `test -f 'gstdshowaudiodec.cpp' || echo '$(srcdir)/'`gstdshowaudiodec.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowaudiodec.lo `test -f 'gstdshowaudiodec.cpp' || echo '$(srcdir)/'`gstdshowaudiodec.cpp libgstdshowdecwrapper_la-gstdshowdecwrapper.lo: gstdshowdecwrapper.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdshowdecwrapper_la-gstdshowdecwrapper.lo -MD -MP -MF $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowdecwrapper.Tpo -c -o libgstdshowdecwrapper_la-gstdshowdecwrapper.lo `test -f 'gstdshowdecwrapper.cpp' || echo '$(srcdir)/'`gstdshowdecwrapper.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowdecwrapper.Tpo $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowdecwrapper.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdshowdecwrapper.cpp' object='libgstdshowdecwrapper_la-gstdshowdecwrapper.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdshowdecwrapper.cpp' object='libgstdshowdecwrapper_la-gstdshowdecwrapper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowdecwrapper.lo `test -f 'gstdshowdecwrapper.cpp' || echo '$(srcdir)/'`gstdshowdecwrapper.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowdecwrapper.lo `test -f 'gstdshowdecwrapper.cpp' || echo '$(srcdir)/'`gstdshowdecwrapper.cpp libgstdshowdecwrapper_la-gstdshowvideodec.lo: gstdshowvideodec.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdshowdecwrapper_la-gstdshowvideodec.lo -MD -MP -MF $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowvideodec.Tpo -c -o libgstdshowdecwrapper_la-gstdshowvideodec.lo `test -f 'gstdshowvideodec.cpp' || echo '$(srcdir)/'`gstdshowvideodec.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowvideodec.Tpo $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowvideodec.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdshowvideodec.cpp' object='libgstdshowdecwrapper_la-gstdshowvideodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdshowvideodec.cpp' object='libgstdshowdecwrapper_la-gstdshowvideodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowvideodec.lo `test -f 'gstdshowvideodec.cpp' || echo '$(srcdir)/'`gstdshowvideodec.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowvideodec.lo `test -f 'gstdshowvideodec.cpp' || echo '$(srcdir)/'`gstdshowvideodec.cpp libgstdshowdecwrapper_la-gstdshowutil.lo: gstdshowutil.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdshowdecwrapper_la-gstdshowutil.lo -MD -MP -MF $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowutil.Tpo -c -o libgstdshowdecwrapper_la-gstdshowutil.lo `test -f 'gstdshowutil.cpp' || echo '$(srcdir)/'`gstdshowutil.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowutil.Tpo $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowutil.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdshowutil.cpp' object='libgstdshowdecwrapper_la-gstdshowutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdshowutil.cpp' object='libgstdshowdecwrapper_la-gstdshowutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowutil.lo `test -f 'gstdshowutil.cpp' || echo '$(srcdir)/'`gstdshowutil.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowutil.lo `test -f 'gstdshowutil.cpp' || echo '$(srcdir)/'`gstdshowutil.cpp libgstdshowdecwrapper_la-gstdshowfakesrc.lo: gstdshowfakesrc.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgstdshowdecwrapper_la-gstdshowfakesrc.lo -MD -MP -MF $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowfakesrc.Tpo -c -o libgstdshowdecwrapper_la-gstdshowfakesrc.lo `test -f 'gstdshowfakesrc.cpp' || echo '$(srcdir)/'`gstdshowfakesrc.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowfakesrc.Tpo $(DEPDIR)/libgstdshowdecwrapper_la-gstdshowfakesrc.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdshowfakesrc.cpp' object='libgstdshowdecwrapper_la-gstdshowfakesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstdshowfakesrc.cpp' object='libgstdshowdecwrapper_la-gstdshowfakesrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowfakesrc.lo `test -f 'gstdshowfakesrc.cpp' || echo '$(srcdir)/'`gstdshowfakesrc.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdshowdecwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgstdshowdecwrapper_la-gstdshowfakesrc.lo `test -f 'gstdshowfakesrc.cpp' || echo '$(srcdir)/'`gstdshowfakesrc.cpp mostlyclean-libtool: -rm -f *.lo @@ -796,10 +815,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/dshowdecwrapper/gstdshowaudiodec.cpp b/sys/dshowdecwrapper/gstdshowaudiodec.cpp index 1f4bd98..bd4bd64 100644 --- a/sys/dshowdecwrapper/gstdshowaudiodec.cpp +++ b/sys/dshowdecwrapper/gstdshowaudiodec.cpp @@ -1,6 +1,6 @@ /* * GStreamer DirectShow codecs wrapper - * Copyright <2006, 2007, 2008> Fluendo + * Copyright <2006, 2007, 2008, 2009, 2010> Fluendo * Copyright <2006, 2007, 2008> Pioneers of the Inevitable * Copyright <2007,2008> Sebastien Moutte * @@ -58,8 +58,6 @@ GST_DEBUG_CATEGORY_STATIC (dshowaudiodec_debug); GST_BOILERPLATE (GstDshowAudioDec, gst_dshowaudiodec, GstElement, GST_TYPE_ELEMENT); -static const AudioCodecEntry *tmp; - static void gst_dshowaudiodec_dispose (GObject * object); static GstStateChangeReturn gst_dshowaudiodec_change_state (GstElement * element, GstStateChange transition); @@ -314,15 +312,25 @@ gst_dshowaudiodec_base_init (gpointer klass) GstPadTemplate *src, *sink; GstCaps *srccaps, *sinkcaps; GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - char *description; + GstElementDetails details; + const AudioCodecEntry *tmp; + gpointer qdata; + + qdata = g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), DSHOW_CODEC_QDATA); - audiodec_class->entry = tmp; - description = g_strdup_printf ("DirectShow %s Decoder Wrapper", + /* element details */ + tmp = audiodec_class->entry = (AudioCodecEntry *) qdata; + + details.longname = g_strdup_printf ("DirectShow %s Decoder Wrapper", + tmp->element_longname); + details.klass = g_strdup ("Codec/Decoder/Audio"); + details.description = g_strdup_printf ("DirectShow %s Decoder Wrapper", tmp->element_longname); - gst_element_class_set_details_simple (element_class, description, - "Codec/Decoder/Audio", description, - "Sebastien Moutte "); - g_free (description); + details.author = "Sebastien Moutte "; + gst_element_class_set_details (element_class, &details); + g_free (details.longname); + g_free (details.klass); + g_free (details.description); sinkcaps = gst_caps_from_string (tmp->sinkcaps); @@ -341,6 +349,9 @@ gst_dshowaudiodec_base_init (gpointer klass) /* register */ gst_element_class_add_pad_template (element_class, src); gst_element_class_add_pad_template (element_class, sink); + + gst_object_unref (src); + gst_object_unref (sink); } static void @@ -358,11 +369,47 @@ gst_dshowaudiodec_class_init (GstDshowAudioDecClass * klass) } static void +gst_dshowaudiodec_com_thread (GstDshowAudioDec * adec) +{ + HRESULT res; + + g_mutex_lock (adec->com_init_lock); + + /* Initialize COM with a MTA for this process. This thread will + * be the first one to enter the apartement and the last one to leave + * it, unitializing COM properly */ + + res = CoInitializeEx (0, COINIT_MULTITHREADED); + if (res == S_FALSE) + GST_WARNING_OBJECT (adec, "COM has been already initialized in the same process"); + else if (res == RPC_E_CHANGED_MODE) + GST_WARNING_OBJECT (adec, "The concurrency model of COM has changed."); + else + GST_INFO_OBJECT (adec, "COM intialized succesfully"); + + adec->comInitialized = TRUE; + + /* Signal other threads waiting on this condition that COM was initialized */ + g_cond_signal (adec->com_initialized); + + g_mutex_unlock (adec->com_init_lock); + + /* Wait until the unitialize condition is met to leave the COM apartement */ + g_mutex_lock (adec->com_deinit_lock); + g_cond_wait (adec->com_uninitialize, adec->com_deinit_lock); + + CoUninitialize (); + GST_INFO_OBJECT (adec, "COM unintialized succesfully"); + adec->comInitialized = FALSE; + g_cond_signal (adec->com_uninitialized); + g_mutex_unlock (adec->com_deinit_lock); +} + +static void gst_dshowaudiodec_init (GstDshowAudioDec * adec, GstDshowAudioDecClass * adec_class) { GstElementClass *element_class = GST_ELEMENT_GET_CLASS (adec); - HRESULT hr; /* setup pads */ adec->sinkpad = @@ -399,10 +446,21 @@ gst_dshowaudiodec_init (GstDshowAudioDec * adec, adec->last_ret = GST_FLOW_OK; - hr = CoInitialize (0); - if (SUCCEEDED(hr)) { - adec->comInitialized = TRUE; - } + adec->com_init_lock = g_mutex_new(); + adec->com_deinit_lock = g_mutex_new(); + adec->com_initialized = g_cond_new(); + adec->com_uninitialize = g_cond_new(); + adec->com_uninitialized = g_cond_new(); + + g_mutex_lock (adec->com_init_lock); + + /* create the COM initialization thread */ + g_thread_create ((GThreadFunc)gst_dshowaudiodec_com_thread, + adec, FALSE, NULL); + + /* wait until the COM thread signals that COM has been initialized */ + g_cond_wait (adec->com_initialized, adec->com_init_lock); + g_mutex_unlock (adec->com_init_lock); } static void @@ -420,11 +478,20 @@ gst_dshowaudiodec_dispose (GObject * object) adec->codec_data = NULL; } + /* signal the COM thread that it sould uninitialize COM */ if (adec->comInitialized) { - CoUninitialize (); - adec->comInitialized = FALSE; + g_mutex_lock (adec->com_deinit_lock); + g_cond_signal (adec->com_uninitialize); + g_cond_wait (adec->com_uninitialized, adec->com_deinit_lock); + g_mutex_unlock (adec->com_deinit_lock); } + g_mutex_free (adec->com_init_lock); + g_mutex_free (adec->com_deinit_lock); + g_cond_free (adec->com_initialized); + g_cond_free (adec->com_uninitialize); + g_cond_free (adec->com_uninitialized); + G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -1103,9 +1170,9 @@ dshow_adec_register (GstPlugin * plugin) { GST_DEBUG ("Registering %s", audio_dec_codecs[i].element_name); - tmp = &audio_dec_codecs[i]; type = g_type_register_static (GST_TYPE_ELEMENT, audio_dec_codecs[i].element_name, &info, (GTypeFlags)0); + g_type_set_qdata (type, DSHOW_CODEC_QDATA, (gpointer) (audio_dec_codecs + i)); if (!gst_element_register (plugin, audio_dec_codecs[i].element_name, GST_RANK_SECONDARY, type)) { return FALSE; diff --git a/sys/dshowdecwrapper/gstdshowaudiodec.h b/sys/dshowdecwrapper/gstdshowaudiodec.h index 77d7891..5f52cb8 100644 --- a/sys/dshowdecwrapper/gstdshowaudiodec.h +++ b/sys/dshowdecwrapper/gstdshowaudiodec.h @@ -1,6 +1,6 @@ /* * GStreamer DirectShow codecs wrapper - * Copyright <2006, 2007, 2008> Fluendo + * Copyright <2006, 2007, 2008, 2009, 2010> Fluendo * Copyright <2006, 2007, 2008> Pioneers of the Inevitable * Copyright <2007,2008> Sebastien Moutte * @@ -113,6 +113,11 @@ struct _GstDshowAudioDec GstClockTime timestamp; gboolean comInitialized; + GMutex *com_init_lock; + GMutex *com_deinit_lock; + GCond *com_initialized; + GCond *com_uninitialize; + GCond *com_uninitialized; }; struct _GstDshowAudioDecClass diff --git a/sys/dshowdecwrapper/gstdshowutil.h b/sys/dshowdecwrapper/gstdshowutil.h index 80299fb..3cea05e 100644 --- a/sys/dshowdecwrapper/gstdshowutil.h +++ b/sys/dshowdecwrapper/gstdshowutil.h @@ -1,4 +1,5 @@ /* GStreamer + * Copyright <2006, 2007, 2008, 2009, 2010> Fluendo * Copyright (C) 2007 Sebastien Moutte * * gstdshow.h: @@ -45,4 +46,7 @@ IBaseFilter * gst_dshow_find_filter(CLSID input_majortype, CLSID input_subtype, CLSID output_majortype, CLSID output_subtype, PreferredFilter *preferred_filters); + +#define DSHOW_CODEC_QDATA g_quark_from_string ("dshow-codec") + #endif /* _GST_DSHOW_UTIL_H_ */ diff --git a/sys/dshowdecwrapper/gstdshowvideodec.cpp b/sys/dshowdecwrapper/gstdshowvideodec.cpp index 6be02fe..fdcfb28 100644 --- a/sys/dshowdecwrapper/gstdshowvideodec.cpp +++ b/sys/dshowdecwrapper/gstdshowvideodec.cpp @@ -1,6 +1,6 @@ /* * GStreamer DirectShow codecs wrapper - * Copyright <2006, 2007, 2008> Fluendo + * Copyright <2006, 2007, 2008, 2009, 2010> Fluendo * Copyright <2006, 2007, 2008> Pioneers of the Inevitable * Copyright <2007,2008> Sebastien Moutte * @@ -58,7 +58,6 @@ GST_DEBUG_CATEGORY_STATIC (dshowvideodec_debug); GST_BOILERPLATE (GstDshowVideoDec, gst_dshowvideodec, GstElement, GST_TYPE_ELEMENT); -static const VideoCodecEntry *tmp; static void gst_dshowvideodec_dispose (GObject * object); static GstStateChangeReturn gst_dshowvideodec_change_state @@ -369,16 +368,25 @@ gst_dshowvideodec_base_init (gpointer klass) GstPadTemplate *src, *sink; GstCaps *srccaps, *sinkcaps; GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - char *description; + GstElementDetails details; + const VideoCodecEntry *tmp; + gpointer qdata; - videodec_class->entry = tmp; + qdata = g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), DSHOW_CODEC_QDATA); - description = g_strdup_printf ("DirectShow %s Decoder Wrapper", + /* element details */ + tmp = videodec_class->entry = (VideoCodecEntry *) qdata; + + details.longname = g_strdup_printf ("DirectShow %s Decoder Wrapper", + tmp->element_longname); + details.klass = g_strdup ("Codec/Decoder/Video"); + details.description = g_strdup_printf ("DirectShow %s Decoder Wrapper", tmp->element_longname); - gst_element_class_set_details_simple (element_class, description, - "Codec/Decoder/Video", description, - "Sebastien Moutte "); - g_free (description); + details.author = "Sebastien Moutte "; + gst_element_class_set_details (element_class, &details); + g_free (details.longname); + g_free (details.klass); + g_free (details.description); sinkcaps = gst_caps_from_string (tmp->sinkcaps); gst_caps_set_simple (sinkcaps, @@ -393,6 +401,9 @@ gst_dshowvideodec_base_init (gpointer klass) gst_element_class_add_pad_template (element_class, src); gst_element_class_add_pad_template (element_class, sink); + + gst_object_unref (src); + gst_object_unref (sink); } static void @@ -410,11 +421,47 @@ gst_dshowvideodec_class_init (GstDshowVideoDecClass * klass) } static void +gst_dshowvideodec_com_thread (GstDshowVideoDec * vdec) +{ + HRESULT res; + + g_mutex_lock (vdec->com_init_lock); + + /* Initialize COM with a MTA for this process. This thread will + * be the first one to enter the apartement and the last one to leave + * it, unitializing COM properly */ + + res = CoInitializeEx (0, COINIT_MULTITHREADED); + if (res == S_FALSE) + GST_WARNING_OBJECT (vdec, "COM has been already initialized in the same process"); + else if (res == RPC_E_CHANGED_MODE) + GST_WARNING_OBJECT (vdec, "The concurrency model of COM has changed."); + else + GST_INFO_OBJECT (vdec, "COM intialized succesfully"); + + vdec->comInitialized = TRUE; + + /* Signal other threads waiting on this condition that COM was initialized */ + g_cond_signal (vdec->com_initialized); + + g_mutex_unlock (vdec->com_init_lock); + + /* Wait until the unitialize condition is met to leave the COM apartement */ + g_mutex_lock (vdec->com_deinit_lock); + g_cond_wait (vdec->com_uninitialize, vdec->com_deinit_lock); + + CoUninitialize (); + GST_INFO_OBJECT (vdec, "COM unintialized succesfully"); + vdec->comInitialized = FALSE; + g_cond_signal (vdec->com_uninitialized); + g_mutex_unlock (vdec->com_deinit_lock); +} + +static void gst_dshowvideodec_init (GstDshowVideoDec * vdec, GstDshowVideoDecClass * vdec_class) { GstElementClass *element_class = GST_ELEMENT_GET_CLASS (vdec); - HRESULT hr; /* setup pads */ vdec->sinkpad = @@ -447,10 +494,21 @@ gst_dshowvideodec_init (GstDshowVideoDec * vdec, vdec->setup = FALSE; - hr = CoInitialize (0); - if (SUCCEEDED(hr)) { - vdec->comInitialized = TRUE; - } + vdec->com_init_lock = g_mutex_new(); + vdec->com_deinit_lock = g_mutex_new(); + vdec->com_initialized = g_cond_new(); + vdec->com_uninitialize = g_cond_new(); + vdec->com_uninitialized = g_cond_new(); + + g_mutex_lock (vdec->com_init_lock); + + /* create the COM initialization thread */ + g_thread_create ((GThreadFunc)gst_dshowvideodec_com_thread, + vdec, FALSE, NULL); + + /* wait until the COM thread signals that COM has been initialized */ + g_cond_wait (vdec->com_initialized, vdec->com_init_lock); + g_mutex_unlock (vdec->com_init_lock); } static void @@ -463,11 +521,20 @@ gst_dshowvideodec_dispose (GObject * object) vdec->segment = NULL; } + /* signal the COM thread that it sould uninitialize COM */ if (vdec->comInitialized) { - CoUninitialize (); - vdec->comInitialized = FALSE; + g_mutex_lock (vdec->com_deinit_lock); + g_cond_signal (vdec->com_uninitialize); + g_cond_wait (vdec->com_uninitialized, vdec->com_deinit_lock); + g_mutex_unlock (vdec->com_deinit_lock); } + g_mutex_free (vdec->com_init_lock); + g_mutex_free (vdec->com_deinit_lock); + g_cond_free (vdec->com_initialized); + g_cond_free (vdec->com_uninitialize); + g_cond_free (vdec->com_uninitialized); + G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -1193,10 +1260,9 @@ dshow_vdec_register (GstPlugin * plugin) GST_DEBUG ("Registering %s", video_dec_codecs[i].element_name); - tmp = &video_dec_codecs[i]; - type = - g_type_register_static (GST_TYPE_ELEMENT, + type = g_type_register_static (GST_TYPE_ELEMENT, video_dec_codecs[i].element_name, &info, (GTypeFlags)0); + g_type_set_qdata (type, DSHOW_CODEC_QDATA, (gpointer) (video_dec_codecs + i)); if (!gst_element_register (plugin, video_dec_codecs[i].element_name, GST_RANK_PRIMARY, type)) { return FALSE; diff --git a/sys/dshowdecwrapper/gstdshowvideodec.h b/sys/dshowdecwrapper/gstdshowvideodec.h index 4e2d7dc..b5253a6 100644 --- a/sys/dshowdecwrapper/gstdshowvideodec.h +++ b/sys/dshowdecwrapper/gstdshowvideodec.h @@ -1,6 +1,6 @@ /* * GStreamer DirectShow codecs wrapper - * Copyright <2006, 2007, 2008> Fluendo + * Copyright <2006, 2007, 2008, 2009, 2010> Fluendo * Copyright <2006, 2007, 2008> Pioneers of the Inevitable * Copyright <2007,2008> Sebastien Moutte * @@ -113,6 +113,11 @@ struct _GstDshowVideoDec gboolean setup; gboolean comInitialized; + GMutex *com_init_lock; + GMutex *com_deinit_lock; + GCond *com_initialized; + GCond *com_uninitialize; + GCond *com_uninitialized; }; struct _GstDshowVideoDecClass diff --git a/sys/dshowsrcwrapper/Makefile.in b/sys/dshowsrcwrapper/Makefile.in index ec7c448..7f23092 100644 --- a/sys/dshowsrcwrapper/Makefile.in +++ b/sys/dshowsrcwrapper/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -79,11 +80,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -92,7 +93,6 @@ 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@ @@ -110,7 +110,6 @@ 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@ @@ -145,6 +144,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -184,6 +184,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -201,6 +202,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -209,13 +211,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -240,13 +245,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -294,6 +300,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -325,8 +332,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -350,6 +361,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -374,10 +387,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -389,6 +406,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -413,6 +434,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -448,7 +470,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -570,10 +591,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp b/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp index e7fbada..fcd9f2f 100644 --- a/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp +++ b/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp @@ -118,8 +118,7 @@ gst_dshowaudiosrc_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_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Directshow audio capture source", "Source/Audio", diff --git a/sys/dshowsrcwrapper/gstdshowvideosrc.cpp b/sys/dshowsrcwrapper/gstdshowvideosrc.cpp index e84148a..3fa13df 100644 --- a/sys/dshowsrcwrapper/gstdshowvideosrc.cpp +++ b/sys/dshowsrcwrapper/gstdshowvideosrc.cpp @@ -126,8 +126,7 @@ gst_dshowvideosrc_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_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "DirectShow video capture source", "Source/Video", diff --git a/sys/dshowvideosink/Makefile.in b/sys/dshowvideosink/Makefile.in index f8a173b..0d407c9 100644 --- a/sys/dshowvideosink/Makefile.in +++ b/sys/dshowvideosink/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -79,11 +80,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -92,7 +93,6 @@ 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@ @@ -110,7 +110,6 @@ 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@ @@ -145,6 +144,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -184,6 +184,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -201,6 +202,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -209,13 +211,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -240,13 +245,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -294,6 +300,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -325,8 +332,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -350,6 +361,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -374,10 +387,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -389,6 +406,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -413,6 +434,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -448,7 +470,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -565,10 +586,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/dshowvideosink/dshowvideosink.cpp b/sys/dshowvideosink/dshowvideosink.cpp index 8b8554c..5ac2a5f 100644 --- a/sys/dshowvideosink/dshowvideosink.cpp +++ b/sys/dshowvideosink/dshowvideosink.cpp @@ -212,13 +212,14 @@ gst_dshowvideosink_init_interfaces (GType type) GST_DEBUG_CATEGORY_INIT (dshowvideosink_debug, "dshowvideosink", 0, \ "DirectShow video sink"); } + static void gst_dshowvideosink_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_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "DirectShow video sink", "Sink/Video", "Display data using a DirectShow video renderer", diff --git a/sys/dvb/Makefile.in b/sys/dvb/Makefile.in index 0f3560d..b333f50 100644 --- a/sys/dvb/Makefile.in +++ b/sys/dvb/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +123,8 @@ am_libgstdvb_la_OBJECTS = libgstdvb_la-gstdvb.lo \ libgstdvb_la-camconditionalaccess.lo \ libgstdvb_la-parsechannels.lo libgstdvb_la_OBJECTS = $(am_libgstdvb_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdvb_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +140,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdvb_la_SOURCES) DIST_SOURCES = $(libgstdvb_la_SOURCES) @@ -159,7 +166,6 @@ 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@ @@ -177,7 +183,6 @@ 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@ @@ -212,6 +217,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -251,6 +257,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -268,6 +275,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -276,13 +284,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -307,13 +318,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -361,6 +373,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -392,8 +405,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -417,6 +434,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -441,10 +460,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -456,6 +479,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -480,6 +507,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -515,7 +543,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -637,7 +664,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdvb.la: $(libgstdvb_la_OBJECTS) $(libgstdvb_la_DEPENDENCIES) +libgstdvb.la: $(libgstdvb_la_OBJECTS) $(libgstdvb_la_DEPENDENCIES) $(EXTRA_libgstdvb_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdvb_la_LINK) -rpath $(plugindir) $(libgstdvb_la_OBJECTS) $(libgstdvb_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -664,138 +691,121 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdvb_la-gstdvb.lo: gstdvb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-gstdvb.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-gstdvb.Tpo -c -o libgstdvb_la-gstdvb.lo `test -f 'gstdvb.c' || echo '$(srcdir)/'`gstdvb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-gstdvb.Tpo $(DEPDIR)/libgstdvb_la-gstdvb.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvb.c' object='libgstdvb_la-gstdvb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvb.c' object='libgstdvb_la-gstdvb.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-gstdvb.lo `test -f 'gstdvb.c' || echo '$(srcdir)/'`gstdvb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-gstdvb.lo `test -f 'gstdvb.c' || echo '$(srcdir)/'`gstdvb.c libgstdvb_la-gstdvbsrc.lo: gstdvbsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-gstdvbsrc.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-gstdvbsrc.Tpo -c -o libgstdvb_la-gstdvbsrc.lo `test -f 'gstdvbsrc.c' || echo '$(srcdir)/'`gstdvbsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-gstdvbsrc.Tpo $(DEPDIR)/libgstdvb_la-gstdvbsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvbsrc.c' object='libgstdvb_la-gstdvbsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvbsrc.c' object='libgstdvb_la-gstdvbsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-gstdvbsrc.lo `test -f 'gstdvbsrc.c' || echo '$(srcdir)/'`gstdvbsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-gstdvbsrc.lo `test -f 'gstdvbsrc.c' || echo '$(srcdir)/'`gstdvbsrc.c libgstdvb_la-dvbbasebin.lo: dvbbasebin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-dvbbasebin.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-dvbbasebin.Tpo -c -o libgstdvb_la-dvbbasebin.lo `test -f 'dvbbasebin.c' || echo '$(srcdir)/'`dvbbasebin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-dvbbasebin.Tpo $(DEPDIR)/libgstdvb_la-dvbbasebin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dvbbasebin.c' object='libgstdvb_la-dvbbasebin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dvbbasebin.c' object='libgstdvb_la-dvbbasebin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-dvbbasebin.lo `test -f 'dvbbasebin.c' || echo '$(srcdir)/'`dvbbasebin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-dvbbasebin.lo `test -f 'dvbbasebin.c' || echo '$(srcdir)/'`dvbbasebin.c libgstdvb_la-cam.lo: cam.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-cam.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-cam.Tpo -c -o libgstdvb_la-cam.lo `test -f 'cam.c' || echo '$(srcdir)/'`cam.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-cam.Tpo $(DEPDIR)/libgstdvb_la-cam.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cam.c' object='libgstdvb_la-cam.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cam.c' object='libgstdvb_la-cam.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-cam.lo `test -f 'cam.c' || echo '$(srcdir)/'`cam.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-cam.lo `test -f 'cam.c' || echo '$(srcdir)/'`cam.c libgstdvb_la-camdevice.lo: camdevice.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camdevice.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camdevice.Tpo -c -o libgstdvb_la-camdevice.lo `test -f 'camdevice.c' || echo '$(srcdir)/'`camdevice.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camdevice.Tpo $(DEPDIR)/libgstdvb_la-camdevice.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camdevice.c' object='libgstdvb_la-camdevice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camdevice.c' object='libgstdvb_la-camdevice.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camdevice.lo `test -f 'camdevice.c' || echo '$(srcdir)/'`camdevice.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camdevice.lo `test -f 'camdevice.c' || echo '$(srcdir)/'`camdevice.c libgstdvb_la-camswclient.lo: camswclient.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camswclient.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camswclient.Tpo -c -o libgstdvb_la-camswclient.lo `test -f 'camswclient.c' || echo '$(srcdir)/'`camswclient.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camswclient.Tpo $(DEPDIR)/libgstdvb_la-camswclient.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camswclient.c' object='libgstdvb_la-camswclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camswclient.c' object='libgstdvb_la-camswclient.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camswclient.lo `test -f 'camswclient.c' || echo '$(srcdir)/'`camswclient.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camswclient.lo `test -f 'camswclient.c' || echo '$(srcdir)/'`camswclient.c libgstdvb_la-camutils.lo: camutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camutils.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camutils.Tpo -c -o libgstdvb_la-camutils.lo `test -f 'camutils.c' || echo '$(srcdir)/'`camutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camutils.Tpo $(DEPDIR)/libgstdvb_la-camutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camutils.c' object='libgstdvb_la-camutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camutils.c' object='libgstdvb_la-camutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camutils.lo `test -f 'camutils.c' || echo '$(srcdir)/'`camutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camutils.lo `test -f 'camutils.c' || echo '$(srcdir)/'`camutils.c libgstdvb_la-camtransport.lo: camtransport.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camtransport.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camtransport.Tpo -c -o libgstdvb_la-camtransport.lo `test -f 'camtransport.c' || echo '$(srcdir)/'`camtransport.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camtransport.Tpo $(DEPDIR)/libgstdvb_la-camtransport.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camtransport.c' object='libgstdvb_la-camtransport.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camtransport.c' object='libgstdvb_la-camtransport.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camtransport.lo `test -f 'camtransport.c' || echo '$(srcdir)/'`camtransport.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camtransport.lo `test -f 'camtransport.c' || echo '$(srcdir)/'`camtransport.c libgstdvb_la-camsession.lo: camsession.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camsession.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camsession.Tpo -c -o libgstdvb_la-camsession.lo `test -f 'camsession.c' || echo '$(srcdir)/'`camsession.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camsession.Tpo $(DEPDIR)/libgstdvb_la-camsession.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camsession.c' object='libgstdvb_la-camsession.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camsession.c' object='libgstdvb_la-camsession.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camsession.lo `test -f 'camsession.c' || echo '$(srcdir)/'`camsession.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camsession.lo `test -f 'camsession.c' || echo '$(srcdir)/'`camsession.c libgstdvb_la-camapplication.lo: camapplication.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camapplication.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camapplication.Tpo -c -o libgstdvb_la-camapplication.lo `test -f 'camapplication.c' || echo '$(srcdir)/'`camapplication.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camapplication.Tpo $(DEPDIR)/libgstdvb_la-camapplication.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camapplication.c' object='libgstdvb_la-camapplication.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camapplication.c' object='libgstdvb_la-camapplication.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camapplication.lo `test -f 'camapplication.c' || echo '$(srcdir)/'`camapplication.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camapplication.lo `test -f 'camapplication.c' || echo '$(srcdir)/'`camapplication.c libgstdvb_la-camresourcemanager.lo: camresourcemanager.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camresourcemanager.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camresourcemanager.Tpo -c -o libgstdvb_la-camresourcemanager.lo `test -f 'camresourcemanager.c' || echo '$(srcdir)/'`camresourcemanager.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camresourcemanager.Tpo $(DEPDIR)/libgstdvb_la-camresourcemanager.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camresourcemanager.c' object='libgstdvb_la-camresourcemanager.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camresourcemanager.c' object='libgstdvb_la-camresourcemanager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camresourcemanager.lo `test -f 'camresourcemanager.c' || echo '$(srcdir)/'`camresourcemanager.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camresourcemanager.lo `test -f 'camresourcemanager.c' || echo '$(srcdir)/'`camresourcemanager.c libgstdvb_la-camapplicationinfo.lo: camapplicationinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camapplicationinfo.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camapplicationinfo.Tpo -c -o libgstdvb_la-camapplicationinfo.lo `test -f 'camapplicationinfo.c' || echo '$(srcdir)/'`camapplicationinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camapplicationinfo.Tpo $(DEPDIR)/libgstdvb_la-camapplicationinfo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camapplicationinfo.c' object='libgstdvb_la-camapplicationinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camapplicationinfo.c' object='libgstdvb_la-camapplicationinfo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camapplicationinfo.lo `test -f 'camapplicationinfo.c' || echo '$(srcdir)/'`camapplicationinfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camapplicationinfo.lo `test -f 'camapplicationinfo.c' || echo '$(srcdir)/'`camapplicationinfo.c libgstdvb_la-camconditionalaccess.lo: camconditionalaccess.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-camconditionalaccess.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-camconditionalaccess.Tpo -c -o libgstdvb_la-camconditionalaccess.lo `test -f 'camconditionalaccess.c' || echo '$(srcdir)/'`camconditionalaccess.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-camconditionalaccess.Tpo $(DEPDIR)/libgstdvb_la-camconditionalaccess.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camconditionalaccess.c' object='libgstdvb_la-camconditionalaccess.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camconditionalaccess.c' object='libgstdvb_la-camconditionalaccess.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camconditionalaccess.lo `test -f 'camconditionalaccess.c' || echo '$(srcdir)/'`camconditionalaccess.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-camconditionalaccess.lo `test -f 'camconditionalaccess.c' || echo '$(srcdir)/'`camconditionalaccess.c libgstdvb_la-parsechannels.lo: parsechannels.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -MT libgstdvb_la-parsechannels.lo -MD -MP -MF $(DEPDIR)/libgstdvb_la-parsechannels.Tpo -c -o libgstdvb_la-parsechannels.lo `test -f 'parsechannels.c' || echo '$(srcdir)/'`parsechannels.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdvb_la-parsechannels.Tpo $(DEPDIR)/libgstdvb_la-parsechannels.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='parsechannels.c' object='libgstdvb_la-parsechannels.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parsechannels.c' object='libgstdvb_la-parsechannels.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-parsechannels.lo `test -f 'parsechannels.c' || echo '$(srcdir)/'`parsechannels.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdvb_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdvb_la_CFLAGS) $(CFLAGS) -c -o libgstdvb_la-parsechannels.lo `test -f 'parsechannels.c' || echo '$(srcdir)/'`parsechannels.c mostlyclean-libtool: -rm -f *.lo @@ -902,10 +912,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/dvb/camapplicationinfo.c b/sys/dvb/camapplicationinfo.c index c05e827..c70d8da 100644 --- a/sys/dvb/camapplicationinfo.c +++ b/sys/dvb/camapplicationinfo.c @@ -121,7 +121,7 @@ handle_application_info_reply (CamApplicationInfo * info, { guint8 type; guint8 menu_length; - gchar menu[255]; + gchar menu[256]; type = buffer[0]; menu_length = buffer[5]; diff --git a/sys/dvb/camresourcemanager.c b/sys/dvb/camresourcemanager.c index 2b6169f..f7b473a 100644 --- a/sys/dvb/camresourcemanager.c +++ b/sys/dvb/camresourcemanager.c @@ -171,22 +171,22 @@ static CamReturn data_impl (CamALApplication * application, CamSLSession * session, guint tag, guint8 * buffer, guint length) { - CamReturn ret; CamResourceManager *mgr = CAM_RESOURCE_MANAGER (application); switch (tag) { case TAG_PROFILE_ENQUIRY: - ret = send_profile_reply (mgr, session); + send_profile_reply (mgr, session); break; case TAG_PROFILE_REPLY: - ret = handle_profile_reply (mgr, session, buffer, length); + handle_profile_reply (mgr, session, buffer, length); break; case TAG_PROFILE_CHANGE: - ret = send_profile_enquiry (mgr, session); + send_profile_enquiry (mgr, session); break; default: g_return_val_if_reached (CAM_RETURN_APPLICATION_ERROR); } + /* FIXME: Shouldn't this return the retval from the functions above ? */ return CAM_RETURN_OK; } diff --git a/sys/dvb/camsession.c b/sys/dvb/camsession.c index 4fe728e..4e4e391 100644 --- a/sys/dvb/camsession.c +++ b/sys/dvb/camsession.c @@ -379,8 +379,6 @@ static CamReturn handle_create_session_response (CamSL * sl, CamTLConnection * connection, guint8 * spdu, guint spdu_length) { - guint8 status; - guint resource_id; guint16 session_nb; CamSLSession *session; @@ -398,8 +396,8 @@ handle_create_session_response (CamSL * sl, CamTLConnection * connection, } /* skip tag and length */ - status = spdu[2]; - resource_id = GST_READ_UINT32_BE (&spdu[3]); + /* status = spdu[2]; */ + /* resource_id = GST_READ_UINT32_BE (&spdu[3]); */ session_nb = GST_READ_UINT16_BE (&spdu[7]); session = g_hash_table_lookup (sl->sessions, diff --git a/sys/dvb/camtransport.c b/sys/dvb/camtransport.c index 98467f0..30780db 100644 --- a/sys/dvb/camtransport.c +++ b/sys/dvb/camtransport.c @@ -224,7 +224,6 @@ cam_tl_read_tpdu_next (CamTL * tl, CamTLConnection ** out_connection) { CamReturn ret; CamTLConnection *connection; - guint8 slot; guint8 connection_id; guint8 *tpdu; guint8 length_field_len; @@ -244,7 +243,7 @@ cam_tl_read_tpdu_next (CamTL * tl, CamTLConnection ** out_connection) } /* LPDU slot */ - slot = tpdu[0]; + /* slot = tpdu[0]; */ /* LPDU connection id */ connection_id = tpdu[1]; diff --git a/sys/dvb/dvbbasebin.c b/sys/dvb/dvbbasebin.c index 79e61c3..a90860a 100644 --- a/sys/dvb/dvbbasebin.c +++ b/sys/dvb/dvbbasebin.c @@ -198,10 +198,9 @@ dvb_base_bin_base_init (gpointer klass) element_class->request_new_pad = dvb_base_bin_request_new_pad; element_class->release_pad = dvb_base_bin_release_pad; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&program_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &program_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "DVB bin", "Source/Bin/Video", diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c index 2f18431..7eb2a23 100644 --- a/sys/dvb/gstdvbsrc.c +++ b/sys/dvb/gstdvbsrc.c @@ -87,7 +87,8 @@ enum ARG_DVBSRC_HIERARCHY_INF, ARG_DVBSRC_TUNE, ARG_DVBSRC_INVERSION, - ARG_DVBSRC_STATS_REPORTING_INTERVAL + ARG_DVBSRC_STATS_REPORTING_INTERVAL, + ARG_DVBSRC_TIMEOUT, }; #define DEFAULT_ADAPTER 0 @@ -106,6 +107,7 @@ enum #define DEFAULT_HIERARCHY HIERARCHY_1 #define DEFAULT_INVERSION INVERSION_ON #define DEFAULT_STATS_REPORTING_INTERVAL 100 +#define DEFAULT_TIMEOUT 1000000 /* 1 second */ #define DEFAULT_BUFFER_SIZE 8192 /* not a property */ @@ -311,8 +313,8 @@ gst_dvbsrc_base_init (gpointer gclass) GstDvbSrcClass *klass = (GstDvbSrcClass *) gclass; GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&ts_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &ts_src_factory); gst_element_class_set_details_simple (element_class, "DVB Source", "Source/Video", @@ -444,6 +446,11 @@ gst_dvbsrc_class_init (GstDvbSrcClass * klass) "stats-reporting-interval", "The number of reads before reporting frontend stats", 0, G_MAXUINT, DEFAULT_STATS_REPORTING_INTERVAL, G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, ARG_DVBSRC_TIMEOUT, + g_param_spec_uint64 ("timeout", "Timeout", + "Post a message after timeout microseconds (0 = disabled)", 0, + G_MAXUINT64, DEFAULT_TIMEOUT, G_PARAM_READWRITE)); } /* initialize the new element @@ -488,6 +495,7 @@ gst_dvbsrc_init (GstDvbSrc * object, GstDvbSrcClass * klass) object->stats_interval = DEFAULT_STATS_REPORTING_INTERVAL; object->tune_mutex = g_mutex_new (); + object->timeout = DEFAULT_TIMEOUT; } @@ -625,10 +633,12 @@ gst_dvbsrc_set_property (GObject * _object, guint prop_id, object->stats_interval = g_value_get_uint (value); object->stats_counter = 0; break; + case ARG_DVBSRC_TIMEOUT: + object->timeout = g_value_get_uint64 (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } - } static void @@ -689,6 +699,9 @@ gst_dvbsrc_get_property (GObject * _object, guint prop_id, case ARG_DVBSRC_STATS_REPORTING_INTERVAL: g_value_set_uint (value, object->stats_interval); break; + case ARG_DVBSRC_TIMEOUT: + g_value_set_uint64 (value, object->timeout); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -888,80 +901,62 @@ gst_dvbsrc_plugin_init (GstPlugin * plugin) } static GstBuffer * -read_device (int fd, int adapter_number, int frontend_number, int size, - GstDvbSrc * object) +gst_dvbsrc_read_device (GstDvbSrc * object, int size) { - int count = 0; - struct pollfd pfd[1]; - int ret_val = 0; - guint attempts = 0; - const int TIMEOUT = 100; - + gint count = 0; + gint ret_val = 0; GstBuffer *buf = gst_buffer_new_and_alloc (size); + GstClockTime timeout = object->timeout * GST_USECOND; g_return_val_if_fail (GST_IS_BUFFER (buf), NULL); - if (fd < 0) { + if (object->fd_dvr < 0) return NULL; - } - - pfd[0].fd = fd; - pfd[0].events = POLLIN; - - while (count < size && !object->need_unlock) { - ret_val = poll (pfd, 1, TIMEOUT); - if (ret_val > 0) { - if (pfd[0].revents & POLLIN) { - int tmp = 0; - - tmp = read (fd, GST_BUFFER_DATA (buf) + count, size - count); - if (tmp < 0) { - GST_WARNING - ("Unable to read from device: /dev/dvb/adapter%d/dvr%d (%d)", - adapter_number, frontend_number, errno); - attempts += 1; - if (attempts % 10 == 0) { - GST_WARNING - ("Unable to read from device after %u attempts: /dev/dvb/adapter%d/dvr%d", - attempts, adapter_number, frontend_number); - } - } else - count = count + tmp; - } else { - GST_LOG ("revents = %d\n", pfd[0].revents); - } - } else if (ret_val == 0) { // poll timeout - attempts += 1; - GST_INFO ("Reading from device /dev/dvb/adapter%d/dvr%d timedout (%d)", - adapter_number, frontend_number, attempts); - - if (attempts % 10 == 0) { - GST_WARNING - ("Unable to read after %u attempts from device: /dev/dvb/adapter%d/dvr%d (%d)", - attempts, adapter_number, frontend_number, errno); + while (count < size) { + ret_val = gst_poll_wait (object->poll, timeout); + GST_LOG_OBJECT (object, "select returned %d", ret_val); + if (G_UNLIKELY (ret_val < 0)) { + if (errno == EBUSY) + goto stopped; + else + goto select_error; + } else if (G_UNLIKELY (ret_val == 0)) { + /* timeout, post element message */ + gst_element_post_message (GST_ELEMENT_CAST (object), + gst_message_new_element (GST_OBJECT (object), + gst_structure_empty_new ("dvb-read-failure"))); + } else { + int nread = + read (object->fd_dvr, GST_BUFFER_DATA (buf) + count, size - count); + + if (G_UNLIKELY (nread < 0)) { + GST_WARNING_OBJECT + (object, + "Unable to read from device: /dev/dvb/adapter%d/dvr%d (%d)", + object->adapter_number, object->frontend_number, errno); gst_element_post_message (GST_ELEMENT_CAST (object), gst_message_new_element (GST_OBJECT (object), gst_structure_empty_new ("dvb-read-failure"))); - - } - } else if (errno == -EINTR) { // poll interrupted - if (attempts % 50 == 0) { - gst_buffer_unref (buf); - return NULL; - }; + } else + count = count + nread; } - - } - - if (!count) { - gst_buffer_unref (buf); - return NULL; } GST_BUFFER_SIZE (buf) = count; GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE; return buf; + +stopped: + GST_DEBUG_OBJECT (object, "stop called"); + gst_buffer_unref (buf); + return NULL; + +select_error: + GST_ELEMENT_ERROR (object, RESOURCE, READ, (NULL), + ("select error %d: %s (%d)", ret_val, g_strerror (errno), errno)); + gst_buffer_unref (buf); + return NULL; } static GstFlowReturn @@ -984,8 +979,7 @@ gst_dvbsrc_create (GstPushSrc * element, GstBuffer ** buf) if (object->fd_dvr > -1) { /* --- Read TS from DVR device --- */ GST_DEBUG_OBJECT (object, "Reading from DVR device"); - *buf = read_device (object->fd_dvr, object->adapter_number, - object->frontend_number, buffer_size, object); + *buf = gst_dvbsrc_read_device (object, buffer_size); if (*buf != NULL) { GstCaps *caps; @@ -994,11 +988,6 @@ gst_dvbsrc_create (GstPushSrc * element, GstBuffer ** buf) caps = gst_pad_get_caps (GST_BASE_SRC_PAD (object)); gst_buffer_set_caps (*buf, caps); gst_caps_unref (caps); - } else { - GST_DEBUG_OBJECT (object, "Failed to read from device"); - gst_element_post_message (GST_ELEMENT_CAST (object), - gst_message_new_element (GST_OBJECT (object), - gst_structure_empty_new ("dvb-read-failure"))); } if (object->stats_interval != 0 && @@ -1062,7 +1051,19 @@ gst_dvbsrc_start (GstBaseSrc * bsrc) close (src->fd_frontend); return FALSE; } - src->need_unlock = FALSE; + if (!(src->poll = gst_poll_new (TRUE))) { + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL), + ("could not create an fdset: %s (%d)", g_strerror (errno), errno)); + /* unset filters also */ + gst_dvbsrc_unset_pes_filters (src); + close (src->fd_frontend); + return FALSE; + } else { + gst_poll_fd_init (&src->poll_fd_dvr); + src->poll_fd_dvr.fd = src->fd_dvr; + gst_poll_add_fd (src->poll, &src->poll_fd_dvr); + gst_poll_fd_ctl_read (src->poll, &src->poll_fd_dvr, TRUE); + } return TRUE; } @@ -1073,6 +1074,11 @@ gst_dvbsrc_stop (GstBaseSrc * bsrc) GstDvbSrc *src = GST_DVBSRC (bsrc); gst_dvbsrc_close_devices (src); + if (src->poll) { + gst_poll_free (src->poll); + src->poll = NULL; + } + return TRUE; } @@ -1081,7 +1087,7 @@ gst_dvbsrc_unlock (GstBaseSrc * bsrc) { GstDvbSrc *src = GST_DVBSRC (bsrc); - src->need_unlock = TRUE; + gst_poll_set_flushing (src->poll, TRUE); return TRUE; } @@ -1090,7 +1096,7 @@ gst_dvbsrc_unlock_stop (GstBaseSrc * bsrc) { GstDvbSrc *src = GST_DVBSRC (bsrc); - src->need_unlock = FALSE; + gst_poll_set_flushing (src->poll, FALSE); return TRUE; } diff --git a/sys/dvb/gstdvbsrc.h b/sys/dvb/gstdvbsrc.h index b6777f2..8feac59 100644 --- a/sys/dvb/gstdvbsrc.h +++ b/sys/dvb/gstdvbsrc.h @@ -52,6 +52,8 @@ G_BEGIN_DECLS int fd_frontend; int fd_dvr; int fd_filters[MAX_FILTERS]; + GstPoll *poll; + GstPollFD poll_fd_dvr; guint16 pids[MAX_FILTERS]; unsigned int freq; @@ -68,11 +70,11 @@ G_BEGIN_DECLS int transmission_mode; int hierarchy_information; int inversion; + guint64 timeout; GstDvbSrcPol pol; guint stats_interval; guint stats_counter; - gboolean need_unlock; }; struct _GstDvbSrcClass diff --git a/sys/fbdev/Makefile.in b/sys/fbdev/Makefile.in index 9b1ad2b..6cc9e78 100644 --- a/sys/fbdev/Makefile.in +++ b/sys/fbdev/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstfbdevsink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstfbdevsink_la_OBJECTS = libgstfbdevsink_la-gstfbdevsink.lo libgstfbdevsink_la_OBJECTS = $(am_libgstfbdevsink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstfbdevsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstfbdevsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstfbdevsink_la_SOURCES) DIST_SOURCES = $(libgstfbdevsink_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -607,7 +634,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstfbdevsink.la: $(libgstfbdevsink_la_OBJECTS) $(libgstfbdevsink_la_DEPENDENCIES) +libgstfbdevsink.la: $(libgstfbdevsink_la_OBJECTS) $(libgstfbdevsink_la_DEPENDENCIES) $(EXTRA_libgstfbdevsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstfbdevsink_la_LINK) -rpath $(plugindir) $(libgstfbdevsink_la_OBJECTS) $(libgstfbdevsink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -621,34 +648,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstfbdevsink_la-gstfbdevsink.lo: gstfbdevsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfbdevsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfbdevsink_la_CFLAGS) $(CFLAGS) -MT libgstfbdevsink_la-gstfbdevsink.lo -MD -MP -MF $(DEPDIR)/libgstfbdevsink_la-gstfbdevsink.Tpo -c -o libgstfbdevsink_la-gstfbdevsink.lo `test -f 'gstfbdevsink.c' || echo '$(srcdir)/'`gstfbdevsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfbdevsink_la-gstfbdevsink.Tpo $(DEPDIR)/libgstfbdevsink_la-gstfbdevsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfbdevsink.c' object='libgstfbdevsink_la-gstfbdevsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfbdevsink.c' object='libgstfbdevsink_la-gstfbdevsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfbdevsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfbdevsink_la_CFLAGS) $(CFLAGS) -c -o libgstfbdevsink_la-gstfbdevsink.lo `test -f 'gstfbdevsink.c' || echo '$(srcdir)/'`gstfbdevsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfbdevsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfbdevsink_la_CFLAGS) $(CFLAGS) -c -o libgstfbdevsink_la-gstfbdevsink.lo `test -f 'gstfbdevsink.c' || echo '$(srcdir)/'`gstfbdevsink.c mostlyclean-libtool: -rm -f *.lo @@ -755,10 +778,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/fbdev/gstfbdevsink.c b/sys/fbdev/gstfbdevsink.c index 989d48f..7878fbf 100644 --- a/sys/fbdev/gstfbdevsink.c +++ b/sys/fbdev/gstfbdevsink.c @@ -93,8 +93,8 @@ gst_fbdevsink_base_init (gpointer g_class) gst_element_class_set_details_simple (element_class, "fbdev video sink", "Sink/Video", "A linux framebuffer videosink", "Sean D'Epagnier "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } @@ -351,11 +351,9 @@ gst_fbdevsink_get_property (GObject * object, guint prop_id, GValue * value, static GstStateChangeReturn gst_fbdevsink_change_state (GstElement * element, GstStateChange transition) { - GstFBDEVSink *fbdevsink; GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; g_return_val_if_fail (GST_IS_FBDEVSINK (element), GST_STATE_CHANGE_FAILURE); - fbdevsink = GST_FBDEVSINK (element); ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); diff --git a/sys/linsys/Makefile.am b/sys/linsys/Makefile.am index 3362738..ac7eed0 100644 --- a/sys/linsys/Makefile.am +++ b/sys/linsys/Makefile.am @@ -23,4 +23,4 @@ libgstlinsys_la_CFLAGS = \ libgstlinsys_la_LDFLAGS = \ $(GST_PLUGIN_LDFLAGS) libgstlinsys_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) - +libgstlinsys_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/sys/linsys/Makefile.in b/sys/linsys/Makefile.in index 4497289..48681a5 100644 --- a/sys/linsys/Makefile.in +++ b/sys/linsys/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,13 +116,13 @@ am_libgstlinsys_la_OBJECTS = libgstlinsys_la-gstlinsyssdisink.lo \ libgstlinsys_la-gstlinsyssdisrc.lo \ libgstlinsys_la-gstlinsys.lo libgstlinsys_la_OBJECTS = $(am_libgstlinsys_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstlinsys_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(libgstlinsys_la_CFLAGS) $(CFLAGS) $(libgstlinsys_la_LDFLAGS) \ - $(LDFLAGS) -o $@ + $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstlinsys_la_CFLAGS) $(CFLAGS) \ + $(libgstlinsys_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstlinsys_la_SOURCES) DIST_SOURCES = $(libgstlinsys_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -553,6 +580,7 @@ libgstlinsys_la_LDFLAGS = \ $(GST_PLUGIN_LDFLAGS) libgstlinsys_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) +libgstlinsys_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: @@ -618,7 +646,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstlinsys.la: $(libgstlinsys_la_OBJECTS) $(libgstlinsys_la_DEPENDENCIES) +libgstlinsys.la: $(libgstlinsys_la_OBJECTS) $(libgstlinsys_la_DEPENDENCIES) $(EXTRA_libgstlinsys_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstlinsys_la_LINK) -rpath $(plugindir) $(libgstlinsys_la_OBJECTS) $(libgstlinsys_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -634,50 +662,44 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstlinsys_la-gstlinsyssdisink.lo: gstlinsyssdisink.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsyssdisink.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsyssdisink.Tpo -c -o libgstlinsys_la-gstlinsyssdisink.lo `test -f 'gstlinsyssdisink.c' || echo '$(srcdir)/'`gstlinsyssdisink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsyssdisink.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsyssdisink.Tpo -c -o libgstlinsys_la-gstlinsyssdisink.lo `test -f 'gstlinsyssdisink.c' || echo '$(srcdir)/'`gstlinsyssdisink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlinsys_la-gstlinsyssdisink.Tpo $(DEPDIR)/libgstlinsys_la-gstlinsyssdisink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlinsyssdisink.c' object='libgstlinsys_la-gstlinsyssdisink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstlinsyssdisink.c' object='libgstlinsys_la-gstlinsyssdisink.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsyssdisink.lo `test -f 'gstlinsyssdisink.c' || echo '$(srcdir)/'`gstlinsyssdisink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsyssdisink.lo `test -f 'gstlinsyssdisink.c' || echo '$(srcdir)/'`gstlinsyssdisink.c libgstlinsys_la-gstlinsyssdisrc.lo: gstlinsyssdisrc.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsyssdisrc.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsyssdisrc.Tpo -c -o libgstlinsys_la-gstlinsyssdisrc.lo `test -f 'gstlinsyssdisrc.c' || echo '$(srcdir)/'`gstlinsyssdisrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsyssdisrc.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsyssdisrc.Tpo -c -o libgstlinsys_la-gstlinsyssdisrc.lo `test -f 'gstlinsyssdisrc.c' || echo '$(srcdir)/'`gstlinsyssdisrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlinsys_la-gstlinsyssdisrc.Tpo $(DEPDIR)/libgstlinsys_la-gstlinsyssdisrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlinsyssdisrc.c' object='libgstlinsys_la-gstlinsyssdisrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstlinsyssdisrc.c' object='libgstlinsys_la-gstlinsyssdisrc.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsyssdisrc.lo `test -f 'gstlinsyssdisrc.c' || echo '$(srcdir)/'`gstlinsyssdisrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsyssdisrc.lo `test -f 'gstlinsyssdisrc.c' || echo '$(srcdir)/'`gstlinsyssdisrc.c libgstlinsys_la-gstlinsys.lo: gstlinsys.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsys.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsys.Tpo -c -o libgstlinsys_la-gstlinsys.lo `test -f 'gstlinsys.c' || echo '$(srcdir)/'`gstlinsys.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -MT libgstlinsys_la-gstlinsys.lo -MD -MP -MF $(DEPDIR)/libgstlinsys_la-gstlinsys.Tpo -c -o libgstlinsys_la-gstlinsys.lo `test -f 'gstlinsys.c' || echo '$(srcdir)/'`gstlinsys.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlinsys_la-gstlinsys.Tpo $(DEPDIR)/libgstlinsys_la-gstlinsys.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlinsys.c' object='libgstlinsys_la-gstlinsys.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstlinsys.c' object='libgstlinsys_la-gstlinsys.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) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsys.lo `test -f 'gstlinsys.c' || echo '$(srcdir)/'`gstlinsys.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlinsys_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlinsys_la_CFLAGS) $(CFLAGS) -c -o libgstlinsys_la-gstlinsys.lo `test -f 'gstlinsys.c' || echo '$(srcdir)/'`gstlinsys.c mostlyclean-libtool: -rm -f *.lo @@ -784,10 +806,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/linsys/gstlinsyssdisink.c b/sys/linsys/gstlinsyssdisink.c index 872c3d6..28b64b2 100644 --- a/sys/linsys/gstlinsyssdisink.c +++ b/sys/linsys/gstlinsyssdisink.c @@ -99,8 +99,8 @@ gst_linsys_sdi_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 (&gst_linsys_sdi_sink_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_linsys_sdi_sink_sink_template); gst_element_class_set_details_simple (element_class, "SDI video sink", "Sink/Video", "Writes video from SDI transmit device", @@ -202,6 +202,8 @@ gst_linsys_sdi_sink_dispose (GObject * object) linsyssdisink = GST_LINSYS_SDI_SINK (object); /* clean up as possible. may be called multiple times */ + g_free (linsyssdisink->device); + linsyssdisink->device = NULL; G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -209,10 +211,7 @@ gst_linsys_sdi_sink_dispose (GObject * object) void gst_linsys_sdi_sink_finalize (GObject * object) { - GstLinsysSdiSink *linsyssdisink; - g_return_if_fail (GST_IS_LINSYS_SDI_SINK (object)); - linsyssdisink = GST_LINSYS_SDI_SINK (object); /* clean up object here */ @@ -332,7 +331,7 @@ sdi_mux (guint8 * data, GstBuffer * buffer) int j; int i; guint8 *dest; - int f, v, h; + int f, v; int line; for (j = 0; j < 525; j++) { @@ -352,8 +351,6 @@ sdi_mux (guint8 * data, GstBuffer * buffer) f = 0; } - h = 0; - dest[0] = 0xff; dest[1] = 0; dest[2] = 0; diff --git a/sys/linsys/gstlinsyssdisrc.c b/sys/linsys/gstlinsyssdisrc.c index 075b0c7..a9732f5 100644 --- a/sys/linsys/gstlinsyssdisrc.c +++ b/sys/linsys/gstlinsyssdisrc.c @@ -103,8 +103,8 @@ gst_linsys_sdi_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 (&gst_linsys_sdi_src_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_linsys_sdi_src_src_template); gst_element_class_set_details_simple (element_class, "SDI video source", "Source/Video", "Reads video from SDI capture device", @@ -212,12 +212,12 @@ gst_linsys_sdi_src_get_property (GObject * object, guint property_id, void gst_linsys_sdi_src_dispose (GObject * object) { - GstLinsysSdiSrc *linsyssdisrc; - - g_return_if_fail (GST_IS_LINSYS_SDI_SRC (object)); - linsyssdisrc = GST_LINSYS_SDI_SRC (object); + GstLinsysSdiSrc *linsyssdisrc = GST_LINSYS_SDI_SRC (object); + g_return_if_fail (linsyssdisrc != NULL); /* clean up as possible. may be called multiple times */ + g_free (linsyssdisrc->device); + linsyssdisrc->device = NULL; G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -225,10 +225,7 @@ gst_linsys_sdi_src_dispose (GObject * object) void gst_linsys_sdi_src_finalize (GObject * object) { - GstLinsysSdiSrc *linsyssdisrc; - g_return_if_fail (GST_IS_LINSYS_SDI_SRC (object)); - linsyssdisrc = GST_LINSYS_SDI_SRC (object); /* clean up object here */ diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in index a8d9312..d5bc4ba 100644 --- a/sys/osxvideo/Makefile.in +++ b/sys/osxvideo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -109,8 +116,8 @@ am_libgstosxvideosrc_la_OBJECTS = \ libgstosxvideosrc_la-osxvideoplugin.lo \ libgstosxvideosrc_la-osxvideosrc.lo libgstosxvideosrc_la_OBJECTS = $(am_libgstosxvideosrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstosxvideosrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -126,21 +133,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstosxvideosrc_la_SOURCES) DIST_SOURCES = $(libgstosxvideosrc_la_SOURCES) @@ -152,7 +159,6 @@ 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@ @@ -170,7 +176,6 @@ 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@ @@ -205,6 +210,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -244,6 +250,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -261,6 +268,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -269,13 +277,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -300,13 +311,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -354,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -385,8 +398,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -410,6 +427,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -434,10 +453,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -449,6 +472,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -473,6 +500,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -508,7 +536,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +635,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstosxvideosrc.la: $(libgstosxvideosrc_la_OBJECTS) $(libgstosxvideosrc_la_DEPENDENCIES) +libgstosxvideosrc.la: $(libgstosxvideosrc_la_OBJECTS) $(libgstosxvideosrc_la_DEPENDENCIES) $(EXTRA_libgstosxvideosrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstosxvideosrc_la_LINK) -rpath $(plugindir) $(libgstosxvideosrc_la_OBJECTS) $(libgstosxvideosrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -623,42 +650,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstosxvideosrc_la-osxvideoplugin.lo: osxvideoplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -MT libgstosxvideosrc_la-osxvideoplugin.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosrc_la-osxvideoplugin.Tpo -c -o libgstosxvideosrc_la-osxvideoplugin.lo `test -f 'osxvideoplugin.c' || echo '$(srcdir)/'`osxvideoplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosrc_la-osxvideoplugin.Tpo $(DEPDIR)/libgstosxvideosrc_la-osxvideoplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='osxvideoplugin.c' object='libgstosxvideosrc_la-osxvideoplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osxvideoplugin.c' object='libgstosxvideosrc_la-osxvideoplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -c -o libgstosxvideosrc_la-osxvideoplugin.lo `test -f 'osxvideoplugin.c' || echo '$(srcdir)/'`osxvideoplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -c -o libgstosxvideosrc_la-osxvideoplugin.lo `test -f 'osxvideoplugin.c' || echo '$(srcdir)/'`osxvideoplugin.c libgstosxvideosrc_la-osxvideosrc.lo: osxvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -MT libgstosxvideosrc_la-osxvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosrc_la-osxvideosrc.Tpo -c -o libgstosxvideosrc_la-osxvideosrc.lo `test -f 'osxvideosrc.c' || echo '$(srcdir)/'`osxvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosrc_la-osxvideosrc.Tpo $(DEPDIR)/libgstosxvideosrc_la-osxvideosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='osxvideosrc.c' object='libgstosxvideosrc_la-osxvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osxvideosrc.c' object='libgstosxvideosrc_la-osxvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -c -o libgstosxvideosrc_la-osxvideosrc.lo `test -f 'osxvideosrc.c' || echo '$(srcdir)/'`osxvideosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxvideosrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosrc_la_CFLAGS) $(CFLAGS) -c -o libgstosxvideosrc_la-osxvideosrc.lo `test -f 'osxvideosrc.c' || echo '$(srcdir)/'`osxvideosrc.c mostlyclean-libtool: -rm -f *.lo @@ -765,10 +787,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/osxvideo/osxvideosrc.c b/sys/osxvideo/osxvideosrc.c index ed84619..864806d 100644 --- a/sys/osxvideo/osxvideosrc.c +++ b/sys/osxvideo/osxvideosrc.c @@ -639,8 +639,7 @@ gst_osx_video_src_base_init (gpointer gclass) GST_DEBUG ("%s", G_STRFUNC); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Video Source (OSX)", "Source/Video", diff --git a/sys/pvr2d/Makefile.am b/sys/pvr2d/Makefile.am new file mode 100644 index 0000000..b450710 --- /dev/null +++ b/sys/pvr2d/Makefile.am @@ -0,0 +1,22 @@ +plugin_LTLIBRARIES = libgstpvr.la + +libgstpvr_la_SOURCES = \ + gstpvr.c \ + gstpvrbufferpool.c \ + gstpvrvideosink.c + +libgstpvr_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(PVR_CFLAGS) + +libgstpvr_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) $(X11_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) -lpvr2d -lpvrPVR2D_DRIWSEGL\ + $(PVR_LIBS) \ + $(LIBM) + +libgstpvr_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstpvr_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstpvr.h \ + gstpvrbufferpool.h \ + gstpvrvideosink.h diff --git a/sys/pvr2d/Makefile.in b/sys/pvr2d/Makefile.in new file mode 100644 index 0000000..21d0953 --- /dev/null +++ b/sys/pvr2d/Makefile.in @@ -0,0 +1,916 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = sys/pvr2d +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-libtool.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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstpvr_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstpvr_la_OBJECTS = libgstpvr_la-gstpvr.lo \ + libgstpvr_la-gstpvrbufferpool.lo \ + libgstpvr_la-gstpvrvideosink.lo +libgstpvr_la_OBJECTS = $(am_libgstpvr_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libgstpvr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstpvr_la_CFLAGS) $(CFLAGS) \ + $(libgstpvr_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstpvr_la_SOURCES) +DIST_SOURCES = $(libgstpvr_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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 = libgstpvr.la +libgstpvr_la_SOURCES = \ + gstpvr.c \ + gstpvrbufferpool.c \ + gstpvrvideosink.c + +libgstpvr_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(PVR_CFLAGS) +libgstpvr_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) $(X11_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) -lpvr2d -lpvrPVR2D_DRIWSEGL\ + $(PVR_LIBS) \ + $(LIBM) + +libgstpvr_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstpvr_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstpvr.h \ + gstpvrbufferpool.h \ + gstpvrvideosink.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 sys/pvr2d/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu sys/pvr2d/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 +libgstpvr.la: $(libgstpvr_la_OBJECTS) $(libgstpvr_la_DEPENDENCIES) $(EXTRA_libgstpvr_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstpvr_la_LINK) -rpath $(plugindir) $(libgstpvr_la_OBJECTS) $(libgstpvr_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpvr_la-gstpvr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpvr_la-gstpvrbufferpool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpvr_la-gstpvrvideosink.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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgstpvr_la-gstpvr.lo: gstpvr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -MT libgstpvr_la-gstpvr.lo -MD -MP -MF $(DEPDIR)/libgstpvr_la-gstpvr.Tpo -c -o libgstpvr_la-gstpvr.lo `test -f 'gstpvr.c' || echo '$(srcdir)/'`gstpvr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpvr_la-gstpvr.Tpo $(DEPDIR)/libgstpvr_la-gstpvr.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpvr.c' object='libgstpvr_la-gstpvr.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -c -o libgstpvr_la-gstpvr.lo `test -f 'gstpvr.c' || echo '$(srcdir)/'`gstpvr.c + +libgstpvr_la-gstpvrbufferpool.lo: gstpvrbufferpool.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -MT libgstpvr_la-gstpvrbufferpool.lo -MD -MP -MF $(DEPDIR)/libgstpvr_la-gstpvrbufferpool.Tpo -c -o libgstpvr_la-gstpvrbufferpool.lo `test -f 'gstpvrbufferpool.c' || echo '$(srcdir)/'`gstpvrbufferpool.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpvr_la-gstpvrbufferpool.Tpo $(DEPDIR)/libgstpvr_la-gstpvrbufferpool.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpvrbufferpool.c' object='libgstpvr_la-gstpvrbufferpool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -c -o libgstpvr_la-gstpvrbufferpool.lo `test -f 'gstpvrbufferpool.c' || echo '$(srcdir)/'`gstpvrbufferpool.c + +libgstpvr_la-gstpvrvideosink.lo: gstpvrvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -MT libgstpvr_la-gstpvrvideosink.lo -MD -MP -MF $(DEPDIR)/libgstpvr_la-gstpvrvideosink.Tpo -c -o libgstpvr_la-gstpvrvideosink.lo `test -f 'gstpvrvideosink.c' || echo '$(srcdir)/'`gstpvrvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpvr_la-gstpvrvideosink.Tpo $(DEPDIR)/libgstpvr_la-gstpvrvideosink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpvrvideosink.c' object='libgstpvr_la-gstpvrvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpvr_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpvr_la_CFLAGS) $(CFLAGS) -c -o libgstpvr_la-gstpvrvideosink.lo `test -f 'gstpvrvideosink.c' || echo '$(srcdir)/'`gstpvrvideosink.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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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/sys/pvr2d/gstpvr.c b/sys/pvr2d/gstpvr.c new file mode 100644 index 0000000..0112d1e --- /dev/null +++ b/sys/pvr2d/gstpvr.c @@ -0,0 +1,85 @@ +/* + * GStreamer + * Copyright (c) 2010, Texas Instruments Incorporated + * + * This library 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 + * version 2.1 of the License. + * + * 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "gstpvr.h" +#include "gstpvrvideosink.h" + +GST_DEBUG_CATEGORY (gst_debug_pvrvideosink); + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_debug_pvrvideosink, "pvrvideosink", 0, + "pvrvideosink"); + + return gst_element_register (plugin, "pvrvideosink", GST_RANK_PRIMARY, + GST_TYPE_PVRVIDEOSINK); +} + +void * +gst_ducati_alloc_1d (gint sz) +{ + MemAllocBlock block = { + .pixelFormat = PIXEL_FMT_PAGE, + .dim.len = sz, + }; + return MemMgr_Alloc (&block, 1); +} + +void * +gst_ducati_alloc_2d (gint width, gint height, guint * sz) +{ + MemAllocBlock block[] = { { + .pixelFormat = PIXEL_FMT_8BIT, + .dim = {.area = { + .width = width, + .height = ALIGN2 (height, 1), + }}, + .stride = 4096}, { + .pixelFormat = PIXEL_FMT_16BIT, + .dim = {.area = { + .width = width, + .height = ALIGN2 (height, 1) / 2, + }}, + .stride = 4096} + }; + if (sz) { + *sz = (4096 * ALIGN2 (height, 1) * 3) / 2; + } + return MemMgr_Alloc (block, 2); +} + +/* PACKAGE: this is usually set by autotools depending on some _INIT macro + * in configure.ac and then written into and defined in config.h, but we can + * just set it ourselves here in case someone doesn't use autotools to + * compile this code. GST_PLUGIN_DEFINE needs PACKAGE to be defined. + */ +#ifndef PACKAGE +# define PACKAGE "ducati" +#endif + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "pvr", + "Pvr2d based plugin", + plugin_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/") diff --git a/sys/pvr2d/gstpvr.h b/sys/pvr2d/gstpvr.h new file mode 100644 index 0000000..d2c57af --- /dev/null +++ b/sys/pvr2d/gstpvr.h @@ -0,0 +1,42 @@ +/* + * GStreamer + * Copyright (c) 2010, Texas Instruments Incorporated + * + * This library 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 + * version 2.1 of the License. + * + * 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GST_DUCATI_H__ +#define __GST_DUCATI_H__ + +#include +#include + +#include +#include +#include + +#include + +G_BEGIN_DECLS + +/* align x to next highest multiple of 2^n */ +#define ALIGN2(x,n) (((x) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1)) + +void * gst_ducati_alloc_1d (gint sz); +void * gst_ducati_alloc_2d (gint width, gint height, guint * sz); + +G_END_DECLS + +#endif /* __GST_DUCATI_H__ */ diff --git a/sys/pvr2d/gstpvrbufferpool.c b/sys/pvr2d/gstpvrbufferpool.c new file mode 100644 index 0000000..03bcafb --- /dev/null +++ b/sys/pvr2d/gstpvrbufferpool.c @@ -0,0 +1,320 @@ +/* + * GStreamer + * Copyright (c) 2010, Texas Instruments Incorporated + * + * This library 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 + * version 2.1 of the License. + * + * 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "gstpvrbufferpool.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_debug_pvrvideosink); +#define GST_CAT_DEFAULT gst_debug_pvrvideosink + +/* + * GstDucatiBuffer + */ + +static GstBufferClass *buffer_parent_class; + +/* Get the original buffer, or whatever is the best output buffer. + * Consumes the input reference, produces the output reference + */ +GstBuffer * +gst_ducati_buffer_get (GstDucatiBuffer * self) +{ + if (self->orig) { + // TODO copy to orig buffer.. if needed. + gst_buffer_unref (self->orig); + self->orig = NULL; + } + return GST_BUFFER (self); +} + +PVR2DMEMINFO * +gst_ducati_buffer_get_meminfo (GstDucatiBuffer * self) +{ + return self->src_mem; +} + + +static GstDucatiBuffer * +gst_ducati_buffer_new (GstPvrBufferPool * pool) +{ + PVR2DERROR pvr_error; + GstDucatiBuffer *self = (GstDucatiBuffer *) + gst_mini_object_new (GST_TYPE_DUCATIBUFFER); + + GST_LOG_OBJECT (pool->element, "creating buffer %p in pool %p", self, pool); + + self->pool = (GstPvrBufferPool *) + gst_mini_object_ref (GST_MINI_OBJECT (pool)); + + GST_BUFFER_DATA (self) = gst_ducati_alloc_1d (pool->size); + GST_BUFFER_SIZE (self) = pool->size; + GST_LOG_OBJECT (pool->element, "width=%d, height=%d and size=%d", + pool->padded_width, pool->padded_height, pool->size); + + pvr_error = + PVR2DMemWrap (pool->pvr_context, GST_BUFFER_DATA (self), 0, pool->size, + NULL, &(self->src_mem)); + if (pvr_error != PVR2D_OK) { + GST_LOG_OBJECT (pool->element, "Failed to Wrap buffer memory" + "returned %d", pvr_error); + } else { + self->wrapped = TRUE; + } + + gst_buffer_set_caps (GST_BUFFER (self), pool->caps); + + return self; +} + + +static void +gst_ducati_buffer_finalize (GstDucatiBuffer * self) +{ + PVR2DERROR pvr_error; + GstPvrBufferPool *pool = self->pool; + gboolean resuscitated = FALSE; + + GST_LOG_OBJECT (pool->element, "finalizing buffer %p", self); + + GST_PVR_BUFFERPOOL_LOCK (pool); + g_queue_remove (pool->used_buffers, self); + if (pool->running) { + resuscitated = TRUE; + + GST_LOG_OBJECT (pool->element, "reviving buffer %p", self); + + g_queue_push_head (pool->free_buffers, self); + } else { + GST_LOG_OBJECT (pool->element, "the pool is shutting down"); + } + GST_PVR_BUFFERPOOL_UNLOCK (pool); + + if (resuscitated) { + GST_LOG_OBJECT (pool->element, "reviving buffer %p, %d", self, index); + gst_buffer_ref (GST_BUFFER (self)); + GST_BUFFER_SIZE (self) = 0; + } + + if (!resuscitated) { + GST_LOG_OBJECT (pool->element, + "buffer %p (data %p, len %u) not recovered, freeing", + self, GST_BUFFER_DATA (self), GST_BUFFER_SIZE (self)); + + if (self->wrapped) { + pvr_error = PVR2DMemFree (pool->pvr_context, self->src_mem); + if (pvr_error != PVR2D_OK) { + GST_ERROR_OBJECT (pool->element, "Failed to Unwrap buffer memory" + "returned %d", pvr_error); + } + self->wrapped = FALSE; + } + MemMgr_Free ((void *) GST_BUFFER_DATA (self)); + GST_BUFFER_DATA (self) = NULL; + gst_mini_object_unref (GST_MINI_OBJECT (pool)); + GST_MINI_OBJECT_CLASS (buffer_parent_class)->finalize (GST_MINI_OBJECT + (self)); + } +} + +static void +gst_ducati_buffer_class_init (gpointer g_class, gpointer class_data) +{ + GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class); + + buffer_parent_class = g_type_class_peek_parent (g_class); + + mini_object_class->finalize = (GstMiniObjectFinalizeFunction) + GST_DEBUG_FUNCPTR (gst_ducati_buffer_finalize); +} + +GType +gst_ducati_buffer_get_type (void) +{ + static GType type; + + if (G_UNLIKELY (type == 0)) { + static const GTypeInfo info = { + .class_size = sizeof (GstBufferClass), + .class_init = gst_ducati_buffer_class_init, + .instance_size = sizeof (GstDucatiBuffer), + }; + type = g_type_register_static (GST_TYPE_BUFFER, + "GstDucatiBufferPvrsink", &info, 0); + } + return type; +} + +/* + * GstDucatiBufferPool + */ + +static GstMiniObjectClass *bufferpool_parent_class = NULL; + +/** create new bufferpool + * @element : the element that owns this pool + * @caps: the caps to set on the buffer + * @num_buffers: the requested number of buffers in the pool + */ +GstPvrBufferPool * +gst_pvr_bufferpool_new (GstElement * element, GstCaps * caps, gint num_buffers, + gint size, PVR2DCONTEXTHANDLE pvr_context) +{ + GstPvrBufferPool *self = (GstPvrBufferPool *) + gst_mini_object_new (GST_TYPE_PVRBUFFERPOOL); + GstStructure *s = gst_caps_get_structure (caps, 0); + + self->element = gst_object_ref (element); + gst_structure_get_int (s, "width", &self->padded_width); + gst_structure_get_int (s, "height", &self->padded_height); + self->caps = gst_caps_ref (caps); + self->size = size; + self->pvr_context = pvr_context; + + self->free_buffers = g_queue_new (); + self->used_buffers = g_queue_new (); + self->lock = g_mutex_new (); + self->running = TRUE; + + return self; +} + +static void +unwrap_buffer (gpointer buffer, gpointer user_data) +{ + PVR2DERROR pvr_error; + GstDucatiBuffer *buf = GST_DUCATIBUFFER (buffer); + GstPvrBufferPool *pool = (GstPvrBufferPool *) user_data; + + if (buf->wrapped) { + pvr_error = PVR2DMemFree (pool->pvr_context, buf->src_mem); + if (pvr_error != PVR2D_OK) { + GST_ERROR_OBJECT (pool->element, "Failed to Unwrap buffer memory" + "returned %d", pvr_error); + } + buf->wrapped = FALSE; + } +} + +void +gst_pvr_bufferpool_stop_running (GstPvrBufferPool * self, gboolean unwrap) +{ + gboolean empty = FALSE; + + g_return_if_fail (self); + + GST_PVR_BUFFERPOOL_LOCK (self); + self->running = FALSE; + GST_PVR_BUFFERPOOL_UNLOCK (self); + + GST_DEBUG_OBJECT (self->element, "free available buffers"); + + /* free all buffers on the freelist */ + while (!empty) { + GstDucatiBuffer *buf; + GST_PVR_BUFFERPOOL_LOCK (self); + buf = g_queue_pop_head (self->free_buffers); + GST_PVR_BUFFERPOOL_UNLOCK (self); + if (buf) + gst_buffer_unref (GST_BUFFER (buf)); + else + empty = TRUE; + } + + if (unwrap) + g_queue_foreach (self->used_buffers, unwrap_buffer, self); + + gst_mini_object_unref (GST_MINI_OBJECT (self)); +} + +/** get buffer from bufferpool, allocate new buffer if needed */ +GstDucatiBuffer * +gst_pvr_bufferpool_get (GstPvrBufferPool * self, GstBuffer * orig) +{ + GstDucatiBuffer *buf = NULL; + + g_return_val_if_fail (self, NULL); + + GST_PVR_BUFFERPOOL_LOCK (self); + if (self->running) { + /* re-use a buffer off the freelist if any are available + */ + buf = g_queue_pop_head (self->free_buffers); + if (!buf) + buf = gst_ducati_buffer_new (self); + buf->orig = orig; + g_queue_push_head (self->used_buffers, buf); + } + GST_PVR_BUFFERPOOL_UNLOCK (self); + + if (buf && orig) { + GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_TIMESTAMP (orig); + GST_BUFFER_DURATION (buf) = GST_BUFFER_DURATION (orig); + } + GST_BUFFER_SIZE (buf) = self->size; + + return buf; +} + +static void +gst_pvr_bufferpool_finalize (GstPvrBufferPool * self) +{ + GST_DEBUG_OBJECT (self->element, "destroy bufferpool"); + g_mutex_free (self->lock); + self->lock = NULL; + + g_queue_free (self->free_buffers); + self->free_buffers = NULL; + g_queue_free (self->used_buffers); + self->used_buffers = NULL; + + gst_caps_unref (self->caps); + self->caps = NULL; + gst_object_unref (self->element); + self->element = NULL; + + GST_MINI_OBJECT_CLASS (bufferpool_parent_class)->finalize (GST_MINI_OBJECT + (self)); +} + +static void +gst_pvr_bufferpool_class_init (gpointer g_class, gpointer class_data) +{ + GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class); + + bufferpool_parent_class = g_type_class_peek_parent (g_class); + + mini_object_class->finalize = (GstMiniObjectFinalizeFunction) + GST_DEBUG_FUNCPTR (gst_pvr_bufferpool_finalize); +} + +GType +gst_pvr_bufferpool_get_type (void) +{ + static GType type; + + if (G_UNLIKELY (type == 0)) { + static const GTypeInfo info = { + .class_size = sizeof (GstMiniObjectClass), + .class_init = gst_pvr_bufferpool_class_init, + .instance_size = sizeof (GstPvrBufferPool), + }; + type = g_type_register_static (GST_TYPE_MINI_OBJECT, + "GstPvrBufferPool", &info, 0); + } + return type; +} diff --git a/sys/pvr2d/gstpvrbufferpool.h b/sys/pvr2d/gstpvrbufferpool.h new file mode 100644 index 0000000..1d90472 --- /dev/null +++ b/sys/pvr2d/gstpvrbufferpool.h @@ -0,0 +1,89 @@ +/* + * GStreamer + * Copyright (c) 2010, 2011 Texas Instruments Incorporated + * Copyright (c) 2011, Collabora Ltda + * + * This library 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 + * version 2.1 of the License. + * + * 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GSTPVRBUFFERPOOL_H__ +#define __GSTPVRBUFFERPOOL_H__ + +#include "gstpvr.h" +#include + +G_BEGIN_DECLS + +GType gst_ducati_buffer_get_type (void); +#define GST_TYPE_DUCATIBUFFER (gst_ducati_buffer_get_type()) +#define GST_IS_DUCATIBUFFER(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DUCATIBUFFER)) +#define GST_DUCATIBUFFER(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DUCATIBUFFER, GstDucatiBuffer)) + +GType gst_pvr_bufferpool_get_type (void); +#define GST_TYPE_PVRBUFFERPOOL (gst_pvr_bufferpool_get_type()) +#define GST_IS_PVRBUFFERPOOL(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PVRBUFFERPOOL)) +#define GST_PVRBUFFERPOOL(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PVRBUFFERPOOL, \ + GstPvrBufferPool)) + +typedef struct _GstPvrBufferPool GstPvrBufferPool; +typedef struct _GstDucatiBuffer GstDucatiBuffer; + +struct _GstPvrBufferPool +{ + GstMiniObject parent; + + /* output (padded) size including any codec padding: */ + gint padded_width, padded_height; + gint size; + PVR2DCONTEXTHANDLE pvr_context; + + GstCaps *caps; + GMutex *lock; + gboolean running; /* with lock */ + GstElement *element; /* the element that owns us.. */ + GQueue *free_buffers; + GQueue *used_buffers; + guint buffer_count; +}; + +GstPvrBufferPool * gst_pvr_bufferpool_new (GstElement * element, + GstCaps * caps, gint num_buffers, gint size, + PVR2DCONTEXTHANDLE pvr_context); +void gst_pvr_bufferpool_stop_running (GstPvrBufferPool * pool, gboolean unwrap); +GstDucatiBuffer * gst_pvr_bufferpool_get (GstPvrBufferPool * self, + GstBuffer * orig); + +#define GST_PVR_BUFFERPOOL_LOCK(self) g_mutex_lock ((self)->lock) +#define GST_PVR_BUFFERPOOL_UNLOCK(self) g_mutex_unlock ((self)->lock) + +struct _GstDucatiBuffer { + GstBuffer parent; + + GstPvrBufferPool *pool; /* buffer-pool that this buffer belongs to */ + GstBuffer *orig; /* original buffer, if we need to copy output */ + PVR2DMEMINFO *src_mem; /* Memory wrapped by pvr */ + gboolean wrapped; +}; + +GstBuffer * gst_ducati_buffer_get (GstDucatiBuffer * self); +PVR2DMEMINFO * gst_ducati_buffer_get_meminfo (GstDucatiBuffer * self); + +G_END_DECLS + +#endif /* __GSTPVRBUFFERPOOL_H__ */ diff --git a/sys/pvr2d/gstpvrvideosink.c b/sys/pvr2d/gstpvrvideosink.c new file mode 100644 index 0000000..3bfa3ad --- /dev/null +++ b/sys/pvr2d/gstpvrvideosink.c @@ -0,0 +1,1548 @@ +/* GStreamer + * + * Copyright (C) 2011 Collabora Ltda + * Copyright (C) 2011 Texas Instruments + * @author: Luciana Fujii Pontello + * + * This library 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 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. + */ + +/* Object header */ +#include "gstpvrvideosink.h" + +#include "gstpvrbufferpool.h" +#include +#include + +/* Debugging category */ +#include + +#define LINUX +#include +#include +#include +#include + +#define DEFAULT_QUEUE_SIZE 12 +#define DEFAULT_MIN_QUEUED_BUFS 1 + +GST_DEBUG_CATEGORY_EXTERN (gst_debug_pvrvideosink); +#define GST_CAT_DEFAULT gst_debug_pvrvideosink + +#define PVR2DMEMINFO_INITIALISE(d, s) \ +{ \ + (d)->hPrivateData = (IMG_VOID *)(s); \ + (d)->hPrivateMapData = (IMG_VOID *)(s->hKernelMemInfo); \ + (d)->ui32DevAddr = (IMG_UINT32) (s)->sDevVAddr.uiAddr; \ + (d)->ui32MemSize = (s)->uAllocSize; \ + (d)->pBase = (s)->pvLinAddr;\ + (d)->ulFlags = (s)->ui32Flags;\ +} + +/* end of internal definitions */ + +static void gst_pvrvideosink_reset (GstPVRVideoSink * pvrvideosink); +static GstFlowReturn gst_pvrvideosink_buffer_alloc (GstBaseSink * bsink, + guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf); +static void gst_pvrvideosink_xwindow_draw_borders (GstPVRVideoSink * + pvrvideosink, GstXWindow * xwindow, GstVideoRectangle rect); +static void gst_pvrvideosink_expose (GstXOverlay * overlay); +static void gst_pvrvideosink_xwindow_destroy (GstPVRVideoSink * pvrvideosink, + GstXWindow * xwindow); + +static GstStaticPadTemplate gst_pvrvideosink_sink_template_factory = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-yuv, " + "format = (fourcc) NV12, " + "width = " GST_VIDEO_SIZE_RANGE ", " + "height = " GST_VIDEO_SIZE_RANGE ", " + "framerate = " GST_VIDEO_FPS_RANGE)); + +enum +{ + PROP_0, + PROP_FORCE_ASPECT_RATIO, + PROP_WINDOW_WIDTH, + PROP_WINDOW_HEIGHT +}; + +static GstVideoSinkClass *parent_class = NULL; + +/* ============================================================= */ +/* */ +/* Private Methods */ +/* */ +/* ============================================================= */ + +/* pvrvideo buffers */ + +#define GST_TYPE_PVRVIDEO_BUFFER (gst_pvrvideo_buffer_get_type()) + +#define GST_IS_PVRVIDEO_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PVRVIDEO_BUFFER)) +#define GST_PVRVIDEO_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PVRVIDEO_BUFFER, GstPVRVideoBuffer)) +#define GST_PVRVIDEO_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PVRVIDEO_BUFFER, GstPVRVideoBufferClass)) + +static void +gst_pvrvideosink_xwindow_update_geometry (GstPVRVideoSink * pvrvideosink) +{ + XWindowAttributes attr; + WSEGLError glerror; + WSEGLDrawableParams source_params; + PVRSRV_CLIENT_MEM_INFO *client_mem_info; + + /* Update the window geometry */ + g_mutex_lock (pvrvideosink->dcontext->x_lock); + if (G_UNLIKELY (pvrvideosink->xwindow == NULL)) { + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + return; + } + pvrvideosink->redraw_borders = TRUE; + + XGetWindowAttributes (pvrvideosink->dcontext->x_display, + pvrvideosink->xwindow->window, &attr); + + pvrvideosink->xwindow->width = attr.width; + pvrvideosink->xwindow->height = attr.height; + + if (!pvrvideosink->have_render_rect) { + pvrvideosink->render_rect.x = pvrvideosink->render_rect.y = 0; + pvrvideosink->render_rect.w = attr.width; + pvrvideosink->render_rect.h = attr.height; + } + if (pvrvideosink->dcontext != NULL) { + glerror = + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_DeleteDrawable (pvrvideosink->dcontext-> + drawable_handle); + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error destroying drawable"); + return; + } + glerror = + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_CreateWindowDrawable (pvrvideosink->dcontext-> + display_handle, pvrvideosink->dcontext->glconfig, + &pvrvideosink->dcontext->drawable_handle, + (NativeWindowType) pvrvideosink->xwindow->window, + &pvrvideosink->dcontext->rotation); + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error creating drawable"); + return; + } + glerror = + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_GetDrawableParameters (pvrvideosink->dcontext-> + drawable_handle, &source_params, &pvrvideosink->render_params); + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error getting Drawable params"); + return; + } + + client_mem_info = + (PVRSRV_CLIENT_MEM_INFO *) pvrvideosink->render_params.hPrivateData; + PVR2DMEMINFO_INITIALISE (&pvrvideosink->dcontext->dst_mem, client_mem_info); + } + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); +} + +/* This function handles XEvents that might be in the queue. It generates + GstEvent that will be sent upstream in the pipeline to handle interactivity + and navigation. It will also listen for configure events on the window to + trigger caps renegotiation so on the fly software scaling can work. */ +static void +gst_pvrvideosink_handle_xevents (GstPVRVideoSink * pvrvideosink) +{ + XEvent e; + gboolean exposed = FALSE; + gboolean configured = FALSE; + + g_mutex_lock (pvrvideosink->flow_lock); + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + /* Handle Expose */ + while (XCheckWindowEvent (pvrvideosink->dcontext->x_display, + pvrvideosink->xwindow->window, ExposureMask | StructureNotifyMask, + &e)) { + switch (e.type) { + case Expose: + exposed = TRUE; + break; + case ConfigureNotify: + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + gst_pvrvideosink_xwindow_update_geometry (pvrvideosink); + g_mutex_lock (pvrvideosink->dcontext->x_lock); + configured = TRUE; + break; + default: + break; + } + } + + if (exposed || configured) { + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + g_mutex_unlock (pvrvideosink->flow_lock); + + gst_pvrvideosink_expose (GST_X_OVERLAY (pvrvideosink)); + + g_mutex_lock (pvrvideosink->flow_lock); + g_mutex_lock (pvrvideosink->dcontext->x_lock); + } + + /* Handle Display events */ + while (XPending (pvrvideosink->dcontext->x_display)) { + XNextEvent (pvrvideosink->dcontext->x_display, &e); + + switch (e.type) { + case ClientMessage:{ + Atom wm_delete; + + wm_delete = XInternAtom (pvrvideosink->dcontext->x_display, + "WM_DELETE_WINDOW", True); + if (wm_delete != None && wm_delete == (Atom) e.xclient.data.l[0]) { + /* Handle window deletion by posting an error on the bus */ + GST_ELEMENT_ERROR (pvrvideosink, RESOURCE, NOT_FOUND, + ("Output window was closed"), (NULL)); + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + gst_pvrvideosink_xwindow_destroy (pvrvideosink, + pvrvideosink->xwindow); + pvrvideosink->xwindow = NULL; + g_mutex_lock (pvrvideosink->dcontext->x_lock); + } + break; + } + default: + break; + } + } + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + g_mutex_unlock (pvrvideosink->flow_lock); +} + +static gpointer +gst_pvrvideosink_event_thread (GstPVRVideoSink * pvrvideosink) +{ + GST_OBJECT_LOCK (pvrvideosink); + while (pvrvideosink->running) { + GST_OBJECT_UNLOCK (pvrvideosink); + + if (pvrvideosink->xwindow) { + gst_pvrvideosink_handle_xevents (pvrvideosink); + } + g_usleep (G_USEC_PER_SEC / 20); + + GST_OBJECT_LOCK (pvrvideosink); + } + GST_OBJECT_UNLOCK (pvrvideosink); + + return NULL; +} + +static void +gst_pvrvideosink_manage_event_thread (GstPVRVideoSink * pvrvideosink) +{ + GThread *thread = NULL; + + /* don't start the thread too early */ + if (pvrvideosink->dcontext == NULL) { + return; + } + + GST_OBJECT_LOCK (pvrvideosink); + if (!pvrvideosink->event_thread) { + /* Setup our event listening thread */ + GST_DEBUG_OBJECT (pvrvideosink, "run xevent thread"); + pvrvideosink->running = TRUE; + pvrvideosink->event_thread = g_thread_create ( + (GThreadFunc) gst_pvrvideosink_event_thread, pvrvideosink, TRUE, NULL); + } + GST_OBJECT_UNLOCK (pvrvideosink); + + /* Wait for our event thread to finish */ + if (thread) + g_thread_join (thread); +} + + +static GstDrawContext * +gst_pvrvideosink_get_dcontext (GstPVRVideoSink * pvrvideosink) +{ + GstDrawContext *dcontext; + PVR2DERROR pvr_error; + gint refresh_rate; + DRI2WSDisplay *displayImpl; + WSEGLError glerror; + const WSEGLCaps *glcaps; + + dcontext = g_new0 (GstDrawContext, 1); + dcontext->p_blt_info = 0; + dcontext->x_lock = g_mutex_new (); + + dcontext->p_blt_info = g_new0 (PVR2D_3DBLT_EXT, 1); + if (!dcontext->p_blt_info) { + GST_ERROR_OBJECT (pvrvideosink, "Alloc of bltinfo failed"); + return NULL; + } + dcontext->p_blt2d_info = g_new0 (PVR2DBLTINFO, 1); + + dcontext->x_display = XOpenDisplay (NULL); + + dcontext->wsegl_table = WSEGL_GetFunctionTablePointer (); + glerror = dcontext->wsegl_table->pfnWSEGL_IsDisplayValid ( + (NativeDisplayType) dcontext->x_display); + + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Display is not valid"); + return NULL; + } + + glerror = dcontext->wsegl_table->pfnWSEGL_InitialiseDisplay ( + (NativeDisplayType) dcontext->x_display, &dcontext->display_handle, + &glcaps, &dcontext->glconfig); + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error initializing display"); + return NULL; + } + + displayImpl = (DRI2WSDisplay *) dcontext->display_handle; + dcontext->pvr_context = displayImpl->hContext; + + pvr_error = PVR2DGetScreenMode (dcontext->pvr_context, + &dcontext->display_format, &dcontext->display_width, + &dcontext->display_height, &dcontext->stride, &refresh_rate); + if (pvr_error != PVR2D_OK) { + GST_ERROR_OBJECT (pvrvideosink, "Failed) to get screen mode" + "returned %d", pvr_error); + return NULL; + } + dcontext->screen_num = DefaultScreen (dcontext->x_display); + dcontext->black = XBlackPixel (dcontext->x_display, dcontext->screen_num); + + return dcontext; +} + +static void +gst_pvrvideosink_xwindow_set_title (GstPVRVideoSink * pvrvideosink, + GstXWindow * xwindow, const gchar * media_title) +{ + if (media_title) { + g_free (pvrvideosink->media_title); + pvrvideosink->media_title = g_strdup (media_title); + } + if (xwindow) { + /* we have a window */ + if (xwindow->internal) { + XTextProperty xproperty; + const gchar *app_name; + const gchar *title = NULL; + gchar *title_mem = NULL; + + /* set application name as a title */ + app_name = g_get_application_name (); + + if (app_name && pvrvideosink->media_title) { + title = title_mem = g_strconcat (pvrvideosink->media_title, " : ", + app_name, NULL); + } else if (app_name) { + title = app_name; + } else if (pvrvideosink->media_title) { + title = pvrvideosink->media_title; + } + + if (title) { + if ((XStringListToTextProperty (((char **) &title), 1, + &xproperty)) != 0) { + XSetWMName (pvrvideosink->dcontext->x_display, xwindow->window, + &xproperty); + XFree (xproperty.value); + } + + g_free (title_mem); + } + } + } +} + +static GstXWindow * +gst_pvrvideosink_create_window (GstPVRVideoSink * pvrvideosink, gint width, + gint height) +{ + WSEGLError glerror; + WSEGLDrawableParams source_params; + Window root; + GstXWindow *xwindow; + GstDrawContext *dcontext; + XGCValues values; + Atom wm_delete; + PVRSRV_CLIENT_MEM_INFO *client_mem_info; + + GST_DEBUG_OBJECT (pvrvideosink, "begin"); + + dcontext = pvrvideosink->dcontext; + xwindow = g_new0 (GstXWindow, 1); + + xwindow->internal = TRUE; + pvrvideosink->render_rect.x = pvrvideosink->render_rect.y = 0; + pvrvideosink->render_rect.w = width; + pvrvideosink->render_rect.h = height; + xwindow->width = width; + xwindow->height = height; + xwindow->internal = TRUE; + + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + root = DefaultRootWindow (dcontext->x_display); + xwindow->window = XCreateSimpleWindow (dcontext->x_display, root, 0, 0, + width, height, 2, 2, pvrvideosink->dcontext->black); + XSelectInput (dcontext->x_display, xwindow->window, + ExposureMask | StructureNotifyMask); + + /* Tell the window manager we'd like delete client messages instead of + * being killed */ + wm_delete = XInternAtom (pvrvideosink->dcontext->x_display, + "WM_DELETE_WINDOW", True); + if (wm_delete != None) { + (void) XSetWMProtocols (pvrvideosink->dcontext->x_display, xwindow->window, + &wm_delete, 1); + } + + XMapWindow (dcontext->x_display, xwindow->window); + + /* We have to do that to prevent X from redrawing the background on + * ConfigureNotify. This takes away flickering of video when resizing. */ + XSetWindowBackgroundPixmap (pvrvideosink->dcontext->x_display, + xwindow->window, None); + + gst_pvrvideosink_xwindow_set_title (pvrvideosink, xwindow, NULL); + + xwindow->gc = XCreateGC (pvrvideosink->dcontext->x_display, + xwindow->window, 0, &values); + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + + glerror = + dcontext->wsegl_table->pfnWSEGL_CreateWindowDrawable (dcontext-> + display_handle, dcontext->glconfig, &(dcontext->drawable_handle), + (NativeWindowType) xwindow->window, &(dcontext->rotation)); + + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error creating drawable"); + return NULL; + } + glerror = + dcontext->wsegl_table->pfnWSEGL_GetDrawableParameters (dcontext-> + drawable_handle, &source_params, &pvrvideosink->render_params); + client_mem_info = + (PVRSRV_CLIENT_MEM_INFO *) pvrvideosink->render_params.hPrivateData; + PVR2DMEMINFO_INITIALISE (&dcontext->dst_mem, client_mem_info); + + GST_DEBUG_OBJECT (pvrvideosink, "end"); + return xwindow; +} + +static void +gst_pvrvideosink_blit (GstPVRVideoSink * pvrvideosink, GstBuffer * buffer) +{ + PVR2DERROR pvr_error; + GstDrawContext *dcontext = pvrvideosink->dcontext; + GstCaps *caps; + GstStructure *structure; + gint video_width; + gint video_height; + gboolean ret; + gboolean draw_border = FALSE; + PPVR2D_3DBLT_EXT p_blt_3d; + PVR2DMEMINFO *src_mem; + PVR2DFORMAT pvr_format = pvrvideosink->format == GST_VIDEO_FORMAT_NV12 ? + PVR2D_YUV420_2PLANE : PVR2D_ARGB8888; + GstVideoRectangle result; + + GST_DEBUG_OBJECT (pvrvideosink, "begin"); + g_mutex_lock (pvrvideosink->flow_lock); + if (buffer == NULL) + buffer = pvrvideosink->current_buffer; + + if (buffer == NULL) { + g_mutex_unlock (pvrvideosink->flow_lock); + return; + } + + caps = GST_BUFFER_CAPS (buffer); + src_mem = gst_ducati_buffer_get_meminfo ((GstDucatiBuffer *) buffer); + p_blt_3d = dcontext->p_blt_info; + + structure = gst_caps_get_structure (caps, 0); + ret = gst_structure_get_int (structure, "width", &video_width); + ret &= gst_structure_get_int (structure, "height", &video_height); + if (!ret) { + GST_ERROR_OBJECT (pvrvideosink, "Failed to get dimensions of the buffer"); + goto done; + } + + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + /* Draw borders when displaying the first frame. After this + draw borders only on expose event or after a size change. */ + if (!(pvrvideosink->current_buffer) || pvrvideosink->redraw_borders) { + draw_border = TRUE; + } + + /* Store a reference to the last image we put, lose the previous one */ + if (buffer && pvrvideosink->current_buffer != buffer) { + if (pvrvideosink->current_buffer) { + GST_LOG_OBJECT (pvrvideosink, "unreffing %p", + pvrvideosink->current_buffer); + gst_buffer_unref (GST_BUFFER_CAST (pvrvideosink->current_buffer)); + } + GST_LOG_OBJECT (pvrvideosink, "reffing %p as our current buffer", buffer); + pvrvideosink->current_buffer = gst_buffer_ref (buffer); + } + + if (pvrvideosink->keep_aspect) { + GstVideoRectangle src, dst; + + src.w = GST_VIDEO_SINK_WIDTH (pvrvideosink); + src.h = GST_VIDEO_SINK_HEIGHT (pvrvideosink); + dst.w = pvrvideosink->render_rect.w; + dst.h = pvrvideosink->render_rect.h; + gst_video_sink_center_rect (src, dst, &result, TRUE); + result.x += pvrvideosink->render_rect.x; + result.y += pvrvideosink->render_rect.y; + } else { + memcpy (&result, &pvrvideosink->render_rect, sizeof (GstVideoRectangle)); + } + + p_blt_3d->sDst.pSurfMemInfo = &dcontext->dst_mem; + p_blt_3d->sDst.SurfOffset = 0; + p_blt_3d->sDst.Stride = + gst_video_format_get_row_stride (GST_VIDEO_FORMAT_BGRx, 0, + pvrvideosink->render_params.ui32Stride); + p_blt_3d->sDst.Format = PVR2D_ARGB8888; + p_blt_3d->sDst.SurfWidth = pvrvideosink->xwindow->width; + p_blt_3d->sDst.SurfHeight = pvrvideosink->xwindow->height; + + p_blt_3d->rcDest.left = result.x; + p_blt_3d->rcDest.top = result.y; + p_blt_3d->rcDest.right = result.w + result.x; + p_blt_3d->rcDest.bottom = result.h + result.y; + + p_blt_3d->sSrc.pSurfMemInfo = src_mem; + p_blt_3d->sSrc.SurfOffset = 0; + p_blt_3d->sSrc.Stride = pvrvideosink->rowstride; + p_blt_3d->sSrc.Format = pvr_format; + p_blt_3d->sSrc.SurfWidth = video_width; + p_blt_3d->sSrc.SurfHeight = video_height; + + p_blt_3d->rcSource.left = 0; + p_blt_3d->rcSource.top = 0; + p_blt_3d->rcSource.right = video_width; + p_blt_3d->rcSource.bottom = video_height; + + p_blt_3d->hUseCode = NULL; + + if (pvrvideosink->format == GST_VIDEO_FORMAT_NV12) + p_blt_3d->bDisableDestInput = TRUE; + else + /* blit fails for RGB without this... not sure why yet... */ + p_blt_3d->bDisableDestInput = FALSE; + + pvr_error = PVR2DBlt3DExt (pvrvideosink->dcontext->pvr_context, + dcontext->p_blt_info); + + switch (pvr_error) { + case PVR2D_OK: + break; + case PVR2DERROR_DEVICE_UNAVAILABLE: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, device unavailable"); + goto done; + break; + case PVR2DERROR_INVALID_CONTEXT: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, invalid context"); + goto done; + break; + case PVR2DERROR_INVALID_PARAMETER: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, invalid parameter"); + goto done; + break; + case PVR2DERROR_HW_FEATURE_NOT_SUPPORTED: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, " + "hardware feature not supported"); + goto done; + break; + case PVR2DERROR_GENERIC_ERROR: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, generic error"); + goto done; + break; + default: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, " + "undefined error %d", pvr_error); + goto done; + break; + } + dcontext->wsegl_table->pfnWSEGL_SwapDrawable (dcontext->drawable_handle, 1); + + if (draw_border) { + gst_pvrvideosink_xwindow_draw_borders (pvrvideosink, pvrvideosink->xwindow, + result); + pvrvideosink->redraw_borders = FALSE; + } + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + +done: + GST_DEBUG_OBJECT (pvrvideosink, "end"); + g_mutex_unlock (pvrvideosink->flow_lock); +} + +static void +gst_pvrvideosink_destroy_drawable (GstPVRVideoSink * pvrvideosink) +{ + if (pvrvideosink->dcontext != NULL) { + if (pvrvideosink->dcontext->drawable_handle) + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_DeleteDrawable (pvrvideosink->dcontext-> + drawable_handle); + + pvrvideosink->dcontext->wsegl_table->pfnWSEGL_CloseDisplay (pvrvideosink-> + dcontext->display_handle); + } +} + +/* We are called with the x_lock taken */ +static void +gst_pvrvideosink_pvrfill_rectangle (GstPVRVideoSink * pvrvideosink, + GstVideoRectangle rect) +{ + PVR2DERROR pvr_error; + PPVR2DBLTINFO p_blt2d_info = 0; + GstDrawContext *dcontext = pvrvideosink->dcontext; + + GST_DEBUG_OBJECT (pvrvideosink, "begin"); + + p_blt2d_info = dcontext->p_blt2d_info; + + p_blt2d_info->pDstMemInfo = &dcontext->dst_mem; + p_blt2d_info->BlitFlags = PVR2D_BLIT_DISABLE_ALL; + p_blt2d_info->DstOffset = 0; + p_blt2d_info->CopyCode = PVR2DROPclear; + p_blt2d_info->DstStride = + gst_video_format_get_row_stride (GST_VIDEO_FORMAT_BGRx, 0, + pvrvideosink->render_params.ui32Stride); + p_blt2d_info->DstFormat = PVR2D_ARGB8888; + p_blt2d_info->DstSurfWidth = pvrvideosink->xwindow->width; + p_blt2d_info->DstSurfHeight = pvrvideosink->xwindow->height; + p_blt2d_info->DstX = rect.x; + p_blt2d_info->DstY = rect.y; + p_blt2d_info->DSizeX = rect.w; + p_blt2d_info->DSizeY = rect.h; + + pvr_error = PVR2DBlt (pvrvideosink->dcontext->pvr_context, p_blt2d_info); + + switch (pvr_error) { + case PVR2D_OK: + break; + case PVR2DERROR_DEVICE_UNAVAILABLE: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, device unavailable"); + goto done; + break; + case PVR2DERROR_INVALID_CONTEXT: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, invalid context"); + goto done; + break; + case PVR2DERROR_INVALID_PARAMETER: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, invalid parameter"); + goto done; + break; + case PVR2DERROR_HW_FEATURE_NOT_SUPPORTED: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, " + "hardware feature not supported"); + goto done; + break; + case PVR2DERROR_GENERIC_ERROR: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, generic error"); + goto done; + break; + default: + GST_ERROR_OBJECT (pvrvideosink, "Failed to blit, " + "undefined error %d", pvr_error); + goto done; + break; + } + dcontext->wsegl_table->pfnWSEGL_SwapDrawable (dcontext->drawable_handle, 1); + +done: + GST_DEBUG_OBJECT (pvrvideosink, "end"); +} + +/* We are called with the x_lock taken */ +static void +gst_pvrvideosink_xwindow_draw_borders (GstPVRVideoSink * pvrvideosink, + GstXWindow * xwindow, GstVideoRectangle rect) +{ + gint t1, t2; + GstVideoRectangle result; + + g_return_if_fail (GST_IS_PVRVIDEOSINK (pvrvideosink)); + g_return_if_fail (xwindow != NULL); + + /* Left border */ + result.x = pvrvideosink->render_rect.x; + result.y = pvrvideosink->render_rect.y; + result.w = rect.x - pvrvideosink->render_rect.x; + result.h = pvrvideosink->render_rect.h; + if (rect.x > pvrvideosink->render_rect.x) + gst_pvrvideosink_pvrfill_rectangle (pvrvideosink, result); + + /* Right border */ + t1 = rect.x + rect.w; + t2 = pvrvideosink->render_rect.x + pvrvideosink->render_rect.w; + result.x = t1; + result.y = pvrvideosink->render_rect.y; + result.w = t2 - t1; + result.h = pvrvideosink->render_rect.h; + if (t1 < t2) + gst_pvrvideosink_pvrfill_rectangle (pvrvideosink, result); + + /* Top border */ + result.x = pvrvideosink->render_rect.x; + result.y = pvrvideosink->render_rect.y; + result.w = pvrvideosink->render_rect.w; + result.h = rect.y - pvrvideosink->render_rect.y; + if (rect.y > pvrvideosink->render_rect.y) + gst_pvrvideosink_pvrfill_rectangle (pvrvideosink, result); + + /* Bottom border */ + t1 = rect.y + rect.h; + t2 = pvrvideosink->render_rect.y + pvrvideosink->render_rect.h; + result.x = pvrvideosink->render_rect.x; + result.y = t1; + result.w = pvrvideosink->render_rect.w; + result.h = t2 - t1; + if (t1 < t2) + gst_pvrvideosink_pvrfill_rectangle (pvrvideosink, result); +} + +/* Element stuff */ + +static gboolean +gst_pvrvideosink_setcaps (GstBaseSink * bsink, GstCaps * caps) +{ + GstPVRVideoSink *pvrvideosink; + gboolean ret = TRUE; + GstStructure *structure; + gint new_width, new_height; + const GValue *fps; + GstQuery *query; + + pvrvideosink = GST_PVRVIDEOSINK (bsink); + + GST_DEBUG_OBJECT (pvrvideosink, + "sinkconnect possible caps with given caps %", caps); + + structure = gst_caps_get_structure (caps, 0); + + ret = gst_video_format_parse_caps_strided (caps, &pvrvideosink->format, + &new_width, &new_height, &pvrvideosink->rowstride); + if (pvrvideosink->rowstride == 0) + pvrvideosink->rowstride = + gst_video_format_get_row_stride (pvrvideosink->format, 0, new_width); + fps = gst_structure_get_value (structure, "framerate"); + ret &= (fps != NULL); + if (!ret) { + GST_ERROR_OBJECT (pvrvideosink, "problem at parsing caps"); + return FALSE; + } + + if (pvrvideosink->current_caps) { + GST_DEBUG_OBJECT (pvrvideosink, "already have caps set"); + if (gst_caps_is_equal (pvrvideosink->current_caps, caps)) { + GST_DEBUG_OBJECT (pvrvideosink, "caps are equal!"); + return TRUE; + } + GST_DEBUG_OBJECT (pvrvideosink, "caps are different"); + } + + g_mutex_lock (pvrvideosink->pool_lock); + if (pvrvideosink->buffer_pool) { + if (!gst_caps_is_equal (pvrvideosink->buffer_pool->caps, caps)) { + GST_INFO_OBJECT (pvrvideosink, "in set caps, pool->caps != caps"); + gst_pvr_bufferpool_stop_running (pvrvideosink->buffer_pool, FALSE); + pvrvideosink->buffer_pool = NULL; + } + } + g_mutex_unlock (pvrvideosink->pool_lock); + + /* query to find if anyone upstream using these buffers has any + * minimum requirements: + */ + query = gst_query_new_buffers (caps); + if (gst_element_query (GST_ELEMENT (pvrvideosink), query)) { + gint min_buffers; + + gst_query_parse_buffers_count (query, &min_buffers); + + GST_DEBUG_OBJECT (pvrvideosink, "min_buffers=%d", min_buffers); + + /* XXX need to account for some buffers used by queue, etc.. probably + * queue should handle query, pass on to sink pad, and then add some + * number of buffers to the min, so this value is dynamic depending + * on the pipeline? + */ + if (min_buffers != -1) { + min_buffers += 3 + pvrvideosink->min_queued_bufs; + pvrvideosink->num_buffers_can_change = FALSE; + } + + if (min_buffers > pvrvideosink->num_buffers) { + pvrvideosink->num_buffers = min_buffers; + } + } + gst_query_unref (query); + + /* Notify application to set xwindow id now */ + g_mutex_lock (pvrvideosink->flow_lock); + if (!pvrvideosink->xwindow) { + g_mutex_unlock (pvrvideosink->flow_lock); + gst_x_overlay_prepare_xwindow_id (GST_X_OVERLAY (pvrvideosink)); + } else { + g_mutex_unlock (pvrvideosink->flow_lock); + } + GST_VIDEO_SINK_WIDTH (pvrvideosink) = new_width; + GST_VIDEO_SINK_HEIGHT (pvrvideosink) = new_height; + + g_mutex_lock (pvrvideosink->flow_lock); + if (!pvrvideosink->xwindow) + pvrvideosink->xwindow = gst_pvrvideosink_create_window (pvrvideosink, + new_width, new_height); + g_mutex_unlock (pvrvideosink->flow_lock); + + pvrvideosink->fps_n = gst_value_get_fraction_numerator (fps); + pvrvideosink->fps_d = gst_value_get_fraction_denominator (fps); + + pvrvideosink->current_caps = gst_caps_ref (caps); + + return TRUE; +} + +static GstCaps * +gst_pvrvideosink_getcaps (GstBaseSink * bsink) +{ + GstPVRVideoSink *pvrvideosink; + GstCaps *caps; + + pvrvideosink = GST_PVRVIDEOSINK (bsink); + + caps = gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_SINK + (pvrvideosink)->sinkpad)); + return caps; +} + +static GstStateChangeReturn +gst_pvrvideosink_change_state (GstElement * element, GstStateChange transition) +{ + GstPVRVideoSink *pvrvideosink; + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstDrawContext *dcontext; + + pvrvideosink = GST_PVRVIDEOSINK (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (pvrvideosink->dcontext == NULL) { + dcontext = gst_pvrvideosink_get_dcontext (pvrvideosink); + if (dcontext == NULL) + return GST_STATE_CHANGE_FAILURE; + GST_OBJECT_LOCK (pvrvideosink); + pvrvideosink->dcontext = dcontext; + GST_OBJECT_UNLOCK (pvrvideosink); + } + gst_pvrvideosink_manage_event_thread (pvrvideosink); + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + g_mutex_lock (pvrvideosink->pool_lock); + pvrvideosink->pool_invalid = FALSE; + g_mutex_unlock (pvrvideosink->pool_lock); + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + g_mutex_lock (pvrvideosink->pool_lock); + pvrvideosink->pool_invalid = TRUE; + g_mutex_unlock (pvrvideosink->pool_lock); + 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: + pvrvideosink->fps_n = 0; + pvrvideosink->fps_d = 1; + GST_VIDEO_SINK_WIDTH (pvrvideosink) = 0; + GST_VIDEO_SINK_HEIGHT (pvrvideosink) = 0; + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_pvrvideosink_reset (pvrvideosink); + break; + default: + break; + } + + return ret; +} + +static void +gst_pvrvideosink_get_times (GstBaseSink * bsink, GstBuffer * buf, + GstClockTime * start, GstClockTime * end) +{ + GstPVRVideoSink *pvrvideosink; + + pvrvideosink = GST_PVRVIDEOSINK (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 (pvrvideosink->fps_n > 0) { + *end = *start + + gst_util_uint64_scale_int (GST_SECOND, pvrvideosink->fps_d, + pvrvideosink->fps_n); + } + } + } +} + +static GstFlowReturn +gst_pvrvideosink_show_frame (GstBaseSink * vsink, GstBuffer * buf) +{ + GstPVRVideoSink *pvrvideosink; + GstBuffer *newbuf = NULL; + g_return_val_if_fail (buf != NULL, GST_FLOW_ERROR); + + pvrvideosink = GST_PVRVIDEOSINK (vsink); + + GST_DEBUG_OBJECT (pvrvideosink, "render buffer: %p", buf); + + if (!GST_IS_BUFFER (buf)) { + GstFlowReturn ret; + + /* special case check for sub-buffers: In certain cases, places like + * GstBaseTransform, which might check that the buffer is writable + * before copying metadata, timestamp, and such, will find that the + * buffer has more than one reference to it. In these cases, they + * will create a sub-buffer with an offset=0 and length equal to the + * original buffer size. + * + * This could happen in two scenarios: (1) a tee in the pipeline, and + * (2) because the refcnt is incremented in gst_mini_object_free() + * before the finalize function is called, and decremented after it + * returns.. but returning this buffer to the buffer pool in the + * finalize function, could wake up a thread blocked in _buffer_alloc() + * which could run and get a buffer w/ refcnt==2 before the thread + * originally unref'ing the buffer returns from finalize function and + * decrements the refcnt back to 1! + */ + if (buf->parent && + (GST_BUFFER_DATA (buf) == GST_BUFFER_DATA (buf->parent)) && + (GST_BUFFER_SIZE (buf) == GST_BUFFER_SIZE (buf->parent))) { + GST_DEBUG_OBJECT (pvrvideosink, "I have a sub-buffer!"); + return gst_pvrvideosink_show_frame (vsink, buf->parent); + } + + GST_DEBUG_OBJECT (pvrvideosink, + "slow-path.. I got a %s so I need to memcpy", + g_type_name (G_OBJECT_TYPE (buf))); + + ret = gst_pvrvideosink_buffer_alloc (GST_BASE_SINK (vsink), + GST_BUFFER_OFFSET (buf), GST_BUFFER_SIZE (buf), GST_BUFFER_CAPS (buf), + &newbuf); + + if (GST_FLOW_OK != ret) { + GST_DEBUG_OBJECT (pvrvideosink, "dropping frame!!"); + return GST_FLOW_OK; + } + + memcpy (GST_BUFFER_DATA (newbuf), + GST_BUFFER_DATA (buf), + MIN (GST_BUFFER_SIZE (newbuf), GST_BUFFER_SIZE (buf))); + + GST_DEBUG_OBJECT (pvrvideosink, "render copied buffer: %p", newbuf); + + buf = newbuf; + } + + gst_pvrvideosink_blit (pvrvideosink, buf); + + if (newbuf) { + gst_buffer_unref (newbuf); + } + + return GST_FLOW_OK; +} + + +/* Buffer management + * + * The buffer_alloc function must either return a buffer with given size and + * caps or create a buffer with different caps attached to the buffer. This + * last option is called reverse negotiation, ie, where the sink suggests a + * different format from the upstream peer. + * + * We try to do reverse negotiation when our geometry changes and we like a + * resized buffer. + */ +static GstFlowReturn +gst_pvrvideosink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size, + GstCaps * caps, GstBuffer ** buf) +{ + GstPVRVideoSink *pvrvideosink; + GstDucatiBuffer *pvrvideo = NULL; + GstStructure *structure = NULL; + GstFlowReturn ret = GST_FLOW_OK; + gint width, height; + + pvrvideosink = GST_PVRVIDEOSINK (bsink); + + GST_DEBUG_OBJECT (pvrvideosink, "begin"); + + if (G_UNLIKELY (!caps)) { + GST_WARNING_OBJECT (pvrvideosink, + "have no caps, doing fallback allocation"); + *buf = NULL; + ret = GST_FLOW_OK; + goto beach; + } + + g_mutex_lock (pvrvideosink->pool_lock); + if (G_UNLIKELY (pvrvideosink->pool_invalid)) { + GST_DEBUG_OBJECT (pvrvideosink, "the pool is flushing"); + ret = GST_FLOW_WRONG_STATE; + g_mutex_unlock (pvrvideosink->pool_lock); + goto beach; + } else { + g_mutex_unlock (pvrvideosink->pool_lock); + } + + GST_LOG_OBJECT (pvrvideosink, + "a buffer of %d bytes was requested with caps %" GST_PTR_FORMAT + " and offset %" G_GUINT64_FORMAT, size, caps, offset); + + /* get struct to see what is requested */ + structure = gst_caps_get_structure (caps, 0); + if (!gst_structure_get_int (structure, "width", &width) || + !gst_structure_get_int (structure, "height", &height)) { + GST_WARNING_OBJECT (pvrvideosink, "invalid caps for buffer allocation %" + GST_PTR_FORMAT, caps); + ret = GST_FLOW_NOT_NEGOTIATED; + goto beach; + } + + g_mutex_lock (pvrvideosink->pool_lock); + /* initialize the buffer pool if not initialized yet */ + if (G_UNLIKELY (!pvrvideosink->buffer_pool || + pvrvideosink->buffer_pool->size != size)) { + if (pvrvideosink->buffer_pool) { + GST_INFO_OBJECT (pvrvideosink, "in buffer alloc, pool->size != size"); + gst_pvr_bufferpool_stop_running (pvrvideosink->buffer_pool, FALSE); + } + + GST_LOG_OBJECT (pvrvideosink, "Creating a buffer pool with %d buffers", + pvrvideosink->num_buffers); + if (!(pvrvideosink->buffer_pool = + gst_pvr_bufferpool_new (GST_ELEMENT (pvrvideosink), + caps, pvrvideosink->num_buffers, size, + pvrvideosink->dcontext->pvr_context))) { + g_mutex_unlock (pvrvideosink->pool_lock); + return GST_FLOW_ERROR; + } + } + pvrvideo = gst_pvr_bufferpool_get (pvrvideosink->buffer_pool, NULL); + g_mutex_unlock (pvrvideosink->pool_lock); + + *buf = GST_BUFFER_CAST (pvrvideo); + +beach: + return ret; +} + +/* Interfaces stuff */ + +static gboolean +gst_pvrvideosink_interface_supported (GstImplementsInterface * iface, + GType type) +{ + if (type == GST_TYPE_X_OVERLAY) + return TRUE; + else + return FALSE; +} + +static void +gst_pvrvideosink_interface_init (GstImplementsInterfaceClass * klass) +{ + klass->supported = gst_pvrvideosink_interface_supported; +} + +/* This function destroys a GstXWindow */ +static void +gst_pvrvideosink_xwindow_destroy (GstPVRVideoSink * pvrvideosink, + GstXWindow * xwindow) +{ + g_return_if_fail (xwindow != NULL); + + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + /* If we did not create that window we just free the GC and let it live */ + if (xwindow->internal) + XDestroyWindow (pvrvideosink->dcontext->x_display, xwindow->window); + else + XSelectInput (pvrvideosink->dcontext->x_display, xwindow->window, 0); + + XFreeGC (pvrvideosink->dcontext->x_display, xwindow->gc); + + XSync (pvrvideosink->dcontext->x_display, FALSE); + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + + g_free (xwindow); +} + +static void +gst_pvrvideosink_set_window_handle (GstXOverlay * overlay, guintptr id) +{ + XID xwindow_id = id; + GstPVRVideoSink *pvrvideosink = GST_PVRVIDEOSINK (overlay); + GstXWindow *xwindow = NULL; + + g_return_if_fail (GST_IS_PVRVIDEOSINK (pvrvideosink)); + + g_mutex_lock (pvrvideosink->flow_lock); + + /* If we already use that window return */ + if (pvrvideosink->xwindow && (xwindow_id == pvrvideosink->xwindow->window)) { + g_mutex_unlock (pvrvideosink->flow_lock); + return; + } + + /* If the element has not initialized the X11 context try to do so */ + if (!pvrvideosink->dcontext && !(pvrvideosink->dcontext = + gst_pvrvideosink_get_dcontext (pvrvideosink))) { + g_mutex_unlock (pvrvideosink->flow_lock); + /* we have thrown a GST_ELEMENT_ERROR now */ + return; + } + + /* Clear image pool as the images are unusable anyway */ + g_mutex_lock (pvrvideosink->pool_lock); + if (pvrvideosink->buffer_pool) { + gst_pvr_bufferpool_stop_running (pvrvideosink->buffer_pool, FALSE); + pvrvideosink->buffer_pool = NULL; + } + g_mutex_unlock (pvrvideosink->pool_lock); + + /* If a window is there already we destroy it */ + if (pvrvideosink->xwindow) { + gst_pvrvideosink_xwindow_destroy (pvrvideosink, pvrvideosink->xwindow); + pvrvideosink->xwindow = NULL; + } + + /* If the xid is 0 we will create an internal one in buffer_alloc */ + if (xwindow_id != 0) { + XWindowAttributes attr; + WSEGLError glerror; + WSEGLDrawableParams source_params; + PVRSRV_CLIENT_MEM_INFO *client_mem_info; + + xwindow = g_new0 (GstXWindow, 1); + xwindow->window = xwindow_id; + + /* Set the event we want to receive and create a GC */ + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + XGetWindowAttributes (pvrvideosink->dcontext->x_display, xwindow->window, + &attr); + + xwindow->width = attr.width; + xwindow->height = attr.height; + xwindow->internal = FALSE; + if (!pvrvideosink->have_render_rect) { + pvrvideosink->render_rect.x = pvrvideosink->render_rect.y = 0; + pvrvideosink->render_rect.w = attr.width; + pvrvideosink->render_rect.h = attr.height; + } + XSelectInput (pvrvideosink->dcontext->x_display, xwindow->window, + ExposureMask | StructureNotifyMask); + + XSetWindowBackgroundPixmap (pvrvideosink->dcontext->x_display, + xwindow->window, None); + + XMapWindow (pvrvideosink->dcontext->x_display, xwindow->window); + xwindow->gc = XCreateGC (pvrvideosink->dcontext->x_display, + xwindow->window, 0, NULL); + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + + glerror = + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_CreateWindowDrawable (pvrvideosink->dcontext-> + display_handle, pvrvideosink->dcontext->glconfig, + &(pvrvideosink->dcontext->drawable_handle), + (NativeWindowType) xwindow->window, + &(pvrvideosink->dcontext->rotation)); + + if (glerror != WSEGL_SUCCESS) { + GST_ERROR_OBJECT (pvrvideosink, "Error creating drawable"); + return; + } + glerror = + pvrvideosink->dcontext-> + wsegl_table->pfnWSEGL_GetDrawableParameters (pvrvideosink->dcontext-> + drawable_handle, &source_params, &pvrvideosink->render_params); + + client_mem_info = + (PVRSRV_CLIENT_MEM_INFO *) pvrvideosink->render_params.hPrivateData; + PVR2DMEMINFO_INITIALISE (&pvrvideosink->dcontext->dst_mem, client_mem_info); + } + + if (xwindow) + pvrvideosink->xwindow = xwindow; + + g_mutex_unlock (pvrvideosink->flow_lock); +} + +static void +gst_pvrvideosink_expose (GstXOverlay * overlay) +{ + GstPVRVideoSink *pvrvideosink = GST_PVRVIDEOSINK (overlay); + + gst_pvrvideosink_blit (pvrvideosink, NULL); +} + +static void +gst_pvrvideosink_set_event_handling (GstXOverlay * overlay, + gboolean handle_events) +{ + GstPVRVideoSink *pvrvideosink = GST_PVRVIDEOSINK (overlay); + + g_mutex_lock (pvrvideosink->flow_lock); + + if (G_UNLIKELY (!pvrvideosink->xwindow)) { + g_mutex_unlock (pvrvideosink->flow_lock); + return; + } + + g_mutex_lock (pvrvideosink->dcontext->x_lock); + + XSelectInput (pvrvideosink->dcontext->x_display, + pvrvideosink->xwindow->window, ExposureMask | StructureNotifyMask); + + g_mutex_unlock (pvrvideosink->dcontext->x_lock); + + g_mutex_unlock (pvrvideosink->flow_lock); +} + +static void +gst_pvrvideosink_set_render_rectangle (GstXOverlay * overlay, gint x, gint y, + gint width, gint height) +{ + GstPVRVideoSink *pvrvideosink = GST_PVRVIDEOSINK (overlay); + + /* FIXME: how about some locking? */ + if (width >= 0 && height >= 0) { + pvrvideosink->render_rect.x = x; + pvrvideosink->render_rect.y = y; + pvrvideosink->render_rect.w = width; + pvrvideosink->render_rect.h = height; + pvrvideosink->have_render_rect = TRUE; + } else { + pvrvideosink->render_rect.x = 0; + pvrvideosink->render_rect.y = 0; + pvrvideosink->render_rect.w = pvrvideosink->xwindow->width; + pvrvideosink->render_rect.h = pvrvideosink->xwindow->height; + pvrvideosink->have_render_rect = FALSE; + } +} + +static void +gst_pvrvideosink_xoverlay_init (GstXOverlayClass * iface) +{ + iface->set_window_handle = gst_pvrvideosink_set_window_handle; + iface->expose = gst_pvrvideosink_expose; + iface->handle_events = gst_pvrvideosink_set_event_handling; + iface->set_render_rectangle = gst_pvrvideosink_set_render_rectangle; +} + +/* =========================================== */ +/* */ +/* Init & Class init */ +/* */ +/* =========================================== */ + +static void +gst_pvrvideosink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstPVRVideoSink *pvrvideosink; + + g_return_if_fail (GST_IS_PVRVIDEOSINK (object)); + + pvrvideosink = GST_PVRVIDEOSINK (object); + + switch (prop_id) { + case PROP_FORCE_ASPECT_RATIO: + pvrvideosink->keep_aspect = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_pvrvideosink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstPVRVideoSink *pvrvideosink; + + g_return_if_fail (GST_IS_PVRVIDEOSINK (object)); + + pvrvideosink = GST_PVRVIDEOSINK (object); + + switch (prop_id) { + case PROP_FORCE_ASPECT_RATIO: + g_value_set_boolean (value, pvrvideosink->keep_aspect); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_pvrvideosink_dcontext_clear (GstPVRVideoSink * pvrvideosink) +{ + GstDrawContext *dcontext; + + GST_OBJECT_LOCK (pvrvideosink); + if (!pvrvideosink->dcontext) { + GST_OBJECT_UNLOCK (pvrvideosink); + return; + } + + dcontext = pvrvideosink->dcontext; + pvrvideosink->dcontext = NULL; + GST_OBJECT_UNLOCK (pvrvideosink); + + if (dcontext->p_blt_info) + g_free (dcontext->p_blt_info); + + g_mutex_lock (dcontext->x_lock); + XCloseDisplay (dcontext->x_display); + g_mutex_unlock (dcontext->x_lock); + g_mutex_free (dcontext->x_lock); + + g_free (dcontext); +} + +static void +gst_pvrvideosink_reset (GstPVRVideoSink * pvrvideosink) +{ + GThread *thread; + + GST_OBJECT_LOCK (pvrvideosink); + pvrvideosink->running = FALSE; + thread = pvrvideosink->event_thread; + pvrvideosink->event_thread = NULL; + GST_OBJECT_UNLOCK (pvrvideosink); + + if (thread) + g_thread_join (thread); + + if (pvrvideosink->current_buffer) { + gst_buffer_unref (pvrvideosink->current_buffer); + pvrvideosink->current_buffer = NULL; + } + + g_mutex_lock (pvrvideosink->pool_lock); + pvrvideosink->pool_invalid = TRUE; + if (pvrvideosink->buffer_pool) { + gst_pvr_bufferpool_stop_running (pvrvideosink->buffer_pool, TRUE); + pvrvideosink->buffer_pool = NULL; + } + g_mutex_unlock (pvrvideosink->pool_lock); + memset (&pvrvideosink->render_params, 0, sizeof (WSEGLDrawableParams)); + + pvrvideosink->render_rect.x = pvrvideosink->render_rect.y = 0; + pvrvideosink->render_rect.w = pvrvideosink->render_rect.h = 0; + pvrvideosink->have_render_rect = FALSE; + + gst_pvrvideosink_destroy_drawable (pvrvideosink); + + if (pvrvideosink->xwindow) { + gst_pvrvideosink_xwindow_destroy (pvrvideosink, pvrvideosink->xwindow); + pvrvideosink->xwindow = NULL; + } + + gst_pvrvideosink_dcontext_clear (pvrvideosink); +} + +static void +gst_pvrvideosink_finalize (GObject * object) +{ + GstPVRVideoSink *pvrvideosink; + + pvrvideosink = GST_PVRVIDEOSINK (object); + + gst_pvrvideosink_reset (pvrvideosink); + + if (pvrvideosink->flow_lock) { + g_mutex_free (pvrvideosink->flow_lock); + pvrvideosink->flow_lock = NULL; + } + if (pvrvideosink->pool_lock) { + g_mutex_free (pvrvideosink->pool_lock); + pvrvideosink->pool_lock = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_pvrvideosink_init (GstPVRVideoSink * pvrvideosink) +{ + pvrvideosink->running = FALSE; + + pvrvideosink->fps_n = 0; + pvrvideosink->fps_d = 1; + + pvrvideosink->flow_lock = g_mutex_new (); + pvrvideosink->pool_lock = g_mutex_new (); + pvrvideosink->buffer_pool = NULL; + pvrvideosink->pool_invalid = TRUE; + + pvrvideosink->keep_aspect = FALSE; + pvrvideosink->current_caps = NULL; + pvrvideosink->num_buffers = DEFAULT_QUEUE_SIZE; + pvrvideosink->num_buffers_can_change = TRUE; + pvrvideosink->min_queued_bufs = DEFAULT_MIN_QUEUED_BUFS; + pvrvideosink->dcontext = NULL; + pvrvideosink->xwindow = NULL; + pvrvideosink->redraw_borders = TRUE; + pvrvideosink->current_buffer = NULL; + pvrvideosink->event_thread = NULL; + memset (&pvrvideosink->render_params, 0, sizeof (WSEGLDrawableParams)); +} + +static void +gst_pvrvideosink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, + "PVR Video sink", "Sink/Video", + "A PVR videosink", + "Luciana Fujii Pontello finalize = gst_pvrvideosink_finalize; + gobject_class->set_property = gst_pvrvideosink_set_property; + gobject_class->get_property = gst_pvrvideosink_get_property; + + g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO, + g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio", + "When enabled, reverse caps negotiation (scaling) will respect " + "original aspect ratio", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = gst_pvrvideosink_change_state; + + gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_pvrvideosink_setcaps); + gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_pvrvideosink_getcaps); + gstbasesink_class->buffer_alloc = + GST_DEBUG_FUNCPTR (gst_pvrvideosink_buffer_alloc); + gstbasesink_class->get_times = GST_DEBUG_FUNCPTR (gst_pvrvideosink_get_times); + + gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_pvrvideosink_show_frame); +} + +/* ============================================================= */ +/* */ +/* Public Methods */ +/* */ +/* ============================================================= */ + +/* =========================================== */ +/* */ +/* Object typing & Creation */ +/* */ +/* =========================================== */ + +GType +gst_pvrvideosink_get_type (void) +{ + static GType pvrvideosink_type = 0; + + if (!pvrvideosink_type) { + static const GTypeInfo pvrvideosink_info = { + sizeof (GstPVRVideoSinkClass), + gst_pvrvideosink_base_init, + NULL, + (GClassInitFunc) gst_pvrvideosink_class_init, + NULL, + NULL, + sizeof (GstPVRVideoSink), 0, (GInstanceInitFunc) gst_pvrvideosink_init, + }; + static const GInterfaceInfo iface_info = { + (GInterfaceInitFunc) gst_pvrvideosink_interface_init, NULL, NULL, + }; + static const GInterfaceInfo overlay_info = { + (GInterfaceInitFunc) gst_pvrvideosink_xoverlay_init, NULL, NULL, + }; + + pvrvideosink_type = g_type_register_static (GST_TYPE_VIDEO_SINK, + "GstPVRVideoSink", &pvrvideosink_info, 0); + + g_type_add_interface_static (pvrvideosink_type, + GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info); + g_type_add_interface_static (pvrvideosink_type, GST_TYPE_X_OVERLAY, + &overlay_info); + } + + return pvrvideosink_type; +} diff --git a/sys/pvr2d/gstpvrvideosink.h b/sys/pvr2d/gstpvrvideosink.h new file mode 100644 index 0000000..45f6a12 --- /dev/null +++ b/sys/pvr2d/gstpvrvideosink.h @@ -0,0 +1,157 @@ +/* GStreamer + * + * Copyright (C) 2011 - Collabora Ltda + * Copyright (C) 2011 - Texas Instruments + * @author: Luciana Fujii Pontello + * + * This library 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 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_PVRVIDEOSINK_H__ +#define __GST_PVRVIDEOSINK_H__ + +#include +#include +#include "gstpvrbufferpool.h" + +#include +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_PVRVIDEOSINK (gst_pvrvideosink_get_type()) +#define GST_PVRVIDEOSINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_PVRVIDEOSINK, GstPVRVideoSink)) +#define GST_PVRVIDEOSINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_PVRVIDEOSINK, GstPVRVideoSinkClass)) +#define GST_IS_PVRVIDEOSINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_PVRVIDEOSINK)) +#define GST_IS_PVRVIDEOSINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_PVRVIDEOSINK)) +typedef struct _GstDrawContext GstDrawContext; +typedef struct _GstXWindow GstXWindow; + +typedef struct _GstPVRVideoBuffer GstPVRVideoBuffer; +typedef struct _GstPVRVideoBufferClass GstPVRVideoBufferClass; + +typedef struct _GstPVRVideoSink GstPVRVideoSink; +typedef struct _GstPVRVideoSinkClass GstPVRVideoSinkClass; + +struct _GstDrawContext +{ + /* PVR2D */ + PVR2DCONTEXTHANDLE pvr_context; + PVR2DMEMINFO dst_mem; + PPVR2D_3DBLT_EXT p_blt_info; + PPVR2DBLTINFO p_blt2d_info; + + long stride; + PVR2DFORMAT display_format; + long display_width; + long display_height; + + /* WSEGL */ + const WSEGL_FunctionTable *wsegl_table; + + WSEGLDisplayHandle display_handle; + const WSEGLCaps **glcaps; + WSEGLConfig *glconfig; + WSEGLDrawableHandle drawable_handle; + WSEGLRotationAngle rotation; + + GMutex *x_lock; + Display *x_display; + gint screen_num; + gulong black; +}; + +struct _GstXWindow +{ + Window window; + gint width, height; + gboolean internal; + GC gc; +}; + + +/** + * GstPVRVideoSink: + * @running: used to inform @event_thread if it should run/shutdown + * @fps_n: the framerate fraction numerator + * @fps_d: the framerate fraction denominator + * @flow_lock: used to protect data flow routines from external calls such as + * events from @event_thread or methods from the #GstXOverlay interface + * @pool_lock: used to protect the buffer pool + * @x_lock: used to protect X calls + * @buffer_pool: a list of #GstPVRVideoBuffer that could be reused at next buffer + * allocation call + * @keep_aspect: used to remember if reverse negotiation scaling should respect + * aspect ratio + * + * The #GstPVRVideoSink data structure. + */ +struct _GstPVRVideoSink +{ + /* Our element stuff */ + GstVideoSink videosink; + + gboolean running; + + /* Framerate numerator and denominator */ + GstVideoFormat format; + gint fps_n; + gint fps_d; + gint rowstride; + + GThread *event_thread; + GMutex *flow_lock; + + GMutex *pool_lock; + GstPvrBufferPool *buffer_pool; + gboolean pool_invalid; + gint num_buffers; + gboolean num_buffers_can_change; + gint min_queued_bufs; + + gboolean keep_aspect; + + GstCaps *current_caps; + GstDrawContext *dcontext; + GstXWindow *xwindow; + + GstVideoRectangle render_rect; + gboolean have_render_rect; + + gchar *media_title; + gboolean redraw_borders; + GstBuffer *current_buffer; + + WSEGLDrawableParams render_params; +}; + +struct _GstPVRVideoSinkClass +{ + GstVideoSinkClass parent_class; +}; + +GType gst_pvrvideosink_get_type (void); + +G_END_DECLS +#endif /* __GST_PVRVIDEOSINK_H__ */ diff --git a/sys/qtwrapper/Makefile.in b/sys/qtwrapper/Makefile.in index 393840d..9bb30b6 100644 --- a/sys/qtwrapper/Makefile.in +++ b/sys/qtwrapper/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +119,8 @@ am_libgstqtwrapper_la_OBJECTS = libgstqtwrapper_la-qtwrapper.lo \ libgstqtwrapper_la-videodecoders.lo \ libgstqtwrapper_la-imagedescription.lo libgstqtwrapper_la_OBJECTS = $(am_libgstqtwrapper_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstqtwrapper_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +136,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstqtwrapper_la_SOURCES) DIST_SOURCES = $(libgstqtwrapper_la_SOURCES) @@ -155,7 +162,6 @@ 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@ @@ -173,7 +179,6 @@ 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@ @@ -208,6 +213,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -247,6 +253,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -264,6 +271,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -272,13 +280,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -303,13 +314,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -357,6 +369,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -388,8 +401,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -413,6 +430,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -437,10 +456,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -452,6 +475,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -476,6 +503,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -511,7 +539,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -623,7 +650,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstqtwrapper.la: $(libgstqtwrapper_la_OBJECTS) $(libgstqtwrapper_la_DEPENDENCIES) +libgstqtwrapper.la: $(libgstqtwrapper_la_OBJECTS) $(libgstqtwrapper_la_DEPENDENCIES) $(EXTRA_libgstqtwrapper_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstqtwrapper_la_LINK) -rpath $(plugindir) $(libgstqtwrapper_la_OBJECTS) $(libgstqtwrapper_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -642,74 +669,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstqtwrapper_la-qtwrapper.lo: qtwrapper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-qtwrapper.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-qtwrapper.Tpo -c -o libgstqtwrapper_la-qtwrapper.lo `test -f 'qtwrapper.c' || echo '$(srcdir)/'`qtwrapper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-qtwrapper.Tpo $(DEPDIR)/libgstqtwrapper_la-qtwrapper.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtwrapper.c' object='libgstqtwrapper_la-qtwrapper.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtwrapper.c' object='libgstqtwrapper_la-qtwrapper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-qtwrapper.lo `test -f 'qtwrapper.c' || echo '$(srcdir)/'`qtwrapper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-qtwrapper.lo `test -f 'qtwrapper.c' || echo '$(srcdir)/'`qtwrapper.c libgstqtwrapper_la-qtutils.lo: qtutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-qtutils.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-qtutils.Tpo -c -o libgstqtwrapper_la-qtutils.lo `test -f 'qtutils.c' || echo '$(srcdir)/'`qtutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-qtutils.Tpo $(DEPDIR)/libgstqtwrapper_la-qtutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtutils.c' object='libgstqtwrapper_la-qtutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtutils.c' object='libgstqtwrapper_la-qtutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-qtutils.lo `test -f 'qtutils.c' || echo '$(srcdir)/'`qtutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-qtutils.lo `test -f 'qtutils.c' || echo '$(srcdir)/'`qtutils.c libgstqtwrapper_la-codecmapping.lo: codecmapping.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-codecmapping.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-codecmapping.Tpo -c -o libgstqtwrapper_la-codecmapping.lo `test -f 'codecmapping.c' || echo '$(srcdir)/'`codecmapping.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-codecmapping.Tpo $(DEPDIR)/libgstqtwrapper_la-codecmapping.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codecmapping.c' object='libgstqtwrapper_la-codecmapping.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='codecmapping.c' object='libgstqtwrapper_la-codecmapping.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-codecmapping.lo `test -f 'codecmapping.c' || echo '$(srcdir)/'`codecmapping.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-codecmapping.lo `test -f 'codecmapping.c' || echo '$(srcdir)/'`codecmapping.c libgstqtwrapper_la-audiodecoders.lo: audiodecoders.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-audiodecoders.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-audiodecoders.Tpo -c -o libgstqtwrapper_la-audiodecoders.lo `test -f 'audiodecoders.c' || echo '$(srcdir)/'`audiodecoders.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-audiodecoders.Tpo $(DEPDIR)/libgstqtwrapper_la-audiodecoders.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiodecoders.c' object='libgstqtwrapper_la-audiodecoders.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiodecoders.c' object='libgstqtwrapper_la-audiodecoders.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-audiodecoders.lo `test -f 'audiodecoders.c' || echo '$(srcdir)/'`audiodecoders.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-audiodecoders.lo `test -f 'audiodecoders.c' || echo '$(srcdir)/'`audiodecoders.c libgstqtwrapper_la-videodecoders.lo: videodecoders.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-videodecoders.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-videodecoders.Tpo -c -o libgstqtwrapper_la-videodecoders.lo `test -f 'videodecoders.c' || echo '$(srcdir)/'`videodecoders.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-videodecoders.Tpo $(DEPDIR)/libgstqtwrapper_la-videodecoders.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videodecoders.c' object='libgstqtwrapper_la-videodecoders.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videodecoders.c' object='libgstqtwrapper_la-videodecoders.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-videodecoders.lo `test -f 'videodecoders.c' || echo '$(srcdir)/'`videodecoders.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-videodecoders.lo `test -f 'videodecoders.c' || echo '$(srcdir)/'`videodecoders.c libgstqtwrapper_la-imagedescription.lo: imagedescription.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -MT libgstqtwrapper_la-imagedescription.lo -MD -MP -MF $(DEPDIR)/libgstqtwrapper_la-imagedescription.Tpo -c -o libgstqtwrapper_la-imagedescription.lo `test -f 'imagedescription.c' || echo '$(srcdir)/'`imagedescription.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstqtwrapper_la-imagedescription.Tpo $(DEPDIR)/libgstqtwrapper_la-imagedescription.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imagedescription.c' object='libgstqtwrapper_la-imagedescription.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='imagedescription.c' object='libgstqtwrapper_la-imagedescription.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-imagedescription.lo `test -f 'imagedescription.c' || echo '$(srcdir)/'`imagedescription.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstqtwrapper_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqtwrapper_la_CFLAGS) $(CFLAGS) -c -o libgstqtwrapper_la-imagedescription.lo `test -f 'imagedescription.c' || echo '$(srcdir)/'`imagedescription.c mostlyclean-libtool: -rm -f *.lo @@ -816,10 +834,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/qtwrapper/audiodecoders.c b/sys/qtwrapper/audiodecoders.c index 718d30c..abb2541 100644 --- a/sys/qtwrapper/audiodecoders.c +++ b/sys/qtwrapper/audiodecoders.c @@ -62,6 +62,8 @@ #define QTWRAPPER_ADEC_PARAMS_QDATA g_quark_from_static_string("qtwrapper-adec-params") +#define NO_MORE_INPUT_DATA 42 + static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, @@ -745,9 +747,9 @@ process_buffer_cb (ComponentInstance inAudioConverter, return noErr; } - GST_LOG_OBJECT (qtwrapper, "No remaining input data, returning 42 for hack"); + GST_LOG_OBJECT (qtwrapper, "No remaining input data, returning NO_MORE_INPUT_DATA"); - return 42; + return NO_MORE_INPUT_DATA; } static GstFlowReturn @@ -805,8 +807,7 @@ qtwrapper_audio_decoder_chain (GstPad * pad, GstBuffer * buf) (SCAudioInputDataProc) process_buffer_cb, qtwrapper, (UInt32 *) & outsamples, qtwrapper->bufferlist, NULL); - /* TODO: What's this '42' crap?? It does seem to be needed, though. */ - if ((status != noErr) && (status != 42)) { + if ((status != noErr) && (status != NO_MORE_INPUT_DATA)) { if (status < 0) GST_WARNING_OBJECT (qtwrapper, "Error in SCAudioFillBuffer() : %d", (gint32) status); @@ -864,7 +865,7 @@ qtwrapper_audio_decoder_chain (GstPad * pad, GstBuffer * buf) GST_DEBUG_OBJECT (qtwrapper, "Read %d bytes, could have read up to %d bytes", realbytes, savedbytes); - } while (realbytes == savedbytes); + } while (status != NO_MORE_INPUT_DATA); beach: gst_buffer_unref (buf); @@ -969,8 +970,7 @@ qtwrapper_audio_decoder_base_init (QTWrapperAudioDecoderClass * klass) klass->sinktempl = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, params->sinkcaps); gst_element_class_add_pad_template (element_class, klass->sinktempl); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); /* Store class-global values */ klass->componentSubType = desc.componentSubType; diff --git a/sys/qtwrapper/videodecoders.c b/sys/qtwrapper/videodecoders.c index b2e58e9..c532ef9 100644 --- a/sys/qtwrapper/videodecoders.c +++ b/sys/qtwrapper/videodecoders.c @@ -171,8 +171,7 @@ qtwrapper_video_decoder_base_init (QTWrapperVideoDecoderClass * klass) GST_PAD_ALWAYS, params->sinkcaps); gst_element_class_add_pad_template (element_class, klass->sinktempl); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); /* Store class-global values */ klass->component = params->component; diff --git a/sys/shm/Makefile.in b/sys/shm/Makefile.in index 6c6d72c..ed2db49 100644 --- a/sys/shm/Makefile.in +++ b/sys/shm/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -49,6 +49,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -107,6 +108,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) libgstshm_la_DEPENDENCIES = @@ -114,8 +121,8 @@ am_libgstshm_la_OBJECTS = libgstshm_la-shmpipe.lo \ libgstshm_la-shmalloc.lo libgstshm_la-gstshm.lo \ libgstshm_la-gstshmsrc.lo libgstshm_la-gstshmsink.lo libgstshm_la_OBJECTS = $(am_libgstshm_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstshm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -131,21 +138,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstshm_la_SOURCES) DIST_SOURCES = $(libgstshm_la_SOURCES) @@ -157,7 +164,6 @@ 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@ @@ -175,7 +181,6 @@ 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@ @@ -210,6 +215,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -249,6 +255,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -266,6 +273,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -274,13 +282,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -305,13 +316,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -359,6 +371,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -390,8 +403,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -415,6 +432,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -439,10 +458,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -454,6 +477,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -478,6 +505,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -513,7 +541,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -568,6 +595,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -608,7 +636,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstshm.la: $(libgstshm_la_OBJECTS) $(libgstshm_la_DEPENDENCIES) +libgstshm.la: $(libgstshm_la_OBJECTS) $(libgstshm_la_DEPENDENCIES) $(EXTRA_libgstshm_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstshm_la_LINK) -rpath $(plugindir) $(libgstshm_la_OBJECTS) $(libgstshm_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -626,66 +654,58 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstshm_la-shmpipe.lo: shmpipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -MT libgstshm_la-shmpipe.lo -MD -MP -MF $(DEPDIR)/libgstshm_la-shmpipe.Tpo -c -o libgstshm_la-shmpipe.lo `test -f 'shmpipe.c' || echo '$(srcdir)/'`shmpipe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshm_la-shmpipe.Tpo $(DEPDIR)/libgstshm_la-shmpipe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shmpipe.c' object='libgstshm_la-shmpipe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shmpipe.c' object='libgstshm_la-shmpipe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-shmpipe.lo `test -f 'shmpipe.c' || echo '$(srcdir)/'`shmpipe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-shmpipe.lo `test -f 'shmpipe.c' || echo '$(srcdir)/'`shmpipe.c libgstshm_la-shmalloc.lo: shmalloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -MT libgstshm_la-shmalloc.lo -MD -MP -MF $(DEPDIR)/libgstshm_la-shmalloc.Tpo -c -o libgstshm_la-shmalloc.lo `test -f 'shmalloc.c' || echo '$(srcdir)/'`shmalloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshm_la-shmalloc.Tpo $(DEPDIR)/libgstshm_la-shmalloc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shmalloc.c' object='libgstshm_la-shmalloc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shmalloc.c' object='libgstshm_la-shmalloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-shmalloc.lo `test -f 'shmalloc.c' || echo '$(srcdir)/'`shmalloc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-shmalloc.lo `test -f 'shmalloc.c' || echo '$(srcdir)/'`shmalloc.c libgstshm_la-gstshm.lo: gstshm.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -MT libgstshm_la-gstshm.lo -MD -MP -MF $(DEPDIR)/libgstshm_la-gstshm.Tpo -c -o libgstshm_la-gstshm.lo `test -f 'gstshm.c' || echo '$(srcdir)/'`gstshm.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshm_la-gstshm.Tpo $(DEPDIR)/libgstshm_la-gstshm.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshm.c' object='libgstshm_la-gstshm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshm.c' object='libgstshm_la-gstshm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshm.lo `test -f 'gstshm.c' || echo '$(srcdir)/'`gstshm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshm.lo `test -f 'gstshm.c' || echo '$(srcdir)/'`gstshm.c libgstshm_la-gstshmsrc.lo: gstshmsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -MT libgstshm_la-gstshmsrc.lo -MD -MP -MF $(DEPDIR)/libgstshm_la-gstshmsrc.Tpo -c -o libgstshm_la-gstshmsrc.lo `test -f 'gstshmsrc.c' || echo '$(srcdir)/'`gstshmsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshm_la-gstshmsrc.Tpo $(DEPDIR)/libgstshm_la-gstshmsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshmsrc.c' object='libgstshm_la-gstshmsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshmsrc.c' object='libgstshm_la-gstshmsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshmsrc.lo `test -f 'gstshmsrc.c' || echo '$(srcdir)/'`gstshmsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshmsrc.lo `test -f 'gstshmsrc.c' || echo '$(srcdir)/'`gstshmsrc.c libgstshm_la-gstshmsink.lo: gstshmsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -MT libgstshm_la-gstshmsink.lo -MD -MP -MF $(DEPDIR)/libgstshm_la-gstshmsink.Tpo -c -o libgstshm_la-gstshmsink.lo `test -f 'gstshmsink.c' || echo '$(srcdir)/'`gstshmsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshm_la-gstshmsink.Tpo $(DEPDIR)/libgstshm_la-gstshmsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshmsink.c' object='libgstshm_la-gstshmsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshmsink.c' object='libgstshm_la-gstshmsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshmsink.lo `test -f 'gstshmsink.c' || echo '$(srcdir)/'`gstshmsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshm_la_CFLAGS) $(CFLAGS) -c -o libgstshm_la-gstshmsink.lo `test -f 'gstshmsink.c' || echo '$(srcdir)/'`gstshmsink.c mostlyclean-libtool: -rm -f *.lo @@ -792,10 +812,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/shm/gstshmsink.c b/sys/shm/gstshmsink.c index 02a67a8..1b98e47 100644 --- a/sys/shm/gstshmsink.c +++ b/sys/shm/gstshmsink.c @@ -45,7 +45,8 @@ enum PROP_SOCKET_PATH, PROP_PERMS, PROP_SHM_SIZE, - PROP_WAIT_FOR_CONNECTION + PROP_WAIT_FOR_CONNECTION, + PROP_BUFFER_TIME }; struct GstShmClient @@ -95,8 +96,7 @@ gst_shm_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_add_static_pad_template (element_class, &sinktemplate); gst_element_class_set_details_simple (element_class, "Shared Memory Sink", @@ -118,11 +118,9 @@ static void gst_shm_sink_class_init (GstShmSinkClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; GstBaseSinkClass *gstbasesink_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; gstbasesink_class = (GstBaseSinkClass *) klass; gobject_class->finalize = gst_shm_sink_finalize; @@ -164,6 +162,13 @@ gst_shm_sink_class_init (GstShmSinkClass * klass) DEFAULT_WAIT_FOR_CONNECTION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_BUFFER_TIME, + g_param_spec_uint64 ("buffer-time", + "Buffer Time of the shm buffer", + "Maximum Size of the shm buffer in nanoseconds (-1 to disable)", + 0, G_MAXUINT64, GST_CLOCK_TIME_NONE, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + signals[SIGNAL_CLIENT_CONNECTED] = g_signal_new ("client-connected", GST_TYPE_SHM_SINK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); @@ -231,6 +236,12 @@ gst_shm_sink_set_property (GObject * object, guint prop_id, GST_OBJECT_UNLOCK (object); g_cond_broadcast (self->cond); break; + case PROP_BUFFER_TIME: + GST_OBJECT_LOCK (object); + self->buffer_time = g_value_get_uint64 (value); + GST_OBJECT_UNLOCK (object); + g_cond_broadcast (self->cond); + break; default: break; } @@ -265,6 +276,9 @@ gst_shm_sink_get_property (GObject * object, guint prop_id, case PROP_WAIT_FOR_CONNECTION: g_value_set_boolean (value, self->wait_for_connection); break; + case PROP_BUFFER_TIME: + g_value_set_uint64 (value, self->buffer_time); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -360,6 +374,24 @@ gst_shm_sink_stop (GstBaseSink * bsink) return TRUE; } +static gboolean +gst_shm_sink_can_render (GstShmSink * self, GstClockTime time) +{ + ShmBuffer *b; + + if (time == GST_CLOCK_TIME_NONE || self->buffer_time == GST_CLOCK_TIME_NONE) + return TRUE; + + b = sp_writer_get_pending_buffers (self->pipe); + for (; b != NULL; b = sp_writer_get_next_buffer (b)) { + GstClockTime t = sp_writer_buf_get_tag (b); + if (GST_CLOCK_DIFF (time, t) > self->buffer_time) + return FALSE; + } + + return TRUE; +} + static GstFlowReturn gst_shm_sink_render (GstBaseSink * bsink, GstBuffer * buf) { @@ -375,8 +407,16 @@ gst_shm_sink_render (GstBaseSink * bsink, GstBuffer * buf) } } + while (!gst_shm_sink_can_render (self, GST_BUFFER_TIMESTAMP (buf))) { + g_cond_wait (self->cond, GST_OBJECT_GET_LOCK (self)); + if (self->unlock) { + GST_OBJECT_UNLOCK (self); + return GST_FLOW_WRONG_STATE; + } + } + rv = sp_writer_send_buf (self->pipe, (char *) GST_BUFFER_DATA (buf), - GST_BUFFER_SIZE (buf)); + GST_BUFFER_SIZE (buf), GST_BUFFER_TIMESTAMP (buf)); if (rv == -1) { ShmBlock *block = NULL; @@ -398,10 +438,10 @@ gst_shm_sink_render (GstBaseSink * bsink, GstBuffer * buf) } } - shmbuf = sp_writer_block_get_buf (block); memcpy (shmbuf, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); - sp_writer_send_buf (self->pipe, shmbuf, GST_BUFFER_SIZE (buf)); + sp_writer_send_buf (self->pipe, shmbuf, GST_BUFFER_SIZE (buf), + GST_BUFFER_TIMESTAMP (buf)); sp_writer_free_block (block); } @@ -471,12 +511,15 @@ pollthread_func (gpointer data) { GstShmSink *self = GST_SHM_SINK (data); GList *item; + GstClockTime timeout = GST_CLOCK_TIME_NONE; while (!self->stop) { - if (gst_poll_wait (self->poll, GST_CLOCK_TIME_NONE) < 0) + if (gst_poll_wait (self->poll, timeout) < 0) return NULL; + timeout = GST_CLOCK_TIME_NONE; + if (self->stop) return NULL; @@ -520,6 +563,7 @@ pollthread_func (gpointer data) 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. */ + timeout = 0; continue; } diff --git a/sys/shm/gstshmsink.h b/sys/shm/gstshmsink.h index bc6da74..83dad39 100644 --- a/sys/shm/gstshmsink.h +++ b/sys/shm/gstshmsink.h @@ -61,6 +61,7 @@ struct _GstShmSink gboolean wait_for_connection; gboolean stop; gboolean unlock; + GstClockTime buffer_time; GCond *cond; }; diff --git a/sys/shm/gstshmsrc.c b/sys/shm/gstshmsrc.c index 0e960c3..cff5d46 100644 --- a/sys/shm/gstshmsrc.c +++ b/sys/shm/gstshmsrc.c @@ -85,14 +85,13 @@ gst_shm_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_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "Shared Memory Source", "Source", "Receive data from the sharem memory sink", - "Olivier Crete "); } static void diff --git a/sys/shm/shmpipe.c b/sys/shm/shmpipe.c index 6465e38..583aa38 100644 --- a/sys/shm/shmpipe.c +++ b/sys/shm/shmpipe.c @@ -78,7 +78,6 @@ enum }; typedef struct _ShmArea ShmArea; -typedef struct _ShmBuffer ShmBuffer; struct _ShmArea { @@ -112,6 +111,8 @@ struct _ShmBuffer int num_clients; int clients[0]; + + uint64_t tag; }; @@ -262,7 +263,7 @@ static ShmArea * sp_open_shm (char *path, int id, mode_t perms, size_t size) { ShmArea *area = spalloc_new (ShmArea); - char tmppath[PATH_MAX]; + char tmppath[32]; int flags; int prot; int i = 0; @@ -285,7 +286,7 @@ sp_open_shm (char *path, int id, mode_t perms, size_t size) area->shm_fd = shm_open (path, flags, perms); } else { do { - snprintf (tmppath, PATH_MAX, "/shmpipe.5%d.%5d", getpid (), i++); + snprintf (tmppath, sizeof (tmppath), "/shmpipe.%5d.%5d", getpid (), i++); area->shm_fd = shm_open (tmppath, flags, perms); } while (area->shm_fd < 0 && errno == EEXIST); } @@ -542,7 +543,7 @@ sp_writer_free_block (ShmBlock * block) /* Returns the number of client this has successfully been sent to */ int -sp_writer_send_buf (ShmPipe * self, char *buf, size_t size) +sp_writer_send_buf (ShmPipe * self, char *buf, size_t size, uint64_t tag) { ShmArea *area = NULL; unsigned long offset = 0; @@ -577,6 +578,7 @@ sp_writer_send_buf (ShmPipe * self, char *buf, size_t size) sb->size = size; sb->num_clients = self->num_clients; sb->ablock = ablock; + sb->tag = tag; for (client = self->clients; client; client = client->next) { struct CommandBuffer cb = { 0 }; @@ -621,7 +623,7 @@ long int sp_client_recv (ShmPipe * self, char **buf) { char *area_name = NULL; - ShmArea *newarea, *oldarea; + ShmArea *newarea; ShmArea *area; struct CommandBuffer cb; int retval; @@ -648,13 +650,8 @@ sp_client_recv (ShmPipe * self, char **buf) if (!newarea) return -4; - oldarea = self->shm_area; newarea->next = self->shm_area; self->shm_area = newarea; - /* - if (oldarea) - sp_shm_area_dec (self, oldarea); - */ break; case COMMAND_CLOSE_SHM_AREA: @@ -897,3 +894,21 @@ sp_writer_get_path (ShmPipe * pipe) { return pipe->socket_path; } + +ShmBuffer * +sp_writer_get_pending_buffers (ShmPipe * self) +{ + return self->buffers; +} + +ShmBuffer * +sp_writer_get_next_buffer (ShmBuffer * buffer) +{ + return buffer->next; +} + +uint64_t +sp_writer_buf_get_tag (ShmBuffer * buffer) +{ + return buffer->tag; +} diff --git a/sys/shm/shmpipe.h b/sys/shm/shmpipe.h index c4475b8..eef8877 100644 --- a/sys/shm/shmpipe.h +++ b/sys/shm/shmpipe.h @@ -23,35 +23,39 @@ */ /* - * None of this code is thread safe, if you want to use it in a multi-threaded - * context, please protect it with a mutex. + * None of this code is thread safe, if you want to use it in a + * multi-threaded context, please protect it with a mutex. * - * First, create a writer with sp_writer_create() - * And selectes() on the socket from sp_get_fd() - * If the socket is closed or there are errors from any function, the app - * should call sp_close() and assume the writer is dead - * The server calls sp_writer_accept_client() when there is something to read - * from the server fd - * It then needs to select() on the socket from sp_writer_get_client_fd() - * If it gets an error on that socket, it call sp_writer_close_client(). - * If there is something to read, it calls sp_writer_recv(). + * First, create a writer with sp_writer_create(), then select() on + * the socket returned by sp_get_fd(). If the socket is closed or any + * function returns an error, the app should call sp_close() and + * assume the other side is dead. The writer calls + * sp_writer_accept_client() when there is something to read from the + * main server fd. This returns a new ShmClient (representing a client + * connection), the writer needs to do a select() on the socket + * returned by sp_writer_get_client_fd(). If it gets an error on that + * socket, it calls sp_writer_close_client(). If there is something to + * read, it calls sp_writer_recv(). * - * The writer allocates buffers with sp_writer_alloc_block(), - * writes something in the buffer (retrieved with sp_writer_block_get_buf(), - * then calls sp_writer_send_buf() to send the buffer or a subsection to - * the other side. When it is done with the block, it calls - * sp_writer_free_block(). - * If alloc fails, then the server must wait for events from the clients before - * trying again. + * The writer allocates a block containing a free buffer with + * sp_writer_alloc_block(), then writes something in the buffer + * (retrieved with sp_writer_block_get_buf(), then calls + * sp_writer_send_buf() to send the buffer or a subsection to the + * other side. When it is done with the block, it calls + * sp_writer_free_block(). If alloc fails, then the server must wait + * for events on the client fd (the ones where sp_writer_recv() is + * called), and then try to re-alloc. * - * - * The clients connect with sp_client_open() - * And select() on the fd from sp_get_fd() until there is something to read. - * Then they must read using sp_client_recv() which will return > 0 if there - * is a valid buffer (which is read only). It will return 0 if it is an internal - * message and <0 if there was an error. If there was an error, one must close - * it with sp_close(). If was valid buffer was received, the client must release - * it with sp_client_recv_finish() when it is done reading from it. + * The reader (client) connect to the writer with sp_client_open() And + * select()s on the fd from sp_get_fd() until there is something to + * read. Then they must read using sp_client_recv() which will return + * the size of the buffer (positive) if there is a valid buffer (which + * is read only). It will return 0 if it is an internal message and a + * negative number if there was an error. If there was an error, the + * application must close the pipe with sp_close() and assume that all + * buffers are no longer valid. If was valid buffer was received, the + * client must release it with sp_client_recv_finish() when it is done + * reading from it. */ @@ -59,6 +63,7 @@ #define __SHMPIPE_H__ #include +#include #include #include #include @@ -71,6 +76,7 @@ extern "C" { typedef struct _ShmClient ShmClient; typedef struct _ShmPipe ShmPipe; typedef struct _ShmBlock ShmBlock; +typedef struct _ShmBuffer ShmBuffer; ShmPipe *sp_writer_create (const char *path, size_t size, mode_t perms); const char *sp_writer_get_path (ShmPipe *pipe); @@ -86,7 +92,7 @@ int sp_writer_get_client_fd (ShmClient * client); ShmBlock *sp_writer_alloc_block (ShmPipe * self, size_t size); void sp_writer_free_block (ShmBlock *block); -int sp_writer_send_buf (ShmPipe * self, char *buf, size_t size); +int sp_writer_send_buf (ShmPipe * self, char *buf, size_t size, uint64_t tag); char *sp_writer_block_get_buf (ShmBlock *block); ShmPipe *sp_writer_block_get_pipe (ShmBlock *block); @@ -100,6 +106,10 @@ ShmPipe *sp_client_open (const char *path); long int sp_client_recv (ShmPipe * self, char **buf); int sp_client_recv_finish (ShmPipe * self, char *buf); +ShmBuffer *sp_writer_get_pending_buffers (ShmPipe * self); +ShmBuffer *sp_writer_get_next_buffer (ShmBuffer * buffer); +uint64_t sp_writer_buf_get_tag (ShmBuffer * buffer); + #ifdef __cplusplus } #endif diff --git a/sys/vcd/Makefile.in b/sys/vcd/Makefile.in index 7ff5919..c78afa1 100644 --- a/sys/vcd/Makefile.in +++ b/sys/vcd/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstvcdsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstvcdsrc_la_OBJECTS = libgstvcdsrc_la-vcdsrc.lo libgstvcdsrc_la_OBJECTS = $(am_libgstvcdsrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvcdsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvcdsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvcdsrc_la_SOURCES) DIST_SOURCES = $(libgstvcdsrc_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvcdsrc.la: $(libgstvcdsrc_la_OBJECTS) $(libgstvcdsrc_la_DEPENDENCIES) +libgstvcdsrc.la: $(libgstvcdsrc_la_OBJECTS) $(libgstvcdsrc_la_DEPENDENCIES) $(EXTRA_libgstvcdsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvcdsrc_la_LINK) -rpath $(plugindir) $(libgstvcdsrc_la_OBJECTS) $(libgstvcdsrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvcdsrc_la-vcdsrc.lo: vcdsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvcdsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvcdsrc_la_CFLAGS) $(CFLAGS) -MT libgstvcdsrc_la-vcdsrc.lo -MD -MP -MF $(DEPDIR)/libgstvcdsrc_la-vcdsrc.Tpo -c -o libgstvcdsrc_la-vcdsrc.lo `test -f 'vcdsrc.c' || echo '$(srcdir)/'`vcdsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvcdsrc_la-vcdsrc.Tpo $(DEPDIR)/libgstvcdsrc_la-vcdsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vcdsrc.c' object='libgstvcdsrc_la-vcdsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vcdsrc.c' object='libgstvcdsrc_la-vcdsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvcdsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvcdsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvcdsrc_la-vcdsrc.lo `test -f 'vcdsrc.c' || echo '$(srcdir)/'`vcdsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvcdsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvcdsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvcdsrc_la-vcdsrc.lo `test -f 'vcdsrc.c' || echo '$(srcdir)/'`vcdsrc.c mostlyclean-libtool: -rm -f *.lo @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/vcd/vcdsrc.c b/sys/vcd/vcdsrc.c index 5ce58d8..553e264 100644 --- a/sys/vcd/vcdsrc.c +++ b/sys/vcd/vcdsrc.c @@ -99,8 +99,7 @@ gst_vcdsrc_base_init (gpointer g_class) "Source/File", "Asynchronous read from VCD disk", "Erik Walthinsen "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); } static void diff --git a/sys/vdpau/Makefile.in b/sys/vdpau/Makefile.in index 6fc9ce1..288b093 100644 --- a/sys/vdpau/Makefile.in +++ b/sys/vdpau/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -117,8 +124,8 @@ am_libgstvdpau_la_OBJECTS = libgstvdpau_la-gstvdpau.lo \ libgstvdpau_la-gstmpeg4frame.lo \ libgstvdpau_la-gstvdpmpeg4dec.lo libgstvdpau_la_OBJECTS = $(am_libgstvdpau_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvdpau_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -134,21 +141,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvdpau_la_SOURCES) DIST_SOURCES = $(libgstvdpau_la_SOURCES) @@ -198,7 +205,6 @@ 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@ @@ -216,7 +222,6 @@ 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@ @@ -251,6 +256,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -290,6 +296,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -307,6 +314,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -315,13 +323,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -346,13 +357,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -400,6 +412,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -431,8 +444,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -456,6 +473,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -480,10 +499,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -495,6 +518,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -519,6 +546,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -554,7 +582,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -682,7 +709,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvdpau.la: $(libgstvdpau_la_OBJECTS) $(libgstvdpau_la_DEPENDENCIES) +libgstvdpau.la: $(libgstvdpau_la_OBJECTS) $(libgstvdpau_la_DEPENDENCIES) $(EXTRA_libgstvdpau_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvdpau_la_LINK) -rpath $(plugindir) $(libgstvdpau_la_OBJECTS) $(libgstvdpau_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -709,138 +736,121 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvdpau_la-gstvdpau.lo: gstvdpau.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpau.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpau.Tpo -c -o libgstvdpau_la-gstvdpau.lo `test -f 'gstvdpau.c' || echo '$(srcdir)/'`gstvdpau.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpau.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpau.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpau.c' object='libgstvdpau_la-gstvdpau.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpau.c' object='libgstvdpau_la-gstvdpau.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpau.lo `test -f 'gstvdpau.c' || echo '$(srcdir)/'`gstvdpau.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpau.lo `test -f 'gstvdpau.c' || echo '$(srcdir)/'`gstvdpau.c libgstvdpau_la-gstvdpvideopostprocess.lo: gstvdpvideopostprocess.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpvideopostprocess.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpvideopostprocess.Tpo -c -o libgstvdpau_la-gstvdpvideopostprocess.lo `test -f 'gstvdpvideopostprocess.c' || echo '$(srcdir)/'`gstvdpvideopostprocess.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpvideopostprocess.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpvideopostprocess.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpvideopostprocess.c' object='libgstvdpau_la-gstvdpvideopostprocess.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpvideopostprocess.c' object='libgstvdpau_la-gstvdpvideopostprocess.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpvideopostprocess.lo `test -f 'gstvdpvideopostprocess.c' || echo '$(srcdir)/'`gstvdpvideopostprocess.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpvideopostprocess.lo `test -f 'gstvdpvideopostprocess.c' || echo '$(srcdir)/'`gstvdpvideopostprocess.c libgstvdpau_la-gstvdpsink.lo: gstvdpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpsink.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpsink.Tpo -c -o libgstvdpau_la-gstvdpsink.lo `test -f 'gstvdpsink.c' || echo '$(srcdir)/'`gstvdpsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpsink.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpsink.c' object='libgstvdpau_la-gstvdpsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpsink.c' object='libgstvdpau_la-gstvdpsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpsink.lo `test -f 'gstvdpsink.c' || echo '$(srcdir)/'`gstvdpsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpsink.lo `test -f 'gstvdpsink.c' || echo '$(srcdir)/'`gstvdpsink.c libgstvdpau_la-gstvdpmpegframe.lo: mpeg/gstvdpmpegframe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpmpegframe.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpmpegframe.Tpo -c -o libgstvdpau_la-gstvdpmpegframe.lo `test -f 'mpeg/gstvdpmpegframe.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegframe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpmpegframe.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpmpegframe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg/gstvdpmpegframe.c' object='libgstvdpau_la-gstvdpmpegframe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg/gstvdpmpegframe.c' object='libgstvdpau_la-gstvdpmpegframe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpegframe.lo `test -f 'mpeg/gstvdpmpegframe.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegframe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpegframe.lo `test -f 'mpeg/gstvdpmpegframe.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegframe.c libgstvdpau_la-mpegutil.lo: mpeg/mpegutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-mpegutil.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-mpegutil.Tpo -c -o libgstvdpau_la-mpegutil.lo `test -f 'mpeg/mpegutil.c' || echo '$(srcdir)/'`mpeg/mpegutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-mpegutil.Tpo $(DEPDIR)/libgstvdpau_la-mpegutil.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg/mpegutil.c' object='libgstvdpau_la-mpegutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg/mpegutil.c' object='libgstvdpau_la-mpegutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-mpegutil.lo `test -f 'mpeg/mpegutil.c' || echo '$(srcdir)/'`mpeg/mpegutil.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-mpegutil.lo `test -f 'mpeg/mpegutil.c' || echo '$(srcdir)/'`mpeg/mpegutil.c libgstvdpau_la-gstvdpmpegdec.lo: mpeg/gstvdpmpegdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpmpegdec.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpmpegdec.Tpo -c -o libgstvdpau_la-gstvdpmpegdec.lo `test -f 'mpeg/gstvdpmpegdec.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpmpegdec.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpmpegdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg/gstvdpmpegdec.c' object='libgstvdpau_la-gstvdpmpegdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg/gstvdpmpegdec.c' object='libgstvdpau_la-gstvdpmpegdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpegdec.lo `test -f 'mpeg/gstvdpmpegdec.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpegdec.lo `test -f 'mpeg/gstvdpmpegdec.c' || echo '$(srcdir)/'`mpeg/gstvdpmpegdec.c libgstvdpau_la-gstnalreader.lo: h264/gstnalreader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstnalreader.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstnalreader.Tpo -c -o libgstvdpau_la-gstnalreader.lo `test -f 'h264/gstnalreader.c' || echo '$(srcdir)/'`h264/gstnalreader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstnalreader.Tpo $(DEPDIR)/libgstvdpau_la-gstnalreader.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264/gstnalreader.c' object='libgstvdpau_la-gstnalreader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h264/gstnalreader.c' object='libgstvdpau_la-gstnalreader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstnalreader.lo `test -f 'h264/gstnalreader.c' || echo '$(srcdir)/'`h264/gstnalreader.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstnalreader.lo `test -f 'h264/gstnalreader.c' || echo '$(srcdir)/'`h264/gstnalreader.c libgstvdpau_la-gsth264parser.lo: h264/gsth264parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gsth264parser.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gsth264parser.Tpo -c -o libgstvdpau_la-gsth264parser.lo `test -f 'h264/gsth264parser.c' || echo '$(srcdir)/'`h264/gsth264parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gsth264parser.Tpo $(DEPDIR)/libgstvdpau_la-gsth264parser.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264/gsth264parser.c' object='libgstvdpau_la-gsth264parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h264/gsth264parser.c' object='libgstvdpau_la-gsth264parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264parser.lo `test -f 'h264/gsth264parser.c' || echo '$(srcdir)/'`h264/gsth264parser.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264parser.lo `test -f 'h264/gsth264parser.c' || echo '$(srcdir)/'`h264/gsth264parser.c libgstvdpau_la-gsth264frame.lo: h264/gsth264frame.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gsth264frame.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gsth264frame.Tpo -c -o libgstvdpau_la-gsth264frame.lo `test -f 'h264/gsth264frame.c' || echo '$(srcdir)/'`h264/gsth264frame.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gsth264frame.Tpo $(DEPDIR)/libgstvdpau_la-gsth264frame.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264/gsth264frame.c' object='libgstvdpau_la-gsth264frame.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h264/gsth264frame.c' object='libgstvdpau_la-gsth264frame.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264frame.lo `test -f 'h264/gsth264frame.c' || echo '$(srcdir)/'`h264/gsth264frame.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264frame.lo `test -f 'h264/gsth264frame.c' || echo '$(srcdir)/'`h264/gsth264frame.c libgstvdpau_la-gsth264dpb.lo: h264/gsth264dpb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gsth264dpb.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gsth264dpb.Tpo -c -o libgstvdpau_la-gsth264dpb.lo `test -f 'h264/gsth264dpb.c' || echo '$(srcdir)/'`h264/gsth264dpb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gsth264dpb.Tpo $(DEPDIR)/libgstvdpau_la-gsth264dpb.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264/gsth264dpb.c' object='libgstvdpau_la-gsth264dpb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h264/gsth264dpb.c' object='libgstvdpau_la-gsth264dpb.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264dpb.lo `test -f 'h264/gsth264dpb.c' || echo '$(srcdir)/'`h264/gsth264dpb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gsth264dpb.lo `test -f 'h264/gsth264dpb.c' || echo '$(srcdir)/'`h264/gsth264dpb.c libgstvdpau_la-gstvdph264dec.lo: h264/gstvdph264dec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdph264dec.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdph264dec.Tpo -c -o libgstvdpau_la-gstvdph264dec.lo `test -f 'h264/gstvdph264dec.c' || echo '$(srcdir)/'`h264/gstvdph264dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdph264dec.Tpo $(DEPDIR)/libgstvdpau_la-gstvdph264dec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='h264/gstvdph264dec.c' object='libgstvdpau_la-gstvdph264dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='h264/gstvdph264dec.c' object='libgstvdpau_la-gstvdph264dec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdph264dec.lo `test -f 'h264/gstvdph264dec.c' || echo '$(srcdir)/'`h264/gstvdph264dec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdph264dec.lo `test -f 'h264/gstvdph264dec.c' || echo '$(srcdir)/'`h264/gstvdph264dec.c libgstvdpau_la-mpeg4util.lo: mpeg4/mpeg4util.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-mpeg4util.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-mpeg4util.Tpo -c -o libgstvdpau_la-mpeg4util.lo `test -f 'mpeg4/mpeg4util.c' || echo '$(srcdir)/'`mpeg4/mpeg4util.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-mpeg4util.Tpo $(DEPDIR)/libgstvdpau_la-mpeg4util.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg4/mpeg4util.c' object='libgstvdpau_la-mpeg4util.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg4/mpeg4util.c' object='libgstvdpau_la-mpeg4util.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-mpeg4util.lo `test -f 'mpeg4/mpeg4util.c' || echo '$(srcdir)/'`mpeg4/mpeg4util.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-mpeg4util.lo `test -f 'mpeg4/mpeg4util.c' || echo '$(srcdir)/'`mpeg4/mpeg4util.c libgstvdpau_la-gstmpeg4frame.lo: mpeg4/gstmpeg4frame.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstmpeg4frame.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstmpeg4frame.Tpo -c -o libgstvdpau_la-gstmpeg4frame.lo `test -f 'mpeg4/gstmpeg4frame.c' || echo '$(srcdir)/'`mpeg4/gstmpeg4frame.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstmpeg4frame.Tpo $(DEPDIR)/libgstvdpau_la-gstmpeg4frame.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg4/gstmpeg4frame.c' object='libgstvdpau_la-gstmpeg4frame.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg4/gstmpeg4frame.c' object='libgstvdpau_la-gstmpeg4frame.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstmpeg4frame.lo `test -f 'mpeg4/gstmpeg4frame.c' || echo '$(srcdir)/'`mpeg4/gstmpeg4frame.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstmpeg4frame.lo `test -f 'mpeg4/gstmpeg4frame.c' || echo '$(srcdir)/'`mpeg4/gstmpeg4frame.c libgstvdpau_la-gstvdpmpeg4dec.lo: mpeg4/gstvdpmpeg4dec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -MT libgstvdpau_la-gstvdpmpeg4dec.lo -MD -MP -MF $(DEPDIR)/libgstvdpau_la-gstvdpmpeg4dec.Tpo -c -o libgstvdpau_la-gstvdpmpeg4dec.lo `test -f 'mpeg4/gstvdpmpeg4dec.c' || echo '$(srcdir)/'`mpeg4/gstvdpmpeg4dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdpau_la-gstvdpmpeg4dec.Tpo $(DEPDIR)/libgstvdpau_la-gstvdpmpeg4dec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg4/gstvdpmpeg4dec.c' object='libgstvdpau_la-gstvdpmpeg4dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpeg4/gstvdpmpeg4dec.c' object='libgstvdpau_la-gstvdpmpeg4dec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpeg4dec.lo `test -f 'mpeg4/gstvdpmpeg4dec.c' || echo '$(srcdir)/'`mpeg4/gstvdpmpeg4dec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdpau_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdpau_la_CFLAGS) $(CFLAGS) -c -o libgstvdpau_la-gstvdpmpeg4dec.lo `test -f 'mpeg4/gstvdpmpeg4dec.c' || echo '$(srcdir)/'`mpeg4/gstvdpmpeg4dec.c mostlyclean-libtool: -rm -f *.lo @@ -1059,10 +1069,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/vdpau/basevideodecoder/Makefile.in b/sys/vdpau/basevideodecoder/Makefile.in index d9c70ce..bc86386 100644 --- a/sys/vdpau/basevideodecoder/Makefile.in +++ b/sys/vdpau/basevideodecoder/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -88,8 +89,8 @@ am_libgstbasevideodecoder_la_OBJECTS = \ libgstbasevideodecoder_la-gstbasevideodecoder.lo libgstbasevideodecoder_la_OBJECTS = \ $(am_libgstbasevideodecoder_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstbasevideodecoder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -105,21 +106,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstbasevideodecoder_la_SOURCES) DIST_SOURCES = $(libgstbasevideodecoder_la_SOURCES) @@ -131,7 +132,6 @@ 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@ @@ -149,7 +149,6 @@ 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@ @@ -184,6 +183,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -223,6 +223,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -240,6 +241,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -248,13 +250,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -279,13 +284,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -333,6 +339,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -364,8 +371,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -389,6 +400,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -413,10 +426,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -428,6 +445,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -452,6 +473,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -487,7 +509,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -570,7 +591,7 @@ clean-noinstLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstbasevideodecoder.la: $(libgstbasevideodecoder_la_OBJECTS) $(libgstbasevideodecoder_la_DEPENDENCIES) +libgstbasevideodecoder.la: $(libgstbasevideodecoder_la_OBJECTS) $(libgstbasevideodecoder_la_DEPENDENCIES) $(EXTRA_libgstbasevideodecoder_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstbasevideodecoder_la_LINK) $(libgstbasevideodecoder_la_OBJECTS) $(libgstbasevideodecoder_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -585,42 +606,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstbasevideodecoder_la-gstvideoframe.lo: gstvideoframe.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) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -MT libgstbasevideodecoder_la-gstvideoframe.lo -MD -MP -MF $(DEPDIR)/libgstbasevideodecoder_la-gstvideoframe.Tpo -c -o libgstbasevideodecoder_la-gstvideoframe.lo `test -f 'gstvideoframe.c' || echo '$(srcdir)/'`gstvideoframe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideodecoder_la-gstvideoframe.Tpo $(DEPDIR)/libgstbasevideodecoder_la-gstvideoframe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideoframe.c' object='libgstbasevideodecoder_la-gstvideoframe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoframe.c' object='libgstbasevideodecoder_la-gstvideoframe.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) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideodecoder_la-gstvideoframe.lo `test -f 'gstvideoframe.c' || echo '$(srcdir)/'`gstvideoframe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideodecoder_la-gstvideoframe.lo `test -f 'gstvideoframe.c' || echo '$(srcdir)/'`gstvideoframe.c libgstbasevideodecoder_la-gstbasevideodecoder.lo: gstbasevideodecoder.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) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -MT libgstbasevideodecoder_la-gstbasevideodecoder.lo -MD -MP -MF $(DEPDIR)/libgstbasevideodecoder_la-gstbasevideodecoder.Tpo -c -o libgstbasevideodecoder_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbasevideodecoder_la-gstbasevideodecoder.Tpo $(DEPDIR)/libgstbasevideodecoder_la-gstbasevideodecoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasevideodecoder.c' object='libgstbasevideodecoder_la-gstbasevideodecoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasevideodecoder.c' object='libgstbasevideodecoder_la-gstbasevideodecoder.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) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideodecoder_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbasevideodecoder_la_CFLAGS) $(CFLAGS) -c -o libgstbasevideodecoder_la-gstbasevideodecoder.lo `test -f 'gstbasevideodecoder.c' || echo '$(srcdir)/'`gstbasevideodecoder.c mostlyclean-libtool: -rm -f *.lo @@ -724,10 +740,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c index 7bbfb4e..d2a1b14 100644 --- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c +++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c @@ -266,12 +266,9 @@ static gboolean gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event) { GstBaseVideoDecoder *base_video_decoder; - GstBaseVideoDecoderClass *base_video_decoder_class; gboolean res = FALSE; base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); - base_video_decoder_class = - GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -634,7 +631,6 @@ static GstFlowReturn gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) { GstBaseVideoDecoder *base_video_decoder; - GstBaseVideoDecoderClass *base_video_decoder_class; GstFlowReturn ret; GST_DEBUG ("chain %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT, @@ -651,8 +647,6 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) #endif base_video_decoder = GST_BASE_VIDEO_DECODER (gst_pad_get_parent (pad)); - base_video_decoder_class = - GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); GST_DEBUG_OBJECT (base_video_decoder, "chain"); @@ -968,16 +962,11 @@ void gst_base_video_decoder_skip_frame (GstBaseVideoDecoder * base_video_decoder, GstVideoFrame * frame) { - GstBaseVideoDecoderClass *base_video_decoder_class; - GstClockTime presentation_timestamp; GstClockTime presentation_duration; GST_DEBUG ("skip frame"); - base_video_decoder_class = - GST_BASE_VIDEO_DECODER_GET_CLASS (base_video_decoder); - gst_base_video_decoder_calculate_timestamps (base_video_decoder, frame, &presentation_timestamp, &presentation_duration); @@ -1112,11 +1101,9 @@ static void gst_base_video_decoder_finalize (GObject * object) { GstBaseVideoDecoder *base_video_decoder; - GstBaseVideoDecoderClass *base_video_decoder_class; g_return_if_fail (GST_IS_BASE_VIDEO_DECODER (object)); base_video_decoder = GST_BASE_VIDEO_DECODER (object); - base_video_decoder_class = GST_BASE_VIDEO_DECODER_GET_CLASS (object); g_object_unref (base_video_decoder->input_adapter); diff --git a/sys/vdpau/gstvdp/Makefile.in b/sys/vdpau/gstvdp/Makefile.in index 95642ce..1e1f182 100644 --- a/sys/vdpau/gstvdp/Makefile.in +++ b/sys/vdpau/gstvdp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libgstvdp_@GST_MAJORMINOR@includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) @@ -122,8 +129,8 @@ am_libgstvdp_@GST_MAJORMINOR@_la_OBJECTS = \ libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo libgstvdp_@GST_MAJORMINOR@_la_OBJECTS = \ $(am_libgstvdp_@GST_MAJORMINOR@_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvdp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -140,21 +147,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvdp_@GST_MAJORMINOR@_la_SOURCES) DIST_SOURCES = $(libgstvdp_@GST_MAJORMINOR@_la_SOURCES) @@ -166,7 +173,6 @@ 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@ @@ -184,7 +190,6 @@ 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@ @@ -219,6 +224,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -258,6 +264,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -275,6 +282,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -283,13 +291,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -314,13 +325,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -368,6 +380,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -399,8 +412,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -424,6 +441,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -448,10 +467,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -463,6 +486,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -487,6 +514,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -522,7 +550,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -647,7 +674,7 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvdp-@GST_MAJORMINOR@.la: $(libgstvdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvdp_@GST_MAJORMINOR@_la_DEPENDENCIES) +libgstvdp-@GST_MAJORMINOR@.la: $(libgstvdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvdp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstvdp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvdp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstvdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvdp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -672,122 +699,107 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo: gstvdpdevice.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo `test -f 'gstvdpdevice.c' || echo '$(srcdir)/'`gstvdpdevice.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpdevice.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpdevice.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo `test -f 'gstvdpdevice.c' || echo '$(srcdir)/'`gstvdpdevice.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdevice.lo `test -f 'gstvdpdevice.c' || echo '$(srcdir)/'`gstvdpdevice.c libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo: gstvdputils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo `test -f 'gstvdputils.c' || echo '$(srcdir)/'`gstvdputils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdputils.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdputils.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo `test -f 'gstvdputils.c' || echo '$(srcdir)/'`gstvdputils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdputils.lo `test -f 'gstvdputils.c' || echo '$(srcdir)/'`gstvdputils.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo: gstvdpbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo `test -f 'gstvdpbuffer.c' || echo '$(srcdir)/'`gstvdpbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpbuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpbuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo `test -f 'gstvdpbuffer.c' || echo '$(srcdir)/'`gstvdpbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbuffer.lo `test -f 'gstvdpbuffer.c' || echo '$(srcdir)/'`gstvdpbuffer.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo: gstvdpbufferpool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo `test -f 'gstvdpbufferpool.c' || echo '$(srcdir)/'`gstvdpbufferpool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpbufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpbufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo `test -f 'gstvdpbufferpool.c' || echo '$(srcdir)/'`gstvdpbufferpool.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpbufferpool.lo `test -f 'gstvdpbufferpool.c' || echo '$(srcdir)/'`gstvdpbufferpool.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo: gstvdpvideobuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo `test -f 'gstvdpvideobuffer.c' || echo '$(srcdir)/'`gstvdpvideobuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpvideobuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpvideobuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo `test -f 'gstvdpvideobuffer.c' || echo '$(srcdir)/'`gstvdpvideobuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobuffer.lo `test -f 'gstvdpvideobuffer.c' || echo '$(srcdir)/'`gstvdpvideobuffer.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo: gstvdpvideobufferpool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo `test -f 'gstvdpvideobufferpool.c' || echo '$(srcdir)/'`gstvdpvideobufferpool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpvideobufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpvideobufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo `test -f 'gstvdpvideobufferpool.c' || echo '$(srcdir)/'`gstvdpvideobufferpool.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideobufferpool.lo `test -f 'gstvdpvideobufferpool.c' || echo '$(srcdir)/'`gstvdpvideobufferpool.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo: gstvdpoutputbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo `test -f 'gstvdpoutputbuffer.c' || echo '$(srcdir)/'`gstvdpoutputbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpoutputbuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpoutputbuffer.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo `test -f 'gstvdpoutputbuffer.c' || echo '$(srcdir)/'`gstvdpoutputbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbuffer.lo `test -f 'gstvdpoutputbuffer.c' || echo '$(srcdir)/'`gstvdpoutputbuffer.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo: gstvdpoutputbufferpool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo `test -f 'gstvdpoutputbufferpool.c' || echo '$(srcdir)/'`gstvdpoutputbufferpool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpoutputbufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpoutputbufferpool.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo `test -f 'gstvdpoutputbufferpool.c' || echo '$(srcdir)/'`gstvdpoutputbufferpool.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputbufferpool.lo `test -f 'gstvdpoutputbufferpool.c' || echo '$(srcdir)/'`gstvdpoutputbufferpool.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo: gstvdpvideosrcpad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo `test -f 'gstvdpvideosrcpad.c' || echo '$(srcdir)/'`gstvdpvideosrcpad.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpvideosrcpad.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpvideosrcpad.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo `test -f 'gstvdpvideosrcpad.c' || echo '$(srcdir)/'`gstvdpvideosrcpad.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpvideosrcpad.lo `test -f 'gstvdpvideosrcpad.c' || echo '$(srcdir)/'`gstvdpvideosrcpad.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo: gstvdpoutputsrcpad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo `test -f 'gstvdpoutputsrcpad.c' || echo '$(srcdir)/'`gstvdpoutputsrcpad.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpoutputsrcpad.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpoutputsrcpad.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo `test -f 'gstvdpoutputsrcpad.c' || echo '$(srcdir)/'`gstvdpoutputsrcpad.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpoutputsrcpad.lo `test -f 'gstvdpoutputsrcpad.c' || echo '$(srcdir)/'`gstvdpoutputsrcpad.c libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo: gstvdpdecoder.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo `test -f 'gstvdpdecoder.c' || echo '$(srcdir)/'`gstvdpdecoder.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdpdecoder.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdpdecoder.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo `test -f 'gstvdpdecoder.c' || echo '$(srcdir)/'`gstvdpdecoder.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdpdecoder.lo `test -f 'gstvdpdecoder.c' || echo '$(srcdir)/'`gstvdpdecoder.c libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo: gstvdp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo -MD -MP -MF $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdp.Tpo -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo `test -f 'gstvdp.c' || echo '$(srcdir)/'`gstvdp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdp.Tpo $(DEPDIR)/libgstvdp_@GST_MAJORMINOR@_la-gstvdp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvdp.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvdp.c' object='libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo `test -f 'gstvdp.c' || echo '$(srcdir)/'`gstvdp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvdp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvdp_@GST_MAJORMINOR@_la-gstvdp.lo `test -f 'gstvdp.c' || echo '$(srcdir)/'`gstvdp.c mostlyclean-libtool: -rm -f *.lo @@ -811,9 +823,7 @@ uninstall-libgstvdp_@GST_MAJORMINOR@includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgstvdp_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstvdp_@GST_MAJORMINOR@includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libgstvdp_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libgstvdp_@GST_MAJORMINOR@includedir)" && rm -f $$files + dir='$(DESTDIR)$(libgstvdp_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -914,10 +924,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/vdpau/gstvdp/gstvdpdecoder.c b/sys/vdpau/gstvdp/gstvdpdecoder.c index 977f6e6..a400a39 100644 --- a/sys/vdpau/gstvdp/gstvdpdecoder.c +++ b/sys/vdpau/gstvdp/gstvdpdecoder.c @@ -293,6 +293,7 @@ gst_vdp_decoder_base_init (gpointer g_class) GST_PAD_SRC, GST_PAD_ALWAYS, src_caps); gst_element_class_add_pad_template (element_class, src_template); + gst_object_unref (src_template); } static void diff --git a/sys/vdpau/gstvdpsink.c b/sys/vdpau/gstvdpsink.c index 31a3d59..7b9fa2e 100644 --- a/sys/vdpau/gstvdpsink.c +++ b/sys/vdpau/gstvdpsink.c @@ -1383,19 +1383,17 @@ gst_vdp_sink_base_init (gpointer g_class) "Sink/Video", "VDPAU Sink", "Carl-Anton Ingmarsson "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } static void gst_vdp_sink_class_init (VdpSinkClass * 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); diff --git a/sys/vdpau/gstvdpvideopostprocess.c b/sys/vdpau/gstvdpvideopostprocess.c index ced168f..09e4844 100644 --- a/sys/vdpau/gstvdpvideopostprocess.c +++ b/sys/vdpau/gstvdpvideopostprocess.c @@ -1190,12 +1190,14 @@ gst_vdp_vpp_base_init (gpointer gclass) src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, src_caps); gst_element_class_add_pad_template (element_class, src_template); + gst_object_unref (src_template); /* SINK PAD */ sink_caps = gst_vdp_video_buffer_get_caps (FALSE, 0); sink_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps); gst_element_class_add_pad_template (element_class, sink_template); + gst_object_unref (sink_template); } /* initialize the vdpaumpegdecoder's class */ diff --git a/sys/vdpau/h264/gsth264dpb.c b/sys/vdpau/h264/gsth264dpb.c index 71a04e9..4fadc17 100644 --- a/sys/vdpau/h264/gsth264dpb.c +++ b/sys/vdpau/h264/gsth264dpb.c @@ -132,13 +132,10 @@ gst_h264_dpb_bump (GstH264DPB * dpb, guint poc, GstFlowReturn * ret) GstFlowReturn gst_h264_dpb_add (GstH264DPB * dpb, GstH264Frame * h264_frame) { - GstH264Frame **frames; GstFlowReturn ret; GST_DEBUG ("add frame with poc: %d", h264_frame->poc); - frames = dpb->frames; - if (h264_frame->is_reference && h264_frame->is_long_term && (h264_frame->frame_idx > dpb->max_longterm_frame_idx)) h264_frame->is_reference = FALSE; diff --git a/sys/vdpau/h264/gsth264frame.c b/sys/vdpau/h264/gsth264frame.c index 4b6952f..421de0f 100644 --- a/sys/vdpau/h264/gsth264frame.c +++ b/sys/vdpau/h264/gsth264frame.c @@ -54,11 +54,7 @@ gst_h264_frame_finalize (GstH264Frame * h264_frame) { g_ptr_array_foreach (h264_frame->slices, (GFunc) gst_buffer_unref, NULL); -#if GLIB_CHECK_VERSION (2,22,0) g_ptr_array_unref (h264_frame->slices); -#else - g_ptr_array_free (h264_frame->slices, TRUE); -#endif GST_MINI_OBJECT_CLASS (gst_h264_frame_parent_class)->finalize (GST_MINI_OBJECT (h264_frame)); diff --git a/sys/vdpau/h264/gsth264parser.c b/sys/vdpau/h264/gsth264parser.c index b154a54..a2a3cf0 100644 --- a/sys/vdpau/h264/gsth264parser.c +++ b/sys/vdpau/h264/gsth264parser.c @@ -768,7 +768,7 @@ gst_h264_slice_parse_ref_pic_list_reordering (GstH264Slice * slice, do { READ_UE_ALLOWED (reader, reordering_of_pic_nums_idc, 0, 3); if (reordering_of_pic_nums_idc == 0 || reordering_of_pic_nums_idc == 1) { - guint32 abs_diff_pic_num_minus1; + guint32 abs_diff_pic_num_minus1 G_GNUC_UNUSED; READ_UE_ALLOWED (reader, abs_diff_pic_num_minus1, 0, slice->MaxPicNum - 1); diff --git a/sys/vdpau/h264/gstvdph264dec.c b/sys/vdpau/h264/gstvdph264dec.c index 8d7e3fa..6b6c336 100644 --- a/sys/vdpau/h264/gstvdph264dec.c +++ b/sys/vdpau/h264/gstvdph264dec.c @@ -471,8 +471,8 @@ gst_vdp_h264_dec_handle_frame (GstBaseVideoDecoder * base_video_decoder, GstH264Frame *h264_frame; GstH264Slice *slice; - GstH264Picture *pic; - GstH264Sequence *seq; + GstH264Picture *pic G_GNUC_UNUSED; + GstH264Sequence *seq G_GNUC_UNUSED; GstFlowReturn ret; GstVdpVideoBuffer *outbuf; @@ -870,8 +870,8 @@ gst_vdp_h264_dec_base_init (gpointer g_class) "Decode h264 stream with vdpau", "Carl-Anton Ingmarsson "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } static void diff --git a/sys/vdpau/mpeg/gstvdpmpegdec.c b/sys/vdpau/mpeg/gstvdpmpegdec.c index 3de0eec..6a473e4 100644 --- a/sys/vdpau/mpeg/gstvdpmpegdec.c +++ b/sys/vdpau/mpeg/gstvdpmpegdec.c @@ -624,8 +624,8 @@ gst_vdp_mpeg_dec_base_init (gpointer gclass) "Decode mpeg stream with vdpau", "Carl-Anton Ingmarsson "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } /* initialize the vdpaumpegdecoder's class */ diff --git a/sys/vdpau/mpeg4/gstvdpmpeg4dec.c b/sys/vdpau/mpeg4/gstvdpmpeg4dec.c index 2ecf434..4c1bcb8 100644 --- a/sys/vdpau/mpeg4/gstvdpmpeg4dec.c +++ b/sys/vdpau/mpeg4/gstvdpmpeg4dec.c @@ -445,8 +445,8 @@ gst_vdp_mpeg4_dec_base_init (gpointer gclass) "Decode mpeg4 stream with vdpau", "Carl-Anton Ingmarsson "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } /* initialize the vdpaumpeg4decoder's class */ diff --git a/sys/wasapi/Makefile.in b/sys/wasapi/Makefile.in index 32162c8..3ebf10c 100644 --- a/sys/wasapi/Makefile.in +++ b/sys/wasapi/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -89,7 +90,6 @@ 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@ @@ -107,7 +107,6 @@ 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@ @@ -142,6 +141,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -181,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -198,6 +199,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -206,13 +208,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -237,13 +242,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -291,6 +297,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -322,8 +329,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -347,6 +358,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -371,10 +384,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -386,6 +403,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -410,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -562,10 +583,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/wasapi/gstwasapisink.c b/sys/wasapi/gstwasapisink.c index 3a3d9e9..8e515dc 100644 --- a/sys/wasapi/gstwasapisink.c +++ b/sys/wasapi/gstwasapisink.c @@ -65,8 +65,8 @@ gst_wasapi_sink_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "WasapiSrc", "Sink/Audio", "Stream audio to an audio capture device through WASAPI", diff --git a/sys/wasapi/gstwasapisrc.c b/sys/wasapi/gstwasapisrc.c index a410031..0ef642b 100644 --- a/sys/wasapi/gstwasapisrc.c +++ b/sys/wasapi/gstwasapisrc.c @@ -69,8 +69,7 @@ gst_wasapi_src_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_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "WasapiSrc", "Source/Audio", "Stream audio from an audio capture device through WASAPI", diff --git a/sys/wininet/Makefile.in b/sys/wininet/Makefile.in index 55a4f30..43d1f8f 100644 --- a/sys/wininet/Makefile.in +++ b/sys/wininet/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -107,8 +114,8 @@ libgstwininet_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstwininet_la_OBJECTS = libgstwininet_la-gstwininetsrc.lo libgstwininet_la_OBJECTS = $(am_libgstwininet_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstwininet_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwininet_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -124,21 +131,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstwininet_la_SOURCES) DIST_SOURCES = $(libgstwininet_la_SOURCES) @@ -150,7 +157,6 @@ 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@ @@ -168,7 +174,6 @@ 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@ @@ -203,6 +208,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -242,6 +248,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -259,6 +266,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -267,13 +275,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -298,13 +309,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -352,6 +364,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -383,8 +396,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -408,6 +425,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -432,10 +451,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -447,6 +470,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -471,6 +498,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -506,7 +534,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,7 +626,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstwininet.la: $(libgstwininet_la_OBJECTS) $(libgstwininet_la_DEPENDENCIES) +libgstwininet.la: $(libgstwininet_la_OBJECTS) $(libgstwininet_la_DEPENDENCIES) $(EXTRA_libgstwininet_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwininet_la_LINK) -rpath $(plugindir) $(libgstwininet_la_OBJECTS) $(libgstwininet_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,34 +640,30 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstwininet_la-gstwininetsrc.lo: gstwininetsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwininet_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwininet_la_CFLAGS) $(CFLAGS) -MT libgstwininet_la-gstwininetsrc.lo -MD -MP -MF $(DEPDIR)/libgstwininet_la-gstwininetsrc.Tpo -c -o libgstwininet_la-gstwininetsrc.lo `test -f 'gstwininetsrc.c' || echo '$(srcdir)/'`gstwininetsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwininet_la-gstwininetsrc.Tpo $(DEPDIR)/libgstwininet_la-gstwininetsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwininetsrc.c' object='libgstwininet_la-gstwininetsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwininetsrc.c' object='libgstwininet_la-gstwininetsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwininet_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwininet_la_CFLAGS) $(CFLAGS) -c -o libgstwininet_la-gstwininetsrc.lo `test -f 'gstwininetsrc.c' || echo '$(srcdir)/'`gstwininetsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwininet_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwininet_la_CFLAGS) $(CFLAGS) -c -o libgstwininet_la-gstwininetsrc.lo `test -f 'gstwininetsrc.c' || echo '$(srcdir)/'`gstwininetsrc.c mostlyclean-libtool: -rm -f *.lo @@ -747,10 +770,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/wininet/gstwininetsrc.c b/sys/wininet/gstwininetsrc.c index b29b4de..b21e3d0 100644 --- a/sys/wininet/gstwininetsrc.c +++ b/sys/wininet/gstwininetsrc.c @@ -83,8 +83,7 @@ gst_win_inet_src_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_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Windows Network Source", "Source/Network", @@ -408,7 +407,7 @@ gst_win_inet_src_uri_get_protocols (void) return (gchar **) protocols; } -static G_CONST_RETURN gchar * +static const gchar * gst_win_inet_src_uri_get_uri (GstURIHandler * handler) { GstWinInetSrc *src = GST_WIN_INET_SRC (handler); diff --git a/sys/winks/Makefile.in b/sys/winks/Makefile.in index 97d487d..e20c5a9 100644 --- a/sys/winks/Makefile.in +++ b/sys/winks/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -79,11 +80,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -92,7 +93,6 @@ 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@ @@ -110,7 +110,6 @@ 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@ @@ -145,6 +144,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -184,6 +184,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -201,6 +202,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -209,13 +211,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -240,13 +245,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -294,6 +300,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -325,8 +332,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -350,6 +361,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -374,10 +387,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -389,6 +406,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -413,6 +434,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -448,7 +470,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,10 +587,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/winks/gstksvideosrc.c b/sys/winks/gstksvideosrc.c index 577bef5..3f2b669 100644 --- a/sys/winks/gstksvideosrc.c +++ b/sys/winks/gstksvideosrc.c @@ -167,6 +167,7 @@ static void gst_ks_video_src_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + GstPadTemplate *pad_template; gst_element_class_set_details_simple (element_class, "KsVideoSrc", "Source/Video", @@ -175,9 +176,11 @@ gst_ks_video_src_base_init (gpointer gclass) "Haakon Sporsheim \n" "Andres Colubri "); - gst_element_class_add_pad_template (element_class, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - ks_video_get_all_caps ())); + ks_video_get_all_caps ()); + gst_element_class_add_pad_template (element_class, pad_template); + gst_object_unref (pad_template); } static void diff --git a/sys/winscreencap/Makefile.in b/sys/winscreencap/Makefile.in index 7bd2e50..1737822 100644 --- a/sys/winscreencap/Makefile.in +++ b/sys/winscreencap/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -79,11 +80,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -92,7 +93,6 @@ 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@ @@ -110,7 +110,6 @@ 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@ @@ -145,6 +144,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -184,6 +184,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -201,6 +202,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -209,13 +211,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -240,13 +245,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -294,6 +300,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -325,8 +332,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -350,6 +361,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -374,10 +387,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -389,6 +406,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -413,6 +434,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -448,7 +470,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -564,10 +585,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/winscreencap/gstdx9screencapsrc.c b/sys/winscreencap/gstdx9screencapsrc.c index 83bcea2..72a04ce 100644 --- a/sys/winscreencap/gstdx9screencapsrc.c +++ b/sys/winscreencap/gstdx9screencapsrc.c @@ -101,8 +101,7 @@ gst_dx9screencapsrc_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_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "DirectX 9 screen capture source", "Source/Video", "Captures screen", diff --git a/sys/winscreencap/gstgdiscreencapsrc.c b/sys/winscreencap/gstgdiscreencapsrc.c index ff9ea7b..a10a2fc 100644 --- a/sys/winscreencap/gstgdiscreencapsrc.c +++ b/sys/winscreencap/gstgdiscreencapsrc.c @@ -97,8 +97,7 @@ gst_gdiscreencapsrc_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_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "GDI screen capture source", "Source/Video", "Captures screen", "Haakon Sporsheim "); diff --git a/tests/Makefile.in b/tests/Makefile.in index 02eefb3..bf9b477 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -128,7 +129,6 @@ 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@ @@ -146,7 +146,6 @@ 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@ @@ -181,6 +180,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -220,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -237,6 +238,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -245,13 +247,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -276,13 +281,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -330,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -361,8 +368,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -386,6 +397,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -410,10 +423,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -425,6 +442,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -449,6 +470,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -484,7 +506,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -759,10 +780,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 433b94f..74e1860 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -14,7 +14,12 @@ TESTS_ENVIRONMENT = \ GST_PLUGIN_SYSTEM_PATH= \ GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_FFMPEG_DIR):$(GST_PLUGINS_UGLY_DIR):$(GST_PLUGINS_GOOD_DIR):$(GST_PLUGINS_BASE_DIR):$(GST_PLUGINS_DIR) \ GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good:gst-plugins-ugly:gst-ffmpeg:gst-plugins-bad@$(top_builddir)" \ - GST_STATE_IGNORE_ELEMENTS="apexsink camerabin camerabin2 cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival gsettingsvideosrc gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc" + GST_STATE_IGNORE_ELEMENTS="apexsink camerabin camerabin2 cdaudio dc1394src \ + dccpclientsrc dccpclientsink dccpserversrc dccpserversink decklinksrc \ + decklinksink dvbsrc dvbbasebin dfbvideosink festival gsettingsvideosrc \ + gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink linsyssdisrc linsyssdisink nassink \ + rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv \ + vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc" plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@ @@ -46,6 +51,18 @@ else check_faad = endif +if USE_VOAACENC +check_voaacenc = elements/voaacenc +else +check_voaacenc = +endif + +if USE_VOAMRWBENC +check_voamrwbenc = elements/voamrwbenc +else +check_voamrwbenc = +endif + if USE_EXIF check_jifmux = elements/jifmux else @@ -73,13 +90,13 @@ endif if USE_NEON check_neon = elements/neonhttpsrc else -check_neon = +check_neon = endif if USE_OFA check_ofa = elements/ofa else -check_ofa = +check_ofa = endif if USE_SCHRO @@ -124,24 +141,27 @@ else check_zbar = endif +if USE_OPUS +check_opus = elements/opus +else +check_opus = +endif + VALGRIND_TO_FIX = \ elements/mpeg2enc \ elements/mplex \ - elements/zbar + elements/zbar \ + pipeline/colorspace # valgrind testing VALGRIND_TESTS_DISABLE = \ $(VALGRIND_TO_FIX) -if BUILD_EXPERIMENTAL -EXPERIMENTAL_CHECKS=elements/camerabin2 \ - elements/imagecapturebin \ - elements/viewfinderbin -endif - # these tests don't even pass # neon: too flaky (almost always fails 'the first time') +# colorspace: bad memory accesses in orc code for odd width buffers - https://bugzilla.gnome.org/show_bug.cgi?id=663248 noinst_PROGRAMS = \ + pipelines/colorspace \ $(check_neon) check_PROGRAMS = \ @@ -149,28 +169,42 @@ check_PROGRAMS = \ $(check_assrender) \ $(check_faac) \ $(check_faad) \ + $(check_voaacenc) \ + $(check_voamrwbenc) \ $(check_mpeg2enc) \ $(check_mplex) \ $(check_ofa) \ $(check_timidity) \ $(check_kate) \ + $(check_opus) \ elements/autoconvert \ elements/autovideoconvert \ elements/asfmux \ + elements/baseaudiovisualizer \ elements/camerabin \ + elements/camerabin2 \ elements/dataurisrc \ elements/legacyresample \ $(check_jifmux) \ elements/jpegparse \ $(check_logoinsert) \ + elements/h263parse \ + elements/h264parse \ + elements/mpegtsmux \ + elements/mpegvideoparse \ + elements/mpeg4videoparse \ elements/mxfdemux \ elements/mxfmux \ elements/id3mux \ pipelines/mxf \ $(check_mimic) \ elements/rtpmux \ + libs/mpegvideoparser \ + libs/h264parser \ + libs/vc1parser \ $(check_schro) \ $(check_vp8) \ + elements/viewfinderbin \ $(check_zbar) \ $(check_orc) \ $(EXPERIMENTAL_CHECKS) @@ -184,6 +218,69 @@ AM_CFLAGS = $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) \ -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS LDADD = $(GST_CHECK_LIBS) +# parser unit test convenience lib +noinst_LTLIBRARIES = libparser.la +libparser_la_SOURCES = elements/parser.c elements/parser.h +libparser_la_CFLAGS = \ + -I$(top_srcdir)/tests/check \ + $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) + +elements_mpegvideoparse_LDADD = libparser.la $(LDADD) + +elements_mpeg4videoparse_LDADD = libparser.la $(LDADD) + +elements_h263parse_LDADD = libparser.la $(LDADD) + +elements_h264parse_LDADD = libparser.la $(LDADD) + +libs_mpegvideoparser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_mpegvideoparser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +libs_h264parser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_h264parser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +libs_vc1parser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_vc1parser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +elements_voaacenc_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) +elements_voaacenc_LDADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \ + -lgstaudio-@GST_MAJORMINOR@ + +elements_baseaudiovisualizer_SOURCES = elements/baseaudiovisualizer.c \ + $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c \ + $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.h +elements_baseaudiovisualizer_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \ + -I$(top_srcdir)/gst/audiovisualizers $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) +elements_baseaudiovisualizer_LDADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) \ + $(GST_LIBS) $(LDADD) + elements_camerabin_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API @@ -194,7 +291,6 @@ elements_camerabin_LDADD = \ elements_camerabin_SOURCES = elements/camerabin.c -if BUILD_EXPERIMENTAL elements_camerabin2_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API @@ -205,15 +301,6 @@ elements_camerabin2_LDADD = \ $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) elements_camerabin2_SOURCES = elements/camerabin2.c -elements_imagecapturebin_CFLAGS = \ - $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ - $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API -elements_imagecapturebin_LDADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgstapp-@GST_MAJORMINOR@ \ - $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) -elements_imagecapturebin_SOURCES = elements/imagecapturebin.c -endif - elements_jifmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(EXIF_CFLAGS) $(AM_CFLAGS) elements_jifmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) $(GST_CHECK_LIBS) $(EXIF_LIBS) $(LDADD) elements_jifmux_SOURCES = elements/jifmux.c @@ -230,6 +317,10 @@ elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-0.10 $(GST_BASE_LIBS) elements_assrender_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) elements_assrender_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-0.10 -lgstapp-0.10 $(GST_BASE_LIBS) $(LDADD) +elements_mpegtsmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_mpegtsmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-0.10 $(GST_BASE_LIBS) $(LDADD) + + EXTRA_DIST = gst-plugins-bad.supp orc_cog_CFLAGS = $(ORC_CFLAGS) diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in index 5495a86..bb83e1b 100644 --- a/tests/check/Makefile.in +++ b/tests/check/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -16,6 +16,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -37,25 +38,33 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/common/check.mak -noinst_PROGRAMS = $(am__EXEEXT_17) +noinst_PROGRAMS = pipelines/colorspace$(EXEEXT) $(am__EXEEXT_19) check_PROGRAMS = generic/states$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \ $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ - $(am__EXEEXT_8) elements/autoconvert$(EXEEXT) \ + $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \ + $(am__EXEEXT_11) elements/autoconvert$(EXEEXT) \ elements/autovideoconvert$(EXEEXT) elements/asfmux$(EXEEXT) \ - elements/camerabin$(EXEEXT) elements/dataurisrc$(EXEEXT) \ - elements/legacyresample$(EXEEXT) $(am__EXEEXT_9) \ - elements/jpegparse$(EXEEXT) $(am__EXEEXT_10) \ - elements/mxfdemux$(EXEEXT) elements/mxfmux$(EXEEXT) \ - elements/id3mux$(EXEEXT) pipelines/mxf$(EXEEXT) \ - $(am__EXEEXT_11) elements/rtpmux$(EXEEXT) $(am__EXEEXT_12) \ - $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15) \ - $(am__EXEEXT_16) + elements/baseaudiovisualizer$(EXEEXT) \ + elements/camerabin$(EXEEXT) elements/camerabin2$(EXEEXT) \ + elements/dataurisrc$(EXEEXT) elements/legacyresample$(EXEEXT) \ + $(am__EXEEXT_12) elements/jpegparse$(EXEEXT) $(am__EXEEXT_13) \ + elements/h263parse$(EXEEXT) elements/h264parse$(EXEEXT) \ + elements/mpegtsmux$(EXEEXT) elements/mpegvideoparse$(EXEEXT) \ + elements/mpeg4videoparse$(EXEEXT) elements/mxfdemux$(EXEEXT) \ + elements/mxfmux$(EXEEXT) elements/id3mux$(EXEEXT) \ + pipelines/mxf$(EXEEXT) $(am__EXEEXT_14) \ + elements/rtpmux$(EXEEXT) libs/mpegvideoparser$(EXEEXT) \ + libs/h264parser$(EXEEXT) libs/vc1parser$(EXEEXT) \ + $(am__EXEEXT_15) $(am__EXEEXT_16) \ + elements/viewfinderbin$(EXEEXT) $(am__EXEEXT_17) \ + $(am__EXEEXT_18) subdir = tests/check 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -93,35 +102,42 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libparser_la_LIBADD = +am_libparser_la_OBJECTS = libparser_la-parser.lo +libparser_la_OBJECTS = $(am_libparser_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libparser_la_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @USE_ASSRENDER_TRUE@am__EXEEXT_1 = elements/assrender$(EXEEXT) @USE_FAAC_TRUE@am__EXEEXT_2 = elements/faac$(EXEEXT) @USE_FAAD_TRUE@am__EXEEXT_3 = elements/faad$(EXEEXT) -@USE_MPEG2ENC_TRUE@am__EXEEXT_4 = elements/mpeg2enc$(EXEEXT) -@USE_MPLEX_TRUE@am__EXEEXT_5 = elements/mplex$(EXEEXT) -@USE_OFA_TRUE@am__EXEEXT_6 = elements/ofa$(EXEEXT) -@USE_TIMIDITY_TRUE@am__EXEEXT_7 = elements/timidity$(EXEEXT) -@USE_KATE_TRUE@am__EXEEXT_8 = elements/kate$(EXEEXT) -@USE_EXIF_TRUE@am__EXEEXT_9 = elements/jifmux$(EXEEXT) -@USE_COG_TRUE@am__EXEEXT_10 = elements/logoinsert$(EXEEXT) -@USE_MIMIC_TRUE@am__EXEEXT_11 = pipelines/mimic$(EXEEXT) -@USE_SCHRO_TRUE@am__EXEEXT_12 = elements/schroenc$(EXEEXT) -@USE_VP8_TRUE@am__EXEEXT_13 = elements/vp8enc$(EXEEXT) \ +@USE_VOAACENC_TRUE@am__EXEEXT_4 = elements/voaacenc$(EXEEXT) +@USE_VOAMRWBENC_TRUE@am__EXEEXT_5 = elements/voamrwbenc$(EXEEXT) +@USE_MPEG2ENC_TRUE@am__EXEEXT_6 = elements/mpeg2enc$(EXEEXT) +@USE_MPLEX_TRUE@am__EXEEXT_7 = elements/mplex$(EXEEXT) +@USE_OFA_TRUE@am__EXEEXT_8 = elements/ofa$(EXEEXT) +@USE_TIMIDITY_TRUE@am__EXEEXT_9 = elements/timidity$(EXEEXT) +@USE_KATE_TRUE@am__EXEEXT_10 = elements/kate$(EXEEXT) +@USE_OPUS_TRUE@am__EXEEXT_11 = elements/opus$(EXEEXT) +@USE_EXIF_TRUE@am__EXEEXT_12 = elements/jifmux$(EXEEXT) +@USE_COG_TRUE@am__EXEEXT_13 = elements/logoinsert$(EXEEXT) +@USE_MIMIC_TRUE@am__EXEEXT_14 = pipelines/mimic$(EXEEXT) +@USE_SCHRO_TRUE@am__EXEEXT_15 = elements/schroenc$(EXEEXT) +@USE_VP8_TRUE@am__EXEEXT_16 = elements/vp8enc$(EXEEXT) \ @USE_VP8_TRUE@ elements/vp8dec$(EXEEXT) -@USE_ZBAR_TRUE@am__EXEEXT_14 = elements/zbar$(EXEEXT) -@HAVE_ORC_TRUE@am__EXEEXT_15 = orc/cog$(EXEEXT) -@BUILD_EXPERIMENTAL_TRUE@am__EXEEXT_16 = elements/camerabin2$(EXEEXT) \ -@BUILD_EXPERIMENTAL_TRUE@ elements/imagecapturebin$(EXEEXT) \ -@BUILD_EXPERIMENTAL_TRUE@ elements/viewfinderbin$(EXEEXT) -@USE_NEON_TRUE@am__EXEEXT_17 = elements/neonhttpsrc$(EXEEXT) +@USE_ZBAR_TRUE@am__EXEEXT_17 = elements/zbar$(EXEEXT) +@HAVE_ORC_TRUE@am__EXEEXT_18 = orc/cog$(EXEEXT) +@USE_NEON_TRUE@am__EXEEXT_19 = elements/neonhttpsrc$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) elements_asfmux_SOURCES = elements/asfmux.c elements_asfmux_OBJECTS = asfmux.$(OBJEXT) elements_asfmux_LDADD = $(LDADD) am__DEPENDENCIES_1 = elements_asfmux_DEPENDENCIES = $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent am__dirstamp = $(am__leading_dot)dirstamp elements_assrender_SOURCES = elements/assrender.c elements_assrender_OBJECTS = elements_assrender-assrender.$(OBJEXT) @@ -140,6 +156,18 @@ elements_autovideoconvert_SOURCES = elements/autovideoconvert.c elements_autovideoconvert_OBJECTS = autovideoconvert.$(OBJEXT) elements_autovideoconvert_LDADD = $(LDADD) elements_autovideoconvert_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_elements_baseaudiovisualizer_OBJECTS = \ + elements_baseaudiovisualizer-baseaudiovisualizer.$(OBJEXT) \ + elements_baseaudiovisualizer-gstbaseaudiovisualizer.$(OBJEXT) +elements_baseaudiovisualizer_OBJECTS = \ + $(am_elements_baseaudiovisualizer_OBJECTS) +elements_baseaudiovisualizer_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +elements_baseaudiovisualizer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ am_elements_camerabin_OBJECTS = \ elements_camerabin-camerabin.$(OBJEXT) elements_camerabin_OBJECTS = $(am_elements_camerabin_OBJECTS) @@ -150,15 +178,13 @@ elements_camerabin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_camerabin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -am__elements_camerabin2_SOURCES_DIST = elements/camerabin2.c -@BUILD_EXPERIMENTAL_TRUE@am_elements_camerabin2_OBJECTS = elements_camerabin2-camerabin2.$(OBJEXT) +am_elements_camerabin2_OBJECTS = \ + elements_camerabin2-camerabin2.$(OBJEXT) elements_camerabin2_OBJECTS = $(am_elements_camerabin2_OBJECTS) -@BUILD_EXPERIMENTAL_TRUE@elements_camerabin2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ -@BUILD_EXPERIMENTAL_TRUE@ $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_2) +elements_camerabin2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_camerabin2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_camerabin2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -175,24 +201,16 @@ elements_faad_SOURCES = elements/faad.c elements_faad_OBJECTS = faad.$(OBJEXT) elements_faad_LDADD = $(LDADD) elements_faad_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_h263parse_SOURCES = elements/h263parse.c +elements_h263parse_OBJECTS = h263parse.$(OBJEXT) +elements_h263parse_DEPENDENCIES = libparser.la $(am__DEPENDENCIES_2) +elements_h264parse_SOURCES = elements/h264parse.c +elements_h264parse_OBJECTS = h264parse.$(OBJEXT) +elements_h264parse_DEPENDENCIES = libparser.la $(am__DEPENDENCIES_2) elements_id3mux_SOURCES = elements/id3mux.c elements_id3mux_OBJECTS = id3mux.$(OBJEXT) elements_id3mux_LDADD = $(LDADD) elements_id3mux_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__elements_imagecapturebin_SOURCES_DIST = \ - elements/imagecapturebin.c -@BUILD_EXPERIMENTAL_TRUE@am_elements_imagecapturebin_OBJECTS = elements_imagecapturebin-imagecapturebin.$(OBJEXT) -elements_imagecapturebin_OBJECTS = \ - $(am_elements_imagecapturebin_OBJECTS) -@BUILD_EXPERIMENTAL_TRUE@elements_imagecapturebin_DEPENDENCIES = \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_1) \ -@BUILD_EXPERIMENTAL_TRUE@ $(am__DEPENDENCIES_2) -elements_imagecapturebin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(elements_imagecapturebin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ am_elements_jifmux_OBJECTS = elements_jifmux-jifmux.$(OBJEXT) elements_jifmux_OBJECTS = $(am_elements_jifmux_OBJECTS) elements_jifmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -225,6 +243,22 @@ elements_mpeg2enc_SOURCES = elements/mpeg2enc.c elements_mpeg2enc_OBJECTS = mpeg2enc.$(OBJEXT) elements_mpeg2enc_LDADD = $(LDADD) elements_mpeg2enc_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_mpeg4videoparse_SOURCES = elements/mpeg4videoparse.c +elements_mpeg4videoparse_OBJECTS = mpeg4videoparse.$(OBJEXT) +elements_mpeg4videoparse_DEPENDENCIES = libparser.la \ + $(am__DEPENDENCIES_2) +elements_mpegtsmux_SOURCES = elements/mpegtsmux.c +elements_mpegtsmux_OBJECTS = elements_mpegtsmux-mpegtsmux.$(OBJEXT) +elements_mpegtsmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +elements_mpegtsmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_mpegtsmux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +elements_mpegvideoparse_SOURCES = elements/mpegvideoparse.c +elements_mpegvideoparse_OBJECTS = mpegvideoparse.$(OBJEXT) +elements_mpegvideoparse_DEPENDENCIES = libparser.la \ + $(am__DEPENDENCIES_2) elements_mplex_SOURCES = elements/mplex.c elements_mplex_OBJECTS = mplex.$(OBJEXT) elements_mplex_LDADD = $(LDADD) @@ -245,6 +279,10 @@ elements_ofa_SOURCES = elements/ofa.c elements_ofa_OBJECTS = ofa.$(OBJEXT) elements_ofa_LDADD = $(LDADD) elements_ofa_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_opus_SOURCES = elements/opus.c +elements_opus_OBJECTS = opus.$(OBJEXT) +elements_opus_LDADD = $(LDADD) +elements_opus_DEPENDENCIES = $(am__DEPENDENCIES_1) elements_rtpmux_SOURCES = elements/rtpmux.c elements_rtpmux_OBJECTS = elements_rtpmux-rtpmux.$(OBJEXT) elements_rtpmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -269,6 +307,19 @@ elements_viewfinderbin_SOURCES = elements/viewfinderbin.c elements_viewfinderbin_OBJECTS = viewfinderbin.$(OBJEXT) elements_viewfinderbin_LDADD = $(LDADD) elements_viewfinderbin_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_voaacenc_SOURCES = elements/voaacenc.c +elements_voaacenc_OBJECTS = elements_voaacenc-voaacenc.$(OBJEXT) +elements_voaacenc_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_voaacenc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_voaacenc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +elements_voamrwbenc_SOURCES = elements/voamrwbenc.c +elements_voamrwbenc_OBJECTS = voamrwbenc.$(OBJEXT) +elements_voamrwbenc_LDADD = $(LDADD) +elements_voamrwbenc_DEPENDENCIES = $(am__DEPENDENCIES_1) elements_vp8dec_SOURCES = elements/vp8dec.c elements_vp8dec_OBJECTS = vp8dec.$(OBJEXT) elements_vp8dec_LDADD = $(LDADD) @@ -285,12 +336,44 @@ generic_states_SOURCES = generic/states.c generic_states_OBJECTS = states.$(OBJEXT) generic_states_LDADD = $(LDADD) generic_states_DEPENDENCIES = $(am__DEPENDENCIES_1) +libs_h264parser_SOURCES = libs/h264parser.c +libs_h264parser_OBJECTS = libs_h264parser-h264parser.$(OBJEXT) +libs_h264parser_DEPENDENCIES = $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +libs_h264parser_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libs_h264parser_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +libs_mpegvideoparser_SOURCES = libs/mpegvideoparser.c +libs_mpegvideoparser_OBJECTS = \ + libs_mpegvideoparser-mpegvideoparser.$(OBJEXT) +libs_mpegvideoparser_DEPENDENCIES = $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +libs_mpegvideoparser_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libs_mpegvideoparser_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libs_vc1parser_SOURCES = libs/vc1parser.c +libs_vc1parser_OBJECTS = libs_vc1parser-vc1parser.$(OBJEXT) +libs_vc1parser_DEPENDENCIES = $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +libs_vc1parser_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libs_vc1parser_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ + $@ orc_cog_SOURCES = orc/cog.c orc_cog_OBJECTS = orc_cog-cog.$(OBJEXT) orc_cog_DEPENDENCIES = $(am__DEPENDENCIES_1) orc_cog_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_cog_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +pipelines_colorspace_SOURCES = pipelines/colorspace.c +pipelines_colorspace_OBJECTS = colorspace.$(OBJEXT) +pipelines_colorspace_LDADD = $(LDADD) +pipelines_colorspace_DEPENDENCIES = $(am__DEPENDENCIES_1) pipelines_mimic_SOURCES = pipelines/mimic.c pipelines_mimic_OBJECTS = mimic.$(OBJEXT) pipelines_mimic_LDADD = $(LDADD) @@ -309,49 +392,62 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = elements/asfmux.c elements/assrender.c \ - elements/autoconvert.c elements/autovideoconvert.c \ +SOURCES = $(libparser_la_SOURCES) elements/asfmux.c \ + elements/assrender.c elements/autoconvert.c \ + elements/autovideoconvert.c \ + $(elements_baseaudiovisualizer_SOURCES) \ $(elements_camerabin_SOURCES) $(elements_camerabin2_SOURCES) \ elements/dataurisrc.c elements/faac.c elements/faad.c \ - elements/id3mux.c $(elements_imagecapturebin_SOURCES) \ + elements/h263parse.c elements/h264parse.c elements/id3mux.c \ $(elements_jifmux_SOURCES) elements/jpegparse.c \ elements/kate.c elements/legacyresample.c \ - elements/logoinsert.c elements/mpeg2enc.c elements/mplex.c \ - elements/mxfdemux.c elements/mxfmux.c elements/neonhttpsrc.c \ - elements/ofa.c elements/rtpmux.c elements/schroenc.c \ - elements/timidity.c elements/viewfinderbin.c elements/vp8dec.c \ - elements/vp8enc.c elements/zbar.c generic/states.c orc/cog.c \ - pipelines/mimic.c pipelines/mxf.c -DIST_SOURCES = elements/asfmux.c elements/assrender.c \ - elements/autoconvert.c elements/autovideoconvert.c \ - $(elements_camerabin_SOURCES) \ - $(am__elements_camerabin2_SOURCES_DIST) elements/dataurisrc.c \ - elements/faac.c elements/faad.c elements/id3mux.c \ - $(am__elements_imagecapturebin_SOURCES_DIST) \ + elements/logoinsert.c elements/mpeg2enc.c \ + elements/mpeg4videoparse.c elements/mpegtsmux.c \ + elements/mpegvideoparse.c elements/mplex.c elements/mxfdemux.c \ + elements/mxfmux.c elements/neonhttpsrc.c elements/ofa.c \ + elements/opus.c elements/rtpmux.c elements/schroenc.c \ + elements/timidity.c elements/viewfinderbin.c \ + elements/voaacenc.c elements/voamrwbenc.c elements/vp8dec.c \ + elements/vp8enc.c elements/zbar.c generic/states.c \ + libs/h264parser.c libs/mpegvideoparser.c libs/vc1parser.c \ + orc/cog.c pipelines/colorspace.c pipelines/mimic.c \ + pipelines/mxf.c +DIST_SOURCES = $(libparser_la_SOURCES) elements/asfmux.c \ + elements/assrender.c elements/autoconvert.c \ + elements/autovideoconvert.c \ + $(elements_baseaudiovisualizer_SOURCES) \ + $(elements_camerabin_SOURCES) $(elements_camerabin2_SOURCES) \ + elements/dataurisrc.c elements/faac.c elements/faad.c \ + elements/h263parse.c elements/h264parse.c elements/id3mux.c \ $(elements_jifmux_SOURCES) elements/jpegparse.c \ elements/kate.c elements/legacyresample.c \ - elements/logoinsert.c elements/mpeg2enc.c elements/mplex.c \ - elements/mxfdemux.c elements/mxfmux.c elements/neonhttpsrc.c \ - elements/ofa.c elements/rtpmux.c elements/schroenc.c \ - elements/timidity.c elements/viewfinderbin.c elements/vp8dec.c \ - elements/vp8enc.c elements/zbar.c generic/states.c orc/cog.c \ - pipelines/mimic.c pipelines/mxf.c + elements/logoinsert.c elements/mpeg2enc.c \ + elements/mpeg4videoparse.c elements/mpegtsmux.c \ + elements/mpegvideoparse.c elements/mplex.c elements/mxfdemux.c \ + elements/mxfmux.c elements/neonhttpsrc.c elements/ofa.c \ + elements/opus.c elements/rtpmux.c elements/schroenc.c \ + elements/timidity.c elements/viewfinderbin.c \ + elements/voaacenc.c elements/voamrwbenc.c elements/vp8dec.c \ + elements/vp8enc.c elements/zbar.c generic/states.c \ + libs/h264parser.c libs/mpegvideoparser.c libs/vc1parser.c \ + orc/cog.c pipelines/colorspace.c pipelines/mimic.c \ + pipelines/mxf.c HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags @@ -362,7 +458,6 @@ 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@ @@ -380,7 +475,6 @@ 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@ @@ -415,6 +509,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -454,6 +549,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -471,6 +567,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -479,13 +576,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -510,13 +610,14 @@ 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_REVISION = @GST_REVISION@ GST_TOOLS_DIR = $(top_builddir)/tools 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -564,6 +665,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -595,8 +697,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -620,6 +726,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -644,10 +752,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -659,6 +771,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -683,6 +799,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -718,7 +835,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -755,7 +871,12 @@ TESTS_ENVIRONMENT = \ GST_PLUGIN_SYSTEM_PATH= \ GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_FFMPEG_DIR):$(GST_PLUGINS_UGLY_DIR):$(GST_PLUGINS_GOOD_DIR):$(GST_PLUGINS_BASE_DIR):$(GST_PLUGINS_DIR) \ GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good:gst-plugins-ugly:gst-ffmpeg:gst-plugins-bad@$(top_builddir)" \ - GST_STATE_IGNORE_ELEMENTS="apexsink camerabin camerabin2 cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival gsettingsvideosrc gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc" + GST_STATE_IGNORE_ELEMENTS="apexsink camerabin camerabin2 cdaudio dc1394src \ + dccpclientsrc dccpclientsink dccpserversrc dccpserversink decklinksrc \ + decklinksink dvbsrc dvbbasebin dfbvideosink festival gsettingsvideosrc \ + gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink linsyssdisrc linsyssdisink nassink \ + rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv \ + vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc" # the core dumps of some machines have PIDs appended @@ -767,6 +888,10 @@ SUPPRESSIONS = $(top_srcdir)/common/gst.supp $(srcdir)/gst-plugins-bad.supp @USE_FAAC_TRUE@check_faac = elements/faac @USE_FAAD_FALSE@check_faad = @USE_FAAD_TRUE@check_faad = elements/faad +@USE_VOAACENC_FALSE@check_voaacenc = +@USE_VOAACENC_TRUE@check_voaacenc = elements/voaacenc +@USE_VOAMRWBENC_FALSE@check_voamrwbenc = +@USE_VOAMRWBENC_TRUE@check_voamrwbenc = elements/voamrwbenc @USE_EXIF_FALSE@check_jifmux = @USE_EXIF_TRUE@check_jifmux = elements/jifmux @USE_COG_FALSE@check_logoinsert = @@ -793,20 +918,19 @@ SUPPRESSIONS = $(top_srcdir)/common/gst.supp $(srcdir)/gst-plugins-bad.supp @HAVE_ORC_TRUE@check_orc = orc/cog @USE_ZBAR_FALSE@check_zbar = @USE_ZBAR_TRUE@check_zbar = elements/zbar +@USE_OPUS_FALSE@check_opus = +@USE_OPUS_TRUE@check_opus = elements/opus VALGRIND_TO_FIX = \ elements/mpeg2enc \ elements/mplex \ - elements/zbar + elements/zbar \ + pipeline/colorspace # valgrind testing VALGRIND_TESTS_DISABLE = \ $(VALGRIND_TO_FIX) -@BUILD_EXPERIMENTAL_TRUE@EXPERIMENTAL_CHECKS = elements/camerabin2 \ -@BUILD_EXPERIMENTAL_TRUE@ elements/imagecapturebin \ -@BUILD_EXPERIMENTAL_TRUE@ elements/viewfinderbin - noinst_HEADERS = elements/mxfdemux.h TESTS = $(check_PROGRAMS) AM_CFLAGS = $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) \ @@ -814,6 +938,69 @@ AM_CFLAGS = $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) \ -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS LDADD = $(GST_CHECK_LIBS) + +# parser unit test convenience lib +noinst_LTLIBRARIES = libparser.la +libparser_la_SOURCES = elements/parser.c elements/parser.h +libparser_la_CFLAGS = \ + -I$(top_srcdir)/tests/check \ + $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) + +elements_mpegvideoparse_LDADD = libparser.la $(LDADD) +elements_mpeg4videoparse_LDADD = libparser.la $(LDADD) +elements_h263parse_LDADD = libparser.la $(LDADD) +elements_h264parse_LDADD = libparser.la $(LDADD) +libs_mpegvideoparser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_mpegvideoparser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +libs_h264parser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_h264parser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +libs_vc1parser_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + -DGST_USE_UNSTABLE_API \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +libs_vc1parser_LDADD = \ + $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BAD_LIBS) -lgstcodecparsers-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +elements_voaacenc_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +elements_voaacenc_LDADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \ + -lgstaudio-@GST_MAJORMINOR@ + +elements_baseaudiovisualizer_SOURCES = elements/baseaudiovisualizer.c \ + $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c \ + $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.h + +elements_baseaudiovisualizer_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \ + -I$(top_srcdir)/gst/audiovisualizers $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) + +elements_baseaudiovisualizer_LDADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) \ + $(GST_LIBS) $(LDADD) + elements_camerabin_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API @@ -824,26 +1011,17 @@ elements_camerabin_LDADD = \ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) elements_camerabin_SOURCES = elements/camerabin.c -@BUILD_EXPERIMENTAL_TRUE@elements_camerabin2_CFLAGS = \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API - -@BUILD_EXPERIMENTAL_TRUE@elements_camerabin2_LDADD = \ -@BUILD_EXPERIMENTAL_TRUE@ $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ -@BUILD_EXPERIMENTAL_TRUE@ $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ -@BUILD_EXPERIMENTAL_TRUE@ -lgstpbutils-$(GST_MAJORMINOR) \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) - -@BUILD_EXPERIMENTAL_TRUE@elements_camerabin2_SOURCES = elements/camerabin2.c -@BUILD_EXPERIMENTAL_TRUE@elements_imagecapturebin_CFLAGS = \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API - -@BUILD_EXPERIMENTAL_TRUE@elements_imagecapturebin_LDADD = \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_PLUGINS_BASE_LIBS) -lgstapp-@GST_MAJORMINOR@ \ -@BUILD_EXPERIMENTAL_TRUE@ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) - -@BUILD_EXPERIMENTAL_TRUE@elements_imagecapturebin_SOURCES = elements/imagecapturebin.c +elements_camerabin2_CFLAGS = \ + $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API + +elements_camerabin2_LDADD = \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_MAJORMINOR@.la \ + -lgstpbutils-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) + +elements_camerabin2_SOURCES = elements/camerabin2.c elements_jifmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(EXIF_CFLAGS) $(AM_CFLAGS) elements_jifmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) $(GST_CHECK_LIBS) $(EXIF_LIBS) $(LDADD) elements_jifmux_SOURCES = elements/jifmux.c @@ -855,6 +1033,8 @@ elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLA elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-0.10 $(GST_BASE_LIBS) $(LDADD) elements_assrender_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) elements_assrender_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-0.10 -lgstapp-0.10 $(GST_BASE_LIBS) $(LDADD) +elements_mpegtsmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) +elements_mpegtsmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-0.10 $(GST_BASE_LIBS) $(LDADD) EXTRA_DIST = gst-plugins-bad.supp orc_cog_CFLAGS = $(ORC_CFLAGS) orc_cog_LDADD = $(ORC_LIBS) -lorc-test-0.4 @@ -883,6 +1063,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/check.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -893,6 +1074,17 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_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 +libparser.la: $(libparser_la_OBJECTS) $(libparser_la_DEPENDENCIES) $(EXTRA_libparser_la_DEPENDENCIES) + $(AM_V_CCLD)$(libparser_la_LINK) $(libparser_la_OBJECTS) $(libparser_la_LIBADD) $(LIBS) + clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ @@ -913,112 +1105,151 @@ clean-noinstPROGRAMS: elements/$(am__dirstamp): @$(MKDIR_P) elements @: > elements/$(am__dirstamp) -elements/asfmux$(EXEEXT): $(elements_asfmux_OBJECTS) $(elements_asfmux_DEPENDENCIES) elements/$(am__dirstamp) +elements/asfmux$(EXEEXT): $(elements_asfmux_OBJECTS) $(elements_asfmux_DEPENDENCIES) $(EXTRA_elements_asfmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/asfmux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_asfmux_OBJECTS) $(elements_asfmux_LDADD) $(LIBS) -elements/assrender$(EXEEXT): $(elements_assrender_OBJECTS) $(elements_assrender_DEPENDENCIES) elements/$(am__dirstamp) +elements/assrender$(EXEEXT): $(elements_assrender_OBJECTS) $(elements_assrender_DEPENDENCIES) $(EXTRA_elements_assrender_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/assrender$(EXEEXT) $(AM_V_CCLD)$(elements_assrender_LINK) $(elements_assrender_OBJECTS) $(elements_assrender_LDADD) $(LIBS) -elements/autoconvert$(EXEEXT): $(elements_autoconvert_OBJECTS) $(elements_autoconvert_DEPENDENCIES) elements/$(am__dirstamp) +elements/autoconvert$(EXEEXT): $(elements_autoconvert_OBJECTS) $(elements_autoconvert_DEPENDENCIES) $(EXTRA_elements_autoconvert_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/autoconvert$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_autoconvert_OBJECTS) $(elements_autoconvert_LDADD) $(LIBS) -elements/autovideoconvert$(EXEEXT): $(elements_autovideoconvert_OBJECTS) $(elements_autovideoconvert_DEPENDENCIES) elements/$(am__dirstamp) +elements/autovideoconvert$(EXEEXT): $(elements_autovideoconvert_OBJECTS) $(elements_autovideoconvert_DEPENDENCIES) $(EXTRA_elements_autovideoconvert_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/autovideoconvert$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_autovideoconvert_OBJECTS) $(elements_autovideoconvert_LDADD) $(LIBS) -elements/camerabin$(EXEEXT): $(elements_camerabin_OBJECTS) $(elements_camerabin_DEPENDENCIES) elements/$(am__dirstamp) +elements/baseaudiovisualizer$(EXEEXT): $(elements_baseaudiovisualizer_OBJECTS) $(elements_baseaudiovisualizer_DEPENDENCIES) $(EXTRA_elements_baseaudiovisualizer_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/baseaudiovisualizer$(EXEEXT) + $(AM_V_CCLD)$(elements_baseaudiovisualizer_LINK) $(elements_baseaudiovisualizer_OBJECTS) $(elements_baseaudiovisualizer_LDADD) $(LIBS) +elements/camerabin$(EXEEXT): $(elements_camerabin_OBJECTS) $(elements_camerabin_DEPENDENCIES) $(EXTRA_elements_camerabin_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/camerabin$(EXEEXT) $(AM_V_CCLD)$(elements_camerabin_LINK) $(elements_camerabin_OBJECTS) $(elements_camerabin_LDADD) $(LIBS) -elements/camerabin2$(EXEEXT): $(elements_camerabin2_OBJECTS) $(elements_camerabin2_DEPENDENCIES) elements/$(am__dirstamp) +elements/camerabin2$(EXEEXT): $(elements_camerabin2_OBJECTS) $(elements_camerabin2_DEPENDENCIES) $(EXTRA_elements_camerabin2_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/camerabin2$(EXEEXT) $(AM_V_CCLD)$(elements_camerabin2_LINK) $(elements_camerabin2_OBJECTS) $(elements_camerabin2_LDADD) $(LIBS) -elements/dataurisrc$(EXEEXT): $(elements_dataurisrc_OBJECTS) $(elements_dataurisrc_DEPENDENCIES) elements/$(am__dirstamp) +elements/dataurisrc$(EXEEXT): $(elements_dataurisrc_OBJECTS) $(elements_dataurisrc_DEPENDENCIES) $(EXTRA_elements_dataurisrc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/dataurisrc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_dataurisrc_OBJECTS) $(elements_dataurisrc_LDADD) $(LIBS) -elements/faac$(EXEEXT): $(elements_faac_OBJECTS) $(elements_faac_DEPENDENCIES) elements/$(am__dirstamp) +elements/faac$(EXEEXT): $(elements_faac_OBJECTS) $(elements_faac_DEPENDENCIES) $(EXTRA_elements_faac_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/faac$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_faac_OBJECTS) $(elements_faac_LDADD) $(LIBS) -elements/faad$(EXEEXT): $(elements_faad_OBJECTS) $(elements_faad_DEPENDENCIES) elements/$(am__dirstamp) +elements/faad$(EXEEXT): $(elements_faad_OBJECTS) $(elements_faad_DEPENDENCIES) $(EXTRA_elements_faad_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/faad$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_faad_OBJECTS) $(elements_faad_LDADD) $(LIBS) -elements/id3mux$(EXEEXT): $(elements_id3mux_OBJECTS) $(elements_id3mux_DEPENDENCIES) elements/$(am__dirstamp) +elements/h263parse$(EXEEXT): $(elements_h263parse_OBJECTS) $(elements_h263parse_DEPENDENCIES) $(EXTRA_elements_h263parse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/h263parse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_h263parse_OBJECTS) $(elements_h263parse_LDADD) $(LIBS) +elements/h264parse$(EXEEXT): $(elements_h264parse_OBJECTS) $(elements_h264parse_DEPENDENCIES) $(EXTRA_elements_h264parse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/h264parse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_h264parse_OBJECTS) $(elements_h264parse_LDADD) $(LIBS) +elements/id3mux$(EXEEXT): $(elements_id3mux_OBJECTS) $(elements_id3mux_DEPENDENCIES) $(EXTRA_elements_id3mux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/id3mux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_id3mux_OBJECTS) $(elements_id3mux_LDADD) $(LIBS) -elements/imagecapturebin$(EXEEXT): $(elements_imagecapturebin_OBJECTS) $(elements_imagecapturebin_DEPENDENCIES) elements/$(am__dirstamp) - @rm -f elements/imagecapturebin$(EXEEXT) - $(AM_V_CCLD)$(elements_imagecapturebin_LINK) $(elements_imagecapturebin_OBJECTS) $(elements_imagecapturebin_LDADD) $(LIBS) -elements/jifmux$(EXEEXT): $(elements_jifmux_OBJECTS) $(elements_jifmux_DEPENDENCIES) elements/$(am__dirstamp) +elements/jifmux$(EXEEXT): $(elements_jifmux_OBJECTS) $(elements_jifmux_DEPENDENCIES) $(EXTRA_elements_jifmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/jifmux$(EXEEXT) $(AM_V_CCLD)$(elements_jifmux_LINK) $(elements_jifmux_OBJECTS) $(elements_jifmux_LDADD) $(LIBS) -elements/jpegparse$(EXEEXT): $(elements_jpegparse_OBJECTS) $(elements_jpegparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/jpegparse$(EXEEXT): $(elements_jpegparse_OBJECTS) $(elements_jpegparse_DEPENDENCIES) $(EXTRA_elements_jpegparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/jpegparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_jpegparse_OBJECTS) $(elements_jpegparse_LDADD) $(LIBS) -elements/kate$(EXEEXT): $(elements_kate_OBJECTS) $(elements_kate_DEPENDENCIES) elements/$(am__dirstamp) +elements/kate$(EXEEXT): $(elements_kate_OBJECTS) $(elements_kate_DEPENDENCIES) $(EXTRA_elements_kate_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/kate$(EXEEXT) $(AM_V_CCLD)$(elements_kate_LINK) $(elements_kate_OBJECTS) $(elements_kate_LDADD) $(LIBS) -elements/legacyresample$(EXEEXT): $(elements_legacyresample_OBJECTS) $(elements_legacyresample_DEPENDENCIES) elements/$(am__dirstamp) +elements/legacyresample$(EXEEXT): $(elements_legacyresample_OBJECTS) $(elements_legacyresample_DEPENDENCIES) $(EXTRA_elements_legacyresample_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/legacyresample$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_legacyresample_OBJECTS) $(elements_legacyresample_LDADD) $(LIBS) -elements/logoinsert$(EXEEXT): $(elements_logoinsert_OBJECTS) $(elements_logoinsert_DEPENDENCIES) elements/$(am__dirstamp) +elements/logoinsert$(EXEEXT): $(elements_logoinsert_OBJECTS) $(elements_logoinsert_DEPENDENCIES) $(EXTRA_elements_logoinsert_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/logoinsert$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_logoinsert_OBJECTS) $(elements_logoinsert_LDADD) $(LIBS) -elements/mpeg2enc$(EXEEXT): $(elements_mpeg2enc_OBJECTS) $(elements_mpeg2enc_DEPENDENCIES) elements/$(am__dirstamp) +elements/mpeg2enc$(EXEEXT): $(elements_mpeg2enc_OBJECTS) $(elements_mpeg2enc_DEPENDENCIES) $(EXTRA_elements_mpeg2enc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mpeg2enc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mpeg2enc_OBJECTS) $(elements_mpeg2enc_LDADD) $(LIBS) -elements/mplex$(EXEEXT): $(elements_mplex_OBJECTS) $(elements_mplex_DEPENDENCIES) elements/$(am__dirstamp) +elements/mpeg4videoparse$(EXEEXT): $(elements_mpeg4videoparse_OBJECTS) $(elements_mpeg4videoparse_DEPENDENCIES) $(EXTRA_elements_mpeg4videoparse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/mpeg4videoparse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_mpeg4videoparse_OBJECTS) $(elements_mpeg4videoparse_LDADD) $(LIBS) +elements/mpegtsmux$(EXEEXT): $(elements_mpegtsmux_OBJECTS) $(elements_mpegtsmux_DEPENDENCIES) $(EXTRA_elements_mpegtsmux_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/mpegtsmux$(EXEEXT) + $(AM_V_CCLD)$(elements_mpegtsmux_LINK) $(elements_mpegtsmux_OBJECTS) $(elements_mpegtsmux_LDADD) $(LIBS) +elements/mpegvideoparse$(EXEEXT): $(elements_mpegvideoparse_OBJECTS) $(elements_mpegvideoparse_DEPENDENCIES) $(EXTRA_elements_mpegvideoparse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/mpegvideoparse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_mpegvideoparse_OBJECTS) $(elements_mpegvideoparse_LDADD) $(LIBS) +elements/mplex$(EXEEXT): $(elements_mplex_OBJECTS) $(elements_mplex_DEPENDENCIES) $(EXTRA_elements_mplex_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mplex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mplex_OBJECTS) $(elements_mplex_LDADD) $(LIBS) -elements/mxfdemux$(EXEEXT): $(elements_mxfdemux_OBJECTS) $(elements_mxfdemux_DEPENDENCIES) elements/$(am__dirstamp) +elements/mxfdemux$(EXEEXT): $(elements_mxfdemux_OBJECTS) $(elements_mxfdemux_DEPENDENCIES) $(EXTRA_elements_mxfdemux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mxfdemux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mxfdemux_OBJECTS) $(elements_mxfdemux_LDADD) $(LIBS) -elements/mxfmux$(EXEEXT): $(elements_mxfmux_OBJECTS) $(elements_mxfmux_DEPENDENCIES) elements/$(am__dirstamp) +elements/mxfmux$(EXEEXT): $(elements_mxfmux_OBJECTS) $(elements_mxfmux_DEPENDENCIES) $(EXTRA_elements_mxfmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mxfmux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mxfmux_OBJECTS) $(elements_mxfmux_LDADD) $(LIBS) -elements/neonhttpsrc$(EXEEXT): $(elements_neonhttpsrc_OBJECTS) $(elements_neonhttpsrc_DEPENDENCIES) elements/$(am__dirstamp) +elements/neonhttpsrc$(EXEEXT): $(elements_neonhttpsrc_OBJECTS) $(elements_neonhttpsrc_DEPENDENCIES) $(EXTRA_elements_neonhttpsrc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/neonhttpsrc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_neonhttpsrc_OBJECTS) $(elements_neonhttpsrc_LDADD) $(LIBS) -elements/ofa$(EXEEXT): $(elements_ofa_OBJECTS) $(elements_ofa_DEPENDENCIES) elements/$(am__dirstamp) +elements/ofa$(EXEEXT): $(elements_ofa_OBJECTS) $(elements_ofa_DEPENDENCIES) $(EXTRA_elements_ofa_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/ofa$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_ofa_OBJECTS) $(elements_ofa_LDADD) $(LIBS) -elements/rtpmux$(EXEEXT): $(elements_rtpmux_OBJECTS) $(elements_rtpmux_DEPENDENCIES) elements/$(am__dirstamp) +elements/opus$(EXEEXT): $(elements_opus_OBJECTS) $(elements_opus_DEPENDENCIES) $(EXTRA_elements_opus_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/opus$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_opus_OBJECTS) $(elements_opus_LDADD) $(LIBS) +elements/rtpmux$(EXEEXT): $(elements_rtpmux_OBJECTS) $(elements_rtpmux_DEPENDENCIES) $(EXTRA_elements_rtpmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpmux$(EXEEXT) $(AM_V_CCLD)$(elements_rtpmux_LINK) $(elements_rtpmux_OBJECTS) $(elements_rtpmux_LDADD) $(LIBS) -elements/schroenc$(EXEEXT): $(elements_schroenc_OBJECTS) $(elements_schroenc_DEPENDENCIES) elements/$(am__dirstamp) +elements/schroenc$(EXEEXT): $(elements_schroenc_OBJECTS) $(elements_schroenc_DEPENDENCIES) $(EXTRA_elements_schroenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/schroenc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_schroenc_OBJECTS) $(elements_schroenc_LDADD) $(LIBS) -elements/timidity$(EXEEXT): $(elements_timidity_OBJECTS) $(elements_timidity_DEPENDENCIES) elements/$(am__dirstamp) +elements/timidity$(EXEEXT): $(elements_timidity_OBJECTS) $(elements_timidity_DEPENDENCIES) $(EXTRA_elements_timidity_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/timidity$(EXEEXT) $(AM_V_CCLD)$(elements_timidity_LINK) $(elements_timidity_OBJECTS) $(elements_timidity_LDADD) $(LIBS) -elements/viewfinderbin$(EXEEXT): $(elements_viewfinderbin_OBJECTS) $(elements_viewfinderbin_DEPENDENCIES) elements/$(am__dirstamp) +elements/viewfinderbin$(EXEEXT): $(elements_viewfinderbin_OBJECTS) $(elements_viewfinderbin_DEPENDENCIES) $(EXTRA_elements_viewfinderbin_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/viewfinderbin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_viewfinderbin_OBJECTS) $(elements_viewfinderbin_LDADD) $(LIBS) -elements/vp8dec$(EXEEXT): $(elements_vp8dec_OBJECTS) $(elements_vp8dec_DEPENDENCIES) elements/$(am__dirstamp) +elements/voaacenc$(EXEEXT): $(elements_voaacenc_OBJECTS) $(elements_voaacenc_DEPENDENCIES) $(EXTRA_elements_voaacenc_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/voaacenc$(EXEEXT) + $(AM_V_CCLD)$(elements_voaacenc_LINK) $(elements_voaacenc_OBJECTS) $(elements_voaacenc_LDADD) $(LIBS) +elements/voamrwbenc$(EXEEXT): $(elements_voamrwbenc_OBJECTS) $(elements_voamrwbenc_DEPENDENCIES) $(EXTRA_elements_voamrwbenc_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/voamrwbenc$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_voamrwbenc_OBJECTS) $(elements_voamrwbenc_LDADD) $(LIBS) +elements/vp8dec$(EXEEXT): $(elements_vp8dec_OBJECTS) $(elements_vp8dec_DEPENDENCIES) $(EXTRA_elements_vp8dec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/vp8dec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_vp8dec_OBJECTS) $(elements_vp8dec_LDADD) $(LIBS) -elements/vp8enc$(EXEEXT): $(elements_vp8enc_OBJECTS) $(elements_vp8enc_DEPENDENCIES) elements/$(am__dirstamp) +elements/vp8enc$(EXEEXT): $(elements_vp8enc_OBJECTS) $(elements_vp8enc_DEPENDENCIES) $(EXTRA_elements_vp8enc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/vp8enc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_vp8enc_OBJECTS) $(elements_vp8enc_LDADD) $(LIBS) -elements/zbar$(EXEEXT): $(elements_zbar_OBJECTS) $(elements_zbar_DEPENDENCIES) elements/$(am__dirstamp) +elements/zbar$(EXEEXT): $(elements_zbar_OBJECTS) $(elements_zbar_DEPENDENCIES) $(EXTRA_elements_zbar_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/zbar$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_zbar_OBJECTS) $(elements_zbar_LDADD) $(LIBS) generic/$(am__dirstamp): @$(MKDIR_P) generic @: > generic/$(am__dirstamp) -generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) generic/$(am__dirstamp) +generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp) @rm -f generic/states$(EXEEXT) $(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS) +libs/$(am__dirstamp): + @$(MKDIR_P) libs + @: > libs/$(am__dirstamp) +libs/h264parser$(EXEEXT): $(libs_h264parser_OBJECTS) $(libs_h264parser_DEPENDENCIES) $(EXTRA_libs_h264parser_DEPENDENCIES) libs/$(am__dirstamp) + @rm -f libs/h264parser$(EXEEXT) + $(AM_V_CCLD)$(libs_h264parser_LINK) $(libs_h264parser_OBJECTS) $(libs_h264parser_LDADD) $(LIBS) +libs/mpegvideoparser$(EXEEXT): $(libs_mpegvideoparser_OBJECTS) $(libs_mpegvideoparser_DEPENDENCIES) $(EXTRA_libs_mpegvideoparser_DEPENDENCIES) libs/$(am__dirstamp) + @rm -f libs/mpegvideoparser$(EXEEXT) + $(AM_V_CCLD)$(libs_mpegvideoparser_LINK) $(libs_mpegvideoparser_OBJECTS) $(libs_mpegvideoparser_LDADD) $(LIBS) +libs/vc1parser$(EXEEXT): $(libs_vc1parser_OBJECTS) $(libs_vc1parser_DEPENDENCIES) $(EXTRA_libs_vc1parser_DEPENDENCIES) libs/$(am__dirstamp) + @rm -f libs/vc1parser$(EXEEXT) + $(AM_V_CCLD)$(libs_vc1parser_LINK) $(libs_vc1parser_OBJECTS) $(libs_vc1parser_LDADD) $(LIBS) orc/$(am__dirstamp): @$(MKDIR_P) orc @: > orc/$(am__dirstamp) -orc/cog$(EXEEXT): $(orc_cog_OBJECTS) $(orc_cog_DEPENDENCIES) orc/$(am__dirstamp) +orc/cog$(EXEEXT): $(orc_cog_OBJECTS) $(orc_cog_DEPENDENCIES) $(EXTRA_orc_cog_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/cog$(EXEEXT) $(AM_V_CCLD)$(orc_cog_LINK) $(orc_cog_OBJECTS) $(orc_cog_LDADD) $(LIBS) pipelines/$(am__dirstamp): @$(MKDIR_P) pipelines @: > pipelines/$(am__dirstamp) -pipelines/mimic$(EXEEXT): $(pipelines_mimic_OBJECTS) $(pipelines_mimic_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/colorspace$(EXEEXT): $(pipelines_colorspace_OBJECTS) $(pipelines_colorspace_DEPENDENCIES) $(EXTRA_pipelines_colorspace_DEPENDENCIES) pipelines/$(am__dirstamp) + @rm -f pipelines/colorspace$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pipelines_colorspace_OBJECTS) $(pipelines_colorspace_LDADD) $(LIBS) +pipelines/mimic$(EXEEXT): $(pipelines_mimic_OBJECTS) $(pipelines_mimic_DEPENDENCIES) $(EXTRA_pipelines_mimic_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/mimic$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_mimic_OBJECTS) $(pipelines_mimic_LDADD) $(LIBS) -pipelines/mxf$(EXEEXT): $(pipelines_mxf_OBJECTS) $(pipelines_mxf_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/mxf$(EXEEXT): $(pipelines_mxf_OBJECTS) $(pipelines_mxf_DEPENDENCIES) $(EXTRA_pipelines_mxf_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/mxf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_mxf_OBJECTS) $(pipelines_mxf_LDADD) $(LIBS) @@ -1031,33 +1262,47 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asfmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/autoconvert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/autovideoconvert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colorspace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dataurisrc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_assrender-assrender.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_camerabin-camerabin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_camerabin2-camerabin2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_imagecapturebin-imagecapturebin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_jifmux-jifmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_kate-kate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_mpegtsmux-mpegtsmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_timidity-timidity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_voaacenc-voaacenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faad.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h263parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h264parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id3mux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpegparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/legacyresample.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparser_la-parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_h264parser-h264parser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_vc1parser-vc1parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logoinsert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mimic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpeg2enc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpeg4videoparse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegvideoparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mplex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mxf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mxfdemux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mxfmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/neonhttpsrc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ofa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_cog-cog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schroenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/states.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/viewfinderbin.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/voamrwbenc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vp8dec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vp8enc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zbar.Po@am__quote@ @@ -1065,554 +1310,674 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libparser_la-parser.lo: elements/parser.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) $(libparser_la_CFLAGS) $(CFLAGS) -MT libparser_la-parser.lo -MD -MP -MF $(DEPDIR)/libparser_la-parser.Tpo -c -o libparser_la-parser.lo `test -f 'elements/parser.c' || echo '$(srcdir)/'`elements/parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparser_la-parser.Tpo $(DEPDIR)/libparser_la-parser.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/parser.c' object='libparser_la-parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparser_la_CFLAGS) $(CFLAGS) -c -o libparser_la-parser.lo `test -f 'elements/parser.c' || echo '$(srcdir)/'`elements/parser.c asfmux.o: elements/asfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT asfmux.o -MD -MP -MF $(DEPDIR)/asfmux.Tpo -c -o asfmux.o `test -f 'elements/asfmux.c' || echo '$(srcdir)/'`elements/asfmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/asfmux.Tpo $(DEPDIR)/asfmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/asfmux.c' object='asfmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/asfmux.c' object='asfmux.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) $(AM_CFLAGS) $(CFLAGS) -c -o asfmux.o `test -f 'elements/asfmux.c' || echo '$(srcdir)/'`elements/asfmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o asfmux.o `test -f 'elements/asfmux.c' || echo '$(srcdir)/'`elements/asfmux.c asfmux.obj: elements/asfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT asfmux.obj -MD -MP -MF $(DEPDIR)/asfmux.Tpo -c -o asfmux.obj `if test -f 'elements/asfmux.c'; then $(CYGPATH_W) 'elements/asfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/asfmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/asfmux.Tpo $(DEPDIR)/asfmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/asfmux.c' object='asfmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/asfmux.c' object='asfmux.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) $(AM_CFLAGS) $(CFLAGS) -c -o asfmux.obj `if test -f 'elements/asfmux.c'; then $(CYGPATH_W) 'elements/asfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/asfmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o asfmux.obj `if test -f 'elements/asfmux.c'; then $(CYGPATH_W) 'elements/asfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/asfmux.c'; fi` elements_assrender-assrender.o: elements/assrender.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_assrender_CFLAGS) $(CFLAGS) -MT elements_assrender-assrender.o -MD -MP -MF $(DEPDIR)/elements_assrender-assrender.Tpo -c -o elements_assrender-assrender.o `test -f 'elements/assrender.c' || echo '$(srcdir)/'`elements/assrender.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_assrender-assrender.Tpo $(DEPDIR)/elements_assrender-assrender.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/assrender.c' object='elements_assrender-assrender.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/assrender.c' object='elements_assrender-assrender.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) $(elements_assrender_CFLAGS) $(CFLAGS) -c -o elements_assrender-assrender.o `test -f 'elements/assrender.c' || echo '$(srcdir)/'`elements/assrender.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_assrender_CFLAGS) $(CFLAGS) -c -o elements_assrender-assrender.o `test -f 'elements/assrender.c' || echo '$(srcdir)/'`elements/assrender.c elements_assrender-assrender.obj: elements/assrender.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_assrender_CFLAGS) $(CFLAGS) -MT elements_assrender-assrender.obj -MD -MP -MF $(DEPDIR)/elements_assrender-assrender.Tpo -c -o elements_assrender-assrender.obj `if test -f 'elements/assrender.c'; then $(CYGPATH_W) 'elements/assrender.c'; else $(CYGPATH_W) '$(srcdir)/elements/assrender.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_assrender-assrender.Tpo $(DEPDIR)/elements_assrender-assrender.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/assrender.c' object='elements_assrender-assrender.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/assrender.c' object='elements_assrender-assrender.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) $(elements_assrender_CFLAGS) $(CFLAGS) -c -o elements_assrender-assrender.obj `if test -f 'elements/assrender.c'; then $(CYGPATH_W) 'elements/assrender.c'; else $(CYGPATH_W) '$(srcdir)/elements/assrender.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_assrender_CFLAGS) $(CFLAGS) -c -o elements_assrender-assrender.obj `if test -f 'elements/assrender.c'; then $(CYGPATH_W) 'elements/assrender.c'; else $(CYGPATH_W) '$(srcdir)/elements/assrender.c'; fi` autoconvert.o: elements/autoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autoconvert.o -MD -MP -MF $(DEPDIR)/autoconvert.Tpo -c -o autoconvert.o `test -f 'elements/autoconvert.c' || echo '$(srcdir)/'`elements/autoconvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autoconvert.Tpo $(DEPDIR)/autoconvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autoconvert.c' object='autoconvert.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autoconvert.c' object='autoconvert.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) $(AM_CFLAGS) $(CFLAGS) -c -o autoconvert.o `test -f 'elements/autoconvert.c' || echo '$(srcdir)/'`elements/autoconvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autoconvert.o `test -f 'elements/autoconvert.c' || echo '$(srcdir)/'`elements/autoconvert.c autoconvert.obj: elements/autoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autoconvert.obj -MD -MP -MF $(DEPDIR)/autoconvert.Tpo -c -o autoconvert.obj `if test -f 'elements/autoconvert.c'; then $(CYGPATH_W) 'elements/autoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autoconvert.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autoconvert.Tpo $(DEPDIR)/autoconvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autoconvert.c' object='autoconvert.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autoconvert.c' object='autoconvert.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) $(AM_CFLAGS) $(CFLAGS) -c -o autoconvert.obj `if test -f 'elements/autoconvert.c'; then $(CYGPATH_W) 'elements/autoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autoconvert.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autoconvert.obj `if test -f 'elements/autoconvert.c'; then $(CYGPATH_W) 'elements/autoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autoconvert.c'; fi` autovideoconvert.o: elements/autovideoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autovideoconvert.o -MD -MP -MF $(DEPDIR)/autovideoconvert.Tpo -c -o autovideoconvert.o `test -f 'elements/autovideoconvert.c' || echo '$(srcdir)/'`elements/autovideoconvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autovideoconvert.Tpo $(DEPDIR)/autovideoconvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autovideoconvert.c' object='autovideoconvert.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autovideoconvert.c' object='autovideoconvert.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) $(AM_CFLAGS) $(CFLAGS) -c -o autovideoconvert.o `test -f 'elements/autovideoconvert.c' || echo '$(srcdir)/'`elements/autovideoconvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autovideoconvert.o `test -f 'elements/autovideoconvert.c' || echo '$(srcdir)/'`elements/autovideoconvert.c autovideoconvert.obj: elements/autovideoconvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autovideoconvert.obj -MD -MP -MF $(DEPDIR)/autovideoconvert.Tpo -c -o autovideoconvert.obj `if test -f 'elements/autovideoconvert.c'; then $(CYGPATH_W) 'elements/autovideoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autovideoconvert.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autovideoconvert.Tpo $(DEPDIR)/autovideoconvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autovideoconvert.c' object='autovideoconvert.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autovideoconvert.c' object='autovideoconvert.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) $(AM_CFLAGS) $(CFLAGS) -c -o autovideoconvert.obj `if test -f 'elements/autovideoconvert.c'; then $(CYGPATH_W) 'elements/autovideoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autovideoconvert.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autovideoconvert.obj `if test -f 'elements/autovideoconvert.c'; then $(CYGPATH_W) 'elements/autovideoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/autovideoconvert.c'; fi` + +elements_baseaudiovisualizer-baseaudiovisualizer.o: elements/baseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT elements_baseaudiovisualizer-baseaudiovisualizer.o -MD -MP -MF $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Tpo -c -o elements_baseaudiovisualizer-baseaudiovisualizer.o `test -f 'elements/baseaudiovisualizer.c' || echo '$(srcdir)/'`elements/baseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Tpo $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/baseaudiovisualizer.c' object='elements_baseaudiovisualizer-baseaudiovisualizer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o elements_baseaudiovisualizer-baseaudiovisualizer.o `test -f 'elements/baseaudiovisualizer.c' || echo '$(srcdir)/'`elements/baseaudiovisualizer.c + +elements_baseaudiovisualizer-baseaudiovisualizer.obj: elements/baseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT elements_baseaudiovisualizer-baseaudiovisualizer.obj -MD -MP -MF $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Tpo -c -o elements_baseaudiovisualizer-baseaudiovisualizer.obj `if test -f 'elements/baseaudiovisualizer.c'; then $(CYGPATH_W) 'elements/baseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/baseaudiovisualizer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Tpo $(DEPDIR)/elements_baseaudiovisualizer-baseaudiovisualizer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/baseaudiovisualizer.c' object='elements_baseaudiovisualizer-baseaudiovisualizer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o elements_baseaudiovisualizer-baseaudiovisualizer.obj `if test -f 'elements/baseaudiovisualizer.c'; then $(CYGPATH_W) 'elements/baseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/baseaudiovisualizer.c'; fi` + +elements_baseaudiovisualizer-gstbaseaudiovisualizer.o: $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT elements_baseaudiovisualizer-gstbaseaudiovisualizer.o -MD -MP -MF $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Tpo -c -o elements_baseaudiovisualizer-gstbaseaudiovisualizer.o `test -f '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c' || echo '$(srcdir)/'`$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Tpo $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c' object='elements_baseaudiovisualizer-gstbaseaudiovisualizer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o elements_baseaudiovisualizer-gstbaseaudiovisualizer.o `test -f '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c' || echo '$(srcdir)/'`$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c + +elements_baseaudiovisualizer-gstbaseaudiovisualizer.obj: $(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -MT elements_baseaudiovisualizer-gstbaseaudiovisualizer.obj -MD -MP -MF $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Tpo -c -o elements_baseaudiovisualizer-gstbaseaudiovisualizer.obj `if test -f '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; then $(CYGPATH_W) '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Tpo $(DEPDIR)/elements_baseaudiovisualizer-gstbaseaudiovisualizer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c' object='elements_baseaudiovisualizer-gstbaseaudiovisualizer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_baseaudiovisualizer_CFLAGS) $(CFLAGS) -c -o elements_baseaudiovisualizer-gstbaseaudiovisualizer.obj `if test -f '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; then $(CYGPATH_W) '$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/gst/audiovisualizers/gstbaseaudiovisualizer.c'; fi` elements_camerabin-camerabin.o: elements/camerabin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin_CFLAGS) $(CFLAGS) -MT elements_camerabin-camerabin.o -MD -MP -MF $(DEPDIR)/elements_camerabin-camerabin.Tpo -c -o elements_camerabin-camerabin.o `test -f 'elements/camerabin.c' || echo '$(srcdir)/'`elements/camerabin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_camerabin-camerabin.Tpo $(DEPDIR)/elements_camerabin-camerabin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/camerabin.c' object='elements_camerabin-camerabin.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/camerabin.c' object='elements_camerabin-camerabin.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) $(elements_camerabin_CFLAGS) $(CFLAGS) -c -o elements_camerabin-camerabin.o `test -f 'elements/camerabin.c' || echo '$(srcdir)/'`elements/camerabin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin_CFLAGS) $(CFLAGS) -c -o elements_camerabin-camerabin.o `test -f 'elements/camerabin.c' || echo '$(srcdir)/'`elements/camerabin.c elements_camerabin-camerabin.obj: elements/camerabin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin_CFLAGS) $(CFLAGS) -MT elements_camerabin-camerabin.obj -MD -MP -MF $(DEPDIR)/elements_camerabin-camerabin.Tpo -c -o elements_camerabin-camerabin.obj `if test -f 'elements/camerabin.c'; then $(CYGPATH_W) 'elements/camerabin.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_camerabin-camerabin.Tpo $(DEPDIR)/elements_camerabin-camerabin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/camerabin.c' object='elements_camerabin-camerabin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/camerabin.c' object='elements_camerabin-camerabin.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) $(elements_camerabin_CFLAGS) $(CFLAGS) -c -o elements_camerabin-camerabin.obj `if test -f 'elements/camerabin.c'; then $(CYGPATH_W) 'elements/camerabin.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin_CFLAGS) $(CFLAGS) -c -o elements_camerabin-camerabin.obj `if test -f 'elements/camerabin.c'; then $(CYGPATH_W) 'elements/camerabin.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin.c'; fi` elements_camerabin2-camerabin2.o: elements/camerabin2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin2_CFLAGS) $(CFLAGS) -MT elements_camerabin2-camerabin2.o -MD -MP -MF $(DEPDIR)/elements_camerabin2-camerabin2.Tpo -c -o elements_camerabin2-camerabin2.o `test -f 'elements/camerabin2.c' || echo '$(srcdir)/'`elements/camerabin2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_camerabin2-camerabin2.Tpo $(DEPDIR)/elements_camerabin2-camerabin2.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/camerabin2.c' object='elements_camerabin2-camerabin2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/camerabin2.c' object='elements_camerabin2-camerabin2.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) $(elements_camerabin2_CFLAGS) $(CFLAGS) -c -o elements_camerabin2-camerabin2.o `test -f 'elements/camerabin2.c' || echo '$(srcdir)/'`elements/camerabin2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin2_CFLAGS) $(CFLAGS) -c -o elements_camerabin2-camerabin2.o `test -f 'elements/camerabin2.c' || echo '$(srcdir)/'`elements/camerabin2.c elements_camerabin2-camerabin2.obj: elements/camerabin2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin2_CFLAGS) $(CFLAGS) -MT elements_camerabin2-camerabin2.obj -MD -MP -MF $(DEPDIR)/elements_camerabin2-camerabin2.Tpo -c -o elements_camerabin2-camerabin2.obj `if test -f 'elements/camerabin2.c'; then $(CYGPATH_W) 'elements/camerabin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin2.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_camerabin2-camerabin2.Tpo $(DEPDIR)/elements_camerabin2-camerabin2.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/camerabin2.c' object='elements_camerabin2-camerabin2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/camerabin2.c' object='elements_camerabin2-camerabin2.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) $(elements_camerabin2_CFLAGS) $(CFLAGS) -c -o elements_camerabin2-camerabin2.obj `if test -f 'elements/camerabin2.c'; then $(CYGPATH_W) 'elements/camerabin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_camerabin2_CFLAGS) $(CFLAGS) -c -o elements_camerabin2-camerabin2.obj `if test -f 'elements/camerabin2.c'; then $(CYGPATH_W) 'elements/camerabin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/camerabin2.c'; fi` dataurisrc.o: elements/dataurisrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dataurisrc.o -MD -MP -MF $(DEPDIR)/dataurisrc.Tpo -c -o dataurisrc.o `test -f 'elements/dataurisrc.c' || echo '$(srcdir)/'`elements/dataurisrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dataurisrc.Tpo $(DEPDIR)/dataurisrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/dataurisrc.c' object='dataurisrc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/dataurisrc.c' object='dataurisrc.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) $(AM_CFLAGS) $(CFLAGS) -c -o dataurisrc.o `test -f 'elements/dataurisrc.c' || echo '$(srcdir)/'`elements/dataurisrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dataurisrc.o `test -f 'elements/dataurisrc.c' || echo '$(srcdir)/'`elements/dataurisrc.c dataurisrc.obj: elements/dataurisrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dataurisrc.obj -MD -MP -MF $(DEPDIR)/dataurisrc.Tpo -c -o dataurisrc.obj `if test -f 'elements/dataurisrc.c'; then $(CYGPATH_W) 'elements/dataurisrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/dataurisrc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dataurisrc.Tpo $(DEPDIR)/dataurisrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/dataurisrc.c' object='dataurisrc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/dataurisrc.c' object='dataurisrc.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) $(AM_CFLAGS) $(CFLAGS) -c -o dataurisrc.obj `if test -f 'elements/dataurisrc.c'; then $(CYGPATH_W) 'elements/dataurisrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/dataurisrc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dataurisrc.obj `if test -f 'elements/dataurisrc.c'; then $(CYGPATH_W) 'elements/dataurisrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/dataurisrc.c'; fi` faac.o: elements/faac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT faac.o -MD -MP -MF $(DEPDIR)/faac.Tpo -c -o faac.o `test -f 'elements/faac.c' || echo '$(srcdir)/'`elements/faac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faac.Tpo $(DEPDIR)/faac.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/faac.c' object='faac.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/faac.c' object='faac.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) $(AM_CFLAGS) $(CFLAGS) -c -o faac.o `test -f 'elements/faac.c' || echo '$(srcdir)/'`elements/faac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o faac.o `test -f 'elements/faac.c' || echo '$(srcdir)/'`elements/faac.c faac.obj: elements/faac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT faac.obj -MD -MP -MF $(DEPDIR)/faac.Tpo -c -o faac.obj `if test -f 'elements/faac.c'; then $(CYGPATH_W) 'elements/faac.c'; else $(CYGPATH_W) '$(srcdir)/elements/faac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faac.Tpo $(DEPDIR)/faac.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/faac.c' object='faac.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/faac.c' object='faac.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) $(AM_CFLAGS) $(CFLAGS) -c -o faac.obj `if test -f 'elements/faac.c'; then $(CYGPATH_W) 'elements/faac.c'; else $(CYGPATH_W) '$(srcdir)/elements/faac.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o faac.obj `if test -f 'elements/faac.c'; then $(CYGPATH_W) 'elements/faac.c'; else $(CYGPATH_W) '$(srcdir)/elements/faac.c'; fi` faad.o: elements/faad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT faad.o -MD -MP -MF $(DEPDIR)/faad.Tpo -c -o faad.o `test -f 'elements/faad.c' || echo '$(srcdir)/'`elements/faad.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faad.Tpo $(DEPDIR)/faad.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/faad.c' object='faad.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/faad.c' object='faad.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) $(AM_CFLAGS) $(CFLAGS) -c -o faad.o `test -f 'elements/faad.c' || echo '$(srcdir)/'`elements/faad.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o faad.o `test -f 'elements/faad.c' || echo '$(srcdir)/'`elements/faad.c faad.obj: elements/faad.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT faad.obj -MD -MP -MF $(DEPDIR)/faad.Tpo -c -o faad.obj `if test -f 'elements/faad.c'; then $(CYGPATH_W) 'elements/faad.c'; else $(CYGPATH_W) '$(srcdir)/elements/faad.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faad.Tpo $(DEPDIR)/faad.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/faad.c' object='faad.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/faad.c' object='faad.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o faad.obj `if test -f 'elements/faad.c'; then $(CYGPATH_W) 'elements/faad.c'; else $(CYGPATH_W) '$(srcdir)/elements/faad.c'; fi` + +h263parse.o: elements/h263parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT h263parse.o -MD -MP -MF $(DEPDIR)/h263parse.Tpo -c -o h263parse.o `test -f 'elements/h263parse.c' || echo '$(srcdir)/'`elements/h263parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/h263parse.Tpo $(DEPDIR)/h263parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/h263parse.c' object='h263parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o h263parse.o `test -f 'elements/h263parse.c' || echo '$(srcdir)/'`elements/h263parse.c + +h263parse.obj: elements/h263parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT h263parse.obj -MD -MP -MF $(DEPDIR)/h263parse.Tpo -c -o h263parse.obj `if test -f 'elements/h263parse.c'; then $(CYGPATH_W) 'elements/h263parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/h263parse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/h263parse.Tpo $(DEPDIR)/h263parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/h263parse.c' object='h263parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o h263parse.obj `if test -f 'elements/h263parse.c'; then $(CYGPATH_W) 'elements/h263parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/h263parse.c'; fi` + +h264parse.o: elements/h264parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT h264parse.o -MD -MP -MF $(DEPDIR)/h264parse.Tpo -c -o h264parse.o `test -f 'elements/h264parse.c' || echo '$(srcdir)/'`elements/h264parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/h264parse.Tpo $(DEPDIR)/h264parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/h264parse.c' object='h264parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o h264parse.o `test -f 'elements/h264parse.c' || echo '$(srcdir)/'`elements/h264parse.c + +h264parse.obj: elements/h264parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT h264parse.obj -MD -MP -MF $(DEPDIR)/h264parse.Tpo -c -o h264parse.obj `if test -f 'elements/h264parse.c'; then $(CYGPATH_W) 'elements/h264parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/h264parse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/h264parse.Tpo $(DEPDIR)/h264parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/h264parse.c' object='h264parse.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) $(AM_CFLAGS) $(CFLAGS) -c -o faad.obj `if test -f 'elements/faad.c'; then $(CYGPATH_W) 'elements/faad.c'; else $(CYGPATH_W) '$(srcdir)/elements/faad.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o h264parse.obj `if test -f 'elements/h264parse.c'; then $(CYGPATH_W) 'elements/h264parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/h264parse.c'; fi` id3mux.o: elements/id3mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3mux.o -MD -MP -MF $(DEPDIR)/id3mux.Tpo -c -o id3mux.o `test -f 'elements/id3mux.c' || echo '$(srcdir)/'`elements/id3mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3mux.Tpo $(DEPDIR)/id3mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3mux.c' object='id3mux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3mux.c' object='id3mux.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) $(AM_CFLAGS) $(CFLAGS) -c -o id3mux.o `test -f 'elements/id3mux.c' || echo '$(srcdir)/'`elements/id3mux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3mux.o `test -f 'elements/id3mux.c' || echo '$(srcdir)/'`elements/id3mux.c id3mux.obj: elements/id3mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3mux.obj -MD -MP -MF $(DEPDIR)/id3mux.Tpo -c -o id3mux.obj `if test -f 'elements/id3mux.c'; then $(CYGPATH_W) 'elements/id3mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3mux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3mux.Tpo $(DEPDIR)/id3mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3mux.c' object='id3mux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3mux.c' object='id3mux.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) $(AM_CFLAGS) $(CFLAGS) -c -o id3mux.obj `if test -f 'elements/id3mux.c'; then $(CYGPATH_W) 'elements/id3mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3mux.c'; fi` - -elements_imagecapturebin-imagecapturebin.o: elements/imagecapturebin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagecapturebin_CFLAGS) $(CFLAGS) -MT elements_imagecapturebin-imagecapturebin.o -MD -MP -MF $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Tpo -c -o elements_imagecapturebin-imagecapturebin.o `test -f 'elements/imagecapturebin.c' || echo '$(srcdir)/'`elements/imagecapturebin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Tpo $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/imagecapturebin.c' object='elements_imagecapturebin-imagecapturebin.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) $(elements_imagecapturebin_CFLAGS) $(CFLAGS) -c -o elements_imagecapturebin-imagecapturebin.o `test -f 'elements/imagecapturebin.c' || echo '$(srcdir)/'`elements/imagecapturebin.c - -elements_imagecapturebin-imagecapturebin.obj: elements/imagecapturebin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagecapturebin_CFLAGS) $(CFLAGS) -MT elements_imagecapturebin-imagecapturebin.obj -MD -MP -MF $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Tpo -c -o elements_imagecapturebin-imagecapturebin.obj `if test -f 'elements/imagecapturebin.c'; then $(CYGPATH_W) 'elements/imagecapturebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/imagecapturebin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Tpo $(DEPDIR)/elements_imagecapturebin-imagecapturebin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/imagecapturebin.c' object='elements_imagecapturebin-imagecapturebin.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) $(elements_imagecapturebin_CFLAGS) $(CFLAGS) -c -o elements_imagecapturebin-imagecapturebin.obj `if test -f 'elements/imagecapturebin.c'; then $(CYGPATH_W) 'elements/imagecapturebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/imagecapturebin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3mux.obj `if test -f 'elements/id3mux.c'; then $(CYGPATH_W) 'elements/id3mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3mux.c'; fi` elements_jifmux-jifmux.o: elements/jifmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jifmux_CFLAGS) $(CFLAGS) -MT elements_jifmux-jifmux.o -MD -MP -MF $(DEPDIR)/elements_jifmux-jifmux.Tpo -c -o elements_jifmux-jifmux.o `test -f 'elements/jifmux.c' || echo '$(srcdir)/'`elements/jifmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_jifmux-jifmux.Tpo $(DEPDIR)/elements_jifmux-jifmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jifmux.c' object='elements_jifmux-jifmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jifmux.c' object='elements_jifmux-jifmux.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) $(elements_jifmux_CFLAGS) $(CFLAGS) -c -o elements_jifmux-jifmux.o `test -f 'elements/jifmux.c' || echo '$(srcdir)/'`elements/jifmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jifmux_CFLAGS) $(CFLAGS) -c -o elements_jifmux-jifmux.o `test -f 'elements/jifmux.c' || echo '$(srcdir)/'`elements/jifmux.c elements_jifmux-jifmux.obj: elements/jifmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jifmux_CFLAGS) $(CFLAGS) -MT elements_jifmux-jifmux.obj -MD -MP -MF $(DEPDIR)/elements_jifmux-jifmux.Tpo -c -o elements_jifmux-jifmux.obj `if test -f 'elements/jifmux.c'; then $(CYGPATH_W) 'elements/jifmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/jifmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_jifmux-jifmux.Tpo $(DEPDIR)/elements_jifmux-jifmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jifmux.c' object='elements_jifmux-jifmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jifmux.c' object='elements_jifmux-jifmux.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) $(elements_jifmux_CFLAGS) $(CFLAGS) -c -o elements_jifmux-jifmux.obj `if test -f 'elements/jifmux.c'; then $(CYGPATH_W) 'elements/jifmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/jifmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jifmux_CFLAGS) $(CFLAGS) -c -o elements_jifmux-jifmux.obj `if test -f 'elements/jifmux.c'; then $(CYGPATH_W) 'elements/jifmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/jifmux.c'; fi` jpegparse.o: elements/jpegparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jpegparse.o -MD -MP -MF $(DEPDIR)/jpegparse.Tpo -c -o jpegparse.o `test -f 'elements/jpegparse.c' || echo '$(srcdir)/'`elements/jpegparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jpegparse.Tpo $(DEPDIR)/jpegparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jpegparse.c' object='jpegparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jpegparse.c' object='jpegparse.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) $(AM_CFLAGS) $(CFLAGS) -c -o jpegparse.o `test -f 'elements/jpegparse.c' || echo '$(srcdir)/'`elements/jpegparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jpegparse.o `test -f 'elements/jpegparse.c' || echo '$(srcdir)/'`elements/jpegparse.c jpegparse.obj: elements/jpegparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT jpegparse.obj -MD -MP -MF $(DEPDIR)/jpegparse.Tpo -c -o jpegparse.obj `if test -f 'elements/jpegparse.c'; then $(CYGPATH_W) 'elements/jpegparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jpegparse.Tpo $(DEPDIR)/jpegparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jpegparse.c' object='jpegparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jpegparse.c' object='jpegparse.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) $(AM_CFLAGS) $(CFLAGS) -c -o jpegparse.obj `if test -f 'elements/jpegparse.c'; then $(CYGPATH_W) 'elements/jpegparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jpegparse.obj `if test -f 'elements/jpegparse.c'; then $(CYGPATH_W) 'elements/jpegparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegparse.c'; fi` elements_kate-kate.o: elements/kate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_kate_CFLAGS) $(CFLAGS) -MT elements_kate-kate.o -MD -MP -MF $(DEPDIR)/elements_kate-kate.Tpo -c -o elements_kate-kate.o `test -f 'elements/kate.c' || echo '$(srcdir)/'`elements/kate.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_kate-kate.Tpo $(DEPDIR)/elements_kate-kate.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/kate.c' object='elements_kate-kate.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/kate.c' object='elements_kate-kate.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) $(elements_kate_CFLAGS) $(CFLAGS) -c -o elements_kate-kate.o `test -f 'elements/kate.c' || echo '$(srcdir)/'`elements/kate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_kate_CFLAGS) $(CFLAGS) -c -o elements_kate-kate.o `test -f 'elements/kate.c' || echo '$(srcdir)/'`elements/kate.c elements_kate-kate.obj: elements/kate.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_kate_CFLAGS) $(CFLAGS) -MT elements_kate-kate.obj -MD -MP -MF $(DEPDIR)/elements_kate-kate.Tpo -c -o elements_kate-kate.obj `if test -f 'elements/kate.c'; then $(CYGPATH_W) 'elements/kate.c'; else $(CYGPATH_W) '$(srcdir)/elements/kate.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_kate-kate.Tpo $(DEPDIR)/elements_kate-kate.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/kate.c' object='elements_kate-kate.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/kate.c' object='elements_kate-kate.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) $(elements_kate_CFLAGS) $(CFLAGS) -c -o elements_kate-kate.obj `if test -f 'elements/kate.c'; then $(CYGPATH_W) 'elements/kate.c'; else $(CYGPATH_W) '$(srcdir)/elements/kate.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_kate_CFLAGS) $(CFLAGS) -c -o elements_kate-kate.obj `if test -f 'elements/kate.c'; then $(CYGPATH_W) 'elements/kate.c'; else $(CYGPATH_W) '$(srcdir)/elements/kate.c'; fi` legacyresample.o: elements/legacyresample.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT legacyresample.o -MD -MP -MF $(DEPDIR)/legacyresample.Tpo -c -o legacyresample.o `test -f 'elements/legacyresample.c' || echo '$(srcdir)/'`elements/legacyresample.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/legacyresample.Tpo $(DEPDIR)/legacyresample.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/legacyresample.c' object='legacyresample.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/legacyresample.c' object='legacyresample.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) $(AM_CFLAGS) $(CFLAGS) -c -o legacyresample.o `test -f 'elements/legacyresample.c' || echo '$(srcdir)/'`elements/legacyresample.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o legacyresample.o `test -f 'elements/legacyresample.c' || echo '$(srcdir)/'`elements/legacyresample.c legacyresample.obj: elements/legacyresample.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT legacyresample.obj -MD -MP -MF $(DEPDIR)/legacyresample.Tpo -c -o legacyresample.obj `if test -f 'elements/legacyresample.c'; then $(CYGPATH_W) 'elements/legacyresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/legacyresample.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/legacyresample.Tpo $(DEPDIR)/legacyresample.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/legacyresample.c' object='legacyresample.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/legacyresample.c' object='legacyresample.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) $(AM_CFLAGS) $(CFLAGS) -c -o legacyresample.obj `if test -f 'elements/legacyresample.c'; then $(CYGPATH_W) 'elements/legacyresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/legacyresample.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o legacyresample.obj `if test -f 'elements/legacyresample.c'; then $(CYGPATH_W) 'elements/legacyresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/legacyresample.c'; fi` logoinsert.o: elements/logoinsert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT logoinsert.o -MD -MP -MF $(DEPDIR)/logoinsert.Tpo -c -o logoinsert.o `test -f 'elements/logoinsert.c' || echo '$(srcdir)/'`elements/logoinsert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/logoinsert.Tpo $(DEPDIR)/logoinsert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/logoinsert.c' object='logoinsert.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/logoinsert.c' object='logoinsert.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) $(AM_CFLAGS) $(CFLAGS) -c -o logoinsert.o `test -f 'elements/logoinsert.c' || echo '$(srcdir)/'`elements/logoinsert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o logoinsert.o `test -f 'elements/logoinsert.c' || echo '$(srcdir)/'`elements/logoinsert.c logoinsert.obj: elements/logoinsert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT logoinsert.obj -MD -MP -MF $(DEPDIR)/logoinsert.Tpo -c -o logoinsert.obj `if test -f 'elements/logoinsert.c'; then $(CYGPATH_W) 'elements/logoinsert.c'; else $(CYGPATH_W) '$(srcdir)/elements/logoinsert.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/logoinsert.Tpo $(DEPDIR)/logoinsert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/logoinsert.c' object='logoinsert.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/logoinsert.c' object='logoinsert.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) $(AM_CFLAGS) $(CFLAGS) -c -o logoinsert.obj `if test -f 'elements/logoinsert.c'; then $(CYGPATH_W) 'elements/logoinsert.c'; else $(CYGPATH_W) '$(srcdir)/elements/logoinsert.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o logoinsert.obj `if test -f 'elements/logoinsert.c'; then $(CYGPATH_W) 'elements/logoinsert.c'; else $(CYGPATH_W) '$(srcdir)/elements/logoinsert.c'; fi` mpeg2enc.o: elements/mpeg2enc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpeg2enc.o -MD -MP -MF $(DEPDIR)/mpeg2enc.Tpo -c -o mpeg2enc.o `test -f 'elements/mpeg2enc.c' || echo '$(srcdir)/'`elements/mpeg2enc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpeg2enc.Tpo $(DEPDIR)/mpeg2enc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mpeg2enc.c' object='mpeg2enc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpeg2enc.c' object='mpeg2enc.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) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg2enc.o `test -f 'elements/mpeg2enc.c' || echo '$(srcdir)/'`elements/mpeg2enc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg2enc.o `test -f 'elements/mpeg2enc.c' || echo '$(srcdir)/'`elements/mpeg2enc.c mpeg2enc.obj: elements/mpeg2enc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpeg2enc.obj -MD -MP -MF $(DEPDIR)/mpeg2enc.Tpo -c -o mpeg2enc.obj `if test -f 'elements/mpeg2enc.c'; then $(CYGPATH_W) 'elements/mpeg2enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpeg2enc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpeg2enc.Tpo $(DEPDIR)/mpeg2enc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mpeg2enc.c' object='mpeg2enc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpeg2enc.c' object='mpeg2enc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg2enc.obj `if test -f 'elements/mpeg2enc.c'; then $(CYGPATH_W) 'elements/mpeg2enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpeg2enc.c'; fi` + +mpeg4videoparse.o: elements/mpeg4videoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpeg4videoparse.o -MD -MP -MF $(DEPDIR)/mpeg4videoparse.Tpo -c -o mpeg4videoparse.o `test -f 'elements/mpeg4videoparse.c' || echo '$(srcdir)/'`elements/mpeg4videoparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpeg4videoparse.Tpo $(DEPDIR)/mpeg4videoparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpeg4videoparse.c' object='mpeg4videoparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg4videoparse.o `test -f 'elements/mpeg4videoparse.c' || echo '$(srcdir)/'`elements/mpeg4videoparse.c + +mpeg4videoparse.obj: elements/mpeg4videoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpeg4videoparse.obj -MD -MP -MF $(DEPDIR)/mpeg4videoparse.Tpo -c -o mpeg4videoparse.obj `if test -f 'elements/mpeg4videoparse.c'; then $(CYGPATH_W) 'elements/mpeg4videoparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpeg4videoparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpeg4videoparse.Tpo $(DEPDIR)/mpeg4videoparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpeg4videoparse.c' object='mpeg4videoparse.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) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg2enc.obj `if test -f 'elements/mpeg2enc.c'; then $(CYGPATH_W) 'elements/mpeg2enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpeg2enc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpeg4videoparse.obj `if test -f 'elements/mpeg4videoparse.c'; then $(CYGPATH_W) 'elements/mpeg4videoparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpeg4videoparse.c'; fi` + +elements_mpegtsmux-mpegtsmux.o: elements/mpegtsmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpegtsmux_CFLAGS) $(CFLAGS) -MT elements_mpegtsmux-mpegtsmux.o -MD -MP -MF $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Tpo -c -o elements_mpegtsmux-mpegtsmux.o `test -f 'elements/mpegtsmux.c' || echo '$(srcdir)/'`elements/mpegtsmux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Tpo $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegtsmux.c' object='elements_mpegtsmux-mpegtsmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpegtsmux_CFLAGS) $(CFLAGS) -c -o elements_mpegtsmux-mpegtsmux.o `test -f 'elements/mpegtsmux.c' || echo '$(srcdir)/'`elements/mpegtsmux.c + +elements_mpegtsmux-mpegtsmux.obj: elements/mpegtsmux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpegtsmux_CFLAGS) $(CFLAGS) -MT elements_mpegtsmux-mpegtsmux.obj -MD -MP -MF $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Tpo -c -o elements_mpegtsmux-mpegtsmux.obj `if test -f 'elements/mpegtsmux.c'; then $(CYGPATH_W) 'elements/mpegtsmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegtsmux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Tpo $(DEPDIR)/elements_mpegtsmux-mpegtsmux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegtsmux.c' object='elements_mpegtsmux-mpegtsmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpegtsmux_CFLAGS) $(CFLAGS) -c -o elements_mpegtsmux-mpegtsmux.obj `if test -f 'elements/mpegtsmux.c'; then $(CYGPATH_W) 'elements/mpegtsmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegtsmux.c'; fi` + +mpegvideoparse.o: elements/mpegvideoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpegvideoparse.o -MD -MP -MF $(DEPDIR)/mpegvideoparse.Tpo -c -o mpegvideoparse.o `test -f 'elements/mpegvideoparse.c' || echo '$(srcdir)/'`elements/mpegvideoparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpegvideoparse.Tpo $(DEPDIR)/mpegvideoparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegvideoparse.c' object='mpegvideoparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegvideoparse.o `test -f 'elements/mpegvideoparse.c' || echo '$(srcdir)/'`elements/mpegvideoparse.c + +mpegvideoparse.obj: elements/mpegvideoparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpegvideoparse.obj -MD -MP -MF $(DEPDIR)/mpegvideoparse.Tpo -c -o mpegvideoparse.obj `if test -f 'elements/mpegvideoparse.c'; then $(CYGPATH_W) 'elements/mpegvideoparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegvideoparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpegvideoparse.Tpo $(DEPDIR)/mpegvideoparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegvideoparse.c' object='mpegvideoparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegvideoparse.obj `if test -f 'elements/mpegvideoparse.c'; then $(CYGPATH_W) 'elements/mpegvideoparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegvideoparse.c'; fi` mplex.o: elements/mplex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplex.o -MD -MP -MF $(DEPDIR)/mplex.Tpo -c -o mplex.o `test -f 'elements/mplex.c' || echo '$(srcdir)/'`elements/mplex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mplex.Tpo $(DEPDIR)/mplex.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mplex.c' object='mplex.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mplex.c' object='mplex.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) $(AM_CFLAGS) $(CFLAGS) -c -o mplex.o `test -f 'elements/mplex.c' || echo '$(srcdir)/'`elements/mplex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplex.o `test -f 'elements/mplex.c' || echo '$(srcdir)/'`elements/mplex.c mplex.obj: elements/mplex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplex.obj -MD -MP -MF $(DEPDIR)/mplex.Tpo -c -o mplex.obj `if test -f 'elements/mplex.c'; then $(CYGPATH_W) 'elements/mplex.c'; else $(CYGPATH_W) '$(srcdir)/elements/mplex.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mplex.Tpo $(DEPDIR)/mplex.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mplex.c' object='mplex.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mplex.c' object='mplex.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) $(AM_CFLAGS) $(CFLAGS) -c -o mplex.obj `if test -f 'elements/mplex.c'; then $(CYGPATH_W) 'elements/mplex.c'; else $(CYGPATH_W) '$(srcdir)/elements/mplex.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplex.obj `if test -f 'elements/mplex.c'; then $(CYGPATH_W) 'elements/mplex.c'; else $(CYGPATH_W) '$(srcdir)/elements/mplex.c'; fi` mxfdemux.o: elements/mxfdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxfdemux.o -MD -MP -MF $(DEPDIR)/mxfdemux.Tpo -c -o mxfdemux.o `test -f 'elements/mxfdemux.c' || echo '$(srcdir)/'`elements/mxfdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfdemux.Tpo $(DEPDIR)/mxfdemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mxfdemux.c' object='mxfdemux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mxfdemux.c' object='mxfdemux.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxfdemux.o `test -f 'elements/mxfdemux.c' || echo '$(srcdir)/'`elements/mxfdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxfdemux.o `test -f 'elements/mxfdemux.c' || echo '$(srcdir)/'`elements/mxfdemux.c mxfdemux.obj: elements/mxfdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxfdemux.obj -MD -MP -MF $(DEPDIR)/mxfdemux.Tpo -c -o mxfdemux.obj `if test -f 'elements/mxfdemux.c'; then $(CYGPATH_W) 'elements/mxfdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfdemux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfdemux.Tpo $(DEPDIR)/mxfdemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mxfdemux.c' object='mxfdemux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mxfdemux.c' object='mxfdemux.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxfdemux.obj `if test -f 'elements/mxfdemux.c'; then $(CYGPATH_W) 'elements/mxfdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfdemux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxfdemux.obj `if test -f 'elements/mxfdemux.c'; then $(CYGPATH_W) 'elements/mxfdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfdemux.c'; fi` mxfmux.o: elements/mxfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxfmux.o -MD -MP -MF $(DEPDIR)/mxfmux.Tpo -c -o mxfmux.o `test -f 'elements/mxfmux.c' || echo '$(srcdir)/'`elements/mxfmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfmux.Tpo $(DEPDIR)/mxfmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mxfmux.c' object='mxfmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mxfmux.c' object='mxfmux.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxfmux.o `test -f 'elements/mxfmux.c' || echo '$(srcdir)/'`elements/mxfmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxfmux.o `test -f 'elements/mxfmux.c' || echo '$(srcdir)/'`elements/mxfmux.c mxfmux.obj: elements/mxfmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxfmux.obj -MD -MP -MF $(DEPDIR)/mxfmux.Tpo -c -o mxfmux.obj `if test -f 'elements/mxfmux.c'; then $(CYGPATH_W) 'elements/mxfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfmux.Tpo $(DEPDIR)/mxfmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mxfmux.c' object='mxfmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mxfmux.c' object='mxfmux.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxfmux.obj `if test -f 'elements/mxfmux.c'; then $(CYGPATH_W) 'elements/mxfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxfmux.obj `if test -f 'elements/mxfmux.c'; then $(CYGPATH_W) 'elements/mxfmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/mxfmux.c'; fi` neonhttpsrc.o: elements/neonhttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT neonhttpsrc.o -MD -MP -MF $(DEPDIR)/neonhttpsrc.Tpo -c -o neonhttpsrc.o `test -f 'elements/neonhttpsrc.c' || echo '$(srcdir)/'`elements/neonhttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/neonhttpsrc.Tpo $(DEPDIR)/neonhttpsrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/neonhttpsrc.c' object='neonhttpsrc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/neonhttpsrc.c' object='neonhttpsrc.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) $(AM_CFLAGS) $(CFLAGS) -c -o neonhttpsrc.o `test -f 'elements/neonhttpsrc.c' || echo '$(srcdir)/'`elements/neonhttpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o neonhttpsrc.o `test -f 'elements/neonhttpsrc.c' || echo '$(srcdir)/'`elements/neonhttpsrc.c neonhttpsrc.obj: elements/neonhttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT neonhttpsrc.obj -MD -MP -MF $(DEPDIR)/neonhttpsrc.Tpo -c -o neonhttpsrc.obj `if test -f 'elements/neonhttpsrc.c'; then $(CYGPATH_W) 'elements/neonhttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/neonhttpsrc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/neonhttpsrc.Tpo $(DEPDIR)/neonhttpsrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/neonhttpsrc.c' object='neonhttpsrc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/neonhttpsrc.c' object='neonhttpsrc.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) $(AM_CFLAGS) $(CFLAGS) -c -o neonhttpsrc.obj `if test -f 'elements/neonhttpsrc.c'; then $(CYGPATH_W) 'elements/neonhttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/neonhttpsrc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o neonhttpsrc.obj `if test -f 'elements/neonhttpsrc.c'; then $(CYGPATH_W) 'elements/neonhttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/neonhttpsrc.c'; fi` ofa.o: elements/ofa.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ofa.o -MD -MP -MF $(DEPDIR)/ofa.Tpo -c -o ofa.o `test -f 'elements/ofa.c' || echo '$(srcdir)/'`elements/ofa.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ofa.Tpo $(DEPDIR)/ofa.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ofa.c' object='ofa.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ofa.c' object='ofa.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) $(AM_CFLAGS) $(CFLAGS) -c -o ofa.o `test -f 'elements/ofa.c' || echo '$(srcdir)/'`elements/ofa.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ofa.o `test -f 'elements/ofa.c' || echo '$(srcdir)/'`elements/ofa.c ofa.obj: elements/ofa.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ofa.obj -MD -MP -MF $(DEPDIR)/ofa.Tpo -c -o ofa.obj `if test -f 'elements/ofa.c'; then $(CYGPATH_W) 'elements/ofa.c'; else $(CYGPATH_W) '$(srcdir)/elements/ofa.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ofa.Tpo $(DEPDIR)/ofa.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ofa.c' object='ofa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ofa.c' object='ofa.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ofa.obj `if test -f 'elements/ofa.c'; then $(CYGPATH_W) 'elements/ofa.c'; else $(CYGPATH_W) '$(srcdir)/elements/ofa.c'; fi` + +opus.o: elements/opus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT opus.o -MD -MP -MF $(DEPDIR)/opus.Tpo -c -o opus.o `test -f 'elements/opus.c' || echo '$(srcdir)/'`elements/opus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/opus.Tpo $(DEPDIR)/opus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/opus.c' object='opus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o opus.o `test -f 'elements/opus.c' || echo '$(srcdir)/'`elements/opus.c + +opus.obj: elements/opus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT opus.obj -MD -MP -MF $(DEPDIR)/opus.Tpo -c -o opus.obj `if test -f 'elements/opus.c'; then $(CYGPATH_W) 'elements/opus.c'; else $(CYGPATH_W) '$(srcdir)/elements/opus.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/opus.Tpo $(DEPDIR)/opus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/opus.c' object='opus.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) $(AM_CFLAGS) $(CFLAGS) -c -o ofa.obj `if test -f 'elements/ofa.c'; then $(CYGPATH_W) 'elements/ofa.c'; else $(CYGPATH_W) '$(srcdir)/elements/ofa.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o opus.obj `if test -f 'elements/opus.c'; then $(CYGPATH_W) 'elements/opus.c'; else $(CYGPATH_W) '$(srcdir)/elements/opus.c'; fi` elements_rtpmux-rtpmux.o: elements/rtpmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.o -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.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) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c elements_rtpmux-rtpmux.obj: elements/rtpmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.obj -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.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) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` schroenc.o: elements/schroenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT schroenc.o -MD -MP -MF $(DEPDIR)/schroenc.Tpo -c -o schroenc.o `test -f 'elements/schroenc.c' || echo '$(srcdir)/'`elements/schroenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/schroenc.Tpo $(DEPDIR)/schroenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/schroenc.c' object='schroenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/schroenc.c' object='schroenc.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) $(AM_CFLAGS) $(CFLAGS) -c -o schroenc.o `test -f 'elements/schroenc.c' || echo '$(srcdir)/'`elements/schroenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o schroenc.o `test -f 'elements/schroenc.c' || echo '$(srcdir)/'`elements/schroenc.c schroenc.obj: elements/schroenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT schroenc.obj -MD -MP -MF $(DEPDIR)/schroenc.Tpo -c -o schroenc.obj `if test -f 'elements/schroenc.c'; then $(CYGPATH_W) 'elements/schroenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/schroenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/schroenc.Tpo $(DEPDIR)/schroenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/schroenc.c' object='schroenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/schroenc.c' object='schroenc.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) $(AM_CFLAGS) $(CFLAGS) -c -o schroenc.obj `if test -f 'elements/schroenc.c'; then $(CYGPATH_W) 'elements/schroenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/schroenc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o schroenc.obj `if test -f 'elements/schroenc.c'; then $(CYGPATH_W) 'elements/schroenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/schroenc.c'; fi` elements_timidity-timidity.o: elements/timidity.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_timidity_CFLAGS) $(CFLAGS) -MT elements_timidity-timidity.o -MD -MP -MF $(DEPDIR)/elements_timidity-timidity.Tpo -c -o elements_timidity-timidity.o `test -f 'elements/timidity.c' || echo '$(srcdir)/'`elements/timidity.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_timidity-timidity.Tpo $(DEPDIR)/elements_timidity-timidity.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/timidity.c' object='elements_timidity-timidity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/timidity.c' object='elements_timidity-timidity.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) $(elements_timidity_CFLAGS) $(CFLAGS) -c -o elements_timidity-timidity.o `test -f 'elements/timidity.c' || echo '$(srcdir)/'`elements/timidity.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_timidity_CFLAGS) $(CFLAGS) -c -o elements_timidity-timidity.o `test -f 'elements/timidity.c' || echo '$(srcdir)/'`elements/timidity.c elements_timidity-timidity.obj: elements/timidity.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_timidity_CFLAGS) $(CFLAGS) -MT elements_timidity-timidity.obj -MD -MP -MF $(DEPDIR)/elements_timidity-timidity.Tpo -c -o elements_timidity-timidity.obj `if test -f 'elements/timidity.c'; then $(CYGPATH_W) 'elements/timidity.c'; else $(CYGPATH_W) '$(srcdir)/elements/timidity.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_timidity-timidity.Tpo $(DEPDIR)/elements_timidity-timidity.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/timidity.c' object='elements_timidity-timidity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/timidity.c' object='elements_timidity-timidity.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) $(elements_timidity_CFLAGS) $(CFLAGS) -c -o elements_timidity-timidity.obj `if test -f 'elements/timidity.c'; then $(CYGPATH_W) 'elements/timidity.c'; else $(CYGPATH_W) '$(srcdir)/elements/timidity.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_timidity_CFLAGS) $(CFLAGS) -c -o elements_timidity-timidity.obj `if test -f 'elements/timidity.c'; then $(CYGPATH_W) 'elements/timidity.c'; else $(CYGPATH_W) '$(srcdir)/elements/timidity.c'; fi` viewfinderbin.o: elements/viewfinderbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT viewfinderbin.o -MD -MP -MF $(DEPDIR)/viewfinderbin.Tpo -c -o viewfinderbin.o `test -f 'elements/viewfinderbin.c' || echo '$(srcdir)/'`elements/viewfinderbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/viewfinderbin.Tpo $(DEPDIR)/viewfinderbin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/viewfinderbin.c' object='viewfinderbin.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/viewfinderbin.c' object='viewfinderbin.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) $(AM_CFLAGS) $(CFLAGS) -c -o viewfinderbin.o `test -f 'elements/viewfinderbin.c' || echo '$(srcdir)/'`elements/viewfinderbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o viewfinderbin.o `test -f 'elements/viewfinderbin.c' || echo '$(srcdir)/'`elements/viewfinderbin.c viewfinderbin.obj: elements/viewfinderbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT viewfinderbin.obj -MD -MP -MF $(DEPDIR)/viewfinderbin.Tpo -c -o viewfinderbin.obj `if test -f 'elements/viewfinderbin.c'; then $(CYGPATH_W) 'elements/viewfinderbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/viewfinderbin.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/viewfinderbin.Tpo $(DEPDIR)/viewfinderbin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/viewfinderbin.c' object='viewfinderbin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/viewfinderbin.c' object='viewfinderbin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o viewfinderbin.obj `if test -f 'elements/viewfinderbin.c'; then $(CYGPATH_W) 'elements/viewfinderbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/viewfinderbin.c'; fi` + +elements_voaacenc-voaacenc.o: elements/voaacenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_voaacenc_CFLAGS) $(CFLAGS) -MT elements_voaacenc-voaacenc.o -MD -MP -MF $(DEPDIR)/elements_voaacenc-voaacenc.Tpo -c -o elements_voaacenc-voaacenc.o `test -f 'elements/voaacenc.c' || echo '$(srcdir)/'`elements/voaacenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_voaacenc-voaacenc.Tpo $(DEPDIR)/elements_voaacenc-voaacenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/voaacenc.c' object='elements_voaacenc-voaacenc.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) $(AM_CFLAGS) $(CFLAGS) -c -o viewfinderbin.obj `if test -f 'elements/viewfinderbin.c'; then $(CYGPATH_W) 'elements/viewfinderbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/viewfinderbin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_voaacenc_CFLAGS) $(CFLAGS) -c -o elements_voaacenc-voaacenc.o `test -f 'elements/voaacenc.c' || echo '$(srcdir)/'`elements/voaacenc.c + +elements_voaacenc-voaacenc.obj: elements/voaacenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_voaacenc_CFLAGS) $(CFLAGS) -MT elements_voaacenc-voaacenc.obj -MD -MP -MF $(DEPDIR)/elements_voaacenc-voaacenc.Tpo -c -o elements_voaacenc-voaacenc.obj `if test -f 'elements/voaacenc.c'; then $(CYGPATH_W) 'elements/voaacenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/voaacenc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_voaacenc-voaacenc.Tpo $(DEPDIR)/elements_voaacenc-voaacenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/voaacenc.c' object='elements_voaacenc-voaacenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_voaacenc_CFLAGS) $(CFLAGS) -c -o elements_voaacenc-voaacenc.obj `if test -f 'elements/voaacenc.c'; then $(CYGPATH_W) 'elements/voaacenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/voaacenc.c'; fi` + +voamrwbenc.o: elements/voamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT voamrwbenc.o -MD -MP -MF $(DEPDIR)/voamrwbenc.Tpo -c -o voamrwbenc.o `test -f 'elements/voamrwbenc.c' || echo '$(srcdir)/'`elements/voamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/voamrwbenc.Tpo $(DEPDIR)/voamrwbenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/voamrwbenc.c' object='voamrwbenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o voamrwbenc.o `test -f 'elements/voamrwbenc.c' || echo '$(srcdir)/'`elements/voamrwbenc.c + +voamrwbenc.obj: elements/voamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT voamrwbenc.obj -MD -MP -MF $(DEPDIR)/voamrwbenc.Tpo -c -o voamrwbenc.obj `if test -f 'elements/voamrwbenc.c'; then $(CYGPATH_W) 'elements/voamrwbenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/voamrwbenc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/voamrwbenc.Tpo $(DEPDIR)/voamrwbenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/voamrwbenc.c' object='voamrwbenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o voamrwbenc.obj `if test -f 'elements/voamrwbenc.c'; then $(CYGPATH_W) 'elements/voamrwbenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/voamrwbenc.c'; fi` vp8dec.o: elements/vp8dec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8dec.o -MD -MP -MF $(DEPDIR)/vp8dec.Tpo -c -o vp8dec.o `test -f 'elements/vp8dec.c' || echo '$(srcdir)/'`elements/vp8dec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vp8dec.Tpo $(DEPDIR)/vp8dec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vp8dec.c' object='vp8dec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vp8dec.c' object='vp8dec.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) $(AM_CFLAGS) $(CFLAGS) -c -o vp8dec.o `test -f 'elements/vp8dec.c' || echo '$(srcdir)/'`elements/vp8dec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vp8dec.o `test -f 'elements/vp8dec.c' || echo '$(srcdir)/'`elements/vp8dec.c vp8dec.obj: elements/vp8dec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8dec.obj -MD -MP -MF $(DEPDIR)/vp8dec.Tpo -c -o vp8dec.obj `if test -f 'elements/vp8dec.c'; then $(CYGPATH_W) 'elements/vp8dec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8dec.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vp8dec.Tpo $(DEPDIR)/vp8dec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vp8dec.c' object='vp8dec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vp8dec.c' object='vp8dec.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) $(AM_CFLAGS) $(CFLAGS) -c -o vp8dec.obj `if test -f 'elements/vp8dec.c'; then $(CYGPATH_W) 'elements/vp8dec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8dec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vp8dec.obj `if test -f 'elements/vp8dec.c'; then $(CYGPATH_W) 'elements/vp8dec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8dec.c'; fi` vp8enc.o: elements/vp8enc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8enc.o -MD -MP -MF $(DEPDIR)/vp8enc.Tpo -c -o vp8enc.o `test -f 'elements/vp8enc.c' || echo '$(srcdir)/'`elements/vp8enc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vp8enc.Tpo $(DEPDIR)/vp8enc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vp8enc.c' object='vp8enc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vp8enc.c' object='vp8enc.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) $(AM_CFLAGS) $(CFLAGS) -c -o vp8enc.o `test -f 'elements/vp8enc.c' || echo '$(srcdir)/'`elements/vp8enc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vp8enc.o `test -f 'elements/vp8enc.c' || echo '$(srcdir)/'`elements/vp8enc.c vp8enc.obj: elements/vp8enc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8enc.obj -MD -MP -MF $(DEPDIR)/vp8enc.Tpo -c -o vp8enc.obj `if test -f 'elements/vp8enc.c'; then $(CYGPATH_W) 'elements/vp8enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8enc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vp8enc.Tpo $(DEPDIR)/vp8enc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vp8enc.c' object='vp8enc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vp8enc.c' object='vp8enc.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) $(AM_CFLAGS) $(CFLAGS) -c -o vp8enc.obj `if test -f 'elements/vp8enc.c'; then $(CYGPATH_W) 'elements/vp8enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8enc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vp8enc.obj `if test -f 'elements/vp8enc.c'; then $(CYGPATH_W) 'elements/vp8enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp8enc.c'; fi` zbar.o: elements/zbar.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zbar.o -MD -MP -MF $(DEPDIR)/zbar.Tpo -c -o zbar.o `test -f 'elements/zbar.c' || echo '$(srcdir)/'`elements/zbar.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/zbar.Tpo $(DEPDIR)/zbar.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/zbar.c' object='zbar.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/zbar.c' object='zbar.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) $(AM_CFLAGS) $(CFLAGS) -c -o zbar.o `test -f 'elements/zbar.c' || echo '$(srcdir)/'`elements/zbar.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zbar.o `test -f 'elements/zbar.c' || echo '$(srcdir)/'`elements/zbar.c zbar.obj: elements/zbar.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zbar.obj -MD -MP -MF $(DEPDIR)/zbar.Tpo -c -o zbar.obj `if test -f 'elements/zbar.c'; then $(CYGPATH_W) 'elements/zbar.c'; else $(CYGPATH_W) '$(srcdir)/elements/zbar.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/zbar.Tpo $(DEPDIR)/zbar.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/zbar.c' object='zbar.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/zbar.c' object='zbar.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) $(AM_CFLAGS) $(CFLAGS) -c -o zbar.obj `if test -f 'elements/zbar.c'; then $(CYGPATH_W) 'elements/zbar.c'; else $(CYGPATH_W) '$(srcdir)/elements/zbar.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zbar.obj `if test -f 'elements/zbar.c'; then $(CYGPATH_W) 'elements/zbar.c'; else $(CYGPATH_W) '$(srcdir)/elements/zbar.c'; fi` states.o: generic/states.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.o -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/states.c' object='states.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) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c states.obj: generic/states.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.obj -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` + +libs_h264parser-h264parser.o: libs/h264parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_h264parser_CFLAGS) $(CFLAGS) -MT libs_h264parser-h264parser.o -MD -MP -MF $(DEPDIR)/libs_h264parser-h264parser.Tpo -c -o libs_h264parser-h264parser.o `test -f 'libs/h264parser.c' || echo '$(srcdir)/'`libs/h264parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_h264parser-h264parser.Tpo $(DEPDIR)/libs_h264parser-h264parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/h264parser.c' object='libs_h264parser-h264parser.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) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_h264parser_CFLAGS) $(CFLAGS) -c -o libs_h264parser-h264parser.o `test -f 'libs/h264parser.c' || echo '$(srcdir)/'`libs/h264parser.c + +libs_h264parser-h264parser.obj: libs/h264parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_h264parser_CFLAGS) $(CFLAGS) -MT libs_h264parser-h264parser.obj -MD -MP -MF $(DEPDIR)/libs_h264parser-h264parser.Tpo -c -o libs_h264parser-h264parser.obj `if test -f 'libs/h264parser.c'; then $(CYGPATH_W) 'libs/h264parser.c'; else $(CYGPATH_W) '$(srcdir)/libs/h264parser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_h264parser-h264parser.Tpo $(DEPDIR)/libs_h264parser-h264parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/h264parser.c' object='libs_h264parser-h264parser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_h264parser_CFLAGS) $(CFLAGS) -c -o libs_h264parser-h264parser.obj `if test -f 'libs/h264parser.c'; then $(CYGPATH_W) 'libs/h264parser.c'; else $(CYGPATH_W) '$(srcdir)/libs/h264parser.c'; fi` + +libs_mpegvideoparser-mpegvideoparser.o: libs/mpegvideoparser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mpegvideoparser_CFLAGS) $(CFLAGS) -MT libs_mpegvideoparser-mpegvideoparser.o -MD -MP -MF $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Tpo -c -o libs_mpegvideoparser-mpegvideoparser.o `test -f 'libs/mpegvideoparser.c' || echo '$(srcdir)/'`libs/mpegvideoparser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Tpo $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mpegvideoparser.c' object='libs_mpegvideoparser-mpegvideoparser.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mpegvideoparser_CFLAGS) $(CFLAGS) -c -o libs_mpegvideoparser-mpegvideoparser.o `test -f 'libs/mpegvideoparser.c' || echo '$(srcdir)/'`libs/mpegvideoparser.c + +libs_mpegvideoparser-mpegvideoparser.obj: libs/mpegvideoparser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mpegvideoparser_CFLAGS) $(CFLAGS) -MT libs_mpegvideoparser-mpegvideoparser.obj -MD -MP -MF $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Tpo -c -o libs_mpegvideoparser-mpegvideoparser.obj `if test -f 'libs/mpegvideoparser.c'; then $(CYGPATH_W) 'libs/mpegvideoparser.c'; else $(CYGPATH_W) '$(srcdir)/libs/mpegvideoparser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Tpo $(DEPDIR)/libs_mpegvideoparser-mpegvideoparser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mpegvideoparser.c' object='libs_mpegvideoparser-mpegvideoparser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mpegvideoparser_CFLAGS) $(CFLAGS) -c -o libs_mpegvideoparser-mpegvideoparser.obj `if test -f 'libs/mpegvideoparser.c'; then $(CYGPATH_W) 'libs/mpegvideoparser.c'; else $(CYGPATH_W) '$(srcdir)/libs/mpegvideoparser.c'; fi` + +libs_vc1parser-vc1parser.o: libs/vc1parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_vc1parser_CFLAGS) $(CFLAGS) -MT libs_vc1parser-vc1parser.o -MD -MP -MF $(DEPDIR)/libs_vc1parser-vc1parser.Tpo -c -o libs_vc1parser-vc1parser.o `test -f 'libs/vc1parser.c' || echo '$(srcdir)/'`libs/vc1parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_vc1parser-vc1parser.Tpo $(DEPDIR)/libs_vc1parser-vc1parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/vc1parser.c' object='libs_vc1parser-vc1parser.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_vc1parser_CFLAGS) $(CFLAGS) -c -o libs_vc1parser-vc1parser.o `test -f 'libs/vc1parser.c' || echo '$(srcdir)/'`libs/vc1parser.c + +libs_vc1parser-vc1parser.obj: libs/vc1parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_vc1parser_CFLAGS) $(CFLAGS) -MT libs_vc1parser-vc1parser.obj -MD -MP -MF $(DEPDIR)/libs_vc1parser-vc1parser.Tpo -c -o libs_vc1parser-vc1parser.obj `if test -f 'libs/vc1parser.c'; then $(CYGPATH_W) 'libs/vc1parser.c'; else $(CYGPATH_W) '$(srcdir)/libs/vc1parser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_vc1parser-vc1parser.Tpo $(DEPDIR)/libs_vc1parser-vc1parser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/vc1parser.c' object='libs_vc1parser-vc1parser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_vc1parser_CFLAGS) $(CFLAGS) -c -o libs_vc1parser-vc1parser.obj `if test -f 'libs/vc1parser.c'; then $(CYGPATH_W) 'libs/vc1parser.c'; else $(CYGPATH_W) '$(srcdir)/libs/vc1parser.c'; fi` orc_cog-cog.o: orc/cog.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_cog_CFLAGS) $(CFLAGS) -MT orc_cog-cog.o -MD -MP -MF $(DEPDIR)/orc_cog-cog.Tpo -c -o orc_cog-cog.o `test -f 'orc/cog.c' || echo '$(srcdir)/'`orc/cog.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_cog-cog.Tpo $(DEPDIR)/orc_cog-cog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/cog.c' object='orc_cog-cog.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/cog.c' object='orc_cog-cog.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) $(orc_cog_CFLAGS) $(CFLAGS) -c -o orc_cog-cog.o `test -f 'orc/cog.c' || echo '$(srcdir)/'`orc/cog.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_cog_CFLAGS) $(CFLAGS) -c -o orc_cog-cog.o `test -f 'orc/cog.c' || echo '$(srcdir)/'`orc/cog.c orc_cog-cog.obj: orc/cog.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_cog_CFLAGS) $(CFLAGS) -MT orc_cog-cog.obj -MD -MP -MF $(DEPDIR)/orc_cog-cog.Tpo -c -o orc_cog-cog.obj `if test -f 'orc/cog.c'; then $(CYGPATH_W) 'orc/cog.c'; else $(CYGPATH_W) '$(srcdir)/orc/cog.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_cog-cog.Tpo $(DEPDIR)/orc_cog-cog.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/cog.c' object='orc_cog-cog.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/cog.c' object='orc_cog-cog.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_cog_CFLAGS) $(CFLAGS) -c -o orc_cog-cog.obj `if test -f 'orc/cog.c'; then $(CYGPATH_W) 'orc/cog.c'; else $(CYGPATH_W) '$(srcdir)/orc/cog.c'; fi` + +colorspace.o: pipelines/colorspace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT colorspace.o -MD -MP -MF $(DEPDIR)/colorspace.Tpo -c -o colorspace.o `test -f 'pipelines/colorspace.c' || echo '$(srcdir)/'`pipelines/colorspace.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/colorspace.Tpo $(DEPDIR)/colorspace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/colorspace.c' object='colorspace.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) $(orc_cog_CFLAGS) $(CFLAGS) -c -o orc_cog-cog.obj `if test -f 'orc/cog.c'; then $(CYGPATH_W) 'orc/cog.c'; else $(CYGPATH_W) '$(srcdir)/orc/cog.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o colorspace.o `test -f 'pipelines/colorspace.c' || echo '$(srcdir)/'`pipelines/colorspace.c + +colorspace.obj: pipelines/colorspace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT colorspace.obj -MD -MP -MF $(DEPDIR)/colorspace.Tpo -c -o colorspace.obj `if test -f 'pipelines/colorspace.c'; then $(CYGPATH_W) 'pipelines/colorspace.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/colorspace.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/colorspace.Tpo $(DEPDIR)/colorspace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/colorspace.c' object='colorspace.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o colorspace.obj `if test -f 'pipelines/colorspace.c'; then $(CYGPATH_W) 'pipelines/colorspace.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/colorspace.c'; fi` mimic.o: pipelines/mimic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mimic.o -MD -MP -MF $(DEPDIR)/mimic.Tpo -c -o mimic.o `test -f 'pipelines/mimic.c' || echo '$(srcdir)/'`pipelines/mimic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mimic.Tpo $(DEPDIR)/mimic.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/mimic.c' object='mimic.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/mimic.c' object='mimic.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) $(AM_CFLAGS) $(CFLAGS) -c -o mimic.o `test -f 'pipelines/mimic.c' || echo '$(srcdir)/'`pipelines/mimic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mimic.o `test -f 'pipelines/mimic.c' || echo '$(srcdir)/'`pipelines/mimic.c mimic.obj: pipelines/mimic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mimic.obj -MD -MP -MF $(DEPDIR)/mimic.Tpo -c -o mimic.obj `if test -f 'pipelines/mimic.c'; then $(CYGPATH_W) 'pipelines/mimic.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mimic.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mimic.Tpo $(DEPDIR)/mimic.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/mimic.c' object='mimic.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/mimic.c' object='mimic.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) $(AM_CFLAGS) $(CFLAGS) -c -o mimic.obj `if test -f 'pipelines/mimic.c'; then $(CYGPATH_W) 'pipelines/mimic.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mimic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mimic.obj `if test -f 'pipelines/mimic.c'; then $(CYGPATH_W) 'pipelines/mimic.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mimic.c'; fi` mxf.o: pipelines/mxf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxf.o -MD -MP -MF $(DEPDIR)/mxf.Tpo -c -o mxf.o `test -f 'pipelines/mxf.c' || echo '$(srcdir)/'`pipelines/mxf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxf.Tpo $(DEPDIR)/mxf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/mxf.c' object='mxf.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/mxf.c' object='mxf.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxf.o `test -f 'pipelines/mxf.c' || echo '$(srcdir)/'`pipelines/mxf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxf.o `test -f 'pipelines/mxf.c' || echo '$(srcdir)/'`pipelines/mxf.c mxf.obj: pipelines/mxf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mxf.obj -MD -MP -MF $(DEPDIR)/mxf.Tpo -c -o mxf.obj `if test -f 'pipelines/mxf.c'; then $(CYGPATH_W) 'pipelines/mxf.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mxf.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxf.Tpo $(DEPDIR)/mxf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/mxf.c' object='mxf.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/mxf.c' object='mxf.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) $(AM_CFLAGS) $(CFLAGS) -c -o mxf.obj `if test -f 'pipelines/mxf.c'; then $(CYGPATH_W) 'pipelines/mxf.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mxf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mxf.obj `if test -f 'pipelines/mxf.c'; then $(CYGPATH_W) 'pipelines/mxf.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/mxf.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -1621,6 +1986,7 @@ clean-libtool: -rm -rf .libs _libs -rm -rf elements/.libs elements/_libs -rm -rf generic/.libs generic/_libs + -rm -rf libs/.libs libs/_libs -rm -rf orc/.libs orc/_libs -rm -rf pipelines/.libs pipelines/_libs @@ -1757,14 +2123,15 @@ check-TESTS: $(TESTS) fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ + col="$$grn"; \ else \ - echo "$$red$$dashes"; \ + col="$$red"; \ fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi @@ -1802,7 +2169,7 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am -all-am: Makefile $(PROGRAMS) $(HEADERS) +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am @@ -1814,10 +2181,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1828,6 +2200,7 @@ distclean-generic: -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f elements/$(am__dirstamp) -rm -f generic/$(am__dirstamp) + -rm -f libs/$(am__dirstamp) -rm -f orc/$(am__dirstamp) -rm -f pipelines/$(am__dirstamp) @@ -1837,7 +2210,7 @@ maintainer-clean-generic: clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstPROGRAMS mostlyclean-am + clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -1909,17 +2282,17 @@ uninstall-am: .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstPROGRAMS 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-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 + clean-noinstLTLIBRARIES clean-noinstPROGRAMS 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-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 # keep target around, since it's referenced in the modules' Makefiles diff --git a/tests/check/elements/autoconvert.c b/tests/check/elements/autoconvert.c index 0377953..f341a99 100644 --- a/tests/check/elements/autoconvert.c +++ b/tests/check/elements/autoconvert.c @@ -206,13 +206,9 @@ static void test_element1_class_init (TestElement1Class * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - GstPadTemplate *src_template, *sink_template; - src_template = gst_static_pad_template_get (&src_factory); - gst_element_class_add_pad_template (element_class, src_template); - - sink_template = gst_static_pad_template_get (&sink_factory); - gst_element_class_add_pad_template (element_class, sink_template); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } static void @@ -225,13 +221,9 @@ static void test_element2_class_init (TestElement2Class * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - GstPadTemplate *src_template, *sink_template; - - src_template = gst_static_pad_template_get (&src_factory); - gst_element_class_add_pad_template (element_class, src_template); - sink_template = gst_static_pad_template_get (&sink_factory); - gst_element_class_add_pad_template (element_class, sink_template); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); } static void diff --git a/tests/check/elements/baseaudiovisualizer.c b/tests/check/elements/baseaudiovisualizer.c new file mode 100644 index 0000000..f06b53d --- /dev/null +++ b/tests/check/elements/baseaudiovisualizer.c @@ -0,0 +1,183 @@ +/* GStreamer + * Copyright (C) <2011> Stefan Kost + * + * unit test for the baseaudiovisualizer 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. + */ + +#include + +#include +#include + +#include "gstbaseaudiovisualizer.h" + +/* dummy subclass for testing */ + +#define GST_TYPE_TEST_SCOPE (gst_test_scope_get_type()) +#define GST_TEST_SCOPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TEST_SCOPE,GstTestScope)) +#define GST_TEST_SCOPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TEST_SCOPE,GstTestScopeClass)) +typedef struct _GstTestScope GstTestScope; +typedef struct _GstTestScopeClass GstTestScopeClass; + +struct _GstTestScope +{ + GstBaseAudioVisualizer parent; +}; + +struct _GstTestScopeClass +{ + GstBaseAudioVisualizerClass parent_class; +}; + +static GstStaticPadTemplate gst_test_scope_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB_HOST_ENDIAN) + ); + +static GstStaticPadTemplate gst_test_scope_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS) + ); + +static GType gst_test_scope_get_type (void); + +GST_BOILERPLATE (GstTestScope, gst_test_scope, GstBaseAudioVisualizer, + GST_TYPE_BASE_AUDIO_VISUALIZER); + +static void +gst_test_scope_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "test scope", + "Visualization", + "Dummy test scope", "Stefan Kost "); + + gst_element_class_add_static_pad_template (element_class, + &gst_test_scope_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_test_scope_sink_template); +} + +static void +gst_test_scope_class_init (GstTestScopeClass * g_class) +{ + /* do nothing */ +} + +static void +gst_test_scope_init (GstTestScope * scope, GstTestScopeClass * g_class) +{ + /* do nothing */ +} + +/* tests */ + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-rgb, " + "bpp = (int) 32, " + "depth = (int) 24, " "endianness = (int) BIG_ENDIAN, " +#if G_BYTE_ORDER == G_BIG_ENDIAN + "red_mask = (int) 0xFF000000, " + "green_mask = (int) 0x00FF0000, " "blue_mask = (int) 0x0000FF00, " +#else + "red_mask = (int) 0x0000FF00, " + "green_mask = (int) 0x00FF0000, " "blue_mask = (int) 0xFF000000, " +#endif + "width = (int) 320, " + "height = (int) 240, " "framerate = (fraction) 30/1") + ); +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "rate = (int) 44100, " + "channels = (int) 2, " + "endianness = (int) BYTE_ORDER, " + "width = (int) 16, " "depth = (int) 16, " "signed = (boolean) true") + ); + +GST_START_TEST (count_in_out) +{ + GstElement *elem; + GstPad *srcpad, *sinkpad; + GstBuffer *buffer; + + /* setup up */ + elem = gst_check_setup_element ("testscope"); + srcpad = gst_check_setup_src_pad (elem, &srctemplate, NULL); + sinkpad = gst_check_setup_sink_pad (elem, &sinktemplate, NULL); + gst_pad_set_active (srcpad, TRUE); + gst_pad_set_active (sinkpad, TRUE); + fail_unless (gst_element_set_state (elem, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + /* push 1s audio to get 30 video-frames */ + buffer = gst_buffer_new_and_alloc (44100 * 2 * sizeof (gint16)); + gst_buffer_set_caps (buffer, GST_PAD_CAPS (srcpad)); + ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); + + /* pushing gives away my reference ... */ + fail_unless (gst_pad_push (srcpad, buffer) == GST_FLOW_OK); + /* ... but it ends up being collected on the global buffer list */ + ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1); + fail_unless_equals_int (g_list_length (buffers), 30); + + /* clean up */ + g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); + g_list_free (buffers); + buffers = NULL; + + gst_pad_set_active (srcpad, FALSE); + gst_pad_set_active (sinkpad, FALSE); + gst_check_teardown_src_pad (elem); + gst_check_teardown_sink_pad (elem); + gst_check_teardown_element (elem); +} + +GST_END_TEST; + +static void +baseaudiovisualizer_init (void) +{ + gst_element_register (NULL, "testscope", GST_RANK_NONE, GST_TYPE_TEST_SCOPE); +} + +static Suite * +baseaudiovisualizer_suite (void) +{ + Suite *s = suite_create ("baseaudiovisualizer"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_checked_fixture (tc_chain, baseaudiovisualizer_init, NULL); + + tcase_add_test (tc_chain, count_in_out); + + return s; +} + + +GST_CHECK_MAIN (baseaudiovisualizer); diff --git a/tests/check/elements/camerabin.c b/tests/check/elements/camerabin.c index 124cb7c..ce17ac3 100644 --- a/tests/check/elements/camerabin.c +++ b/tests/check/elements/camerabin.c @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -157,7 +158,7 @@ static void setup_camerabin_elements (GstElement * camera) { GstElement *vfsink, *audiosrc, *videosrc, *audioenc, *videoenc, *imageenc, - *videomux, *viewfinder_filter, *imagepp, *videopp; + *videomux, *viewfinder_filter, *imagepp, *videopp, *formatter; GstCaps *audiocaps, *videocaps; /* Use fakesink for view finder */ @@ -181,6 +182,7 @@ setup_camerabin_elements (GstElement * camera) viewfinder_filter = gst_element_factory_make ("identity", NULL); imagepp = gst_element_factory_make ("identity", NULL); videopp = gst_element_factory_make ("identity", NULL); + formatter = gst_element_factory_make ("jifmux", NULL); if (set_and_check_camerabin_element (camera, "viewfinder-sink", vfsink) && set_and_check_camerabin_element (camera, "audio-source", audiosrc) @@ -194,7 +196,8 @@ setup_camerabin_elements (GstElement * camera) && set_and_check_camerabin_element (camera, "image-post-processing", imagepp) && set_and_check_camerabin_element (camera, "video-post-processing", - videopp)) { + videopp) + && set_and_check_camerabin_element (camera, "image-formatter", formatter)) { GST_INFO ("element properties set and checked"); } else { GST_WARNING ("error setting up test plugins"); @@ -499,6 +502,16 @@ check_file_validity (const gchar * filename, gint num, GstTagList * taglist) return TRUE; } +static void +remove_file (const gchar * fn_template, guint num) +{ + const gchar *fn; + + fn = make_test_file_name (fn_template, num); + GST_INFO ("removing %s", fn); + g_unlink (fn); +} + GST_START_TEST (test_single_image_capture) { gboolean ready = FALSE; @@ -542,6 +555,7 @@ GST_START_TEST (test_single_image_capture) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (SINGLE_IMAGE_FILENAME, 0, NULL); + remove_file (SINGLE_IMAGE_FILENAME, 0); } GST_END_TEST; @@ -566,6 +580,7 @@ GST_START_TEST (test_single_image_capture_with_flags) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (SINGLE_IMAGE_WITH_FLAGS_FILENAME, 0, NULL); + remove_file (SINGLE_IMAGE_WITH_FLAGS_FILENAME, 0); } GST_END_TEST; @@ -615,6 +630,7 @@ GST_START_TEST (test_video_recording) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (VIDEO_WITH_FLAGS_FILENAME, 0, NULL); + remove_file (VIDEO_WITH_FLAGS_FILENAME, 0); } GST_END_TEST; @@ -651,6 +667,7 @@ GST_START_TEST (test_video_recording_with_flags) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (VIDEO_FILENAME, 0, NULL); + remove_file (VIDEO_FILENAME, 0); } GST_END_TEST; @@ -702,6 +719,7 @@ GST_START_TEST (test_video_recording_pause) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (VIDEO_PAUSE_FILENAME, 0, NULL); + remove_file (VIDEO_PAUSE_FILENAME, 0); } GST_END_TEST; @@ -738,6 +756,7 @@ GST_START_TEST (test_video_recording_no_audio) gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (VIDEO_NOAUDIO_FILENAME, 0, NULL); + remove_file (VIDEO_NOAUDIO_FILENAME, 0); } GST_END_TEST; @@ -765,7 +784,9 @@ GST_START_TEST (test_image_video_cycle) /* validate all the files */ for (i = 2; i > 0; i--) { check_file_validity (CYCLE_IMAGE_FILENAME, i, NULL); + remove_file (CYCLE_IMAGE_FILENAME, i); check_file_validity (CYCLE_VIDEO_FILENAME, i, NULL); + remove_file (CYCLE_VIDEO_FILENAME, i); } } @@ -794,6 +815,7 @@ GST_START_TEST (test_image_tags_setting) for (i = 0; i < SEQUENTIAL_IMAGES_COUNT; i++) { check_file_validity (SEQUENTIAL_IMAGES_FILENAME, i, taglists[i % TAGLISTS_COUNT]); + remove_file (SEQUENTIAL_IMAGES_FILENAME, i); } } diff --git a/tests/check/elements/camerabin2.c b/tests/check/elements/camerabin2.c index f449985..9ae219a 100644 --- a/tests/check/elements/camerabin2.c +++ b/tests/check/elements/camerabin2.c @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -120,14 +121,9 @@ gst_test_camera_src_base_init (gpointer g_class) static void gst_test_camera_src_class_init (GstTestCameraSrcClass * klass) { - GObjectClass *gobject_class; - GstElementClass *gstelement_class; GstBaseCameraSrcClass *gstbasecamera_class; - gobject_class = G_OBJECT_CLASS (klass); - gstelement_class = GST_ELEMENT_CLASS (klass); gstbasecamera_class = GST_BASE_CAMERA_SRC_CLASS (klass); - gstbasecamera_class->set_mode = gst_test_camera_src_set_mode; } @@ -169,15 +165,22 @@ gst_test_camera_src_init (GstTestCameraSrc * self, static GstElement *camera; static guint bus_source; static GMainLoop *main_loop; +static gint capture_count = 0; guint32 test_id = 0; +static gchar *image_filename; +static gchar *video_filename; static GstBuffer *preview_buffer; +static gchar *preview_filename; static GstCaps *preview_caps; static GstTagList *tags_found; static gboolean validity_bus_cb (GstBus * bus, GstMessage * message, gpointer data); +static GstMessage *wait_for_element_message (GstElement * camera, + const gchar * name, GstClockTime timeout); + static void validate_taglist_foreach (const GstTagList * list, const gchar * tag, gpointer user_data) @@ -192,29 +195,36 @@ validate_taglist_foreach (const GstTagList * list, const gchar * tag, fail_if (val1 == NULL); fail_if (val2 == NULL); - fail_unless (gst_value_can_intersect (val1, val2)); + fail_unless (gst_value_compare (val1, val2) == GST_VALUE_EQUAL); } /* helper function for filenames */ -static const gchar * +static gchar * make_test_file_name (const gchar * base_name, gint num) { - static gchar file_name[1000]; - /* num == -1 means to keep the %d in the resulting string to be used on * multifilesink like location */ if (num == -1) { - g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S + return g_strdup_printf ("%s" G_DIR_SEPARATOR_S "gstcamerabin2test_%s_%u_%%03d.cap", g_get_tmp_dir (), base_name, test_id); } else { - g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S + return g_strdup_printf ("%s" G_DIR_SEPARATOR_S "gstcamerabin2test_%s_%u_%03d.cap", g_get_tmp_dir (), base_name, test_id, num); } +} + +static const gchar * +make_const_file_name (const gchar * filename, gint num) +{ + static gchar file_name[1000]; + + /* num == -1 means to keep the %d in the resulting string to be used on + * multifilesink like location */ + g_snprintf (file_name, 999, filename, num); - GST_INFO ("capturing to: %s", file_name); return file_name; } @@ -262,11 +272,8 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data) break; default: st = gst_message_get_structure (message); - if (st && gst_structure_has_name (st, "image-captured")) { - gboolean ready = FALSE; + if (st && gst_structure_has_name (st, "image-done")) { GST_INFO ("image captured"); - g_object_get (camera, "ready-for-capture", &ready, NULL); - fail_if (!ready, "not ready for capture"); } else if (st && gst_structure_has_name (st, GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME)) { GstBuffer *buf; @@ -279,6 +286,8 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data) if (preview_buffer) gst_buffer_unref (preview_buffer); preview_buffer = gst_buffer_ref (buf); + g_free (preview_filename); + preview_filename = g_strdup (gst_structure_get_string (st, "location")); } break; } @@ -286,14 +295,32 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data) } static void -check_preview_image (void) +check_preview_image (GstElement * camera, const gchar * filename, gint index) { + gchar *prev_filename = NULL; + + if (!preview_buffer && camera) { + GstMessage *msg = wait_for_element_message (camera, + GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME, GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); + } fail_unless (preview_buffer != NULL); + if (filename) { + if (index >= 0) { + prev_filename = g_strdup_printf (filename, index); + } else { + prev_filename = g_strdup (filename); + } + fail_unless (preview_filename != NULL); + fail_unless (strcmp (preview_filename, prev_filename) == 0); + } if (preview_caps) { fail_unless (GST_BUFFER_CAPS (preview_buffer) != NULL); fail_unless (gst_caps_can_intersect (GST_BUFFER_CAPS (preview_buffer), preview_caps)); } + g_free (prev_filename); } static void @@ -301,7 +328,7 @@ extract_jpeg_tags (const gchar * filename, gint num) { GstBus *bus; GMainLoop *loop = g_main_loop_new (NULL, FALSE); - const gchar *filepath = make_test_file_name (filename, num); + const gchar *filepath = make_const_file_name (filename, num); gchar *pipeline_str = g_strdup_printf ("filesrc location=%s ! " "jpegparse ! fakesink", filepath); GstElement *pipeline; @@ -321,6 +348,7 @@ extract_jpeg_tags (const gchar * filename, gint num) gst_object_unref (bus); g_source_remove (source); gst_object_unref (pipeline); + g_main_loop_unref (loop); } static void @@ -331,6 +359,7 @@ setup_wrappercamerabinsrc_videotestsrc (void) GstElement *fakevideosink; GstElement *src; GstElement *testsrc; + GstElement *audiosrc; GST_INFO ("init"); @@ -343,16 +372,19 @@ setup_wrappercamerabinsrc_videotestsrc (void) fakevideosink = gst_element_factory_make ("fakesink", NULL); src = gst_element_factory_make ("wrappercamerabinsrc", NULL); testsrc = gst_element_factory_make ("videotestsrc", NULL); + audiosrc = gst_element_factory_make ("audiotestsrc", NULL); preview_caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, 320, "height", G_TYPE_INT, 240, NULL); g_object_set (G_OBJECT (testsrc), "is-live", TRUE, "peer-alloc", FALSE, NULL); - g_object_set (G_OBJECT (src), "video-src", testsrc, NULL); - g_object_set (G_OBJECT (camera), "camera-src", src, "preview-caps", - preview_caps, NULL); + g_object_set (G_OBJECT (audiosrc), "is-live", TRUE, NULL); + g_object_set (G_OBJECT (src), "video-source", testsrc, NULL); + g_object_set (G_OBJECT (camera), "camera-source", src, "preview-caps", + preview_caps, "post-previews", TRUE, "audio-source", audiosrc, NULL); gst_object_unref (src); gst_object_unref (testsrc); + gst_object_unref (audiosrc); vfbin = gst_bin_get_by_name (GST_BIN (camera), "vf-bin"); g_object_set (G_OBJECT (vfbin), "video-sink", fakevideosink, NULL); @@ -364,6 +396,9 @@ setup_wrappercamerabinsrc_videotestsrc (void) gst_object_unref (bus); tags_found = NULL; + capture_count = 0; + image_filename = make_test_file_name (IMAGE_FILENAME, -1); + video_filename = make_test_file_name (VIDEO_FILENAME, -1); GST_INFO ("init finished"); } @@ -392,10 +427,19 @@ teardown (void) gst_buffer_unref (preview_buffer); preview_buffer = NULL; + g_free (preview_filename); + preview_filename = NULL; + if (tags_found) gst_tag_list_free (tags_found); tags_found = NULL; + g_free (video_filename); + video_filename = NULL; + + g_free (image_filename); + image_filename = NULL; + GST_INFO ("done"); } @@ -468,7 +512,7 @@ check_file_validity (const gchar * filename, gint num, GstTagList * taglist, GstElement *playbin = gst_element_factory_make ("playbin2", NULL); GstElement *fakevideo = gst_element_factory_make ("fakesink", NULL); GstElement *fakeaudio = gst_element_factory_make ("fakesink", NULL); - gchar *uri = g_strconcat ("file://", make_test_file_name (filename, num), + gchar *uri = g_strconcat ("file://", make_const_file_name (filename, num), NULL); GST_DEBUG ("checking uri: %s", uri); @@ -522,10 +566,21 @@ check_file_validity (const gchar * filename, gint num, GstTagList * taglist, g_source_remove (source); gst_object_unref (bus); gst_object_unref (playbin); + g_main_loop_unref (loop); return TRUE; } +static void +remove_file (const gchar * fn_template, guint num) +{ + const gchar *fn; + + fn = make_const_file_name (fn_template, num); + GST_INFO ("removing %s", fn); + g_unlink (fn); +} + static gboolean filter_buffer_count (GstPad * pad, GstMiniObject * obj, gpointer data) { @@ -536,15 +591,79 @@ filter_buffer_count (GstPad * pad, GstMiniObject * obj, gpointer data) return TRUE; } +static GstMessage * +wait_for_element_message (GstElement * camera, const gchar * name, + GstClockTime timeout) +{ + GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (camera)); + GstMessage *msg; + + while (1) { + msg = gst_bus_timed_pop_filtered (bus, timeout, GST_MESSAGE_ERROR | + GST_MESSAGE_EOS | GST_MESSAGE_ELEMENT); + + if (msg) { + if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ELEMENT) { + const GstStructure *st = gst_message_get_structure (msg); + if (gst_structure_has_name (st, + GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME)) { + GstBuffer *buf; + const GValue *value; + + value = gst_structure_get_value (st, "buffer"); + fail_unless (value != NULL); + buf = gst_value_get_buffer (value); + + if (preview_buffer) + gst_buffer_unref (preview_buffer); + preview_buffer = gst_buffer_ref (buf); + g_free (preview_filename); + preview_filename = + g_strdup (gst_structure_get_string (st, "location")); + } + + if (gst_structure_has_name (st, name)) + break; + else + gst_message_unref (msg); + } else { + gst_message_unref (msg); + msg = NULL; + break; + } + } + } + + gst_object_unref (bus); + return msg; +} + +static void +wait_for_idle_state (void) +{ + gboolean idle = FALSE; + + /* not the ideal way, but should be enough for testing */ + while (idle == FALSE) { + g_object_get (camera, "idle", &idle, NULL); + if (idle) + break; + + GST_LOG ("waiting for idle state.."); + g_usleep (G_USEC_PER_SEC / 5); + } + fail_unless (idle); +} + GST_START_TEST (test_single_image_capture) { gboolean idle; + GstMessage *msg; if (!camera) return; /* set still image mode */ - g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), NULL); + g_object_set (camera, "mode", 1, "location", image_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -559,16 +678,17 @@ GST_START_TEST (test_single_image_capture) fail_unless (idle); g_signal_emit_by_name (camera, "start-capture", NULL); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); /* check that we got a preview image */ - check_preview_image (); + check_preview_image (camera, image_filename, 0); - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + wait_for_idle_state (); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0, NO_AUDIO); + check_file_validity (image_filename, 0, NULL, 0, 0, NO_AUDIO); + remove_file (image_filename, 0); } GST_END_TEST; @@ -585,8 +705,7 @@ GST_START_TEST (test_multiple_image_captures) return; /* set still image mode */ - g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), NULL); + g_object_set (camera, "mode", 1, "location", image_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -601,6 +720,7 @@ GST_START_TEST (test_multiple_image_captures) GST_INFO ("starting capture"); for (i = 0; i < 3; i++) { + GstMessage *msg; GstCaps *caps; caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, @@ -611,19 +731,19 @@ GST_START_TEST (test_multiple_image_captures) g_signal_emit_by_name (camera, "start-capture", NULL); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - check_preview_image (); + check_preview_image (camera, image_filename, i); } - g_usleep (G_USEC_PER_SEC * 3); - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + wait_for_idle_state (); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); for (i = 0; i < 3; i++) { - check_file_validity (IMAGE_FILENAME, i, NULL, widths[i], heights[i], + check_file_validity (image_filename, i, NULL, widths[i], heights[i], NO_AUDIO); + remove_file (image_filename, i); } } @@ -631,13 +751,13 @@ GST_END_TEST; GST_START_TEST (test_single_video_recording) { + GstMessage *msg; gboolean idle; if (!camera) return; /* Set video recording mode */ - g_object_set (camera, "mode", 2, - "location", make_test_file_name (VIDEO_FILENAME, -1), NULL); + g_object_set (camera, "mode", 2, "location", video_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -663,15 +783,18 @@ GST_START_TEST (test_single_video_recording) g_signal_emit_by_name (camera, "stop-capture", NULL); - check_preview_image (); + check_preview_image (camera, video_filename, 0); - g_usleep (G_USEC_PER_SEC * 3); + msg = wait_for_element_message (camera, "video-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + wait_for_idle_state (); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0, WITH_AUDIO); + check_file_validity (video_filename, 0, NULL, 0, 0, WITH_AUDIO); + remove_file (video_filename, 0); + } GST_END_TEST; @@ -688,7 +811,7 @@ GST_START_TEST (test_multiple_video_recordings) return; /* Set video recording mode */ - g_object_set (camera, "mode", 2, NULL); + g_object_set (camera, "mode", 2, "location", video_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -703,17 +826,18 @@ GST_START_TEST (test_multiple_video_recordings) g_object_get (camera, "idle", &idle, NULL); fail_unless (idle); for (i = 0; i < 3; i++) { + GstMessage *msg; GstCaps *caps; caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, widths[i], "height", G_TYPE_INT, heights[i], "framerate", GST_TYPE_FRACTION, fr[i], 1, NULL); - g_object_set (camera, "video-capture-caps", caps, - "location", make_test_file_name (VIDEO_FILENAME, i), NULL); + g_object_set (camera, "video-capture-caps", caps, NULL); gst_caps_unref (caps); + GST_LOG ("starting #%d with caps %" GST_PTR_FORMAT, i, caps); g_signal_emit_by_name (camera, "start-capture", NULL); g_object_get (camera, "idle", &idle, NULL); @@ -722,20 +846,27 @@ GST_START_TEST (test_multiple_video_recordings) g_timeout_add_seconds (VIDEO_DURATION, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); + + GST_LOG ("stopping run %d", i); g_signal_emit_by_name (camera, "stop-capture", NULL); - check_preview_image (); + msg = wait_for_element_message (camera, "video-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + GST_LOG ("video done, checking preview image"); + check_preview_image (camera, video_filename, i); + + GST_LOG ("waiting for idle state"); + wait_for_idle_state (); + GST_LOG ("finished run %d", i); } gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); for (i = 0; i < 3; i++) { - check_file_validity (VIDEO_FILENAME, i, NULL, widths[i], heights[i], + check_file_validity (video_filename, i, NULL, widths[i], heights[i], WITH_AUDIO); + remove_file (video_filename, i); } } @@ -743,20 +874,11 @@ GST_END_TEST; GST_START_TEST (test_image_video_cycle) { - gboolean idle; gint i; if (!camera) return; - /* set filepaths for image and videos */ - g_object_set (camera, "mode", 1, NULL); - g_object_set (camera, "location", make_test_file_name (IMAGE_FILENAME, -1), - NULL); - g_object_set (camera, "mode", 2, NULL); - g_object_set (camera, "location", make_test_file_name (VIDEO_FILENAME, -1), - NULL); - if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { GST_WARNING ("setting camerabin to PLAYING failed"); @@ -767,36 +889,51 @@ GST_START_TEST (test_image_video_cycle) GST_INFO ("starting capture"); for (i = 0; i < 2; i++) { - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + GstMessage *msg; + const gchar *img_filename; + const gchar *vid_filename; + + wait_for_idle_state (); /* take a picture */ + img_filename = make_const_file_name (image_filename, i); g_object_set (camera, "mode", 1, NULL); + g_object_set (camera, "location", img_filename, NULL); g_signal_emit_by_name (camera, "start-capture", NULL); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); - check_preview_image (); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); + + check_preview_image (camera, img_filename, i); /* now go to video */ + vid_filename = make_const_file_name (video_filename, i); g_object_set (camera, "mode", 2, NULL); + g_object_set (camera, "location", vid_filename, NULL); + g_signal_emit_by_name (camera, "start-capture", NULL); g_timeout_add_seconds (VIDEO_DURATION, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); g_signal_emit_by_name (camera, "stop-capture", NULL); - check_preview_image (); + msg = wait_for_element_message (camera, "video-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - /* wait for capture to finish */ - g_usleep (G_USEC_PER_SEC); + check_preview_image (camera, vid_filename, i); } + + wait_for_idle_state (); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); /* validate all the files */ for (i = 0; i < 2; i++) { - check_file_validity (IMAGE_FILENAME, i, NULL, 0, 0, NO_AUDIO); - check_file_validity (VIDEO_FILENAME, i, NULL, 0, 0, WITH_AUDIO); + check_file_validity (image_filename, i, NULL, 0, 0, NO_AUDIO); + remove_file (image_filename, i); + check_file_validity (video_filename, i, NULL, 0, 0, WITH_AUDIO); + remove_file (video_filename, i); } } @@ -813,8 +950,7 @@ GST_START_TEST (test_image_capture_previews) return; /* set still image mode */ - g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), NULL); + g_object_set (camera, "mode", 1, "location", image_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -827,6 +963,7 @@ GST_START_TEST (test_image_capture_previews) GST_INFO ("starting capture"); for (i = 0; i < 3; i++) { + GstMessage *msg; GstCaps *caps; caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, @@ -838,10 +975,12 @@ GST_START_TEST (test_image_capture_previews) g_signal_emit_by_name (camera, "start-capture", NULL); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - check_preview_image (); + check_preview_image (camera, image_filename, i); + remove_file (image_filename, i); if (preview_buffer) gst_buffer_unref (preview_buffer); @@ -892,8 +1031,7 @@ GST_START_TEST (test_image_capture_with_tags) GST_TAG_GEO_LOCATION_ELEVATION, 0.0, NULL); /* set still image mode */ - g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), NULL); + g_object_set (camera, "mode", 1, "location", image_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -906,20 +1044,23 @@ GST_START_TEST (test_image_capture_with_tags) GST_INFO ("starting capture"); for (i = 0; i < 3; i++) { + GstMessage *msg; gst_tag_setter_merge_tags (GST_TAG_SETTER (camera), taglists[i], GST_TAG_MERGE_REPLACE); g_signal_emit_by_name (camera, "start-capture", NULL); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); - g_main_loop_run (main_loop); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); } gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); for (i = 0; i < 3; i++) { - check_file_validity (IMAGE_FILENAME, i, taglists[i], 0, 0, NO_AUDIO); + check_file_validity (image_filename, i, taglists[i], 0, 0, NO_AUDIO); gst_tag_list_free (taglists[i]); + remove_file (image_filename, i); } } @@ -939,8 +1080,7 @@ GST_START_TEST (test_video_capture_with_tags) taglists[2] = gst_tag_list_new_full (GST_TAG_COMMENT, "test3", NULL); /* set video mode */ - g_object_set (camera, "mode", 2, - "location", make_test_file_name (VIDEO_FILENAME, -1), NULL); + g_object_set (camera, "mode", 2, "location", video_filename, NULL); /* set a profile that has xmp support for more tags being saved */ { @@ -976,6 +1116,8 @@ GST_START_TEST (test_video_capture_with_tags) GST_INFO ("starting capture"); for (i = 0; i < 3; i++) { + GstMessage *msg; + gst_tag_setter_merge_tags (GST_TAG_SETTER (camera), taglists[i], GST_TAG_MERGE_REPLACE); @@ -985,14 +1127,18 @@ GST_START_TEST (test_video_capture_with_tags) g_main_loop_run (main_loop); g_signal_emit_by_name (camera, "stop-capture", NULL); - g_usleep (G_USEC_PER_SEC * 3); + + msg = wait_for_element_message (camera, "video-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); } gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); for (i = 0; i < 3; i++) { - check_file_validity (VIDEO_FILENAME, i, taglists[i], 0, 0, NO_AUDIO); + check_file_validity (video_filename, i, taglists[i], 0, 0, NO_AUDIO); gst_tag_list_free (taglists[i]); + remove_file (video_filename, i); } } @@ -1009,7 +1155,7 @@ GST_START_TEST (test_supported_caps) return; src = g_object_new (GST_TYPE_TEST_CAMERA_SRC, NULL); - g_object_set (camera, "camera-src", src, NULL); + g_object_set (camera, "camera-source", src, NULL); gst_object_unref (src); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == @@ -1047,13 +1193,13 @@ GST_END_TEST; GST_START_TEST (test_idle_property) { + GstMessage *msg; gboolean idle; if (!camera) return; /* Set video recording mode */ - g_object_set (camera, "mode", 2, - "location", make_test_file_name (VIDEO_FILENAME, -1), NULL); + g_object_set (camera, "mode", 2, "location", video_filename, NULL); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -1083,15 +1229,18 @@ GST_START_TEST (test_idle_property) g_signal_emit_by_name (camera, "stop-capture", NULL); - check_preview_image (); + msg = wait_for_element_message (camera, "video-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); - g_usleep (3 * G_USEC_PER_SEC); - g_object_get (camera, "idle", &idle, NULL); - fail_unless (idle); + check_preview_image (camera, video_filename, 0); + + wait_for_idle_state (); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0, WITH_AUDIO); + check_file_validity (video_filename, 0, NULL, 0, 0, WITH_AUDIO); + remove_file (video_filename, 0); } GST_END_TEST; @@ -1131,7 +1280,7 @@ GST_START_TEST (test_image_custom_filter) /* set still image mode and filters */ g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), + "location", image_filename, "viewfinder-filter", vf_filter, "image-filter", image_filter, "preview-filter", preview_filter, NULL); @@ -1154,10 +1303,11 @@ GST_START_TEST (test_image_custom_filter) g_main_loop_run (main_loop); /* check that we got a preview image */ - check_preview_image (); + check_preview_image (camera, image_filename, 0); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0, NO_AUDIO); + check_file_validity (image_filename, 0, NULL, 0, 0, NO_AUDIO); + remove_file (image_filename, 0); fail_unless (vf_probe_counter > 0); fail_unless (image_probe_counter == 1); @@ -1172,10 +1322,12 @@ GST_START_TEST (test_video_custom_filter) GstElement *vf_filter; GstElement *video_filter; GstElement *preview_filter; + GstElement *audio_filter; GstPad *pad; gint vf_probe_counter = 0; gint video_probe_counter = 0; gint preview_probe_counter = 0; + gint audio_probe_counter = 0; if (!camera) return; @@ -1183,6 +1335,7 @@ GST_START_TEST (test_video_custom_filter) vf_filter = gst_element_factory_make ("identity", "vf-filter"); video_filter = gst_element_factory_make ("identity", "video-filter"); preview_filter = gst_element_factory_make ("identity", "preview-filter"); + audio_filter = gst_element_factory_make ("identity", "audio-filter"); pad = gst_element_get_static_pad (vf_filter, "src"); gst_pad_add_buffer_probe (pad, (GCallback) filter_buffer_count, @@ -1194,6 +1347,11 @@ GST_START_TEST (test_video_custom_filter) &video_probe_counter); gst_object_unref (pad); + pad = gst_element_get_static_pad (audio_filter, "src"); + gst_pad_add_buffer_probe (pad, (GCallback) filter_buffer_count, + &audio_probe_counter); + gst_object_unref (pad); + pad = gst_element_get_static_pad (preview_filter, "src"); gst_pad_add_buffer_probe (pad, (GCallback) filter_buffer_count, &preview_probe_counter); @@ -1201,13 +1359,14 @@ GST_START_TEST (test_video_custom_filter) /* set still image mode and filters */ g_object_set (camera, "mode", 2, - "location", make_test_file_name (VIDEO_FILENAME, -1), + "location", video_filename, "viewfinder-filter", vf_filter, "video-filter", video_filter, - "preview-filter", preview_filter, NULL); + "preview-filter", preview_filter, "audio-filter", audio_filter, NULL); gst_object_unref (vf_filter); gst_object_unref (preview_filter); gst_object_unref (video_filter); + gst_object_unref (audio_filter); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -1226,50 +1385,83 @@ GST_START_TEST (test_video_custom_filter) g_signal_emit_by_name (camera, "stop-capture", NULL); /* check that we got a preview image */ - check_preview_image (); + check_preview_image (camera, video_filename, 0); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0, WITH_AUDIO); + check_file_validity (video_filename, 0, NULL, 0, 0, WITH_AUDIO); + remove_file (video_filename, 0); fail_unless (vf_probe_counter > 0); fail_unless (video_probe_counter > 0); + fail_unless (audio_probe_counter > 0); fail_unless (preview_probe_counter == 1); } GST_END_TEST; +#define LOCATION_SWITCHING_FILENAMES_COUNT 5 -GST_START_TEST (test_image_custom_encoder_muxer) +static gboolean +image_location_switch_do_capture (gpointer data) { - GstElement *enc; - GstElement *mux; - GstElement *test; - GstPad *pad; - gint enc_probe_counter = 0; - gint mux_probe_counter = 0; + gchar **filenames = data; + if (capture_count >= LOCATION_SWITCHING_FILENAMES_COUNT) { + g_main_loop_quit (main_loop); + } - if (!camera) - return; + g_object_set (camera, "location", filenames[capture_count], NULL); + g_signal_emit_by_name (camera, "start-capture", NULL); + capture_count++; + return FALSE; +} - enc = gst_element_factory_make ("pngenc", "enc"); - mux = gst_element_factory_make ("identity", "mux"); +static void +image_location_switch_readyforcapture (GObject * obj, GParamSpec * pspec, + gpointer user_data) +{ + gboolean ready; - g_object_set (enc, "snapshot", FALSE, NULL); + g_object_get (obj, "ready-for-capture", &ready, NULL); + if (ready) { + g_idle_add (image_location_switch_do_capture, user_data); + } +}; - pad = gst_element_get_static_pad (enc, "src"); - gst_pad_add_buffer_probe (pad, (GCallback) filter_buffer_count, - &enc_probe_counter); - gst_object_unref (pad); +/* + * Tests that setting the location and then doing an image + * capture will set this capture resulting filename to the + * correct location. + * + * There was a bug in which setting the location, issuing a capture + * and then setting a new location would cause this capture to have + * the location set after this capture. This test should prevent it + * from happening again. + */ +GST_START_TEST (test_image_location_switching) +{ + gchar *filenames[LOCATION_SWITCHING_FILENAMES_COUNT + 1]; + gint i; + glong notify_id; + GstCaps *caps; + GstElement *src; + GstMessage *msg; - pad = gst_element_get_static_pad (mux, "src"); - gst_pad_add_buffer_probe (pad, (GCallback) filter_buffer_count, - &mux_probe_counter); - gst_object_unref (pad); + if (!camera) + return; - /* set still image mode and filters */ - g_object_set (camera, "mode", 1, - "location", make_test_file_name (IMAGE_FILENAME, -1), - "image-capture-encoder", enc, "image-capture-muxer", mux, NULL); + g_object_get (camera, "camera-source", &src, NULL); + + for (i = 0; i < LOCATION_SWITCHING_FILENAMES_COUNT; i++) { + filenames[i] = make_test_file_name ("image-switching-filename-test", i); + } + filenames[LOCATION_SWITCHING_FILENAMES_COUNT] = NULL; + + /* set still image mode */ + g_object_set (camera, "mode", 1, NULL); + caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, + 800, "height", G_TYPE_INT, 600, NULL); + g_object_set (camera, "image-capture-caps", caps, NULL); + gst_caps_unref (caps); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { @@ -1278,36 +1470,37 @@ GST_START_TEST (test_image_custom_encoder_muxer) gst_object_unref (camera); camera = NULL; } - GST_INFO ("starting capture"); fail_unless (camera != NULL); + GST_INFO ("starting capture"); - g_object_get (camera, "image-capture-encoder", &test, NULL); - fail_unless (test == enc); - g_object_get (camera, "image-capture-muxer", &test, NULL); - fail_unless (test == mux); - - g_signal_emit_by_name (camera, "start-capture", NULL); + notify_id = g_signal_connect (G_OBJECT (src), + "notify::ready-for-capture", + G_CALLBACK (image_location_switch_readyforcapture), filenames); - g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); + g_idle_add (image_location_switch_do_capture, filenames); g_main_loop_run (main_loop); - /* check that we got a preview image */ - check_preview_image (); + msg = wait_for_element_message (camera, "image-done", GST_CLOCK_TIME_NONE); + fail_unless (msg != NULL); + gst_message_unref (msg); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); - check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0, NO_AUDIO); - fail_unless (enc_probe_counter == 1); - fail_unless (mux_probe_counter == 1); - gst_object_unref (enc); - gst_object_unref (mux); + for (i = 0; i < LOCATION_SWITCHING_FILENAMES_COUNT; i++) { + GST_INFO ("Checking for file: %s", filenames[i]); + fail_unless (g_file_test (filenames[i], G_FILE_TEST_IS_REGULAR)); + } + + for (i = 0; i < LOCATION_SWITCHING_FILENAMES_COUNT; i++) { + g_unlink (filenames[i]); + g_free (filenames[i]); + } + g_signal_handler_disconnect (src, notify_id); } GST_END_TEST; - - typedef struct _TestCaseDef { const gchar *name; @@ -1322,7 +1515,6 @@ static Suite * camerabin_suite (void) { GstElementFactory *jpegenc_factory; - GstElementFactory *pngenc_factory; Suite *s = suite_create ("camerabin2"); gint i; TCase *tc_generic = tcase_create ("generic"); @@ -1332,7 +1524,6 @@ camerabin_suite (void) GST_WARNING ("Skipping camerabin2 tests because jpegenc is missing"); goto end; } - pngenc_factory = gst_element_factory_find ("pngenc"); suite_add_tcase (s, tc_generic); tcase_add_checked_fixture (tc_generic, setup_wrappercamerabinsrc_videotestsrc, @@ -1368,10 +1559,7 @@ camerabin_suite (void) tcase_add_test (tc_basic, test_image_custom_filter); tcase_add_test (tc_basic, test_video_custom_filter); - if (pngenc_factory) - tcase_add_test (tc_basic, test_image_custom_encoder_muxer); - else - GST_WARNING ("Skipping custom encoder test because pngenc is missing"); + tcase_add_test (tc_basic, test_image_location_switching); } end: diff --git a/tests/check/elements/faac.c b/tests/check/elements/faac.c index 34630a5..cf15bd7 100644 --- a/tests/check/elements/faac.c +++ b/tests/check/elements/faac.c @@ -37,15 +37,29 @@ static GstPad *mysrcpad, *mysinkpad; "signed = (boolean) true, " \ "endianness = (int) BYTE_ORDER " -#define AAC_CAPS_STRING "audio/mpeg, " \ +#define AAC_RAW_CAPS_STRING "audio/mpeg, " \ "mpegversion = (int) 4, " \ "rate = (int) 48000, " \ - "channels = (int) 2 " + "channels = (int) 2, " \ + "stream-format = \"raw\"," \ + "base-profile = \"lc\"" -static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", +#define AAC_ADTS_CAPS_STRING "audio/mpeg, " \ + "mpegversion = (int) 4, " \ + "rate = (int) 48000, " \ + "channels = (int) 2, " \ + "stream-format = \"adts\"," \ + "base-profile = \"lc\"" + +static GstStaticPadTemplate sinktemplate_adts = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AAC_ADTS_CAPS_STRING)); + +static GstStaticPadTemplate sinktemplate_raw = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (AAC_CAPS_STRING)); + GST_STATIC_CAPS (AAC_RAW_CAPS_STRING)); static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -60,10 +74,13 @@ setup_faac (gboolean adts) GST_DEBUG ("setup_faac"); faac = gst_check_setup_element ("faac"); - g_object_set (faac, "profile", 2, NULL); - g_object_set (faac, "outputformat", adts ? 1 : 0, NULL); mysrcpad = gst_check_setup_src_pad (faac, &srctemplate, NULL); - mysinkpad = gst_check_setup_sink_pad (faac, &sinktemplate, NULL); + + if (adts) + mysinkpad = gst_check_setup_sink_pad (faac, &sinktemplate_adts, NULL); + else + mysinkpad = gst_check_setup_sink_pad (faac, &sinktemplate_raw, NULL); + gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); diff --git a/tests/check/elements/faad.c b/tests/check/elements/faad.c index c911048..8478b51 100644 --- a/tests/check/elements/faad.c +++ b/tests/check/elements/faad.c @@ -111,12 +111,10 @@ do_test (GstBuffer * inbuffer) /* clean up buffers */ for (i = 0; i < num_buffers; ++i) { gint size; - guint8 *data; outbuffer = GST_BUFFER (buffers->data); fail_if (outbuffer == NULL); - data = GST_BUFFER_DATA (outbuffer); size = GST_BUFFER_SIZE (outbuffer); /* 2 16-bit channels */ diff --git a/tests/check/elements/h263parse.c b/tests/check/elements/h263parse.c new file mode 100644 index 0000000..4c23c61 --- /dev/null +++ b/tests/check/elements/h263parse.c @@ -0,0 +1,175 @@ +/* + * GStreamer + * + * unit test for h263parse + * + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include +#include "parser.h" + +#define SRC_CAPS_TMPL "video/x-h263, framed=(boolean)false" +#define SINK_CAPS_TMPL "video/x-h263, framed=(boolean)true" + +GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS_TMPL) + ); + +GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SRC_CAPS_TMPL) + ); + +/* some data */ + +#if 0 +static guint8 h263_iframe[] = { + /* keyframes all around */ + 0x00, 0x00, 0x80, 0x02, 0x1c, 0x88, 0x01, 0x00, + 0x11, 0xe0, 0x44, 0xc4, 0x04, 0x04, 0x04, 0x3f, + 0xff, 0xe6, 0x20, 0x20, 0x20, 0x21, 0xff, 0xff, + 0x31, 0x01, 0x01, 0x01, 0x0f, 0xff, 0xf9, 0x88, + 0x08, 0x08, 0x08, 0x7f, 0xff, 0x80 +}; +#endif + +static guint8 h263_iframe[] = { + /* keyframes all around */ + /* actually, this is a truncated keyframe, + * but don't tell anyone or try this at home */ + 0x00, 0x00, 0x80, 0x02, 0x0c, 0x04, 0x26, 0x20, + 0x20, 0x20, 0x21, 0xff, 0xff, 0x31, 0x01, 0x01, + 0x01, 0x0f, 0xff, 0xf9, 0x88, 0x08, 0x08, 0x08, + 0x7f, 0xff, 0xcc, 0x40, 0x40, 0x40, 0x43, 0xff, + 0xfe, 0x62, 0x02, 0x02, 0x02, 0x1f, 0xff, 0xf3, + 0x10, 0x10, 0x10, 0x10, 0xff, 0xff, 0x98, 0x80, + 0x80, 0x80, 0x87, 0xff, 0xfc, 0xc4, 0x04, 0x04, + 0x04, 0x3f, 0xff, 0xe6, 0x20, 0x20, 0x20, 0x21, + 0xff, 0xff, 0x31, 0x01, 0x01, 0x01, 0x0f, 0xff, + 0xf9, 0x88, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xcc, + 0x40, 0x40, 0x40, 0x43, 0xff, 0xfe, 0x62, 0x02, + 0x02, 0x02, 0x1f, 0xff, 0xf3, 0x10, 0x10, 0x10, + 0x10, 0xff, 0xff, 0x98, 0x80, 0x80, 0x80, 0x87, + 0xff, 0xfc, 0xc4, 0x04, 0x04, 0x04, 0x3f, 0xff, + 0xe6, 0x20, 0x20, 0x20, 0x21, 0xff, 0xff, 0x31, + 0x01, 0x01, 0x01, 0x0f, 0xff, 0xf9, 0x88, 0x08 +}; + +GST_START_TEST (test_parse_normal) +{ + gst_parser_test_normal (h263_iframe, sizeof (h263_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_drain_single) +{ + gst_parser_test_drain_single (h263_iframe, sizeof (h263_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_split) +{ + gst_parser_test_split (h263_iframe, sizeof (h263_iframe)); +} + +GST_END_TEST; + + +#define structure_get_int(s,f) \ + (g_value_get_int(gst_structure_get_value(s,f))) +#define fail_unless_structure_field_int_equals(s,field,num) \ + fail_unless_equals_int (structure_get_int(s,field), num) + +GST_START_TEST (test_parse_detect_stream) +{ + GstCaps *caps; + GstStructure *s; + + caps = gst_parser_test_get_output_caps (h263_iframe, sizeof (h263_iframe), + NULL); + fail_unless (caps != NULL); + + /* Check that the negotiated caps are as expected */ + /* When codec_data is present, parser assumes that data is version 4 */ + GST_LOG ("mpegvideo output caps: %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/x-h263")); + fail_unless_structure_field_int_equals (s, "width", 352); + fail_unless_structure_field_int_equals (s, "height", 288); + + gst_caps_unref (caps); +} + +GST_END_TEST; + + +static Suite * +h263parse_suite (void) +{ + Suite *s = suite_create ("h263parse"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_normal); + tcase_add_test (tc_chain, test_parse_drain_single); + tcase_add_test (tc_chain, test_parse_split); + tcase_add_test (tc_chain, test_parse_detect_stream); + + return s; +} + + +/* + * TODO: + * - Both push- and pull-modes need to be tested + * * Pull-mode & EOS + */ + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = h263parse_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + /* init test context */ + ctx_factory = "h263parse"; + ctx_sink_template = &sinktemplate; + ctx_src_template = &srctemplate; + /* no timing info to parse */ + ctx_no_metadata = TRUE; + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/h264parse.c b/tests/check/elements/h264parse.c new file mode 100644 index 0000000..b050263 --- /dev/null +++ b/tests/check/elements/h264parse.c @@ -0,0 +1,393 @@ +/* + * GStreamer + * + * unit test for h264parse + * + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include +#include "parser.h" + +#define SRC_CAPS_TMPL "video/x-h264, parsed=(boolean)false" +#define SINK_CAPS_TMPL "video/x-h264, parsed=(boolean)true" + +GstStaticPadTemplate sinktemplate_bs_nal = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS_TMPL + ", stream-format = (string) byte-stream, alignment = (string) nal") + ); + +GstStaticPadTemplate sinktemplate_avc_au = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS_TMPL + ", stream-format = (string) avc, alignment = (string) au") + ); + +GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SRC_CAPS_TMPL) + ); + +/* some data */ + +/* SPS */ +static guint8 h264_sps[] = { + 0x00, 0x00, 0x00, 0x01, 0x67, 0x4d, 0x40, 0x15, + 0xec, 0xa4, 0xbf, 0x2e, 0x02, 0x20, 0x00, 0x00, + 0x03, 0x00, 0x2e, 0xe6, 0xb2, 0x80, 0x01, 0xe2, + 0xc5, 0xb2, 0xc0 +}; + +/* PPS */ +static guint8 h264_pps[] = { + 0x00, 0x00, 0x00, 0x01, 0x68, 0xeb, 0xec, 0xb2 +}; + +/* combines to this codec-data */ +static guint8 h264_codec_data[] = { + 0x01, 0x4d, 0x40, 0x15, 0xff, 0xe1, 0x00, 0x17, + 0x67, 0x4d, 0x40, 0x15, 0xec, 0xa4, 0xbf, 0x2e, + 0x02, 0x20, 0x00, 0x00, 0x03, 0x00, 0x2e, 0xe6, + 0xb2, 0x80, 0x01, 0xe2, 0xc5, 0xb2, 0xc0, 0x01, + 0x00, 0x04, 0x68, 0xeb, 0xec, 0xb2 +}; + +/* keyframes all around */ +static guint8 h264_idrframe[] = { + 0x00, 0x00, 0x00, 0x01, 0x65, 0x88, 0x84, 0x00, + 0x10, 0xff, 0xfe, 0xf6, 0xf0, 0xfe, 0x05, 0x36, + 0x56, 0x04, 0x50, 0x96, 0x7b, 0x3f, 0x53, 0xe1 +}; + +/* truncated nal */ +static guint8 garbage_frame[] = { + 0x00, 0x00, 0x00, 0x01, 0x05 +}; + +/* context to tweak tests */ +static const gchar *ctx_suite; +static gboolean ctx_codec_data; + +static gboolean +verify_buffer (buffer_verify_data_s * vdata, GstBuffer * buffer) +{ + if (vdata->discard) { + /* check separate header NALs */ + gint i = vdata->buffer_counter; + + fail_unless (i <= 1); + fail_unless (GST_BUFFER_SIZE (buffer) == ctx_headers[i].size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), ctx_headers[i].data, + GST_BUFFER_SIZE (buffer)) == 0); + } else { + fail_unless (GST_BUFFER_SIZE (buffer) > 4); + /* only need to check avc output case */ + if (GST_READ_UINT32_BE (GST_BUFFER_DATA (buffer)) == 0x01) + return FALSE; + /* header is merged in initial frame */ + if (vdata->buffer_counter == 0) { + guint8 *data = GST_BUFFER_DATA (buffer); + + fail_unless (GST_BUFFER_SIZE (buffer) == vdata->data_to_verify_size + + ctx_headers[0].size + ctx_headers[1].size); + fail_unless (GST_READ_UINT32_BE (data) == ctx_headers[0].size - 4); + fail_unless (memcmp (data + 4, ctx_headers[0].data + 4, + ctx_headers[0].size - 4) == 0); + data += ctx_headers[0].size; + fail_unless (GST_READ_UINT32_BE (data) == ctx_headers[1].size - 4); + fail_unless (memcmp (data + 4, ctx_headers[1].data + 4, + ctx_headers[1].size - 4) == 0); + data += ctx_headers[1].size; + fail_unless (GST_READ_UINT32_BE (data) == vdata->data_to_verify_size - 4); + fail_unless (memcmp (data + 4, vdata->data_to_verify + 4, + vdata->data_to_verify_size - 4) == 0); + } else { + fail_unless (GST_READ_UINT32_BE (GST_BUFFER_DATA (buffer)) == + GST_BUFFER_SIZE (buffer) - 4); + fail_unless (GST_BUFFER_SIZE (buffer) == vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + 4, + vdata->data_to_verify + 4, GST_BUFFER_SIZE (buffer) - 4) == 0); + } + return TRUE; + } + + return FALSE; +} + +GST_START_TEST (test_parse_normal) +{ + gst_parser_test_normal (h264_idrframe, sizeof (h264_idrframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_drain_single) +{ + gst_parser_test_drain_single (h264_idrframe, sizeof (h264_idrframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_drain_garbage) +{ + gst_parser_test_drain_garbage (h264_idrframe, sizeof (h264_idrframe), + garbage_frame, sizeof (garbage_frame)); +} + +GST_END_TEST +GST_START_TEST (test_parse_split) +{ + gst_parser_test_split (h264_idrframe, sizeof (h264_idrframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_skip_garbage) +{ + gst_parser_test_skip_garbage (h264_idrframe, sizeof (h264_idrframe), + garbage_frame, sizeof (garbage_frame)); +} + +GST_END_TEST; + +#define structure_get_int(s,f) \ + (g_value_get_int(gst_structure_get_value(s,f))) +#define fail_unless_structure_field_int_equals(s,field,num) \ + fail_unless_equals_int (structure_get_int(s,field), num) + + +GST_START_TEST (test_parse_detect_stream) +{ + GstCaps *caps; + GstStructure *s; + GstBuffer *buf; + const GValue *val; + + /* parser does not really care that mpeg1 and mpeg2 frame data + * should be a bit different */ + caps = gst_parser_test_get_output_caps (h264_idrframe, sizeof (h264_idrframe), + NULL); + fail_unless (caps != NULL); + + /* Check that the negotiated caps are as expected */ + /* When codec_data is present, parser assumes that data is version 4 */ + GST_LOG ("h264 output caps: %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/x-h264")); + fail_unless_structure_field_int_equals (s, "width", 32); + fail_unless_structure_field_int_equals (s, "height", 24); + + if (ctx_codec_data) { + fail_unless (gst_structure_has_field (s, "codec_data")); + + /* check codec-data in more detail */ + val = gst_structure_get_value (s, "codec_data"); + fail_unless (val != NULL); + buf = gst_value_get_buffer (val); + fail_unless (buf != NULL); + fail_unless (GST_BUFFER_SIZE (buf) == sizeof (h264_codec_data)); + fail_unless (memcmp (GST_BUFFER_DATA (buf), h264_codec_data, + GST_BUFFER_SIZE (buf)) == 0); + } + + gst_caps_unref (caps); +} + +GST_END_TEST; + + +static Suite * +h264parse_suite (void) +{ + Suite *s = suite_create (ctx_suite); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_normal); + tcase_add_test (tc_chain, test_parse_drain_single); + tcase_add_test (tc_chain, test_parse_drain_garbage); + tcase_add_test (tc_chain, test_parse_split); + tcase_add_test (tc_chain, test_parse_skip_garbage); + tcase_add_test (tc_chain, test_parse_detect_stream); + + return s; +} + +static gboolean +verify_buffer_packetized (buffer_verify_data_s * vdata, GstBuffer * buffer) +{ + fail_unless (GST_BUFFER_SIZE (buffer) > 4); + fail_unless (GST_READ_UINT32_BE (GST_BUFFER_DATA (buffer)) == 0x01); + if (vdata->discard) { + /* check separate header NALs */ + guint8 *data; + gint size; + + if (vdata->buffer_counter == 0) { + data = h264_sps; + size = sizeof (h264_sps); + } else { + data = h264_pps; + size = sizeof (h264_pps); + } + + fail_unless (GST_BUFFER_SIZE (buffer) == size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + 4, data + 4, + size - 4) == 0); + } else { + fail_unless (GST_BUFFER_SIZE (buffer) == vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + 4, + vdata->data_to_verify + 4, GST_BUFFER_SIZE (buffer) - 4) == 0); + } + + return TRUE; +} + +GST_START_TEST (test_parse_packetized) +{ + guint8 *frame; + GstCaps *caps; + GstBuffer *cdata; + GstStructure *s; + gchar *desc; + + /* make AVC frame */ + frame = g_malloc (sizeof (h264_idrframe)); + GST_WRITE_UINT32_BE (frame, sizeof (h264_idrframe) - 4); + memcpy (frame + 4, h264_idrframe + 4, sizeof (h264_idrframe) - 4); + + /* some caps messing */ + caps = gst_caps_from_string (SRC_CAPS_TMPL); + cdata = gst_buffer_new (); + GST_BUFFER_DATA (cdata) = h264_codec_data; + GST_BUFFER_SIZE (cdata) = sizeof (h264_codec_data); + gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, cdata, NULL); + gst_buffer_unref (cdata); + desc = gst_caps_to_string (caps); + gst_caps_unref (caps); + + caps = gst_parser_test_get_output_caps (frame, sizeof (h264_idrframe), desc); + g_free (desc); + g_free (frame); + + /* minor caps checks */ + GST_LOG ("h264 output caps: %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/x-h264")); + fail_unless_structure_field_int_equals (s, "width", 32); + fail_unless_structure_field_int_equals (s, "height", 24); + + gst_caps_unref (caps); +} + +GST_END_TEST; + +static Suite * +h264parse_packetized_suite (void) +{ + Suite *s = suite_create (ctx_suite); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_packetized); + + return s; +} + + +/* + * TODO: + * - Both push- and pull-modes need to be tested + * * Pull-mode & EOS + */ + +int +main (int argc, char **argv) +{ + int nf = 0; + + Suite *s; + SRunner *sr; + + gst_check_init (&argc, &argv); + + /* globabl init test context */ + ctx_factory = "h264parse"; + ctx_sink_template = &sinktemplate_bs_nal; + ctx_src_template = &srctemplate; + ctx_headers[0].data = h264_sps; + ctx_headers[0].size = sizeof (h264_sps); + ctx_headers[1].data = h264_pps; + ctx_headers[1].size = sizeof (h264_pps); + ctx_verify_buffer = verify_buffer; + /* discard initial sps/pps buffers */ + ctx_discard = 2; + /* no timing info to parse */ + ctx_no_metadata = TRUE; + ctx_codec_data = FALSE; + + ctx_suite = "h264parse_to_bs_nal"; + s = h264parse_suite (); + sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + nf += srunner_ntests_failed (sr); + srunner_free (sr); + + /* setup and tweak to handle avc au output */ + ctx_suite = "h264parse_to_avc_au"; + ctx_sink_template = &sinktemplate_avc_au; + ctx_discard = 0; + ctx_codec_data = TRUE; + + s = h264parse_suite (); + sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + nf += srunner_ntests_failed (sr); + srunner_free (sr); + + /* setup and tweak to handle avc packetized input */ + ctx_suite = "h264parse_packetized"; + /* turn into separate byte stream NALs */ + ctx_sink_template = &sinktemplate_bs_nal; + /* and ignore inserted codec-data NALs */ + ctx_discard = 2; + /* no more config headers */ + ctx_headers[0].data = NULL; + ctx_headers[1].data = NULL; + ctx_headers[0].size = 0; + ctx_headers[1].size = 0; + /* and need adapter buffer check */ + ctx_verify_buffer = verify_buffer_packetized; + + s = h264parse_packetized_suite (); + sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + nf += srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/imagecapturebin.c b/tests/check/elements/imagecapturebin.c deleted file mode 100644 index 5c5f736..0000000 --- a/tests/check/elements/imagecapturebin.c +++ /dev/null @@ -1,410 +0,0 @@ -/* GStreamer unit test for the imagecapturebin element - * Copyright (C) 2010 Thiago Santos - * - * 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 - -#define N_BUFFERS 3 - -typedef struct -{ - GstElement *pipe; - GstElement *src; - GstElement *icbin; -} GstImageCaptureBinTestContext; - -static void -gstimagecapturebin_init_test_context (GstImageCaptureBinTestContext * ctx, - const gchar * src, gint num_buffers) -{ - fail_unless (ctx != NULL); - - ctx->pipe = gst_pipeline_new ("pipeline"); - fail_unless (ctx->pipe != NULL); - ctx->src = gst_element_factory_make (src, "src"); - fail_unless (ctx->src != NULL, "Failed to create src element"); - ctx->icbin = gst_element_factory_make ("imagecapturebin", "icbin"); - fail_unless (ctx->icbin != NULL, "Failed to create imagecapturebin element"); - - if (num_buffers > 0) - g_object_set (ctx->src, "num-buffers", num_buffers, NULL); - - fail_unless (gst_bin_add (GST_BIN (ctx->pipe), ctx->src)); - fail_unless (gst_bin_add (GST_BIN (ctx->pipe), ctx->icbin)); - fail_unless (gst_element_link_many (ctx->src, ctx->icbin, NULL)); -} - -static void -gstimagecapturebin_unset_test_context (GstImageCaptureBinTestContext * ctx) -{ - gst_element_set_state (ctx->pipe, GST_STATE_NULL); - gst_object_unref (ctx->pipe); - memset (ctx, 0, sizeof (GstImageCaptureBinTestContext)); -} - -static gchar * -make_test_file_name (void) -{ - return g_strdup_printf ("%s" G_DIR_SEPARATOR_S - "imagecapturebintest_%%d.cap", g_get_tmp_dir ()); -} - -static gboolean -get_file_info (const gchar * filename, gint * width, gint * height) -{ - GstElement *playbin = gst_element_factory_make ("playbin2", NULL); - GstElement *fakesink = gst_element_factory_make ("fakesink", NULL); - GstState state = GST_STATE_NULL; - GstPad *pad; - GstCaps *caps; - gchar *uri = g_strdup_printf ("file://%s", filename); - - g_object_set (playbin, "video-sink", fakesink, NULL); - g_object_set (playbin, "uri", uri, NULL); - g_free (uri); - - gst_element_set_state (playbin, GST_STATE_PAUSED); - - gst_element_get_state (playbin, &state, NULL, GST_SECOND * 5); - - fail_unless (state == GST_STATE_PAUSED); - - g_signal_emit_by_name (playbin, "get-video-pad", 0, &pad, NULL); - caps = gst_pad_get_negotiated_caps (pad); - fail_unless (gst_structure_get_int (gst_caps_get_structure (caps, 0), "width", - width)); - fail_unless (gst_structure_get_int (gst_caps_get_structure (caps, 0), - "height", height)); - - gst_object_unref (pad); - gst_element_set_state (playbin, GST_STATE_NULL); - gst_object_unref (playbin); - return TRUE; -} - -static GstBuffer * -create_video_buffer (GstCaps * caps) -{ - GstElement *pipeline; - GstElement *cf; - GstElement *sink; - GstBuffer *buffer; - - pipeline = - gst_parse_launch - ("videotestsrc num-buffers=1 ! capsfilter name=cf ! appsink name=sink", - NULL); - g_assert (pipeline != NULL); - - cf = gst_bin_get_by_name (GST_BIN (pipeline), "cf"); - sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); - - g_object_set (G_OBJECT (cf), "caps", caps, NULL); - - gst_element_set_state (pipeline, GST_STATE_PLAYING); - - buffer = gst_app_sink_pull_buffer (GST_APP_SINK (sink)); - - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref (pipeline); - gst_object_unref (sink); - gst_object_unref (cf); - return buffer; -} - - -GST_START_TEST (test_simple_capture) -{ - GstImageCaptureBinTestContext ctx; - GstBus *bus; - GstMessage *msg; - gchar *test_file_name; - gint i; - - gstimagecapturebin_init_test_context (&ctx, "videotestsrc", N_BUFFERS); - bus = gst_element_get_bus (ctx.pipe); - - test_file_name = make_test_file_name (); - g_object_set (ctx.icbin, "location", test_file_name, NULL); - - fail_if (gst_element_set_state (ctx.pipe, GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE); - - msg = gst_bus_timed_pop_filtered (bus, GST_SECOND * 10, - GST_MESSAGE_EOS | GST_MESSAGE_ERROR); - fail_unless (msg != NULL); - fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS); - gst_message_unref (msg); - - /* check there are N_BUFFERS files */ - for (i = 0; i < N_BUFFERS; i++) { - gchar *filename; - FILE *f; - - filename = g_strdup_printf (test_file_name, i); - - fail_unless (g_file_test (filename, G_FILE_TEST_EXISTS)); - fail_unless (g_file_test (filename, G_FILE_TEST_IS_REGULAR)); - fail_if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK)); - - /* check the file isn't empty */ - f = fopen (filename, "r"); - fseek (f, 0, SEEK_END); - fail_unless (ftell (f) > 0); - fclose (f); - - g_free (filename); - } - - gstimagecapturebin_unset_test_context (&ctx); - gst_object_unref (bus); - g_free (test_file_name); -} - -GST_END_TEST; - - -GST_START_TEST (test_multiple_captures_different_caps) -{ - GstImageCaptureBinTestContext ctx; - GstBus *bus; - GstMessage *msg; - gchar *test_file_name; - gint i; - gint widths[] = { 100, 300, 200 }; - gint heights[] = { 300, 200, 100 }; - GstPad *pad; - - gstimagecapturebin_init_test_context (&ctx, "appsrc", N_BUFFERS); - bus = gst_element_get_bus (ctx.pipe); - - test_file_name = make_test_file_name (); - g_object_set (ctx.icbin, "location", test_file_name, NULL); - fail_if (gst_element_set_state (ctx.pipe, GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE); - - /* push data directly because set_caps and buffer pushes on appsrc - * are not serialized into the flow, so we can't guarantee the buffers - * have the caps we want on them when pushed */ - pad = gst_element_get_static_pad (ctx.src, "src"); - - /* push the buffers */ - for (i = 0; i < N_BUFFERS; i++) { - GstCaps *caps; - GstBuffer *buf; - - caps = gst_caps_new_simple ("video/x-raw-yuv", "width", G_TYPE_INT, - widths[i], "height", G_TYPE_INT, heights[i], "framerate", - GST_TYPE_FRACTION, 1, 1, "format", GST_TYPE_FOURCC, - GST_MAKE_FOURCC ('I', '4', '2', '0'), NULL); - - buf = create_video_buffer (caps); - fail_if (buf == NULL); - - fail_unless (gst_pad_push (pad, buf) == GST_FLOW_OK); - gst_caps_unref (caps); - } - gst_app_src_end_of_stream (GST_APP_SRC (ctx.src)); - gst_object_unref (pad); - - msg = gst_bus_timed_pop_filtered (bus, GST_SECOND * 10, - GST_MESSAGE_EOS | GST_MESSAGE_ERROR); - fail_unless (msg != NULL); - fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS); - gst_message_unref (msg); - - /* check there are N_BUFFERS files */ - for (i = 0; i < N_BUFFERS; i++) { - gchar *filename; - FILE *f; - gint width = 0, height = 0; - - filename = g_strdup_printf (test_file_name, i); - - fail_unless (g_file_test (filename, G_FILE_TEST_EXISTS)); - fail_unless (g_file_test (filename, G_FILE_TEST_IS_REGULAR)); - fail_if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK)); - - /* check the file isn't empty */ - f = fopen (filename, "r"); - fseek (f, 0, SEEK_END); - fail_unless (ftell (f) > 0); - fclose (f); - - /* get the file info */ - fail_unless (get_file_info (filename, &width, &height)); - fail_unless (width == widths[i]); - fail_unless (height == heights[i]); - - g_free (filename); - } - - gstimagecapturebin_unset_test_context (&ctx); - gst_object_unref (bus); - g_free (test_file_name); -} - -GST_END_TEST; - -GST_START_TEST (test_setting_encoder) -{ - GstImageCaptureBinTestContext ctx; - GstBus *bus; - GstMessage *msg; - GstElement *encoder; - gchar *test_file_name; - gint i; - - gstimagecapturebin_init_test_context (&ctx, "videotestsrc", N_BUFFERS); - bus = gst_element_get_bus (ctx.pipe); - - test_file_name = make_test_file_name (); - g_object_set (ctx.icbin, "location", test_file_name, NULL); - - encoder = gst_element_factory_make ("jpegenc", NULL); - g_object_set (ctx.icbin, "image-encoder", encoder, NULL); - - fail_if (gst_element_set_state (ctx.pipe, GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE); - - msg = gst_bus_timed_pop_filtered (bus, GST_SECOND * 10, - GST_MESSAGE_EOS | GST_MESSAGE_ERROR); - fail_unless (msg != NULL); - fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS); - - /* check there are N_BUFFERS files */ - for (i = 0; i < N_BUFFERS; i++) { - gchar *filename; - FILE *f; - - filename = g_strdup_printf (test_file_name, i); - - fail_unless (g_file_test (filename, G_FILE_TEST_EXISTS)); - fail_unless (g_file_test (filename, G_FILE_TEST_IS_REGULAR)); - fail_if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK)); - - /* check the file isn't empty */ - f = fopen (filename, "r"); - fseek (f, 0, SEEK_END); - fail_unless (ftell (f) > 0); - fclose (f); - - g_free (filename); - } - - gstimagecapturebin_unset_test_context (&ctx); - gst_object_unref (bus); - g_free (test_file_name); -} - -GST_END_TEST; - -GST_START_TEST (test_setting_muxer) -{ - GstImageCaptureBinTestContext ctx; - GstBus *bus; - GstMessage *msg; - GstElement *encoder; - gchar *test_file_name; - gint i; - - gstimagecapturebin_init_test_context (&ctx, "videotestsrc", N_BUFFERS); - bus = gst_element_get_bus (ctx.pipe); - - test_file_name = make_test_file_name (); - g_object_set (ctx.icbin, "location", test_file_name, NULL); - - encoder = gst_element_factory_make ("pngenc", NULL); - g_object_set (ctx.icbin, "image-encoder", encoder, NULL); - - encoder = gst_element_factory_make ("identity", NULL); - g_object_set (ctx.icbin, "image-muxer", encoder, NULL); - - fail_if (gst_element_set_state (ctx.pipe, GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE); - - msg = gst_bus_timed_pop_filtered (bus, GST_SECOND * 10, - GST_MESSAGE_EOS | GST_MESSAGE_ERROR); - fail_unless (msg != NULL); - fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS); - - /* check there are N_BUFFERS files */ - for (i = 0; i < N_BUFFERS; i++) { - gchar *filename; - FILE *f; - - filename = g_strdup_printf (test_file_name, i); - - fail_unless (g_file_test (filename, G_FILE_TEST_EXISTS)); - fail_unless (g_file_test (filename, G_FILE_TEST_IS_REGULAR)); - fail_if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK)); - - /* check the file isn't empty */ - f = fopen (filename, "r"); - fseek (f, 0, SEEK_END); - fail_unless (ftell (f) > 0); - fclose (f); - - g_free (filename); - } - - gstimagecapturebin_unset_test_context (&ctx); - gst_object_unref (bus); - g_free (test_file_name); -} - -GST_END_TEST; - -static Suite * -imagecapturebin_suite (void) -{ - GstElementFactory *jpegenc_factory; - - Suite *s = suite_create ("imagecapturebin"); - TCase *tc_chain = tcase_create ("general"); - - jpegenc_factory = gst_element_factory_find ("jpegenc"); - - suite_add_tcase (s, tc_chain); - if (jpegenc_factory) { - tcase_add_test (tc_chain, test_simple_capture); - - /* only adds this test if jpegenc contains the fix for its getcaps - * The fix on good: dcbba0932dc579abd6aab4460fa1a416374eda1b */ - if (gst_plugin_feature_check_version ((GstPluginFeature *) jpegenc_factory, - 0, 10, 27)) - tcase_add_test (tc_chain, test_multiple_captures_different_caps); - else - GST_WARNING ("Skipped test that needs gst-plugins-good 0.10.27"); - - tcase_add_test (tc_chain, test_setting_encoder); - tcase_add_test (tc_chain, test_setting_muxer); - } else - GST_WARNING ("Skipped imagecapturebin tests because jpegenc is missing"); - - return s; -} - -GST_CHECK_MAIN (imagecapturebin); diff --git a/tests/check/elements/jifmux.c b/tests/check/elements/jifmux.c index 9e21d1a..05e6756 100644 --- a/tests/check/elements/jifmux.c +++ b/tests/check/elements/jifmux.c @@ -27,6 +27,8 @@ #include #include +#include + #include #include @@ -1200,6 +1202,7 @@ GST_START_TEST (test_jifmux_tags) tmpfile); libexif_check_tags (FILE_SOURCE_TAG ("transparent-scanner"), tmpfile); + g_unlink (tmpfile); g_free (tmpfile); } diff --git a/tests/check/elements/jpegparse.c b/tests/check/elements/jpegparse.c index 7d5c6a8..d8d5756 100644 --- a/tests/check/elements/jpegparse.c +++ b/tests/check/elements/jpegparse.c @@ -43,6 +43,113 @@ guint8 test_data_extra_ff[] = { 0xff, 0xd8, 0xff, 0xff, 0xff, 0x12, 0x00, 0x03, 0x33, 0xff, 0xff, 0xff, 0xd9 }; +guint8 test_data_soi[] = { 0xff, 0xd8 }; + +guint8 test_data_app1_exif[] = { + 0xff, 0xe1, + 0x00, 0xd2, /* length = 210 */ + 0x45, 0x78, 0x69, 0x66, 0x00, /* Exif */ + 0x00, + 0x49, 0x49, + 0x2a, 0x00, + 0x08, + 0x00, 0x00, 0x00, + 0x09, /* number of entries */ + 0x00, + 0x0e, 0x01, /* tag 0x10e */ + 0x02, 0x00, /* type 2 */ + 0x0b, 0x00, /* count 11 */ + 0x00, 0x00, + 0x7a, /* offset 122 (0x7a) */ + 0x00, 0x00, 0x00, + 0x0f, 0x01, /* tag 0x10f */ + 0x02, 0x00, /* type 2 */ + 0x06, 0x00, /* count 6 */ + 0x00, 0x00, + 0x85, /* offset 133 (0x85) */ + 0x00, 0x00, 0x00, + 0x10, 0x01, /* tag 0x110 */ + 0x02, 0x00, /* type 2 */ + 0x05, 0x00, /* count 5 */ + 0x00, 0x00, + 0x8b, /* offset 139 (0x8b) */ + 0x00, 0x00, 0x00, + 0x12, 0x01, /* tag 0x112 */ + 0x03, 0x00, /* type 3 */ + 0x01, 0x00, /* count 1 */ + 0x00, 0x00, + 0x01, 0x00, 0x30, 0x2c, /* offset (0x2c300001) */ + 0x1a, 0x01, /* tag 0x11a */ + 0x05, 0x00, /* type 5 */ + 0x01, 0x00, /* count 1 */ + 0x00, 0x00, + 0x90, /* offset 144 (0x90) */ + 0x00, 0x00, 0x00, + 0x1b, 0x01, /* tag 0x11b */ + 0x05, 0x00, /* type 5 */ + 0x01, 0x00, /* count 1 */ + 0x00, 0x00, + 0x98, /* offset 152 (0x98) */ + 0x00, 0x00, 0x00, + 0x28, 0x01, /* tag 0x128 */ + 0x03, 0x00, /* type 3 */ + 0x01, 0x00, /* count 1 */ + 0x00, 0x00, + 0x02, 0x00, 0x31, 0x2f, /* offset (0x2f310002) */ + 0x31, 0x01, /* tag 0x131 */ + 0x02, 0x00, /* type 2 */ + 0x08, 0x00, /* count 8 */ + 0x00, 0x00, + 0xa0, /* offset 160 (0xa0) */ + 0x00, 0x00, 0x00, + 0x32, 0x01, /* tag 0x132 */ + 0x02, 0x00, /* type 2 */ + 0x14, 0x00, /* count 20 */ + 0x00, 0x00, + 0xa8, /* offset 168 (0xa8) */ + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + 0x00, + /* string */ + /* 122: */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + /* string (NIKON) */ + /* 133: */ 0x4e, 0x49, 0x4b, 0x4f, 0x4e, 0x00, + /* string (E800) */ + /* 139: */ 0x45, 0x38, 0x30, 0x30, 0x00, + /* 144: */ 0x00, 0x00, 0x80, 0x25, /* / */ 0x00, 0x00, 0x20, 0x00, + /* 152: */ 0x00, 0x00, 0x80, 0x25, /* / */ 0x00, 0x00, 0x20, 0x00, + /* string (v984-75) */ + /* 160: */ 0x76, 0x39, 0x38, 0x34, 0x2d, 0x37, 0x35, 0x00, + /* string (2001:08:18 21:44:21) */ + /* 168: */ 0x32, 0x30, 0x30, 0x31, 0x3a, 0x30, 0x38, 0x3a, + 0x31, 0x38, 0x20, 0x32, 0x31, 0x3a, 0x34, 0x34, + 0x3a, 0x32, 0x31, 0x00, + + 0x1e, 0x21, 0x1f, 0x1e, 0x21, 0x1c, 0x20, 0x21, 0x22, 0x24, 0x24, 0x27, + 0x22, 0x20, +}; + +guint8 test_data_comment[] = { + 0xff, 0xfe, + 0x00, 0x08, /* size */ + /* xxxxx */ + 0x78, 0x78, 0x78, 0x78, 0x78, 0x00, +}; + +guint8 test_data_sof0[] = { + 0xff, 0xc0, + 0x00, 0x11, /* size */ + 0x08, /* precision */ + 0x00, 0x3c, /* width */ + 0x00, 0x50, /* height */ + 0x03, /* number of components */ + 0x01, 0x22, 0x00, /* component 1 */ + 0x02, 0x11, 0x01, /* component 2 */ + 0x03, 0x11, 0x01, /* component 3 */ +}; + +guint8 test_data_eoi[] = { 0xff, 0xd9 }; + static GList * _make_buffers_in (GList * buffer_in, guint8 * test_data, gsize test_data_size) { @@ -167,6 +274,86 @@ GST_START_TEST (test_parse_all_in_one_buf) GST_END_TEST; +static inline GstBuffer * +make_my_input_buffer (guint8 * test_data_header, gsize test_data_size) +{ + GstBuffer *buffer; + gsize total_size = 0, offset = 0; + GstCaps *caps; + + total_size += sizeof (test_data_soi); + total_size += test_data_size; + total_size += sizeof (test_data_sof0); + total_size += sizeof (test_data_eoi); + + buffer = gst_buffer_new_and_alloc (total_size); + + memcpy (GST_BUFFER_DATA (buffer) + offset, test_data_soi, + sizeof (test_data_soi)); + offset += sizeof (test_data_soi); + memcpy (GST_BUFFER_DATA (buffer) + offset, test_data_header, test_data_size); + offset += test_data_size; + memcpy (GST_BUFFER_DATA (buffer) + offset, test_data_sof0, + sizeof (test_data_sof0)); + offset += sizeof (test_data_sof0); + memcpy (GST_BUFFER_DATA (buffer) + offset, test_data_eoi, + sizeof (test_data_eoi)); + offset += sizeof (test_data_eoi); + + caps = gst_caps_new_simple ("image/jpeg", "parsed", G_TYPE_BOOLEAN, FALSE, + NULL); + gst_buffer_set_caps (buffer, caps); + gst_caps_unref (caps); + + return buffer; +} + +static inline GstBuffer * +make_my_output_buffer (const GstBuffer * buffer_in) +{ + GstBuffer *buffer; + GstCaps *caps; + + buffer = gst_buffer_new (); + caps = gst_caps_new_simple ("image/jpeg", "parsed", G_TYPE_BOOLEAN, TRUE, + "framerate", GST_TYPE_FRACTION, 1, 1, "format", GST_TYPE_FOURCC, + GST_MAKE_FOURCC ('I', '4', '2', '0'), "interlaced", G_TYPE_BOOLEAN, FALSE, + "width", G_TYPE_INT, 80, "height", G_TYPE_INT, 60, NULL); + gst_buffer_set_data (buffer, GST_BUFFER_DATA (buffer_in), + GST_BUFFER_SIZE (buffer_in)); + gst_buffer_set_caps (buffer, caps); + gst_caps_unref (caps); + + return buffer; +} + + +GST_START_TEST (test_parse_app1_exif) +{ + GstBuffer *buffer_in, *buffer_out; + + buffer_in = make_my_input_buffer (test_data_app1_exif, + sizeof (test_data_app1_exif)); + buffer_out = make_my_output_buffer (buffer_in); + + gst_check_element_push_buffer ("jpegparse", buffer_in, buffer_out); +} + +GST_END_TEST; + +GST_START_TEST (test_parse_comment) +{ + GstBuffer *buffer_in, *buffer_out; + + buffer_in = make_my_input_buffer (test_data_comment, + sizeof (test_data_comment)); + buffer_out = make_my_output_buffer (buffer_in); + + gst_check_element_push_buffer ("jpegparse", buffer_in, buffer_out); +} + +GST_END_TEST; + static Suite * jpegparse_suite (void) { @@ -176,6 +363,8 @@ jpegparse_suite (void) suite_add_tcase (s, tc_chain); tcase_add_test (tc_chain, test_parse_single_byte); tcase_add_test (tc_chain, test_parse_all_in_one_buf); + tcase_add_test (tc_chain, test_parse_app1_exif); + tcase_add_test (tc_chain, test_parse_comment); return s; } diff --git a/tests/check/elements/mpeg4videoparse.c b/tests/check/elements/mpeg4videoparse.c new file mode 100644 index 0000000..bd4de01 --- /dev/null +++ b/tests/check/elements/mpeg4videoparse.c @@ -0,0 +1,193 @@ +/* + * GStreamer + * + * unit test for mpeg4videoparse + * + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include +#include "parser.h" + +#define SRC_CAPS_TMPL "video/mpeg, framed=(boolean)false" +#define SINK_CAPS_TMPL "video/mpeg, framed=(boolean)true" + +GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS_TMPL) + ); + +GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SRC_CAPS_TMPL) + ); + +/* some data */ + +/* codec data; VOS up to and including GOP */ +static guint8 mpeg4_config[] = { + 0x00, 0x00, 0x01, 0xb0, 0x01, 0x00, 0x00, 0x01, + 0xb5, 0x89, 0x13, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x20, 0x00, 0xc4, 0x8d, 0x88, 0x00, + 0xf5, 0x01, 0x04, 0x03, 0x14, 0x63, 0x00, 0x00, + 0x01, 0xb3, 0x00, 0x10, 0x07 +}; + +/* keyframes all around */ +static guint8 mpeg4_iframe[] = { + 0x00, 0x00, 0x01, 0xb6, 0x10, 0x60, 0x91, 0x82, + 0x3d, 0xb7, 0xf1, 0xb6, 0xdf, 0xc6, 0xdb, 0x7f, + 0x1b, 0x6d, 0xfb +}; + +static gboolean +verify_buffer (buffer_verify_data_s * vdata, GstBuffer * buffer) +{ + /* header is merged in initial frame */ + if (vdata->buffer_counter == 0) { + /* the whole sequence header is included */ + fail_unless (GST_BUFFER_SIZE (buffer) == + ctx_headers[0].size + vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), ctx_headers[0].data, + ctx_headers[0].size) == 0); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + ctx_headers[0].size, + vdata->data_to_verify, vdata->data_to_verify_size) == 0); + return TRUE; + } + + return FALSE; +} + +GST_START_TEST (test_parse_normal) +{ + gst_parser_test_normal (mpeg4_iframe, sizeof (mpeg4_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_drain_single) +{ + gst_parser_test_drain_single (mpeg4_iframe, sizeof (mpeg4_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_split) +{ + gst_parser_test_split (mpeg4_iframe, sizeof (mpeg4_iframe)); +} + +GST_END_TEST; + + +#define structure_get_int(s,f) \ + (g_value_get_int(gst_structure_get_value(s,f))) +#define fail_unless_structure_field_int_equals(s,field,num) \ + fail_unless_equals_int (structure_get_int(s,field), num) + +GST_START_TEST (test_parse_detect_stream) +{ + GstCaps *caps; + GstStructure *s; + GstBuffer *buf; + const GValue *val; + + caps = gst_parser_test_get_output_caps (mpeg4_iframe, sizeof (mpeg4_iframe), + NULL); + fail_unless (caps != NULL); + + /* Check that the negotiated caps are as expected */ + /* When codec_data is present, parser assumes that data is version 4 */ + GST_LOG ("mpeg4video output caps: %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/mpeg")); + fail_unless_structure_field_int_equals (s, "mpegversion", 4); + fail_unless_structure_field_int_equals (s, "width", 32); + fail_unless_structure_field_int_equals (s, "height", 24); + fail_unless (gst_structure_has_field (s, "codec_data")); + + /* check codec-data in more detail */ + val = gst_structure_get_value (s, "codec_data"); + fail_unless (val != NULL); + buf = gst_value_get_buffer (val); + fail_unless (buf != NULL); + /* codec-data == config header - GOP */ + fail_unless (GST_BUFFER_SIZE (buf) == sizeof (mpeg4_config) - 7); + fail_unless (memcmp (GST_BUFFER_DATA (buf), mpeg4_config, + GST_BUFFER_SIZE (buf)) == 0); + + gst_caps_unref (caps); +} + +GST_END_TEST; + + +static Suite * +mpeg4videoparse_suite (void) +{ + Suite *s = suite_create ("mpeg4videoparse"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_normal); + tcase_add_test (tc_chain, test_parse_drain_single); + tcase_add_test (tc_chain, test_parse_split); + tcase_add_test (tc_chain, test_parse_detect_stream); + + return s; +} + + +/* + * TODO: + * - Both push- and pull-modes need to be tested + * * Pull-mode & EOS + */ + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = mpeg4videoparse_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + /* init test context */ + ctx_factory = "mpeg4videoparse"; + ctx_sink_template = &sinktemplate; + ctx_src_template = &srctemplate; + ctx_headers[0].data = mpeg4_config; + ctx_headers[0].size = sizeof (mpeg4_config); + ctx_verify_buffer = verify_buffer; + /* no timing info to parse */ + ctx_no_metadata = TRUE; + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/mpegtsmux.c b/tests/check/elements/mpegtsmux.c new file mode 100644 index 0000000..a93ac67 --- /dev/null +++ b/tests/check/elements/mpegtsmux.c @@ -0,0 +1,323 @@ +/* GStreamer + * + * Copyright (C) 2011 Alessandro Decina + * + * 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. + */ + +#include +#include +#include + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +static GstStaticPadTemplate video_src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-h264") + ); + +static GstStaticPadTemplate audio_src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/mpeg") + ); + +typedef struct _TestData +{ + GstEvent *sink_event; + GstEvent *src_event1; + GstEvent *src_event2; + gint src_events; +} TestData; + +typedef struct _ThreadData +{ + GstPad *pad; + GstBuffer *buffer; + GstFlowReturn flow_return; + GThread *thread; +} ThreadData; + +static gboolean +src_event (GstPad * pad, GstEvent * event) +{ + TestData *data = (TestData *) gst_pad_get_element_private (pad); + + if (event->type == GST_EVENT_CUSTOM_UPSTREAM) { + data->src_events += 1; + if (data->src_event1 != NULL) + data->src_event2 = event; + else + data->src_event1 = event; + } + + return TRUE; +} + +static gboolean +sink_event (GstPad * pad, GstEvent * event) +{ + TestData *data = (TestData *) gst_pad_get_element_private (pad); + + if (event->type == GST_EVENT_CUSTOM_DOWNSTREAM) + data->sink_event = event; + + return TRUE; +} + +static void +link_sinks (GstElement * mpegtsmux, + GstPad ** src1, GstPad ** src2, GstPad ** src3, TestData * test_data) +{ + GstPad *mux_sink1, *mux_sink2, *mux_sink3; + GstCaps *caps; + + /* link 3 sink pads, 2 video 1 audio */ + *src1 = gst_pad_new_from_static_template (&video_src_template, "src1"); + gst_pad_set_active (*src1, TRUE); + gst_pad_set_element_private (*src1, test_data); + gst_pad_set_event_function (*src1, src_event); + mux_sink1 = gst_element_get_request_pad (mpegtsmux, "sink_1"); + fail_unless (gst_pad_link (*src1, mux_sink1) == GST_PAD_LINK_OK); + + *src2 = gst_pad_new_from_static_template (&video_src_template, "src2"); + gst_pad_set_active (*src2, TRUE); + gst_pad_set_element_private (*src2, test_data); + gst_pad_set_event_function (*src2, src_event); + mux_sink2 = gst_element_get_request_pad (mpegtsmux, "sink_2"); + fail_unless (gst_pad_link (*src2, mux_sink2) == GST_PAD_LINK_OK); + + *src3 = gst_pad_new_from_static_template (&audio_src_template, "src3"); + gst_pad_set_active (*src3, TRUE); + gst_pad_set_element_private (*src3, test_data); + gst_pad_set_event_function (*src3, src_event); + mux_sink3 = gst_element_get_request_pad (mpegtsmux, "sink_3"); + fail_unless (gst_pad_link (*src3, mux_sink3) == GST_PAD_LINK_OK); + + caps = gst_caps_new_simple ("video/x-h264", NULL); + gst_pad_set_caps (mux_sink1, caps); + gst_pad_set_caps (mux_sink2, caps); + gst_caps_unref (caps); + caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 4, NULL); + gst_pad_set_caps (mux_sink3, caps); + gst_caps_unref (caps); + + gst_object_unref (mux_sink1); + gst_object_unref (mux_sink2); + gst_object_unref (mux_sink3); +} + +static void +link_src (GstElement * mpegtsmux, GstPad ** sink, TestData * test_data) +{ + GstPad *mux_src; + + mux_src = gst_element_get_static_pad (mpegtsmux, "src"); + *sink = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_active (*sink, TRUE); + gst_pad_set_event_function (*sink, sink_event); + gst_pad_set_element_private (*sink, test_data); + fail_unless (gst_pad_link (mux_src, *sink) == GST_PAD_LINK_OK); + + gst_object_unref (mux_src); +} + +static gpointer +pad_push_thread (gpointer user_data) +{ + ThreadData *data = (ThreadData *) user_data; + + data->flow_return = gst_pad_push (data->pad, data->buffer); + + return NULL; +} + +static ThreadData * +pad_push (GstPad * pad, GstBuffer * buffer, GstClockTime timestamp) +{ + ThreadData *data; + + data = g_new0 (ThreadData, 1); + data->pad = pad; + data->buffer = buffer; + GST_BUFFER_TIMESTAMP (buffer) = timestamp; + data->thread = g_thread_create (pad_push_thread, data, TRUE, NULL); + + return data; +} + +GST_START_TEST (test_force_key_unit_event_downstream) +{ + GstElement *mpegtsmux; + GstPad *sink; + GstPad *src1; + GstPad *src2; + GstPad *src3; + GstEvent *sink_event; + GstClockTime timestamp, stream_time, running_time; + gboolean all_headers = TRUE; + gint count = 0; + ThreadData *thread_data_1, *thread_data_2, *thread_data_3, *thread_data_4; + TestData test_data = { 0, }; + + mpegtsmux = gst_check_setup_element ("mpegtsmux"); + gst_element_set_state (mpegtsmux, GST_STATE_PLAYING); + + link_src (mpegtsmux, &sink, &test_data); + link_sinks (mpegtsmux, &src1, &src2, &src3, &test_data); + + /* hack: make sure collectpads builds collect->data */ + gst_pad_push_event (src1, gst_event_new_flush_start ()); + gst_pad_push_event (src1, gst_event_new_flush_stop ()); + + /* send a force-key-unit event with running_time=2s */ + timestamp = stream_time = running_time = 2 * GST_SECOND; + sink_event = gst_video_event_new_downstream_force_key_unit (timestamp, + stream_time, running_time, all_headers, count); + + fail_unless (gst_pad_push_event (src1, sink_event)); + fail_unless (test_data.sink_event == NULL); + + /* push 4 buffers, make sure mpegtsmux handles the force-key-unit event when + * the buffer with the requested running time is collected */ + thread_data_1 = pad_push (src1, gst_buffer_new (), 1 * GST_SECOND); + thread_data_2 = pad_push (src2, gst_buffer_new (), 2 * GST_SECOND); + thread_data_3 = pad_push (src3, gst_buffer_new (), 3 * GST_SECOND); + + g_thread_join (thread_data_1->thread); + fail_unless (test_data.sink_event == NULL); + + /* push again on src1 so that the buffer on src2 is collected */ + thread_data_4 = pad_push (src1, gst_buffer_new (), 4 * GST_SECOND); + + g_thread_join (thread_data_2->thread); + fail_unless (test_data.sink_event != NULL); + + gst_element_set_state (mpegtsmux, GST_STATE_NULL); + + g_thread_join (thread_data_3->thread); + g_thread_join (thread_data_4->thread); + + g_free (thread_data_1); + g_free (thread_data_2); + g_free (thread_data_3); + g_free (thread_data_4); + gst_object_unref (src1); + gst_object_unref (src2); + gst_object_unref (src3); + gst_object_unref (sink); + gst_object_unref (mpegtsmux); +} + +GST_END_TEST; + +GST_START_TEST (test_force_key_unit_event_upstream) +{ + GstElement *mpegtsmux; + GstPad *sink; + GstPad *src1; + GstPad *src2; + GstPad *src3; + GstEvent *event; + GstClockTime timestamp, stream_time, running_time; + gboolean all_headers = TRUE; + gint count = 0; + TestData test_data = { 0, }; + ThreadData *thread_data_1, *thread_data_2, *thread_data_3, *thread_data_4; + + mpegtsmux = gst_check_setup_element ("mpegtsmux"); + gst_element_set_state (mpegtsmux, GST_STATE_PLAYING); + + link_src (mpegtsmux, &sink, &test_data); + link_sinks (mpegtsmux, &src1, &src2, &src3, &test_data); + + /* hack: make sure collectpads builds collect->data */ + gst_pad_push_event (src1, gst_event_new_flush_start ()); + gst_pad_push_event (src1, gst_event_new_flush_stop ()); + + /* send an upstream force-key-unit event with running_time=2s */ + timestamp = stream_time = running_time = 2 * GST_SECOND; + event = + gst_video_event_new_upstream_force_key_unit (running_time, TRUE, count); + fail_unless (gst_pad_push_event (sink, event)); + + fail_unless (test_data.sink_event == NULL); + fail_unless_equals_int (test_data.src_events, 3); + + /* send downstream events with unrelated seqnums */ + event = gst_video_event_new_downstream_force_key_unit (timestamp, + stream_time, running_time, all_headers, count); + fail_unless (gst_pad_push_event (src1, event)); + event = gst_video_event_new_downstream_force_key_unit (timestamp, + stream_time, running_time, all_headers, count); + fail_unless (gst_pad_push_event (src2, event)); + + /* events should be skipped */ + fail_unless (test_data.sink_event == NULL); + + /* push 4 buffers, make sure mpegtsmux handles the force-key-unit event when + * the buffer with the requested running time is collected */ + thread_data_1 = pad_push (src1, gst_buffer_new (), 1 * GST_SECOND); + thread_data_2 = pad_push (src2, gst_buffer_new (), 2 * GST_SECOND); + thread_data_3 = pad_push (src3, gst_buffer_new (), 3 * GST_SECOND); + + g_thread_join (thread_data_1->thread); + fail_unless (test_data.sink_event == NULL); + + /* push again on src1 so that the buffer on src2 is collected */ + thread_data_4 = pad_push (src1, gst_buffer_new (), 4 * GST_SECOND); + + g_thread_join (thread_data_2->thread); + fail_unless (test_data.sink_event != NULL); + + gst_element_set_state (mpegtsmux, GST_STATE_NULL); + + g_thread_join (thread_data_3->thread); + g_thread_join (thread_data_4->thread); + + g_free (thread_data_1); + g_free (thread_data_2); + g_free (thread_data_3); + g_free (thread_data_4); + + gst_object_unref (src1); + gst_object_unref (src2); + gst_object_unref (src3); + gst_object_unref (sink); + gst_object_unref (mpegtsmux); +} + +GST_END_TEST; + +static Suite * +mpegtsmux_suite (void) +{ + Suite *s = suite_create ("mpegtsmux"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + + tcase_add_test (tc_chain, test_force_key_unit_event_downstream); + tcase_add_test (tc_chain, test_force_key_unit_event_upstream); + + return s; +} + +GST_CHECK_MAIN (mpegtsmux); diff --git a/tests/check/elements/mpegvideoparse.c b/tests/check/elements/mpegvideoparse.c new file mode 100644 index 0000000..9aab78f --- /dev/null +++ b/tests/check/elements/mpegvideoparse.c @@ -0,0 +1,269 @@ +/* + * GStreamer + * + * unit test for mpegvideoparse + * + * Copyright (C) 2011 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include +#include "parser.h" + +#define SRC_CAPS_TMPL "video/mpeg, framed=(boolean)false" +#define SINK_CAPS_TMPL "video/mpeg, framed=(boolean)true" + +GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS_TMPL) + ); + +GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SRC_CAPS_TMPL) + ); + +/* some data */ + +/* actually seq + gop */ +static guint8 mpeg2_seq[] = { + 0x00, 0x00, 0x01, 0xb3, 0x02, 0x00, 0x18, 0x15, + 0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5, + 0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xb8, 0x00, 0x08, 0x00, 0x00 +}; + +/* actually seq + gop */ +static guint8 mpeg1_seq[] = { + 0x00, 0x00, 0x01, 0xb3, 0x02, 0x00, 0x18, 0x15, + 0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb8, + 0x00, 0x08, 00, 00 +}; + +/* keyframes all around */ +static guint8 mpeg2_iframe[] = { + 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0xff, 0xf8, + 0x00, 0x00, 0x01, 0xb5, 0x8f, 0xff, 0xf3, 0x41, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x23, 0xf8, 0x7d, + 0x29, 0x48, 0x8b, 0x94, 0xa5, 0x22, 0x20, 0x00, + 0x00, 0x01, 0x02, 0x23, 0xf8, 0x7d, 0x29, 0x48, + 0x8b, 0x94, 0xa5, 0x22, 0x20 +}; + +static gboolean +verify_buffer (buffer_verify_data_s * vdata, GstBuffer * buffer) +{ + /* check initial header special case, otherwise delegate to default */ + if (vdata->discard) { + /* header is separate */ + fail_unless (GST_BUFFER_SIZE (buffer) == ctx_headers[0].size - 8); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), ctx_headers[0].data, + GST_BUFFER_SIZE (buffer)) == 0); + } else { + /* header is merged in initial frame */ + if (vdata->buffer_counter == 0) { + fail_unless (GST_BUFFER_SIZE (buffer) > 4); + if (GST_READ_UINT32_BE (GST_BUFFER_DATA (buffer)) == 0x1b3) { + /* the whole sequence header is included */ + fail_unless (GST_BUFFER_SIZE (buffer) == + ctx_headers[0].size + vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), ctx_headers[0].data, + ctx_headers[0].size) == 0); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + ctx_headers[0].size, + vdata->data_to_verify, vdata->data_to_verify_size) == 0); + } else { + /* sequence was separate, only gop here */ + fail_unless (GST_BUFFER_SIZE (buffer) == + 8 + vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), + ctx_headers[0].data + ctx_headers[0].size - 8, 8) == 0); + fail_unless (memcmp (GST_BUFFER_DATA (buffer) + 8, + vdata->data_to_verify, vdata->data_to_verify_size) == 0); + } + return TRUE; + } + } + + return FALSE; +} + +#define GOP_SPLIT "gop-split" + +static GstElement * +setup_element (const gchar * desc) +{ + GstElement *element; + + if (strcmp (desc, GOP_SPLIT) == 0) { + element = gst_check_setup_element ("mpegvideoparse"); + g_object_set (G_OBJECT (element), "gop-split", TRUE, NULL); + } else { + element = gst_check_setup_element ("mpegvideoparse"); + } + + return element; +} + +GST_START_TEST (test_parse_normal) +{ + gst_parser_test_normal (mpeg2_iframe, sizeof (mpeg2_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_drain_single) +{ + gst_parser_test_drain_single (mpeg2_iframe, sizeof (mpeg2_iframe)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_split) +{ + gst_parser_test_split (mpeg2_iframe, sizeof (mpeg2_iframe)); +} + +GST_END_TEST; + + +#define structure_get_int(s,f) \ + (g_value_get_int(gst_structure_get_value(s,f))) +#define fail_unless_structure_field_int_equals(s,field,num) \ + fail_unless_equals_int (structure_get_int(s,field), num) + +static void +mpeg_video_parse_check_caps (guint version, guint8 * seq, gint size) +{ + GstCaps *caps; + GstStructure *s; + GstBuffer *buf; + const GValue *val; + + ctx_headers[0].data = seq; + ctx_headers[0].size = size; + /* parser does not really care that mpeg1 and mpeg2 frame data + * should be a bit different */ + caps = gst_parser_test_get_output_caps (mpeg2_iframe, sizeof (mpeg2_iframe), + NULL); + fail_unless (caps != NULL); + + /* Check that the negotiated caps are as expected */ + /* When codec_data is present, parser assumes that data is version 4 */ + GST_LOG ("mpegvideo output caps: %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/mpeg")); + fail_unless_structure_field_int_equals (s, "mpegversion", version); + fail_unless_structure_field_int_equals (s, "width", 32); + fail_unless_structure_field_int_equals (s, "height", 24); + fail_unless (gst_structure_has_field (s, "codec_data")); + + /* check codec-data in more detail */ + val = gst_structure_get_value (s, "codec_data"); + fail_unless (val != NULL); + buf = gst_value_get_buffer (val); + fail_unless (buf != NULL); + /* codec-data = header - GOP */ + assert_equals_int (GST_BUFFER_SIZE (buf), size - 8); + fail_unless (memcmp (GST_BUFFER_DATA (buf), seq + 4, + GST_BUFFER_SIZE (buf)) == 0); + + gst_caps_unref (caps); +} + +GST_START_TEST (test_parse_detect_stream_mpeg2) +{ + mpeg_video_parse_check_caps (2, mpeg2_seq, sizeof (mpeg2_seq)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_detect_stream_mpeg1) +{ + mpeg_video_parse_check_caps (1, mpeg1_seq, sizeof (mpeg1_seq)); +} + +GST_END_TEST; + + +GST_START_TEST (test_parse_gop_split) +{ + ctx_factory = GOP_SPLIT; + ctx_discard = 1; + gst_parser_test_normal (mpeg2_iframe, sizeof (mpeg2_iframe)); + ctx_factory = "mpegvideoparse"; + ctx_discard = 0; +} + +GST_END_TEST; + + +static Suite * +mpegvideoparse_suite (void) +{ + Suite *s = suite_create ("mpegvideoparse"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_normal); + tcase_add_test (tc_chain, test_parse_drain_single); + tcase_add_test (tc_chain, test_parse_split); + tcase_add_test (tc_chain, test_parse_detect_stream_mpeg1); + tcase_add_test (tc_chain, test_parse_detect_stream_mpeg2); + tcase_add_test (tc_chain, test_parse_gop_split); + + return s; +} + + +/* + * TODO: + * - Both push- and pull-modes need to be tested + * * Pull-mode & EOS + */ + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = mpegvideoparse_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + /* init test context */ + ctx_factory = "mpegvideoparse"; + ctx_sink_template = &sinktemplate; + ctx_src_template = &srctemplate; + ctx_headers[0].data = mpeg2_seq; + ctx_headers[0].size = sizeof (mpeg2_seq); + ctx_verify_buffer = verify_buffer; + ctx_setup = setup_element; + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/opus.c b/tests/check/elements/opus.c new file mode 100644 index 0000000..d18f623 --- /dev/null +++ b/tests/check/elements/opus.c @@ -0,0 +1,385 @@ +/* GStreamer + * + * unit test for opus + * + * Copyright (C) <2011> 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. + */ + +#include + +#include + +static const guint8 opus_ogg_id_header[19] = { + 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const guint8 opus_ogg_comments_header[] = { + 0x4f, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, 0x1e, 0x00, 0x00, 0x00, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x20, 0x4f, 0x70, 0x75, 0x73, + 0x65, 0x6e, 0x63, 0x00, 0x00, 0x00, 0x00 +}; + +/* A lot of these taken from the vorbisdec test */ + +/* For ease of programming we use globals to keep refs for our floating + * src and sink pads we create; otherwise we always have to do get_pad, + * get_peer, and then remove references in every test function */ +static GstPad *mydecsrcpad, *mydecsinkpad; +static GstPad *myencsrcpad, *myencsinkpad; + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +static GstElement * +setup_opusdec (void) +{ + GstElement *opusdec; + + GST_DEBUG ("setup_opusdec"); + opusdec = gst_check_setup_element ("opusdec"); + mydecsrcpad = gst_check_setup_src_pad (opusdec, &srctemplate, NULL); + mydecsinkpad = gst_check_setup_sink_pad (opusdec, &sinktemplate, NULL); + gst_pad_set_active (mydecsrcpad, TRUE); + gst_pad_set_active (mydecsinkpad, TRUE); + + return opusdec; +} + +static void +cleanup_opusdec (GstElement * opusdec) +{ + GST_DEBUG ("cleanup_opusdec"); + gst_element_set_state (opusdec, GST_STATE_NULL); + + gst_pad_set_active (mydecsrcpad, FALSE); + gst_pad_set_active (mydecsinkpad, FALSE); + gst_check_teardown_src_pad (opusdec); + gst_check_teardown_sink_pad (opusdec); + gst_check_teardown_element (opusdec); +} + +static GstElement * +setup_opusenc (void) +{ + GstElement *opusenc; + + GST_DEBUG ("setup_opusenc"); + opusenc = gst_check_setup_element ("opusenc"); + myencsrcpad = gst_check_setup_src_pad (opusenc, &srctemplate, NULL); + myencsinkpad = gst_check_setup_sink_pad (opusenc, &sinktemplate, NULL); + gst_pad_set_active (myencsrcpad, TRUE); + gst_pad_set_active (myencsinkpad, TRUE); + + return opusenc; +} + +static void +cleanup_opusenc (GstElement * opusenc) +{ + GST_DEBUG ("cleanup_opusenc"); + gst_element_set_state (opusenc, GST_STATE_NULL); + + gst_pad_set_active (myencsrcpad, FALSE); + gst_pad_set_active (myencsinkpad, FALSE); + gst_check_teardown_src_pad (opusenc); + gst_check_teardown_sink_pad (opusenc); + gst_check_teardown_element (opusenc); +} + +static void +check_buffers (guint expected) +{ + GstBuffer *outbuffer; + guint i, num_buffers; + + /* check buffers are the type we expect */ + num_buffers = g_list_length (buffers); + fail_unless (num_buffers >= expected); + for (i = 0; i < num_buffers; ++i) { + outbuffer = GST_BUFFER (buffers->data); + fail_if (outbuffer == NULL); + fail_if (GST_BUFFER_SIZE (outbuffer) == 0); + + buffers = g_list_remove (buffers, outbuffer); + + ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1); + gst_buffer_unref (outbuffer); + outbuffer = NULL; + } +} + +GST_START_TEST (test_opus_id_header) +{ + GstElement *opusdec; + GstBuffer *inbuffer; + + opusdec = setup_opusdec (); + fail_unless (gst_element_set_state (opusdec, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + inbuffer = gst_buffer_new_and_alloc (sizeof (opus_ogg_id_header)); + memcpy (GST_BUFFER_DATA (inbuffer), opus_ogg_id_header, + sizeof (opus_ogg_id_header)); + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + gst_buffer_ref (inbuffer); + + /* pushing gives away my reference ... */ + fail_unless (gst_pad_push (mydecsrcpad, inbuffer) == GST_FLOW_OK); + /* ... and nothing ends up on the global buffer list */ + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + gst_buffer_unref (inbuffer); + check_buffers (0); + + /* cleanup */ + cleanup_opusdec (opusdec); +} + +GST_END_TEST; + +GST_START_TEST (test_opus_encode_nothing) +{ + GstElement *opusenc; + + opusenc = setup_opusenc (); + fail_unless (gst_element_set_state (opusenc, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + fail_unless (gst_pad_push_event (myencsrcpad, gst_event_new_eos ()) == TRUE); + + fail_unless (gst_element_set_state (opusenc, + GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS, + "could not set to ready"); + + /* cleanup */ + cleanup_opusenc (opusenc); +} + +GST_END_TEST; + +GST_START_TEST (test_opus_decode_nothing) +{ + GstElement *opusdec; + + opusdec = setup_opusdec (); + fail_unless (gst_element_set_state (opusdec, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + fail_unless (gst_pad_push_event (mydecsrcpad, gst_event_new_eos ()) == TRUE); + + fail_unless (gst_element_set_state (opusdec, + GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS, + "could not set to ready"); + + /* cleanup */ + cleanup_opusdec (opusdec); +} + +GST_END_TEST; + +GST_START_TEST (test_opus_encode_samples) +{ + const unsigned int nsamples = 4096; + GstElement *opusenc; + GstBuffer *inbuffer; + GstCaps *caps; + guint16 *samples; + unsigned int n; + + opusenc = setup_opusenc (); + + fail_unless (gst_element_set_state (opusenc, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + inbuffer = gst_buffer_new_and_alloc (nsamples * 2); + samples = (guint16 *) GST_BUFFER_DATA (inbuffer); + for (n = 0; n < nsamples; ++n) { + samples[n] = 0; + } + + GST_BUFFER_TIMESTAMP (inbuffer) = GST_BUFFER_OFFSET (inbuffer) = 0; + GST_BUFFER_DURATION (inbuffer) = GST_CLOCK_TIME_NONE; + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + + caps = + gst_caps_from_string + ("audio/x-raw-int,rate=48000,channels=1,signed=true,width=16,depth=16,endianness=1234"); + fail_unless (caps != NULL); + gst_buffer_set_caps (inbuffer, caps); + gst_caps_unref (caps); + gst_buffer_ref (inbuffer); + + /* pushing gives away my reference ... */ + fail_unless (gst_pad_push (myencsrcpad, inbuffer) == GST_FLOW_OK); + /* ... and nothing ends up on the global buffer list */ + fail_unless (gst_pad_push_event (myencsrcpad, gst_event_new_eos ()) == TRUE); + + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + gst_buffer_unref (inbuffer); + + fail_unless (gst_element_set_state (opusenc, + GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS, + "could not set to ready"); + + /* default frame size is 20 ms, at 48000 Hz that's 960 samples */ + check_buffers ((nsamples + 959) / 960); + + /* cleanup */ + cleanup_opusenc (opusenc); + g_list_free (buffers); +} + +GST_END_TEST; + +GST_START_TEST (test_opus_encode_properties) +{ + const unsigned int nsamples = 4096; + enum + { steps = 20 }; + GstElement *opusenc; + GstBuffer *inbuffer; + GstCaps *caps; + guint16 *samples; + unsigned int n, step; + static const struct + { + const char *param; + int value; + } param_changes[steps] = { + { + "frame-size", 40}, { + "inband-fec", 1}, { + "complexity", 5}, { + "bandwidth", 1104}, { + "frame-size", 2}, { + "max-payload-size", 80}, { + "frame-size", 60}, { + "max-payload-size", 900}, { + "complexity", 1}, { + "bitrate", 30000}, { + "frame-size", 10}, { + "bitrate", 300000}, { + "inband-fec", 0}, { + "frame-size", 5}, { + "bandwidth", 1101}, { + "frame-size", 10}, { + "bitrate", 500000}, { + "frame-size", 5}, { + "bitrate", 80000}, { + "complexity", 8},}; + + opusenc = setup_opusenc (); + + fail_unless (gst_element_set_state (opusenc, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + caps = + gst_caps_from_string + ("audio/x-raw-int,rate=48000,channels=1,signed=true,width=16,depth=16,endianness=1234"); + fail_unless (caps != NULL); + + for (step = 0; step < steps; ++step) { + inbuffer = gst_buffer_new_and_alloc (nsamples * 2); + samples = (guint16 *) GST_BUFFER_DATA (inbuffer); + for (n = 0; n < nsamples; ++n) { + samples[n] = 0; + } + + GST_BUFFER_TIMESTAMP (inbuffer) = GST_BUFFER_OFFSET (inbuffer) = 0; + GST_BUFFER_DURATION (inbuffer) = GST_CLOCK_TIME_NONE; + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + + gst_buffer_set_caps (inbuffer, caps); + gst_buffer_ref (inbuffer); + + /* pushing gives away my reference ... */ + fail_unless (gst_pad_push (myencsrcpad, inbuffer) == GST_FLOW_OK); + /* ... and nothing ends up on the global buffer list */ + fail_unless (gst_pad_push_event (myencsrcpad, + gst_event_new_eos ()) == TRUE); + + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + gst_buffer_unref (inbuffer); + + /* change random parameters */ + g_object_set (opusenc, param_changes[step].param, param_changes[step].value, + NULL); + + check_buffers (1); + } + + gst_caps_unref (caps); + + fail_unless (gst_element_set_state (opusenc, + GST_STATE_READY) == GST_STATE_CHANGE_SUCCESS, + "could not set to ready"); + + /* cleanup */ + cleanup_opusenc (opusenc); + g_list_free (buffers); +} + +GST_END_TEST; + +static Suite * +opus_suite (void) +{ + Suite *s = suite_create ("opus"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + +#define X if (0) + tcase_add_test (tc_chain, test_opus_id_header); + tcase_add_test (tc_chain, test_opus_encode_nothing); + tcase_add_test (tc_chain, test_opus_decode_nothing); + tcase_add_test (tc_chain, test_opus_encode_samples); + tcase_add_test (tc_chain, test_opus_encode_properties); +#undef X + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = opus_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/parser.c b/tests/check/elements/parser.c new file mode 100644 index 0000000..392f3ce --- /dev/null +++ b/tests/check/elements/parser.c @@ -0,0 +1,433 @@ +/* + * GStreamer + * + * unit test for (audio) parser + * + * Copyright (C) 2008 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include +#include "elements/parser.h" + + +/* context state variables */ +const gchar *ctx_factory; +GstStaticPadTemplate *ctx_sink_template; +GstStaticPadTemplate *ctx_src_template; +GstCaps *ctx_input_caps; +GstCaps *ctx_output_caps; +guint ctx_discard = 0; +datablob ctx_headers[MAX_HEADERS] = { {NULL, 0}, }; + +VerifyBuffer ctx_verify_buffer = NULL; +ElementSetup ctx_setup = NULL; + +gboolean ctx_no_metadata = FALSE; + +/* helper variables */ +GList *current_buf = NULL; + +GstPad *srcpad, *sinkpad; +guint dataoffset = 0; + +/* takes a copy of the passed buffer data */ +static GstBuffer * +buffer_new (const unsigned char *buffer_data, guint size) +{ + GstBuffer *buffer; + + buffer = gst_buffer_new_and_alloc (size); + if (buffer_data) { + memcpy (GST_BUFFER_DATA (buffer), buffer_data, size); + } else { + guint i; + /* Create a recognizable pattern (loop 0x00 -> 0xff) in the data block */ + for (i = 0; i < size; i++) { + GST_BUFFER_DATA (buffer)[i] = i % 0x100; + } + } + + gst_buffer_set_caps (buffer, GST_PAD_CAPS (srcpad)); + GST_BUFFER_OFFSET (buffer) = dataoffset; + dataoffset += size; + return buffer; +} + +/* + * Adds buffer sizes together. + */ +static void +buffer_count_size (void *buffer, void *user_data) +{ + guint *sum = (guint *) user_data; + *sum += GST_BUFFER_SIZE (buffer); +} + +/* + * Verify that given buffer contains predefined ADTS frame. + */ +static void +buffer_verify_data (void *buffer, void *user_data) +{ + buffer_verify_data_s *vdata; + + if (!user_data) { + return; + } + + vdata = (buffer_verify_data_s *) user_data; + + GST_DEBUG ("discard: %d", vdata->discard); + if (vdata->discard) { + if (ctx_verify_buffer) + ctx_verify_buffer (vdata, buffer); + vdata->buffer_counter++; + vdata->offset_counter += GST_BUFFER_SIZE (buffer); + if (vdata->buffer_counter == vdata->discard) { + vdata->buffer_counter = 0; + vdata->discard = 0; + } + return; + } + + if (!ctx_verify_buffer || !ctx_verify_buffer (vdata, buffer)) { + fail_unless (GST_BUFFER_SIZE (buffer) == vdata->data_to_verify_size); + fail_unless (memcmp (GST_BUFFER_DATA (buffer), vdata->data_to_verify, + vdata->data_to_verify_size) == 0); + } + + if (vdata->buffers_before_offset_skip) { + /* This is for skipping the garbage in some test cases */ + if (vdata->buffer_counter == vdata->buffers_before_offset_skip) { + vdata->offset_counter += vdata->offset_skip_amount; + } + } + if (!vdata->no_metadata) { + fail_unless (GST_BUFFER_TIMESTAMP (buffer) == vdata->ts_counter); + fail_unless (GST_BUFFER_DURATION (buffer) != 0); + fail_unless (GST_BUFFER_OFFSET (buffer) == vdata->offset_counter); + } + + if (vdata->caps) { + GST_LOG ("%" GST_PTR_FORMAT " = %" GST_PTR_FORMAT " ?", + GST_BUFFER_CAPS (buffer), vdata->caps); + fail_unless (gst_caps_is_equal (GST_BUFFER_CAPS (buffer), vdata->caps)); + } + + vdata->ts_counter += GST_BUFFER_DURATION (buffer); + vdata->offset_counter += GST_BUFFER_SIZE (buffer); + vdata->buffer_counter++; +} + +static GstElement * +setup_element (const gchar * factory, ElementSetup setup, + GstStaticPadTemplate * sink_template, + GstCaps * sink_caps, GstStaticPadTemplate * src_template, + GstCaps * src_caps) +{ + GstElement *element; + GstBus *bus; + + if (setup) { + element = setup (factory); + } else { + element = gst_check_setup_element (factory); + } + srcpad = gst_check_setup_src_pad (element, src_template, src_caps); + sinkpad = gst_check_setup_sink_pad (element, sink_template, sink_caps); + gst_pad_set_active (srcpad, TRUE); + gst_pad_set_active (sinkpad, TRUE); + + bus = gst_bus_new (); + gst_element_set_bus (element, bus); + + fail_unless (gst_element_set_state (element, + GST_STATE_PLAYING) != GST_STATE_CHANGE_FAILURE, + "could not set to playing"); + + buffers = NULL; + return element; +} + +static void +cleanup_element (GstElement * element) +{ + GstBus *bus; + + /* Free parsed buffers */ + gst_check_drop_buffers (); + + bus = GST_ELEMENT_BUS (element); + gst_bus_set_flushing (bus, TRUE); + gst_object_unref (bus); + + gst_pad_set_active (srcpad, FALSE); + gst_pad_set_active (sinkpad, FALSE); + gst_check_teardown_src_pad (element); + gst_check_teardown_sink_pad (element); + gst_check_teardown_element (element); +} + +/* inits a standard test */ +void +gst_parser_test_init (GstParserTest * ptest, guint8 * data, guint size, + guint num) +{ + /* need these */ + fail_unless (ctx_factory != NULL); + fail_unless (ctx_src_template != NULL); + fail_unless (ctx_sink_template != NULL); + + /* basics */ + memset (ptest, 0, sizeof (*ptest)); + ptest->factory = ctx_factory; + ptest->factory_setup = ctx_setup; + ptest->sink_template = ctx_sink_template; + ptest->src_template = ctx_src_template; + ptest->framed = TRUE; + /* could be NULL if not relevant/needed */ + ptest->src_caps = ctx_input_caps; + ptest->sink_caps = ctx_output_caps; + memcpy (ptest->headers, ctx_headers, sizeof (ptest->headers)); + ptest->discard = ctx_discard; + /* some data that pleases caller */ + ptest->series[0].data = data; + ptest->series[0].size = size; + ptest->series[0].num = num; + ptest->series[0].fpb = 1; + ptest->series[1].fpb = 1; + ptest->series[2].fpb = 1; + ptest->no_metadata = ctx_no_metadata; +} + +/* + * Test if the parser pushes clean data properly. + */ +void +gst_parser_test_run (GstParserTest * test, GstCaps ** out_caps) +{ + buffer_verify_data_s vdata = { 0, 0, 0, NULL, 0, NULL, FALSE, 0, 0, 0 }; + GstElement *element; + GstBuffer *buffer = NULL; + GstCaps *src_caps; + guint i, j, k; + guint frames = 0, size = 0; + + element = setup_element (test->factory, test->factory_setup, + test->sink_template, NULL, test->src_template, test->src_caps); + + /* push some setup headers */ + for (j = 0; j < G_N_ELEMENTS (test->headers) && test->headers[j].data; j++) { + buffer = buffer_new (test->headers[j].data, test->headers[j].size); + fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK); + } + + for (j = 0; j < 3; j++) { + for (i = 0; i < test->series[j].num; i++) { + /* sanity enforcing */ + for (k = 0; k < MAX (1, test->series[j].fpb); k++) { + if (!k) + buffer = buffer_new (test->series[j].data, test->series[j].size); + else { + GstCaps *caps = gst_buffer_get_caps (buffer); + + buffer = gst_buffer_join (buffer, + buffer_new (test->series[j].data, test->series[j].size)); + if (caps) { + gst_buffer_set_caps (buffer, caps); + gst_caps_unref (caps); + } + } + } + fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK); + if (j == 0) + vdata.buffers_before_offset_skip++; + else if (j == 1) + vdata.offset_skip_amount += test->series[j].size * test->series[j].fpb; + if (j != 1) { + frames += test->series[j].fpb; + size += test->series[j].size * test->series[j].fpb; + } + } + } + gst_pad_push_event (srcpad, gst_event_new_eos ()); + + if (G_LIKELY (test->framed)) + fail_unless_equals_int (g_list_length (buffers) - test->discard, frames); + + /* if all frames are identical, do extended test, + * otherwise only verify total data size */ + if (test->series[0].data && (!test->series[2].size || + (test->series[0].size == test->series[2].size && test->series[2].data + && !memcmp (test->series[0].data, test->series[2].data, + test->series[0].size)))) { + vdata.data_to_verify = test->series[0].data; + vdata.data_to_verify_size = test->series[0].size; + vdata.caps = test->sink_caps; + vdata.discard = test->discard; + vdata.no_metadata = test->no_metadata; + g_list_foreach (buffers, buffer_verify_data, &vdata); + } else { + guint datasum = 0; + + g_list_foreach (buffers, buffer_count_size, &datasum); + size -= test->dropped; + fail_unless_equals_int (datasum, size); + } + + src_caps = gst_pad_get_negotiated_caps (sinkpad); + GST_LOG ("output caps: %" GST_PTR_FORMAT, src_caps); + + if (test->sink_caps) { + GST_LOG ("%" GST_PTR_FORMAT " = %" GST_PTR_FORMAT " ?", src_caps, + test->sink_caps); + fail_unless (gst_caps_is_equal (src_caps, test->sink_caps)); + } + + if (out_caps) + *out_caps = src_caps; + else + gst_caps_unref (src_caps); + + cleanup_element (element); +} + +/* + * Test if the parser pushes clean data properly. + */ +void +gst_parser_test_normal (guint8 * data, guint size) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 10); + gst_parser_test_run (&ptest, NULL); +} + +/* + * Test if parser drains its buffers properly. Even one single frame + * should be drained and pushed forward when EOS occurs. This single frame + * case is special, since normally the parser needs more data to be sure + * about stream format. But it should still push the frame forward in EOS. + */ +void +gst_parser_test_drain_single (guint8 * data, guint size) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 1); + gst_parser_test_run (&ptest, NULL); +} + +/* + * Make sure that parser does not drain garbage when EOS occurs. + */ +void +gst_parser_test_drain_garbage (guint8 * data, guint size, guint8 * garbage, + guint gsize) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 1); + ptest.series[1].data = garbage; + ptest.series[1].size = gsize; + ptest.series[1].num = 1; + gst_parser_test_run (&ptest, NULL); +} + +/* + * Test if parser splits a buffer that contains two frames into two + * separate buffers properly. + */ +void +gst_parser_test_split (guint8 * data, guint size) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 10); + ptest.series[0].fpb = 2; + gst_parser_test_run (&ptest, NULL); +} + +/* + * Test if the parser skips garbage between frames properly. + */ +void +gst_parser_test_skip_garbage (guint8 * data, guint size, guint8 * garbage, + guint gsize) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 10); + ptest.series[1].data = garbage; + ptest.series[1].size = gsize; + ptest.series[1].num = 1; + ptest.series[2].data = data; + ptest.series[2].size = size; + ptest.series[2].num = 10; + gst_parser_test_run (&ptest, NULL); +} + +/* + * Test if the src caps are set according to stream format. + */ +void +gst_parser_test_output_caps (guint8 * data, guint size, + const gchar * input_caps, const gchar * output_caps) +{ + GstParserTest ptest; + + gst_parser_test_init (&ptest, data, size, 10); + if (input_caps) { + ptest.src_caps = gst_caps_from_string (input_caps); + fail_unless (ptest.src_caps != NULL); + } + if (output_caps) { + ptest.sink_caps = gst_caps_from_string (output_caps); + fail_unless (ptest.sink_caps != NULL); + } + gst_parser_test_run (&ptest, NULL); + if (ptest.sink_caps) + gst_caps_unref (ptest.sink_caps); + if (ptest.src_caps) + gst_caps_unref (ptest.src_caps); +} + +/* + * Test if the src caps are set according to stream format. + */ +GstCaps * +gst_parser_test_get_output_caps (guint8 * data, guint size, + const gchar * input_caps) +{ + GstParserTest ptest; + GstCaps *out_caps; + + gst_parser_test_init (&ptest, data, size, 10); + if (input_caps) { + ptest.src_caps = gst_caps_from_string (input_caps); + fail_unless (ptest.src_caps != NULL); + } + gst_parser_test_run (&ptest, &out_caps); + if (ptest.src_caps) + gst_caps_unref (ptest.src_caps); + + return out_caps; +} diff --git a/tests/check/elements/parser.h b/tests/check/elements/parser.h new file mode 100644 index 0000000..7ae85c5 --- /dev/null +++ b/tests/check/elements/parser.h @@ -0,0 +1,117 @@ +/* + * GStreamer + * + * unit test for (audio) parser + * + * Copyright (C) 2008 Nokia Corporation. All rights reserved. + * + * Contact: 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. + */ + +#include + +#define MAX_HEADERS 10 + +typedef struct +{ + guint discard; + guint buffers_before_offset_skip; + guint offset_skip_amount; + const guint8 *data_to_verify; + guint data_to_verify_size; + GstCaps *caps; + gboolean no_metadata; + + GstClockTime ts_counter; + gint64 offset_counter; + guint buffer_counter; +} buffer_verify_data_s; + +typedef struct { + guint8 *data; + guint size; +} datablob; + +typedef gboolean (*VerifyBuffer) (buffer_verify_data_s * vdata, GstBuffer * buf); +typedef GstElement* (*ElementSetup) (const gchar * desc); + +/* context state variables; to be set by test using this helper */ +/* mandatory */ +extern const gchar *ctx_factory; +extern GstStaticPadTemplate *ctx_sink_template; +extern GstStaticPadTemplate *ctx_src_template; +/* optional */ +extern GstCaps *ctx_input_caps; +extern GstCaps *ctx_output_caps; +extern guint ctx_discard; +extern datablob ctx_headers[MAX_HEADERS]; +extern gboolean ctx_no_metadata; + +extern VerifyBuffer ctx_verify_buffer; +extern ElementSetup ctx_setup; + +/* no refs taken/kept, all up to caller */ +typedef struct +{ + const gchar *factory; + ElementSetup factory_setup; + GstStaticPadTemplate *sink_template; + GstStaticPadTemplate *src_template; + /* caps that go into element */ + GstCaps *src_caps; + /* optional: output caps to verify */ + GstCaps *sink_caps; + /* initial headers */ + datablob headers[MAX_HEADERS]; + /* initial (header) output to forego checking */ + guint discard; + /* series of buffers; middle series considered garbage */ + struct { + /* data and size */ + guint8 *data; + guint size; + /* num of frames with above data per buffer */ + guint fpb; + /* num of buffers */ + guint num; + } series[3]; + /* sigh, weird cases */ + gboolean framed; + guint dropped; + gboolean no_metadata; +} GstParserTest; + +void gst_parser_test_init (GstParserTest * ptest, guint8 * data, guint size, guint num); + +void gst_parser_test_run (GstParserTest * test, GstCaps ** out_caps); + +void gst_parser_test_normal (guint8 *data, guint size); + +void gst_parser_test_drain_single (guint8 *data, guint size); + +void gst_parser_test_drain_garbage (guint8 *data, guint size, guint8 *garbage, guint gsize); + +void gst_parser_test_split (guint8 *data, guint size); + +void gst_parser_test_skip_garbage (guint8 *data, guint size, guint8 *garbage, guint gsize); + +void gst_parser_test_output_caps (guint8 *data, guint size, const gchar * input_caps, + const gchar * output_caps); + +GstCaps *gst_parser_test_get_output_caps (guint8 *data, guint size, const gchar * input_caps); + diff --git a/tests/check/elements/voaacenc.c b/tests/check/elements/voaacenc.c new file mode 100644 index 0000000..22b42fb --- /dev/null +++ b/tests/check/elements/voaacenc.c @@ -0,0 +1,287 @@ +/* GStreamer + * + * unit test for voaacenc + * + * 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. + */ + +#include + +#include +#include + +/* For ease of programming we use globals to keep refs for our floating + * src and sink pads we create; otherwise we always have to do get_pad, + * get_peer, and then remove references in every test function */ +static GstPad *mysrcpad, *mysinkpad; + +#define AUDIO_CAPS_STRING "audio/x-raw-int, " \ + "rate = (int) 48000, " \ + "channels = (int) 2, " \ + "width = (int) 16, " \ + "depth = (int) 16, " \ + "signed = (boolean) true, " \ + "endianness = (int) BYTE_ORDER " + +#define AAC_RAW_CAPS_STRING "audio/mpeg, " \ + "mpegversion = (int) 4, " \ + "rate = (int) 48000, " \ + "channels = (int) 2, " \ + "stream-format = \"raw\"" + +#define AAC_ADTS_CAPS_STRING "audio/mpeg, " \ + "mpegversion = (int) 4, " \ + "rate = (int) 48000, " \ + "channels = (int) 2, " \ + "stream-format = \"adts\"" + + +static GstStaticPadTemplate sinktemplate_adts = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AAC_ADTS_CAPS_STRING)); + +static GstStaticPadTemplate sinktemplate_raw = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AAC_RAW_CAPS_STRING)); + + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AUDIO_CAPS_STRING)); + + +static GstElement * +setup_voaacenc (gboolean adts) +{ + GstElement *voaacenc; + + GST_DEBUG ("setup_voaacenc"); + voaacenc = gst_check_setup_element ("voaacenc"); + mysrcpad = gst_check_setup_src_pad (voaacenc, &srctemplate, NULL); + + if (adts) + mysinkpad = gst_check_setup_sink_pad (voaacenc, &sinktemplate_adts, NULL); + else + mysinkpad = gst_check_setup_sink_pad (voaacenc, &sinktemplate_raw, NULL); + + gst_pad_set_active (mysrcpad, TRUE); + gst_pad_set_active (mysinkpad, TRUE); + + return voaacenc; +} + +static void +cleanup_voaacenc (GstElement * voaacenc) +{ + GST_DEBUG ("cleanup_aacenc"); + gst_element_set_state (voaacenc, GST_STATE_NULL); + + gst_pad_set_active (mysrcpad, FALSE); + gst_pad_set_active (mysinkpad, FALSE); + gst_check_teardown_src_pad (voaacenc); + gst_check_teardown_sink_pad (voaacenc); + gst_check_teardown_element (voaacenc); +} + +static void +set_channel_positions (GstCaps * caps, int channels, + GstAudioChannelPosition * channelpositions) +{ + GValue chanpos = { 0 }; + GValue pos = { 0 }; + GstStructure *structure = gst_caps_get_structure (caps, 0); + int c; + + g_value_init (&chanpos, GST_TYPE_ARRAY); + g_value_init (&pos, GST_TYPE_AUDIO_CHANNEL_POSITION); + + for (c = 0; c < channels; c++) { + g_value_set_enum (&pos, channelpositions[c]); + gst_value_array_append_value (&chanpos, &pos); + } + g_value_unset (&pos); + + gst_structure_set_value (structure, "channel-positions", &chanpos); + g_value_unset (&chanpos); +} + +static void +do_test (gboolean adts) +{ + GstElement *voaacenc; + GstBuffer *inbuffer, *outbuffer; + GstCaps *caps; + gint i, num_buffers; + const gint nbuffers = 10; + GstAudioChannelPosition channel_position_layout[2] = + { GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT + }; + + voaacenc = setup_voaacenc (adts); + fail_unless (gst_element_set_state (voaacenc, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + /* corresponds to audio buffer mentioned in the caps */ + inbuffer = gst_buffer_new_and_alloc (1024 * nbuffers * 2 * 2); + /* makes valgrind's memcheck happier */ + memset (GST_BUFFER_DATA (inbuffer), 0, GST_BUFFER_SIZE (inbuffer)); + caps = gst_caps_from_string (AUDIO_CAPS_STRING); + + set_channel_positions (caps, 2, channel_position_layout); + + gst_buffer_set_caps (inbuffer, caps); + gst_caps_unref (caps); + GST_BUFFER_TIMESTAMP (inbuffer) = 0; + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + + /* send eos to have all flushed if needed */ + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()) == TRUE); + + num_buffers = g_list_length (buffers); + fail_unless_equals_int (num_buffers, nbuffers); + + /* clean up buffers */ + for (i = 0; i < num_buffers; ++i) { + gint size, header = 0, id; + guint8 *data; + + outbuffer = GST_BUFFER (buffers->data); + fail_if (outbuffer == NULL); + + data = GST_BUFFER_DATA (outbuffer); + size = GST_BUFFER_SIZE (outbuffer); + + if (adts) { + gboolean protection; + gint k; + + fail_if (size < 7); + protection = !(data[1] & 0x1); + /* expect only 1 raw data block */ + k = (data[6] & 0x3) + 1; + fail_if (k != 1); + + header = 7; + if (protection) + header += (k - 1) * 2 + 2; + + /* check header */ + k = GST_READ_UINT16_BE (data) & 0xFFF6; + /* sync */ + fail_unless (k == 0xFFF0); + k = data[2]; + /* profile */ + fail_unless ((k >> 6) == 0x1); + /* rate */ + fail_unless (((k >> 2) & 0xF) == 0x3); + /* channels */ + fail_unless ((k & 0x1) == 0); + k = data[3]; + fail_unless ((k >> 6) == 0x2); + + } else { + GstCaps *caps; + GstStructure *s; + const GValue *value; + GstBuffer *buf; + gint k; + + caps = gst_buffer_get_caps (outbuffer); + fail_if (caps == NULL); + s = gst_caps_get_structure (caps, 0); + fail_if (s == NULL); + value = gst_structure_get_value (s, "codec_data"); + fail_if (value == NULL); + buf = gst_value_get_buffer (value); + fail_if (buf == NULL); + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + fail_if (size < 2); + k = GST_READ_UINT16_BE (data); + /* profile, rate, channels */ + fail_unless ((k & 0xFFF8) == ((0x02 << 11) | (0x3 << 7) | (0x02 << 3))); + gst_caps_unref (caps); + + } + + fail_if (size <= header); + id = data[header] & (0x7 << 5); + /* allow all but ID_END or ID_LFE */ + fail_if (id == 7 || id == 3); + + buffers = g_list_remove (buffers, outbuffer); + + ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1); + gst_buffer_unref (outbuffer); + outbuffer = NULL; + } + + cleanup_voaacenc (voaacenc); + g_list_free (buffers); + buffers = NULL; +} + +GST_START_TEST (test_adts) +{ + do_test (TRUE); +} + +GST_END_TEST; + +GST_START_TEST (test_raw) +{ + do_test (FALSE); +} + +GST_END_TEST; + +static Suite * +voaacenc_suite (void) +{ + Suite *s = suite_create ("voaacenc"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_adts); + tcase_add_test (tc_chain, test_raw); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = voaacenc_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/voamrwbenc.c b/tests/check/elements/voamrwbenc.c new file mode 100644 index 0000000..18f3cc2 --- /dev/null +++ b/tests/check/elements/voamrwbenc.c @@ -0,0 +1,186 @@ +/* GStreamer + * + * unit test for voamrwbenc + * + * Copyright (C) <2011> 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. + */ + +#include + +#include + +/* For ease of programming we use globals to keep refs for our floating + * src and sink pads we create; otherwise we always have to do get_pad, + * get_peer, and then remove references in every test function */ +static GstPad *mysrcpad, *mysinkpad; + +#define AUDIO_CAPS_STRING "audio/x-raw-int, " \ + "rate = (int) 16000, " \ + "channels = (int) 1, " \ + "width = (int) 16, " \ + "depth = (int) 16, " \ + "signed = (boolean) true, " \ + "endianness = (int) BYTE_ORDER " + +#define AMRWB_CAPS_STRING "audio/AMR-WB" + + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AMRWB_CAPS_STRING)); + + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AUDIO_CAPS_STRING)); + + +static GstElement * +setup_voamrwbenc (void) +{ + GstElement *voamrwbenc; + + GST_DEBUG ("setup_voamrwbenc"); + voamrwbenc = gst_check_setup_element ("voamrwbenc"); + /* ensure mode as expected */ + g_object_set (voamrwbenc, "band-mode", 0, NULL); + mysrcpad = gst_check_setup_src_pad (voamrwbenc, &srctemplate, NULL); + mysinkpad = gst_check_setup_sink_pad (voamrwbenc, &sinktemplate, NULL); + gst_pad_set_active (mysrcpad, TRUE); + gst_pad_set_active (mysinkpad, TRUE); + + return voamrwbenc; +} + +static void +cleanup_voamrwbenc (GstElement * voamrwbenc) +{ + GST_DEBUG ("cleanup_aacenc"); + gst_element_set_state (voamrwbenc, GST_STATE_NULL); + + gst_pad_set_active (mysrcpad, FALSE); + gst_pad_set_active (mysinkpad, FALSE); + gst_check_teardown_src_pad (voamrwbenc); + gst_check_teardown_sink_pad (voamrwbenc); + gst_check_teardown_element (voamrwbenc); +} + +static void +do_test (void) +{ + GstElement *voamrwbenc; + GstBuffer *inbuffer, *outbuffer; + GstCaps *caps; + gint i, num_buffers; + const gint nbuffers = 10; + + voamrwbenc = setup_voamrwbenc (); + fail_unless (gst_element_set_state (voamrwbenc, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + /* corresponds to audio buffer mentioned in the caps */ + inbuffer = gst_buffer_new_and_alloc (320 * nbuffers * 2); + /* makes valgrind's memcheck happier */ + memset (GST_BUFFER_DATA (inbuffer), 0, GST_BUFFER_SIZE (inbuffer)); + caps = gst_caps_from_string (AUDIO_CAPS_STRING); + + gst_buffer_set_caps (inbuffer, caps); + gst_caps_unref (caps); + GST_BUFFER_TIMESTAMP (inbuffer) = 0; + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + + /* send eos to have all flushed if needed */ + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()) == TRUE); + + num_buffers = g_list_length (buffers); + fail_unless_equals_int (num_buffers, nbuffers); + + /* clean up buffers */ + for (i = 0; i < num_buffers; ++i) { + gint size; + guint8 *data; + GstClockTime time, dur; + + outbuffer = GST_BUFFER (buffers->data); + fail_if (outbuffer == NULL); + + data = GST_BUFFER_DATA (outbuffer); + size = GST_BUFFER_SIZE (outbuffer); + + /* at least for mode 0 */ + fail_unless (size == 18); + fail_unless ((data[0] & 0x83) == 0); + fail_unless (((data[0] >> 3) & 0xF) == 0); + + time = GST_BUFFER_TIMESTAMP (outbuffer); + dur = GST_BUFFER_DURATION (outbuffer); + fail_unless (time == 20 * GST_MSECOND * i); + fail_unless (dur == 20 * GST_MSECOND); + + buffers = g_list_remove (buffers, outbuffer); + + ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1); + gst_buffer_unref (outbuffer); + outbuffer = NULL; + } + + cleanup_voamrwbenc (voamrwbenc); + g_list_free (buffers); + buffers = NULL; +} + +GST_START_TEST (test_enc) +{ + do_test (); +} + +GST_END_TEST; + + +static Suite * +voamrwbenc_suite (void) +{ + Suite *s = suite_create ("voamrwbenc"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_enc); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = voamrwbenc_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/libs/h264parser.c b/tests/check/libs/h264parser.c new file mode 100644 index 0000000..5d87980 --- /dev/null +++ b/tests/check/libs/h264parser.c @@ -0,0 +1,182 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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. + */ +#include +#include + +static guint8 slice_dpa[] = { + 0x00, 0x00, 0x01, 0x02, 0x00, 0x02, 0x01, 0x03, 0x00, + 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x09, 0x00, 0x0a, 0x00, + 0x0b, 0x00, 0x0c, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x10, 0x00, + 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, + 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1a, 0x00, 0x1b, 0x00, 0x1c, 0x00, + 0x1d, 0x00, 0x1e, 0x00, 0x1f, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x00, + 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, + 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0x00, 0x2d, 0x00, 0x2e, 0x00, + 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, + 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3a, 0x00, + 0x3b, 0x00, 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f, 0x00, 0x40, 0x00, + 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, + 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4a, 0x00, 0x4b, 0x00, 0x4c, 0x00, + 0x4d, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, + 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, + 0x59, 0x00, 0x5a, 0x00, 0x5b, 0x00, 0x5c, 0x00, 0x5d, 0x00, 0x5e, 0x00, + 0x5f, 0x00, 0x60, 0x00, 0x61, 0x01, 0x04, 0x00, 0xc4, 0x00, 0xa6, 0x00, + 0xc5, 0x00, 0xab, 0x00, 0x82, 0x00, 0xc2, 0x00, 0xd8, 0x00, 0xc6, 0x00, + 0xe4, 0x00, 0xbe, 0x00, 0xb0, 0x00, 0xe6, 0x00, 0xb6, 0x00, 0xb7, 0x00, + 0xb4, 0x00, 0xb5, 0x00, 0x87, 0x00, 0xb2, 0x00, 0xb3, 0x00, 0xd9, 0x00, + 0x8c, 0x00, 0xe5, 0x00, 0xbf, 0x00, 0xb1, 0x00, 0xe7, 0x00, 0xbb, 0x00, + 0xa3, 0x00, 0x84, 0x00, 0x85, 0x00, 0xbd, 0x00, 0x96, 0x00, 0xe8, 0x00, + 0x86, 0x00, 0x8e, 0x00, 0x8b, 0x00, 0x9d, 0x00, 0xa9, 0x00, 0x8a, 0x01, + 0x05, 0x00, 0x83, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0x8d, 0x00, 0x97, 0x00, + 0x88, 0x00, 0xde, 0x00, 0xf1, 0x00, 0x9e, 0x00, 0xaa, 0x00, 0xf5, 0x00, + 0xf4, 0x00, 0xf6, 0x00, 0xa2, 0x00, 0xad, 0x00, 0xc9, 0x00, 0xc7, 0x00, + 0xae, 0x00, 0x62, 0x00, 0x63, 0x00, 0x90, 0x00, 0x64, 0x00, 0xcb, 0x00, + 0x65, 0x00, 0xc8, 0x00, 0xca, 0x00, 0xcf, 0x00, 0xcc, 0x00, 0xcd, 0x00, + 0xce, 0x00, 0xe9, 0x00, 0x66, 0x00, 0xd3, 0x00, 0xd0, 0x00, 0xd1, 0x00, + 0xaf, 0x00, 0x67, 0x00, 0x91, 0x00, 0xd6, 0x00, 0xd4, 0x00, 0xd5, 0x00, + 0x68, 0x00, 0xeb, 0x00, 0xed, 0x00, 0x89, 0x00, 0x6a, 0x00, 0x69, 0x00, + 0x6b, 0x00, 0x6d, 0x00, 0x6c, 0x00, 0x6e, 0x00, 0xa0, 0x00, 0x6f, 0x00, + 0x71, 0x00, 0x70, 0x00, 0x72, 0x00, 0x73, 0x00, 0x75, 0x00, 0x74, 0x00, + 0x76, 0x00, 0x77, 0x00, 0xea, 0x00, 0x78, 0x00, 0x7a, 0x00, 0x79, 0x00, + 0x7b, 0x00, 0x7d, 0x00, 0x7c, 0x00, 0xa1, 0x00, 0x7f, 0x00, 0x7e, 0x00, + 0x80, 0x00, 0x81, 0x00, 0xec, 0x00, 0xee, 0x00, 0xba, 0x01, 0x06, 0x00, + 0xef, 0x00, 0xe1, 0x00, 0xe0, 0x00, 0xdc, 0x01, 0x07, 0x01, 0x08, 0x01, + 0x09, 0x01, 0x0a, 0x01, 0x0b, 0x01, 0x0c, 0x00, 0xdb, 0x00, 0xe2, 0x01, + 0x0d, 0x01, 0x0e, 0x01, 0x0f, 0x01, 0x10, 0x01, 0x11, 0x01, 0x12, 0x00, + 0xdf, 0x01, 0x13, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x00, + 0xfd, 0x00, 0xff, 0x01, 0x18, 0x01, 0x19, 0x01, 0x1a, 0x01, 0x1b, 0x01, + 0x1c, 0x01, 0x1d, 0x01, 0x1e, 0x01, 0x1f, 0x01, 0x20, 0x01, 0x21, 0x01, + 0x22, 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x00, 0xfe, 0x01, + 0x00, 0x01, 0x27, 0x01, 0x28, 0x01, 0x29, 0x01, 0x2a, 0x01, 0x2b, 0x01, + 0x2c, 0x01, 0x2d, 0x01, 0x2e, 0x01, 0x2f, 0x01, 0x30, 0x01, 0x31, 0x00, + 0xe3, 0x00, 0xd7, 0x01, 0x32, 0x00, 0xf8, 0x00, 0xf9, 0x01, 0x33, 0x01, + 0x34, 0x01, 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x38, 0x01, 0x39, 0x01, + 0x3a, 0x01, 0x3b, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0x3e, 0x01, 0x3f, 0x01, + 0x40, 0x01, 0x41, 0x01, 0x42, 0x01, 0x43, 0x01, 0x44, 0x01, 0x45, 0x01, + 0x46, 0x01, 0x47, 0x01, 0x48, 0x01, 0x49, 0x01, 0x4a, 0x01, 0x4b, 0x01, + 0x4c, 0x00, 0x08, 0x05, 0x2e, 0x6e, 0x75, 0x6c, 0x6c, 0x0c, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x04, 0x45, + 0x75, 0x72, 0x6f, 0x06, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x0a, 0x62, + 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x74, 0x68, 0x06, 0x53, 0x61, + 0x63, 0x75, 0x74, 0x65, 0x06, 0x54, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, + 0x5a, 0x61, 0x63, 0x75, 0x74, 0x65, 0x06, 0x73, 0x61, 0x63, 0x75, 0x74, + 0x65, 0x06, 0x74, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x7a, 0x61, 0x63, + 0x75, 0x74, 0x65, 0x07, 0x41, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, + 0x61, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x0c, 0x73, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x53, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0a, 0x5a, 0x64, + 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x4c, 0x63, 0x61, + 0x72, 0x6f, 0x6e, 0x06, 0x6c, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x0a, 0x7a, + 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x52, 0x61, + 0x63, 0x75, 0x74, 0x65, 0x06, 0x41, 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, + 0x4c, 0x61, 0x63, 0x75, 0x74, 0x65, 0x07, 0x45, 0x6f, 0x67, 0x6f, 0x6e, + 0x65, 0x6b, 0x06, 0x45, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x44, 0x63, + 0x61, 0x72, 0x6f, 0x6e, 0x07, 0x44, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, + 0x06, 0x4e, 0x61, 0x63, 0x75, 0x74, 0x65, 0x06, 0x4e, 0x63, 0x61, 0x72, + 0x6f, 0x6e, 0x0d, 0x4f, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d, + 0x6c, 0x61, 0x75, 0x74, 0x06, 0x52, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x05, + 0x55, 0x72, 0x69, 0x6e, 0x67, 0x09, 0x6e, 0x75, 0x6e, 0x67, 0x61, 0x64, + 0x65, 0x73, 0x68, 0x0d, 0x55, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, + 0x6d, 0x6c, 0x61, 0x75, 0x74, 0x0c, 0x54, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x72, 0x61, 0x63, 0x75, 0x74, + 0x65, 0x06, 0x61, 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, 0x6c, 0x61, 0x63, + 0x75, 0x74, 0x65, 0x07, 0x65, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x06, + 0x65, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x64, 0x63, 0x61, 0x72, 0x6f, + 0x6e, 0x07, 0x64, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x06, 0x6e, 0x61, + 0x63, 0x75, 0x74, 0x65, 0x06, 0x6e, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x0d, + 0x6f, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d, 0x6c, 0x61, 0x75, + 0x74, 0x06, 0x72, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x05, 0x75, 0x72, 0x69, + 0x6e, 0x67, 0x0d, 0x75, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d, + 0x6c, 0x61, 0x75, 0x74, 0x0c, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, + 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0a, 0x49, 0x64, 0x6f, 0x74, 0x61, 0x63, + 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x52, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, + 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x07, 0x49, 0x6f, 0x67, 0x6f, 0x6e, + 0x65, 0x6b, 0x07, 0x41, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x07, 0x45, + 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x0a, 0x45, 0x64, 0x6f, 0x74, 0x61, + 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x47, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x4b, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x07, 0x49, 0x6d, 0x61, 0x63, + 0x72, 0x6f, 0x6e, 0x0c, 0x4c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, + 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x4e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, + 0x63, 0x63, 0x65, 0x6e, 0x74, 0x07, 0x4f, 0x6d, 0x61, 0x63, 0x72, 0x6f, + 0x6e, 0x07, 0x55, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, 0x55, 0x6d, + 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x07, 0x69, 0x6f, 0x67, 0x6f, 0x6e, 0x65, + 0x6b, 0x07, 0x61, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x07, 0x65, 0x6d, + 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x0a, 0x65, 0x64, 0x6f, 0x74, 0x61, 0x63, + 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x67, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, + 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x6b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x07, 0x69, 0x6d, 0x61, 0x63, 0x72, + 0x6f, 0x6e, 0x0c, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, + 0x65, 0x6e, 0x74, 0x0c, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, + 0x63, 0x65, 0x6e, 0x74, 0x07, 0x6f, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, + 0x07, 0x75, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, 0x75, 0x6d, 0x61, + 0x63, 0x72, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02 +}; + +GST_START_TEST (test_h264_parse_slice_dpa) +{ + GstH264ParserResult res; + GstH264NalUnit nalu; + + GstH264NalParser *parser = gst_h264_nal_parser_new (); + + res = gst_h264_parser_identify_nalu (parser, slice_dpa, 0, + sizeof (slice_dpa), &nalu); + + assert_equals_int (res, GST_H264_PARSER_OK); + assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); + + gst_h264_nal_parser_free (parser); +} + +GST_END_TEST; + +static Suite * +h264parser_suite (void) +{ + Suite *s = suite_create ("H264 Parser library"); + + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_h264_parse_slice_dpa); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = h264parser_suite (); + + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/libs/mpegvideoparser.c b/tests/check/libs/mpegvideoparser.c new file mode 100644 index 0000000..e5a2358 --- /dev/null +++ b/tests/check/libs/mpegvideoparser.c @@ -0,0 +1,212 @@ +/* Gstreamer + * Copyright (C) <2011> Intel Corporation + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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. + */ + +#include +#include + +/* actually seq + gop */ +static const guint8 mpeg2_seq[] = { + 0x00, 0x00, 0x01, 0xb3, 0x02, 0x00, 0x18, 0x15, 0xff, 0xff, 0xe0, 0x28, + 0x00, 0x00, 0x01, 0xb3, 0x78, 0x04, 0x38, 0x37, 0xff, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x01, 0xb5, 0x14, 0x8a, 0x00, 0x11, 0x03, 0x71, + 0x00, 0x00, 0x01, 0xb8, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x08, 0x00, 0x00 +}; + +static const guint8 mis_identified_datas[] = { + 0x00, 0x00, 0x01, 0x1f, 0x4a, 0xf4, 0xd4, 0xd8, 0x08, 0x23, 0xdd, + 0x7c, 0xd3, 0x75, 0x21, 0x43, 0x85, 0x31, 0x43, 0x04, 0x24, 0x30, + 0x18, 0x43, 0xba, 0x1a, 0x50, 0x60, 0xbb, 0x53, 0x56, 0x80, 0x41, + 0xb9, 0xd4, 0x25, 0x42, 0xea, 0x71, 0xb7, 0x49, 0x84, 0x0b, 0x14, + 0x24, 0xc2, 0xaa, 0xba, 0xf9, 0xf7, 0x5b, 0x78, 0xa2, 0xba, 0xd3, + 0xc7, 0x12, 0xee, 0xbe, 0xba, 0xfa, 0xeb, 0xeb, 0xaf, 0xbe, 0x6f, + 0xce, 0x92, 0x05, 0x15, 0x22, 0x44, 0xf4, 0xc9, 0x1b, 0xcd, 0x84, + 0x80, 0x87, 0x35, 0x6c, 0x07, 0x82, 0xaf, 0x3c, 0x3a, 0x89, 0x48, + 0x3a, 0x26, 0x00, 0x64, 0x03, 0x12, 0x60, 0x03, 0xf4, 0x8c, 0x21, + 0x16, 0xbe, 0x3c, 0x7c, 0x18, 0x03, 0x10, 0x0c, 0x80, 0xa0, 0x05, + 0xe1, 0x85, 0x94, 0x90, 0xc4, 0x74, 0x05, 0x72, 0x80, 0x7a, 0x8e, + 0x3e, 0x00, 0x30, + /* The accelerated version of scan_for_start_codes() + * mis-identifies the following as a start code */ + 0x01, 0x00, 0x01, 0x80, 0x68, 0x14, + 0x26, 0xe4, 0x80, 0x98, 0x0a, 0xba, 0x77, 0x01, 0xc2, 0x42, 0x12, + 0xc4, 0x59, 0x2a, 0xbb, 0x49, 0xf2, 0xc5, 0xa8, 0xd9, 0x30, 0x33, + 0x16, 0x50, 0x60, 0x61, 0x41, 0xaa, 0x0d, 0x41, 0x5b, 0x17, 0x77, + 0x76, 0x1a, 0x14, 0x3a, 0x08, 0x19, 0x3d, 0x6c, 0x94, 0x55, 0xd0, + 0x94, 0x5a, 0xeb, 0x61, 0x22, 0xa7, 0xa6, 0x83, 0x47, 0x6d, 0x4d, + 0x84, 0xc4, 0x6f, 0x78, 0xd8, 0x3a, 0xb4, 0x02, 0x0c, 0x36, 0xa6, + 0x0b, 0x18, 0x49, 0xf7, 0xad, 0x00, 0x82, 0x09, 0xba, 0x12, 0xba, + 0x1d, 0x44, 0x94, 0x0a, 0x1b, 0x03, 0xbb, 0xa2, 0x53, 0x02, 0xc0, + 0x41, 0xac, 0x22, + /* the real start code is here */ + 0x00, 0x00, 0x01, 0x20, 0x4a, 0xfd, 0xf5, 0x50 +}; + +static GstMpegVideoPacketTypeCode ordercode[] = { + GST_MPEG_VIDEO_PACKET_SEQUENCE, + GST_MPEG_VIDEO_PACKET_EXTENSION, + GST_MPEG_VIDEO_PACKET_GOP, +}; + +GST_START_TEST (test_mpeg_parse) +{ + gint i; + GList *list, *tmp; + GstMpegVideoTypeOffsetSize *typeoffsz; + + list = gst_mpeg_video_parse (mpeg2_seq, sizeof (mpeg2_seq), 12); + + assert_equals_int (g_list_length (list), 4); + for (tmp = list, i = 0; tmp; tmp = g_list_next (tmp), i++) { + typeoffsz = tmp->data; + if (i == 3) { + fail_unless (GST_MPEG_VIDEO_PACKET_SLICE_MIN <= typeoffsz->type && + typeoffsz->type <= GST_MPEG_VIDEO_PACKET_SLICE_MAX); + fail_unless (typeoffsz->size < 0); + } else + assert_equals_int (ordercode[i], typeoffsz->type); + } + + g_list_foreach (list, (GFunc) g_free, NULL); + g_list_free (list); +} + +GST_END_TEST; + +GST_START_TEST (test_mpeg_parse_sequence_header) +{ + GList *list; + GstMpegVideoTypeOffsetSize *typeoffsz; + GstMpegVideoSequenceHdr seqhdr; + + list = gst_mpeg_video_parse (mpeg2_seq, sizeof (mpeg2_seq), 12); + + typeoffsz = list->data; + fail_unless (typeoffsz->type == GST_MPEG_VIDEO_PACKET_SEQUENCE); + fail_unless (gst_mpeg_video_parse_sequence_header (&seqhdr, mpeg2_seq, + sizeof (mpeg2_seq), typeoffsz->offset)); + assert_equals_int (seqhdr.width, 1920); + assert_equals_int (seqhdr.height, 1080); + assert_equals_int (seqhdr.aspect_ratio_info, 3); + assert_equals_int (seqhdr.par_w, 17280); + assert_equals_int (seqhdr.par_h, 17280); + assert_equals_int (seqhdr.frame_rate_code, 7); + assert_equals_int (seqhdr.fps_n, 60000); + assert_equals_int (seqhdr.fps_d, 1001); + assert_equals_int (seqhdr.bitrate_value, 262143); + assert_equals_int (seqhdr.bitrate, 0); + assert_equals_int (seqhdr.vbv_buffer_size_value, 512); + fail_unless (seqhdr.constrained_parameters_flag == FALSE); + + g_list_foreach (list, (GFunc) g_free, NULL); + g_list_free (list); +} + +GST_END_TEST; + +GST_START_TEST (test_mpeg_parse_sequence_extension) +{ + GList *list; + GstMpegVideoTypeOffsetSize *typeoffsz; + GstMpegVideoSequenceExt seqext; + + list = gst_mpeg_video_parse (mpeg2_seq, sizeof (mpeg2_seq), 12); + + typeoffsz = list->next->data; + fail_unless (typeoffsz->type == GST_MPEG_VIDEO_PACKET_EXTENSION); + fail_unless (gst_mpeg_video_parse_sequence_extension (&seqext, + mpeg2_seq, sizeof (mpeg2_seq), typeoffsz->offset)); + assert_equals_int (seqext.profile, 4); + assert_equals_int (seqext.level, 8); + assert_equals_int (seqext.progressive, 1); + assert_equals_int (seqext.chroma_format, 1); + assert_equals_int (seqext.horiz_size_ext, 0); + assert_equals_int (seqext.vert_size_ext, 0); + assert_equals_int (seqext.vert_size_ext, 0); + assert_equals_int (seqext.bitrate_ext, 8); + assert_equals_int (seqext.vbv_buffer_size_extension, 3); + assert_equals_int (seqext.low_delay, 0); + assert_equals_int (seqext.fps_n_ext, 3); + assert_equals_int (seqext.fps_d_ext, 2); + + g_list_foreach (list, (GFunc) g_free, NULL); + g_list_free (list); +} + +GST_END_TEST; + +GST_START_TEST (test_mis_identified_datas) +{ + GList *list, *tmp; + GstMpegVideoTypeOffsetSize *typeoffsz; + const guint8 *data = mis_identified_datas; + + list = gst_mpeg_video_parse (mis_identified_datas, + sizeof (mis_identified_datas), 0); + + assert_equals_int (g_list_length (list), 2); + for (tmp = list; tmp; tmp = g_list_next (tmp)) { + typeoffsz = tmp->data; + + assert_equals_int (data[typeoffsz->offset - 4], 0); + assert_equals_int (data[typeoffsz->offset - 3], 0); + assert_equals_int (data[typeoffsz->offset - 2], 1); + } + + g_list_foreach (list, (GFunc) g_free, NULL); + g_list_free (list); +} + +GST_END_TEST; + +static Suite * +videoparsers_suite (void) +{ + Suite *s = suite_create ("Video Parsers library"); + + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_mpeg_parse); + tcase_add_test (tc_chain, test_mpeg_parse_sequence_header); + tcase_add_test (tc_chain, test_mpeg_parse_sequence_extension); + tcase_add_test (tc_chain, test_mis_identified_datas); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = videoparsers_suite (); + + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/libs/vc1parser.c b/tests/check/libs/vc1parser.c new file mode 100644 index 0000000..6782289 --- /dev/null +++ b/tests/check/libs/vc1parser.c @@ -0,0 +1,1240 @@ +/* Gstreamer + * Copyright (C) <2011> Intel + * Copyright (C) <2011> Collabora Ltd. + * Copyright (C) <2011> Thibault Saunier + * + * 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. + */ +#include +#include + +static const guint8 sequence_fullframe[] = { + 0x00, 0x00, 0x01, 0x0f, 0xca, 0x86, 0x13, 0xf0, 0xef, 0x88, + 0x80, 0x00, 0x00, 0x01, 0x0e, 0x48, 0x3f, 0x4f, 0xc3, 0xbc, + 0x3f, 0x2b, 0x3f, 0x3c, 0x3f, 0x00, 0x00, 0x01, 0x0d, 0x3f, + 0x0c, 0x14, 0x27, 0x3f, 0x68, 0x0c, 0x03, 0x3f, 0x3f, 0x55, + 0x3f, 0x60, 0x71, 0x24, 0x38, 0x28, 0x1b, 0xda, 0xac, 0x01, + 0x3f, 0x3f, 0x3f, 0x33, 0x3f, 0x61, 0x75, 0x70, 0x3f, 0x3f, + 0x3f, 0x0d, 0x3f, 0x03, 0x3f, 0x3f, 0x1b, 0x3f, 0x3f, 0x61, + 0x1a, 0x73, 0x01, 0x26, 0x07, 0x0e, 0x29, 0x3f, 0x1d, 0x68, + 0xe1, 0xa2, 0x98, 0x59, 0x21, 0x3f, 0x1e, 0x7c, 0x3f, 0x3f, + 0x3f, 0x65, 0x49, 0x3f, 0x3f, 0x7e, 0x3f, 0x07, 0x6a, 0x0f, + 0xdb, 0x87, 0x3f, 0x3f, 0x3f, 0x41, 0x3f, 0x3f, 0x77, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x4a, 0x50, 0x53, + 0x3f, 0x3f, 0x65, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x08, 0x3f, + 0x3f, 0x04, 0x5e, 0x11, 0x7d, 0x12, 0x3f, 0x4a, 0x6b, 0x50, + 0x42, 0x3f, 0x15, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x75, 0x41, + 0x3f, 0x3f, 0x75, 0x71, 0x3f, 0x3f, 0x3b, 0x3f, 0x0d, 0x3f, + 0x3f, 0x6e, 0x3f, 0x3f, 0x06, 0x3f, 0x30, 0x08, 0x72, 0x3f, + 0x3b, 0x3f, 0x67, 0x6e, 0x3f, 0x50, 0x1b, 0x61, 0x5a, 0x20, + 0x2b, 0x70, 0x3f, 0x2c, 0x22, 0x3f, 0x36, 0x3f, 0x44, 0x40, + 0x00, 0x00, 0x01, 0x05, 0x3f +}; + +static const guint8 pframe_header_main[] = { + 0x4e, 0x29, 0x1a, 0x11 +}; + +static const guint8 pframe_main[] = { + 0x6a, 0x88, 0xbc, 0x1d, 0x40, 0x16, 0x96, 0x90, 0x05, 0x82, + 0xac, 0x22, 0x88, 0xe0, 0x5d, 0x52, 0xca, 0x85, 0x4c, 0x47, + 0x9d, 0xc9, 0x25, 0x45, 0x56, 0x99, 0x44, 0x15, 0xa5, 0xc5, + 0xe1, 0x35, 0x11, 0x72, 0xc1, 0x27, 0x22, 0x6a, 0x08, 0x9a, + 0x72, 0x4e, 0xe7, 0xa3, 0xf7, 0x23, 0x9d, 0x11, 0x8d, 0xc8, + 0xe6, 0x4f, 0x46, 0x98, 0xe2, 0x03, 0xcc, 0x6c, 0xe8, 0x77, + 0xd4, 0x7c, 0xfc, 0x13, 0x39, 0x20, 0x23, 0x03, 0x24, 0xcd, + 0x15, 0xbf, 0x54, 0x61, 0xf2, 0x25, 0x25, 0xa0, 0x83, 0xa0, +}; + +static const guint8 bframe_header_main[] = { + 0x4e, 0x39, 0x1a, 0x11 +}; + +static const guint8 bframe_main[] = { + 0x80, 0xae, 0x01, 0x43, 0x47, 0x6a, 0x9f, 0x53, 0x04, 0x55, 0x2a, + 0x8b, 0x42, 0x75, 0x8b, 0x35, 0x50, 0xf5, 0x95, 0x56, 0xf2, 0x00, + 0xe0, 0xa0, 0x60, 0x2c, 0xe8, 0x6b, 0x60, 0x0b, 0x20, 0x00, 0x11, + 0xf1, 0x51, 0xfe, 0x91, 0x60, 0x6a, 0xe6, 0x12, 0x04, 0x2c, 0xe3, + 0x07, 0x0a, 0x09, 0x09, 0x12, 0xcb, 0xe1, 0x42, 0x88, 0x10, 0x67, + 0x80, 0x4c, 0xbf, 0x26, 0x00, 0x82, 0x61, 0x07, 0x21, 0x63, 0x4c, + 0x0c, 0x32, 0x03, 0x53, 0x19, 0x1b, 0x4d, 0xca, 0xc9, 0xe0, 0xc1, + 0x6d, 0x32, 0x48, 0xc9, 0xd7, 0xa6, 0x63, 0x4d, 0xeb, 0xd4, 0x1c, + 0x02, 0x05, 0xfe, 0x57, 0x29, 0x00, 0x58, 0xb0, 0x67, 0x2d, 0x04, + 0xee, 0x1b, 0xaf, 0x53, 0x40, 0x89, 0xbe, 0xf5, 0x76, 0x20, 0x0b, + 0x83, 0xc1, 0x88, 0xee, 0x83, 0x94, 0xab, 0x1c, 0x79, 0xdd, 0x44, + 0xe5, 0x15, 0xae, 0xa5, 0xd3, 0xd5, 0x68, 0x31, 0x3e, 0x5a, 0xa4, + 0x6b, 0x9e, 0xe3, 0xd2, 0x49, 0x00, 0x1d, 0x6d, 0xeb, 0x0d, 0x6b, + 0x54, 0xcd, 0xd2, 0xaf, 0x1f, 0x2b, 0xba, 0xf3, 0xd9, 0x4c, 0x71 +}; + +static const guint8 i_bi_frame_header[] = { + 0x4e, 0x79, 0x1a, 0x11 +}; + +static const guint8 biframe_main[] = { + 0x0f, 0xe0, 0x4c, 0x56, 0x19, 0xdb, 0x40, 0x68, 0xd9, 0x14, 0x2c, 0x92, + 0x55, 0x1f, 0x59, 0xd5, 0x5b, 0xd8, 0x55, 0x13, 0x19, 0x64, 0x40, 0x2c, + 0x27, 0x38, 0x71, 0x9d, 0x05, 0x52, 0x02, 0x18, 0x7b, 0x9d, 0x22, 0x88, + 0x97, 0xaa, 0x54, 0x95, 0x52, 0x49, 0x23, 0x0b, 0x98, 0xee, 0x6c, 0x26, + 0xe6, 0xff, 0xff, 0x1a, 0x25, 0x15, 0xc3, 0x30, 0x4f, 0x1f, 0xbd, 0xb1, + 0x09, 0x1b, 0x55, 0x33, 0x6c, 0xcd, 0x8c, 0x11, 0x87, 0x1b, 0x86, 0x02, + 0x78, 0xfd, 0x69, 0xc1, 0xa2, 0x3b, 0x27, 0x08, 0xc8, 0x63, 0x5f, 0x52, + 0x10, 0x50, 0xe0, 0xf4, 0x4a, 0xfd, 0x83, 0x30, 0x3f, 0x20, 0x8d, 0x3a, + 0x88, 0xa0, 0x00, 0x23, 0xd8, 0x51, 0xd0, 0xf6, 0x8c, 0xc4, 0xe8, 0x2d, + 0x8c, 0x10, 0x13, 0xae, 0xb2, 0xaa, 0xc0, 0x92, 0x68, 0x33, 0x7b, 0x8f, + 0x63, 0x0e, 0xda, 0x35, 0xc6, 0xa1, 0x11, 0xe6, 0x44, 0xe3, 0xb1, 0x52, + 0xe9, 0x01, 0x05, 0x93, 0x1a, 0x36, 0x41, 0xf6, 0x62, 0x66, 0x05, 0xfb, + 0xd6, 0x99, 0x80, 0x8a, 0x97, 0xad, 0xa4, 0x25, 0xec, 0x1a, 0x04, 0xf3, + 0x0c, 0x9c, 0xe0, 0xea, 0x49, 0xfa, 0x4d, 0x58, 0xc8, 0x1b, 0x63, 0x23, + 0xdc, 0x07, 0x9d, 0xe9, 0x84, 0x93, 0x12, 0xc8, 0xfc, 0x86, 0x98, 0xb0, + 0x3d, 0xc8, 0xb4, 0xed, 0x4c, 0x18, 0xbe, 0xd8, 0x38, 0x1b, 0x6d, 0x39, + 0x90, 0x06, 0x43, 0x75, 0x82, 0x89, 0xc1, 0x6f, 0xf1, 0x12, 0x6d, 0x84, + 0x54, 0x45, 0x62, 0x2d, 0x00, 0x0a, 0x0e, 0x06, 0xf0, 0x04, 0x06, 0x5a +}; + +static const guint8 iframe_main[] = { + 0x10, 0x04, 0x88, 0x18, 0x1f, 0xdf, 0xe1, 0xe1, 0xde, 0x17, 0x85, 0xe1, + 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, + 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, + 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, + 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, + 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, + 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, + 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, + 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, + 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, + 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, + 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, + 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, + 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78, 0x5e, 0x17, 0x85, 0xe1, 0x78 +}; + +static const guint8 iframe_adv_hdr[] = { + 0xdb, 0xfe, 0x3b, 0xf2, 0x1b, 0xca, 0x3b, 0xf8, 0x86, 0xf1, 0x80, + 0xca, 0x02, 0x02, 0x03, 0x09, 0xa5, 0xb8, 0xd7, 0x07, 0xfc +}; + +static const guint8 entrypoint[] = { + 0x5a, 0xc7, 0xfc, 0xef, 0xc8, 0x6c, 0x40 +}; + +static const guint8 iframe_adv[] = { + 0x69, 0x1c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0x16, 0x0c, 0x0f, 0x13, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, + 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, + 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, + 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, + 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, + 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, + 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, + 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, + 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, + 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, + 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, + 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, + 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, + 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, + 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, + 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, + 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, + 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, + 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f, 0xc3, 0xf0, 0xfc, 0x3f, 0x0f +}; + +static const guint8 bframe_adv[] = { + 0x46, 0x03, 0x1f, 0xf0, 0x8d, 0xd8, 0xbf, 0xc0, 0xcc, 0x14, + 0x24, 0xdc, 0x60, 0xe2, 0xa8, 0x5e, 0x0d, 0xff, 0xfc, 0x3b, + 0x12, 0xfd, 0xe1, 0x2e, 0xd1, 0x84, 0xb0, 0xc2, 0xc4, 0xc1, + 0x60, 0x20, 0x4a, 0x7c, 0x33, 0xff, 0xf2, 0x10, 0xd8, 0x5c, + 0xf6, 0x7f, 0xc4, 0xd5, 0x0e, 0x0e, 0x51, 0xa8, 0x57, 0xff, + 0xfa, 0x43, 0x1f, 0xd0, 0x80, 0xdc, 0x58, 0x02, 0x02, 0xaf, + 0x10, 0xc6, 0x10, 0x12, 0x80, 0xd8, 0x07, 0xff, 0x9d, 0x00, + 0x50, 0x51, 0xa8, 0x0a, 0xd3, 0xef, 0x54, 0x03, 0xcb, 0x3f, + 0xff, 0x2b, 0x8b, 0x21, 0xcb, 0xdb, 0xf1, 0x62, 0x4e, 0x4d, + 0x8b, 0x03, 0x00, 0x16, 0x53, 0xff, 0xa6, 0x65, 0x12, 0x70, + 0xe0, 0x3f, 0xf4, 0x85, 0xb8, 0x4b, 0xc6, 0x04, 0x52, 0xff, + 0xc1, 0xf0, 0x80, 0x39, 0x85, 0x9f, 0xf4, 0xca, 0x91, 0x28, + 0x10, 0x64, 0x2c, 0xe0, 0xff, 0xff, 0x03, 0x2c, 0x3a, 0xfe, + 0x03, 0xc3, 0x2d, 0x0e, 0x60, 0x61, 0x80, 0x09, 0x9f, 0xff, + 0x03, 0x88, 0xc5, 0xd7, 0x9f, 0xfe, 0x1c, 0x14, 0x62, 0xc0, + 0x62, 0xc1, 0x7f, 0xef, 0x87, 0x7d, 0x6c, 0xbf, 0xf7, 0xc2, + 0x00, 0x10, 0x59, 0xd7, 0xfc, 0x33, 0x15, 0xbd, 0x35, 0xec, + 0x17, 0x0b, 0x07, 0x20, 0xd8, 0x42, 0x7e, 0xbf, 0xfc, 0x56, + 0xdd, 0x1f, 0x9c, 0x3a, 0x70, 0x45, 0x93, 0x01, 0x05, 0x37, + 0xb7, 0xff, 0x9f, 0x25, 0x5b, 0xb1, 0xbb, 0x87, 0x35, 0x02, + 0x70, 0x7e, 0x89, 0xb7, 0xf8, 0x5a, 0xb8, 0xb0, 0xb5, 0x04, + 0x4d, 0x2e, 0x11, 0xb9, 0x74, 0xa1, 0x95, 0xf0, 0x7f, 0x7b, + 0x38, 0x58, 0x50, 0x61, 0x9f, 0x3f, 0x80, 0x42, 0x7d, 0x15, + 0x82, 0x00, 0x1d, 0x85, 0x2b, 0x85, 0xf7, 0x14, 0x94, 0x60, + 0x42, 0x38, 0x28, 0xa8, 0x68, 0x2d, 0x28, 0x31, 0xbc, 0x36, + 0x48, 0x64, 0xc0, 0x21, 0x56, 0x30, 0xb9, 0xc0, 0x45, 0x90, + 0xe7, 0x12, 0x83, 0x84, 0xb1, 0x25, 0x86, 0x12, 0x18, 0x2d, + 0x08, 0xe8, 0x2a, 0x98, 0x8e, 0x0d, 0x00, 0xaa, 0x72, 0x75, + 0x61, 0x87, 0x00, 0x44, 0x57, 0xd4, 0x26, 0x02, 0x23, 0x90, + 0xc0, 0x04, 0x90, 0x80, 0x70, 0x46, 0x11, 0xe0, 0x20, 0x26, + 0x8c, 0x04, 0xa2, 0x88, 0x8e, 0x30, 0xc0, 0x30, 0x60, 0xdf, + 0xa2, 0xdf, 0x02, 0xd0, 0x01, 0x40, 0x99, 0x4e, 0xa4, 0x7f, + 0x84, 0x89, 0x63, 0x07, 0x0d, 0x19, 0x1d, 0x6c, 0x88, 0xca, + 0x1c, 0x1d, 0x07, 0x43, 0xc1, 0x02, 0x9c, 0x60, 0xa3, 0x09, + 0x0b, 0xc1, 0xfd, 0xa6, 0xa8, 0x21, 0x83, 0x8c, 0x08, 0x49, + 0x40, 0x56, 0xf9, 0xa6, 0x6a, 0x01, 0x52, 0x0d, 0x0e, 0x12, + 0xe1, 0x4c, 0xbf, 0x88, 0xe5, 0xa8, 0xb8, 0x02, 0x26, 0x0c, + 0x24, 0x74, 0x15, 0x38, 0x70, 0x25, 0x30, 0x24, 0x5e, 0xe0, + 0x22, 0x70, 0x68, 0x96, 0x7f, 0xec, 0x10, 0x23, 0x94, 0x30, + 0x61, 0x62, 0x38, 0xb0, 0x29, 0x2d, 0x78, 0x21, 0xb3, 0xca, + 0x40, 0xee, 0x11, 0xa0, 0x6f, 0xf8, 0x07, 0x71, 0x70, 0x47, + 0xb8, 0x5f, 0x5e, 0x89, 0x6c, 0x31, 0x58, 0x22, 0x0f, 0xff, + 0xf7, 0x17, 0x00, 0x30, 0x85, 0xf3, 0xc2, 0xb0, 0x55, 0xfe, + 0xbf, 0xfe, 0x0a, 0x7c, 0x16, 0x07, 0xf0, 0xdb, 0x81, 0xf9, + 0x40, 0x30, 0x81, 0x84, 0xac, 0x0f, 0xff, 0xe2, 0xb3, 0x4f, + 0xc3, 0x8d, 0x30, 0x76, 0x9a, 0x33, 0xa0, 0x10, 0x50, 0xc8, + 0x60, 0xae, 0x2b, 0x22, 0xff, 0xf8, 0xa9, 0x02, 0xf9, 0xf6, + 0x7a, 0x44, 0x37, 0x69, 0x8b, 0x01, 0x2b, 0x9f, 0xff, 0x81, + 0x60, 0x7a, 0xb9, 0x01, 0x0b, 0x27, 0x70, 0x40, 0xa1, 0x50, + 0x60, 0xa4, 0x61, 0xa1, 0x66, 0x30, 0x91, 0x55, 0x6f, 0xff, + 0xe6, 0x0d, 0x14, 0xae, 0xc8, 0x1a, 0x2c, 0x23, 0x4c, 0xc9, + 0x94, 0x4c, 0x07, 0x61, 0x0d, 0x46, 0x63, 0x89, 0xca, 0xbf, + 0xff, 0xea, 0x27, 0x0c, 0x30, 0x1e, 0x66, 0x1c, 0x13, 0x50, + 0xb0, 0xd8, 0x34, 0x02, 0x14, 0x30, 0x01, 0x54, 0x6a, 0xbf, + 0xff, 0x97, 0xa2, 0x3a, 0x83, 0x85, 0x04, 0x8a, 0xc2, 0x60, + 0xc0, 0x85, 0x57, 0x71, 0x61, 0x45, 0x22, 0x01, 0x07, 0x00, + 0x22, 0xff, 0xfb, 0x5b, 0xf1, 0x80, 0x8b, 0x46, 0x81, 0x68, + 0x02, 0xe2, 0x71, 0x00, 0x11, 0x81, 0x86, 0x2f, 0xff, 0xf7, + 0x5f, 0xdd, 0x42, 0x06, 0x03, 0x38, 0xb4, 0x01, 0xf6, 0xc0, + 0xff, 0xc7, 0xfb, 0xb8, 0x15, 0x0b, 0xfc, 0x1c, 0x09, 0x86, + 0x18, 0x30, 0x34, 0x15, 0x9c, 0x6a, 0x55, 0xff, 0xff, 0xbf, + 0xe2, 0xc0, 0xc3, 0x86, 0xe2, 0x38, 0x18, 0xb3, 0x14, 0x81, + 0xc0, 0x06, 0x04, 0xc2, 0x98, 0xb0, 0x12, 0x7f, 0xff, 0x8c, + 0x06, 0xbf, 0x71, 0x85, 0x0c, 0x08, 0x47, 0x11, 0x87, 0xa0, + 0xa4, 0xe0, 0x63, 0x0a, 0x0c, 0xae, 0x0a, 0xbf, 0xfe, 0xe0, + 0x78, 0xb0, 0x13, 0xb8, 0x20, 0xc3, 0x5d, 0xc5, 0x21, 0x44, + 0x82, 0x48, 0x00, 0x18, 0x24, 0x54, 0x00, 0x03, 0x5c, 0x1b, + 0xff, 0xc3, 0x9a, 0x16, 0x30, 0xb1, 0x85, 0x07, 0x38, 0xc8, + 0x59, 0x20, 0x81, 0x4c, 0x56, 0x75, 0x27, 0x0d, 0x08, 0x71, + 0x58, 0x47, 0x0e, 0x12, 0x85, 0x81, 0x61, 0xbf, 0xfc, 0x5a, + 0x4a, 0x0c, 0x28, 0x56, 0x20, 0x03, 0x14, 0x63, 0x0a, 0x2a, + 0x45, 0x80, 0xd1, 0x38, 0x28, 0x68, 0x32, 0x27, 0xa2, 0x05, + 0xff, 0xf7, 0x03, 0xe2, 0x30, 0x3c, 0x56, 0x61, 0x4e, 0x30, + 0x18, 0xad, 0x80, 0xdc, 0x15, 0x04, 0xa7, 0x0c, 0x18, 0x30, + 0x10, 0x38, 0x62, 0xff, 0xe1, 0x87, 0x3c, 0x20, 0x60, 0x63, + 0x0a, 0x02, 0x29, 0xf0, 0xc2, 0xa4, 0x2c, 0x04, 0x66, 0x2b, + 0x02, 0x72, 0xff, 0xce, 0x07, 0xd0, 0x10, 0x0e, 0x13, 0xc5, + 0x22, 0xc3, 0x02, 0x96, 0x10, 0x33, 0x18, 0x08, 0x1e, 0xe7, + 0xff, 0x9f, 0xd0, 0x61, 0xb9, 0x0a, 0xdf, 0xdc, 0x83, 0x85, + 0x61, 0x38, 0x61, 0x69, 0x24, 0x12, 0x7f, 0xf0, 0x3a, 0x73, + 0x03, 0x09, 0x87, 0x7c, 0x30, 0xb8, 0x58, 0x9c, 0x18, 0x30, + 0x05, 0xd0, 0x4c, 0xff, 0xcb, 0xe3, 0x86, 0x14, 0x5a, 0xc3, + 0x0b, 0x8a, 0xd7, 0x05, 0x15, 0x06, 0x0a, 0x00, 0x50, 0x78, + 0x93, 0xff, 0x7f, 0xc6, 0xc5, 0x97, 0xf0, 0x97, 0x18, 0x70, + 0x71, 0x8c, 0x14, 0x58, 0x03, 0xb4, 0x61, 0xa0, 0x7f, 0xef, + 0xae, 0x18, 0x29, 0x84, 0xee, 0xbf, 0x88, 0xa0, 0x33, 0x0e, + 0x11, 0x41, 0xfc, 0xff, 0xf1, 0xa8, 0xda, 0x1c, 0xa1, 0x81, + 0x05, 0x8a, 0x9f, 0xf1, 0x2c, 0x30, 0x55, 0x18, 0x40, 0xc2, + 0x7d, 0x8b, 0xf7, 0x8a, 0x80, 0x42, 0x58, 0x94, 0x30, 0x51, + 0x1c, 0x00, 0x83, 0x08, 0x4b, 0x3e, 0x1c, 0x1b, 0xe2, 0xb0, + 0x4b, 0x06, 0x03, 0x32, 0xa8, 0xc0, 0xc6, 0x08, 0xb5, 0x6c, + 0x02, 0xa6, 0x00, 0x22, 0xa0, 0xd8, 0x53, 0x1a, 0x0c, 0x0d, + 0x78, 0x97, 0x8c, 0x1c, 0x60, 0xa2, 0x5e, 0xc3, 0x21, 0x86, + 0x8c, 0x0c, 0x55, 0x41, 0x28, 0x46, 0x1b, 0x82, 0x35, 0x85, + 0x4e, 0x03, 0xc1, 0x62, 0x31, 0x8b, 0x83, 0x0b, 0x18, 0x54, + 0x30, 0xbc, 0x1c, 0x38, 0x13, 0x02, 0x08, 0x03, 0x18, 0x08, + 0x86, 0x1a, 0x36, 0x09, 0x33, 0x15, 0x1d, 0x00, 0x0b, 0xf0, + 0xc1, 0x60, 0x2c, 0x0c, 0x58, 0x13, 0x01, 0xc6, 0x0e, 0xa2, + 0xc7, 0x87, 0x0b, 0x3e, 0x16, 0x40, 0x22, 0x88, 0xb8, 0x27, + 0x11, 0x07, 0x07, 0x04, 0xf4, 0xfb, 0x84, 0x30, 0x8e, 0x08, + 0x30, 0xb2, 0x18, 0x08, 0xd8, 0x53, 0xf8, 0x8a, 0x5f, 0x15, + 0x86, 0x10, 0x1b, 0x54, 0x03, 0x11, 0x40, 0x3f, 0xe8, 0x30, + 0x84, 0x15, 0x02, 0xc4, 0x61, 0x44, 0x61, 0x62, 0xe1, 0x7f, + 0xba, 0x84, 0xe1, 0x03, 0x0b, 0x1a, 0x02, 0x2c, 0xcb, 0xfc, + 0x39, 0xc2, 0x4c, 0x26, 0x36, 0x18, 0x68, 0x19, 0x5d, 0x7f, + 0x49, 0x5c, 0x61, 0xc2, 0xd0, 0xa7, 0x42, 0xfe, 0xeb, 0x9a, + 0x01, 0x10, 0x10, 0x9c, 0x2b, 0x46, 0x00, 0x08, 0x91, 0x60, + 0x61, 0x5f, 0x1a, 0x0a, 0xce, 0x2c, 0x0b, 0x30, 0xc2, 0xff, + 0x41, 0x1f, 0xf8, 0xc0, 0x23, 0x03, 0x18, 0x69, 0x62, 0x58, + 0x0f, 0xe0, 0x43, 0x02, 0x11, 0x85, 0x21, 0x84, 0xf7, 0xff, + 0xb7, 0xc6, 0x14, 0x50, 0xc1, 0x0c, 0x66, 0xa1, 0x2e, 0xb0, + 0xc0, 0xa5, 0xd0, 0xcc, 0xc6, 0x15, 0xa8, 0xa5, 0xfc, 0x38, + 0x4b, 0x00, 0xe1, 0xc0, 0x25, 0xc4, 0x54, 0x09, 0x14, 0x50, + 0x4b, 0xd2, 0x25, 0xc5, 0x68, 0xac, 0x2a, 0x04, 0xe2, 0x90, + 0x27, 0xf1, 0x2f, 0xdc, 0x61, 0x67, 0xe2, 0x32, 0x0d, 0xc0, + 0x80, 0xe2, 0xb6, 0x2b, 0x0d, 0x8a, 0x18, 0x30, 0x51, 0x4a, + 0xbb, 0xff, 0xfc, 0x4e, 0xfc, 0x6a, 0xa2, 0xb0, 0x97, 0x0e, + 0x75, 0x0c, 0x21, 0x82, 0x06, 0x8b, 0x11, 0x86, 0x8c, 0x38, + 0x2c, 0x0c, 0x5a, 0x97, 0xff, 0x83, 0x17, 0x87, 0x20, 0x96, + 0x29, 0x05, 0x8a, 0xc6, 0x10, 0x2b, 0x38, 0x20, 0xc0, 0x06, + 0xc0, 0x82, 0xc0, 0xc8, 0x60, 0x4a, 0x1a, 0xd1, 0xaf, 0xff, + 0xb8, 0xc3, 0x38, 0x43, 0x04, 0x8a, 0x31, 0x81, 0x0a, 0x30, + 0x81, 0x86, 0x8c, 0x2c, 0x08, 0x5c, 0x18, 0x00, 0x0b, 0x82, + 0x84, 0x60, 0x0e, 0x07, 0xff, 0xf1, 0x2f, 0x0c, 0x13, 0x40, + 0x84, 0xe5, 0x41, 0x58, 0x1d, 0xf1, 0x90, 0x70, 0x94, 0x30, + 0xa6, 0x02, 0x82, 0x90, 0xb5, 0x81, 0xff, 0xfc, 0xf1, 0xbe, + 0x60, 0x4c, 0x18, 0x30, 0xe1, 0x84, 0x0a, 0x50, 0x21, 0x80, + 0x90, 0xb0, 0x2d, 0x30, 0xb4, 0x34, 0x04, 0x11, 0x6f, 0xff, + 0xf8, 0x5c, 0x61, 0x45, 0xe0, 0x40, 0x22, 0x30, 0xaa, 0x18, + 0x30, 0x41, 0x2c, 0x60, 0xc3, 0x09, 0x11, 0xe8, 0x42, 0x30, + 0x8e, 0x04, 0x0c, 0x2b, 0x7f, 0xfe, 0x80, 0x45, 0xf8, 0x8e, + 0x23, 0x0d, 0xc3, 0x81, 0x04, 0x51, 0x14, 0x0f, 0xe2, 0x1a, 0x10, + 0x07, 0xf2, 0x48, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x29, 0x96, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x92, 0x03, 0x42, 0x1e, 0xc1, + 0x80, 0xba, 0x03, 0x54, 0x13, 0xe6, 0x88, 0xc0, 0xb6, 0x28, + 0x30, 0x39, 0x08, 0x01, 0x48, 0x53, 0x16, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x07, 0x81, 0x00, 0x00, + 0x00, 0x50, 0x2b, 0x0a, 0x42, 0x50, 0x45, 0x85, 0x4e, 0x08, + 0x64, 0x0c, 0x58, 0x86, 0x30, 0x06, 0x06, 0x70, 0x24, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0xb6, 0x1f, 0xe4, 0xb6, 0x31, 0x25, 0x43, 0xb1, 0x87, + 0xc1, 0x11, 0x86, 0xa1, 0x10, 0xe4, 0x3d, 0x5e, 0x1c, 0x42, + 0xe9, 0x64, 0xb9, 0x6b, 0x80, 0x29, 0x85, 0xdb, 0xc3, 0x4c, + 0x52, 0xb0, 0x84, 0x86, 0x88, 0x0c, 0x00, 0x02, 0x43, 0xb3, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, + 0x0a, 0x26, 0x8a, 0x1e, 0x82, 0x98, 0x07, 0x01, 0x51, 0x85, + 0x80, 0x42, 0x11, 0x8f, 0xd2, 0x30, 0xbf, 0x0a, 0x09, 0xcb, + 0x45, 0x10, 0x98, 0x78, 0x18, 0xe0, 0xf8, 0xf4, 0x2d, 0x01, + 0x80, 0xc0, 0x60, 0x30, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xd8, 0x24, 0x00, 0x14, 0x87, 0xe0, 0x11, 0x01, 0xc1, + 0x2a, 0x07, 0x07, 0x01, 0x81, 0xa1, 0x9e, 0x74, 0x38, 0x1c, + 0x0e, 0x04, 0x2c, 0x21, 0x84, 0x02, 0xd4, 0x31, 0x00, 0xa8, + 0x82, 0x36, 0x30, 0xc8, 0xe4, 0x0c, 0x32, 0xbb, 0x8a, 0xb7, + 0x00, 0x98, 0x08, 0x2e, 0x61, 0xec, 0x00, 0x4a, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbf, 0xf8, 0x04, 0x03, 0x40, 0x00, + 0x45, 0xe9, 0x40, 0x40, 0xd2, 0x0a, 0x84, 0x78, 0xf4, 0x66, + 0xf8, 0x4a, 0x92, 0x82, 0x4c, 0xc9, 0xd0, 0x12, 0xb4, 0x68, + 0x83, 0x27, 0xb0, 0x36, 0x02, 0x80, 0x98, 0x09, 0x84, 0xe1, + 0x60, 0x0c, 0x0d, 0x03, 0x74, 0x0b, 0x86, 0x40, 0x1e, 0x89, + 0xf0, 0x1f, 0x81, 0x4e, 0x00, 0x2b, 0xf0, 0x04, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x78, 0x00, 0x00, 0x09, 0x96, 0x24, + 0x09, 0x0d, 0x14, 0x03, 0x87, 0x80, 0xe8, 0x54, 0x09, 0x0f, + 0xf4, 0x09, 0x33, 0x9e, 0xd0, 0x4e, 0x0c, 0x31, 0x80, 0x41, + 0x84, 0x98, 0xe3, 0xc1, 0x88, 0x27, 0xa0, 0xd2, 0x0a, 0x90, + 0x66, 0x4b, 0x0d, 0xc0, 0xac, 0x61, 0x97, 0x9c, 0x12, 0x1b, + 0xec, 0x51, 0x5c, 0x48, 0xa2, 0x9e, 0x1d, 0x03, 0x12, 0x03, + 0x0c, 0xe4, 0x53, 0xb2, 0x80, 0x1c, 0xe2, 0xc2, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x60, 0x01, 0x57, 0x04, 0x86, 0x48, + 0x04, 0xf9, 0x01, 0x20, 0x2e, 0x15, 0x94, 0x01, 0x0e, 0xf2, + 0x9f, 0x40, 0x51, 0x6c, 0x0d, 0x06, 0x24, 0x50, 0x48, 0x00, + 0x83, 0x65, 0x05, 0x67, 0x25, 0x36, 0x7a, 0x26, 0x83, 0xd1, + 0x9e, 0xc2, 0x7f, 0x40, 0xd0, 0x2a, 0x14, 0x26, 0xb8, 0xac, + 0x64, 0x86, 0xd8, 0x47, 0x84, 0x89, 0x4e, 0x79, 0xc8, 0x21, + 0x4c, 0x24, 0x17, 0xa6, 0x6a, 0x51, 0x32, 0x6b, 0x93, 0x20, + 0xa1, 0x72, 0x65, 0x97, 0x77, 0x03, 0x18, 0x88, 0x41, 0xe0, + 0x88, 0x40, 0x21, 0x4e, 0xb6, 0x05, 0x60, 0x02, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x8f, 0x03, 0x44, 0xc0, + 0x23, 0x20, 0x06, 0x88, 0x32, 0x16, 0x19, 0xc2, 0xc9, 0x79, + 0xf4, 0xd9, 0x3d, 0x32, 0x22, 0xc9, 0x4e, 0x41, 0x80, 0x4c, + 0x34, 0x0b, 0x31, 0x82, 0x19, 0x80, 0x93, 0x3c, 0xf2, 0x04, + 0xa4, 0x39, 0x21, 0x8c, 0xd6, 0x12, 0x40, 0x80, 0x84, 0x1a, + 0x6e, 0xe3, 0x09, 0xe8, 0x4c, 0x1a, 0x00, 0xe0, 0x49, 0xa8, + 0x02, 0xb2, 0x31, 0x06, 0x60, 0xf8, 0x28, 0x11, 0x68, 0x24, + 0x14, 0x82, 0xfc, 0x82, 0xf9, 0x82, 0x07, 0x48, 0xab, 0x25, + 0xca, 0x0e, 0x44, 0x6a, 0x28, 0x24, 0x28, 0x54, 0x1a, 0x80, + 0x44, 0x46, 0x80, 0xa4, 0x63, 0x2e, 0x02, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x21, 0xbf, 0xc1, 0xa0, 0x78, 0x2c, + 0xc5, 0xde, 0x80, 0xc0, 0x4c, 0x22, 0x22, 0x53, 0x01, 0xc8, + 0x38, 0x18, 0x42, 0xbb, 0x05, 0xb3, 0x26, 0xc0, 0xf6, 0x4b, + 0x01, 0xd0, 0x12, 0x01, 0xac, 0x0f, 0x18, 0x73, 0x6d, 0x2c, + 0x8c, 0x85, 0x28, 0x4c, 0x90, 0x80, 0x10, 0x82, 0x5d, 0x50, + 0x13, 0xd6, 0x34, 0xc8, 0x08, 0x4b, 0x09, 0x86, 0x64, 0x06, + 0xb3, 0xdd, 0xa6, 0x4b, 0xd2, 0x6c, 0x97, 0x27, 0xf0, 0x8d, + 0x45, 0xd1, 0x81, 0xc2, 0x0c, 0x2e, 0x44, 0x98, 0xe1, 0x26, + 0xbd, 0xaa, 0x12, 0x6b, 0xfb, 0x80, 0x90, 0xdc, 0x42, 0x16, + 0xdf, 0xd4, 0xd4, 0x08, 0x5c, 0xa3, 0x75, 0xbc, 0x82, 0x09, + 0x83, 0x01, 0x81, 0x70, 0xbb, 0x30, 0xb4, 0x41, 0x4c, 0x68, + 0x30, 0x29, 0x02, 0x82, 0x1f, 0x0c, 0x71, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x83, 0x80, 0x18, 0x06, 0x10, 0x47, 0x43, + 0xb0, 0x48, 0x81, 0xa0, 0x13, 0x6d, 0x9c, 0x84, 0xc5, 0xd9, + 0x85, 0x6e, 0x15, 0x79, 0x5c, 0xc5, 0x32, 0xf8, 0x51, 0x31, + 0x96, 0x2e, 0x00, 0x01, 0x05, 0xc0, 0x92, 0x89, 0x08, 0x60, + 0x9b, 0x32, 0x58, 0x25, 0xad, 0xc0, 0x8a, 0x18, 0x66, 0x43, + 0x58, 0x51, 0xb0, 0x11, 0x08, 0x94, 0x01, 0x22, 0x5b, 0xe0, + 0x4c, 0x84, 0x14, 0x80, 0x4a, 0x9c, 0x02, 0x8a, 0x00, 0x38, + 0xe1, 0xf5, 0x3b, 0x20, 0x21, 0x28, 0x1e, 0x0b, 0xd8, 0x80, + 0x81, 0x8a, 0x89, 0x64, 0xb1, 0x2f, 0xe3, 0x30, 0x2d, 0xd4, + 0x20, 0x08, 0x43, 0xf1, 0x19, 0x0a, 0x85, 0x9e, 0xb2, 0xd0, + 0x00, 0x54, 0x56, 0x50, 0x2c, 0x04, 0x80, 0xee, 0x0e, 0x8a, + 0x54, 0x29, 0x10, 0xa5, 0x82, 0xfb, 0x82, 0xc3, 0x80, 0x10, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x37, 0xf0, 0x00, 0x01, + 0xeb, 0x59, 0x3d, 0x83, 0x21, 0x41, 0xf6, 0xdd, 0x22, 0xc9, + 0x72, 0x6c, 0x8a, 0xc1, 0x04, 0x9a, 0x5b, 0x94, 0x12, 0x1e, + 0x5a, 0x09, 0x11, 0x2c, 0x0a, 0x2d, 0x05, 0x6b, 0x57, 0x64, + 0xcc, 0x34, 0x47, 0x00, 0x88, 0x2a, 0xa0, 0x7a, 0x41, 0x8b, + 0xb2, 0x88, 0x20, 0x9b, 0xf0, 0x24, 0x40, 0x46, 0x09, 0x54, + 0xe0, 0x68, 0x27, 0xf0, 0x09, 0x68, 0x80, 0xb4, 0x23, 0x53, + 0x38, 0x84, 0x1f, 0x02, 0x6d, 0x62, 0x05, 0x78, 0x49, 0x98, + 0x0e, 0x18, 0xc6, 0x43, 0x20, 0x21, 0x02, 0x0a, 0x44, 0x64, + 0x1c, 0x1d, 0x04, 0xa0, 0xc8, 0x07, 0x07, 0xe1, 0x28, 0xa6, + 0x6c, 0x37, 0xc5, 0x51, 0x86, 0xdd, 0x00, 0xbd, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x2b, 0x80, 0x01, 0xb3, 0x13, 0xe8, 0x76, + 0x09, 0xea, 0x04, 0x23, 0x0b, 0x21, 0x01, 0x02, 0x18, 0x07, + 0x00, 0x8c, 0xd2, 0x0d, 0x64, 0xc8, 0x1b, 0x09, 0x30, 0x48, + 0xa5, 0x97, 0x0d, 0x20, 0xa0, 0x91, 0x27, 0x08, 0x32, 0x41, + 0x56, 0x04, 0x99, 0xcf, 0x20, 0x4a, 0x09, 0xb8, 0x86, 0x49, + 0x19, 0xc0, 0x48, 0xd4, 0xf3, 0x82, 0xae, 0x38, 0x63, 0x04, + 0x26, 0x16, 0x1e, 0x30, 0xd7, 0x4c, 0x80, 0x12, 0x50, 0xfd, + 0x92, 0xe2, 0x03, 0x9f, 0x40, 0x2b, 0x67, 0x38, 0x16, 0x17, + 0x4f, 0xf9, 0x76, 0xaf, 0x09, 0x8b, 0xb9, 0x84, 0x00, 0x02, + 0x8f, 0x2c, 0x00, 0x5d, 0x03, 0x50, 0x00, 0x42, 0x13, 0x06, + 0x60, 0x96, 0xc3, 0xd0, 0x00, 0x3c, 0x10, 0xc0, 0x4e, 0x02, + 0x00, 0x04, 0xe0, 0xf0, 0x23, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x24, 0x1b, 0xe0, 0x00, 0x04, 0x02, 0xe9, 0x4c, 0x97, 0x26, + 0x40, 0x70, 0x24, 0x3b, 0x50, 0xb6, 0x40, 0x54, 0x41, 0x26, + 0x79, 0xa4, 0x94, 0xbc, 0xc5, 0x97, 0x18, 0x61, 0x88, 0x2e, + 0x70, 0x22, 0x62, 0x3c, 0x02, 0x05, 0x80, 0x90, 0xea, 0x06, + 0x68, 0xf4, 0xb2, 0x66, 0x06, 0x09, 0x33, 0x07, 0x54, 0x83, + 0x64, 0xcc, 0x28, 0xc1, 0x60, 0xba, 0x08, 0x8d, 0x1a, 0xf1, + 0xa0, 0x84, 0x85, 0x81, 0x94, 0x23, 0x06, 0x2f, 0x22, 0xb2, +}; + +static const guint8 bframe2_adv[] = { + 0x46, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xf8, 0xa1, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, +}; + +static const guint8 pframe_adv[] = { + 0x24, 0x20, 0x04, 0xbf, 0x85, 0x88, 0x65, 0xc1, 0x00, 0xdc, + 0x4c, 0x06, 0xce, 0x05, 0x01, 0x01, 0x41, 0x0c, 0x60, 0x42, + 0x67, 0xff, 0xfb, 0x85, 0x0b, 0x9c, 0x56, 0x0d, 0x0b, 0x1b, + 0x8c, 0x08, 0x08, 0x47, 0x1b, 0xce, 0xc1, 0x83, 0x09, 0x8a, + 0xa1, 0x83, 0x09, 0x16, 0x7f, 0xff, 0x98, 0x94, 0xff, 0x81, + 0x4f, 0xf9, 0x41, 0xe1, 0x83, 0x01, 0xff, 0xff, 0x14, 0x40, + 0xcd, 0x70, 0xd7, 0xf2, 0xf7, 0xc1, 0xf1, 0x18, 0x59, 0xff, + 0xfc, 0x51, 0x18, 0x68, 0x2c, 0xd4, 0x54, 0x16, 0xbf, 0xfe, + 0x0c, 0xf1, 0x81, 0x28, 0x67, 0xff, 0x86, 0x39, 0x05, 0xe6, + 0x5f, 0xff, 0xe0, 0x48, 0xc0, 0xff, 0xfe, 0x61, 0x18, 0x37, + 0xff, 0x97, 0xdc, 0x1c, 0x45, 0x06, 0x06, 0xff, 0xf0, 0x30, + 0x7d, 0x17, 0xff, 0xff, 0x86, 0x07, 0x03, 0xff, 0xf9, 0x01, + 0xf0, 0x7f, 0xff, 0xdf, 0xc1, 0x20, 0x9f, 0xfd, 0x0c, 0x0f, + 0x86, 0x7f, 0xff, 0xee, 0x50, 0xef, 0xfe, 0xc1, 0xa5, 0xc6, + 0x1b, 0xff, 0xff, 0x86, 0x61, 0x9f, 0xfc, 0x1c, 0x1f, 0xa2, + 0xff, 0xff, 0xe0, 0xf8, 0x10, 0x1f, 0xfe, 0x0e, 0x0f, 0x99, + 0x95, 0xff, 0xff, 0xb8, 0x3e, 0xe5, 0xff, 0x81, 0x83, 0xe1, + 0x6b, 0xff, 0xff, 0x40, 0xc0, 0x7c, 0x30, 0xbf, 0xe0, 0xb2, + 0x0e, 0x09, 0x61, 0x53, 0xff, 0xfd, 0x60, 0x20, 0xfc, 0x27, + 0xf0, 0x96, 0x51, 0x26, 0x6c, 0xcf, 0xff, 0xff, 0xe7, 0x60, + 0xe0, 0xb5, 0xee, 0x82, 0xa0, 0xb8, 0x41, 0x32, 0x3f, 0x2f, + 0xcd, 0x3f, 0xa0, 0xa8, 0x96, 0x8e, 0x2a, 0x4c, 0x08, 0x6e, + 0x36, 0x1a, 0x83, 0x2a, 0x8b, 0x02, 0xcb, 0x2f, 0xff, 0xe9, + 0xf8, 0xa4, 0x0e, 0x00, 0x12, 0xc1, 0x88, 0xc3, 0x0c, 0x05, + 0x51, 0x44, 0x61, 0xa3, 0x0b, 0x18, 0x58, 0x38, 0x70, 0x97, + 0xff, 0xff, 0xf8, 0x8c, 0x14, 0x2c, 0x0c, 0x19, 0x86, 0x0c, + 0x27, 0x09, 0xc1, 0x03, 0x08, 0x62, 0xc0, 0xff, 0xff, 0xfe, + 0x94, 0x6d, 0x22, 0x77, 0xc0, 0x44, 0x71, 0x1c, 0x60, 0xe5, + 0xb7, 0xff, 0xfe, 0xbf, 0xba, 0x57, 0x82, 0x0c, 0x24, 0xc8, + 0x5a, 0xbf, 0xff, 0xff, 0xcb, 0x14, 0xc8, 0x30, 0x43, 0x16, + 0x29, 0x51, 0x86, 0x0b, 0x00, 0x51, 0x60, 0x60, 0xc0, 0x17, + 0x75, 0xff, 0xf9, 0x77, 0x0e, 0x18, 0x4b, 0x84, 0xc5, 0x47, + 0x11, 0xc5, 0x10, 0x68, 0x1b, 0x8c, 0x00, 0x6a, 0x71, 0x60, + 0xc0, 0x46, 0xe2, 0xe0, 0x22, 0x65, 0xff, 0xd6, 0x09, 0x0e, + 0x01, 0x15, 0x55, 0x85, 0x48, 0x28, 0x8f, 0xc2, 0x42, 0x06, + 0x1c, 0x23, 0x8b, 0x01, 0x42, 0x74, 0x08, 0x61, 0x9f, 0xff, + 0xc2, 0xca, 0x19, 0x81, 0x02, 0x10, 0x20, 0xc0, 0x1c, 0x5c, + 0x13, 0x84, 0xe6, 0x1a, 0x8b, 0x02, 0x38, 0x98, 0x09, 0x98, + 0xa3, 0xff, 0xfd, 0xc9, 0x05, 0x5e, 0x82, 0x18, 0xc1, 0x40, + 0xc6, 0xf6, 0x04, 0x14, 0x40, 0x60, 0x80, 0xfd, 0x04, 0x6f, + 0xff, 0xf4, 0x58, 0x0a, 0xf8, 0x86, 0x30, 0x02, 0x14, 0x44, + 0xe2, 0xc2, 0x43, 0x3c, 0x1b, 0xff, 0x86, 0xb5, 0x66, 0x16, + 0xf0, 0x7f, 0xa0, 0x9c, 0x5e, 0x84, 0x07, 0xd1, 0x73, 0xff, + 0xee, 0x88, 0xc2, 0xe1, 0x7f, 0xfc, 0xc0, 0xf0, 0x59, 0x65, + 0xfe, 0x9f, 0x70, 0xbf, 0xff, 0xdc, 0x1e, 0x2a, 0x02, 0x57, + 0xff, 0xc0, 0x26, 0x2d, 0x3c, 0x4d, 0x5f, 0xff, 0xc4, 0xc1, + 0x30, 0x11, 0x15, 0xc4, 0xaf, 0xfc, 0x5c, 0x0e, 0x0e, 0x0e, + 0x84, 0x8c, 0x34, 0x34, 0xbf, 0xff, 0x11, 0x81, 0x30, 0x10, + 0x48, 0x87, 0xf9, 0x43, 0x05, 0x25, 0x04, 0x11, 0x43, 0x70, + 0x4f, 0xff, 0xfd, 0x04, 0xe1, 0x0e, 0xfe, 0x6f, 0x83, 0x88, + 0xe1, 0x98, 0x76, 0x0f, 0xfc, 0x89, 0x0e, 0xe7, 0xc2, 0x78, + 0x4c, 0x24, 0xd4, 0x18, 0x8c, 0xbf, 0x27, 0x16, 0xd0, 0xb0, + 0xc9, 0xf4, 0x12, 0x6a, 0x08, 0xe4, 0x5c, 0x24, 0xbf, 0x46, + 0x60, 0xf6, 0x53, 0xf5, 0x6c, 0xff, 0x2e, 0x32, 0x09, 0x1e, + 0xab, 0x09, 0x00, 0x1e, 0x88, 0x56, 0x6e, 0x7a, 0x1c, 0xd0, + 0x30, 0x3c, 0xab, 0xf0, 0x44, 0x5a, 0x90, 0x4f, 0x9a, 0xf0, + 0xe6, 0x7d, 0x62, 0xc1, 0x87, 0x4b, 0xdb, 0xfd, 0x68, 0xd9, + 0x35, 0x3b, 0x01, 0x04, 0x81, 0x2c, 0x24, 0xee, 0xb3, 0x9b, + 0x65, 0x30, 0x49, 0x20, 0xa8, 0x08, 0xf6, 0xaf, 0x33, 0x80, + 0x38, 0x49, 0xa3, 0x94, 0x6e, 0x35, 0x06, 0x4d, 0xc3, 0x30, + 0x92, 0x7c, 0x3c, 0x6b, 0x9e, 0xd5, 0x31, 0x4d, 0x69, 0x87, + 0x2e, 0x04, 0x7e, 0x04, 0x12, 0x5f, 0xa3, 0x0a, 0xe4, 0x5b, + 0x21, 0x6c, 0x45, 0x54, 0x29, 0x11, 0x48, 0x8a, 0xa8, 0x52, + 0x22, 0xa8, 0x33, 0x06, 0xe0, 0xbd, 0xe8, 0x41, 0x00, 0x03, + 0x52, 0xe7, 0x00, 0x7d, 0xf0, 0x42, 0x4d, 0x0f, 0x20, 0x26, + 0x24, 0x09, 0xbb, 0x48, 0x1c, 0xeb, 0xa5, 0xa2, 0x0e, 0xed, + 0x11, 0x66, 0x97, 0x93, 0xb8, 0x4a, 0x70, 0x8a, 0x75, 0x38, + 0x47, 0xc1, 0x26, 0x3e, 0x50, 0x87, 0x33, 0xf2, 0x37, 0xc7, + 0x3b, 0x67, 0x09, 0x33, 0x44, 0xfc, 0xcd, 0xda, 0x19, 0xa6, + 0x3f, 0x27, 0xec, 0x24, 0x12, 0x64, 0x06, 0x13, 0xdd, 0x9e, + 0x81, 0x92, 0x17, 0x5f, 0xb3, 0xd9, 0x37, 0xf2, 0x0f, 0x15, + 0x00, 0x87, 0xb3, 0xe6, 0xc9, 0xc1, 0xbc, 0x24, 0x7f, 0x0f, + 0x7c, 0x76, 0x4c, 0xe0, 0xfb, 0xf7, 0x66, 0x4c, 0x9c, 0x19, + 0x32, 0x6f, 0xb2, 0x64, 0xfa, 0x00, 0x01, 0x26, 0xaa, 0xa4, + 0x16, 0x45, 0x1f, 0x94, 0xee, 0xde, 0x33, 0x09, 0x2e, 0x48, + 0xc2, 0x4b, 0xf4, 0x62, 0x91, 0x16, 0x00, 0x52, 0x20, 0xe2, + 0xba, 0xe2, 0x35, 0x42, 0xa7, 0xa0, 0x9c, 0x9e, 0xcc, 0x39, + 0x9d, 0x31, 0x00, 0xc3, 0xe0, 0x2a, 0x1f, 0x85, 0x61, 0xd3, + 0x63, 0x3f, 0x22, 0xa8, 0xd9, 0xc1, 0x50, 0x50, 0x2f, 0x21, + 0xb1, 0xd8, 0x49, 0x34, 0xa0, 0xb0, 0x0c, 0x7d, 0xe9, 0x53, + 0x27, 0x09, 0xf9, 0x1b, 0x33, 0x5d, 0x93, 0xb8, 0x48, 0x89, + 0xbb, 0x18, 0x4e, 0xf0, 0x44, 0x86, 0x13, 0x7a, 0x16, 0xc4, + 0x36, 0xc7, 0x24, 0xe2, 0x39, 0x20, 0x20, 0x62, 0xb0, 0xf1, + 0xa0, 0x21, 0xc7, 0x2a, 0xdf, 0xd6, 0xd1, 0x5e, 0xcf, 0xba, + 0x09, 0x92, 0xa4, 0xb7, 0xd6, 0x7b, 0x0b, 0xaa, 0x60, 0xe7, + 0x8c, 0xe2, 0xfb, 0xf8, 0xb1, 0x96, 0x70, 0xc5, 0xf7, 0x3d, + 0x7a, 0xce, 0x13, 0x09, 0x0f, 0xd4, 0x2c, 0xfe, 0x30, 0xdd, + 0xdc, 0x11, 0xb1, 0x4e, 0xab, 0x98, 0x0d, 0x45, 0xf0, 0x41, + 0x9d, 0x0c, 0xd6, 0xa1, 0x8e, 0x5c, 0xf4, 0xdf, 0x93, 0x88, + 0x3f, 0x23, 0x61, 0x23, 0x6e, 0xf4, 0x78, 0xac, 0xfa, 0x00, + 0x00, 0x07, 0x1f, 0x94, 0xe9, 0x13, 0xd3, 0x05, 0x61, 0x99, + 0x22, 0x49, 0xf8, 0x6d, 0xb9, 0xb3, 0x83, 0xa6, 0x70, 0x78, + 0xf3, 0x37, 0x54, 0xdf, 0xb6, 0x82, 0x67, 0x07, 0x3d, 0x66, + 0xea, 0x86, 0x72, 0xd3, 0x38, 0x3b, 0x0a, 0xcd, 0xd5, 0x0e, + 0x00, 0x07, 0x19, 0x6d, 0x92, 0x77, 0x3e, 0x0d, 0xba, 0x66, + 0xa6, 0x8c, 0x8d, 0x48, 0xf2, 0xe2, 0x38, 0x31, 0x7f, 0x71, + 0xf9, 0xe8, 0x6c, 0x46, 0xb1, 0x91, 0xc5, 0x6a, 0xbb, 0x16, + 0x36, 0x44, 0xb3, 0x67, 0x64, 0xcf, 0xee, 0xcc, 0x04, 0x61, + 0x7b, 0x91, 0x7e, 0xcd, 0x47, 0x27, 0x16, 0x0f, 0x04, 0x8f, + 0x02, 0x84, 0x8f, 0x85, 0xb5, 0xb3, 0x5a, 0x81, 0x23, 0xa8, +}; + +static const guint8 pframe2_adv[] = { + 0x1c, 0x22, 0x1f, 0xdc, 0x9d, 0x3b, 0x81, 0x61, 0x85, 0x2, + 0x57, 0xa0, 0x50, 0xac, 0x03, 0x81, 0x0c, 0x39, 0x4f, 0xff, + 0xc2, 0x20, 0x9f, 0xf4, 0x86, 0x16, 0x8e, 0xe1, 0xda, 0x0c, + 0x24, 0x4b, 0x3f, 0xff, 0x03, 0x77, 0xfe, 0x05, 0x10, 0xc5, + 0x81, 0x3a, 0x50, 0x71, 0x4c, 0x56, 0x10, 0xfa, 0x06, 0x82, + 0xaf, 0xfe, 0x19, 0x49, 0x17, 0xb6, 0x42, 0xad, 0xf0, 0xe8, + 0x6f, 0xc0, 0x97, 0xff, 0x83, 0xd0, 0xce, 0x15, 0x16, 0x85, + 0xa6, 0x77, 0x09, 0xb3, 0xe1, 0x88, 0x30, 0xd0, 0x0f, 0x18, + 0x60, 0x40, 0x5f, 0xfe, 0x07, 0x6f, 0x6c, 0x18, 0x09, 0xdf, + 0xc3, 0x00, 0xee, 0x98, 0x39, 0x8b, 0x40, 0xff, 0xf8, 0x64, + 0xfb, 0xae, 0xae, 0x25, 0xc1, 0x61, 0xa1, 0xa1, 0x63, 0x06, + 0xba, 0xb8, 0x9a, 0x00, 0xe6, 0x40, 0x75, 0xff, 0x08, 0xfc, + 0xa2, 0x88, 0xa2, 0xf7, 0xd4, 0x47, 0xe2, 0x8b, 0x20, 0x11, + 0x02, 0xe0, 0xc1, 0x80, 0xdf, 0xe0, 0xff, 0xe2, 0x18, 0xe0, + 0x40, 0x42, 0xe0, 0xc0, 0x82, 0x59, 0x49, 0x9c, 0x4c, 0x60, + 0x95, 0x86, 0x60, 0xff, 0xf8, 0x22, 0x7d, 0x21, 0xa1, 0x62, + 0x60, 0xc0, 0x06, 0x06, 0x30, 0x90, 0xa0, 0xc1, 0xbb, 0xa0, + 0x10, 0x8e, 0xcf, 0xca, 0x17, 0x4f, 0xf0, 0x34, 0xfb, 0x00, + 0x88, 0xe0, 0xa3, 0x07, 0x04, 0x18, 0x30, 0xe2, 0xc8, 0x50, + 0xb4, 0x14, 0xac, 0x12, 0x9d, 0x30, 0xcf, 0xfb, 0x97, 0xeb, + 0x42, 0x14, 0x83, 0x45, 0x30, 0x31, 0x70, 0x4d, 0x14, 0xc5, + 0x10, 0x51, 0x4c, 0x61, 0x21, 0x4f, 0xf8, 0x1d, 0x7f, 0x0c, + 0xf8, 0x30, 0x1e, 0xa3, 0x00, 0x08, 0x0b, 0x15, 0x46, 0x0a, + 0x0a, 0x26, 0x87, 0x02, 0x06, 0x0a, 0xa3, 0x0a, 0x54, 0x18, + 0x62, 0x80, 0x70, 0x3f, 0xf0, 0xcf, 0xe6, 0x0e, 0x1a, 0x82, + 0x34, 0x30, 0x59, 0x14, 0xc6, 0xa3, 0x04, 0x18, 0x70, 0xc1, + 0x82, 0xc6, 0x05, 0x21, 0x27, 0xe0, 0x7f, 0xe1, 0x8d, 0xae, + 0x91, 0x6a, 0x1c, 0x04, 0x30, 0x00, 0xc1, 0xba, 0x90, 0x59, + 0x89, 0xda, 0xd4, 0x61, 0x8b, 0xc1, 0xfe, 0xda, 0x8c, 0x30, + 0xa0, 0x3d, 0xa3, 0x06, 0x0d, 0x01, 0x85, 0x08, 0x6e, 0x16, + 0x04, 0x30, 0x01, 0x30, 0x51, 0x06, 0x15, 0x1a, 0x03, 0xe2, + 0xd5, 0xeb, 0xa1, 0x98, 0x2d, 0x02, 0x97, 0x77, 0x57, 0x16, + 0x05, 0x61, 0x14, 0x92, 0x32, 0x50, 0x01, 0x4c, 0x46, 0x18, + 0x40, 0x97, 0x9a, 0x0a, 0x97, 0x70, 0xaf, 0x84, 0x84, 0xbd, + 0x7a, 0x45, 0x60, 0xa1, 0x14, 0x47, 0x17, 0x06, 0x00, 0x30, + 0x29, 0x44, 0x51, 0x24, 0x60, 0x62, 0x30, 0x15, 0x08, 0x19, + 0xda, 0xa2, 0x32, 0x06, 0x81, 0xf0, 0x0c, 0x30, 0x43, 0xeb, + 0x00, 0x06, 0x40, 0x60, 0x40, 0xb0, 0xe1, 0x68, 0x34, 0x0c, + 0x04, 0x6e, 0x29, 0x08, 0xc3, 0x01, 0x1b, 0x06, 0xe0, 0x00, + 0x37, 0x55, 0x03, 0xdc, 0x0e, 0xea, 0x04, 0xb2, 0xda, 0x09, + 0x21, 0x54, 0x60, 0xa2, 0x5d, 0x86, 0x02, 0x22, 0x81, 0x80, + 0x0b, 0x44, 0x82, 0x3d, 0x04, 0x71, 0x4a, 0x10, 0x11, 0xfc, + 0x61, 0x04, 0xc0, 0x5b, 0x01, 0x00, 0x46, 0x12, 0x07, 0x11, + 0x83, 0x05, 0x31, 0x24, 0x4a, 0x0c, 0x09, 0x04, 0x15, 0x00, + 0xd0, 0xdc, 0x0f, 0xd3, 0xfd, 0xc5, 0x86, 0x38, 0x5f, 0x85, + 0xc0, 0x42, 0xc2, 0x48, 0x61, 0x20, 0x41, 0x62, 0x48, 0xb0, + 0x0a, 0x49, 0x60, 0xb8, 0x96, 0xef, 0xad, 0xba, 0x60, 0x23, + 0x88, 0xa2, 0x39, 0x60, 0xa8, 0x23, 0x86, 0x8d, 0x02, 0x81, + 0x86, 0x18, 0x30, 0x23, 0x13, 0x42, 0xa3, 0x5b, 0x38, 0x14, + 0x20, 0x5a, 0x18, 0x4a, 0xae, 0x68, 0x8d, 0x4a, 0x8c, 0x00, + 0x51, 0x0e, 0x63, 0x18, 0x10, 0x9a, 0x0c, 0x70, 0x41, 0x38, + 0x46, 0x21, 0x18, 0x25, 0x00, 0x50, 0x95, 0xb8, 0x38, 0x75, + 0xe1, 0xab, 0xe8, 0xa2, 0x3f, 0x18, 0x77, 0xb9, 0xc5, 0x81, + 0x86, 0x0b, 0x2a, 0x21, 0x8c, 0x08, 0x2e, 0x2a, 0x0a, 0xa4, + 0x10, 0xd8, 0x58, 0x3e, 0x80, 0x25, 0x09, 0xcf, 0x47, 0x16, + 0xb9, 0x8a, 0x8e, 0x26, 0x0a, 0x76, 0x51, 0x18, 0x80, 0x19, + 0xa8, 0x0c, 0x9e, 0x5f, 0x6f, 0xd8, 0x59, 0xf7, 0x05, 0x13, + 0x14, 0x53, 0x30, 0x40, 0xa5, 0x04, 0x55, 0xb1, 0x00, 0x55, + 0x74, 0xf9, 0x83, 0xd4, 0xf1, 0x37, 0xee, 0x16, 0x32, 0x12, + 0xf4, 0x14, 0xc8, 0x4b, 0x30, 0xd4, 0x02, 0x92, 0x80, 0x61, + 0x02, 0x88, 0x94, 0xbf, 0xf8, 0x18, 0xc3, 0x97, 0xe5, 0x58, + 0xa8, 0x35, 0x98, 0x1a, 0xc1, 0x41, 0xd4, 0x19, 0xc6, 0x18, + 0x48, 0xb0, 0xbf, 0xfc, 0x1c, 0x56, 0x6e, 0x13, 0xcc, 0x04, + 0x4b, 0x07, 0x27, 0x55, 0x2f, 0x7d, 0x44, 0x61, 0x65, 0x3f, + 0xf0, 0xc0, 0xc0, 0xab, 0x89, 0x83, 0x0d, 0x67, 0x16, 0x00, + 0xc8, 0xa1, 0x84, 0x41, 0x95, 0x33, 0xb8, 0x2e, 0x18, 0x25, + 0xff, 0xf8, 0x18, 0x96, 0xa2, 0xc0, 0x18, 0x58, 0x06, 0x3a, + 0xbf, 0xc1, 0x96, 0xed, 0x10, 0xc4, 0x98, 0xc0, 0x46, 0x13, + 0xff, 0xe1, 0x63, 0x03, 0x17, 0x01, 0x6e, 0x74, 0x06, 0x70, + 0x2a, 0x6a, 0xb3, 0x74, 0x07, 0x61, 0x58, 0x2c, 0x2d, 0xbf, + 0xfd, 0x01, 0x42, 0x30, 0x85, 0xfb, 0xc6, 0x1a, 0x0a, 0x14, + 0x2c, 0x5c, 0x08, 0xbc, 0x43, 0x2f, 0xc2, 0x5f, 0x72, 0x8b, + 0x9c, 0x32, 0x06, 0x0a, 0x27, 0x03, 0x50, 0x61, 0x5f, 0x41, + 0x4e, 0x19, 0x83, 0xff, 0xfb, 0x42, 0x3e, 0x6e, 0x34, 0x12, + 0x7f, 0x75, 0x18, 0x04, 0x1f, 0x06, 0x86, 0x7f, 0xf9, 0x44, + 0x97, 0xee, 0x0d, 0xe9, 0xf2, 0x38, 0x3e, 0xf8, 0x37, 0xfe, + 0x98, 0x1c, 0xd6, 0x30, 0x11, 0x2f, 0xff, 0xe0, 0x76, 0x50, + 0x38, 0x5f, 0xfe, 0x70, 0xc4, 0x29, 0x0b, 0x82, 0x2f, 0xff, + 0xe0, 0x62, 0x48, 0xc3, 0x85, 0x10, 0xa1, 0x69, 0x17, 0xfe, + 0x50, 0xc8, 0x5f, 0x4f, 0xff, 0xfc, 0x30, 0xa0, 0x7f, 0xe9, + 0x0c, 0x00, 0xc2, 0x7f, 0xff, 0xf9, 0x0a, 0x82, 0x56, 0x0d, + 0xfe, 0xd0, 0x8e, 0xff, 0xff, 0xfd, 0x04, 0x64, 0x58, 0x5f, + 0xfe, 0x0f, 0xdc, 0x5a, 0xff, 0xff, 0xe0, 0x9c, 0x33, 0xfd, + 0x60, 0x7c, 0x38, 0x0f, 0xff, 0xff, 0x81, 0xf8, 0x1f, 0xfc, + 0x0f, 0x82, 0x7f, 0xff, 0xe8, 0xe5, 0x3c, 0x0f, 0xf7, 0xc0, + 0xf8, 0xc3, 0x17, 0xff, 0xff, 0x13, 0x37, 0xc1, 0xbf, 0xe0, + 0x70, 0xcc, 0xbf, 0xff, 0xf1, 0x85, 0xfc, 0x1f, 0xfe, 0x07, + 0x83, 0x2f, 0xff, 0xff, 0x1b, 0x7c, 0x1f, 0xfd, 0x42, 0x94, + 0x36, 0x9f, 0xff, 0xfc, 0x1f, 0xe0, 0xfd, 0x99, 0x86, 0x02, + 0x1a, 0x29, 0x81, 0x21, 0x7f, 0xff, 0xfc, 0x83, 0x95, 0x85, + 0x11, 0x60, 0x60, 0x22, 0xc8, 0xd0, 0xc2, 0xc4, 0xb5, 0x83, + 0x95, 0x27, 0xa7, 0xff, 0xfc, 0x85, 0x85, 0xb4, 0x47, 0x24, + 0x18, 0x28, 0xaa, 0x1a, 0x23, 0x2a, 0x84, 0xdb, 0xff, 0xff, + 0xf2, 0x63, 0x92, 0xc4, 0xc0, 0x21, 0xc0, 0xc2, 0xc0, 0x00, + 0x82, 0xc6, 0x00, 0x28, 0x89, 0x72, 0xff, 0xff, 0xef, 0x16, + 0x05, 0x11, 0x1c, 0x61, 0x22, 0x38, 0x50, 0xb8, 0x2a, 0xbb, + 0x9c, 0xe7, 0xcf, 0xff, 0xff, 0xe6, 0x30, 0xce, 0x0f, 0xc0, + 0x04, 0x71, 0x1d, 0xff, 0xff, 0xff, 0xfb, 0xb7, 0x07, 0xe1, + 0x21, 0x82, 0xc0, 0x87, 0x6b, 0xb7, 0xff, 0xff, 0xf7, 0x0c, + 0x10, 0xc5, 0x85, 0x40, 0x96, 0x12, 0x58, 0xe1, 0xc1, 0x5d, + 0xff, 0xff, 0xfb, 0x89, 0xcb, 0x84, 0x30, 0x9c, 0x2a, 0xc5, + 0x41, 0x64, 0x5a, 0xee, 0x0d, 0x8a, 0x61, 0x4b, 0xff, 0xff, + 0x0c, 0xc0, 0x86, 0x10, 0x23, 0x8a, 0x42, 0xe3, 0x0a, 0xc0, + 0x23, 0x07, 0x14, 0x6e, 0x2c, 0x09, 0x4e, 0x2c, 0x05, 0x82, + 0x01, 0x02, 0x2f, 0xff, 0xf4, 0x07, 0xb0, 0x8d, 0x02, 0x09, + 0x14, 0x45, 0x81, 0x86, 0xb8, 0x10, 0xb0, 0x27, 0x00, 0x30, + 0xaa, 0x21, 0x85, 0x80, 0x5c, 0x56, 0x2f, 0xff, 0xf0, 0x7a, + 0x0c, 0x01, 0x68, 0x14, 0x08, 0x1a, 0x82, 0x3d, 0xc2, 0xc4, + 0xe0, 0x60, 0xc0, 0x0e, 0x30, 0x10, 0x6f, 0xff, 0xf4, 0x5b, + 0x8b, 0x3e, 0x30, 0x92, 0x70, 0xc1, 0x86, 0x80, 0x48, 0x33, + 0xc0, 0x82, 0xc5, 0x8f, 0xff, 0xf0, 0xb7, 0x88, 0xed, 0xf1, + 0x85, 0x80, 0x7c, 0x1b, 0xa0, 0x9d, 0xff, 0xfe, 0x51, 0x47, + 0x45, 0xff, 0x94, 0x2f, 0x0c, 0x15, 0x46, 0xff, 0xff, 0xd3, + 0x0c, 0x58, 0x67, 0xfe, 0x74, 0x57, 0x11, 0x80, 0xc6, 0x14, + 0xe2, 0xc0, 0xa9, 0xff, 0x9d, 0xd4, 0x34, 0x61, 0xc2, 0x5a, + 0x09, 0x7f, 0xfa, 0x60, 0xc0, 0x80, 0x8c, 0x6e, 0x62, 0x6a, + 0xff, 0xc4, 0x50, 0x3c, 0x86, 0x1a, 0x70, 0x3f, 0xfe, 0x0d, + 0x8b, 0x90, 0xc7, 0x04, 0x10, 0xd7, 0xfe, 0x10, 0x00, 0x28, + 0x82, 0x0b, 0x01, 0xc3, 0x0a, 0x84, 0x7f, 0xfb, 0xc2, 0x36, + 0x10, 0xf3, 0xf5, 0xe1, 0x64, 0x80, 0x88, 0x0e, 0x29, 0x94, + 0x1f, 0xf2, 0x49, 0xcf, 0xc9, 0xe4, 0xf3, 0xf2, 0x79, 0x3c, + 0xfc, 0x9e, 0x4f, 0x3f, 0x27, 0x93, 0xcf, 0xc9, 0xe4, 0xf3, + 0xf2, 0x79, 0x3c, 0xe2, 0x2f, 0xc9, 0xc9, 0x5c, 0x62, 0x09, + 0x32, 0x51, 0x20, 0x69, 0x21, 0xa1, 0x4e, 0xe0, 0x60, 0x79, + 0xcd, 0x39, 0x96, 0x2a, 0x12, 0x65, 0x1b, 0x59, 0x45, 0x60, + 0x94, 0x98, 0x24, 0xd4, 0x4e, 0xc1, 0xf0, 0x48, 0x73, 0xbd, + 0xf8, 0xce, 0xd1, 0x9d, 0x6f, 0x70, 0xcc, 0x91, 0x08, 0xc2, + 0x4e, 0x77, 0x92, 0x21, 0x18, 0x49, 0xd0, 0xf7, 0x47, 0x21, + 0x08, 0xc2, 0x4e, 0x87, 0x92, 0x21, 0x18, 0x48, 0x90, 0xba, + 0x67, 0x43, 0xf2, 0x44, 0x58, 0x24, 0xe7, 0x79, 0x2b, 0xbe, + 0x78, 0xc2, 0x94, 0xbc, 0x90, 0x94, 0x7a, 0x84, 0xc4, 0x82, + 0x71, 0xeb, 0x25, 0xf2, 0x4e, 0xe6, 0x1f, 0x0f, 0x59, 0x08, + 0xb7, 0x41, 0xf1, 0x55, 0xc2, 0x4c, 0x29, 0x7a, 0x09, 0x33, + 0xd9, 0x81, 0x9e, 0x49, 0x9b, 0x2c, 0xf2, 0x79, 0xf9, 0x3c, + 0x9e, 0x7e, 0x4f, 0x27, 0x9f, 0x93, 0xc9, 0xe7, 0xe4, 0xf2, + 0x79, 0xc6, 0x63, 0x3e, 0x73, 0xc8, 0xf2, 0xe7, 0xe4, 0xf2, + 0x79, 0xf9, 0x3c, 0x9e, 0x7e, 0x4f, 0x27, 0x9f, 0x93, 0xc9, + 0xe7, 0xe4, 0xf2, 0x42, 0x4b, 0x35, 0xa2, 0x8b, 0xd5, 0x18, + 0x71, 0xf4, 0x0f, 0xc8, 0x49, 0x92, 0x6d, 0x61, 0xc1, 0x4a, + 0x94, 0x7d, 0x09, 0x15, 0x4c, 0x00, 0x48, 0xa8, 0x78, 0x12, + 0x29, 0xfb, 0x3f, 0x89, 0x82, 0x4d, 0xc3, 0x3a, 0x09, 0x32, + 0x3d, 0xf7, 0x92, 0x2e, 0x2e, 0x9b, 0xbb, 0x11, 0x8d, 0x9a, + 0x3f, 0x68, 0x01, 0x99, 0x0f, 0x21, 0x0a, 0xe6, 0x75, 0x0d, + 0x92, 0x32, 0xc9, 0xfc, 0x08, 0x25, 0xb2, 0xf7, 0xfd, 0xfc, + 0x01, 0xc9, 0x93, 0xc9, 0x6f, 0x08, 0x49, 0x9c, 0xf2, 0x75, + 0x92, 0x76, 0x09, 0x35, 0x26, 0x6f, 0x24, 0x3c, 0x82, 0x40, + 0x12, 0x19, 0xb6, 0x64, 0x27, 0xbf, 0x2d, 0xbb, 0x59, 0x60, + 0x91, 0x54, 0xe3, 0x6f, 0x64, 0x64, 0x99, 0xe4, 0xb3, 0x71, + 0x4c, 0xf2, 0x79, 0xfe, 0x4f, 0x27, 0x9f, 0x93, 0xc9, 0xe7, + 0xe4, 0xf2, 0x79, 0xf9, 0x3c, 0x9e, 0x7e, 0x4f, 0x27, 0x9f, + 0x93, 0xc9, 0xe7, 0xe4, 0xf2, 0x79, 0xf9, 0x3c, 0x9e, 0x7e, + 0x4f, 0x24, 0x24, 0x42, 0xaa, 0xc2, 0x40, 0x93, 0xc7, 0xe1, + 0xa8, 0xc6, 0xd9, 0x84, 0xa5, 0x02, 0xd6, 0x84, 0x8a, 0x76, + 0x0e, 0xc5, 0xec, 0xc7, 0x70, 0x08, 0xa8, 0x70, 0xf8, 0xa5, + 0x45, 0x2e, 0x09, 0x10, 0xef, 0x82, 0x40, 0x43, 0x08, 0x52, + 0x61, 0x86, 0x47, 0x28, 0xb1, 0xb4, 0x5f, 0x96, 0xb7, 0xec, + 0xd8, 0xe6, 0xec, 0xdf, 0x4d, 0xb9, 0x3c, 0x96, 0x6c, 0x2b, + 0x24, 0x42, 0x3d, 0xfa, 0xbc, 0xad, 0xe3, 0xa2, 0x37, 0x62, + 0x15, 0xf7, 0xed, 0xb0, 0xee, 0x4d, 0x5d, 0xf3, 0x81, 0x19, + 0x23, 0x16, 0x81, 0x9b, 0x25, 0x76, 0x65, 0x1d, 0x92, 0xf9, + 0x39, 0xdf, 0x7e, 0x6a, 0x3b, 0x64, 0x8e, 0x4c, 0xc1, 0x7a, + 0xc9, 0x3d, 0x66, 0x68, 0x4d, 0xd9, 0x27, 0x1c, 0x88, 0x74, + 0x24, 0x46, 0x2a, 0x68, 0xa6, 0x72, 0x70, 0x86, 0xac, 0xd0, + 0x46, 0x99, 0x06, 0xdb, 0x25, 0x32, 0x08, 0x7b, 0x2f, 0x04, + 0x5f, 0xb3, 0x9e, 0x4c, 0xfc, 0x9d, 0x94, 0x23, 0x3c, 0x9e, + 0x7f, 0x93, 0xc9, 0xe7, 0xe4, 0xf2, 0x79, 0xf9, 0x3c, 0x9e, + 0x71, 0x07, 0x10, 0x7e, 0x7e, 0x4f, 0x27, 0x9f, 0x93, 0xc9, + 0xe7, 0xe4, 0xf2, 0x79, 0xf9, 0x3c, 0x9e, 0x7e, 0x4f, 0x24, + 0x24, 0x76, 0xa5, 0xca, 0x61, 0xc4, 0x7a, 0x92, 0x3d, 0x0a, + 0x5c, 0x9f, 0xca, 0x47, 0x09, 0x31, 0xa2, 0x52, 0x18, 0xb5, + 0x65, 0x1f, 0x44, 0x65, 0xf6, 0xc2, 0x44, 0x0f, 0x91, 0xb8, + 0x31, 0x21, 0xc2, 0x44, 0x23, 0x70, 0x90, 0xf6, 0xe1, 0x22, + 0x09, 0xfc, 0x00, 0x20, 0x77, 0x61, 0x20, 0xce, 0x3b, 0x45, + 0x9e, 0xb5, 0xa8, 0x01, 0xb0, 0x4d, 0xe3, 0x0e, 0x7e, 0x24, + 0xc3, 0xbd, 0xf8, 0x64, 0x9d, 0xd9, 0x88, 0x6d, 0x93, 0xc9, + 0x66, 0x8b, 0x39, 0x93, 0x57, 0x59, 0xee, 0x4b, 0xe8, 0x4e, + 0xb2, 0x45, 0x2f, 0xb4, 0xe8, 0x64, 0xaf, 0x2d, 0xc0, 0xdf, + 0xb2, 0x4f, 0x31, 0x32, 0x4f, 0x2e, 0x62, 0x83, 0xf5, 0xd0, + 0xa1, 0xf9, 0x3a, 0x97, 0xdf, 0xdf, 0x3d, 0x53, 0x92, 0x32, + 0x5c, 0xc7, 0xb4, 0xcc, 0xc8, 0x71, 0xbd, 0xd9, 0xf9, 0x2c, + 0xf2, 0x79, 0xfe, 0x4f, 0x27, 0x9f, 0x93, 0xc9, 0xe7, 0xe4, + 0xf2, 0x79, 0xf9, 0x3c, 0x9e, 0x73, 0xc8, 0xf2, 0xe7, 0xe4, + 0xf2, 0x79, 0xf9, 0x3c, 0x9e, 0x7e, 0x4f, 0x27, 0x9f, 0x93, + 0xc9, 0xe7, 0x3c, 0xf9, 0x38, 0xd8, 0x8c, 0x8e, 0x98, 0x62, + 0x16, 0x31, 0x3d, 0xa0, 0x73, 0x1f, 0x8a, 0x46, 0x10, 0x0c, + 0x11, 0xcb, 0x2f, 0x57, 0x1d, 0x82, 0x4f, 0x47, 0x64, 0x58, + 0x01, 0x07, 0x07, 0x2c, 0x50, 0xe1, 0x4a, 0xc9, 0x29, 0xa6, + 0xe6, 0x66, 0x13, 0x7d, 0x84, 0x89, 0x3f, 0x00, 0x48, 0x82, + 0x57, 0x10, 0x8f, 0xe5, 0xe5, 0xf7, 0x3e, 0xd6, 0xf3, 0x0c, + 0xb7, 0xe7, 0xc9, 0x8f, 0x3e, 0x4f, 0x6a, 0xfc, 0xf3, 0xd5, + 0xe9, 0x4a, 0x0a, 0x46, 0x52, 0x52, 0x97, 0x88, 0xe5, 0xb8, + 0x7e, 0x1c, 0xdc, 0x58, 0x72, 0xdb, 0xe1, 0xe4, 0x8b, 0x6f, + 0xea, 0x41, 0xa1, 0x03, 0x6f, 0xd0, 0xe6, 0x5d, 0xd1, 0x90, + 0xeb, 0x7d, 0xb6, 0x7e, 0xe8, 0x0e, 0x8e, 0x53, 0xef, 0xe7, + 0xdc, 0x2c, 0x91, 0x96, 0xec, 0x12, 0x28, 0x9b, 0x93, 0xb9, + 0x74, 0xaf, 0x00, 0xd8, 0x90, 0xd5, 0x99, 0x21, 0xe5, 0x9d, + 0x03, 0x5f, 0x5c, 0x95, 0x22, 0x9b, 0x09, 0x38, 0x1e, 0x48, + 0xcf, 0x24, 0x39, 0x4c, 0xcd, 0x8d, 0x64, 0x8e, 0x82, 0x4d +}; + +GST_START_TEST (test_vc1_identify_bdu) +{ + GstVC1ParserResult res; + GstVC1BDU bdu; + GstVC1SeqHdr hdr; + GstVC1EntryPointHdr entrypt; + + res = gst_vc1_identify_next_bdu (sequence_fullframe, + sizeof (sequence_fullframe), &bdu); + + assert_equals_int (res, GST_VC1_PARSER_OK); + assert_equals_int (bdu.type, GST_VC1_SEQUENCE); + + res = gst_vc1_parse_sequence_header (bdu.data + bdu.offset, bdu.size, &hdr); + assert_equals_int (res, GST_VC1_PARSER_OK); + assert_equals_int (hdr.profile, GST_VC1_PROFILE_ADVANCED); + + assert_equals_int (hdr.advanced.level, GST_VC1_LEVEL_L1); + assert_equals_int (hdr.advanced.colordiff_format, 1); + + res = gst_vc1_identify_next_bdu (sequence_fullframe + bdu.sc_offset + + bdu.size, sizeof (sequence_fullframe) - bdu.sc_offset - bdu.size, &bdu); + + fail_unless (res == GST_VC1_PARSER_OK); + fail_unless (bdu.type == GST_VC1_ENTRYPOINT); + + res = gst_vc1_parse_entry_point_header (bdu.data + bdu.offset, + bdu.size, &entrypt, &hdr); + fail_unless (res == GST_VC1_PARSER_OK); +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_p_frame_header_main) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1SeqStructC *structc = &seqhdr.struct_c; + GstVC1PicSimpleMain *pic = &framehdr.pic.simple; + + structc->coded_height = 240; + structc->coded_width = 320; + + assert_equals_int (gst_vc1_parse_sequence_header (pframe_header_main, + sizeof (pframe_header_main), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_MAIN); + + assert_equals_int (structc->frmrtq_postproc, 7); + assert_equals_int (structc->bitrtq_postproc, 2); + assert_equals_int (structc->loop_filter, 1); + assert_equals_int (structc->multires, 0); + assert_equals_int (structc->extended_mv, 0); + assert_equals_int (structc->rangered, 0); + assert_equals_int (structc->vstransform, 1); + assert_equals_int (structc->overlap, 1); + assert_equals_int (structc->syncmarker, 0); + assert_equals_int (structc->dquant, 1); + assert_equals_int (structc->quantizer, 0); + assert_equals_int (structc->maxbframes, 1); + + assert_equals_int (gst_vc1_parse_frame_header (pframe_main, + sizeof (pframe_main), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_P); + assert_equals_int (framehdr.interpfrm, 0); + assert_equals_int (pic->frmcnt, 1); + assert_equals_int (pic->rangeredfrm, 0); + assert_equals_int (framehdr.pqindex, 10); + assert_equals_int (framehdr.pquant, 7); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 0); + +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_b_frame_header_main) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + GstVC1BitPlanes b = { 0, }; + + GstVC1SeqStructC *structc = &seqhdr.struct_c; + GstVC1PicSimpleMain *pic = &framehdr.pic.simple; + + structc->coded_height = 240; + structc->coded_width = 320; + + assert_equals_int (gst_vc1_parse_sequence_header (bframe_header_main, + sizeof (bframe_header_main), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_MAIN); + assert_equals_int (seqhdr.mb_height, 15); + assert_equals_int (seqhdr.mb_width, 20); + + gst_vc1_bitplanes_ensure_size (&b, &seqhdr); + + assert_equals_int (b.size, 315); + + assert_equals_int (structc->frmrtq_postproc, 7); + assert_equals_int (structc->bitrtq_postproc, 3); + assert_equals_int (structc->loop_filter, 1); + assert_equals_int (structc->multires, 0); + assert_equals_int (structc->extended_mv, 0); + assert_equals_int (structc->rangered, 0); + assert_equals_int (structc->vstransform, 1); + assert_equals_int (structc->overlap, 1); + assert_equals_int (structc->syncmarker, 0); + assert_equals_int (structc->dquant, 1); + assert_equals_int (structc->quantizer, 0); + assert_equals_int (structc->maxbframes, 1); + + assert_equals_int (gst_vc1_parse_frame_header (bframe_main, + sizeof (bframe_main), &framehdr, &seqhdr, &b), GST_VC1_PARSER_OK); + + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_B); + assert_equals_int (framehdr.interpfrm, 0); + + assert_equals_int (pic->frmcnt, 2); + assert_equals_int (pic->rangeredfrm, 0); + assert_equals_int (pic->ttmbf, 0); + assert_equals_int (pic->mvtab, 2); + assert_equals_int (pic->cbptab, 1); + assert_equals_int (framehdr.pquant, 7); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 0); + + gst_vc1_bitplanes_free_1 (&b); +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_bi_frame_header_main) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1SeqStructC *structc = &seqhdr.struct_c; + GstVC1PicSimpleMain *pic = &framehdr.pic.simple; + + structc->coded_height = 240; + structc->coded_width = 320; + + assert_equals_int (gst_vc1_parse_sequence_header (i_bi_frame_header, + sizeof (i_bi_frame_header), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_MAIN); + assert_equals_int (structc->frmrtq_postproc, 7); + assert_equals_int (structc->bitrtq_postproc, 7); + assert_equals_int (structc->loop_filter, 1); + assert_equals_int (structc->multires, 0); + assert_equals_int (structc->extended_mv, 0); + assert_equals_int (structc->rangered, 0); + assert_equals_int (structc->vstransform, 1); + assert_equals_int (structc->overlap, 1); + assert_equals_int (structc->syncmarker, 0); + assert_equals_int (structc->dquant, 1); + assert_equals_int (structc->quantizer, 0); + assert_equals_int (structc->maxbframes, 1); + + assert_equals_int (gst_vc1_parse_frame_header (biframe_main, + sizeof (biframe_main), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_BI); + assert_equals_int (framehdr.interpfrm, 0); + + assert_equals_int (pic->frmcnt, 0); + assert_equals_int (pic->rangeredfrm, 0); + assert_equals_int (framehdr.pqindex, 6); + assert_equals_int (framehdr.pquant, 6); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 1); +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_i_frame_header_main) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1SeqStructC *structc = &seqhdr.struct_c; + GstVC1PicSimpleMain *pic = &framehdr.pic.simple; + + structc->coded_height = 240; + structc->coded_width = 320; + + assert_equals_int (gst_vc1_parse_sequence_header (i_bi_frame_header, + sizeof (i_bi_frame_header), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_MAIN); + assert_equals_int (structc->frmrtq_postproc, 7); + assert_equals_int (structc->bitrtq_postproc, 7); + assert_equals_int (structc->loop_filter, 1); + assert_equals_int (structc->multires, 0); + assert_equals_int (structc->extended_mv, 0); + assert_equals_int (structc->rangered, 0); + assert_equals_int (structc->vstransform, 1); + assert_equals_int (structc->overlap, 1); + assert_equals_int (structc->syncmarker, 0); + assert_equals_int (structc->dquant, 1); + assert_equals_int (structc->quantizer, 0); + assert_equals_int (structc->maxbframes, 1); + + assert_equals_int (gst_vc1_parse_frame_header (iframe_main, + sizeof (iframe_main), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_I); + assert_equals_int (framehdr.interpfrm, 0); + + assert_equals_int (pic->frmcnt, 0); + assert_equals_int (pic->rangeredfrm, 0); + assert_equals_int (framehdr.pqindex, 4); + assert_equals_int (framehdr.pquant, 4); + assert_equals_int (framehdr.halfqp, 1); + assert_equals_int (framehdr.pquantizer, 1); +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_i_frame_header_adv) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1AdvancedSeqHdr *advhdr = &seqhdr.advanced; + GstVC1EntryPointHdr *entrypt = &advhdr->entrypoint; + GstVC1PicAdvanced *pic = &framehdr.pic.advanced; + + assert_equals_int (gst_vc1_parse_sequence_header (iframe_adv_hdr, + sizeof (iframe_adv_hdr), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_ADVANCED); + assert_equals_int (advhdr->level, GST_VC1_LEVEL_L3); + assert_equals_int (advhdr->frmrtq_postproc, 7); + assert_equals_int (advhdr->bitrtq_postproc, 31); + assert_equals_int (advhdr->postprocflag, 0); + assert_equals_int (advhdr->max_coded_width, 1920); + assert_equals_int (advhdr->max_coded_height, 1080); + assert_equals_int (advhdr->interlace, 1); + assert_equals_int (advhdr->tfcntrflag, 0); + assert_equals_int (advhdr->finterpflag, 0); + + assert_equals_int (advhdr->display_ext, 1); + assert_equals_int (advhdr->disp_horiz_size, 1920); + assert_equals_int (advhdr->disp_vert_size, 1080); + + assert_equals_int (gst_vc1_parse_entry_point_header (entrypoint, + sizeof (entrypoint), entrypt, &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (entrypt->broken_link, 0); + assert_equals_int (entrypt->closed_entry, 1); + assert_equals_int (entrypt->panscan_flag, 0); + assert_equals_int (entrypt->refdist_flag, 1); + assert_equals_int (entrypt->loopfilter, 1); + assert_equals_int (entrypt->fastuvmc, 0); + assert_equals_int (entrypt->extended_mv, 1); + assert_equals_int (entrypt->dquant, 1); + assert_equals_int (entrypt->vstransform, 1); + assert_equals_int (entrypt->overlap, 0); + assert_equals_int (entrypt->quantizer, 0); + assert_equals_int (entrypt->coded_height, 1080); + assert_equals_int (entrypt->coded_width, 1920); + + assert_equals_int (gst_vc1_parse_frame_header (iframe_adv, + sizeof (iframe_adv), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_I); + assert_equals_int (framehdr.pqindex, 3); + assert_equals_int (framehdr.pquant, 3); + assert_equals_int (framehdr.halfqp, 1); + assert_equals_int (framehdr.pquantizer, 1); + + assert_equals_int (pic->fcm, 0); + assert_equals_int (pic->tff, 1); + assert_equals_int (pic->rff, 0); + assert_equals_int (pic->rndctrl, 0); +} + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_b_frame_header_adv) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1AdvancedSeqHdr *advhdr = &seqhdr.advanced; + GstVC1EntryPointHdr *entrypt = &advhdr->entrypoint; + GstVC1PicAdvanced *pic = &framehdr.pic.advanced; + + assert_equals_int (gst_vc1_parse_sequence_header (iframe_adv_hdr, + sizeof (iframe_adv_hdr), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_ADVANCED); + assert_equals_int (advhdr->level, GST_VC1_LEVEL_L3); + assert_equals_int (advhdr->frmrtq_postproc, 7); + assert_equals_int (advhdr->bitrtq_postproc, 31); + assert_equals_int (advhdr->postprocflag, 0); + assert_equals_int (advhdr->max_coded_width, 1920); + assert_equals_int (advhdr->max_coded_height, 1080); + assert_equals_int (advhdr->interlace, 1); + assert_equals_int (advhdr->tfcntrflag, 0); + assert_equals_int (advhdr->finterpflag, 0); + + assert_equals_int (advhdr->display_ext, 1); + assert_equals_int (advhdr->disp_horiz_size, 1920); + assert_equals_int (advhdr->disp_vert_size, 1080); + + assert_equals_int (gst_vc1_parse_entry_point_header (entrypoint, + sizeof (entrypoint), entrypt, &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (entrypt->broken_link, 0); + assert_equals_int (entrypt->closed_entry, 1); + assert_equals_int (entrypt->panscan_flag, 0); + assert_equals_int (entrypt->refdist_flag, 1); + assert_equals_int (entrypt->loopfilter, 1); + assert_equals_int (entrypt->fastuvmc, 0); + assert_equals_int (entrypt->extended_mv, 1); + assert_equals_int (entrypt->dquant, 1); + assert_equals_int (entrypt->vstransform, 1); + assert_equals_int (entrypt->overlap, 0); + assert_equals_int (entrypt->quantizer, 0); + + assert_equals_int (gst_vc1_parse_frame_header (bframe_adv, + sizeof (bframe_adv), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_B); + assert_equals_int (framehdr.pqindex, 1); + assert_equals_int (framehdr.pquant, 1); + assert_equals_int (framehdr.halfqp, 1); + assert_equals_int (framehdr.pquantizer, 1); + + assert_equals_int (framehdr.vopdquant.dquantfrm, 0); + assert_equals_int (framehdr.transacfrm, 1); + + assert_equals_int (gst_vc1_parse_frame_header (bframe2_adv, + sizeof (bframe2_adv), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_B); + assert_equals_int (framehdr.pqindex, 4); + assert_equals_int (framehdr.pquant, 4); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 1); + assert_equals_int (framehdr.transacfrm, 0); + + assert_equals_int (pic->mvrange, 0); + assert_equals_int (pic->mvmode, 0); +} + + +GST_END_TEST; + +GST_START_TEST (test_vc1_parse_p_frame_header_adv) +{ + GstVC1FrameHdr framehdr; + GstVC1SeqHdr seqhdr; + + GstVC1AdvancedSeqHdr *advhdr = &seqhdr.advanced; + GstVC1EntryPointHdr *entrypt = &advhdr->entrypoint; + GstVC1PicAdvanced *pic = &framehdr.pic.advanced; + + assert_equals_int (gst_vc1_parse_sequence_header (iframe_adv_hdr, + sizeof (iframe_adv_hdr), &seqhdr), GST_VC1_PARSER_OK); + + assert_equals_int (seqhdr.profile, GST_VC1_PROFILE_ADVANCED); + assert_equals_int (advhdr->level, GST_VC1_LEVEL_L3); + assert_equals_int (advhdr->frmrtq_postproc, 7); + assert_equals_int (advhdr->bitrtq_postproc, 31); + assert_equals_int (advhdr->postprocflag, 0); + assert_equals_int (advhdr->max_coded_width, 1920); + assert_equals_int (advhdr->max_coded_height, 1080); + assert_equals_int (advhdr->interlace, 1); + assert_equals_int (advhdr->tfcntrflag, 0); + assert_equals_int (advhdr->finterpflag, 0); + + assert_equals_int (advhdr->display_ext, 1); + assert_equals_int (advhdr->disp_horiz_size, 1920); + assert_equals_int (advhdr->disp_vert_size, 1080); + + assert_equals_int (gst_vc1_parse_entry_point_header (entrypoint, + sizeof (entrypoint), entrypt, &seqhdr), GST_VC1_PARSER_OK); + assert_equals_int (entrypt->broken_link, 0); + assert_equals_int (entrypt->closed_entry, 1); + assert_equals_int (entrypt->panscan_flag, 0); + assert_equals_int (entrypt->refdist_flag, 1); + assert_equals_int (entrypt->loopfilter, 1); + assert_equals_int (entrypt->fastuvmc, 0); + assert_equals_int (entrypt->extended_mv, 1); + assert_equals_int (entrypt->dquant, 1); + assert_equals_int (entrypt->vstransform, 1); + assert_equals_int (entrypt->overlap, 0); + assert_equals_int (entrypt->quantizer, 0); + assert_equals_int (entrypt->coded_height, 1080); + assert_equals_int (entrypt->coded_width, 1920); + + + assert_equals_int (gst_vc1_parse_frame_header (pframe_adv, + sizeof (pframe_adv), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_P); + assert_equals_int (framehdr.pqindex, 1); + assert_equals_int (framehdr.pquant, 1); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 1); + + assert_equals_int (pic->mvmode, 0); + assert_equals_int (pic->mvrange, 0); + + assert_equals_int (gst_vc1_parse_frame_header (pframe2_adv, + sizeof (pframe2_adv), &framehdr, &seqhdr, NULL), GST_VC1_PARSER_OK); + assert_equals_int (framehdr.ptype, GST_VC1_PICTURE_TYPE_P); + assert_equals_int (framehdr.pqindex, 1); + assert_equals_int (framehdr.pquant, 1); + assert_equals_int (framehdr.halfqp, 0); + assert_equals_int (framehdr.pquantizer, 1); + + assert_equals_int (pic->mvmode, 3); + assert_equals_int (pic->mvrange, 0); +} + +GST_END_TEST static Suite * +vc1parser_suite (void) +{ + Suite *s = suite_create ("VC1 Parser library"); + + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_vc1_identify_bdu); + tcase_add_test (tc_chain, test_vc1_parse_p_frame_header_main); + tcase_add_test (tc_chain, test_vc1_parse_b_frame_header_main); + tcase_add_test (tc_chain, test_vc1_parse_bi_frame_header_main); + tcase_add_test (tc_chain, test_vc1_parse_i_frame_header_main); + tcase_add_test (tc_chain, test_vc1_parse_i_frame_header_adv); + tcase_add_test (tc_chain, test_vc1_parse_b_frame_header_adv); + tcase_add_test (tc_chain, test_vc1_parse_p_frame_header_adv); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = vc1parser_suite (); + + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/orc/cog.c b/tests/check/orc/cog.c new file mode 100644 index 0000000..89b3fed --- /dev/null +++ b/tests/check/orc/cog.c @@ -0,0 +1,9718 @@ + +/* autogenerated from gstcogorc.orc */ + +#include +#include +#include +#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 +#include +#include + +/* 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 */ +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; + } + } + +} + +/* cogorc_downsample_horiz_cosite_1tap */ +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; + } + +} + +/* cogorc_downsample_horiz_cosite_3tap */ +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; + } + +} + +/* cogorc_downsample_420_jpeg */ +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; + } + +} + +/* cogorc_downsample_vert_halfsite_2tap */ +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; + } + +} + +/* cogorc_downsample_vert_cosite_3tap */ +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; + } + +} + +/* cogorc_downsample_vert_halfsite_4tap */ +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; + } + +} + +/* cogorc_upsample_horiz_cosite_1tap */ +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; + } + +} + +/* cogorc_upsample_horiz_cosite */ +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; + } + +} + +/* cogorc_upsample_vert_avgub */ +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; + } + +} + +/* orc_unpack_yuyv_y */ +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; + } + +} + +/* orc_unpack_yuyv_u */ +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; + } + +} + +/* orc_unpack_yuyv_v */ +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; + } + +} + +/* orc_pack_yuyv */ +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; + } + +} + +/* orc_unpack_uyvy_y */ +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; + } + +} + +/* orc_unpack_uyvy_u */ +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; + } + +} + +/* orc_unpack_uyvy_v */ +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; + } + +} + +/* orc_pack_uyvy */ +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; + } + +} + +/* orc_addc_convert_u8_s16 */ +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; + } + +} + +/* orc_subc_convert_s16_u8 */ +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; + } + +} + +/* orc_splat_u8_ns */ +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; + } + +} + +/* orc_splat_s16_ns */ +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; + } + +} + +/* orc_matrix2_u8 */ +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; + } + +} + +/* orc_matrix2_11_u8 */ +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; + } + +} + +/* orc_matrix2_12_u8 */ +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; + } + +} + +/* orc_matrix3_u8 */ +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; + } + +} + +/* orc_matrix3_100_u8 */ +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; + } + +} + +/* orc_matrix3_100_offset_u8 */ +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; + } + +} + +/* orc_matrix3_000_u8 */ +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; + } + +} + +/* orc_pack_123x */ +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; + } + +} + +/* orc_pack_x123 */ +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; + } + +} + +/* cogorc_combine2_u8 */ +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; + } + +} + +/* cogorc_combine4_u8 */ +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; + } + +} + +/* cogorc_unpack_axyz_0 */ +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; + } + +} + +/* cogorc_unpack_axyz_1 */ +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; + } + +} + +/* cogorc_unpack_axyz_2 */ +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; + } + +} + +/* cogorc_unpack_axyz_3 */ +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; + } + +} + +/* cogorc_resample_horiz_1tap */ +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; + } + +} + +/* cogorc_resample_horiz_2tap */ +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; + } + +} + +/* cogorc_convert_I420_UYVY */ +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; + } + +} + +/* cogorc_convert_I420_YUY2 */ +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; + } + +} + +/* cogorc_convert_I420_AYUV */ +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; + } + +} + +/* cogorc_convert_YUY2_I420 */ +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; + } + +} + +/* cogorc_convert_UYVY_YUY2 */ +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; + } + } + +} + +/* cogorc_planar_chroma_420_422 */ +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; + } + } + +} + +/* cogorc_planar_chroma_420_444 */ +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; + } + } + +} + +/* cogorc_planar_chroma_422_444 */ +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; + } + } + +} + +/* cogorc_planar_chroma_444_422 */ +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; + } + } + +} + +/* cogorc_planar_chroma_444_420 */ +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; + } + } + +} + +/* cogorc_planar_chroma_422_420 */ +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; + } + } + +} + +/* cogorc_convert_YUY2_AYUV */ +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; + } + } + +} + +/* cogorc_convert_UYVY_AYUV */ +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; + } + } + +} + +/* cogorc_convert_YUY2_Y42B */ +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; + } + } + +} + +/* cogorc_convert_UYVY_Y42B */ +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; + } + } + +} + +/* cogorc_convert_YUY2_Y444 */ +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; + } + } + +} + +/* cogorc_convert_UYVY_Y444 */ +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; + } + } + +} + +/* cogorc_convert_UYVY_I420 */ +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; + } + +} + +/* cogorc_convert_AYUV_I420 */ +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; + } + } + +} + +/* cogorc_convert_AYUV_YUY2 */ +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; + } + } + +} + +/* cogorc_convert_AYUV_UYVY */ +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; + } + } + +} + +/* cogorc_convert_AYUV_Y42B */ +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; + } + } + +} + +/* cogorc_convert_AYUV_Y444 */ +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; + } + } + +} + +/* cogorc_convert_Y42B_YUY2 */ +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; + } + } + +} + +/* cogorc_convert_Y42B_UYVY */ +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; + } + } + +} + +/* cogorc_convert_Y42B_AYUV */ +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; + } + } + +} + +/* cogorc_convert_Y444_YUY2 */ +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; + } + } + +} + +/* cogorc_convert_Y444_UYVY */ +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; + } + } + +} + +/* cogorc_convert_Y444_AYUV */ +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; + } + } + +} + +/* cogorc_convert_AYUV_ARGB */ +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; + } + } + +} + +/* cogorc_convert_AYUV_BGRA */ +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; + } + } + +} + +/* cogorc_convert_AYUV_ABGR */ +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; + } + } + +} + +/* cogorc_convert_AYUV_RGBA */ +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; + } + } + +} + +/* cogorc_convert_I420_BGRA */ +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; + } + +} + +/* cogorc_convert_I420_BGRA_avg */ +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; + } + +} + + +static int quiet = 0; +static int benchmark = 0; + +static void help (const char *argv0) +{ + printf("Usage:\n"); + printf(" %s [OPTION]\n", argv0); + printf("Help Options:\n"); + printf(" -h, --help Show help options\n"); + printf("Application Options:\n"); + printf(" -b, --benchmark Run benchmark and show results\n"); + printf(" -q, --quiet Don't output anything except on failures\n"); + + exit(0); +} + +int +main (int argc, char *argv[]) +{ + int error = FALSE; + int i; + + orc_test_init (); + + for(i=1;i + * Copyright 2011 Nokia Corp. + * + * 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. + */ + +#include + +static GMainLoop *loop; + +static void +message_cb (GstBus * bus, GstMessage * message, gpointer user_data) +{ + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_ERROR: + case GST_MESSAGE_WARNING: + g_assert_not_reached (); + break; + case GST_MESSAGE_EOS: + g_main_loop_quit (loop); + break; + case GST_MESSAGE_ELEMENT: + { + const GstStructure *s = gst_message_get_structure (message); + const gchar *name = gst_structure_get_name (s); + + fail_unless (strcmp (name, "delta") == 0); + break; + } + default: + break; + } +} + +/* compare output with ffmpegcolorspace */ +static void +colorspace_compare (gint width, gint height, gboolean comp) +{ + GstBus *bus; + GstElement *pipeline, *src, *filter1, *filter2, *csp, *fcsp, *fakesink; + GstElement *queue1, *queue2, *tee, *compare; + GstCaps *caps, *tcaps, *rcaps, *fcaps; + const GstCaps *ccaps; + GstPad *pad; + + gint i, j; + + /* create elements */ + pipeline = gst_pipeline_new ("pipeline"); + src = gst_element_factory_make ("videotestsrc", "videotestsrc"); + fail_unless (src != NULL); + filter1 = gst_element_factory_make ("capsfilter", "capsfilter1"); + fail_unless (filter1 != NULL); + csp = gst_element_factory_make ("colorspace", "colorspace"); + fail_unless (csp != NULL); + filter2 = gst_element_factory_make ("capsfilter", "capsfilter2"); + fail_unless (filter2 != NULL); + + if (comp) { + fcsp = gst_element_factory_make ("ffmpegcolorspace", "ffmpegcolorspace"); + fail_unless (fcsp != NULL); + tee = gst_element_factory_make ("tee", "tee"); + fail_unless (tee != NULL); + queue1 = gst_element_factory_make ("queue", "queue1"); + fail_unless (queue1 != NULL); + queue2 = gst_element_factory_make ("queue", "queue2"); + fail_unless (queue2 != NULL); + compare = gst_element_factory_make ("compare", "compare"); + fail_unless (compare != NULL); + } else { + fcsp = tee = queue1 = queue2 = compare = NULL; + } + + fakesink = gst_element_factory_make ("fakesink", "fakesink"); + fail_unless (fakesink != NULL); + + /* add and link */ + gst_bin_add_many (GST_BIN (pipeline), src, filter1, filter2, csp, fakesink, + tee, queue1, queue2, fcsp, compare, NULL); + + fail_unless (gst_element_link (src, filter1)); + + if (comp) { + fail_unless (gst_element_link (filter1, tee)); + + fail_unless (gst_element_link (tee, queue1)); + fail_unless (gst_element_link (queue1, fcsp)); + fail_unless (gst_element_link_pads (fcsp, NULL, compare, "sink")); + + fail_unless (gst_element_link (tee, queue2)); + fail_unless (gst_element_link (queue2, csp)); + fail_unless (gst_element_link_pads (csp, NULL, compare, "check")); + + fail_unless (gst_element_link (compare, filter2)); + } else { + fail_unless (gst_element_link (filter1, csp)); + fail_unless (gst_element_link (csp, filter2)); + } + fail_unless (gst_element_link (filter2, fakesink)); + + /* obtain possible caps combinations */ + if (comp) { + pad = gst_element_get_static_pad (fcsp, "sink"); + fail_unless (pad != NULL); + ccaps = gst_pad_get_pad_template_caps (pad); + fail_unless (ccaps != NULL); + fcaps = gst_caps_copy (ccaps); + gst_object_unref (pad); + } else { + fcaps = gst_caps_new_any (); + } + + pad = gst_element_get_static_pad (csp, "sink"); + fail_unless (pad != NULL); + ccaps = gst_pad_get_pad_template_caps (pad); + fail_unless (ccaps != NULL); + gst_object_unref (pad); + + /* handle videotestsrc limitations */ + pad = gst_element_get_static_pad (src, "src"); + fail_unless (pad != NULL); + caps = (GstCaps *) gst_pad_get_pad_template_caps (pad); + fail_unless (caps != NULL); + gst_object_unref (pad); + + rcaps = gst_caps_new_simple ("video/x-raw-yuv", + "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, + "framerate", GST_TYPE_FRACTION, 25, 1, + "color-matrix", G_TYPE_STRING, "sdtv", + "chroma-site", G_TYPE_STRING, "mpeg2", NULL); + gst_caps_append (rcaps, gst_caps_new_simple ("video/x-raw-rgb", + "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, + "framerate", GST_TYPE_FRACTION, 25, 1, + "depth", G_TYPE_INT, 32, NULL)); + + /* FIXME also allow x-raw-gray if/when colorspace actually handles those */ + + /* limit to supported compare types */ + if (comp) { + gst_caps_append (rcaps, gst_caps_new_simple ("video/x-raw-rgb", + "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, + "framerate", GST_TYPE_FRACTION, 25, 1, + "depth", G_TYPE_INT, 24, NULL)); + } + + tcaps = gst_caps_intersect (fcaps, ccaps); + gst_caps_unref (fcaps); + caps = gst_caps_intersect (tcaps, caps); + gst_caps_unref (tcaps); + tcaps = caps; + caps = gst_caps_intersect (tcaps, rcaps); + gst_caps_unref (tcaps); + gst_caps_unref (rcaps); + + /* normalize to finally have a list of acceptable fixed formats */ + gst_caps_do_simplify (caps); + tcaps = caps; + caps = gst_caps_normalize (tcaps); + gst_caps_unref (tcaps); + + /* set up for running stuff */ + loop = g_main_loop_new (NULL, FALSE); + bus = gst_element_get_bus (pipeline); + gst_bus_add_signal_watch (bus); + g_signal_connect (bus, "message::eos", (GCallback) message_cb, NULL); + gst_object_unref (bus); + + g_object_set (src, "num-buffers", 5, NULL); + if (comp) { + /* set lower bound for ssim comparison, and allow slightly different caps */ + g_object_set (compare, "method", 2, NULL); + g_object_set (compare, "meta", 3, NULL); + g_object_set (compare, "threshold", 0.90, NULL); + g_object_set (compare, "upper", FALSE, NULL); + } + + GST_INFO ("possible caps to check %d", gst_caps_get_size (caps)); + + /* loop over all input and output combinations */ + for (i = 0; i < gst_caps_get_size (caps); i++) { + for (j = 0; j < gst_caps_get_size (caps); j++) { + GstCaps *in_caps, *out_caps; + GstStructure *s; + guint32 fourcc; + + in_caps = gst_caps_copy_nth (caps, i); + out_caps = gst_caps_copy_nth (caps, j); + + /* FIXME remove if videotestsrc and video format handle these properly */ + s = gst_caps_get_structure (in_caps, 0); + if (gst_structure_get_fourcc (s, "format", &fourcc)) { + if (fourcc == GST_MAKE_FOURCC ('Y', 'U', 'V', '9') || + fourcc == GST_MAKE_FOURCC ('Y', 'V', 'U', '9') || + fourcc == GST_MAKE_FOURCC ('v', '2', '1', '6')) { + gst_caps_unref (in_caps); + gst_caps_unref (out_caps); + continue; + } + } + + GST_INFO ("checking conversion from %" GST_PTR_FORMAT " (%d)" + " to %" GST_PTR_FORMAT " (%d)", in_caps, i, out_caps, j); + + g_object_set (filter1, "caps", in_caps, NULL); + g_object_set (filter2, "caps", out_caps, NULL); + + fail_unless (gst_element_set_state (pipeline, GST_STATE_PLAYING) + != GST_STATE_CHANGE_FAILURE); + + g_main_loop_run (loop); + + fail_unless (gst_element_set_state (pipeline, GST_STATE_NULL) + == GST_STATE_CHANGE_SUCCESS); + + gst_caps_unref (in_caps); + gst_caps_unref (out_caps); + } + } + + gst_caps_unref (caps); + gst_object_unref (pipeline); + g_main_loop_unref (loop); +} + +#define WIDTH 176 +#define HEIGHT 120 + +GST_START_TEST (test_colorspace_compare) +{ + colorspace_compare (WIDTH, HEIGHT, TRUE); +} + +GST_END_TEST; + +/* enable if you like stuff (ffmpegcolorspace) crashing */ +#ifdef TEST_ODD + +GST_START_TEST (test_colorspace_compare_odd_height) +{ + colorspace_compare (WIDTH, HEIGHT + 1, TRUE); +} + +GST_END_TEST; + +GST_START_TEST (test_colorspace_compare_odd_width) +{ + colorspace_compare (WIDTH + 1, HEIGHT, TRUE); +} + +GST_END_TEST; + +GST_START_TEST (test_colorspace_compare_odd) +{ + colorspace_compare (WIDTH + 1, HEIGHT + 1, TRUE); +} + +GST_END_TEST; + +#endif + +/* useful for crash and valgrind check */ + +GST_START_TEST (test_colorspace) +{ + colorspace_compare (WIDTH + 1, HEIGHT + 1, FALSE); +} + +GST_END_TEST; + +static Suite * +colorspace_suite (void) +{ + Suite *s = suite_create ("colorspace"); + TCase *tc_chain; + + tc_chain = tcase_create ("colorspace_compare"); + tcase_add_test (tc_chain, test_colorspace_compare); +#ifdef TEST_ODD + tcase_add_test (tc_chain, test_colorspace_compare_odd_height); + tcase_add_test (tc_chain, test_colorspace_compare_odd_width); + tcase_add_test (tc_chain, test_colorspace_compare_odd); +#endif + tcase_add_test (tc_chain, test_colorspace); + suite_add_tcase (s, tc_chain); + + /* test may take some time */ + tcase_set_timeout (tc_chain, 600); + + return s; +} + +GST_CHECK_MAIN (colorspace) diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am index 26833fb..5183dfe 100644 --- a/tests/examples/Makefile.am +++ b/tests/examples/Makefile.am @@ -10,13 +10,9 @@ else DIRECTFB_DIR= endif -if BUILD_EXPERIMENTAL -CAMERABIN2=camerabin2 -else -CAMERABIN2= -endif +OPENCV_EXAMPLES=opencv -SUBDIRS= $(DIRECTFB_DIR) $(GTK_EXAMPLES) -DIST_SUBDIRS= camerabin camerabin2 directfb mxf scaletempo +SUBDIRS= $(DIRECTFB_DIR) $(GTK_EXAMPLES) $(OPENCV_EXAMPLES) +DIST_SUBDIRS= camerabin camerabin2 directfb mxf scaletempo opencv include $(top_srcdir)/common/parallel-subdirs.mak diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in index 61b25ee..f8a3522 100644 --- a/tests/examples/Makefile.in +++ b/tests/examples/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -45,6 +45,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -82,11 +83,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -134,7 +135,6 @@ 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@ @@ -152,7 +152,6 @@ 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@ @@ -187,6 +186,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -226,6 +226,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -243,6 +244,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -251,13 +253,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -282,13 +287,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -336,6 +342,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -367,8 +374,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -392,6 +403,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -416,10 +429,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -431,6 +448,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -455,6 +476,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -490,7 +512,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -515,10 +536,9 @@ top_srcdir = @top_srcdir@ @HAVE_GTK_TRUE@GTK_EXAMPLES = camerabin mxf scaletempo camerabin2 @USE_DIRECTFB_FALSE@DIRECTFB_DIR = @USE_DIRECTFB_TRUE@DIRECTFB_DIR = directfb -@BUILD_EXPERIMENTAL_FALSE@CAMERABIN2 = -@BUILD_EXPERIMENTAL_TRUE@CAMERABIN2 = camerabin2 -SUBDIRS = $(DIRECTFB_DIR) $(GTK_EXAMPLES) -DIST_SUBDIRS = camerabin camerabin2 directfb mxf scaletempo +OPENCV_EXAMPLES = opencv +SUBDIRS = $(DIRECTFB_DIR) $(GTK_EXAMPLES) $(OPENCV_EXAMPLES) +DIST_SUBDIRS = camerabin camerabin2 directfb mxf scaletempo opencv all: all-recursive .SUFFIXES: @@ -543,6 +563,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -767,10 +788,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/camerabin/Makefile.in b/tests/examples/camerabin/Makefile.in index b281fc9..c80a3a7 100644 --- a/tests/examples/camerabin/Makefile.in +++ b/tests/examples/camerabin/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -91,8 +92,8 @@ am__DEPENDENCIES_1 = @HAVE_GTK_TRUE@gst_camera_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ @HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent gst_camera_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gst_camera_CFLAGS) \ @@ -125,21 +126,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(gst_camera_SOURCES) $(gst_camera_perf_SOURCES) \ $(gst_camerabin_test_SOURCES) @@ -154,7 +155,6 @@ 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@ @@ -172,7 +172,6 @@ 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@ @@ -207,6 +206,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -246,6 +246,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,6 +264,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -271,13 +273,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -302,13 +307,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -356,6 +362,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -387,8 +394,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -412,6 +423,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -436,10 +449,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -451,6 +468,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -475,6 +496,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -510,7 +532,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -610,13 +631,13 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -gst-camera$(EXEEXT): $(gst_camera_OBJECTS) $(gst_camera_DEPENDENCIES) +gst-camera$(EXEEXT): $(gst_camera_OBJECTS) $(gst_camera_DEPENDENCIES) $(EXTRA_gst_camera_DEPENDENCIES) @rm -f gst-camera$(EXEEXT) $(AM_V_CCLD)$(gst_camera_LINK) $(gst_camera_OBJECTS) $(gst_camera_LDADD) $(LIBS) -gst-camera-perf$(EXEEXT): $(gst_camera_perf_OBJECTS) $(gst_camera_perf_DEPENDENCIES) +gst-camera-perf$(EXEEXT): $(gst_camera_perf_OBJECTS) $(gst_camera_perf_DEPENDENCIES) $(EXTRA_gst_camera_perf_DEPENDENCIES) @rm -f gst-camera-perf$(EXEEXT) $(AM_V_CCLD)$(gst_camera_perf_LINK) $(gst_camera_perf_OBJECTS) $(gst_camera_perf_LDADD) $(LIBS) -gst-camerabin-test$(EXEEXT): $(gst_camerabin_test_OBJECTS) $(gst_camerabin_test_DEPENDENCIES) +gst-camerabin-test$(EXEEXT): $(gst_camerabin_test_OBJECTS) $(gst_camerabin_test_DEPENDENCIES) $(EXTRA_gst_camerabin_test_DEPENDENCIES) @rm -f gst-camerabin-test$(EXEEXT) $(AM_V_CCLD)$(gst_camerabin_test_LINK) $(gst_camerabin_test_OBJECTS) $(gst_camerabin_test_LDADD) $(LIBS) @@ -633,74 +654,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gst_camera-gst-camera.o: gst-camera.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_CFLAGS) $(CFLAGS) -MT gst_camera-gst-camera.o -MD -MP -MF $(DEPDIR)/gst_camera-gst-camera.Tpo -c -o gst_camera-gst-camera.o `test -f 'gst-camera.c' || echo '$(srcdir)/'`gst-camera.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera-gst-camera.Tpo $(DEPDIR)/gst_camera-gst-camera.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera.c' object='gst_camera-gst-camera.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera.c' object='gst_camera-gst-camera.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) $(gst_camera_CFLAGS) $(CFLAGS) -c -o gst_camera-gst-camera.o `test -f 'gst-camera.c' || echo '$(srcdir)/'`gst-camera.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_CFLAGS) $(CFLAGS) -c -o gst_camera-gst-camera.o `test -f 'gst-camera.c' || echo '$(srcdir)/'`gst-camera.c gst_camera-gst-camera.obj: gst-camera.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_CFLAGS) $(CFLAGS) -MT gst_camera-gst-camera.obj -MD -MP -MF $(DEPDIR)/gst_camera-gst-camera.Tpo -c -o gst_camera-gst-camera.obj `if test -f 'gst-camera.c'; then $(CYGPATH_W) 'gst-camera.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera-gst-camera.Tpo $(DEPDIR)/gst_camera-gst-camera.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera.c' object='gst_camera-gst-camera.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera.c' object='gst_camera-gst-camera.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) $(gst_camera_CFLAGS) $(CFLAGS) -c -o gst_camera-gst-camera.obj `if test -f 'gst-camera.c'; then $(CYGPATH_W) 'gst-camera.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_CFLAGS) $(CFLAGS) -c -o gst_camera-gst-camera.obj `if test -f 'gst-camera.c'; then $(CYGPATH_W) 'gst-camera.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera.c'; fi` gst_camera_perf-gst-camera-perf.o: gst-camera-perf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_perf_CFLAGS) $(CFLAGS) -MT gst_camera_perf-gst-camera-perf.o -MD -MP -MF $(DEPDIR)/gst_camera_perf-gst-camera-perf.Tpo -c -o gst_camera_perf-gst-camera-perf.o `test -f 'gst-camera-perf.c' || echo '$(srcdir)/'`gst-camera-perf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera_perf-gst-camera-perf.Tpo $(DEPDIR)/gst_camera_perf-gst-camera-perf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera-perf.c' object='gst_camera_perf-gst-camera-perf.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera-perf.c' object='gst_camera_perf-gst-camera-perf.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) $(gst_camera_perf_CFLAGS) $(CFLAGS) -c -o gst_camera_perf-gst-camera-perf.o `test -f 'gst-camera-perf.c' || echo '$(srcdir)/'`gst-camera-perf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_perf_CFLAGS) $(CFLAGS) -c -o gst_camera_perf-gst-camera-perf.o `test -f 'gst-camera-perf.c' || echo '$(srcdir)/'`gst-camera-perf.c gst_camera_perf-gst-camera-perf.obj: gst-camera-perf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_perf_CFLAGS) $(CFLAGS) -MT gst_camera_perf-gst-camera-perf.obj -MD -MP -MF $(DEPDIR)/gst_camera_perf-gst-camera-perf.Tpo -c -o gst_camera_perf-gst-camera-perf.obj `if test -f 'gst-camera-perf.c'; then $(CYGPATH_W) 'gst-camera-perf.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera-perf.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera_perf-gst-camera-perf.Tpo $(DEPDIR)/gst_camera_perf-gst-camera-perf.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera-perf.c' object='gst_camera_perf-gst-camera-perf.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera-perf.c' object='gst_camera_perf-gst-camera-perf.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) $(gst_camera_perf_CFLAGS) $(CFLAGS) -c -o gst_camera_perf-gst-camera-perf.obj `if test -f 'gst-camera-perf.c'; then $(CYGPATH_W) 'gst-camera-perf.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera-perf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera_perf_CFLAGS) $(CFLAGS) -c -o gst_camera_perf-gst-camera-perf.obj `if test -f 'gst-camera-perf.c'; then $(CYGPATH_W) 'gst-camera-perf.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera-perf.c'; fi` gst_camerabin_test-gst-camerabin-test.o: gst-camerabin-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -MT gst_camerabin_test-gst-camerabin-test.o -MD -MP -MF $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Tpo -c -o gst_camerabin_test-gst-camerabin-test.o `test -f 'gst-camerabin-test.c' || echo '$(srcdir)/'`gst-camerabin-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Tpo $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camerabin-test.c' object='gst_camerabin_test-gst-camerabin-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camerabin-test.c' object='gst_camerabin_test-gst-camerabin-test.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) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin_test-gst-camerabin-test.o `test -f 'gst-camerabin-test.c' || echo '$(srcdir)/'`gst-camerabin-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin_test-gst-camerabin-test.o `test -f 'gst-camerabin-test.c' || echo '$(srcdir)/'`gst-camerabin-test.c gst_camerabin_test-gst-camerabin-test.obj: gst-camerabin-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -MT gst_camerabin_test-gst-camerabin-test.obj -MD -MP -MF $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Tpo -c -o gst_camerabin_test-gst-camerabin-test.obj `if test -f 'gst-camerabin-test.c'; then $(CYGPATH_W) 'gst-camerabin-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Tpo $(DEPDIR)/gst_camerabin_test-gst-camerabin-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camerabin-test.c' object='gst_camerabin_test-gst-camerabin-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camerabin-test.c' object='gst_camerabin_test-gst-camerabin-test.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) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin_test-gst-camerabin-test.obj `if test -f 'gst-camerabin-test.c'; then $(CYGPATH_W) 'gst-camerabin-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin_test-gst-camerabin-test.obj `if test -f 'gst-camerabin-test.c'; then $(CYGPATH_W) 'gst-camerabin-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin-test.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -804,10 +816,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/camerabin/gst-camera-perf.c b/tests/examples/camerabin/gst-camera-perf.c index bb37cee..c5554a0 100644 --- a/tests/examples/camerabin/gst-camera-perf.c +++ b/tests/examples/camerabin/gst-camera-perf.c @@ -44,7 +44,7 @@ * Includes */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif /* save the snapshot images @@ -300,8 +300,6 @@ img_capture_done (GstElement * camera, GString * fname, gpointer user_data) GstClockTime max = 0; GstClockTime min = -1; GstClockTime total = 0; - GstClockTime first_shot = 0; - GstClockTime snd_shot = 0; num_pics_cont = 0; signal_cont = FALSE; @@ -309,13 +307,11 @@ img_capture_done (GstElement * camera, GString * fname, gpointer user_data) DIFF_TIME (t_final[0], t_initial, diff); max < diff ? max = diff : max; min > diff ? min = diff : min; - first_shot = diff; total += diff; DIFF_TIME (t_final[1], t_final[0], diff); max < diff ? max = diff : max; min > diff ? min = diff : min; - snd_shot = diff; total += diff; for (i = 2; i < CONT_SHOTS; ++i) { diff --git a/tests/examples/camerabin/gst-camera.c b/tests/examples/camerabin/gst-camera.c index 57ff706..80a3121 100644 --- a/tests/examples/camerabin/gst-camera.c +++ b/tests/examples/camerabin/gst-camera.c @@ -276,7 +276,7 @@ my_bus_sync_callback (GstBus * bus, GstMessage * message, gpointer data) /* FIXME: make sure to get XID in main thread */ gst_x_overlay_set_window_handle (GST_X_OVERLAY (message->src), #if GTK_CHECK_VERSION (2, 91, 6) - GDK_WINDOW_XID (gtk_widget_get_window (ui_drawing)); + GDK_WINDOW_XID (gtk_widget_get_window (ui_drawing))); #else GDK_WINDOW_XWINDOW (gtk_widget_get_window (ui_drawing))); #endif diff --git a/tests/examples/camerabin/gst-camerabin-test.c b/tests/examples/camerabin/gst-camerabin-test.c index 73399e5..27037fa 100644 --- a/tests/examples/camerabin/gst-camerabin-test.c +++ b/tests/examples/camerabin/gst-camerabin-test.c @@ -61,6 +61,7 @@ --video-enc Video encoder used in video recording --image-enc Image encoder used in still capture --image-pp Image post-processing element + --image-formatter Image metadata formatter element --video-mux Muxer used in video recording --viewfinder-sink Viewfinder sink (default = fakesink) --image-width Width for image capture @@ -126,6 +127,7 @@ static gchar *audioenc_name = NULL; static gchar *videoenc_name = NULL; static gchar *imageenc_name = NULL; static gchar *imagepp_name = NULL; +static gchar *imageformatter_name = NULL; static gchar *videomux_name = NULL; static gchar *vfsink_name = NULL; static gchar *src_csp = NULL; @@ -514,6 +516,7 @@ setup_pipeline (void) res &= setup_pipeline_element ("video-encoder", videoenc_name, NULL); res &= setup_pipeline_element ("image-encoder", imageenc_name, &ienc); + res &= setup_pipeline_element ("image-formatter", imageformatter_name, NULL); res &= setup_pipeline_element ("video-muxer", videomux_name, &vmux); if (!res) { goto error; @@ -747,6 +750,8 @@ main (int argc, char *argv[]) "Image encoder used in still capture", NULL}, {"image-pp", '\0', 0, G_OPTION_ARG_STRING, &imagepp_name, "List of image post-processing elements separated with comma", NULL}, + {"image-formatter", '\0', 0, G_OPTION_ARG_STRING, &imageformatter_name, + "Image metadata formatter used in still image capture", NULL}, {"video-mux", '\0', 0, G_OPTION_ARG_STRING, &videomux_name, "Muxer used in video recording", NULL}, {"viewfinder-sink", '\0', 0, G_OPTION_ARG_STRING, &vfsink_name, @@ -829,6 +834,7 @@ main (int argc, char *argv[]) g_free (audioenc_name); g_free (videoenc_name); g_free (imageenc_name); + g_free (imageformatter_name); g_free (imagepp_name); g_free (videomux_name); g_free (vfsink_name); diff --git a/tests/examples/camerabin2/Makefile.am b/tests/examples/camerabin2/Makefile.am index b5a0064..4431e94 100644 --- a/tests/examples/camerabin2/Makefile.am +++ b/tests/examples/camerabin2/Makefile.am @@ -15,6 +15,7 @@ gst_camera2_LDADD = \ $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ $(GST_PLUGINS_BASE_LIBS) \ -lgstinterfaces-@GST_MAJORMINOR@ \ + -lgstpbutils-@GST_MAJORMINOR@ \ $(GST_LIBS) \ $(GTK_LIBS) \ $(GMODULE_EXPORT_LIBS) @@ -38,6 +39,8 @@ gst_camerabin2_test_LDADD = \ $(GST_PLUGINS_BASE_LIBS) \ -lgstinterfaces-@GST_MAJORMINOR@ \ -lgstpbutils-@GST_MAJORMINOR@ \ + -lgstvideo-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(X11_LIBS) diff --git a/tests/examples/camerabin2/Makefile.in b/tests/examples/camerabin2/Makefile.in index 719af7d..3849e73 100644 --- a/tests/examples/camerabin2/Makefile.in +++ b/tests/examples/camerabin2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -42,6 +42,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -90,8 +91,8 @@ am__DEPENDENCIES_1 = @HAVE_GTK_TRUE@gst_camera2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ @HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent gst_camera2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gst_camera2_CFLAGS) \ @@ -101,7 +102,7 @@ am__gst_camerabin2_test_SOURCES_DIST = gst-camerabin2-test.c gst_camerabin2_test_OBJECTS = $(am_gst_camerabin2_test_OBJECTS) @HAVE_X11_TRUE@gst_camerabin2_test_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ @HAVE_X11_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ -@HAVE_X11_TRUE@ $(am__DEPENDENCIES_1) +@HAVE_X11_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) gst_camerabin2_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(gst_camerabin2_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -116,21 +117,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(gst_camera2_SOURCES) $(gst_camerabin2_test_SOURCES) DIST_SOURCES = $(am__gst_camera2_SOURCES_DIST) \ @@ -143,7 +144,6 @@ 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@ @@ -161,7 +161,6 @@ 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@ @@ -196,6 +195,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -235,6 +235,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -252,6 +253,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -260,13 +262,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -291,13 +296,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -345,6 +351,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -376,8 +383,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -401,6 +412,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -425,10 +438,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -440,6 +457,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -464,6 +485,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -499,7 +521,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -535,6 +556,7 @@ GST_CAMERABIN_UI_FILES = gst-camera2.ui @HAVE_GTK_TRUE@ $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la \ @HAVE_GTK_TRUE@ $(GST_PLUGINS_BASE_LIBS) \ @HAVE_GTK_TRUE@ -lgstinterfaces-@GST_MAJORMINOR@ \ +@HAVE_GTK_TRUE@ -lgstpbutils-@GST_MAJORMINOR@ \ @HAVE_GTK_TRUE@ $(GST_LIBS) \ @HAVE_GTK_TRUE@ $(GTK_LIBS) \ @HAVE_GTK_TRUE@ $(GMODULE_EXPORT_LIBS) @@ -550,6 +572,8 @@ GST_CAMERABIN_UI_FILES = gst-camera2.ui @HAVE_X11_TRUE@ $(GST_PLUGINS_BASE_LIBS) \ @HAVE_X11_TRUE@ -lgstinterfaces-@GST_MAJORMINOR@ \ @HAVE_X11_TRUE@ -lgstpbutils-@GST_MAJORMINOR@ \ +@HAVE_X11_TRUE@ -lgstvideo-@GST_MAJORMINOR@ \ +@HAVE_X11_TRUE@ $(GST_BASE_LIBS) \ @HAVE_X11_TRUE@ $(GST_LIBS) \ @HAVE_X11_TRUE@ $(X11_LIBS) @@ -597,10 +621,10 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -gst-camera2$(EXEEXT): $(gst_camera2_OBJECTS) $(gst_camera2_DEPENDENCIES) +gst-camera2$(EXEEXT): $(gst_camera2_OBJECTS) $(gst_camera2_DEPENDENCIES) $(EXTRA_gst_camera2_DEPENDENCIES) @rm -f gst-camera2$(EXEEXT) $(AM_V_CCLD)$(gst_camera2_LINK) $(gst_camera2_OBJECTS) $(gst_camera2_LDADD) $(LIBS) -gst-camerabin2-test$(EXEEXT): $(gst_camerabin2_test_OBJECTS) $(gst_camerabin2_test_DEPENDENCIES) +gst-camerabin2-test$(EXEEXT): $(gst_camerabin2_test_OBJECTS) $(gst_camerabin2_test_DEPENDENCIES) $(EXTRA_gst_camerabin2_test_DEPENDENCIES) @rm -f gst-camerabin2-test$(EXEEXT) $(AM_V_CCLD)$(gst_camerabin2_test_LINK) $(gst_camerabin2_test_OBJECTS) $(gst_camerabin2_test_LDADD) $(LIBS) @@ -616,58 +640,51 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gst_camera2-gst-camera2.o: gst-camera2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera2_CFLAGS) $(CFLAGS) -MT gst_camera2-gst-camera2.o -MD -MP -MF $(DEPDIR)/gst_camera2-gst-camera2.Tpo -c -o gst_camera2-gst-camera2.o `test -f 'gst-camera2.c' || echo '$(srcdir)/'`gst-camera2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera2-gst-camera2.Tpo $(DEPDIR)/gst_camera2-gst-camera2.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera2.c' object='gst_camera2-gst-camera2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera2.c' object='gst_camera2-gst-camera2.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) $(gst_camera2_CFLAGS) $(CFLAGS) -c -o gst_camera2-gst-camera2.o `test -f 'gst-camera2.c' || echo '$(srcdir)/'`gst-camera2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera2_CFLAGS) $(CFLAGS) -c -o gst_camera2-gst-camera2.o `test -f 'gst-camera2.c' || echo '$(srcdir)/'`gst-camera2.c gst_camera2-gst-camera2.obj: gst-camera2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera2_CFLAGS) $(CFLAGS) -MT gst_camera2-gst-camera2.obj -MD -MP -MF $(DEPDIR)/gst_camera2-gst-camera2.Tpo -c -o gst_camera2-gst-camera2.obj `if test -f 'gst-camera2.c'; then $(CYGPATH_W) 'gst-camera2.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera2.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camera2-gst-camera2.Tpo $(DEPDIR)/gst_camera2-gst-camera2.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camera2.c' object='gst_camera2-gst-camera2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camera2.c' object='gst_camera2-gst-camera2.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) $(gst_camera2_CFLAGS) $(CFLAGS) -c -o gst_camera2-gst-camera2.obj `if test -f 'gst-camera2.c'; then $(CYGPATH_W) 'gst-camera2.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camera2_CFLAGS) $(CFLAGS) -c -o gst_camera2-gst-camera2.obj `if test -f 'gst-camera2.c'; then $(CYGPATH_W) 'gst-camera2.c'; else $(CYGPATH_W) '$(srcdir)/gst-camera2.c'; fi` gst_camerabin2_test-gst-camerabin2-test.o: gst-camerabin2-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -MT gst_camerabin2_test-gst-camerabin2-test.o -MD -MP -MF $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Tpo -c -o gst_camerabin2_test-gst-camerabin2-test.o `test -f 'gst-camerabin2-test.c' || echo '$(srcdir)/'`gst-camerabin2-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Tpo $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camerabin2-test.c' object='gst_camerabin2_test-gst-camerabin2-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camerabin2-test.c' object='gst_camerabin2_test-gst-camerabin2-test.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) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin2_test-gst-camerabin2-test.o `test -f 'gst-camerabin2-test.c' || echo '$(srcdir)/'`gst-camerabin2-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin2_test-gst-camerabin2-test.o `test -f 'gst-camerabin2-test.c' || echo '$(srcdir)/'`gst-camerabin2-test.c gst_camerabin2_test-gst-camerabin2-test.obj: gst-camerabin2-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -MT gst_camerabin2_test-gst-camerabin2-test.obj -MD -MP -MF $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Tpo -c -o gst_camerabin2_test-gst-camerabin2-test.obj `if test -f 'gst-camerabin2-test.c'; then $(CYGPATH_W) 'gst-camerabin2-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin2-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Tpo $(DEPDIR)/gst_camerabin2_test-gst-camerabin2-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst-camerabin2-test.c' object='gst_camerabin2_test-gst-camerabin2-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst-camerabin2-test.c' object='gst_camerabin2_test-gst-camerabin2-test.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) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin2_test-gst-camerabin2-test.obj `if test -f 'gst-camerabin2-test.c'; then $(CYGPATH_W) 'gst-camerabin2-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin2-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_camerabin2_test_CFLAGS) $(CFLAGS) -c -o gst_camerabin2_test-gst-camerabin2-test.obj `if test -f 'gst-camerabin2-test.c'; then $(CYGPATH_W) 'gst-camerabin2-test.c'; else $(CYGPATH_W) '$(srcdir)/gst-camerabin2-test.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -771,10 +788,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/camerabin2/gst-camera2.c b/tests/examples/camerabin2/gst-camera2.c index 14e3be1..8f34501 100644 --- a/tests/examples/camerabin2/gst-camera2.c +++ b/tests/examples/camerabin2/gst-camera2.c @@ -31,6 +31,9 @@ #include "gst-camera2.h" +#include + +#include #include #include #include @@ -41,6 +44,78 @@ static GstElement *camera; static GtkBuilder *builder; +static GtkWidget *ui_main_window; + +typedef struct +{ + const gchar *name; + GstEncodingProfile *(*create_profile) (); +} GstCameraVideoFormat; + +static GstEncodingProfile * +create_ogg_profile (void) +{ + GstEncodingContainerProfile *container; + + container = gst_encoding_container_profile_new ("ogg", NULL, + gst_caps_new_simple ("application/ogg", NULL), NULL); + + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_video_profile_new (gst_caps_new_simple ("video/x-theora", + NULL), NULL, NULL, 1)); + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_audio_profile_new (gst_caps_new_simple ("audio/x-vorbis", + NULL), NULL, NULL, 1)); + + return (GstEncodingProfile *) container; +} + +static GstEncodingProfile * +create_webm_profile (void) +{ + GstEncodingContainerProfile *container; + + container = gst_encoding_container_profile_new ("webm", NULL, + gst_caps_new_simple ("video/webm", NULL), NULL); + + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_video_profile_new (gst_caps_new_simple ("video/x-vp8", NULL), + NULL, NULL, 1)); + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_audio_profile_new (gst_caps_new_simple ("audio/x-vorbis", + NULL), NULL, NULL, 1)); + + return (GstEncodingProfile *) container; +} + +static GstEncodingProfile * +create_mp4_profile (void) +{ + GstEncodingContainerProfile *container; + + container = gst_encoding_container_profile_new ("mp4", NULL, + gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, "iso", + NULL), NULL); + + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_video_profile_new (gst_caps_new_simple ("video/x-h264", + NULL), NULL, NULL, 1)); + gst_encoding_container_profile_add_profile (container, (GstEncodingProfile *) + gst_encoding_audio_profile_new (gst_caps_new_simple ("audio/mpeg", + "version", G_TYPE_INT, 4, NULL), NULL, NULL, 1)); + + return (GstEncodingProfile *) container; +} + +GstCameraVideoFormat formats[] = { + {"ogg (theora/vorbis)", create_ogg_profile} + , + {"webm (vp8/vorbis)", create_webm_profile} + , + {"mp4 (h264+aac)", create_mp4_profile} + , + {NULL, NULL} +}; void on_mainWindow_delete_event (GtkWidget * widget, GdkEvent * event, gpointer data) @@ -84,6 +159,36 @@ on_viewfinderArea_realize (GtkWidget * widget, gpointer data) #endif } +void +on_formatComboBox_changed (GtkWidget * widget, gpointer data) +{ + GstEncodingProfile *profile = NULL; + gint index = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + + if (formats[index].create_profile) { + profile = formats[index].create_profile (); + } + + g_return_if_fail (profile != NULL); + gst_element_set_state (camera, GST_STATE_NULL); + g_object_set (camera, "video-profile", profile, NULL); + gst_encoding_profile_unref (profile); + + if (GST_STATE_CHANGE_FAILURE == gst_element_set_state (camera, + GST_STATE_PLAYING)) { + GtkWidget *dialog = + gtk_message_dialog_new (GTK_WINDOW (ui_main_window), GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "Could not initialize camerabin2 with the " + "selected format. Your system might not have the required plugins installed.\n" + "Please select another format."); + + gtk_dialog_run (GTK_DIALOG (dialog)); + + gtk_widget_destroy (dialog); + } +} + static GstBusSyncReply bus_sync_callback (GstBus * bus, GstMessage * message, gpointer data) { @@ -98,7 +203,11 @@ bus_sync_callback (GstBus * bus, GstMessage * message, gpointer data) /* FIXME: make sure to get XID in main thread */ ui_drawing = GTK_WIDGET (gtk_builder_get_object (builder, "viewfinderArea")); gst_x_overlay_set_window_handle (GST_X_OVERLAY (message->src), +#if GTK_CHECK_VERSION (2, 91, 6) + GDK_WINDOW_XID (gtk_widget_get_window (ui_drawing))); +#else GDK_WINDOW_XWINDOW (gtk_widget_get_window (ui_drawing))); +#endif gst_message_unref (message); return GST_BUS_DROP; @@ -148,11 +257,34 @@ bus_callback (GstBus * bus, GstMessage * message, gpointer data) return TRUE; } +static gboolean +init_gtkwidgets_data (void) +{ +#if GTK_CHECK_VERSION(2,24,0) + gint i; + GtkComboBoxText *combobox = + GTK_COMBO_BOX_TEXT (gtk_builder_get_object (builder, "formatComboBox")); + + /* init formats combobox */ + i = 0; + while (formats[i].name) { + gtk_combo_box_text_append_text (combobox, formats[i].name); + i++; + } + + /* default to the first one -> ogg */ + gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0); + return TRUE; +#else + g_warning ("This needs a newer version of GTK (2.24 at least)"); + return FALSE; +#endif +} + int main (int argc, char *argv[]) { int ret = 0; - GtkWidget *ui_main_window; GError *error = NULL; GstBus *bus; @@ -172,6 +304,10 @@ main (int argc, char *argv[]) gst_bus_set_sync_handler (bus, bus_sync_callback, NULL); gst_object_unref (bus); + if (!init_gtkwidgets_data ()) { + goto error; + } + ui_main_window = GTK_WIDGET (gtk_builder_get_object (builder, "mainWindow")); gtk_builder_connect_signals (builder, NULL); gtk_widget_show_all (ui_main_window); @@ -180,6 +316,7 @@ main (int argc, char *argv[]) gtk_main (); +error: gst_element_set_state (camera, GST_STATE_NULL); gst_object_unref (camera); return ret; diff --git a/tests/examples/camerabin2/gst-camera2.h b/tests/examples/camerabin2/gst-camera2.h index d96e2de..10bea02 100644 --- a/tests/examples/camerabin2/gst-camera2.h +++ b/tests/examples/camerabin2/gst-camera2.h @@ -45,4 +45,7 @@ on_videoRButton_toggled (GtkToggleButton * button, gpointer user_data); void on_viewfinderArea_realize (GtkWidget * widget, gpointer data); +void +on_formatComboBox_changed (GtkWidget * widget, gpointer data); + #endif /* __GST_CAMERA_BIN_H__ */ diff --git a/tests/examples/camerabin2/gst-camera2.ui b/tests/examples/camerabin2/gst-camera2.ui index 48fe141..9dc1fee 100644 --- a/tests/examples/camerabin2/gst-camera2.ui +++ b/tests/examples/camerabin2/gst-camera2.ui @@ -1,43 +1,53 @@ - + False 800 600 - + True + False True + False Image + False True True False + False True True - + + True + True 0 Video + False True True False + False True True imageRButton - + + True + True 1 @@ -51,44 +61,90 @@ True + False True - + False + + True + True 0 True + False + + + True + False + Actions + + + False + True + 0 + + Capture + False True True True - + False + False False - 0 + 1 Stop Capture + False True True True - + False + False False - 1 + 2 + + + + + True + False + Video format + + + False + True + 5 + 3 + + + + + True + False + + + + False + True + 4 @@ -100,6 +156,8 @@ + True + True 1 diff --git a/tests/examples/camerabin2/gst-camerabin2-test.c b/tests/examples/camerabin2/gst-camerabin2-test.c index 49974d1..f112dbc 100644 --- a/tests/examples/camerabin2/gst-camerabin2-test.c +++ b/tests/examples/camerabin2/gst-camerabin2-test.c @@ -53,10 +53,14 @@ --zoom Zoom (100 = 1x (default), 200 = 2x etc.) --wrapper-source Camera source wrapper used for setting the video source --video-source Video source used in still capture and video recording + --video-device Video device to be set on the video source (e.g. /dev/video0) + --audio-source Audio source used in video recording --image-pp List of image post-processing elements separated with comma --viewfinder-sink Viewfinder sink (default = fakesink) - --image-width Width for image capture - --image-height Height for image capture + --image-width Width for capture (only used if the caps + arguments aren't set) + --image-height Height for capture (only used if the caps + arguments aren't set) --view-framerate-num Framerate numerator for viewfinder --view-framerate-den Framerate denominator for viewfinder --preview-caps Preview caps (e.g. video/x-raw-rgb,width=320,height=240) @@ -67,6 +71,27 @@ --encoding-target Video encoding target name --encoding-profile Video encoding profile name --encoding-profile-filename Video encoding profile filename + --image-capture-caps Image capture caps (e.g. video/x-raw-rgb,width=640,height=480) + --viewfinder-caps Viewfinder caps (e.g. video/x-raw-rgb,width=640,height=480) + --video-capture-caps Video capture caps (e.g. video/x-raw-rgb,width=640,height=480) + --performance-measure Collect timing information about the + captures and provides performance statistics at the end + --performance-targets A list of doubles that are the performance target + times for each of the measured timestamps. The order is + startup time, change mode time, shot to save, shot to snapshot, + shot to shot, preview to precapture, shot to buffer. + e.g. 3.5,1.0,5.0,2.5,5.0,1.5,1.0 + * Startup time -> time it takes for camerabin2 to reach playing + * Change mode time -> time it takes for camerabin2 to change to the selected + mode in playing + * Shot to save -> time it takes from start-capture to having the image saved + to disk + * Shot to snapshot -> time it takes from start-capture to getting a snapshot + * Shot to shot -> time from one start-capture to the next one + * Preview to precapture -> time it takes from getting the snapshot to the + next buffer that reaches the viewfinder + * Shot to buffer -> time it takes from start-capture to the moment a buffer + is pushed out of the camera source */ @@ -98,22 +123,84 @@ */ GST_DEBUG_CATEGORY_STATIC (camerabin_test); #define GST_CAT_DEFAULT camerabin_test -typedef struct _ResultType + +#define TIME_DIFF(a,b) ((((gint64)(a)) - ((gint64)(b))) / (gdouble) GST_SECOND) + +#define TIME_FORMAT "02d.%09u" +#define TIMEDIFF_FORMAT "0.6lf" + +#define TIME_ARGS(t) \ + (GST_CLOCK_TIME_IS_VALID (t) && (t) < 99 * GST_SECOND) ? \ + (gint) ((((GstClockTime)(t)) / GST_SECOND) % 60) : 99, \ + (GST_CLOCK_TIME_IS_VALID (t) && ((t) < 99 * GST_SECOND)) ? \ + (guint) (((GstClockTime)(t)) % GST_SECOND) : 999999999 + +#define TIMEDIFF_ARGS(t) (t) + +typedef struct _CaptureTiming +{ + GstClockTime start_capture; + GstClockTime got_preview; + GstClockTime capture_done; + GstClockTime precapture; + GstClockTime camera_capture; +} CaptureTiming; + +typedef struct _CaptureTimingStats +{ + GstClockTime shot_to_shot; + GstClockTime shot_to_save; + GstClockTime shot_to_snapshot; + GstClockTime preview_to_precapture; + GstClockTime shot_to_buffer; +} CaptureTimingStats; + +static void +capture_timing_stats_add (CaptureTimingStats * a, CaptureTimingStats * b) +{ + a->shot_to_shot += b->shot_to_shot; + a->shot_to_snapshot += b->shot_to_snapshot; + a->shot_to_save += b->shot_to_save; + a->preview_to_precapture += b->preview_to_precapture; + a->shot_to_buffer += b->shot_to_buffer; +} + +static void +capture_timing_stats_div (CaptureTimingStats * stats, gint div) { - GstClockTime avg; - GstClockTime min; - GstClockTime max; - guint32 times; -} ResultType; + stats->shot_to_shot /= div; + stats->shot_to_snapshot /= div; + stats->shot_to_save /= div; + stats->preview_to_precapture /= div; + stats->shot_to_buffer /= div; +} + +#define PRINT_STATS(d,s) g_print ("%02d | %" TIME_FORMAT " | %" \ + TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT \ + " | %" TIME_FORMAT "\n", d, \ + TIME_ARGS ((s)->shot_to_save), TIME_ARGS ((s)->shot_to_snapshot), \ + TIME_ARGS ((s)->shot_to_shot), \ + TIME_ARGS ((s)->preview_to_precapture), \ + TIME_ARGS ((s)->shot_to_buffer)) + +#define SHOT_TO_SAVE(t) ((t)->capture_done - (t)->start_capture) +#define SHOT_TO_SNAPSHOT(t) ((t)->got_preview - (t)->start_capture) +#define PREVIEW_TO_PRECAPTURE(t) ((t)->precapture - (t)->got_preview) +#define SHOT_TO_BUFFER(t) ((t)->camera_capture - (t)->start_capture) /* * Global vars */ static GstElement *camerabin = NULL; +static GstElement *viewfinder_sink = NULL; +static gulong camera_probe_id = 0; +static gulong viewfinder_probe_id = 0; static GMainLoop *loop = NULL; /* commandline options */ static gchar *videosrc_name = NULL; +static gchar *videodevice_name = NULL; +static gchar *audiosrc_name = NULL; static gchar *wrappersrc_name = NULL; static gchar *imagepp_name = NULL; static gchar *vfsink_name = NULL; @@ -125,6 +212,13 @@ static gboolean no_xwindow = FALSE; static gchar *gep_targetname = NULL; static gchar *gep_profilename = NULL; static gchar *gep_filename = NULL; +static gchar *image_capture_caps_str = NULL; +static gchar *viewfinder_caps_str = NULL; +static gchar *video_capture_caps_str = NULL; +static gchar *audio_capture_caps_str = NULL; +static gboolean performance_measure = FALSE; +static gchar *performance_targets_str = NULL; +static gchar *camerabin2_flags = NULL; #define MODE_VIDEO 2 @@ -169,7 +263,21 @@ static gchar *preview_caps_name = NULL; static Display *display = NULL; static Window window = 0; -GTimer *timer = NULL; +/* timing data */ +static GstClockTime initial_time = 0; +static GstClockTime startup_time = 0; +static GstClockTime change_mode_before = 0; +static GstClockTime change_mode_after = 0; +static GList *capture_times = NULL; + +static GstClockTime target_startup; +static GstClockTime target_change_mode; +static GstClockTime target_shot_to_shot; +static GstClockTime target_shot_to_save; +static GstClockTime target_shot_to_snapshot; +static GstClockTime target_preview_to_precapture; +static GstClockTime target_shot_to_buffer; + /* * Prototypes @@ -203,6 +311,34 @@ create_host_window (void) } } +static gboolean +camera_src_get_timestamp_probe (GstPad * pad, GstMiniObject * obj, + gpointer udata) +{ + CaptureTiming *timing; + + timing = (CaptureTiming *) g_list_first (capture_times)->data; + timing->camera_capture = gst_util_get_timestamp (); + + gst_pad_remove_data_probe (pad, camera_probe_id); + + return TRUE; +} + +static gboolean +viewfinder_get_timestamp_probe (GstPad * pad, GstMiniObject * obj, + gpointer udata) +{ + CaptureTiming *timing; + + timing = (CaptureTiming *) g_list_first (capture_times)->data; + timing->precapture = gst_util_get_timestamp (); + + gst_pad_remove_data_probe (pad, viewfinder_probe_id); + + return TRUE; +} + static GstBusSyncReply sync_bus_callback (GstBus * bus, GstMessage * message, gpointer data) { @@ -229,7 +365,23 @@ sync_bus_callback (GstBus * bus, GstMessage * message, gpointer data) return GST_BUS_DROP; } } else if (gst_structure_has_name (st, "preview-image")) { + CaptureTiming *timing; + GST_DEBUG ("preview-image"); + + timing = (CaptureTiming *) g_list_first (capture_times)->data; + timing->got_preview = gst_util_get_timestamp (); + + { + /* set up probe to check when the viewfinder gets data */ + GstPad *pad = gst_element_get_static_pad (viewfinder_sink, "sink"); + + viewfinder_probe_id = gst_pad_add_buffer_probe (pad, + (GCallback) viewfinder_get_timestamp_probe, NULL); + + gst_object_unref (pad); + } + /* extract preview-image from msg */ image = gst_structure_get_value (st, "buffer"); if (image) { @@ -238,8 +390,6 @@ sync_bus_callback (GstBus * bus, GstMessage * message, gpointer data) size = GST_BUFFER_SIZE (buf); preview_filename = g_strdup_printf ("test_vga.rgb"); caps_string = gst_caps_to_string (GST_BUFFER_CAPS (buf)); - g_print ("writing buffer to %s, elapsed: %.2fs, buffer caps: %s\n", - preview_filename, g_timer_elapsed (timer, NULL), caps_string); g_free (caps_string); f = g_fopen (preview_filename, "w"); if (f) { @@ -257,6 +407,16 @@ sync_bus_callback (GstBus * bus, GstMessage * message, gpointer data) } break; } + case GST_MESSAGE_STATE_CHANGED: + if (GST_MESSAGE_SRC (message) == (GstObject *) camerabin) { + GstState newstate; + + gst_message_parse_state_changed (message, NULL, &newstate, NULL); + if (newstate == GST_STATE_PLAYING) { + startup_time = gst_util_get_timestamp (); + } + } + break; default: /* unhandled message */ break; @@ -304,9 +464,15 @@ bus_callback (GstBus * bus, GstMessage * message, gpointer data) const GstStructure *structure = gst_message_get_structure (message); if (gst_structure_has_name (structure, "image-done")) { + CaptureTiming *timing; +#ifndef GST_DISABLE_GST_DEBUG const gchar *fname = gst_structure_get_string (structure, "filename"); GST_DEBUG ("image done: %s", fname); +#endif + timing = (CaptureTiming *) g_list_first (capture_times)->data; + timing->capture_done = gst_util_get_timestamp (); + if (capture_count < capture_total) { g_idle_add ((GSourceFunc) run_pipeline, NULL); } else { @@ -430,15 +596,18 @@ setup_pipeline_element (GstElement * element, const gchar * property_name, GstElement *elem = NULL; if (element_name) { - elem = gst_element_factory_make (element_name, NULL); + GError *error = NULL; + + elem = gst_parse_launch (element_name, &error); if (elem) { - if (g_object_class_find_property (G_OBJECT_GET_CLASS (elem), "device")) { - g_object_set (elem, "device", "/dev/video1", NULL); - } g_object_set (element, property_name, elem, NULL); } else { GST_WARNING ("can't create element '%s' for property '%s'", element_name, property_name); + if (error) { + GST_ERROR ("%s", error->message); + g_error_free (error); + } res = FALSE; } } else { @@ -449,6 +618,47 @@ setup_pipeline_element (GstElement * element, const gchar * property_name, return res; } +static void +set_camerabin2_caps_from_string (void) +{ + GstCaps *caps = NULL; + if (image_capture_caps_str != NULL) { + caps = gst_caps_from_string (image_capture_caps_str); + if (GST_CAPS_IS_SIMPLE (caps) && image_width > 0 && image_height > 0) { + gst_caps_set_simple (caps, "width", G_TYPE_INT, image_width, "height", + G_TYPE_INT, image_height, NULL); + } + GST_DEBUG ("setting image-capture-caps: %" GST_PTR_FORMAT, caps); + g_object_set (camerabin, "image-capture-caps", caps, NULL); + gst_caps_unref (caps); + } + + if (viewfinder_caps_str != NULL) { + caps = gst_caps_from_string (viewfinder_caps_str); + if (GST_CAPS_IS_SIMPLE (caps) && view_framerate_num > 0 + && view_framerate_den > 0) { + gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, + view_framerate_num, view_framerate_den, NULL); + } + GST_DEBUG ("setting viewfinder-caps: %" GST_PTR_FORMAT, caps); + g_object_set (camerabin, "viewfinder-caps", caps, NULL); + gst_caps_unref (caps); + } + + if (video_capture_caps_str != NULL) { + caps = gst_caps_from_string (video_capture_caps_str); + GST_DEBUG ("setting video-capture-caps: %" GST_PTR_FORMAT, caps); + g_object_set (camerabin, "video-capture-caps", caps, NULL); + gst_caps_unref (caps); + } + + if (audio_capture_caps_str != NULL) { + caps = gst_caps_from_string (audio_capture_caps_str); + GST_DEBUG ("setting audio-capture-caps: %" GST_PTR_FORMAT, caps); + g_object_set (camerabin, "audio-capture-caps", caps, NULL); + gst_caps_unref (caps); + } +} static gboolean setup_pipeline (void) @@ -457,6 +667,9 @@ setup_pipeline (void) GstBus *bus; GstElement *sink = NULL, *ipp = NULL; GstEncodingProfile *prof = NULL; + + initial_time = gst_util_get_timestamp (); + camerabin = gst_element_factory_make ("camerabin2", NULL); if (NULL == camerabin) { g_warning ("can't create camerabin element\n"); @@ -472,26 +685,39 @@ setup_pipeline (void) GST_INFO_OBJECT (camerabin, "camerabin2 created"); + gst_util_set_object_arg (G_OBJECT (camerabin), "flags", camerabin2_flags); + if (videosrc_name) { GstElement *wrapper; + GstElement *videosrc; if (wrappersrc_name) wrapper = gst_element_factory_make (wrappersrc_name, NULL); else wrapper = gst_element_factory_make ("wrappercamerabinsrc", NULL); - if (setup_pipeline_element (wrapper, "video-src", videosrc_name, NULL)) { - g_object_set (camerabin, "camera-src", wrapper, NULL); + if (setup_pipeline_element (wrapper, "video-source", videosrc_name, NULL)) { + g_object_set (camerabin, "camera-source", wrapper, NULL); } else { GST_WARNING ("Failed to set videosrc to %s", videosrc_name); } + + g_object_get (wrapper, "video-source", &videosrc, NULL); + if (videosrc && videodevice_name && + g_object_class_find_property (G_OBJECT_GET_CLASS (videosrc), + "device")) { + g_object_set (videosrc, "device", videodevice_name, NULL); + } } /* configure used elements */ - res &= setup_pipeline_element (camerabin, "viewfinder-sink", vfsink_name, - &sink); - res &= setup_pipeline_element (camerabin, "viewfinder-filter", - viewfinder_filter, NULL); + res &= + setup_pipeline_element (camerabin, "audio-source", audiosrc_name, NULL); + res &= + setup_pipeline_element (camerabin, "viewfinder-sink", vfsink_name, &sink); + res &= + setup_pipeline_element (camerabin, "viewfinder-filter", viewfinder_filter, + NULL); if (imagepp_name) { ipp = create_ipp_bin (); @@ -507,8 +733,20 @@ setup_pipeline (void) GST_INFO_OBJECT (camerabin, "elements created"); - if (sink) + if (sink) { g_object_set (sink, "sync", TRUE, NULL); + } else { + /* Get the inner viewfinder sink, this uses fixed names given + * by default in camerabin2 */ + sink = gst_bin_get_by_name (GST_BIN (camerabin), "vf-bin"); + g_assert (sink); + gst_object_unref (sink); + + sink = gst_bin_get_by_name (GST_BIN (sink), "vfbin-sink"); + g_assert (sink); + gst_object_unref (sink); + } + viewfinder_sink = sink; GST_INFO_OBJECT (camerabin, "elements configured"); @@ -550,6 +788,15 @@ setup_pipeline (void) } } + set_camerabin2_caps_from_string (); + + /* change to the wrong mode if timestamping if performance mode is on so + * we can change it back and measure the time after in playing */ + if (performance_measure) { + g_object_set (camerabin, "mode", + mode == MODE_VIDEO ? MODE_IMAGE : MODE_VIDEO, NULL); + } + if (GST_STATE_CHANGE_FAILURE == gst_element_set_state (camerabin, GST_STATE_READY)) { g_warning ("can't set camerabin to ready\n"); @@ -564,6 +811,14 @@ setup_pipeline (void) } GST_INFO_OBJECT (camerabin, "camera started"); + + /* do the mode change timestamping if performance mode is on */ + if (performance_measure) { + change_mode_before = gst_util_get_timestamp (); + g_object_set (camerabin, "mode", mode, NULL); + change_mode_after = gst_util_get_timestamp (); + } + return TRUE; error: cleanup_pipeline (); @@ -631,6 +886,7 @@ run_pipeline (gpointer user_data) gchar *filename_str = NULL; GstElement *video_source = NULL; const gchar *filename_suffix; + CaptureTiming *timing; g_object_set (camerabin, "mode", mode, NULL); @@ -657,7 +913,7 @@ run_pipeline (gpointer user_data) g_object_set (camerabin, "location", filename_str, NULL); g_free (filename_str); - g_object_get (camerabin, "camera-src", &video_source, NULL); + g_object_get (camerabin, "camera-source", &video_source, NULL); if (video_source) { if (GST_IS_ELEMENT (video_source) && gst_element_implements_interface (video_source, GST_TYPE_PHOTOGRAPHY)) { @@ -681,13 +937,29 @@ run_pipeline (gpointer user_data) g_object_set (video_source, "colour-tone-mode", color_mode, NULL); } g_object_unref (video_source); + } else { + video_source = gst_bin_get_by_name (GST_BIN (camerabin), "camerasrc"); + gst_object_unref (video_source); } g_object_set (camerabin, "zoom", zoom / 100.0f, NULL); capture_count++; - g_timer_start (timer); - g_signal_emit_by_name (camerabin, "start-capture", 0); + timing = g_slice_new0 (CaptureTiming); + capture_times = g_list_prepend (capture_times, timing); + + /* set pad probe to check when buffer leaves the camera source */ + if (mode == MODE_IMAGE) { + GstPad *pad; + + pad = gst_element_get_static_pad (video_source, "imgsrc"); + camera_probe_id = gst_pad_add_buffer_probe (pad, + (GCallback) camera_src_get_timestamp_probe, NULL); + + gst_object_unref (pad); + } + timing->start_capture = gst_util_get_timestamp (); + g_signal_emit_by_name (camerabin, "start-capture", 0); if (mode == MODE_VIDEO) { g_timeout_add ((capture_time * 1000), (GSourceFunc) stop_capture, NULL); @@ -696,6 +968,183 @@ run_pipeline (gpointer user_data) return FALSE; } +static void +parse_target_values (void) +{ + gdouble startup = 0, change_mode = 0, shot_to_save = 0, shot_to_snapshot = 0; + gdouble shot_to_shot = 0, preview_to_precapture = 0, shot_to_buffer = 0; + + if (performance_targets_str == NULL) + return; + + /* + startup time, change mode time, shot to save, shot to snapshot, + shot to shot, preview to precapture, shot to buffer. + */ + sscanf (performance_targets_str, "%lf,%lf,%lf,%lf,%lf,%lf,%lf", + &startup, &change_mode, &shot_to_save, + &shot_to_snapshot, &shot_to_shot, &preview_to_precapture, + &shot_to_buffer); + + target_startup = (GstClockTime) (startup * GST_SECOND); + target_change_mode = (GstClockTime) (change_mode * GST_SECOND); + target_shot_to_save = (GstClockTime) (shot_to_save * GST_SECOND); + target_shot_to_snapshot = (GstClockTime) (shot_to_snapshot * GST_SECOND); + target_shot_to_shot = (GstClockTime) (shot_to_shot * GST_SECOND); + target_preview_to_precapture = + (GstClockTime) (preview_to_precapture * GST_SECOND); + target_shot_to_buffer = (GstClockTime) (shot_to_buffer * GST_SECOND); +} + +static void +print_performance_data (void) +{ + GList *iter; + gint i = 0; + GstClockTime last_start = 0; + CaptureTimingStats max; + CaptureTimingStats min; + CaptureTimingStats avg; + CaptureTimingStats avg_wo_first; + GstClockTime shot_to_shot; + + if (!performance_measure) + return; + + parse_target_values (); + + /* Initialize stats */ + min.shot_to_shot = -1; + min.shot_to_save = -1; + min.shot_to_snapshot = -1; + min.preview_to_precapture = -1; + min.shot_to_buffer = -1; + memset (&avg, 0, sizeof (CaptureTimingStats)); + memset (&avg_wo_first, 0, sizeof (CaptureTimingStats)); + memset (&max, 0, sizeof (CaptureTimingStats)); + + g_print ("-- Performance results --\n"); + g_print ("Startup time: %" TIME_FORMAT "; Target: %" TIME_FORMAT "\n", + TIME_ARGS (startup_time - initial_time), TIME_ARGS (target_startup)); + g_print ("Change mode time: %" TIME_FORMAT "; Target: %" TIME_FORMAT "\n", + TIME_ARGS (change_mode_after - change_mode_before), + TIME_ARGS (target_change_mode)); + + g_print + ("\n | Shot to save |Shot to snapshot| Shot to shot |" + "Preview to precap| Shot to buffer\n"); + capture_times = g_list_reverse (capture_times); + for (iter = capture_times; iter; iter = g_list_next (iter)) { + CaptureTiming *t = (CaptureTiming *) iter->data; + CaptureTimingStats stats; + + stats.shot_to_save = SHOT_TO_SAVE (t); + stats.shot_to_snapshot = SHOT_TO_SNAPSHOT (t); + stats.shot_to_shot = i == 0 ? 0 : t->start_capture - last_start; + stats.preview_to_precapture = PREVIEW_TO_PRECAPTURE (t); + stats.shot_to_buffer = SHOT_TO_BUFFER (t); + + PRINT_STATS (i, &stats); + + if (i != 0) { + capture_timing_stats_add (&avg_wo_first, &stats); + } + capture_timing_stats_add (&avg, &stats); + + if (stats.shot_to_save < min.shot_to_save) { + min.shot_to_save = stats.shot_to_save; + } + if (stats.shot_to_snapshot < min.shot_to_snapshot) { + min.shot_to_snapshot = stats.shot_to_snapshot; + } + if (stats.shot_to_shot < min.shot_to_shot && stats.shot_to_shot > 0) { + min.shot_to_shot = stats.shot_to_shot; + } + if (stats.preview_to_precapture < min.preview_to_precapture) { + min.preview_to_precapture = stats.preview_to_precapture; + } + if (stats.shot_to_buffer < min.shot_to_buffer) { + min.shot_to_buffer = stats.shot_to_buffer; + } + + + if (stats.shot_to_save > max.shot_to_save) { + max.shot_to_save = stats.shot_to_save; + } + if (stats.shot_to_snapshot > max.shot_to_snapshot) { + max.shot_to_snapshot = stats.shot_to_snapshot; + } + if (stats.shot_to_shot > max.shot_to_shot) { + max.shot_to_shot = stats.shot_to_shot; + } + if (stats.preview_to_precapture > max.preview_to_precapture) { + max.preview_to_precapture = stats.preview_to_precapture; + } + if (stats.shot_to_buffer > max.shot_to_buffer) { + max.shot_to_buffer = stats.shot_to_buffer; + } + + last_start = t->start_capture; + i++; + } + + if (i > 1) + shot_to_shot = avg.shot_to_shot / (i - 1); + else + shot_to_shot = GST_CLOCK_TIME_NONE; + capture_timing_stats_div (&avg, i); + avg.shot_to_shot = shot_to_shot; + if (i > 1) + capture_timing_stats_div (&avg_wo_first, i - 1); + else { + memset (&avg_wo_first, 0, sizeof (CaptureTimingStats)); + } + + g_print ("\n Stats | MIN | MAX |" + " AVG | AVG wo First | Target | Diff \n"); + g_print ("Shot to shot | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIMEDIFF_FORMAT "\n", + TIME_ARGS (min.shot_to_shot), TIME_ARGS (max.shot_to_shot), + TIME_ARGS (avg.shot_to_shot), + TIME_ARGS (avg_wo_first.shot_to_shot), + TIME_ARGS (target_shot_to_shot), + TIMEDIFF_ARGS (TIME_DIFF (avg.shot_to_shot, target_shot_to_shot))); + g_print ("Shot to save | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIMEDIFF_FORMAT "\n", + TIME_ARGS (min.shot_to_save), TIME_ARGS (max.shot_to_save), + TIME_ARGS (avg.shot_to_save), + TIME_ARGS (avg_wo_first.shot_to_save), + TIME_ARGS (target_shot_to_save), + TIMEDIFF_ARGS (TIME_DIFF (avg.shot_to_save, target_shot_to_save))); + g_print ("Shot to snapshot | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT + " | %" TIMEDIFF_FORMAT "\n", + TIME_ARGS (min.shot_to_snapshot), + TIME_ARGS (max.shot_to_snapshot), + TIME_ARGS (avg.shot_to_snapshot), + TIME_ARGS (avg_wo_first.shot_to_snapshot), + TIME_ARGS (target_shot_to_snapshot), + TIMEDIFF_ARGS (TIME_DIFF (avg.shot_to_snapshot, + target_shot_to_snapshot))); + g_print ("Preview to precapture | %" TIME_FORMAT " | %" TIME_FORMAT " | %" + TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT " | %" TIMEDIFF_FORMAT + "\n", TIME_ARGS (min.preview_to_precapture), + TIME_ARGS (max.preview_to_precapture), + TIME_ARGS (avg.preview_to_precapture), + TIME_ARGS (avg_wo_first.preview_to_precapture), + TIME_ARGS (target_preview_to_precapture), + TIMEDIFF_ARGS (TIME_DIFF (avg.preview_to_precapture, + target_preview_to_precapture))); + g_print ("Shot to buffer | %" TIME_FORMAT " | %" TIME_FORMAT " | %" + TIME_FORMAT " | %" TIME_FORMAT " | %" TIME_FORMAT " | %" TIMEDIFF_FORMAT + "\n", TIME_ARGS (min.shot_to_buffer), TIME_ARGS (max.shot_to_buffer), + TIME_ARGS (avg.shot_to_buffer), TIME_ARGS (avg_wo_first.shot_to_buffer), + TIME_ARGS (target_shot_to_buffer), + TIMEDIFF_ARGS (TIME_DIFF (avg.shot_to_buffer, target_shot_to_buffer))); +} + int main (int argc, char *argv[]) { @@ -704,47 +1153,50 @@ main (int argc, char *argv[]) gchar *fn_option = NULL; GOptionEntry options[] = { - {"ev-compensation", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_STRING, - &ev_option, + {"ev-compensation", '\0', 0, G_OPTION_ARG_STRING, &ev_option, "EV compensation for source element GstPhotography interface", NULL}, - {"aperture", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &aperture, + {"aperture", '\0', 0, G_OPTION_ARG_INT, &aperture, "Aperture (size of lens opening) for source element GstPhotography interface", NULL}, - {"flash-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"flash-mode", '\0', 0, G_OPTION_ARG_INT, &flash_mode, "Flash mode for source element GstPhotography interface", NULL}, - {"scene-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"scene-mode", '\0', 0, G_OPTION_ARG_INT, &scene_mode, "Scene mode for source element GstPhotography interface", NULL}, - {"exposure", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT64, + {"exposure", '\0', 0, G_OPTION_ARG_INT64, &exposure, "Exposure time (in ms) for source element GstPhotography interface", NULL}, - {"iso-speed", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"iso-speed", '\0', 0, G_OPTION_ARG_INT, &iso_speed, "ISO speed for source element GstPhotography interface", NULL}, - {"white-balance-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"white-balance-mode", '\0', 0, G_OPTION_ARG_INT, &wb_mode, "White balance mode for source element GstPhotography interface", NULL}, - {"colour-tone-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"colour-tone-mode", '\0', 0, G_OPTION_ARG_INT, &color_mode, "Colour tone mode for source element GstPhotography interface", NULL}, {"directory", '\0', 0, G_OPTION_ARG_STRING, &fn_option, "Directory for capture file(s) (default is current directory)", NULL}, - {"mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &mode, + {"mode", '\0', 0, G_OPTION_ARG_INT, &mode, "Capture mode (default = 1 (image), 2 = video)", NULL}, - {"capture-time", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, + {"capture-time", '\0', 0, G_OPTION_ARG_INT, &capture_time, "Time to capture video in seconds (default = 10)", NULL}, {"capture-total", '\0', 0, G_OPTION_ARG_INT, &capture_total, "Total number of captures to be done (default = 1)", NULL}, - {"zoom", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &zoom, + {"zoom", '\0', 0, G_OPTION_ARG_INT, &zoom, "Zoom (100 = 1x (default), 200 = 2x etc.)", NULL}, {"wrapper-source", '\0', 0, G_OPTION_ARG_STRING, &wrappersrc_name, "Camera source wrapper used for setting the video source (default is wrappercamerabinsrc)", NULL}, {"video-source", '\0', 0, G_OPTION_ARG_STRING, &videosrc_name, "Video source used in still capture and video recording", NULL}, + {"video-device", '\0', 0, G_OPTION_ARG_STRING, &videodevice_name, + "Video device to be set on the video source", NULL}, + {"audio-source", '\0', 0, G_OPTION_ARG_STRING, &audiosrc_name, + "Audio source used in video recording", NULL}, {"image-pp", '\0', 0, G_OPTION_ARG_STRING, &imagepp_name, "List of image post-processing elements separated with comma", NULL}, {"viewfinder-sink", '\0', 0, G_OPTION_ARG_STRING, &vfsink_name, @@ -773,6 +1225,32 @@ main (int argc, char *argv[]) "Video encoding profile name", NULL}, {"encoding-profile-filename", '\0', 0, G_OPTION_ARG_STRING, &gep_filename, "Video encoding profile filename", NULL}, + {"image-capture-caps", '\0', 0, + G_OPTION_ARG_STRING, &image_capture_caps_str, + "Image capture caps (e.g. video/x-raw-rgb,width=640,height=480)", NULL}, + {"viewfinder-caps", '\0', 0, G_OPTION_ARG_STRING, + &viewfinder_caps_str, + "Viewfinder caps (e.g. video/x-raw-rgb,width=640,height=480)", NULL}, + {"video-capture-caps", '\0', 0, + G_OPTION_ARG_STRING, &video_capture_caps_str, + "Video capture caps (e.g. video/x-raw-rgb,width=640,height=480)", NULL}, + {"audio-capture-caps", '\0', 0, + G_OPTION_ARG_STRING, &audio_capture_caps_str, + "Audio capture caps (e.g. audio/x-raw-int,width=16,depth=16,rate=44100,channels=2)", + NULL}, + {"performance-measure", '\0', 0, + G_OPTION_ARG_NONE, &performance_measure, + "If performance information should be printed at the end of execution", + NULL}, + {"performance-targets", '\0', 0, + G_OPTION_ARG_STRING, &performance_targets_str, + "Comma separated list of doubles representing the target values in " + "seconds. The order is: startup time, change mode time, shot to save" + ", shot to snapshot, shot to shot, preview to shot, shot to buffer. " + "e.g. 3.5,1.0,5.0,2.5,5.0,1.5,1.0", + NULL}, + {"flags", '\0', 0, G_OPTION_ARG_STRING, &camerabin2_flags, + "camerabin2 element flags (default = 0)", NULL}, {NULL} }; @@ -809,8 +1287,6 @@ main (int argc, char *argv[]) if (filename->len == 0) filename = g_string_append (filename, "."); - timer = g_timer_new (); - /* init */ if (setup_pipeline ()) { loop = g_main_loop_new (NULL, FALSE); @@ -819,18 +1295,35 @@ main (int argc, char *argv[]) cleanup_pipeline (); g_main_loop_unref (loop); } + + /* performance */ + if (performance_measure) { + print_performance_data (); + } + /* free */ + { + GList *iter; + + for (iter = capture_times; iter; iter = g_list_next (iter)) { + g_slice_free (CaptureTiming, iter->data); + } + g_list_free (capture_times); + } + g_string_free (filename, TRUE); g_free (ev_option); g_free (wrappersrc_name); g_free (videosrc_name); + g_free (videodevice_name); + g_free (audiosrc_name); g_free (imagepp_name); g_free (vfsink_name); g_free (target_times); g_free (gep_targetname); g_free (gep_profilename); g_free (gep_filename); - g_timer_destroy (timer); + g_free (performance_targets_str); if (window) XDestroyWindow (display, window); diff --git a/tests/examples/directfb/Makefile.in b/tests/examples/directfb/Makefile.in index bd0232e..1b784b2 100644 --- a/tests/examples/directfb/Makefile.in +++ b/tests/examples/directfb/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -41,6 +41,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -82,8 +83,8 @@ PROGRAMS = $(noinst_PROGRAMS) am_gstdfb_OBJECTS = gstdfb-gstdfb.$(OBJEXT) gstdfb_OBJECTS = $(am_gstdfb_OBJECTS) gstdfb_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent gstdfb_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gstdfb_CFLAGS) $(CFLAGS) \ @@ -98,21 +99,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(gstdfb_SOURCES) DIST_SOURCES = $(gstdfb_SOURCES) @@ -123,7 +124,6 @@ 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@ @@ -141,7 +141,6 @@ 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@ @@ -176,6 +175,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -215,6 +215,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -232,6 +233,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -240,13 +242,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -271,13 +276,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -325,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -356,8 +363,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -381,6 +392,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -405,10 +418,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -420,6 +437,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -444,6 +465,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -479,7 +501,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -549,7 +570,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -gstdfb$(EXEEXT): $(gstdfb_OBJECTS) $(gstdfb_DEPENDENCIES) +gstdfb$(EXEEXT): $(gstdfb_OBJECTS) $(gstdfb_DEPENDENCIES) $(EXTRA_gstdfb_DEPENDENCIES) @rm -f gstdfb$(EXEEXT) $(AM_V_CCLD)$(gstdfb_LINK) $(gstdfb_OBJECTS) $(gstdfb_LDADD) $(LIBS) @@ -564,42 +585,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gstdfb-gstdfb.o: gstdfb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstdfb_CFLAGS) $(CFLAGS) -MT gstdfb-gstdfb.o -MD -MP -MF $(DEPDIR)/gstdfb-gstdfb.Tpo -c -o gstdfb-gstdfb.o `test -f 'gstdfb.c' || echo '$(srcdir)/'`gstdfb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstdfb-gstdfb.Tpo $(DEPDIR)/gstdfb-gstdfb.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdfb.c' object='gstdfb-gstdfb.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdfb.c' object='gstdfb-gstdfb.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) $(gstdfb_CFLAGS) $(CFLAGS) -c -o gstdfb-gstdfb.o `test -f 'gstdfb.c' || echo '$(srcdir)/'`gstdfb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstdfb_CFLAGS) $(CFLAGS) -c -o gstdfb-gstdfb.o `test -f 'gstdfb.c' || echo '$(srcdir)/'`gstdfb.c gstdfb-gstdfb.obj: gstdfb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstdfb_CFLAGS) $(CFLAGS) -MT gstdfb-gstdfb.obj -MD -MP -MF $(DEPDIR)/gstdfb-gstdfb.Tpo -c -o gstdfb-gstdfb.obj `if test -f 'gstdfb.c'; then $(CYGPATH_W) 'gstdfb.c'; else $(CYGPATH_W) '$(srcdir)/gstdfb.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstdfb-gstdfb.Tpo $(DEPDIR)/gstdfb-gstdfb.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdfb.c' object='gstdfb-gstdfb.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdfb.c' object='gstdfb-gstdfb.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) $(gstdfb_CFLAGS) $(CFLAGS) -c -o gstdfb-gstdfb.obj `if test -f 'gstdfb.c'; then $(CYGPATH_W) 'gstdfb.c'; else $(CYGPATH_W) '$(srcdir)/gstdfb.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstdfb_CFLAGS) $(CFLAGS) -c -o gstdfb-gstdfb.obj `if test -f 'gstdfb.c'; then $(CYGPATH_W) 'gstdfb.c'; else $(CYGPATH_W) '$(srcdir)/gstdfb.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -703,10 +719,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/mxf/Makefile.in b/tests/examples/mxf/Makefile.in index 401495f..adbae3d 100644 --- a/tests/examples/mxf/Makefile.in +++ b/tests/examples/mxf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -85,8 +86,8 @@ am_mxfdemux_structure_OBJECTS = \ mxfdemux_structure-mxfdemux-structure.$(OBJEXT) mxfdemux_structure_OBJECTS = $(am_mxfdemux_structure_OBJECTS) mxfdemux_structure_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent mxfdemux_structure_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -102,21 +103,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(mxfdemux_structure_SOURCES) DIST_SOURCES = $(mxfdemux_structure_SOURCES) @@ -128,7 +129,6 @@ 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@ @@ -146,7 +146,6 @@ 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@ @@ -181,6 +180,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -220,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -237,6 +238,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -245,13 +247,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -276,13 +281,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -330,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -361,8 +368,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -386,6 +397,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -410,10 +423,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -425,6 +442,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -449,6 +470,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -484,7 +506,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -552,7 +573,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -mxfdemux-structure$(EXEEXT): $(mxfdemux_structure_OBJECTS) $(mxfdemux_structure_DEPENDENCIES) +mxfdemux-structure$(EXEEXT): $(mxfdemux_structure_OBJECTS) $(mxfdemux_structure_DEPENDENCIES) $(EXTRA_mxfdemux_structure_DEPENDENCIES) @rm -f mxfdemux-structure$(EXEEXT) $(AM_V_CCLD)$(mxfdemux_structure_LINK) $(mxfdemux_structure_OBJECTS) $(mxfdemux_structure_LDADD) $(LIBS) @@ -567,42 +588,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mxfdemux_structure-mxfdemux-structure.o: mxfdemux-structure.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -MT mxfdemux_structure-mxfdemux-structure.o -MD -MP -MF $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Tpo -c -o mxfdemux_structure-mxfdemux-structure.o `test -f 'mxfdemux-structure.c' || echo '$(srcdir)/'`mxfdemux-structure.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Tpo $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfdemux-structure.c' object='mxfdemux_structure-mxfdemux-structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdemux-structure.c' object='mxfdemux_structure-mxfdemux-structure.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) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -c -o mxfdemux_structure-mxfdemux-structure.o `test -f 'mxfdemux-structure.c' || echo '$(srcdir)/'`mxfdemux-structure.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -c -o mxfdemux_structure-mxfdemux-structure.o `test -f 'mxfdemux-structure.c' || echo '$(srcdir)/'`mxfdemux-structure.c mxfdemux_structure-mxfdemux-structure.obj: mxfdemux-structure.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -MT mxfdemux_structure-mxfdemux-structure.obj -MD -MP -MF $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Tpo -c -o mxfdemux_structure-mxfdemux-structure.obj `if test -f 'mxfdemux-structure.c'; then $(CYGPATH_W) 'mxfdemux-structure.c'; else $(CYGPATH_W) '$(srcdir)/mxfdemux-structure.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Tpo $(DEPDIR)/mxfdemux_structure-mxfdemux-structure.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mxfdemux-structure.c' object='mxfdemux_structure-mxfdemux-structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mxfdemux-structure.c' object='mxfdemux_structure-mxfdemux-structure.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) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -c -o mxfdemux_structure-mxfdemux-structure.obj `if test -f 'mxfdemux-structure.c'; then $(CYGPATH_W) 'mxfdemux-structure.c'; else $(CYGPATH_W) '$(srcdir)/mxfdemux-structure.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mxfdemux_structure_CFLAGS) $(CFLAGS) -c -o mxfdemux_structure-mxfdemux-structure.obj `if test -f 'mxfdemux-structure.c'; then $(CYGPATH_W) 'mxfdemux-structure.c'; else $(CYGPATH_W) '$(srcdir)/mxfdemux-structure.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -706,10 +722,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/mxf/mxfdemux-structure.c b/tests/examples/mxf/mxfdemux-structure.c index 0678ad5..6f735c4 100644 --- a/tests/examples/mxf/mxfdemux-structure.c +++ b/tests/examples/mxf/mxfdemux-structure.c @@ -151,9 +151,9 @@ on_message (GstBus * bus, GstMessage * message, gpointer data) gst_tag_list_free (tags); break; + } default: break; - } } } diff --git a/tests/examples/opencv/Makefile.am b/tests/examples/opencv/Makefile.am new file mode 100644 index 0000000..4241e9e --- /dev/null +++ b/tests/examples/opencv/Makefile.am @@ -0,0 +1,11 @@ +noinst_PROGRAMS = gstmotioncells_dynamic_test + +gstmotioncells_dynamic_test_SOURCES = \ + gstmotioncells_dynamic_test.c \ + gst_element_print_properties.c +gstmotioncells_dynamic_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +gstmotioncells_dynamic_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS) + +noinst_HEADERS = \ + gstmotioncells_dynamic_test.h \ + gst_element_print_properties.h diff --git a/tests/examples/opencv/Makefile.in b/tests/examples/opencv/Makefile.in new file mode 100644 index 0000000..80bba46 --- /dev/null +++ b/tests/examples/opencv/Makefile.in @@ -0,0 +1,856 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 = gstmotioncells_dynamic_test$(EXEEXT) +subdir = tests/examples/opencv +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-libtool.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 = +PROGRAMS = $(noinst_PROGRAMS) +am_gstmotioncells_dynamic_test_OBJECTS = gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.$(OBJEXT) \ + gstmotioncells_dynamic_test-gst_element_print_properties.$(OBJEXT) +gstmotioncells_dynamic_test_OBJECTS = \ + $(am_gstmotioncells_dynamic_test_OBJECTS) +gstmotioncells_dynamic_test_LDADD = $(LDADD) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +gstmotioncells_dynamic_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) \ + $(gstmotioncells_dynamic_test_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_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +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_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(gstmotioncells_dynamic_test_SOURCES) +DIST_SOURCES = $(gstmotioncells_dynamic_test_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@ +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_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@ +DIRECT3D_LIBS = @DIRECT3D_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_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ +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_AGE = @GST_AGE@ +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_CURRENT = @GST_CURRENT@ +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_LIBVERSION = @GST_LIBVERSION@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ +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_REVISION = @GST_REVISION@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECT3D = @HAVE_DIRECT3D@ +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@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +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@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_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@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ +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@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_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@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ +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_AR = @ac_ct_AR@ +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@ +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@ +gstmotioncells_dynamic_test_SOURCES = \ + gstmotioncells_dynamic_test.c \ + gst_element_print_properties.c + +gstmotioncells_dynamic_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +gstmotioncells_dynamic_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS) +noinst_HEADERS = \ + gstmotioncells_dynamic_test.h \ + gst_element_print_properties.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 tests/examples/opencv/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/examples/opencv/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): + +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 +gstmotioncells_dynamic_test$(EXEEXT): $(gstmotioncells_dynamic_test_OBJECTS) $(gstmotioncells_dynamic_test_DEPENDENCIES) $(EXTRA_gstmotioncells_dynamic_test_DEPENDENCIES) + @rm -f gstmotioncells_dynamic_test$(EXEEXT) + $(AM_V_CCLD)$(gstmotioncells_dynamic_test_LINK) $(gstmotioncells_dynamic_test_OBJECTS) $(gstmotioncells_dynamic_test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Po@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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.o: gstmotioncells_dynamic_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -MT gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.o -MD -MP -MF $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Tpo -c -o gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.o `test -f 'gstmotioncells_dynamic_test.c' || echo '$(srcdir)/'`gstmotioncells_dynamic_test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Tpo $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmotioncells_dynamic_test.c' object='gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -c -o gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.o `test -f 'gstmotioncells_dynamic_test.c' || echo '$(srcdir)/'`gstmotioncells_dynamic_test.c + +gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.obj: gstmotioncells_dynamic_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -MT gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.obj -MD -MP -MF $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Tpo -c -o gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.obj `if test -f 'gstmotioncells_dynamic_test.c'; then $(CYGPATH_W) 'gstmotioncells_dynamic_test.c'; else $(CYGPATH_W) '$(srcdir)/gstmotioncells_dynamic_test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Tpo $(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmotioncells_dynamic_test.c' object='gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -c -o gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.obj `if test -f 'gstmotioncells_dynamic_test.c'; then $(CYGPATH_W) 'gstmotioncells_dynamic_test.c'; else $(CYGPATH_W) '$(srcdir)/gstmotioncells_dynamic_test.c'; fi` + +gstmotioncells_dynamic_test-gst_element_print_properties.o: gst_element_print_properties.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -MT gstmotioncells_dynamic_test-gst_element_print_properties.o -MD -MP -MF $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Tpo -c -o gstmotioncells_dynamic_test-gst_element_print_properties.o `test -f 'gst_element_print_properties.c' || echo '$(srcdir)/'`gst_element_print_properties.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Tpo $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst_element_print_properties.c' object='gstmotioncells_dynamic_test-gst_element_print_properties.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -c -o gstmotioncells_dynamic_test-gst_element_print_properties.o `test -f 'gst_element_print_properties.c' || echo '$(srcdir)/'`gst_element_print_properties.c + +gstmotioncells_dynamic_test-gst_element_print_properties.obj: gst_element_print_properties.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -MT gstmotioncells_dynamic_test-gst_element_print_properties.obj -MD -MP -MF $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Tpo -c -o gstmotioncells_dynamic_test-gst_element_print_properties.obj `if test -f 'gst_element_print_properties.c'; then $(CYGPATH_W) 'gst_element_print_properties.c'; else $(CYGPATH_W) '$(srcdir)/gst_element_print_properties.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Tpo $(DEPDIR)/gstmotioncells_dynamic_test-gst_element_print_properties.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst_element_print_properties.c' object='gstmotioncells_dynamic_test-gst_element_print_properties.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstmotioncells_dynamic_test_CFLAGS) $(CFLAGS) -c -o gstmotioncells_dynamic_test-gst_element_print_properties.obj `if test -f 'gst_element_print_properties.c'; then $(CYGPATH_W) 'gst_element_print_properties.c'; else $(CYGPATH_W) '$(srcdir)/gst_element_print_properties.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 $(PROGRAMS) $(HEADERS) +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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +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 \ + 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-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: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS 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-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 + + +# 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/tests/examples/opencv/gst_element_print_properties.c b/tests/examples/opencv/gst_element_print_properties.c new file mode 100644 index 0000000..4192fe8 --- /dev/null +++ b/tests/examples/opencv/gst_element_print_properties.c @@ -0,0 +1,599 @@ +/* GStreamer + * Copyright (C) 2010 Wesley Miller + * + * + * gst_element_print_properties(): a tool to inspect GStreamer + * element properties + * + * 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 3 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, see . + * + */ + + +#include +#include +#include +#include + +#include "gst_element_print_properties.h" + + +void +gst_element_print_properties (GstElement * element) +{ + ///////////////////////////////////////////////////////////////////////////// + // + // Formatting setup + // + // Change the valuses of c2w, c3w and c4w to adjust the 2nd, 3rd and 4th + // column widths, respectively. The gutter width is fixed at 3 and + // alwasys prints as " | ". Column 1 has a fixed width of 3. + // + // The first two rows for each element's output are its element class + // name (e.g. "GstAudioResample") and its element factory name + // ("audioresample"). The long element factory name ("Audio resampler") + // is in column 4 following the element factory name. + // + // Most properties use this format. Multivalued items like CAPS, certain + // GST_TYPEs and enums are different. + // + // Column 1 contains the rwc, "readable", "writable", "controllable" + // flags of the property. + // Column 2 contains the property name + // Column 3 contains the current value + // Column 4 contains the property type, e.g. G_TYPE_INT + // Column 5 contains the range, if there is one, and the default. + // The range is encosed in parentheses. e.g. "(1-10) 5" + // + // CAPS, enums, flags and some undefined items have no columns 4 or 5 and + // column 3 will contain a description of the item. Additional rows may + // list specific valused (CAPS and flags). + // + // String values are enclosed in double quotes. A missing right quote + // inidicates the string had been truncated. + // + // Screen column + // ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9---> + // + // formatted columns with built in gutters + // --- | ---------c2---------- | ---------c3-------- | -----------c4---------- | --> unspecified + // + // <-->|<--- property name --->|<-- current value -->|<-------- type --------->|<----- range and default -----> + // | ELEMENT CLASS NAME | GstAudioResample | | + // | ELEMENT FACTORY NAME | audioresample | Audio resampler | + // RW- | name | "audioResampler" | G_TYPE_STRING | null + // RW- | qos | false | G_TYPE_BOOLEAN | false + // RW- | quality | 8 | G_TYPE_INT | (0 - 10) 4 + // + ///////////////////////////////////////////////////////////////////////////// + + const guint c2w = 21; // column 2 width + const guint c3w = 19; // column 3 width + const guint c4w = 23; // column 4 width + + ///////////////////////////////////////////////////////////////////////////// + // end configuration variables. + ///////////////////////////////////////////////////////////////////////////// + + GParamSpec **property_specs; + guint num_properties, i; + gboolean readable; + + + g_return_if_fail (element != NULL); + + property_specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (element), + &num_properties); + + /*--- draw the header information ---*/ + print_column_titles (c2w, c3w, c4w); + print_element_info (element, c2w, c3w, c4w); + + + for (i = 0; i < num_properties; i++) { + gchar flags[4]; + GValue value = { 0, }; + GParamSpec *param = property_specs[i]; + + readable = FALSE; + + g_value_init (&value, param->value_type); + + flags[0] = '-'; + flags[1] = '-'; + flags[2] = '-'; + flags[3] = 0x0; + + if (param->flags & G_PARAM_READABLE) { + g_object_get_property (G_OBJECT (element), param->name, &value); + readable = TRUE; + flags[0] = 'r'; + } + + if (param->flags & G_PARAM_WRITABLE) + flags[1] = 'w'; + + if (param->flags & GST_PARAM_CONTROLLABLE) + flags[2] = 'c'; + + g_print ("%s |", flags); + g_print (" %-*s | ", c2w, g_param_spec_get_name (param)); + + switch (G_VALUE_TYPE (&value)) { + case G_TYPE_STRING: // String + { + GParamSpecString *pstring = G_PARAM_SPEC_STRING (param); + if (readable) { /* current */ + const char *string_val = g_value_get_string (&value); + gchar work_string[100]; + + if (string_val == NULL) + sprintf (work_string, "\"%s\"", "null"); + else + sprintf (work_string, "\"%s\"", string_val); + g_print ("%-*.*s", c3w, c3w, work_string); + } else { + g_print ("%-*s", c3w, ""); /* alt current */ + } + g_print (" | %-*s", c4w, "G_TYPE_STRING"); /* type */ + + if (pstring->default_value == NULL) + g_print (" | %s", "null"); /* default */ + else + g_print (" | \"%s\"", pstring->default_value); /* default */ + break; + } + + case G_TYPE_BOOLEAN: // Boolean + { + GParamSpecBoolean *pboolean = G_PARAM_SPEC_BOOLEAN (param); + if (readable) /* current */ + g_print ("%-*s", c3w, + (g_value_get_boolean (&value) ? "true" : "false")); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_BOOLEAN"); /* type */ + g_print (" | %s ", /* default */ + (pboolean->default_value ? "true" : "false")); + break; + } + + case G_TYPE_ULONG: // Unsigned Long + { + GParamSpecULong *pulong = G_PARAM_SPEC_ULONG (param); + if (readable) /* current */ + g_print ("%-*lu", c3w, g_value_get_ulong (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_ULONG"); /* type */ + g_print (" | (%lu - %lu) %lu ", pulong->minimum, pulong->maximum, /* range */ + pulong->default_value); /* default */ + break; + } + + case G_TYPE_LONG: // Long + { + GParamSpecLong *plong = G_PARAM_SPEC_LONG (param); + if (readable) /* current */ + g_print ("%-*ld", c3w, g_value_get_long (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_LONG"); /* type */ + g_print (" | (%ld - %ld) %ld ", plong->minimum, plong->maximum, /* range */ + plong->default_value); /* default */ + break; + } + + case G_TYPE_UINT: // Unsigned Integer + { + GParamSpecUInt *puint = G_PARAM_SPEC_UINT (param); + if (readable) /* current */ + g_print ("%-*u", c3w, g_value_get_uint (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_UINT"); /* type */ + g_print (" | (%u - %u) %u ", puint->minimum, puint->maximum, /* range */ + puint->default_value); /* default */ + break; + } + + case G_TYPE_INT: // Integer + { + GParamSpecInt *pint = G_PARAM_SPEC_INT (param); + if (readable) /* current */ + g_print ("%-*d", c3w, g_value_get_int (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_INT"); /* type */ + g_print (" | (%d - %d) %d ", pint->minimum, pint->maximum, /* range */ + pint->default_value); /* default */ + break; + } + + case G_TYPE_UINT64: // Unsigned Integer64. + { + GParamSpecUInt64 *puint64 = G_PARAM_SPEC_UINT64 (param); + if (readable) /* current */ + g_print ("%-*" G_GUINT64_FORMAT, c3w, g_value_get_uint64 (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_UINT64"); /* type */ + g_print (" | (%" G_GUINT64_FORMAT " - %" G_GUINT64_FORMAT ")" " %" G_GUINT64_FORMAT " ", puint64->minimum, puint64->maximum, /* range */ + puint64->default_value); /* default */ + break; + } + + case G_TYPE_INT64: // Integer64 + { + GParamSpecInt64 *pint64 = G_PARAM_SPEC_INT64 (param); + if (readable) /* current */ + g_print ("%-*" G_GINT64_FORMAT, c3w, g_value_get_int64 (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_INT64"); /* type */ + g_print (" | (%" G_GINT64_FORMAT " - %" G_GINT64_FORMAT ")" " %" G_GINT64_FORMAT " ", pint64->minimum, pint64->maximum, /* range */ + pint64->default_value); /* default */ + break; + } + + case G_TYPE_FLOAT: // Float. + { + GParamSpecFloat *pfloat = G_PARAM_SPEC_FLOAT (param); + if (readable) /* current */ + g_print ("%-*g", c3w, g_value_get_float (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_FLOAT"); /* type */ + g_print (" | (%g - %g) %g ", pfloat->minimum, pfloat->maximum, /* range */ + pfloat->default_value); /* default */ + break; + } + + case G_TYPE_DOUBLE: // Double + { + GParamSpecDouble *pdouble = G_PARAM_SPEC_DOUBLE (param); + if (readable) /* current */ + g_print ("%-*g", c3w, g_value_get_double (&value)); + else + g_print ("%-*s", c3w, ""); + g_print (" | %-*s", c4w, "G_TYPE_DOUBLE"); /* type */ + g_print (" | (%g - %g) %g ", pdouble->minimum, pdouble->maximum, /* range */ + pdouble->default_value); /* default */ + break; + } + + default: + if (param->value_type == GST_TYPE_CAPS) { + const GstCaps *caps = gst_value_get_caps (&value); + if (!caps) + g_print ("%-*s | %-*.*s |", c3w, "Caps (NULL)", c4w, c4w, " "); + else { + gchar prefix_string[100]; + sprintf (prefix_string, " | %-*.*s | ", c2w, c2w, " "); + print_caps (caps, prefix_string); + } + } + + else if (G_IS_PARAM_SPEC_ENUM (param)) { + GParamSpecEnum *penum = G_PARAM_SPEC_ENUM (param); + GEnumValue *values; + guint j = 0; + gint enum_value; + const gchar *def_val_nick = "", *cur_val_nick = ""; + gchar work_string[100]; + + values = G_ENUM_CLASS (g_type_class_ref (param->value_type))->values; + enum_value = g_value_get_enum (&value); + + while (values[j].value_name) { + if (values[j].value == enum_value) + cur_val_nick = values[j].value_nick; + if (values[j].value == penum->default_value) + def_val_nick = values[j].value_nick; + j++; + } + + sprintf (work_string, "%d, \"%s\"", enum_value, cur_val_nick); + g_print ("%-*.*s", c3w, c3w, work_string); + g_print (" | Enum \"%s\" : %d, \"%s\"", + g_type_name (G_VALUE_TYPE (&value)), + penum->default_value, def_val_nick); + } + + else if (G_IS_PARAM_SPEC_FLAGS (param)) { + GParamSpecFlags *pflags = G_PARAM_SPEC_FLAGS (param); + GFlagsValue *vals; + gchar *cur, *def; + gchar work_string[100]; + + vals = pflags->flags_class->values; + cur = flags_to_string (vals, g_value_get_flags (&value)); /* current */ + def = flags_to_string (vals, pflags->default_value); /* default */ + + /* current */ + sprintf (work_string, "0x%08x, \"%s\"", + g_value_get_flags (&value), cur); + g_print ("%-*.*s", c3w, c3w, work_string); + + /* type */ + sprintf (work_string, "Flags \"%s\"", + g_type_name (G_VALUE_TYPE (&value))); + g_print ("%-*.*s", c4w, c4w, work_string); + + /* default */ + g_print (" | 0x%08x, \"%s\"", pflags->default_value, def); + + /* values list */ + while (vals[0].value_name) { + sprintf (work_string, "\n | %-*.*s | (0x%08x): %-16s - %s", + c2w, c2w, "", + vals[0].value, vals[0].value_nick, vals[0].value_name); + g_print ("%s", work_string); + ++vals; + } + + g_free (cur); + g_free (def); + } + + else if (G_IS_PARAM_SPEC_OBJECT (param)) { + g_print ("%-*.*s | Object of type \"%s\"", + c3w, c3w, + g_type_name (param->value_type), g_type_name (param->value_type)); + } + + else if (G_IS_PARAM_SPEC_BOXED (param)) { + g_print ("%-*.*s | Boxed pointer of type \"%s\"", + c3w, c3w, + g_type_name (param->value_type), g_type_name (param->value_type)); + } + + else if (G_IS_PARAM_SPEC_POINTER (param)) { + if (param->value_type != G_TYPE_POINTER) { + g_print ("%-*.*s | Pointer of type \"%s\"", + c3w, c3w, + g_type_name (param->value_type), + g_type_name (param->value_type)); + } else { + g_print ("%-*.*s |", c3w, c3w, "Pointer."); + } + } + + else if (param->value_type == G_TYPE_VALUE_ARRAY) { + GParamSpecValueArray *pvarray = G_PARAM_SPEC_VALUE_ARRAY (param); + if (pvarray->element_spec) { + g_print ("%-*.*s :Array of GValues of type \"%s\"", + c3w, c3w, + g_type_name (pvarray->element_spec->value_type), + g_type_name (pvarray->element_spec->value_type)); + } else { + g_print ("%-*.*s :", c3w, c3w, "Array of GValues"); + } + } + + else if (GST_IS_PARAM_SPEC_FRACTION (param)) { + GstParamSpecFraction *pfraction = GST_PARAM_SPEC_FRACTION (param); + gchar work_string[100]; + + if (readable) { /* current */ + sprintf (work_string, "%d/%d", + gst_value_get_fraction_numerator (&value), + gst_value_get_fraction_denominator (&value)); + g_print ("%-*.*s", c3w, c3w, work_string); + } else + g_print ("%-*s", c3w, ""); + + g_print (" | %-*.*s", /* type */ + c3w, c3w, " Fraction. "); + g_print (" | (%d/%d - %d/%d)", /* range */ + pfraction->min_num, pfraction->min_den, + pfraction->max_num, pfraction->max_den); + g_print (" %d/%d ", /* default */ + pfraction->def_num, pfraction->def_den); + } + + else if (GST_IS_PARAM_SPEC_MINI_OBJECT (param)) { + g_print ("%-*.*s | MiniObject of type \"%s\"", + c3w, c3w, + g_type_name (param->value_type), g_type_name (param->value_type)); + } + + else { + g_print ("Unknown type %ld \"%s\"", + (glong) param->value_type, g_type_name (param->value_type)); + + } + break; + } + + if (!readable) + g_print (" Write only\n"); + else + g_print ("\n"); + + g_value_reset (&value); + } + + if (0 == num_properties) + g_print (" none\n"); + + g_free (property_specs); +} + +//------------------------------------------------------------------------------ +void +print_column_titles (guint c2w, guint c3w, guint c4w) +{ + ////////////////////////////////////////////////////////////////////////// + // + // Create Header for property listing + // RWF | --- element name ---- | ---------c3-------- | -----------c4---------- | --> unspecified + // + ////////////////////////////////////////////////////////////////////////// + gchar work_string[200]; + gchar dashes[] = "-----------------------------"; + gint llen = 0; + gint rlen = 0; + + /*--- column 1 - RWC ---*/ + sprintf (work_string, "<-->|<"); + + /*--- column 2 - property name ---*/ + llen = (c2w - 15) / 2; /* width of " property name " = 15 */ + rlen = c2w - 15 - llen; + + strncat (work_string, dashes, llen); + strcat (work_string, " property name "); + strncat (work_string, dashes, rlen); + strcat (work_string, ">|<"); + + /*--- column 3 - current value ---*/ + llen = (c3w - 15) / 2; /* width of " current value " = 15 */ + rlen = c3w - 15 - llen; + + strncat (work_string, dashes, llen); + strcat (work_string, " current value "); + strncat (work_string, dashes, rlen); + strcat (work_string, ">|<"); + + /*--- column 4 - type ---*/ + llen = (c4w - 6) / 2; /* width of " type " = 6 */ + rlen = c4w - 6 - llen; + + strncat (work_string, dashes, llen); + strcat (work_string, " type "); + strncat (work_string, dashes, rlen); + strcat (work_string, ">|<"); + + /*--- column 5 - range and default ---*/ + strcat (work_string, "----- range and default ----->"); + + g_print ("\n%s\n", work_string); +} + +//------------------------------------------------------------------------------ +void +print_element_info (GstElement * element, guint c2w, guint c3w, guint c4w) +{ + ///////////////////////////////////////////////////////////////////////////// + // + // Print element factory and class information as part of each header + // + ///////////////////////////////////////////////////////////////////////////// + gchar work_string[100]; + GstElementFactory *factory = gst_element_get_factory (element); + + sprintf (work_string, "ELEMENT CLASS NAME"); + g_print (" | %-*s", c2w, work_string); + g_print (" | %-*s", c3w, g_type_name (G_OBJECT_TYPE (element))); + g_print (" | %-*s | \n", c4w, ""); + + + sprintf (work_string, "ELEMENT FACTORY NAME"); + g_print (" | %-*s", c2w, work_string); + + g_print (" | %-*s", c3w, + gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory))); + g_print (" | %-*s | \n", c4w, gst_element_factory_get_longname (factory)); + +// "Audio Resampler" g_print( " | %-*s", c3w, gst_element_factory_get_longname( gst_element_get_factory( element )) ); + + +} + +//------------------------------------------------------------------------------ +gchar * +flags_to_string (GFlagsValue * vals, guint flags) +{ + ///////////////////////////////////////////////////////////////////////////// + // + // List individual flags in separate rows + // + ///////////////////////////////////////////////////////////////////////////// + GString *s = NULL; + guint flags_left, i; + + /* first look for an exact match and count the number of values */ + for (i = 0; vals[i].value_name != NULL; ++i) { + if (vals[i].value == flags) + return g_strdup (vals[i].value_nick); + } + + s = g_string_new (NULL); + + /* we assume the values are sorted from lowest to highest value */ + flags_left = flags; + while (i > 0) { + --i; + if (0 != vals[i].value && (flags_left & vals[i].value) == vals[i].value) { + if (0 < s->len) + g_string_append (s, " | "); + g_string_append (s, vals[i].value_nick); + flags_left -= vals[i].value; + if (0 == flags_left) + break; + } + } + + if (0 == s->len) + g_string_assign (s, "(none)"); + + return g_string_free (s, FALSE); +} + + +//------------------------------------------------------------------------------ +void +print_caps (const GstCaps * caps, const gchar * pfx) +{ + ///////////////////////////////////////////////////////////////////////////// + // + // Print each caps value on a separate line + // + ///////////////////////////////////////////////////////////////////////////// + guint i; + + g_return_if_fail (caps != NULL); + + if (gst_caps_is_any (caps)) { + g_print ("%s | %s", pfx, "ANY | |"); + return; + } + if (gst_caps_is_empty (caps)) { + g_print ("%s | %s", pfx, "EMPTY | |"); + return; + } + + for (i = 0; i < gst_caps_get_size (caps); i++) { + GstStructure *structure = gst_caps_get_structure (caps, i); + g_print ("%s", gst_structure_get_name (structure)); + gst_structure_foreach (structure, print_field, (gpointer) pfx); + } +} + +//------------------------------------------------------------------------------ +gboolean +print_field (GQuark field, const GValue * value, gpointer pfx) +{ + ///////////////////////////////////////////////////////////////////////////// + // + // printing function for individual caps fields + // + ///////////////////////////////////////////////////////////////////////////// + gchar *str = gst_value_serialize (value); + g_print ("\n%s %-15.15s - %s", + (gchar *) pfx, g_quark_to_string (field), str); + g_free (str); + return TRUE; +} diff --git a/tests/examples/opencv/gst_element_print_properties.h b/tests/examples/opencv/gst_element_print_properties.h new file mode 100644 index 0000000..49beee3 --- /dev/null +++ b/tests/examples/opencv/gst_element_print_properties.h @@ -0,0 +1,34 @@ +/* GStreamer + * Copyright (C) 2010 Wesley Miller + * + * + * gst_element_print_properties(): a tool to inspect GStreamer + * element properties + * + * 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 3 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, see . + * + */ + +#ifndef GST_ELEMENT_PRINT_PROPERTIES_H +#define GST_ELEMENT_PRINT_PROPERTIES_H + +extern void gst_element_print_properties (GstElement * element); +extern void print_column_titles (guint c2w, guint c3w, guint c4w); +extern void print_element_info (GstElement * element, guint c2w, guint c3w, + guint c4w); +extern gchar *flags_to_string (GFlagsValue * vals, guint flags); +extern void print_caps (const GstCaps * caps, const gchar * pfx); +extern gboolean print_field (GQuark field, const GValue * value, gpointer pfx); + +#endif diff --git a/tests/examples/opencv/gstmotioncells_dynamic_test.c b/tests/examples/opencv/gstmotioncells_dynamic_test.c new file mode 100644 index 0000000..8383406 --- /dev/null +++ b/tests/examples/opencv/gstmotioncells_dynamic_test.c @@ -0,0 +1,241 @@ +/* GStreamer + * Copyright (C) 2011 Robert Jobbagy + * + * + * gst_motioncells_dynamic_test(): a test tool what can to do dynamic change properties + * + * + * 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 3 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, see . + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include "gstmotioncells_dynamic_test.h" +#include "gst_element_print_properties.h" + +const guint c2w = 21; // column 2 width +const guint c3w = 19; // column 3 width +const guint c4w = 23; // column 4 width + +void +setProperty (GstElement * mcells, char *property, char *prop_value, GType type, + GValue * value) +{ + + switch (type) { + case G_TYPE_STRING: + { + g_object_set (G_OBJECT (mcells), property, prop_value, NULL); + break; + } + case G_TYPE_BOOLEAN: + { + gboolean flag = (g_strcmp0 (prop_value, "true") == 0) ? TRUE : FALSE; + g_object_set (G_OBJECT (mcells), property, flag, NULL); + break; + } + case G_TYPE_ULONG: + { + unsigned long ulongval = strtoul (prop_value, NULL, 0); + g_object_set (G_OBJECT (mcells), property, ulongval, NULL); + break; + } + case G_TYPE_LONG: + { + long longval = atol (prop_value); + g_object_set (G_OBJECT (mcells), property, longval, NULL); + break; + } + case G_TYPE_UINT: + { + unsigned int uintval = atoi (prop_value); + g_object_set (G_OBJECT (mcells), property, uintval, NULL); + break; + } + case G_TYPE_INT: + { + int intval = atoi (prop_value); + g_object_set (G_OBJECT (mcells), property, intval, NULL); + break; + } + case G_TYPE_UINT64: + { + guint64 guint64val = atoi (prop_value); + g_object_set (G_OBJECT (mcells), property, guint64val, NULL); + break; + } + case G_TYPE_INT64: + { + gint64 gint64val = atoi (prop_value); + g_object_set (G_OBJECT (mcells), property, gint64val, NULL); + break; + } + case G_TYPE_FLOAT: + { + float floatval = atof (prop_value); + g_object_set (G_OBJECT (mcells), property, floatval, NULL); + break; + } + case G_TYPE_DOUBLE: + { + double doubleval = strtod (prop_value, NULL); + g_object_set (G_OBJECT (mcells), property, doubleval, NULL); + break; + } + default: + fprintf (stderr, "You gave me something wrong type of data !!! \n"); + break; + } +} + +// gst-launch v4l2src ! videoscale ! videorate ! capsfilter "caps=video/x-raw-yuv,width=320,height=240,framerate=10/1" ! ffmpegcolorspace ! motioncells ! ffmpegcolorspace ! xvimagesink +int +main (int argc, char *argv[]) +{ + GstElement *pipeline, *source, *videor, *videos, *decodebin, *capsf, + *colorsp0, *colorsp1, *mcells, *sink; + GstCaps *caps; + gchar property[20]; + gchar prop_value[100]; + GParamSpec **property_specs; + guint num_properties, i; + GValue value = { 0, }; + gboolean found_property = FALSE; + int ret; + + // Initialisation // + gst_init (&argc, &argv); + fprintf (stderr, "Usage: %s test or rtsp rtsp://your/cam/address\n", argv[0]); + // Create gstreamer elements // + pipeline = gst_pipeline_new ("moitoncells-pipeline"); + if (argc == 2 && (g_strcmp0 (argv[1], "test") == 0)) + source = gst_element_factory_make ("videotestsrc", "vidsrc"); + else if (argc == 3 && (g_strcmp0 (argv[1], "rtsp") == 0)) + source = gst_element_factory_make ("rtspsrc", "rtspsrc0"); + else if (argc == 1) + source = gst_element_factory_make ("v4l2src", "v4l2"); + else { + fprintf (stderr, "Usage: %s test or rtsp rtsp://your/cam/address\n", + argv[0]); + exit (-1); + } + + videor = gst_element_factory_make ("videorate", "videor"); + videos = gst_element_factory_make ("videoscale", "videos"); + capsf = gst_element_factory_make ("capsfilter", "capsf"); + if (argc == 3 && (g_strcmp0 (argv[1], "rtsp") == 0)) + decodebin = gst_element_factory_make ("decodebin", "decode"); + else + decodebin = NULL; + colorsp0 = gst_element_factory_make ("ffmpegcolorspace", "colorspace0"); + mcells = gst_element_factory_make ("motioncells", "mcells"); + colorsp1 = gst_element_factory_make ("ffmpegcolorspace", "colorspace1"); + sink = gst_element_factory_make ("xvimagesink", "xv-image-sink"); + if (!pipeline || !source || !videor || !videos || !capsf || !colorsp0 + || !mcells || !colorsp1 || !sink) { + g_printerr ("One element could not be created. Exiting.\n"); + return -1; + } + if (argc == 3 && (g_strcmp0 (argv[1], "rtsp") == 0) && !decodebin) { + g_printerr ("Decodebin could not be created. Exiting.\n"); + return -1; + } + if ((g_strcmp0 (argv[1], "rtsp") == 0)) { + g_object_set (G_OBJECT (source), "location", argv[2], NULL); + g_object_set (G_OBJECT (source), "latency", 1000, NULL); + } else if ((g_strcmp0 (argv[1], "test") == 0)) + g_object_set (G_OBJECT (source), "pattern", 18, NULL); + + caps = + gst_caps_from_string + ("video/x-raw-yuv,width=320,height=240,framerate=10/1"); + g_object_set (G_OBJECT (capsf), "caps", caps, NULL); + //g_object_set (G_OBJECT (sink), "sync",FALSE,NULL); + + if (argc > 1) { + if (g_strcmp0 (argv[1], "test") == 0) { + gst_bin_add_many (GST_BIN (pipeline), + source, videor, videos, capsf, colorsp0, mcells, colorsp1, sink, + NULL); + + gst_element_link_many (source, videor, videos, capsf, colorsp0, mcells, + colorsp1, sink, NULL); + } else if (g_strcmp0 (argv[1], "rtsp") == 0) { + gst_bin_add_many (GST_BIN (pipeline), + source, videor, videos, capsf, decodebin, colorsp0, mcells, colorsp1, + sink, NULL); + + gst_element_link_many (source, videor, videos, capsf, decodebin, colorsp0, + mcells, colorsp1, sink, NULL); + } + } else { //default + gst_bin_add_many (GST_BIN (pipeline), + source, videor, videos, capsf, colorsp0, mcells, colorsp1, sink, NULL); + + gst_element_link_many (source, videor, videos, capsf, colorsp0, mcells, + colorsp1, sink, NULL); + } + + g_print ("Now playing\n"); + gst_element_set_state (pipeline, GST_STATE_PLAYING); + g_print ("Running...\n"); + g_print ("You can use these properties : \n"); + gst_element_print_properties (mcells); + g_print ("change property here: example some_property property_value \n"); + g_print ("Quit with 'q' \n"); + //get all properties + property_specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (mcells), + &num_properties); + while (TRUE) { + found_property = FALSE; + i = 0; + + ret = scanf ("%19s %99s", property, prop_value); + + if (ret < 1) + g_printerr ("Error parsing command.\n"); + + if ((g_strcmp0 (property, "q") == 0) || (g_strcmp0 (prop_value, "q") == 0)) + break; + printf ("property: %s -> value: %s \n", property, prop_value); + for (i = 0; i < num_properties; i++) { + GParamSpec *param = property_specs[i]; + g_value_init (&value, param->value_type); + g_object_get_property (G_OBJECT (mcells), param->name, &value); + //fprintf(stderr,"property: %s and param name: %s and property value: %s \n",property,param->name,prop_value); + if ((g_strcmp0 (property, param->name) == 0) && !found_property && + (g_strcmp0 (prop_value, "") != 0) + && (g_strcmp0 (prop_value, "\"") != 0) + && (g_strcmp0 (prop_value, "\'") != 0)) { + GType type; + found_property = TRUE; + type = param->value_type; + setProperty (mcells, property, prop_value, type, &value); + } + g_value_unset (&value); + if (found_property) + break; + } + } + + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); + return 0; +} diff --git a/tests/examples/opencv/gstmotioncells_dynamic_test.h b/tests/examples/opencv/gstmotioncells_dynamic_test.h new file mode 100644 index 0000000..6760c66 --- /dev/null +++ b/tests/examples/opencv/gstmotioncells_dynamic_test.h @@ -0,0 +1,30 @@ +/* GStreamer + * Copyright (C) 2011 Robert Jobbagy + * + * + * gst_motioncells_dynamic_test(): a test tool what can to do dynamic change properties + * + * + * 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 3 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, see . + * + */ + +#ifndef GST_MOTIONCELLS_DYNAMIC_TEST_H +#define GST_MOTIONCELLS_DYNAMIC_TEST_H + +extern void setProperty (GstElement * mcells, char *property, char *prop_value, + GType type, GValue * value); + + +#endif diff --git a/tests/examples/scaletempo/Makefile.in b/tests/examples/scaletempo/Makefile.in index 0c9258f..0162793 100644 --- a/tests/examples/scaletempo/Makefile.in +++ b/tests/examples/scaletempo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -43,6 +43,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -86,8 +87,8 @@ am_scaletempo_demo_OBJECTS = scaletempo_demo-demo-main.$(OBJEXT) \ scaletempo_demo-demo-gui.$(OBJEXT) scaletempo_demo_OBJECTS = $(am_scaletempo_demo_OBJECTS) scaletempo_demo_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent scaletempo_demo_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -103,21 +104,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(scaletempo_demo_SOURCES) DIST_SOURCES = $(scaletempo_demo_SOURCES) @@ -129,7 +130,6 @@ 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@ @@ -147,7 +147,6 @@ 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@ @@ -182,6 +181,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -221,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,6 +239,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -246,13 +248,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -277,13 +282,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -331,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -362,8 +369,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -387,6 +398,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -411,10 +424,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -426,6 +443,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -450,6 +471,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -485,7 +507,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -553,7 +574,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -scaletempo-demo$(EXEEXT): $(scaletempo_demo_OBJECTS) $(scaletempo_demo_DEPENDENCIES) +scaletempo-demo$(EXEEXT): $(scaletempo_demo_OBJECTS) $(scaletempo_demo_DEPENDENCIES) $(EXTRA_scaletempo_demo_DEPENDENCIES) @rm -f scaletempo-demo$(EXEEXT) $(AM_V_CCLD)$(scaletempo_demo_LINK) $(scaletempo_demo_OBJECTS) $(scaletempo_demo_LDADD) $(LIBS) @@ -570,74 +591,65 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< scaletempo_demo-demo-main.o: demo-main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-main.o -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-main.Tpo -c -o scaletempo_demo-demo-main.o `test -f 'demo-main.c' || echo '$(srcdir)/'`demo-main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-main.Tpo $(DEPDIR)/scaletempo_demo-demo-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-main.c' object='scaletempo_demo-demo-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-main.c' object='scaletempo_demo-demo-main.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-main.o `test -f 'demo-main.c' || echo '$(srcdir)/'`demo-main.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-main.o `test -f 'demo-main.c' || echo '$(srcdir)/'`demo-main.c scaletempo_demo-demo-main.obj: demo-main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-main.obj -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-main.Tpo -c -o scaletempo_demo-demo-main.obj `if test -f 'demo-main.c'; then $(CYGPATH_W) 'demo-main.c'; else $(CYGPATH_W) '$(srcdir)/demo-main.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-main.Tpo $(DEPDIR)/scaletempo_demo-demo-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-main.c' object='scaletempo_demo-demo-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-main.c' object='scaletempo_demo-demo-main.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-main.obj `if test -f 'demo-main.c'; then $(CYGPATH_W) 'demo-main.c'; else $(CYGPATH_W) '$(srcdir)/demo-main.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-main.obj `if test -f 'demo-main.c'; then $(CYGPATH_W) 'demo-main.c'; else $(CYGPATH_W) '$(srcdir)/demo-main.c'; fi` scaletempo_demo-demo-player.o: demo-player.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-player.o -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-player.Tpo -c -o scaletempo_demo-demo-player.o `test -f 'demo-player.c' || echo '$(srcdir)/'`demo-player.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-player.Tpo $(DEPDIR)/scaletempo_demo-demo-player.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-player.c' object='scaletempo_demo-demo-player.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-player.c' object='scaletempo_demo-demo-player.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-player.o `test -f 'demo-player.c' || echo '$(srcdir)/'`demo-player.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-player.o `test -f 'demo-player.c' || echo '$(srcdir)/'`demo-player.c scaletempo_demo-demo-player.obj: demo-player.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-player.obj -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-player.Tpo -c -o scaletempo_demo-demo-player.obj `if test -f 'demo-player.c'; then $(CYGPATH_W) 'demo-player.c'; else $(CYGPATH_W) '$(srcdir)/demo-player.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-player.Tpo $(DEPDIR)/scaletempo_demo-demo-player.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-player.c' object='scaletempo_demo-demo-player.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-player.c' object='scaletempo_demo-demo-player.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-player.obj `if test -f 'demo-player.c'; then $(CYGPATH_W) 'demo-player.c'; else $(CYGPATH_W) '$(srcdir)/demo-player.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-player.obj `if test -f 'demo-player.c'; then $(CYGPATH_W) 'demo-player.c'; else $(CYGPATH_W) '$(srcdir)/demo-player.c'; fi` scaletempo_demo-demo-gui.o: demo-gui.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-gui.o -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-gui.Tpo -c -o scaletempo_demo-demo-gui.o `test -f 'demo-gui.c' || echo '$(srcdir)/'`demo-gui.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-gui.Tpo $(DEPDIR)/scaletempo_demo-demo-gui.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-gui.c' object='scaletempo_demo-demo-gui.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-gui.c' object='scaletempo_demo-demo-gui.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-gui.o `test -f 'demo-gui.c' || echo '$(srcdir)/'`demo-gui.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-gui.o `test -f 'demo-gui.c' || echo '$(srcdir)/'`demo-gui.c scaletempo_demo-demo-gui.obj: demo-gui.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -MT scaletempo_demo-demo-gui.obj -MD -MP -MF $(DEPDIR)/scaletempo_demo-demo-gui.Tpo -c -o scaletempo_demo-demo-gui.obj `if test -f 'demo-gui.c'; then $(CYGPATH_W) 'demo-gui.c'; else $(CYGPATH_W) '$(srcdir)/demo-gui.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scaletempo_demo-demo-gui.Tpo $(DEPDIR)/scaletempo_demo-demo-gui.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-gui.c' object='scaletempo_demo-demo-gui.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-gui.c' object='scaletempo_demo-demo-gui.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) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-gui.obj `if test -f 'demo-gui.c'; then $(CYGPATH_W) 'demo-gui.c'; else $(CYGPATH_W) '$(srcdir)/demo-gui.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scaletempo_demo_CFLAGS) $(CFLAGS) -c -o scaletempo_demo-demo-gui.obj `if test -f 'demo-gui.c'; then $(CYGPATH_W) 'demo-gui.c'; else $(CYGPATH_W) '$(srcdir)/demo-gui.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -741,10 +753,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/scaletempo/demo-gui.c b/tests/examples/scaletempo/demo-gui.c index 55c7643..c31c2bf 100644 --- a/tests/examples/scaletempo/demo-gui.c +++ b/tests/examples/scaletempo/demo-gui.c @@ -1035,8 +1035,10 @@ demo_gui_show_func (DemoGui * gui) seek_range = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 5.0, 30.0, 0.00))); +#if !GTK_CHECK_VERSION (3, 0, 0) gtk_range_set_update_policy (GTK_RANGE (seek_range), GTK_UPDATE_DISCONTINUOUS); +#endif seek_bar = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (seek_bar), amount_played, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (seek_bar), seek_range, TRUE, TRUE, 2); diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in index f025ca5..4d6f81b 100644 --- a/tests/files/Makefile.in +++ b/tests/files/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -89,7 +90,6 @@ 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@ @@ -107,7 +107,6 @@ 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@ @@ -142,6 +141,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -181,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -198,6 +199,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -206,13 +208,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -237,13 +242,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -291,6 +297,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -322,8 +329,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -347,6 +358,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -371,10 +384,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -386,6 +403,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -410,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -559,10 +580,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in index 0fdefaf..adf438f 100644 --- a/tests/icles/Makefile.in +++ b/tests/icles/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -41,6 +41,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -87,8 +88,8 @@ am__pitch_test_SOURCES_DIST = pitch-test.c pitch_test_OBJECTS = $(am_pitch_test_OBJECTS) am__DEPENDENCIES_1 = @USE_SOUNDTOUCH_TRUE@pitch_test_DEPENDENCIES = $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent pitch_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(pitch_test_CFLAGS) \ @@ -103,21 +104,21 @@ 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 = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 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 = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(pitch_test_SOURCES) DIST_SOURCES = $(am__pitch_test_SOURCES_DIST) @@ -128,7 +129,6 @@ 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@ @@ -146,7 +146,6 @@ 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@ @@ -181,6 +180,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -220,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -237,6 +238,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -245,13 +247,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -276,13 +281,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -330,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -361,8 +368,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -386,6 +397,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -410,10 +423,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -425,6 +442,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -449,6 +470,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -484,7 +506,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -567,7 +588,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -pitch-test$(EXEEXT): $(pitch_test_OBJECTS) $(pitch_test_DEPENDENCIES) +pitch-test$(EXEEXT): $(pitch_test_OBJECTS) $(pitch_test_DEPENDENCIES) $(EXTRA_pitch_test_DEPENDENCIES) @rm -f pitch-test$(EXEEXT) $(AM_V_CCLD)$(pitch_test_LINK) $(pitch_test_OBJECTS) $(pitch_test_LDADD) $(LIBS) @@ -582,42 +603,37 @@ distclean-compile: .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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< pitch_test-pitch-test.o: pitch-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pitch_test_CFLAGS) $(CFLAGS) -MT pitch_test-pitch-test.o -MD -MP -MF $(DEPDIR)/pitch_test-pitch-test.Tpo -c -o pitch_test-pitch-test.o `test -f 'pitch-test.c' || echo '$(srcdir)/'`pitch-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pitch_test-pitch-test.Tpo $(DEPDIR)/pitch_test-pitch-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pitch-test.c' object='pitch_test-pitch-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pitch-test.c' object='pitch_test-pitch-test.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) $(pitch_test_CFLAGS) $(CFLAGS) -c -o pitch_test-pitch-test.o `test -f 'pitch-test.c' || echo '$(srcdir)/'`pitch-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pitch_test_CFLAGS) $(CFLAGS) -c -o pitch_test-pitch-test.o `test -f 'pitch-test.c' || echo '$(srcdir)/'`pitch-test.c pitch_test-pitch-test.obj: pitch-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pitch_test_CFLAGS) $(CFLAGS) -MT pitch_test-pitch-test.obj -MD -MP -MF $(DEPDIR)/pitch_test-pitch-test.Tpo -c -o pitch_test-pitch-test.obj `if test -f 'pitch-test.c'; then $(CYGPATH_W) 'pitch-test.c'; else $(CYGPATH_W) '$(srcdir)/pitch-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pitch_test-pitch-test.Tpo $(DEPDIR)/pitch_test-pitch-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pitch-test.c' object='pitch_test-pitch-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pitch-test.c' object='pitch_test-pitch-test.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) $(pitch_test_CFLAGS) $(CFLAGS) -c -o pitch_test-pitch-test.obj `if test -f 'pitch-test.c'; then $(CYGPATH_W) 'pitch-test.c'; else $(CYGPATH_W) '$(srcdir)/pitch-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pitch_test_CFLAGS) $(CFLAGS) -c -o pitch_test-pitch-test.obj `if test -f 'pitch-test.c'; then $(CYGPATH_W) 'pitch-test.c'; else $(CYGPATH_W) '$(srcdir)/pitch-test.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -721,10 +737,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tools/Makefile.in b/tools/Makefile.in index fd79f9b..e28e6ec 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 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. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -39,6 +39,7 @@ 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-libtool.m4 \ $(top_srcdir)/common/m4/as-objc.m4 \ $(top_srcdir)/common/m4/as-python.m4 \ $(top_srcdir)/common/m4/as-scrub-include.m4 \ @@ -76,11 +77,11 @@ 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 = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 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 = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -89,7 +90,6 @@ 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@ @@ -107,7 +107,6 @@ 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@ @@ -142,6 +141,7 @@ DEPDIR = @DEPDIR@ DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ DIRAC_CFLAGS = @DIRAC_CFLAGS@ DIRAC_LIBS = @DIRAC_LIBS@ +DIRECT3D_LIBS = @DIRECT3D_LIBS@ DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ DIRECTFB_LIBS = @DIRECTFB_LIBS@ @@ -181,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -198,6 +199,7 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@ GSM_LIBS = @GSM_LIBS@ GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_AGE = @GST_AGE@ GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ GST_BASE_LIBS = @GST_BASE_LIBS@ @@ -206,13 +208,16 @@ 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_CURRENT = @GST_CURRENT@ 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_LIBVERSION = @GST_LIBVERSION@ GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ GST_LICENSE = @GST_LICENSE@ +GST_LT_LDFLAGS = @GST_LT_LDFLAGS@ GST_MAJORMINOR = @GST_MAJORMINOR@ GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ @@ -237,13 +242,14 @@ 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_REVISION = @GST_REVISION@ 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_DIRECT3D = @HAVE_DIRECT3D@ HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ HAVE_DTS = @HAVE_DTS@ @@ -291,6 +297,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MIMIC_CFLAGS = @MIMIC_CFLAGS@ MIMIC_LIBS = @MIMIC_LIBS@ MJPEG_CFLAGS = @MJPEG_CFLAGS@ @@ -322,8 +329,12 @@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OFA_CFLAGS = @OFA_CFLAGS@ OFA_LIBS = @OFA_LIBS@ +OPENAL_CFLAGS = @OPENAL_CFLAGS@ +OPENAL_LIBS = @OPENAL_LIBS@ OPENCV_CFLAGS = @OPENCV_CFLAGS@ OPENCV_LIBS = @OPENCV_LIBS@ +OPUS_CFLAGS = @OPUS_CFLAGS@ +OPUS_LIBS = @OPUS_LIBS@ ORCC = @ORCC@ ORCC_FLAGS = @ORCC_FLAGS@ ORC_CFLAGS = @ORC_CFLAGS@ @@ -347,6 +358,8 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PVR_CFLAGS = @PVR_CFLAGS@ +PVR_LIBS = @PVR_LIBS@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -371,10 +384,14 @@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPANDSP_CFLAGS = @SPANDSP_CFLAGS@ +SPANDSP_LIBS = @SPANDSP_LIBS@ SPC_LIBS = @SPC_LIBS@ STRIP = @STRIP@ SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ SWFDEC_LIBS = @SWFDEC_LIBS@ +TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@ +TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@ TIGER_CFLAGS = @TIGER_CFLAGS@ TIGER_LIBS = @TIGER_LIBS@ TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ @@ -386,6 +403,10 @@ VALGRIND_PATH = @VALGRIND_PATH@ VDPAU_CFLAGS = @VDPAU_CFLAGS@ VDPAU_LIBS = @VDPAU_LIBS@ VERSION = @VERSION@ +VOAACENC_CFLAGS = @VOAACENC_CFLAGS@ +VOAACENC_LIBS = @VOAACENC_LIBS@ +VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@ +VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@ VPX_LIBS = @VPX_LIBS@ WARNING_CFLAGS = @WARNING_CFLAGS@ WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ @@ -410,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -589,10 +610,15 @@ install-am: all-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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tools/element-templates/audiofilter b/tools/element-templates/audiofilter index cf10fc1..5e7ea37 100644 --- a/tools/element-templates/audiofilter +++ b/tools/element-templates/audiofilter @@ -12,27 +12,56 @@ gstreamer-audio-0.10 % prototypes static gboolean gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format); +static gboolean +gst_replace_start (GstBaseTransform * trans); static GstFlowReturn gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf); +static gboolean +gst_replace_stop (GstBaseTransform * trans); % declare-class GstAudioFilterClass *audio_filter_class = GST_AUDIO_FILTER_CLASS (klass); GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass); % set-methods audio_filter_class->setup = GST_DEBUG_FUNCPTR (gst_replace_setup); + base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start); base_transform_class->transform_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_ip); + base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop); % methods static gboolean gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format) { + /* GstReplace *replace = GST_REPLACE (filter); */ + + /* handle audio format changes */ + return TRUE; +} + +static gboolean +gst_replace_start (GstBaseTransform * trans) +{ + /* GstReplace *replace = GST_REPLACE (trans); */ + + /* initialize processing */ return TRUE; } static GstFlowReturn gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf) { + /* GstReplace *replace = GST_REPLACE (trans); */ + + /* process the audio data in the buffer in-place */ + return GST_FLOW_OK; +} - return GST_FLOW_ERROR; +static gboolean +gst_replace_stop (GstBaseTransform * trans) +{ + /* GstReplace *replace = GST_REPLACE (trans); */ + + /* finalize processing */ + return TRUE; } % end diff --git a/tools/element-templates/sinkpad b/tools/element-templates/sinkpad index 6d3bad1..ec8a980 100644 --- a/tools/element-templates/sinkpad +++ b/tools/element-templates/sinkpad @@ -30,8 +30,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", ); % base-init - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_replace_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_replace_sink_template); % instance-init replace->sinkpad = gst_pad_new_from_static_template (&gst_replace_sink_template diff --git a/tools/element-templates/sinkpad-simple b/tools/element-templates/sinkpad-simple index e8538b6..822079b 100644 --- a/tools/element-templates/sinkpad-simple +++ b/tools/element-templates/sinkpad-simple @@ -12,8 +12,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", ); % base-init - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_replace_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_replace_sink_template); % instance-init replace->sinkpad = gst_pad_new_from_static_template (&gst_replace_sink_template diff --git a/tools/element-templates/srcpad b/tools/element-templates/srcpad index d1f7992..9c4f320 100644 --- a/tools/element-templates/srcpad +++ b/tools/element-templates/srcpad @@ -28,8 +28,8 @@ GST_STATIC_PAD_TEMPLATE ("src", ); % base-init - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_replace_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_replace_src_template); % instance-init replace->srcpad = gst_pad_new_from_static_template (&gst_replace_src_template diff --git a/tools/element-templates/srcpad-simple b/tools/element-templates/srcpad-simple index 0fca915..efb3190 100644 --- a/tools/element-templates/srcpad-simple +++ b/tools/element-templates/srcpad-simple @@ -12,8 +12,8 @@ GST_STATIC_PAD_TEMPLATE ("src", ); % base-init - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_replace_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_replace_src_template); % instance-init replace->srcpad = gst_pad_new_from_static_template (&gst_replace_src_template diff --git a/tools/gst-element-maker b/tools/gst-element-maker index 4255aa8..bd4cc98 100755 --- a/tools/gst-element-maker +++ b/tools/gst-element-maker @@ -239,10 +239,8 @@ static gboolean plugin_init (GstPlugin * plugin) { - gst_element_register (plugin, "replace", GST_RANK_NONE, - gst_replace_get_type ()); - - return TRUE; + return gst_element_register (plugin, "replace", GST_RANK_NONE, + GST_TYPE_REPLACE); } #ifndef VERSION diff --git a/win32/common/config.h b/win32/common/config.h new file mode 100644 index 0000000..ea4458c --- /dev/null +++ b/win32/common/config.h @@ -0,0 +1,223 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ +/* This copy of config.h.in is specifically for win32 Visual Studio builds */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* gettext package name */ +#define GETTEXT_PACKAGE "gst-plugins-bad-0.10" + +/* PREFIX - specifically added for Windows for easier moving */ +#define PREFIX "C:\\gstreamer" + +/* Location of registry */ +#define GST_CACHE_DIR PREFIX "\\var\\cache" + +/* Defined if gcov is enabled to force a rebuild due to config.h changing */ +#undef GST_GCOV_ENABLED + +/* Default errorlevel to use */ +#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR + +/* GStreamer license */ +#define GST_LICENSE "LGPL" + +/* package name in plugins */ +#define GST_PACKAGE_NAME "GStreamer Bad Plug-ins source release" + +/* package origin */ +#define GST_PACKAGE_ORIGIN "Unknown package origin" + +/* 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 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 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 if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Defined if we have dladdr () */ +#undef HAVE_DLADDR + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the `fgetpos' function. */ +#define HAVE_FGETPOS 1 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#undef HAVE_FSEEKO + +/* Define to 1 if you have the `fsetpos' function. */ +#define HAVE_FSETPOS 1 + +/* Define to 1 if you have the `ftello' function. */ +#undef HAVE_FTELLO + +/* defined if the compiler implements __func__ */ +#undef HAVE_FUNC + +/* defined if the compiler implements __FUNCTION__ */ +#undef HAVE_FUNCTION + +/* 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 if you have the iconv() function. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if libxml2 is available */ +#define HAVE_LIBXML2 1 + +/* defined if we have makecontext () */ +#undef HAVE_MAKECONTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* defined if the compiler implements __PRETTY_FUNCTION__ */ +#undef HAVE_PRETTY_FUNCTION + +/* Defined if we have register_printf_function () */ +#undef HAVE_PRINTF_EXTENSION + +/* Define to 1 if you have the header file. */ +#define HAVE_PROCESS_H 1 + +/* Define if RDTSC is available */ +#undef HAVE_RDTSC + +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#undef HAVE_UCONTEXT_H + +/* defined if unaligned memory access works correctly */ +#undef HAVE_UNALIGNED_ACCESS + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if valgrind should be used */ +#undef HAVE_VALGRIND + +/* Defined if compiling for Windows */ +#define HAVE_WIN32 1 + +/* library dir */ +#define LIBDIR PREFIX "\\lib" + +/* gettext locale dir */ +#define LOCALEDIR PREFIX "\\share\\locale" + +/* Name of package */ +#define PACKAGE "gst-plugins-bad" + +/* 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 version of this package. */ +#undef PACKAGE_VERSION + +/* directory where plugins are located */ +#define PLUGINDIR PREFIX "\\lib\\gstreamer-0.10" + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if we should poison deallocated memory */ +#undef USE_POISONING + +/* Version number of package */ +#define VERSION "0.10.23" + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +#undef _LARGEFILE_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +/* #undef inline */ + +#define GST_PACKAGE "Gst-plugins-bad" +#define PACKAGE "gst-plugins-bad" +#define GST_ORIGIN "gstreamer.freedesktop.org" -- 2.7.4