aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2013-09-19 12:45:59 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-09-19 12:45:59 +0200
commitf2da7bd60b4aad21e46b1eeb4d0df356f53dee73 (patch)
tree66bbf1e7a9977b2fa0c843f77d3fb98469c0d247
parent745561f0bd78088de77e79be5810300cc891b35c (diff)
parent73cae22d46e765755355ae7068ab415ea751cea8 (diff)
Merge tag 'upstream/1.1.90' into debian-experimental
Upstream version 1.1.90
-rw-r--r--ChangeLog700
-rw-r--r--Makefile.in12
-rw-r--r--NEWS2
-rw-r--r--RELEASE51
-rw-r--r--aclocal.m4137
-rw-r--r--common/Makefile.in2
-rw-r--r--common/m4/Makefile.in2
-rw-r--r--config.h.in3
-rwxr-xr-xconfigure324
-rw-r--r--configure.ac8
-rw-r--r--docs/Makefile.in2
-rw-r--r--docs/plugins/Makefile.in2
-rw-r--r--docs/plugins/gst-plugins-good-plugins.args32
-rw-r--r--docs/plugins/gst-plugins-good-plugins.hierarchy2
-rw-r--r--docs/plugins/html/GstIirEqualizer.html4
-rw-r--r--docs/plugins/html/ch01.html6
-rw-r--r--docs/plugins/html/ch02.html6
-rw-r--r--docs/plugins/html/ch03.html6
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2871
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-3gppmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html4
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-aacparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-aasink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-ac3parse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-agingtv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-alawdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-alawenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-alpha.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-alphacolor.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-amrparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-apedemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-apev2mux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audioamplify.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiochebband.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audioecho.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audioinvert.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-auparse.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html18
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-autovideosink.html18
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-avidemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-avimux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-cacasink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-capssetter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-cutter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dcaparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-deinterlace.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-deinterleave.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dicetv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dv1394src.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dvdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-dvdemux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-edgetv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html12
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flacdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flacenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flacparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flactag.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flvdemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flvmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-flxdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-gamma.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-goom.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-goom2k1.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-icydemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-id3demux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-interleave.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-ismlmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-jpegdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-jpegenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-level.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-matroskademux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-matroskamux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-mj2mux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-monoscope.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-mp4mux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-mulawdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-mulawenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-multifilesink.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-multipartmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-optv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-oss4sink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-oss4src.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-osssink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-osssrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-level.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-png.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html18
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-pngdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-pngenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-progressreport.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-pulsesink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-qtdemux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-qtmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-quarktv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-radioactv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-revtv.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rganalysis.html12
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rglimiter.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rgvolume.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rippletv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpbin.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpsession.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-sbcparse.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-scaletempo.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-shapewipe.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-smpte.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-smptealpha.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-spectrum.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-speexdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-speexenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-streaktv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-taginject.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-udpsink.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-udpsrc.html20
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-v4l2src.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-vertigotv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-videobalance.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-videobox.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-videocrop.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-videoflip.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-videomixer.html14
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-vp8dec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-vp8enc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-warptv.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-waveformsink.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-wavenc.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-wavparse.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-webmmux.html10
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html8
-rw-r--r--docs/plugins/html/gst-plugins-good-plugins-y4menc.html10
-rw-r--r--docs/plugins/html/index.html6
-rw-r--r--docs/plugins/html/index.sgml3
-rw-r--r--docs/plugins/inspect/plugin-1394.xml2
-rw-r--r--docs/plugins/inspect/plugin-aasink.xml2
-rw-r--r--docs/plugins/inspect/plugin-alaw.xml2
-rw-r--r--docs/plugins/inspect/plugin-alpha.xml2
-rw-r--r--docs/plugins/inspect/plugin-alphacolor.xml2
-rw-r--r--docs/plugins/inspect/plugin-annodex.xml55
-rw-r--r--docs/plugins/inspect/plugin-apetag.xml2
-rw-r--r--docs/plugins/inspect/plugin-audiofx.xml2
-rw-r--r--docs/plugins/inspect/plugin-audioparsers.xml2
-rw-r--r--docs/plugins/inspect/plugin-auparse.xml2
-rw-r--r--docs/plugins/inspect/plugin-autodetect.xml2
-rw-r--r--docs/plugins/inspect/plugin-avi.xml2
-rw-r--r--docs/plugins/inspect/plugin-cacasink.xml2
-rw-r--r--docs/plugins/inspect/plugin-cairo.xml2
-rw-r--r--docs/plugins/inspect/plugin-cutter.xml2
-rw-r--r--docs/plugins/inspect/plugin-debug.xml2
-rw-r--r--docs/plugins/inspect/plugin-deinterlace.xml2
-rw-r--r--docs/plugins/inspect/plugin-dtmf.xml2
-rw-r--r--docs/plugins/inspect/plugin-dv.xml2
-rw-r--r--docs/plugins/inspect/plugin-effectv.xml2
-rw-r--r--docs/plugins/inspect/plugin-equalizer.xml2
-rw-r--r--docs/plugins/inspect/plugin-flac.xml2
-rw-r--r--docs/plugins/inspect/plugin-flv.xml2
-rw-r--r--docs/plugins/inspect/plugin-flxdec.xml2
-rw-r--r--docs/plugins/inspect/plugin-gdkpixbuf.xml2
-rw-r--r--docs/plugins/inspect/plugin-goom.xml2
-rw-r--r--docs/plugins/inspect/plugin-goom2k1.xml2
-rw-r--r--docs/plugins/inspect/plugin-icydemux.xml2
-rw-r--r--docs/plugins/inspect/plugin-id3demux.xml2
-rw-r--r--docs/plugins/inspect/plugin-imagefreeze.xml2
-rw-r--r--docs/plugins/inspect/plugin-interleave.xml2
-rw-r--r--docs/plugins/inspect/plugin-isomp4.xml2
-rw-r--r--docs/plugins/inspect/plugin-jack.xml2
-rw-r--r--docs/plugins/inspect/plugin-jpeg.xml2
-rw-r--r--docs/plugins/inspect/plugin-level.xml2
-rw-r--r--docs/plugins/inspect/plugin-matroska.xml2
-rw-r--r--docs/plugins/inspect/plugin-mulaw.xml2
-rw-r--r--docs/plugins/inspect/plugin-multifile.xml2
-rw-r--r--docs/plugins/inspect/plugin-multipart.xml2
-rw-r--r--docs/plugins/inspect/plugin-navigationtest.xml2
-rw-r--r--docs/plugins/inspect/plugin-oss4.xml2
-rw-r--r--docs/plugins/inspect/plugin-ossaudio.xml2
-rw-r--r--docs/plugins/inspect/plugin-png.xml2
-rw-r--r--docs/plugins/inspect/plugin-pulseaudio.xml2
-rw-r--r--docs/plugins/inspect/plugin-replaygain.xml2
-rw-r--r--docs/plugins/inspect/plugin-rtp.xml44
-rw-r--r--docs/plugins/inspect/plugin-rtpmanager.xml2
-rw-r--r--docs/plugins/inspect/plugin-rtsp.xml2
-rw-r--r--docs/plugins/inspect/plugin-shapewipe.xml2
-rw-r--r--docs/plugins/inspect/plugin-shout2send.xml2
-rw-r--r--docs/plugins/inspect/plugin-smpte.xml2
-rw-r--r--docs/plugins/inspect/plugin-soup.xml2
-rw-r--r--docs/plugins/inspect/plugin-spectrum.xml2
-rw-r--r--docs/plugins/inspect/plugin-speex.xml2
-rw-r--r--docs/plugins/inspect/plugin-taglib.xml2
-rw-r--r--docs/plugins/inspect/plugin-udp.xml2
-rw-r--r--docs/plugins/inspect/plugin-video4linux2.xml2
-rw-r--r--docs/plugins/inspect/plugin-videobox.xml2
-rw-r--r--docs/plugins/inspect/plugin-videocrop.xml2
-rw-r--r--docs/plugins/inspect/plugin-videofilter.xml2
-rw-r--r--docs/plugins/inspect/plugin-videomixer.xml2
-rw-r--r--docs/plugins/inspect/plugin-vpx.xml2
-rw-r--r--docs/plugins/inspect/plugin-wavenc.xml2
-rw-r--r--docs/plugins/inspect/plugin-wavpack.xml2
-rw-r--r--docs/plugins/inspect/plugin-wavparse.xml2
-rw-r--r--docs/plugins/inspect/plugin-ximagesrc.xml2
-rw-r--r--docs/plugins/inspect/plugin-y4menc.xml2
-rw-r--r--ext/Makefile.in2
-rw-r--r--ext/aalib/Makefile.in2
-rw-r--r--ext/cairo/Makefile.in2
-rw-r--r--ext/dv/Makefile.in2
-rw-r--r--ext/flac/Makefile.in2
-rw-r--r--ext/gdk_pixbuf/Makefile.in2
-rw-r--r--ext/jack/Makefile.in2
-rw-r--r--ext/jpeg/Makefile.in2
-rw-r--r--ext/libcaca/Makefile.in2
-rw-r--r--ext/libpng/Makefile.in2
-rw-r--r--ext/pulse/Makefile.in2
-rw-r--r--ext/raw1394/Makefile.in2
-rw-r--r--ext/shout2/Makefile.in2
-rw-r--r--ext/shout2/gstshout2.c1
-rw-r--r--ext/soup/Makefile.in2
-rw-r--r--ext/soup/gstsouphttpsrc.c22
-rw-r--r--ext/speex/Makefile.in2
-rw-r--r--ext/taglib/Makefile.in2
-rw-r--r--ext/vpx/Makefile.in2
-rw-r--r--ext/wavpack/Makefile.in2
-rw-r--r--gst-plugins-good.doap10
-rw-r--r--gst-plugins-good.spec2
-rw-r--r--gst/Makefile.in2
-rw-r--r--gst/alpha/Makefile.in2
-rw-r--r--gst/apetag/Makefile.in2
-rw-r--r--gst/audiofx/Makefile.in2
-rw-r--r--gst/audiofx/audiopanoramaorc-dist.c36
-rw-r--r--gst/audioparsers/Makefile.in2
-rw-r--r--gst/audioparsers/gstflacparse.c30
-rw-r--r--gst/auparse/Makefile.in2
-rw-r--r--gst/autodetect/Makefile.in2
-rw-r--r--gst/autodetect/gstautoaudiosink.c17
-rw-r--r--gst/autodetect/gstautoaudiosink.h1
-rw-r--r--gst/autodetect/gstautovideosink.c17
-rw-r--r--gst/autodetect/gstautovideosink.h1
-rw-r--r--gst/avi/Makefile.in2
-rw-r--r--gst/avi/gstavi.c1
-rw-r--r--gst/avi/gstavidemux.c16
-rw-r--r--gst/cutter/Makefile.in2
-rw-r--r--gst/debugutils/Makefile.in2
-rw-r--r--gst/deinterlace/Makefile.in2
-rw-r--r--gst/deinterlace/tvtime-dist.c2
-rw-r--r--gst/dtmf/Makefile.in2
-rw-r--r--gst/effectv/Makefile.in2
-rw-r--r--gst/equalizer/Makefile.in2
-rw-r--r--gst/flv/Makefile.in2
-rw-r--r--gst/flx/Makefile.in2
-rw-r--r--gst/goom/Makefile.in2
-rw-r--r--gst/goom2k1/Makefile.in2
-rw-r--r--gst/icydemux/Makefile.in2
-rw-r--r--gst/id3demux/Makefile.in2
-rw-r--r--gst/imagefreeze/Makefile.in2
-rw-r--r--gst/interleave/Makefile.in2
-rw-r--r--gst/isomp4/Makefile.in2
-rw-r--r--gst/isomp4/atoms.c3
-rw-r--r--gst/isomp4/fourcc.h1
-rw-r--r--gst/isomp4/ftypcc.h2
-rw-r--r--gst/isomp4/gstqtmux.c46
-rw-r--r--gst/isomp4/gstrtpxqtdepay.c2
-rw-r--r--gst/isomp4/isomp4-plugin.c1
-rw-r--r--gst/isomp4/qtdemux.c173
-rw-r--r--gst/isomp4/qtdemux.h6
-rw-r--r--gst/isomp4/qtdemux_fourcc.h1
-rw-r--r--gst/isomp4/qtdemux_types.c3
-rw-r--r--gst/law/Makefile.in2
-rw-r--r--gst/level/Makefile.in2
-rw-r--r--gst/matroska/Makefile.in2
-rw-r--r--gst/matroska/matroska-demux.c13
-rw-r--r--gst/matroska/matroska-read-common.c3
-rw-r--r--gst/monoscope/Makefile.in2
-rw-r--r--gst/multifile/Makefile.in2
-rw-r--r--gst/multipart/Makefile.in2
-rw-r--r--gst/replaygain/Makefile.in2
-rw-r--r--gst/replaygain/gstrganalysis.c9
-rw-r--r--gst/rtp/Makefile.am4
-rw-r--r--gst/rtp/Makefile.in25
-rw-r--r--gst/rtp/gstrtp.c8
-rw-r--r--gst/rtp/gstrtpL24depay.c266
-rw-r--r--gst/rtp/gstrtpL24depay.h67
-rw-r--r--gst/rtp/gstrtpL24pay.c244
-rw-r--r--gst/rtp/gstrtpL24pay.h63
-rw-r--r--gst/rtp/gstrtpmpvpay.c6
-rw-r--r--gst/rtpmanager/Makefile.in2
-rw-r--r--gst/rtpmanager/gstrtpjitterbuffer.c524
-rw-r--r--gst/rtpmanager/gstrtpsession.c6
-rw-r--r--gst/rtpmanager/rtpsession.c332
-rw-r--r--gst/rtpmanager/rtpsession.h3
-rw-r--r--gst/rtpmanager/rtpsource.c148
-rw-r--r--gst/rtpmanager/rtpsource.h10
-rw-r--r--gst/rtpmanager/rtpstats.h30
-rw-r--r--gst/rtsp/Makefile.in2
-rw-r--r--gst/rtsp/gstrtsp.c1
-rw-r--r--gst/rtsp/gstrtspsrc.c18
-rw-r--r--gst/shapewipe/Makefile.in2
-rw-r--r--gst/smpte/Makefile.in2
-rw-r--r--gst/spectrum/Makefile.in2
-rw-r--r--gst/udp/Makefile.in2
-rw-r--r--gst/udp/gstudpsrc.c143
-rw-r--r--gst/udp/gstudpsrc.h2
-rw-r--r--gst/videobox/Makefile.in2
-rw-r--r--gst/videocrop/Makefile.in2
-rw-r--r--gst/videofilter/Makefile.in2
-rw-r--r--gst/videomixer/Makefile.am11
-rw-r--r--gst/videomixer/Makefile.in32
-rw-r--r--gst/videomixer/blend.c2
-rw-r--r--gst/videomixer/blendorc-dist.c2402
-rw-r--r--gst/videomixer/blendorc-dist.h96
-rw-r--r--gst/videomixer/blendorc.orc220
-rw-r--r--gst/videomixer/gstcms.c573
-rw-r--r--gst/videomixer/gstcms.h71
-rw-r--r--gst/videomixer/videoconvert.c1420
-rw-r--r--gst/videomixer/videoconvert.h80
-rw-r--r--gst/videomixer/videomixer2.c316
-rw-r--r--gst/videomixer/videomixer2pad.h10
-rw-r--r--gst/videomixer/videomixerorc-dist.c18969
-rw-r--r--gst/videomixer/videomixerorc-dist.h161
-rw-r--r--gst/videomixer/videomixerorc.orc1516
-rw-r--r--gst/wavenc/Makefile.in2
-rw-r--r--gst/wavparse/Makefile.in2
-rw-r--r--gst/y4m/Makefile.in2
-rw-r--r--m4/Makefile.in2
-rw-r--r--pkgconfig/Makefile.in2
-rw-r--r--po/af.gmobin666 -> 666 bytes
-rw-r--r--po/af.po2
-rw-r--r--po/az.gmobin723 -> 723 bytes
-rw-r--r--po/az.po2
-rw-r--r--po/bg.gmobin11149 -> 11149 bytes
-rw-r--r--po/bg.po2
-rw-r--r--po/ca.gmobin9124 -> 9124 bytes
-rw-r--r--po/ca.po2
-rw-r--r--po/cs.gmobin8856 -> 11134 bytes
-rw-r--r--po/cs.po510
-rw-r--r--po/da.gmobin9513 -> 9513 bytes
-rw-r--r--po/da.po2
-rw-r--r--po/de.gmobin10919 -> 10919 bytes
-rw-r--r--po/de.po2
-rw-r--r--po/el.gmobin11597 -> 11597 bytes
-rw-r--r--po/el.po2
-rw-r--r--po/en_GB.gmobin671 -> 671 bytes
-rw-r--r--po/en_GB.po2
-rw-r--r--po/eo.gmobin1328 -> 1328 bytes
-rw-r--r--po/eo.po2
-rw-r--r--po/es.gmobin9369 -> 9369 bytes
-rw-r--r--po/es.po2
-rw-r--r--po/eu.gmobin7626 -> 7626 bytes
-rw-r--r--po/eu.po2
-rw-r--r--po/fi.gmobin8041 -> 8041 bytes
-rw-r--r--po/fi.po2
-rw-r--r--po/fr.gmobin9222 -> 9222 bytes
-rw-r--r--po/fr.po2
-rw-r--r--po/gl.gmobin11055 -> 11055 bytes
-rw-r--r--po/gl.po2
-rw-r--r--po/gst-plugins-good-1.0.pot38
-rw-r--r--po/hr.gmobin8525 -> 8525 bytes
-rw-r--r--po/hr.po2
-rw-r--r--po/hu.gmobin10807 -> 10807 bytes
-rw-r--r--po/hu.po2
-rw-r--r--po/id.gmobin8586 -> 8586 bytes
-rw-r--r--po/id.po2
-rw-r--r--po/it.gmobin8539 -> 8539 bytes
-rw-r--r--po/it.po2
-rw-r--r--po/ja.gmobin12193 -> 12193 bytes
-rw-r--r--po/ja.po2
-rw-r--r--po/lt.gmobin7460 -> 7460 bytes
-rw-r--r--po/lt.po2
-rw-r--r--po/lv.gmobin8543 -> 8543 bytes
-rw-r--r--po/lv.po2
-rw-r--r--po/mt.gmobin5942 -> 5942 bytes
-rw-r--r--po/mt.po2
-rw-r--r--po/nb.gmobin9840 -> 9840 bytes
-rw-r--r--po/nb.po2
-rw-r--r--po/nl.gmobin10289 -> 10595 bytes
-rw-r--r--po/nl.po20
-rw-r--r--po/or.gmobin832 -> 832 bytes
-rw-r--r--po/or.po2
-rw-r--r--po/pl.gmobin10342 -> 11035 bytes
-rw-r--r--po/pl.po33
-rw-r--r--po/pt_BR.gmobin10713 -> 10713 bytes
-rw-r--r--po/pt_BR.po2
-rw-r--r--po/ro.gmobin8001 -> 8001 bytes
-rw-r--r--po/ro.po2
-rw-r--r--po/ru.gmobin13730 -> 13730 bytes
-rw-r--r--po/ru.po2
-rw-r--r--po/sk.gmobin8854 -> 8854 bytes
-rw-r--r--po/sk.po2
-rw-r--r--po/sl.gmobin9825 -> 9825 bytes
-rw-r--r--po/sl.po2
-rw-r--r--po/sq.gmobin685 -> 685 bytes
-rw-r--r--po/sq.po2
-rw-r--r--po/sr.gmobin11202 -> 11202 bytes
-rw-r--r--po/sr.po2
-rw-r--r--po/sv.gmobin8861 -> 8861 bytes
-rw-r--r--po/sv.po2
-rw-r--r--po/tr.gmobin9917 -> 9917 bytes
-rw-r--r--po/tr.po2
-rw-r--r--po/uk.gmobin13678 -> 14097 bytes
-rw-r--r--po/uk.po16
-rw-r--r--po/vi.gmobin11665 -> 12220 bytes
-rw-r--r--po/vi.po55
-rw-r--r--po/zh_CN.gmobin6295 -> 6295 bytes
-rw-r--r--po/zh_CN.po2
-rw-r--r--po/zh_HK.gmobin1571 -> 1571 bytes
-rw-r--r--po/zh_HK.po2
-rw-r--r--po/zh_TW.gmobin1570 -> 1570 bytes
-rw-r--r--po/zh_TW.po2
-rw-r--r--sys/Makefile.in2
-rw-r--r--sys/directsound/Makefile.in2
-rw-r--r--sys/oss/Makefile.in2
-rw-r--r--sys/oss4/Makefile.in2
-rw-r--r--sys/osxaudio/Makefile.in2
-rw-r--r--sys/osxvideo/Makefile.in2
-rw-r--r--sys/sunaudio/Makefile.in2
-rw-r--r--sys/sunaudio/gstsunaudio.c1
-rw-r--r--sys/v4l2/Makefile.in2
-rw-r--r--sys/v4l2/gstv4l2.c1
-rw-r--r--sys/v4l2/gstv4l2bufferpool.c23
-rw-r--r--sys/waveform/Makefile.in2
-rw-r--r--sys/ximage/Makefile.in2
-rw-r--r--tests/Makefile.in2
-rw-r--r--tests/check/Makefile.am5
-rw-r--r--tests/check/Makefile.in39
-rw-r--r--tests/check/elements/rganalysis.c179
-rw-r--r--tests/check/elements/rtp-payloading.c20
-rw-r--r--tests/check/elements/rtpjitterbuffer.c261
-rw-r--r--tests/examples/Makefile.in2
-rw-r--r--tests/examples/audiofx/Makefile.in2
-rw-r--r--tests/examples/cairo/Makefile.in2
-rw-r--r--tests/examples/equalizer/Makefile.in2
-rw-r--r--tests/examples/jack/Makefile.in2
-rw-r--r--tests/examples/level/Makefile.in2
-rw-r--r--tests/examples/pulse/Makefile.in2
-rw-r--r--tests/examples/rtp/Makefile.in2
-rw-r--r--tests/examples/shapewipe/Makefile.in2
-rw-r--r--tests/examples/spectrum/Makefile.in2
-rw-r--r--tests/examples/v4l2/Makefile.in2
-rw-r--r--tests/files/Makefile.in2
-rw-r--r--tests/icles/Makefile.in2
-rw-r--r--win32/common/config.h11
563 files changed, 28080 insertions, 6248 deletions
diff --git a/ChangeLog b/ChangeLog
index 62af7fdd..cb7b048f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,705 @@
+=== release 1.1.90 ===
+
+2013-09-19 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ releasing 1.1.90
+
+2013-09-19 09:45:18 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * po/cs.po:
+ * po/nl.po:
+ * po/pl.po:
+ * po/uk.po:
+ * po/vi.po:
+ po: Update translations
+
+2013-09-11 14:27:02 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: dmabuf is not a singleton anymore
+ https://bugzilla.gnome.org/show_bug.cgi?id=707793
+
+2013-09-16 13:53:45 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: do not do http requests in READY
+ HEAD requests to discover if the server is seekable shouldn't be done in
+ READY as it might lock the main thread that is doing the state change.
+ https://bugzilla.gnome.org/show_bug.cgi?id=705371
+
+2013-09-18 16:32:28 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: reevaluate the current timer after timeout
+ When we trigger the timeout logic of a timer, reevaluate it because it is
+ possible that it still has the lowest timeout.
+
+2013-09-18 16:31:26 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: don't update time when unscheduled
+ Don't try to estimate the current time when we got unscheduled.
+
+2013-09-18 16:29:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: init packet spacing on first buffer
+ Already init the packet spacing variables on the first buffer so that we can
+ calculate the spacing on the second buffer already.
+
+2013-09-18 15:08:45 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ tests: fix comments
+
+2013-09-18 14:57:09 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: push the lost event from the timer thread
+ Instead of pushing the lost event from the chain function, schedule a timeout
+ that will push the lost event from the timer thread. This avoid blocking the
+ upstream thread while we push and sync the event.
+
+2013-09-18 14:23:55 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: add another test
+ The test is modified slightly because the late lost packets are only
+ generated now when a large gap is received.
+
+2013-09-18 14:12:47 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: round gap duration to multiple of duration
+ Make sure the gap duration in the lost event is a multiple of the packet
+ duration.
+ Enable another test.
+
+2013-09-18 12:29:38 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/Makefile.am:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: keep track of duration
+ Keep track of the estimated duration of missing packets and use it in the lost
+ event.
+ Enable another unit test
+
+2013-09-18 11:59:28 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: handle large gaps with one lost event
+ When we have a large number of missing packets, generate one lost event for all
+ the packets that have no chance of being pushed out in time.
+ Fix and activate unit test for large gaps.
+
+2013-09-18 11:56:38 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: refactor lost event sending
+ Also make sure we only increment the expected seqnum and last
+ output timestamp.
+
+2013-09-17 23:21:09 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: refactor timeout triggers
+
+2013-09-17 23:03:45 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: simplify the timeout code
+ Keep track of the current time in the timeout loop.
+ Loop over all timers and trigger all the expired ones, we can do this in the
+ same loop that selects the new best timer.
+
+2013-09-17 23:01:17 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: rearrange timer update code
+ Also update the timers when retransmission is disabled. We need to
+ do this because when we added LOST timers when we detected missing packets and
+ we need to remove those timers when the packet finally arrives.
+
+2013-09-17 22:02:04 +0100 Tim-Philipp Müller <tim@centricular.net>
+
+ * gst/videomixer/Makefile.am:
+ videomixer: link to libm for maths stuff
+ Fixes undefined references to rint and pow on ubuntu
+ build bot.
+
+2013-09-17 15:19:42 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: release lock on shutdown
+
+2013-09-17 15:11:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ check: change for videomixer renamed orc file
+
+2013-09-14 16:03:20 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: remove MAX_TOLERATED_LATENESS
+ https://bugzilla.gnome.org/show_bug.cgi?id=707411
+
+2013-09-16 15:54:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/examples/rtp/client-H264-rtx.sh:
+ examples: we don't need the queue anymore
+
+2013-09-16 15:53:47 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: use separate thread for timeouts
+ Use a separate thread for scheduling the timeouts instead of using the
+ downstream streaming thread that might block at any time.
+
+2013-09-14 15:56:04 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: set first_ts to DTS for streams that have DTS
+ https://bugzilla.gnome.org/show_bug.cgi?id=707340
+
+2013-09-14 15:55:22 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: make sure duration is a valid number for last buffer
+ https://bugzilla.gnome.org/show_bug.cgi?id=707340
+
+2013-09-14 15:54:29 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: use segment.start or last buffer end time in case of missing DTS
+ https://bugzilla.gnome.org/show_bug.cgi?id=707340
+
+2013-09-03 18:14:04 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/isomp4/gstqtmux.c:
+ Revert qtmux: Use buffer PTS if DTS is not set"
+ This reverts commit f72c3cf71fde622067f41f31a53978ba4c94469d.
+ https://bugzilla.gnome.org/show_bug.cgi?id=707340
+
+2013-09-16 11:03:06 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/videomixer/videomixerorc-dist.c:
+ * gst/videomixer/videomixerorc-dist.h:
+ videomixer: Update orc generated files
+ https://bugzilla.gnome.org/show_bug.cgi?id=708131
+
+2013-09-13 16:25:49 +0200 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ rtpsession: Demux RTCP buffers from the RTP stream
+ If there are RTCP buffers in the RTP stream, process them as
+ RTCP. This way, we want receive streams following RFC 5761
+ https://bugzilla.gnome.org/show_bug.cgi?id=687657
+
+2013-09-13 23:26:21 +1000 Jan Schmidt <thaytan@noraisin.net>
+
+ * gst/rtp/gstrtpL24depay.c:
+ rtp: Remove bogus extra caps from L24 template.
+ The extra caps entry in the template was making it sometimes
+ get plugged for any dynamically allocated payload type.
+
+2013-09-13 12:40:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ * gst/rtpmanager/rtpstats.h:
+ rtpbin: use PacketInfo for the sender
+ Avoid mapping the packet multiple times when sending RTP.
+
+2013-09-13 12:22:36 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ * gst/rtpmanager/rtpstats.h:
+ rtpbin: store more in the PacketInfo
+ Store all info in the PacketInfo so that we can avoid mapping the packet
+ multiple times.
+
+2013-09-13 11:32:52 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpstats.h:
+ session: store more in the PacketInfo structure
+
+2013-09-13 11:08:55 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ * gst/rtpmanager/rtpstats.h:
+ rtpbin: RTPArrivalStats -> RTPPacketInfo
+ Rename a structure because we are also going to use this for the sender
+ bits.
+
+2013-09-13 10:55:31 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ source: small cleanups
+
+2013-09-12 13:31:01 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: only update stop position if seek requests it
+ Check for GST_SEEK_TYPE_NONE for stop poistion and only update
+ the stop time if it is requested. Otherwise just maintain whatever
+ was stored at the segment
+ https://bugzilla.gnome.org/show_bug.cgi?id=707530
+
+2013-09-13 08:53:25 +0200 Rico Tzschichholz <ricotz@ubuntu.com>
+
+ * gst/rtp/Makefile.am:
+ rtp: Add missing headers tp fix make dist
+ In addition to a956a6ceb2deb87cc1361aee1d6626449f46dab2
+
+2013-09-12 15:07:48 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: Make sure we have enough data to read image tags
+ Thanks to iputinei for reporting this on IRC.
+
+2013-09-12 15:01:36 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ jitterbuffer: handle segments with non-0 start
+ We keep the DTS and PTS in running-time inside the jitterbuffer. Make sure to
+ transform it back to a buffer timestamp before pushing out the buffer.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707931
+
+2013-09-11 13:11:58 -0600 Seán de Búrca <leftmostcat@gmail.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Fix off-by-one in validation of UTF-8
+ https://bugzilla.gnome.org/show_bug.cgi?id=707933
+
+2013-09-11 14:32:17 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst/videomixer/videomixer2.c:
+ videomixer: Do not check if caps are empty when they are NULL
+ In the case the caps are actually NULL, we should just concider it the
+ same way as empty caps in that case.
+
+2013-09-10 16:44:53 -0600 Seán de Búrca <leftmostcat@gmail.com>
+
+ * gst/videomixer/blendorc-dist.c:
+ * gst/videomixer/blendorc-dist.h:
+ * gst/videomixer/videomixerorc-dist.c:
+ * gst/videomixer/videomixerorc-dist.h:
+ videomixer: fix build if orc is not installed
+ https://bugzilla.gnome.org/show_bug.cgi?id=707886
+
+2013-09-10 17:57:49 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Preserve seqnum when pushing seek upstream
+ After converting a seek from time to bytes, use the same seqnum
+ on the event that goes upstream
+
+2013-09-05 00:17:16 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: track streams that are EOS on push mode to finish earlier
+ When the segment has a defined stop position, qtdemux should check
+ when streams reach this position and mark those as EOS. When all
+ streams are EOS it will return GST_FLOW_EOS to upstream to allow
+ the pipeline to finish instead of continuously consume buffers
+ from upstream that are not useful for the segment.
+ https://bugzilla.gnome.org/show_bug.cgi?id=707530
+
+2013-09-04 15:34:35 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: preserve stop of segment when doing seeks in push mode
+ When handling seeks in push mode, qtdemux converts the seek to bytes
+ and pushes upstream. It needs to keep track of the seek and the
+ subsequent segment to be able to map them back to the requested
+ seek time and properly preserve the segment stop of the seek.
+ This is done by using the start offset in bytes of the seek,
+ that should be the same of the segment from upstream. And this
+ is also backwards compatible with what qtdemux already was using.
+ https://bugzilla.gnome.org/show_bug.cgi?id=707530
+
+2013-07-26 19:40:53 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+ * gst/videomixer/videomixer2.c:
+ * gst/videomixer/videomixer2pad.h:
+ videomixer: Add colorspace conversion
+ https://bugzilla.gnome.org/show_bug.cgi?id=704950
+
+2013-08-06 15:38:39 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+ * gst/videomixer/videomixer2.c:
+ videomixer: Don't send reconfigure event when formats or PAR are different
+ It is racy with multiple pads.
+ https://bugzilla.gnome.org/show_bug.cgi?id=704950
+
+2013-07-25 13:49:57 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+ * gst/videomixer/Makefile.am:
+ * gst/videomixer/blend.c:
+ * gst/videomixer/blendorc.orc:
+ * gst/videomixer/gstcms.c:
+ * gst/videomixer/gstcms.h:
+ * gst/videomixer/videoconvert.c:
+ * gst/videomixer/videoconvert.h:
+ * gst/videomixer/videomixer2.c:
+ * gst/videomixer/videomixerorc.orc:
+ videomixer: Bundle private copies of videoconvert code
+ Ideally, this would be part of libgstvideo.
+ Prefixes videoconvert symbols with videomixer_.
+ https://bugzilla.gnome.org/show_bug.cgi?id=704950
+
+2013-08-22 00:03:48 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2: Use newly #defined metadata names.
+
+2013-09-09 15:11:51 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: only wait if we flushed
+ Only wait for the STREAM_LOCK when we flushed something when sending
+ a command for PAUSED or PLAYING.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707611
+
+2013-09-09 15:09:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: return when a flush was issued
+ Make gst_rtspsrc_loop_send_cmd() return TRUE when the current
+ action has been flushed
+
+2013-09-09 11:16:40 +0200 David Holroyd <dave@badgers-in-foil.co.uk>
+
+ * gst/rtp/Makefile.am:
+ * gst/rtp/gstrtp.c:
+ * gst/rtp/gstrtpL24depay.c:
+ * gst/rtp/gstrtpL24depay.h:
+ * gst/rtp/gstrtpL24pay.c:
+ * gst/rtp/gstrtpL24pay.h:
+ * tests/check/elements/rtp-payloading.c:
+ rtp: add L24 pay and depayloader
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707734
+
+2013-09-09 14:46:42 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Fix missing condition in previous commit
+
+2013-09-09 14:44:58 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Also fix strides for other semi-planar video formats
+
+2013-09-09 14:41:42 +0200 Andreea Fulger <andreea.fulger@parrot.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Fix stride for NV12/NV21
+ https://bugzilla.gnome.org/show_bug.cgi?id=707758
+
+2013-09-07 16:37:03 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/matroska/matroska-read-common.c:
+ matroskademux: fix leaking buffer and caps
+ https://bugzilla.gnome.org/show_bug.cgi?id=707688
+
+2013-09-05 19:46:37 +0100 Tim-Philipp Müller <tim@centricular.net>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: fix build on win32
+ gstudpsrc.c:855:15: error: #if with no expression
+
+2013-09-04 15:50:42 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: handle unseekable streams
+ Handle streams that we can't seek in and ignore them in the
+ seek logic.
+
+2013-09-04 15:25:39 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: only check video compression for video streams
+ Or else we might deref a stream with a NULL strf.vids and segfault
+
+2013-06-18 13:27:20 +0100 Alex Ashley <bugzilla@ashley-family.net>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/ftypcc.h:
+ * gst/isomp4/gstrtpxqtdepay.c:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_fourcc.h:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add support for the avc3 sample entry format of the AVC file format
+ Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
+ structure for fragmented MP4 called "avc3". The principal difference
+ between AVC1 and AVC3 is the location of the codec initialisation
+ data (e.g. SPS, PPS). In AVC1 this data is placed in the initial
+ MOOV box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data
+ goes in the first sample of every fragment (i.e. the first sample in
+ each mdat box). The principal reason for avc3 is to make it easier
+ for client implementations, because it removes the requirement to
+ insert the SPS+PPS in to the decoder pipeline every time there is a
+ representation change.
+ This commit adds support for the "avc3" atom, which is almost identical
+ to the "avc1" atom, except it does not contain any SPS or PPS data.
+ https://bugzilla.gnome.org/show_bug.cgi?id=702004
+
+2013-09-04 00:27:50 +0200 Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+ * gst/videomixer/videomixer2.c:
+ videomixer: Don't set EOS to FALSE when the collectpad *is* EOS
+ https://bugzilla.gnome.org/show_bug.cgi?id=707238
+
+2013-09-03 17:32:41 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: cleanup on error after state change
+ https://bugzilla.gnome.org/show_bug.cgi?id=707229
+
+2013-09-03 11:23:24 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/udp/gstudpsrc.c:
+ * gst/udp/gstudpsrc.h:
+ udpsrc: Bind to multicast addresses on non-Windows systems
+ On Windows it's not possible to bind to a multicast address
+ but the OS will make sure to filter out all packets that
+ arrive not for the multicast address the socket joined.
+ On Linux and others it is necessary to bind to a multicast
+ address to let the OS filter out all packets that are received
+ on the same port but for different addresses than the multicast
+ address
+ And deprecate the multicast-group property and replace it with the
+ address property.
+ https://bugzilla.gnome.org/show_bug.cgi?id=707042
+
+2013-09-03 10:10:01 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: Free GstBaseParseFrame if pushing a header failed
+
+2013-09-02 16:02:37 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Refactor address resolval into its own function
+
+2013-09-02 23:00:29 +0100 Tim-Philipp Müller <tim@centricular.net>
+
+ * gst/replaygain/gstrganalysis.c:
+ replaygain: fix taglist leak in rganalysis
+ And add some FIXMEs.
+
+2013-09-02 22:50:58 +0100 Tim-Philipp Müller <tim@centricular.net>
+
+ * tests/check/elements/rganalysis.c:
+ tests: rganalysis: rename function for clarity
+
+2013-03-18 14:32:07 +0100 Christoph Reiter <reiter.christoph@gmail.com>
+
+ * tests/check/elements/rganalysis.c:
+ tests: fix skipped rganalysis tests
+ In 0.10 elements would post tag messages on the bus
+ directly, and rganalysis would only post a tag message
+ when it changed tags. In 1.0, only sinks post tag
+ messages when they receive the serialised tag event.
+ This means that we get an additional tag message on
+ the bus now where we didn't expect one before.
+ https://bugzilla.gnome.org/show_bug.cgi?id=695090
+
+2013-09-02 11:46:52 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: Properly propagate downstream flow returns upstream
+ https://bugzilla.gnome.org/show_bug.cgi?id=707229
+
+2013-09-01 21:18:38 +0100 Tim-Philipp Müller <tim@centricular.net>
+
+ * ext/shout2/gstshout2.c:
+ * gst/avi/gstavi.c:
+ * gst/isomp4/isomp4-plugin.c:
+ * gst/rtsp/gstrtsp.c:
+ * sys/sunaudio/gstsunaudio.c:
+ * sys/v4l2/gstv4l2.c:
+ Don't use setlocale in plugins()
+ Only apps should call setlocale(), not libraries.
+
+2013-08-29 13:15:15 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtp/gstrtpmpvpay.c:
+ rtpmpvpay: Fix RTP buffer allocation in rtpmpvpay
+ RTP buffer allocation should not be done with padding for the specific MPEG2
+ header as the padding is done at the end of the buffer and the last byte is
+ the size of the padding.
+ https://bugzilla.gnome.org/show_bug.cgi?id=706970
+
+2013-08-28 10:51:32 +0200 Bernhard Miller <bernhard.miller@streamunlimited.com>
+
+ * gst/autodetect/gstautovideosink.c:
+ * gst/autodetect/gstautovideosink.h:
+ autovideosink: add sync property
+ https://bugzilla.gnome.org/show_bug.cgi?id=706955
+
+2013-08-28 07:15:00 +0200 Bernhard Miller <bernhard.miller@streamunlimited.com>
+
+ * gst/autodetect/gstautoaudiosink.c:
+ * gst/autodetect/gstautoaudiosink.h:
+ autoaudiosink: introduce sync property
+ https://bugzilla.gnome.org/show_bug.cgi?id=706955
+
+2013-08-27 17:33:40 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: push buffers after segment stop until reaching a keyframe
+ This should make decoders able to precisely push buffers until the stop
+ time in case they need the next keyframe to do it.
+ Also, according to gst_segment_clip, it should only push a buffer that
+ the starting ts is strictly smaller than the segment stop, so we change
+ the min < comparison for <=
+
+2013-08-28 13:26:47 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * configure.ac:
+ Back to development
+
=== release 1.1.4 ===
-2013-08-28 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-08-28 12:52:25 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
* configure.ac:
- releasing 1.1.4
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-audioparsers.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dtmf.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-isomp4.xml:
+ * docs/plugins/inspect/plugin-jack.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtpmanager.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-vpx.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ * gst-plugins-good.doap:
+ * gst/audiofx/audiopanoramaorc-dist.c:
+ * win32/common/config.h:
+ Release 1.1.4
+
+2013-08-28 12:52:16 +0200 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/gl.po:
+ * po/hr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/mt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/or.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_HK.po:
+ * po/zh_TW.po:
+ Update .po files
2013-08-28 12:32:10 +0200 Sebastian Dröge <slomo@circular-chaos.org>
diff --git a/Makefile.in b/Makefile.in
index 3df5b980..a69f5ac6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -663,8 +663,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; else :; fi
- @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
@@ -877,10 +877,16 @@ dist-xz: distdir
$(am__post_remove_distdir)
dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
diff --git a/NEWS b/NEWS
index 3bf5ba2f..b1d92ae8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,2 +1,2 @@
-This is GStreamer Good Plugins 1.1.4
+This is GStreamer Good Plugins 1.1.90
diff --git a/RELEASE b/RELEASE
index a035a5fa..ed805e25 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
-Release notes for GStreamer Good Plugins 1.1.4
+Release notes for GStreamer Good Plugins 1.1.90
The GStreamer team is proud to announce a new bug-fix release
@@ -57,20 +57,24 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
Bugs fixed in this release
+ * 646963 : rtpmanager: Only update last_rtcp_send_time when actually sending a report
+ * 687657 : rtpsession: Demux RTCP buffers from the RTP stream
+ * 695090 : rganalysis: fix tests
+ * 702004 : qtdemux: add support for the avc3 sample entry format of the AVC file format
+ * 704950 : videomixer: add colorspace conversion
* 705371 : souphttpsrc: Does network operations from the state change thread
- * 590768 : GstPulseSrc should allow swapping the device used by the stream
- * 637754 : multipartdemux: time stamp output buffer based on first input buffer not last
- * 694445 : pulsesink: add support for AAC pass-through
- * 700264 : qtdemux: ignores first editlist
- * 702988 : gdkpixbufoverlay: crashes if any property changes during playback when location property is not set
- * 705108 : rtpgstpay: Add a config-interval property
- * 705442 : matroskademux: prints warnings on seek
- * 705449 : avidemux: sends stream_start event without group_id
- * 705553 : rtph264pay: Entries of SPS and PPS duplicated
- * 705760 : rtspsrc produces GLib error
- * 705959 : souphttpsrc deprecated symbols
- * 706076 : qtdemux: failed assertion for fragmented mp4 (DASH) streams
- * 706642 : avimux: unmap the correct buffer
+ * 706955 : autoaudiosink/autovideosink: Introduce " sync " property
+ * 707042 : udpsrc binds to INADDR_ANY instead of multicast group address
+ * 707303 : flacenc: 'Got data flow before stream-start event' warnings
+ * 707340 : qtmux: should NOT use PTS if DTS is missing
+ * 707411 : qtmux: what is purpose of MAX_TOLERATED_LATENESS?
+ * 707530 : qtdemux: Handle segments correctly in push mode seeks
+ * 707688 : matroskademux: leaking buffer and caps when parsing attachments
+ * 707734 : rtp: add payloader and depayloader for 24bit raw audio
+ * 707758 : v4l2: Incorrect UV plane stride value for NV12/NV21 formats
+ * 707886 : videomixer: build fails due to unrenamed files if orc is not installed
+ * 707933 : matroskademux: Wrong UTF8 detection causes wrong detection of subtitle encoding
+ * 708131 : videomixer: undefined reference to `videomixer_video_convert_orc_convert_I420_BGRA'
==== Download ====
@@ -107,21 +111,20 @@ subscribe to the gstreamer-devel list.
Contributors to this release
- * Akihiro Tsukada
- * Andoni Morales Alastruey
- * Chris Bass
- * David Schleef
- * Edward Hervey
- * Kishore Arepalli
- * Lubosz Sarnecki
+ * Alex Ashley
+ * Andreea Fulger
+ * Bernhard Miller
+ * Christoph Reiter
+ * David Holroyd
+ * Jan Schmidt
* Matej Knopp
* Mathieu Duponchelle
- * Michael Olbrich
* Olivier Crête
+ * Rico Tzschichholz
* Sebastian Dröge
- * Sjoerd Simons
+ * Seán de Búrca
+ * Thiago Santos
* Thibault Saunier
* Tim-Philipp Müller
* Wim Taymans
- * Youness Alaoui
  \ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 2374f58a..01005195 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.14 -*- Autoconf -*-
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.14'
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.13.3], [],
+m4_if([$1], [1.14], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,7 +51,7 @@ 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.13.3])dnl
+[AM_AUTOMAKE_VERSION([1.14])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -438,6 +438,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
@@ -546,7 +552,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
@@ -554,7 +601,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
@@ -702,38 +748,6 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
- [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
@@ -842,6 +856,53 @@ AC_DEFUN([_AM_IF_OPTION],
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# ---------------------------------------------------------------------------
diff --git a/common/Makefile.in b/common/Makefile.in
index fa75d58d..ec7debd8 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 5827fc1f..4a32e81a 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/config.h.in b/config.h.in
index d216d8d7..bd812ee6 100644
--- a/config.h.in
+++ b/config.h.in
@@ -370,9 +370,6 @@
*/
#undef LT_OBJDIR
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
/* Name of package */
#undef PACKAGE
diff --git a/configure b/configure
index 6cfa6c1e..dd721b14 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.69 for GStreamer Good Plug-ins 1.1.4.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.1.90.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GStreamer Good Plug-ins'
PACKAGE_TARNAME='gst-plugins-good'
-PACKAGE_VERSION='1.1.4'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.1.4'
+PACKAGE_VERSION='1.1.90'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.1.90'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -1945,7 +1945,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 Good Plug-ins 1.1.4 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.1.90 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2021,7 +2021,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.1.4:";;
+ short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.1.90:";;
esac
cat <<\_ACEOF
@@ -2381,7 +2381,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.1.4
+GStreamer Good Plug-ins configure 1.1.90
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3192,7 +3192,7 @@ 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 Good Plug-ins $as_me 1.1.4, which was
+It was created by GStreamer Good Plug-ins $as_me 1.1.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3688,7 +3688,7 @@ test -n "$target_alias" &&
-am__api_version='1.13'
+am__api_version='1.14'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -4174,7 +4174,7 @@ fi
# Define the identity of the package.
PACKAGE='gst-plugins-good'
- VERSION='1.1.4'
+ VERSION='1.1.90'
cat >>confdefs.h <<_ACEOF
@@ -4341,11 +4341,52 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
- PACKAGE_VERSION_MAJOR=$(echo 1.1.4 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 1.1.4 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 1.1.4 | cut -d'.' -f3)
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+ PACKAGE_VERSION_MAJOR=$(echo 1.1.90 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 1.1.90 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 1.1.90 | cut -d'.' -f3)
@@ -4356,7 +4397,7 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 1.1.4 | cut -d'.' -f4)
+ NANO=$(echo 1.1.90 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -5411,6 +5452,65 @@ 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
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -8947,10 +9047,10 @@ fi
done
- GST_CURRENT=104
+ GST_CURRENT=190
GST_REVISION=0
- GST_AGE=104
- GST_LIBVERSION=104:0:104
+ GST_AGE=190
+ GST_LIBVERSION=190:0:190
@@ -13275,8 +13375,8 @@ CC="$lt_save_CC"
-GST_REQ=1.1.4
-GSTPB_REQ=1.1.4
+GST_REQ=1.1.90
+GSTPB_REQ=1.1.90
@@ -17240,6 +17340,65 @@ 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
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -21797,131 +21956,6 @@ fi
-if test "x$CC" != xcc; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
- sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
-then
- eval ac_cv_prog_cc_${ac_cc}_c_o=yes
- if test "x$CC" != xcc; then
- # Test first that cc exists at all.
- if { ac_try='cc -c conftest.$ac_ext >&5'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
- rm -f conftest2.*
- if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
- then
- # cc works too.
- :
- else
- # cc exists but doesn't like -o.
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
- fi
- fi
- fi
-else
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-
# By default we simply use the C compiler to build assembly code.
@@ -37748,7 +37782,7 @@ 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 Good Plug-ins $as_me 1.1.4, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.1.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -37814,7 +37848,7 @@ _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 Good Plug-ins config.status 1.1.4
+GStreamer Good Plug-ins config.status 1.1.90
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 45d63b72..1c8c53d6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/pre
-AC_INIT([GStreamer Good Plug-ins],[1.1.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.1.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
AG_GST_INIT
@@ -43,11 +43,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
[GStreamer API Version])
AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 104, 0, 104)
+AS_LIBTOOL(GST, 190, 0, 190)
dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.1.4
-GSTPB_REQ=1.1.4
+GST_REQ=1.1.90
+GSTPB_REQ=1.1.90
dnl *** autotools stuff ****
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 4bb466a8..ebbc3cae 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index dea8ca9f..d3ca16e7 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index eb56d775..57c382c2 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -484,7 +484,7 @@
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Multicast Group</NICK>
-<BLURB>The Address of multicast group to join.</BLURB>
+<BLURB>The Address of multicast group to join. DEPRECATED: Use address property instead.</BLURB>
<DEFAULT>"0.0.0.0"</DEFAULT>
</ARG>
@@ -639,6 +639,16 @@
</ARG>
<ARG>
+<NAME>GstUDPSrc::address</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Address</NICK>
+<BLURB>Address to receive packets for. This is equivalent to the multicast-group property for now.</BLURB>
+<DEFAULT>"0.0.0.0"</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstSMPTE::border</NAME>
<TYPE>gint</TYPE>
<RANGE>>= 0</RANGE>
@@ -3879,6 +3889,16 @@
</ARG>
<ARG>
+<NAME>GstAutoAudioSink::sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync</NICK>
+<BLURB>Sync on the clock.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstAutoVideoSink::filter-caps</NAME>
<TYPE>GstCaps*</TYPE>
<RANGE></RANGE>
@@ -3899,6 +3919,16 @@
</ARG>
<ARG>
+<NAME>GstAutoVideoSink::sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync</NICK>
+<BLURB>Sync on the clock.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstOsxAudioSink::device</NAME>
<TYPE>gint</TYPE>
<RANGE>>= 0</RANGE>
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index 7b40874b..1818d7c3 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -195,6 +195,7 @@ GObject
GstRtpJ2KDepay
GstRtpJPEGDepay
GstRtpL16Depay
+ GstRtpL24Depay
GstRtpMP1SDepay
GstRtpMP2TDepay
GstRtpMP4ADepay
@@ -223,6 +224,7 @@ GObject
GstRtpG722Pay
GstRtpG726Pay
GstRtpL16Pay
+ GstRtpL24Pay
GstRtpPcmaPay
GstRtpPcmuPay
GstRTPDVPay
diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/GstIirEqualizer.html
index 6eb74c25..f0b37b3f 100644
--- a/docs/plugins/html/GstIirEqualizer.html
+++ b/docs/plugins/html/GstIirEqualizer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
<link rel="prev" href="ch03.html" title="gst-plugins-good Base Classes">
<link rel="next" href="gst-plugins-good-plugins-GstVideoMixerPad.html" title="GstVideoMixerPad">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,6 +82,6 @@ GstIirEqualizer implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 8c5677a8..6632de3c 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="prev" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="next" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idp53780816"></a>gst-plugins-good Elements</h1></div></div></div>
+<a name="id-1.2"></a>gst-plugins-good Elements</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="gst-plugins-good-plugins-3gppmux.html">3gppmux</a></span><span class="refpurpose"> — Muxer for 3GPP (.3gp) files</span>
@@ -525,6 +525,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 03414f23..0dae3283 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="prev" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">
<link rel="next" href="gst-plugins-good-plugins-plugin-1394.html" title="1394">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idp58594624"></a>gst-plugins-good Plugins</h1></div></div></div>
+<a name="id-1.3"></a>gst-plugins-good Plugins</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose">Source for video data via IEEE1394 interface</span>
@@ -237,6 +237,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html
index 5e99e4e4..29cf902c 100644
--- a/docs/plugins/html/ch03.html
+++ b/docs/plugins/html/ch03.html
@@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="prev" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc">
<link rel="next" href="GstIirEqualizer.html" title="GstIirEqualizer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
-<a name="idp58630112"></a>gst-plugins-good Base Classes</h1></div></div></div>
+<a name="id-1.4"></a>gst-plugins-good Base Classes</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="GstIirEqualizer.html">GstIirEqualizer</a></span><span class="refpurpose"></span>
@@ -33,6 +33,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
index 0df0c739..594ebc49 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -248,15 +248,15 @@
</sub>
</chapters>
<functions>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#idp60968608"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#idp61113808"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#idp61394512"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#idp53613184"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#idp60171744"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#idp63145232"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.4.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.4.10.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.4.10.2"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.5.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.5.5.2"/>
<keyword type="struct" name="struct GstAacParse" link="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#idp61846336"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#idp61927104"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#id-1.2.4.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#id-1.2.4.7.2.2"/>
<keyword type="struct" name="struct GstAASink" link="gst-plugins-good-plugins-aasink.html#GstAASink-struct"/>
<keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/>
<keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--contrast"/>
@@ -271,20 +271,20 @@
<keyword type="property" name="The &quot;width&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--width"/>
<keyword type="signal" name="The &quot;frame-displayed&quot; signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"/>
<keyword type="signal" name="The &quot;have-size&quot; signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-have-size"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#idp62274768"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#idp58808512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#idp60272416"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.5.4.2"/>
<keyword type="struct" name="struct GstAc3Parse" link="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#idp62035872"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#idp62245648"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#idp59519664"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.6.4.2"/>
<keyword type="struct" name="struct GstAgingTV" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct"/>
<keyword type="property" name="The &quot;color-aging&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"/>
<keyword type="property" name="The &quot;dusts&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/>
<keyword type="property" name="The &quot;pits&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/>
<keyword type="property" name="The &quot;scratch-lines&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#idp59175728"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#idp63410416"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#id-1.2.7.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#id-1.2.7.6.4.2"/>
<keyword type="struct" name="struct GstAlpha" link="gst-plugins-good-plugins-alpha.html#GstAlpha-struct"/>
<keyword type="enum" name="enum GstAlphaMethod" link="gst-plugins-good-plugins-alpha.html#GstAlphaMethod"/>
<keyword type="property" name="The &quot;alpha&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/>
@@ -297,41 +297,41 @@
<keyword type="property" name="The &quot;black-sensitivity&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/>
<keyword type="property" name="The &quot;white-sensitivity&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/>
<keyword type="property" name="The &quot;prefer-passthrough&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#idp61178048"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#idp60145712"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#id-1.2.8.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#id-1.2.8.5.4.2"/>
<keyword type="struct" name="struct GstAlphaColor" link="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#idp59748752"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#idp62244032"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#id-1.2.9.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#id-1.2.9.5.3.2"/>
<keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#idp61022016"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#idp63360592"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#id-1.2.10.4.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#id-1.2.10.4.3.2"/>
<keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawenc.html#GstALawDec-struct"/>
<keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#idp59757600"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#idp61336288"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#idp60976768"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.5.4.2"/>
<keyword type="struct" name="struct GstAmrParse" link="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#idp60528288"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#idp62475824"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#idp61934880"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.5.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.5.5.2"/>
<keyword type="struct" name="struct GstApeDemux" link="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#idp60847840"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#idp59264720"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#id-1.2.13.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#id-1.2.13.6.2.2"/>
<keyword type="struct" name="struct GstApev2Mux" link="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#idp61370016"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#idp61827616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#idp59272864"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.7.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.7.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.7.5.2"/>
<keyword type="struct" name="struct GstAspectRatioCrop" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"/>
<keyword type="property" name="The &quot;aspect-ratio&quot; property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#idp59809984"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#idp63316000"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#idp60556128"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.6.4.2"/>
<keyword type="struct" name="struct GstAudioAmplify" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"/>
<keyword type="property" name="The &quot;amplification&quot; property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/>
<keyword type="property" name="The &quot;clipping-method&quot; property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#idp63500464"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#idp63850592"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#idp62927488"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.6.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.6.9.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.6.9.2"/>
<keyword type="struct" name="struct GstAudioChebBand" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct"/>
<keyword type="property" name="The &quot;lower-frequency&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode"/>
@@ -339,155 +339,157 @@
<keyword type="property" name="The &quot;ripple&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple"/>
<keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"/>
<keyword type="property" name="The &quot;upper-frequency&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#idp63498976"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#idp58799360"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#idp58668944"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.6.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.6.9.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.6.9.2"/>
<keyword type="struct" name="struct GstAudioChebLimit" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct"/>
<keyword type="property" name="The &quot;cutoff&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode"/>
<keyword type="property" name="The &quot;poles&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/>
<keyword type="property" name="The &quot;ripple&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/>
<keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/>
- <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#idp60227120"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#idp62377616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#idp62850160"/>
+ <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.7.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.7.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.7.6.2"/>
<keyword type="struct" name="struct GstAudioFIRFilter" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"/>
<keyword type="property" name="The &quot;kernel&quot; property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/>
<keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/>
<keyword type="signal" name="The &quot;rate-changed&quot; signal" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"/>
- <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#idp60583584"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#idp59014960"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#idp60260384"/>
+ <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.7.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.7.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.7.6.2"/>
<keyword type="struct" name="struct GstAudioIIRFilter" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct"/>
<keyword type="property" name="The &quot;a&quot; property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/>
<keyword type="property" name="The &quot;b&quot; property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/>
<keyword type="signal" name="The &quot;rate-changed&quot; signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#idp63378768"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#idp62996384"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#idp59456000"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.6.5.2"/>
<keyword type="struct" name="struct GstAudioWSincBand" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"/>
<keyword type="property" name="The &quot;lower-frequency&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/>
<keyword type="property" name="The &quot;upper-frequency&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode"/>
<keyword type="property" name="The &quot;window&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"/>
<keyword type="property" name="The &quot;length&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#idp59475856"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#idp59866960"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#idp65002496"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.6.5.2"/>
<keyword type="struct" name="struct GstAudioWSincLimit" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct"/>
<keyword type="property" name="The &quot;frequency&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"/>
<keyword type="property" name="The &quot;length&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/>
<keyword type="property" name="The &quot;window&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/>
<keyword type="property" name="The &quot;cutoff&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#idp60156720"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#idp62360224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#idp65036528"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.6.6.2"/>
<keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/>
<keyword type="property" name="The &quot;delay&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/>
<keyword type="property" name="The &quot;feedback&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/>
<keyword type="property" name="The &quot;intensity&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/>
<keyword type="property" name="The &quot;max-delay&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#idp59265360"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#idp58680144"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#idp59197408"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.6.4.2"/>
<keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/>
<keyword type="property" name="The &quot;characteristics&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/>
<keyword type="property" name="The &quot;ratio&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/>
<keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#idp63683648"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#idp59793024"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#idp64252592"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.6.4.2"/>
<keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/>
<keyword type="property" name="The &quot;degree&quot; property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#idp62429168"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#idp61046336"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#idp61858992"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.6.4.2"/>
<keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/>
<keyword type="property" name="The &quot;panorama&quot; property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/>
<keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#idp62771456"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#idp63971840"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#idp63305488"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.6.4.2"/>
<keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/>
<keyword type="property" name="The &quot;filter-band&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/>
<keyword type="property" name="The &quot;filter-width&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/>
<keyword type="property" name="The &quot;level&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/>
<keyword type="property" name="The &quot;mono-level&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#idp62582896"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#idp61643424"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#id-1.2.27.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#id-1.2.27.5.3.2"/>
<keyword type="struct" name="struct GstAuParse" link="gst-plugins-good-plugins-auparse.html#GstAuParse-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#idp62078288"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#idp61540736"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#idp64187520"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.7.4.2"/>
<keyword type="struct" name="GstAutoAudioSink" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"/>
<keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/>
<keyword type="property" name="The &quot;ts-offset&quot; property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#idp61728928"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#idp60123824"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#idp63838304"/>
+ <keyword type="property" name="The &quot;sync&quot; property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--sync"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#id-1.2.29.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#id-1.2.29.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#id-1.2.29.7.4.2"/>
<keyword type="struct" name="GstAutoAudioSrc" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct"/>
<keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#idp63454512"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#idp63347152"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#idp60354576"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.7.4.2"/>
<keyword type="struct" name="GstAutoVideoSink" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct"/>
<keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps"/>
<keyword type="property" name="The &quot;ts-offset&quot; property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#idp58872176"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#idp60351104"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#idp61771920"/>
+ <keyword type="property" name="The &quot;sync&quot; property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--sync"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#id-1.2.31.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#id-1.2.31.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#id-1.2.31.7.4.2"/>
<keyword type="struct" name="GstAutoVideoSrc" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct"/>
<keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#idp65460288"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#idp65457856"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#idp65451184"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.5.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.5.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.5.6.2"/>
<keyword type="struct" name="GstAviDemux" link="gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#idp61779392"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#idp63713408"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#idp63209568"/>
+ <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.7.4.2"/>
<keyword type="struct" name="struct GstAviMux" link="gst-plugins-good-plugins-avimux.html#GstAviMux-struct"/>
<keyword type="property" name="The &quot;bigfile&quot; property" link="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#idp63244576"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#idp61577552"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#idp60868960"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.5.2.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.5.4.2"/>
<keyword type="struct" name="struct GstAviSubtitle" link="gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#idp58981728"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#idp53595840"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#id-1.2.35.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#id-1.2.35.6.2.2"/>
<keyword type="struct" name="struct GstCACASink" link="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct"/>
<keyword type="property" name="The &quot;anti-aliasing&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"/>
<keyword type="property" name="The &quot;dither&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither"/>
<keyword type="property" name="The &quot;screen-height&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"/>
<keyword type="property" name="The &quot;screen-width&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#idp62720400"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#idp65173536"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#id-1.2.36.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#id-1.2.36.6.2.2"/>
<keyword type="struct" name="struct GstCairoOverlay" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct"/>
<keyword type="signal" name="The &quot;caps-changed&quot; signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"/>
<keyword type="signal" name="The &quot;draw&quot; signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"/>
- <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#idp58892352"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#idp65855600"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#idp59594656"/>
+ <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#id-1.2.37.6.2.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#id-1.2.37.6.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#id-1.2.37.6.3.2"/>
<keyword type="struct" name="struct GstCapsSetter" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/>
<keyword type="property" name="The &quot;join&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/>
<keyword type="property" name="The &quot;replace&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#idp60754384"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#idp61466944"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#idp64774768"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.6.4.2"/>
<keyword type="struct" name="struct GstCutter" link="gst-plugins-good-plugins-cutter.html#GstCutter-struct"/>
<keyword type="property" name="The &quot;leaky&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/>
<keyword type="property" name="The &quot;pre-length&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/>
<keyword type="property" name="The &quot;run-length&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--run-length"/>
<keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold"/>
<keyword type="property" name="The &quot;threshold-dB&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#idp59184608"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#idp60812160"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#idp59409312"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.5.4.2"/>
<keyword type="struct" name="struct GstDcaParse" link="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#idp63931040"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#idp59791280"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#idp65156848"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.7.4.2"/>
<keyword type="struct" name="struct GstDeinterlace" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"/>
<keyword type="property" name="The &quot;fields&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/>
<keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/>
@@ -496,26 +498,26 @@
<keyword type="property" name="The &quot;drop-orphans&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans"/>
<keyword type="property" name="The &quot;ignore-obscure&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"/>
<keyword type="property" name="The &quot;locking&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#idp62131984"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#idp59513760"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#idp64791696"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.6.6.2"/>
<keyword type="struct" name="struct GstDeinterleave" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct"/>
<keyword type="property" name="The &quot;keep-positions&quot; property" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#idp58645648"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#idp60605792"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#idp62342128"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.7.4.2"/>
<keyword type="struct" name="struct GstDiceTV" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct"/>
<keyword type="property" name="The &quot;square-bits&quot; property" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"/>
<keyword type="signal" name="The &quot;reset&quot; signal" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#idp66275408"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#idp64060816"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#id-1.2.43.4.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#id-1.2.43.4.2.2"/>
<keyword type="struct" name="struct GstDirectSoundSink" link="gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dtmfsrc.html#idp62915632"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dtmfsrc.html#idp61986080"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dtmfsrc.html#id-1.2.44.6.7.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dtmfsrc.html#id-1.2.44.6.7.2"/>
<keyword type="struct" name="struct GstDTMFSrc" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"/>
<keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#idp65723088"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#idp65815072"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#id-1.2.45.8.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#id-1.2.45.8.2.2"/>
<keyword type="struct" name="struct GstDV1394Src" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct"/>
<keyword type="property" name="The &quot;channel&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"/>
<keyword type="property" name="The &quot;consecutive&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive"/>
@@ -526,23 +528,23 @@
<keyword type="property" name="The &quot;use-avc&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name"/>
<keyword type="signal" name="The &quot;frame-dropped&quot; signal" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#idp61624528"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#idp59413952"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#id-1.2.46.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#id-1.2.46.6.2.2"/>
<keyword type="struct" name="struct GstDVDec" link="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct"/>
<keyword type="property" name="The &quot;clamp-chroma&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"/>
<keyword type="property" name="The &quot;clamp-luma&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma"/>
<keyword type="property" name="The &quot;drop-factor&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/>
<keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#idp65322672"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#idp60696336"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#id-1.2.47.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#id-1.2.47.5.2.2"/>
<keyword type="struct" name="struct GstDVDemux" link="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#idp60516768"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#idp63062192"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#idp65244640"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.5.4.2"/>
<keyword type="struct" name="struct GstEdgeTV" link="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#idp60527760"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#idp61487088"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#idp61780672"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.7.4.2"/>
<keyword type="struct" name="struct GstIirEqualizer10Bands" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"/>
<keyword type="property" name="The &quot;band0&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/>
<keyword type="property" name="The &quot;band1&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1"/>
@@ -554,24 +556,24 @@
<keyword type="property" name="The &quot;band7&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7"/>
<keyword type="property" name="The &quot;band8&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"/>
<keyword type="property" name="The &quot;band9&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#idp65633712"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#idp59388320"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#idp62578960"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#id-1.2.50.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#id-1.2.50.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#id-1.2.50.7.4.2"/>
<keyword type="struct" name="struct GstIirEqualizer3Bands" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct"/>
<keyword type="property" name="The &quot;band0&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"/>
<keyword type="property" name="The &quot;band1&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"/>
<keyword type="property" name="The &quot;band2&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#idp65863520"/>
- <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#idp62131008"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#idp67290512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#idp62359136"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.7.3.1"/>
+ <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.7.3.2"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.7.4.2"/>
<keyword type="struct" name="struct GstIirEqualizerNBands" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct"/>
<keyword type="property" name="The &quot;num-bands&quot; property" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#idp66872576"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#idp60924240"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#id-1.2.52.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#id-1.2.52.5.2.2"/>
<keyword type="struct" name="struct GstFlacDec" link="gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#idp67341744"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#idp64028448"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#id-1.2.53.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#id-1.2.53.7.2.2"/>
<keyword type="struct" name="struct GstFlacEnc" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct"/>
<keyword type="property" name="The &quot;blocksize&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"/>
<keyword type="property" name="The &quot;escape-coding&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding"/>
@@ -588,131 +590,131 @@
<keyword type="property" name="The &quot;streamable-subset&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset"/>
<keyword type="property" name="The &quot;padding&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"/>
<keyword type="property" name="The &quot;seekpoints&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#idp62696320"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#idp64839696"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#idp61831856"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.6.5.2"/>
<keyword type="struct" name="struct GstFlacParse" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct"/>
<keyword type="property" name="The &quot;check-frame-checksums&quot; property" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#idp59710064"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#idp65056704"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#id-1.2.55.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#id-1.2.55.6.2.2"/>
<keyword type="struct" name="struct GstFlacTag" link="gst-plugins-good-plugins-flactag.html#GstFlacTag-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#idp65778032"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#idp66991744"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#idp61706544"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.5.4.2"/>
<keyword type="struct" name="struct GstFlvDemux" link="gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#idp61251920"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#idp65340896"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#idp59929280"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.7.4.2"/>
<keyword type="struct" name="GstFlvMux" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct"/>
<keyword type="property" name="The &quot;is-live&quot; property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"/>
<keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#idp60223792"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#idp64665680"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#id-1.2.58.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#id-1.2.58.5.3.2"/>
<keyword type="struct" name="struct GstFlxDec" link="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#idp65216832"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#idp61313232"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#idp64906224"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.6.5.2"/>
<keyword type="struct" name="struct GstGamma" link="gst-plugins-good-plugins-gamma.html#GstGamma-struct"/>
<keyword type="property" name="The &quot;gamma&quot; property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp67233296"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp63600624"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#id-1.2.60.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#id-1.2.60.6.2.2"/>
<keyword type="struct" name="struct GstGdkPixbufSink" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"/>
<keyword type="property" name="The &quot;last-pixbuf&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/>
<keyword type="property" name="The &quot;send-messages&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/>
<keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#idp64567760"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#idp63899488"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#idp59564656"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#id-1.2.61.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#id-1.2.61.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#id-1.2.61.5.4.2"/>
<keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom.html#GstGoom-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#idp63177840"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#idp60656352"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#idp61219984"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.5.4.2"/>
<keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom2k1.html#GstGoom-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#idp64726432"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#idp65054576"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#id-1.2.63.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#id-1.2.63.7.2.2"/>
<keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/>
<keyword type="property" name="The &quot;channel&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/>
<keyword type="property" name="The &quot;guid&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"/>
<keyword type="property" name="The &quot;use-avc&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#idp63907008"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#idp60892640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#idp60649776"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.5.4.2"/>
<keyword type="struct" name="struct GstICYDemux" link="gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#idp60372656"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#idp62054576"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#idp64536960"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.6.6.2"/>
<keyword type="struct" name="struct GstID3Demux" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"/>
<keyword type="property" name="The &quot;prefer-v1&quot; property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#idp65664032"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#idp66824752"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#id-1.2.66.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#id-1.2.66.6.2.2"/>
<keyword type="struct" name="struct GstId3v2Mux" link="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#idp61376320"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#idp64623376"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#idp65805552"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.5.4.2"/>
<keyword type="struct" name="struct GstImageFreeze" link="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#idp64505600"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#idp63240560"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#idp60155200"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.6.6.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.6.7.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.6.7.2"/>
<keyword type="struct" name="struct GstInterleave" link="gst-plugins-good-plugins-interleave.html#GstInterleave-struct"/>
<keyword type="property" name="The &quot;channel-positions&quot; property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/>
<keyword type="property" name="The &quot;channel-positions-from-input&quot; property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#idp57307264"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#idp65690528"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#idp59849264"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#idp66183776"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#idp68874656"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#id-1.2.69.4.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#id-1.2.69.4.10.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#id-1.2.69.4.10.2"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#id-1.2.70.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#id-1.2.70.6.2.2"/>
<keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/>
<keyword type="property" name="The &quot;client&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/>
<keyword type="property" name="The &quot;connect&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/>
<keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/>
<keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/>
<keyword type="property" name="The &quot;transport&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#idp68005392"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#idp68373216"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#id-1.2.71.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#id-1.2.71.6.2.2"/>
<keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/>
<keyword type="property" name="The &quot;client&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/>
<keyword type="property" name="The &quot;connect&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/>
<keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server"/>
<keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/>
<keyword type="property" name="The &quot;transport&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#idp67655616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#idp66470176"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#id-1.2.72.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#id-1.2.72.6.2.2"/>
<keyword type="struct" name="struct GstJpegDec" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"/>
<keyword type="property" name="The &quot;idct-method&quot; property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/>
<keyword type="property" name="The &quot;max-errors&quot; property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#idp56996640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#idp65000672"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#id-1.2.73.8.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#id-1.2.73.8.2.2"/>
<keyword type="struct" name="struct GstJpegEnc" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"/>
<keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/>
<keyword type="property" name="The &quot;idct-method&quot; property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/>
<keyword type="signal" name="The &quot;frame-encoded&quot; signal" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"/>
- <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#idp68313168"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#idp67817328"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#idp65634896"/>
+ <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#id-1.2.74.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#id-1.2.74.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#id-1.2.74.6.4.2"/>
<keyword type="struct" name="struct GstLevel" link="gst-plugins-good-plugins-level.html#GstLevel-struct"/>
<keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/>
<keyword type="property" name="The &quot;message&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/>
<keyword type="property" name="The &quot;peak-falloff&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/>
<keyword type="property" name="The &quot;peak-ttl&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/>
<keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#idp69169648"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#idp66087440"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#idp66238512"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.7.4.2"/>
<keyword type="struct" name="GstMatroskaMux" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"/>
<keyword type="property" name="The &quot;writing-app&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/>
<keyword type="property" name="The &quot;version&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/>
<keyword type="property" name="The &quot;min-index-interval&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/>
<keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#idp67266704"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#idp66646160"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#idp65713344"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.6.4.2"/>
<keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/>
<keyword type="property" name="The &quot;max-gap-time&quot; property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#idp68799680"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#idp68802736"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#idp69158256"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.7.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.7.10.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.7.10.2"/>
<keyword type="struct" name="GstMJ2Mux" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"/>
<keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/>
<keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/>
@@ -723,17 +725,17 @@
<keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time"/>
<keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"/>
<keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#idp55910160"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#idp65971872"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#idp67843040"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.5.4.2"/>
<keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#idp61640368"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#idp64800512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#idp59213824"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.5.4.2"/>
<keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#idp60034016"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#idp69627312"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#idp64400688"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.7.8.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.7.10.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.7.10.2"/>
<keyword type="typedef" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux"/>
<keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/>
<keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/>
@@ -744,16 +746,16 @@
<keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time"/>
<keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"/>
<keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#idp62756640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#idp61506848"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#id-1.2.81.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#id-1.2.81.5.3.2"/>
<keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#idp66003312"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#idp59003088"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#id-1.2.82.4.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#id-1.2.82.4.3.2"/>
<keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawDec-struct"/>
<keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#idp70233408"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#idp69828864"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#idp70006928"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.6.6.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.6.8.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.6.8.2"/>
<keyword type="struct" name="struct GstMultiFileSink" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"/>
<keyword type="enum" name="enum GstMultiFileSinkNext" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext"/>
<keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"/>
@@ -762,9 +764,9 @@
<keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages"/>
<keyword type="property" name="The &quot;max-files&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files"/>
<keyword type="property" name="The &quot;max-file-size&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#idp69883184"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#idp67511424"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#idp67175104"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#id-1.2.84.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#id-1.2.84.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#id-1.2.84.6.5.2"/>
<keyword type="struct" name="struct GstMultiFileSrc" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"/>
<keyword type="property" name="The &quot;index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index"/>
@@ -772,20 +774,20 @@
<keyword type="property" name="The &quot;loop&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop"/>
<keyword type="property" name="The &quot;start-index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index"/>
<keyword type="property" name="The &quot;stop-index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"/>
- <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#idp66476176"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#idp61073168"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#idp68380896"/>
+ <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.6.6.2"/>
<keyword type="struct" name="struct GstMultipartDemux" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct"/>
<keyword type="property" name="The &quot;autoscan&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"/>
<keyword type="property" name="The &quot;boundary&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary"/>
<keyword type="property" name="The &quot;single-stream&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"/>
- <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#idp64493024"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#idp69256800"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#idp66858880"/>
+ <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.6.4.2"/>
<keyword type="struct" name="struct GstMultipartMux" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct"/>
<keyword type="property" name="The &quot;boundary&quot; property" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#idp69950528"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#idp70171408"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#id-1.2.87.7.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#id-1.2.87.7.3.2"/>
<keyword type="struct" name="struct GstMultiUDPSink" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct"/>
<keyword type="property" name="The &quot;bytes-served&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"/>
<keyword type="property" name="The &quot;bytes-to-serve&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve"/>
@@ -815,65 +817,65 @@
<keyword type="signal" name="The &quot;client-removed&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/>
<keyword type="signal" name="The &quot;get-stats&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/>
<keyword type="signal" name="The &quot;remove&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#idp62578032"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#idp64173520"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#idp61727216"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#id-1.2.88.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#id-1.2.88.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#id-1.2.88.6.4.2"/>
<keyword type="struct" name="struct GstOpTV" link="gst-plugins-good-plugins-optv.html#GstOpTV-struct"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/>
<keyword type="property" name="The &quot;speed&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/>
<keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--threshold"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#idp60390224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#idp59733568"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#id-1.2.89.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#id-1.2.89.7.2.2"/>
<keyword type="struct" name="struct GstOss4Sink" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name"/>
<keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"/>
<keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#idp66413968"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#idp67435376"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#id-1.2.90.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#id-1.2.90.7.2.2"/>
<keyword type="struct" name="struct GstOss4Source" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#idp69810512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#idp67169504"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#id-1.2.91.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#id-1.2.91.6.2.2"/>
<keyword type="struct" name="struct GstOssSink" link="gst-plugins-good-plugins-osssink.html#GstOssSink-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osssink.html#GstOssSink--device"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#idp68444688"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#idp62018304"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#id-1.2.92.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#id-1.2.92.7.2.2"/>
<keyword type="struct" name="struct GstOssSrc" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#idp63408928"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#idp67480336"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#id-1.2.93.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#id-1.2.93.5.2.2"/>
<keyword type="struct" name="struct GstOsxAudioSink" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#idp66136224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#idp65934976"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#id-1.2.94.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#id-1.2.94.5.2.2"/>
<keyword type="struct" name="struct GstOsxAudioSrc" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#idp68878752"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#idp67632256"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#id-1.2.95.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#id-1.2.95.5.2.2"/>
<keyword type="struct" name="struct GstOSXVideoSink" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink"/>
<keyword type="property" name="The &quot;embed&quot; property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"/>
<keyword type="property" name="The &quot;fullscreen&quot; property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#idp68413344"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#idp64658832"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#id-1.2.96.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#id-1.2.96.5.2.2"/>
<keyword type="struct" name="struct GstPngDec" link="gst-plugins-good-plugins-pngdec.html#GstPngDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#idp64777136"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#idp68844032"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#id-1.2.97.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#id-1.2.97.7.2.2"/>
<keyword type="struct" name="struct GstPngEnc" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct"/>
<keyword type="property" name="The &quot;compression-level&quot; property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"/>
<keyword type="property" name="The &quot;snapshot&quot; property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#idp65280048"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#idp68379328"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#idp65667536"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.6.7.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.6.8.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.6.8.2"/>
<keyword type="struct" name="struct GstProgressReport" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct"/>
<keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"/>
<keyword type="property" name="The &quot;update-freq&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq"/>
<keyword type="property" name="The &quot;format&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"/>
<keyword type="property" name="The &quot;do-query&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#idp67522160"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#idp67984048"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#id-1.2.99.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#id-1.2.99.7.2.2"/>
<keyword type="struct" name="struct GstPulseSink" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"/>
<keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server"/>
@@ -884,8 +886,8 @@
<keyword type="property" name="The &quot;stream-properties&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties"/>
<keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"/>
<keyword type="property" name="The &quot;current-device&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--current-device"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#idp70194928"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#idp70533712"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#id-1.2.100.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#id-1.2.100.7.2.2"/>
<keyword type="struct" name="struct GstPulseSrc" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"/>
<keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server"/>
@@ -897,19 +899,19 @@
<keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/>
<keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/>
<keyword type="property" name="The &quot;current-device&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#idp70916176"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#idp70156928"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#idp65577744"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.6.4.2"/>
<keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/>
<keyword type="property" name="The &quot;planes&quot; property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#idp67932544"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#idp60256320"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#idp68489616"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.6.6.2"/>
<keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/>
<keyword type="signal" name="The &quot;got-redirect&quot; signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#idp70116784"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#idp68421696"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#idp68489744"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.7.7.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.7.9.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.7.9.2"/>
<keyword type="struct" name="struct GstQTMux" link="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"/>
<keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/>
<keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/>
@@ -920,9 +922,9 @@
<keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time"/>
<keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"/>
<keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#idp68240704"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#idp67421936"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#idp71639920"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.7.2.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.7.4.2"/>
<keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/>
<keyword type="struct" name="struct GstQTMoovRecoverClass" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"/>
<keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/>
@@ -931,37 +933,37 @@
<keyword type="property" name="The &quot;faststart-mode&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/>
<keyword type="property" name="The &quot;fixed-output&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/>
<keyword type="property" name="The &quot;recovery-input&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#idp61262768"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#idp71234288"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#idp71569888"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.6.6.2"/>
<keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/>
<keyword type="property" name="The &quot;color&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/>
<keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"/>
<keyword type="property" name="The &quot;trigger&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#idp70189408"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#idp71617664"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.6.2.2"/>
<keyword type="struct" name="struct GstRevTV" link="gst-plugins-good-plugins-revtv.html#GstRevTV-struct"/>
<keyword type="property" name="The &quot;delay&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--delay"/>
<keyword type="property" name="The &quot;gain&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--gain"/>
<keyword type="property" name="The &quot;linespace&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#idp71423248"/>
- <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#idp69102400"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#idp69994064"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#idp72761344"/>
+ <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.6.4.1"/>
+ <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.6.4.2"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.6.5.2"/>
<keyword type="struct" name="struct GstRgAnalysis" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct"/>
<keyword type="property" name="The &quot;forced&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"/>
<keyword type="property" name="The &quot;num-tracks&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks"/>
<keyword type="property" name="The &quot;reference-level&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level"/>
<keyword type="property" name="The &quot;message&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#idp69022208"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#idp67873648"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#idp67620000"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.6.4.2"/>
<keyword type="struct" name="struct GstRgLimiter" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct"/>
<keyword type="property" name="The &quot;enabled&quot; property" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#idp64182064"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#idp69835680"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#idp71691840"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.7.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.7.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.7.5.2"/>
<keyword type="struct" name="struct GstRgVolume" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct"/>
<keyword type="property" name="The &quot;album-mode&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"/>
<keyword type="property" name="The &quot;fallback-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain"/>
@@ -969,14 +971,14 @@
<keyword type="property" name="The &quot;pre-amp&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp"/>
<keyword type="property" name="The &quot;result-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain"/>
<keyword type="property" name="The &quot;target-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#idp62616864"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#idp63101120"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#idp69999984"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.6.4.2"/>
<keyword type="struct" name="struct GstRippleTV" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/>
<keyword type="property" name="The &quot;reset&quot; property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#idp72859536"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#idp71625088"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#id-1.2.111.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#id-1.2.111.7.4.2"/>
<keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/>
<keyword type="property" name="The &quot;skip&quot; property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/>
<keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/>
@@ -988,51 +990,51 @@
<keyword type="signal" name="The &quot;on-ssrc-collision&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/>
<keyword type="signal" name="The &quot;on-ssrc-validated&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/>
<keyword type="signal" name="The &quot;on-timeout&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3depay.html#idp67585552"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3depay.html#idp71193152"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3depay.html#idp61610352"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.5.5.2"/>
<keyword type="struct" name="struct GstRtpAC3Depay" link="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3pay.html#idp71511792"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3pay.html#idp69664080"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3pay.html#idp68520064"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.5.5.2"/>
<keyword type="struct" name="struct GstRtpAC3Pay" link="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrdepay.html#idp70399136"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrdepay.html#idp70320048"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrdepay.html#idp69664208"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.5.5.2"/>
<keyword type="struct" name="struct GstRtpAMRDepay" link="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrpay.html#idp69664336"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrpay.html#idp72446048"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrpay.html#idp69843888"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.5.5.2"/>
<keyword type="struct" name="struct GstRtpAMRPay" link="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvdepay.html#idp71908640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvdepay.html#idp70968064"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvpay.html#idp72002384"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvpay.html#idp71851968"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16depay.html#idp70439424"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16depay.html#idp69307904"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16depay.html#idp69963088"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvdepay.html#id-1.2.116.4.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvdepay.html#id-1.2.116.4.4.2"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvpay.html#id-1.2.117.4.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvpay.html#id-1.2.117.4.4.2"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.5.5.2"/>
<keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16pay.html#idp70378608"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16pay.html#idp69461616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16pay.html#idp60231824"/>
+ <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.5.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.5.5.2"/>
<keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#idp71844624"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#idp65738816"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#id-1.2.120.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#id-1.2.120.6.4.2"/>
<keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/>
<keyword type="property" name="The &quot;buffer-list&quot; property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#idp64783568"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#idp66580384"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#id-1.2.121.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#id-1.2.121.6.5.2"/>
<keyword type="struct" name="struct GstRtpJPEGPay" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"/>
<keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/>
<keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/>
<keyword type="property" name="The &quot;buffer-list&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsbcpay.html#idp71869328"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsbcpay.html#idp65953216"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsbcpay.html#id-1.2.122.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsbcpay.html#id-1.2.122.6.2.2"/>
<keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/>
<keyword type="property" name="The &quot;min-frames&quot; property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#idp69748992"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#idp69751856"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#idp72750592"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.8.7.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.8.9.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.8.9.2"/>
<keyword type="struct" name="struct GstRTSPSrc" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"/>
<keyword type="property" name="The &quot;debug&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/>
<keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/>
@@ -1065,9 +1067,9 @@
<keyword type="signal" name="The &quot;handle-request&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
<keyword type="signal" name="The &quot;on-sdp&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
<keyword type="signal" name="The &quot;select-stream&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpbin.html#idp74394608"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#idp74402224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#idp74409680"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.8.10.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.8.12.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.8.12.2"/>
<keyword type="struct" name="struct GstRtpBin" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"/>
<keyword type="property" name="The &quot;do-lost&quot; property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/>
<keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/>
@@ -1097,11 +1099,11 @@
<keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/>
<keyword type="signal" name="The &quot;reset-sync&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/>
<keyword type="signal" name="The &quot;payload-type-change&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp71988336"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp71997472"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfmux.html#id-1.2.125.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfmux.html#id-1.2.125.5.4.2"/>
<keyword type="struct" name="struct GstRTPDTMFMux" link="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp69611808"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp67573632"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfsrc.html#id-1.2.126.6.7.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfsrc.html#id-1.2.126.6.7.2"/>
<keyword type="struct" name="struct GstRTPDTMFSrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"/>
<keyword type="property" name="The &quot;clock-rate&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/>
<keyword type="property" name="The &quot;packet-redundancy&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"/>
@@ -1111,8 +1113,8 @@
<keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/>
<keyword type="property" name="The &quot;timestamp&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/>
<keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp75250640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp72269360"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.7.2.2"/>
<keyword type="struct" name="struct GstRtpJitterBuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"/>
<keyword type="property" name="The &quot;do-lost&quot; property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/>
<keyword type="property" name="The &quot;drop-on-latency&quot; property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/>
@@ -1130,23 +1132,23 @@
<keyword type="signal" name="The &quot;on-npt-stop&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/>
<keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/>
<keyword type="signal" name="The &quot;set-active&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpmux.html#idp73088464"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpmux.html#idp72860896"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpmux.html#idp74041616"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.6.5.2"/>
<keyword type="struct" name="struct GstRTPMux" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"/>
<keyword type="property" name="The &quot;seqnum&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/>
<keyword type="property" name="The &quot;seqnum-offset&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/>
<keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/>
<keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#idp60646176"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#idp69992912"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.6.2.2"/>
<keyword type="struct" name="struct GstRtpPtDemux" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"/>
<keyword type="signal" name="The &quot;clear-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/>
<keyword type="signal" name="The &quot;new-payload-type&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/>
<keyword type="signal" name="The &quot;payload-type-change&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/>
<keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#idp73570592"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#idp73129120"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.7.2.2"/>
<keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/>
<keyword type="property" name="The &quot;bandwidth&quot; property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/>
<keyword type="property" name="The &quot;internal-session&quot; property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/>
@@ -1171,36 +1173,36 @@
<keyword type="signal" name="The &quot;on-ssrc-validated&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated"/>
<keyword type="signal" name="The &quot;on-timeout&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout"/>
<keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp73287952"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp71756816"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.6.2.2"/>
<keyword type="struct" name="struct GstRtpSsrcDemux" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"/>
<keyword type="signal" name="The &quot;clear-ssrc&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/>
<keyword type="signal" name="The &quot;new-ssrc-pad&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/>
<keyword type="signal" name="The &quot;removed-ssrc-pad&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-sbcparse.html#idp71837248"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-sbcparse.html#idp71426208"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-sbcparse.html#id-1.2.132.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-sbcparse.html#id-1.2.132.5.3.2"/>
<keyword type="struct" name="struct GstSbcParse" link="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-scaletempo.html#idp71598192"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-scaletempo.html#idp71291872"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-scaletempo.html#idp74779712"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.133.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.133.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.133.6.5.2"/>
<keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/>
<keyword type="property" name="The &quot;overlap&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/>
<keyword type="property" name="The &quot;rate&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"/>
<keyword type="property" name="The &quot;search&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"/>
<keyword type="property" name="The &quot;stride&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#idp72330512"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#idp71191744"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#idp73331808"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.134.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.134.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.134.5.4.2"/>
<keyword type="struct" name="struct GstShagadelicTV" link="gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#idp66620368"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#idp75316224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#idp69782160"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.135.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.135.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.135.6.5.2"/>
<keyword type="struct" name="struct GstShapeWipe" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"/>
<keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/>
<keyword type="property" name="The &quot;position&quot; property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/>
- <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#idp74327808"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#idp68932912"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#idp73291952"/>
+ <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#id-1.2.136.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#id-1.2.136.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#id-1.2.136.6.5.2"/>
<keyword type="struct" name="struct GstSMPTE" link="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"/>
<keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/>
<keyword type="property" name="The &quot;depth&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/>
@@ -1208,17 +1210,17 @@
<keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/>
<keyword type="property" name="The &quot;duration&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/>
<keyword type="property" name="The &quot;invert&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/>
- <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#idp74287824"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#idp71025712"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#idp74118704"/>
+ <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.137.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.137.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.137.6.6.2"/>
<keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/>
<keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/>
<keyword type="property" name="The &quot;depth&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/>
<keyword type="property" name="The &quot;position&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/>
<keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/>
<keyword type="property" name="The &quot;invert&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#idp73423824"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#idp73543264"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#id-1.2.138.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#id-1.2.138.7.2.2"/>
<keyword type="struct" name="struct GstSoupHTTPSrc" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"/>
<keyword type="property" name="The &quot;automatic-redirect&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/>
<keyword type="property" name="The &quot;cookies&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/>
@@ -1237,9 +1239,9 @@
<keyword type="property" name="The &quot;user-pw&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"/>
<keyword type="property" name="The &quot;extra-headers&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"/>
<keyword type="property" name="The &quot;timeout&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"/>
- <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#idp73114544"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#idp76216400"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#idp76602640"/>
+ <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#id-1.2.139.6.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#id-1.2.139.6.7.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#id-1.2.139.6.7.2"/>
<keyword type="struct" name="struct GstSpectrum" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"/>
<keyword type="property" name="The &quot;bands&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/>
<keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/>
@@ -1249,8 +1251,8 @@
<keyword type="property" name="The &quot;message-phase&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/>
<keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/>
<keyword type="property" name="The &quot;multi-channel&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#idp73495904"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#idp69323520"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#id-1.2.140.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#id-1.2.140.7.2.2"/>
<keyword type="struct" name="struct GstSpeexEnc" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"/>
<keyword type="property" name="The &quot;abr&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/>
<keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/>
@@ -1262,28 +1264,28 @@
<keyword type="property" name="The &quot;vad&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/>
<keyword type="property" name="The &quot;vbr&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#idp67671856"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#idp75363744"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#id-1.2.141.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#id-1.2.141.6.2.2"/>
<keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/>
<keyword type="property" name="The &quot;enh&quot; property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#idp72609504"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#idp73404976"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#idp75936080"/>
+ <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.142.7.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.142.7.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.142.7.5.2"/>
<keyword type="struct" name="struct GstSplitFileSrc" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"/>
<keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#idp61083040"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#idp61245616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#idp72398912"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#id-1.2.143.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#id-1.2.143.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#id-1.2.143.6.4.2"/>
<keyword type="struct" name="struct GstStreakTV" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"/>
<keyword type="property" name="The &quot;feedback&quot; property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#idp76454288"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#idp74155328"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#idp76436000"/>
+ <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#id-1.2.144.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#id-1.2.144.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#id-1.2.144.6.4.2"/>
<keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/>
<keyword type="property" name="The &quot;tags&quot; property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/>
- <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#idp74771344"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#idp76200608"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#idp75681088"/>
+ <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.145.7.13.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.145.7.15.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.145.7.15.2"/>
<keyword type="struct" name="struct GstUDPSrc" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/>
<keyword type="property" name="The &quot;multicast-group&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/>
@@ -1302,14 +1304,15 @@
<keyword type="property" name="The &quot;socket&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"/>
<keyword type="property" name="The &quot;used-socket&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/>
<keyword type="property" name="The &quot;bind-address&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/>
- <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#idp70433808"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#idp73526176"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#idp73591424"/>
+ <keyword type="property" name="The &quot;address&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address"/>
+ <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#id-1.2.146.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#id-1.2.146.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#id-1.2.146.7.4.2"/>
<keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/>
<keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#idp76376096"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#idp76030496"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#id-1.2.147.8.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#id-1.2.147.8.2.2"/>
<keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/>
@@ -1328,8 +1331,8 @@
<keyword type="property" name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/>
<keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/>
<keyword type="signal" name="The &quot;prepare-format&quot; signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#idp76082672"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#idp74073024"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#id-1.2.148.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#id-1.2.148.7.2.2"/>
<keyword type="struct" name="struct GstV4l2Sink" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/>
<keyword type="property" name="The &quot;device-fd&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/>
@@ -1354,28 +1357,28 @@
<keyword type="property" name="The &quot;extra-controls&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/>
<keyword type="property" name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/>
<keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#idp76412896"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#idp69785536"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#id-1.2.149.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#id-1.2.149.7.2.2"/>
<keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/>
<keyword type="property" name="The &quot;frequency&quot; property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#idp62368480"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#idp72680912"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#idp71806320"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.150.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.150.7.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.150.7.4.2"/>
<keyword type="struct" name="struct GstVertigoTV" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"/>
<keyword type="property" name="The &quot;speed&quot; property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/>
<keyword type="property" name="The &quot;zoom-speed&quot; property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/>
<keyword type="signal" name="The &quot;reset-parms&quot; signal" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#idp71477840"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#idp76007968"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#idp75693952"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#id-1.2.151.7.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#id-1.2.151.7.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#id-1.2.151.7.5.2"/>
<keyword type="struct" name="struct GstVideoBalance" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct"/>
<keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"/>
<keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast"/>
<keyword type="property" name="The &quot;hue&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/>
<keyword type="property" name="The &quot;saturation&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#idp76077744"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#idp77469072"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#id-1.2.152.6.8.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#id-1.2.152.6.8.2"/>
<keyword type="struct" name="struct GstVideoBox" link="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"/>
<keyword type="property" name="The &quot;alpha&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/>
<keyword type="property" name="The &quot;border-alpha&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/>
@@ -1385,33 +1388,33 @@
<keyword type="property" name="The &quot;right&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--right"/>
<keyword type="property" name="The &quot;top&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--top"/>
<keyword type="property" name="The &quot;autocrop&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#idp77515872"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#idp76956784"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#idp71978064"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#id-1.2.153.6.6.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#id-1.2.153.6.7.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#id-1.2.153.6.7.2"/>
<keyword type="struct" name="struct GstVideoCrop" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct"/>
<keyword type="property" name="The &quot;bottom&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"/>
<keyword type="property" name="The &quot;left&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left"/>
<keyword type="property" name="The &quot;right&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right"/>
<keyword type="property" name="The &quot;top&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#idp76903824"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#idp77216272"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#idp76880256"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#id-1.2.154.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#id-1.2.154.6.5.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#id-1.2.154.6.5.2"/>
<keyword type="struct" name="struct GstVideoFlip" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct"/>
<keyword type="enum" name="enum GstVideoFlipMethod" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod"/>
<keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/>
- <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#idp77312832"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#idp76898672"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#idp63127920"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#idp75770672"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#idp77124272"/>
+ <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#id-1.2.155.4.5.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#id-1.2.155.4.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#id-1.2.155.4.6.2"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#id-1.2.156.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#id-1.2.156.6.2.2"/>
<keyword type="struct" name="struct GstVP8Dec" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"/>
<keyword type="property" name="The &quot;deblocking-level&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/>
<keyword type="property" name="The &quot;noise-level&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/>
<keyword type="property" name="The &quot;post-processing&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing"/>
<keyword type="property" name="The &quot;post-processing-flags&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"/>
<keyword type="property" name="The &quot;threads&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#idp78532944"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#idp78540352"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#id-1.2.157.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#id-1.2.157.7.2.2"/>
<keyword type="struct" name="struct GstVP8Enc" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct"/>
<keyword type="property" name="The &quot;arnr-maxframes&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"/>
<keyword type="property" name="The &quot;arnr-strength&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength"/>
@@ -1472,22 +1475,22 @@
<keyword type="property" name="The &quot;undershoot&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/>
<keyword type="property" name="The &quot;vertical-scaling-mode&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/>
<keyword type="property" name="The &quot;timebase&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#idp78176720"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#idp77800016"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#idp78939664"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#id-1.2.158.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#id-1.2.158.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#id-1.2.158.5.4.2"/>
<keyword type="struct" name="struct GstWarpTV" link="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavenc.html#idp76248080"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#idp78882640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#idp78245680"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavenc.html#id-1.2.159.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#id-1.2.159.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#id-1.2.159.6.4.2"/>
<keyword type="struct" name="struct GstWavEnc" link="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#idp73194512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#idp77758576"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#id-1.2.160.4.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#id-1.2.160.4.2.2"/>
<keyword type="struct" name="struct GstWaveFormSink" link="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#idp77483728"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#idp74181184"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#id-1.2.161.5.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#id-1.2.161.5.2.2"/>
<keyword type="struct" name="struct GstWavpackDec" link="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#idp77084000"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#idp76422256"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#id-1.2.162.7.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#id-1.2.162.7.2.2"/>
<keyword type="struct" name="struct GstWavpackEnc" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"/>
<keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/>
<keyword type="property" name="The &quot;bits-per-sample&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample"/>
@@ -1496,21 +1499,21 @@
<keyword type="property" name="The &quot;joint-stereo-mode&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode"/>
<keyword type="property" name="The &quot;md5&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"/>
<keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#idp79356528"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#idp76950704"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#idp78210144"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.163.5.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.163.5.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.163.5.4.2"/>
<keyword type="struct" name="struct GstWavpackParse" link="gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#idp78214048"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#idp78937680"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#idp76140896"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#id-1.2.164.6.4.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#id-1.2.164.6.6.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#id-1.2.164.6.6.2"/>
<keyword type="struct" name="struct GstWavParse" link="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct"/>
<keyword type="property" name="The &quot;ignore-length&quot; property" link="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#idp73437696"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#idp77096080"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#idp77778992"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#id-1.2.165.6.3.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#id-1.2.165.6.4.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#id-1.2.165.6.4.2"/>
<keyword type="struct" name="struct GstWebMMux" link="gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#idp79073616"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#idp79707664"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#id-1.2.166.6.2.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#id-1.2.166.6.2.2"/>
<keyword type="struct" name="struct GstXImageSrc" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct"/>
<keyword type="property" name="The &quot;display-name&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"/>
<keyword type="property" name="The &quot;screen-num&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num"/>
@@ -1523,9 +1526,9 @@
<keyword type="property" name="The &quot;remote&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote"/>
<keyword type="property" name="The &quot;xid&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/>
<keyword type="property" name="The &quot;xname&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/>
- <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#idp77502448"/>
- <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#idp75256384"/>
- <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#idp61612816"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#id-1.2.167.5.2.1"/>
+ <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#id-1.2.167.5.3.1"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#id-1.2.167.5.3.2"/>
<keyword type="struct" name="struct GstY4mEncode" link="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct"/>
<keyword type="struct" name="struct GstIirEqualizer" link="GstIirEqualizer.html#GstIirEqualizer-struct"/>
<keyword type="constant" name="ALPHA_METHOD_SET" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-SET:CAPS"/>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
index 4484c7ad..339029d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="ch01.html" title="gst-plugins-good Elements">
<link rel="next" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,7 +96,7 @@ presentation-timestamp.
<p>
</p>
<div class="refsect2">
-<a name="idp60968608"></a><h3>Example pipelines</h3>
+<a name="id-1.2.2.4.8.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -119,7 +119,7 @@ Documentation last reviewed on 2011-04-21
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61113808"></a><h3>Element Information</h3>
+<a name="id-1.2.2.4.10.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -145,7 +145,7 @@ Documentation last reviewed on 2011-04-21
</div>
<hr>
<div class="refsect2">
-<a name="idp61394512"></a><h3>Element Pads</h3>
+<a name="id-1.2.2.4.10.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -253,6 +253,6 @@ Documentation last reviewed on 2011-04-21
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
index 487d8850..88042c63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
<link rel="prev" href="GstIirEqualizer.html" title="GstIirEqualizer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,6 +49,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
index 3b017acc..695cb2df 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">
<link rel="next" href="gst-plugins-good-plugins-aasink.html" title="aasink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@ can also estimate playback position and clip duration.
<p>
</p>
<div class="refsect2">
-<a name="idp53613184"></a><h3>Example launch line</h3>
+<a name="id-1.2.3.5.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ can also estimate playback position and clip duration.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60171744"></a><h3>Element Information</h3>
+<a name="id-1.2.3.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ can also estimate playback position and clip duration.
</div>
<hr>
<div class="refsect2">
-<a name="idp63145232"></a><h3>Element Pads</h3>
+<a name="id-1.2.3.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -181,6 +181,6 @@ The opaque GstAacParse data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
index b02a4949..25d5d67a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">
<link rel="next" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,7 +86,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61846336"></a><h3>Element Information</h3>
+<a name="id-1.2.4.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -112,7 +112,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp61927104"></a><h3>Element Pads</h3>
+<a name="id-1.2.4.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -286,6 +286,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
index 9a974500..f286a64e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-aasink.html" title="aasink">
<link rel="next" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ This is an AC3 parser.
<p>
</p>
<div class="refsect2">
-<a name="idp62274768"></a><h3>Example launch line</h3>
+<a name="id-1.2.5.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ This is an AC3 parser.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp58808512"></a><h3>Element Information</h3>
+<a name="id-1.2.5.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ This is an AC3 parser.
</div>
<hr>
<div class="refsect2">
-<a name="idp60272416"></a><h3>Element Pads</h3>
+<a name="id-1.2.5.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -192,6 +192,6 @@ The opaque GstAc3Parse object
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
index cbb0a74c..0f30eba2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
<link rel="next" href="gst-plugins-good-plugins-alpha.html" title="alpha">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@ scratches and dust.
<p>
</p>
<div class="refsect2">
-<a name="idp62035872"></a><h3>Example launch line</h3>
+<a name="id-1.2.6.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ scratches and dust.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62245648"></a><h3>Element Information</h3>
+<a name="id-1.2.6.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -118,7 +118,7 @@ scratches and dust.
</div>
<hr>
<div class="refsect2">
-<a name="idp59519664"></a><h3>Element Pads</h3>
+<a name="id-1.2.6.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -215,6 +215,6 @@ scratches and dust.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
index eaec5392..dbe4d07f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
<link rel="next" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59748752"></a><h3>Element Information</h3>
+<a name="id-1.2.9.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -86,7 +86,7 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
</div>
<hr>
<div class="refsect2">
-<a name="idp62244032"></a><h3>Element Pads</h3>
+<a name="id-1.2.9.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -152,6 +152,6 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
index 6ea2737c..f433e146 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
<link rel="next" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@ This element encode alaw audio. Alaw coding is also known as G.711.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61022016"></a><h3>Element Information</h3>
+<a name="id-1.2.10.4.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,7 +75,7 @@ This element encode alaw audio. Alaw coding is also known as G.711.
</div>
<hr>
<div class="refsect2">
-<a name="idp63360592"></a><h3>Element Pads</h3>
+<a name="id-1.2.10.4.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -156,6 +156,6 @@ This element encode alaw audio. Alaw coding is also known as G.711.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
index 73cf6f4b..ca89e0de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
<link rel="next" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,7 +105,7 @@ a snow video stream.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59175728"></a><h3>Element Information</h3>
+<a name="id-1.2.7.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -133,7 +133,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
</div>
<hr>
<div class="refsect2">
-<a name="idp63410416"></a><h3>Element Pads</h3>
+<a name="id-1.2.7.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -318,6 +318,6 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
index 51383109..43b10b60 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha">
<link rel="next" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@ Sample pipeline:
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61178048"></a><h3>Element Information</h3>
+<a name="id-1.2.8.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -108,7 +108,7 @@ Sample pipeline:
</div>
<hr>
<div class="refsect2">
-<a name="idp60145712"></a><h3>Element Pads</h3>
+<a name="id-1.2.8.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -174,6 +174,6 @@ Sample pipeline:
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
index 13f71cfe..604c57d6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
<link rel="next" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ formats.
<p>
</p>
<div class="refsect2">
-<a name="idp59757600"></a><h3>Example launch line</h3>
+<a name="id-1.2.11.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -80,7 +80,7 @@ formats.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61336288"></a><h3>Element Information</h3>
+<a name="id-1.2.11.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ formats.
</div>
<hr>
<div class="refsect2">
-<a name="idp60976768"></a><h3>Element Pads</h3>
+<a name="id-1.2.11.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -192,6 +192,6 @@ The opaque GstAacParse data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
index b1a95b6f..89a69651 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
<link rel="next" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ information.
<p>
</p>
<div class="refsect2">
-<a name="idp60528288"></a><h3>Example launch line</h3>
+<a name="id-1.2.12.5.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ the appropriate mime type set on buffers produced from apedemux.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62475824"></a><h3>Element Information</h3>
+<a name="id-1.2.12.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -118,7 +118,7 @@ the appropriate mime type set on buffers produced from apedemux.
</div>
<hr>
<div class="refsect2">
-<a name="idp61934880"></a><h3>Element Pads</h3>
+<a name="id-1.2.12.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -184,6 +184,6 @@ the appropriate mime type set on buffers produced from apedemux.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
index 894196ea..a8c520bd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
<link rel="next" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@ GstApev2Mux implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60847840"></a><h3>Element Information</h3>
+<a name="id-1.2.13.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -92,7 +92,7 @@ GstApev2Mux implements
</div>
<hr>
<div class="refsect2">
-<a name="idp59264720"></a><h3>Element Pads</h3>
+<a name="id-1.2.13.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -158,6 +158,6 @@ GstApev2Mux implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
index abb60314..1f04f85e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">
<link rel="next" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@ in pass-through mode.
<p>
</p>
<div class="refsect2">
-<a name="idp61370016"></a><h3>Example launch line</h3>
+<a name="id-1.2.14.7.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -99,7 +99,7 @@ in pass-through mode.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61827616"></a><h3>Element Information</h3>
+<a name="id-1.2.14.7.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,7 +125,7 @@ in pass-through mode.
</div>
<hr>
<div class="refsect2">
-<a name="idp59272864"></a><h3>Element Pads</h3>
+<a name="id-1.2.14.7.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -203,6 +203,6 @@ in pass-through mode.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
index 428c67ed..454632a9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">
<link rel="next" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ The difference between the clipping modes is best evaluated by testing.
<p>
</p>
<div class="refsect2">
-<a name="idp59809984"></a><h3>Example launch line</h3>
+<a name="id-1.2.15.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -94,7 +94,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63316000"></a><h3>Element Information</h3>
+<a name="id-1.2.15.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -120,7 +120,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp60556128"></a><h3>Element Pads</h3>
+<a name="id-1.2.15.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -206,6 +206,6 @@ opposite side, wrap-positive pushes them back from the same side.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
index f6a061f7..a91f2898 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
<link rel="next" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -103,7 +103,7 @@ a cutoff frequency at a quarter of the sampling rate.
<p>
</p>
<div class="refsect2">
-<a name="idp63500464"></a><h3>Example launch line</h3>
+<a name="id-1.2.16.6.8.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -125,7 +125,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63850592"></a><h3>Element Information</h3>
+<a name="id-1.2.16.6.9.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -151,7 +151,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp62927488"></a><h3>Element Pads</h3>
+<a name="id-1.2.16.6.9.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -266,6 +266,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
index 2d4b60fa..82426d34 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
<link rel="next" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -100,7 +100,7 @@ a cutoff frequency at a quarter of the sampling rate.
<p>
</p>
<div class="refsect2">
-<a name="idp63498976"></a><h3>Example launch line</h3>
+<a name="id-1.2.17.6.8.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -122,7 +122,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp58799360"></a><h3>Element Information</h3>
+<a name="id-1.2.17.6.9.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -148,7 +148,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp58668944"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.6.9.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -255,6 +255,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
index bbe58fa1..b3d84be3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
<link rel="next" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@ soft-knee mode is selected the ratio is applied smoothly.
<p>
</p>
<div class="refsect2">
-<a name="idp59265360"></a><h3>Example launch line</h3>
+<a name="id-1.2.23.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp58680144"></a><h3>Element Information</h3>
+<a name="id-1.2.23.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -124,7 +124,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp59197408"></a><h3>Element Pads</h3>
+<a name="id-1.2.23.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -222,6 +222,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
index 7b0fa916..a34c2d90 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
<link rel="next" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@ state and will be set to the current delay by default.
<p>
</p>
<div class="refsect2">
-<a name="idp60156720"></a><h3>Example launch line</h3>
+<a name="id-1.2.22.6.5.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -104,7 +104,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62360224"></a><h3>Element Information</h3>
+<a name="id-1.2.22.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -130,7 +130,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp65036528"></a><h3>Element Pads</h3>
+<a name="id-1.2.22.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -230,6 +230,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
index db3e213b..a6fa07c1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
<link rel="next" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -95,7 +95,7 @@ FIR filters as they're depending on the sampling rate.
<p>
</p>
<div class="refsect2">
-<a name="idp60227120"></a><h3>Example application</h3>
+<a name="id-1.2.18.7.5.1"></a><h3>Example application</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -441,7 +441,7 @@ gint
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62377616"></a><h3>Element Information</h3>
+<a name="id-1.2.18.7.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -467,7 +467,7 @@ gint
</div>
<hr>
<div class="refsect2">
-<a name="idp62850160"></a><h3>Element Pads</h3>
+<a name="id-1.2.18.7.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -583,6 +583,6 @@ stop until the event is handled.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
index 20636250..60917b9e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
<link rel="next" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -91,7 +91,7 @@ IIR filters as they're depending on the sampling rate.
<p>
</p>
<div class="refsect2">
-<a name="idp60583584"></a><h3>Example application</h3>
+<a name="id-1.2.19.7.5.1"></a><h3>Example application</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -389,7 +389,7 @@ gint
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59014960"></a><h3>Element Information</h3>
+<a name="id-1.2.19.7.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -415,7 +415,7 @@ gint
</div>
<hr>
<div class="refsect2">
-<a name="idp60260384"></a><h3>Element Pads</h3>
+<a name="id-1.2.19.7.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -530,6 +530,6 @@ stop until the event is handled.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
index c773fd48..aad7109b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
<link rel="next" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ Creating a stereo sample from a mono source, with one channel inverted produces
<p>
</p>
<div class="refsect2">
-<a name="idp63683648"></a><h3>Example launch line</h3>
+<a name="id-1.2.24.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -94,7 +94,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59793024"></a><h3>Element Information</h3>
+<a name="id-1.2.24.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -120,7 +120,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp64252592"></a><h3>Element Pads</h3>
+<a name="id-1.2.24.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -196,6 +196,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
index 7ecefffb..d6568bc5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
<link rel="next" href="gst-plugins-good-plugins-auparse.html" title="auparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@ This plugin is useful for karaoke applications.
<p>
</p>
<div class="refsect2">
-<a name="idp62771456"></a><h3>Example launch line</h3>
+<a name="id-1.2.26.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ This plugin is useful for karaoke applications.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63971840"></a><h3>Element Information</h3>
+<a name="id-1.2.26.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -118,7 +118,7 @@ This plugin is useful for karaoke applications.
</div>
<hr>
<div class="refsect2">
-<a name="idp63305488"></a><h3>Element Pads</h3>
+<a name="id-1.2.26.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -218,6 +218,6 @@ This plugin is useful for karaoke applications.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
index b50a8dc8..f3be1dfd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
<link rel="next" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,7 +71,7 @@ which keeps the same perceived loudness, and a simple panning method that just c
<p>
</p>
<div class="refsect2">
-<a name="idp62429168"></a><h3>Example launch line</h3>
+<a name="id-1.2.25.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -95,7 +95,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61046336"></a><h3>Element Information</h3>
+<a name="id-1.2.25.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -121,7 +121,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp61858992"></a><h3>Element Pads</h3>
+<a name="id-1.2.25.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -209,6 +209,6 @@ a matter of taste which method should be chosen.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
index 0b621e33..94845539 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
<link rel="next" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels.
<p>
</p>
<div class="refsect2">
-<a name="idp63378768"></a><h3>Example launch line</h3>
+<a name="id-1.2.20.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -105,7 +105,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62996384"></a><h3>Element Information</h3>
+<a name="id-1.2.20.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -131,7 +131,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp59456000"></a><h3>Element Pads</h3>
+<a name="id-1.2.20.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -238,6 +238,6 @@ Opaque data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
index 67765207..f8999742 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
<link rel="next" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels.
<p>
</p>
<div class="refsect2">
-<a name="idp59475856"></a><h3>Example launch line</h3>
+<a name="id-1.2.21.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -105,7 +105,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59866960"></a><h3>Element Information</h3>
+<a name="id-1.2.21.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -131,7 +131,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
</div>
<hr>
<div class="refsect2">
-<a name="idp65002496"></a><h3>Element Pads</h3>
+<a name="id-1.2.21.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -238,6 +238,6 @@ Opaque data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
index 91012a6f..749af434 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
<link rel="next" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ Parses .au files mostly originating from sun os based computers.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62582896"></a><h3>Element Information</h3>
+<a name="id-1.2.27.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -86,7 +86,7 @@ Parses .au files mostly originating from sun os based computers.
</div>
<hr>
<div class="refsect2">
-<a name="idp61643424"></a><h3>Element Pads</h3>
+<a name="id-1.2.27.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -168,6 +168,6 @@ Parses .au files mostly originating from sun os based computers.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
index 92e18b0f..eba84ae4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-auparse.html" title="auparse">
<link rel="next" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,6 +68,7 @@ GstAutoAudioSink implements
<pre class="synopsis">
"<a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps" title='The "filter-caps" property'>filter-caps</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write
"<a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset" title='The "ts-offset" property'>ts-offset</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--sync" title='The "sync" property'>sync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -81,7 +82,7 @@ of their element information, and also have a non-zero autoplugging rank.
<p>
</p>
<div class="refsect2">
-<a name="idp62078288"></a><h3>Example launch line</h3>
+<a name="id-1.2.28.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -99,7 +100,7 @@ of their element information, and also have a non-zero autoplugging rank.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61540736"></a><h3>Element Information</h3>
+<a name="id-1.2.28.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,7 +126,7 @@ of their element information, and also have a non-zero autoplugging rank.
</div>
<hr>
<div class="refsect2">
-<a name="idp64187520"></a><h3>Element Pads</h3>
+<a name="id-1.2.28.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +187,13 @@ This property can only be set before the element goes to the READY state.
<p>Timestamp offset in nanoseconds.</p>
<p>Default value: 0</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstAutoAudioSink--sync"></a><h3>The <code class="literal">"sync"</code> property</h3>
+<pre class="programlisting"> "sync" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Sync on the clock.</p>
+<p>Default value: TRUE</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-good-plugins-autoaudiosink.see-also"></a><h2>See Also</h2>
@@ -194,6 +202,6 @@ autovideosink, alsasink, osssink
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
index 19360f6a..29480c2a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
<link rel="next" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank.
<p>
</p>
<div class="refsect2">
-<a name="idp61728928"></a><h3>Example launch line</h3>
+<a name="id-1.2.29.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ of their element information, and also have a non-zero autoplugging rank.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60123824"></a><h3>Element Information</h3>
+<a name="id-1.2.29.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -124,7 +124,7 @@ of their element information, and also have a non-zero autoplugging rank.
</div>
<hr>
<div class="refsect2">
-<a name="idp63838304"></a><h3>Element Pads</h3>
+<a name="id-1.2.29.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +186,6 @@ autovideosrc, alsasrc, osssrc
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
index 325299d9..c79ba85c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc">
<link rel="next" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,6 +68,7 @@ GstAutoVideoSink implements
<pre class="synopsis">
"<a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps" title='The "filter-caps" property'>filter-caps</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write
"<a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset" title='The "ts-offset" property'>ts-offset</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--sync" title='The "sync" property'>sync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -81,7 +82,7 @@ of their element information, and also have a non-zero autoplugging rank.
<p>
</p>
<div class="refsect2">
-<a name="idp63454512"></a><h3>Example launch line</h3>
+<a name="id-1.2.30.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -99,7 +100,7 @@ of their element information, and also have a non-zero autoplugging rank.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63347152"></a><h3>Element Information</h3>
+<a name="id-1.2.30.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,7 +126,7 @@ of their element information, and also have a non-zero autoplugging rank.
</div>
<hr>
<div class="refsect2">
-<a name="idp60354576"></a><h3>Element Pads</h3>
+<a name="id-1.2.30.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +187,13 @@ This property can only be set before the element goes to the READY state.
<p>Timestamp offset in nanoseconds.</p>
<p>Default value: 0</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstAutoVideoSink--sync"></a><h3>The <code class="literal">"sync"</code> property</h3>
+<pre class="programlisting"> "sync" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Sync on the clock.</p>
+<p>Default value: TRUE</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-good-plugins-autovideosink.see-also"></a><h2>See Also</h2>
@@ -194,6 +202,6 @@ autoaudiosink, ximagesink, xvimagesink, sdlvideosink
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
index e2323139..e0b3f9b5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink">
<link rel="next" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank.
<p>
</p>
<div class="refsect2">
-<a name="idp58872176"></a><h3>Example launch line</h3>
+<a name="id-1.2.31.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ of their element information, and also have a non-zero autoplugging rank.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60351104"></a><h3>Element Information</h3>
+<a name="id-1.2.31.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -124,7 +124,7 @@ of their element information, and also have a non-zero autoplugging rank.
</div>
<hr>
<div class="refsect2">
-<a name="idp61771920"></a><h3>Element Pads</h3>
+<a name="id-1.2.31.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +186,6 @@ autoaudiosrc, v4l2src, v4lsrc
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
index e95f1da5..9d14b660 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc">
<link rel="next" href="gst-plugins-good-plugins-avimux.html" title="avimux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@ capabilities of the upstream elements.
<p>
</p>
<div class="refsect2">
-<a name="idp65460288"></a><h3>Example launch line</h3>
+<a name="id-1.2.32.5.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -88,7 +88,7 @@ Last reviewed on 2006-12-29 (0.10.6)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65457856"></a><h3>Element Information</h3>
+<a name="id-1.2.32.5.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -114,7 +114,7 @@ Last reviewed on 2006-12-29 (0.10.6)
</div>
<hr>
<div class="refsect2">
-<a name="idp65451184"></a><h3>Element Pads</h3>
+<a name="id-1.2.32.5.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -664,6 +664,6 @@ Last reviewed on 2006-12-29 (0.10.6)
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
index 9add92ef..2f295f8a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">
<link rel="next" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@ Muxes raw or compressed audio and/or video streams into an AVI file.
<p>
</p>
<div class="refsect2">
-<a name="idp61779392"></a><h3>Example launch lines</h3>
+<a name="id-1.2.33.7.3.1"></a><h3>Example launch lines</h3>
<p>(write everything in one line, without the backslash characters)</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
@@ -130,7 +130,7 @@ only work if you have the necessary encoder elements installed of course.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63713408"></a><h3>Element Information</h3>
+<a name="id-1.2.33.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -156,7 +156,7 @@ only work if you have the necessary encoder elements installed of course.
</div>
<hr>
<div class="refsect2">
-<a name="idp63209568"></a><h3>Element Pads</h3>
+<a name="id-1.2.33.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -323,6 +323,6 @@ only work if you have the necessary encoder elements installed of course.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
index ac5c4eb3..adbbd26f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-avimux.html" title="avimux">
<link rel="next" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,7 +57,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp63244576"></a><h3>Example launch line</h3>
+<a name="id-1.2.34.5.2.1"></a><h3>Example launch line</h3>
<p>
Parses the subtitle stream from an avi file.
</p>
@@ -78,7 +78,7 @@ Last reviewed on 2008-02-01
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61577552"></a><h3>Element Information</h3>
+<a name="id-1.2.34.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -104,7 +104,7 @@ Last reviewed on 2008-02-01
</div>
<hr>
<div class="refsect2">
-<a name="idp60868960"></a><h3>Element Pads</h3>
+<a name="id-1.2.34.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -170,6 +170,6 @@ Last reviewed on 2008-02-01
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
index f76ca35c..b9b17bc2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle">
<link rel="next" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp58981728"></a><h3>Element Information</h3>
+<a name="id-1.2.35.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -95,7 +95,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp53595840"></a><h3>Element Pads</h3>
+<a name="id-1.2.35.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -169,6 +169,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
index 1e6c4840..c4bbec6b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
<link rel="next" href="gst-plugins-good-plugins-capssetter.html" title="capssetter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62720400"></a><h3>Element Information</h3>
+<a name="id-1.2.36.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -94,7 +94,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp65173536"></a><h3>Element Pads</h3>
+<a name="id-1.2.36.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -214,6 +214,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
index a32a9cd8..277fe2c9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
<link rel="next" href="gst-plugins-good-plugins-cutter.html" title="cutter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp58892352"></a><p>
+<a name="id-1.2.37.6.2.1"></a><p>
Sets or merges caps on a stream's buffers.
That is, a buffer's caps are updated using (fields of)
<a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps" title='The "caps" property'>caps</a>. Note that this may
@@ -99,7 +99,7 @@ alike.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65855600"></a><h3>Element Information</h3>
+<a name="id-1.2.37.6.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,7 +125,7 @@ alike.
</div>
<hr>
<div class="refsect2">
-<a name="idp59594656"></a><h3>Element Pads</h3>
+<a name="id-1.2.37.6.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -213,6 +213,6 @@ alike.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
index edebf7c0..05ab8fbd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-capssetter.html" title="capssetter">
<link rel="next" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ The message's structure contains two fields:
<p>
</p>
<div class="refsect2">
-<a name="idp60754384"></a><h3>Example launch line</h3>
+<a name="id-1.2.38.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -107,7 +107,7 @@ The message's structure contains two fields:
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61466944"></a><h3>Element Information</h3>
+<a name="id-1.2.38.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -133,7 +133,7 @@ The message's structure contains two fields:
</div>
<hr>
<div class="refsect2">
-<a name="idp64774768"></a><h3>Element Pads</h3>
+<a name="id-1.2.38.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -236,6 +236,6 @@ The message's structure contains two fields:
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
index 9fb13097..b7bfd2a7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-cutter.html" title="cutter">
<link rel="next" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ This is a DCA (DTS Coherent Acoustics) parser.
<p>
</p>
<div class="refsect2">
-<a name="idp59184608"></a><h3>Example launch line</h3>
+<a name="id-1.2.39.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ This is a DCA (DTS Coherent Acoustics) parser.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60812160"></a><h3>Element Information</h3>
+<a name="id-1.2.39.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ This is a DCA (DTS Coherent Acoustics) parser.
</div>
<hr>
<div class="refsect2">
-<a name="idp59409312"></a><h3>Element Pads</h3>
+<a name="id-1.2.39.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -180,6 +180,6 @@ The opaque GstDcaParse object
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index 298a46f2..26c029df 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
<link rel="next" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ For this different algorithms can be selected which will be described later.
<p>
</p>
<div class="refsect2">
-<a name="idp63931040"></a><h3>Example launch line</h3>
+<a name="id-1.2.40.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -101,7 +101,7 @@ For this different algorithms can be selected which will be described later.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59791280"></a><h3>Element Information</h3>
+<a name="id-1.2.40.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -127,7 +127,7 @@ For this different algorithms can be selected which will be described later.
</div>
<hr>
<div class="refsect2">
-<a name="idp65156848"></a><h3>Element Pads</h3>
+<a name="id-1.2.40.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -319,6 +319,6 @@ streams.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
index dc05eed0..c9801a17 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">
<link rel="next" href="gst-plugins-good-plugins-dicetv.html" title="dicetv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@ before further processing of the audio data.
<p>
</p>
<div class="refsect2">
-<a name="idp62131984"></a><h3>Example launch line</h3>
+<a name="id-1.2.41.6.5.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -110,7 +110,7 @@ channels exchanged.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59513760"></a><h3>Element Information</h3>
+<a name="id-1.2.41.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -136,7 +136,7 @@ channels exchanged.
</div>
<hr>
<div class="refsect2">
-<a name="idp64791696"></a><h3>Element Pads</h3>
+<a name="id-1.2.41.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -220,6 +220,6 @@ interleave
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
index f4453154..09a5946b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">
<link rel="next" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ consistent between each frame.
<p>
</p>
<div class="refsect2">
-<a name="idp58645648"></a><h3>Example launch line</h3>
+<a name="id-1.2.42.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -101,7 +101,7 @@ consistent between each frame.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60605792"></a><h3>Element Information</h3>
+<a name="id-1.2.42.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -127,7 +127,7 @@ consistent between each frame.
</div>
<hr>
<div class="refsect2">
-<a name="idp62342128"></a><h3>Element Pads</h3>
+<a name="id-1.2.42.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -229,6 +229,6 @@ consistent between each frame.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
index 4ec8bf33..bf223f2a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dicetv.html" title="dicetv">
<link rel="next" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,7 +45,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66275408"></a><h3>Element Information</h3>
+<a name="id-1.2.43.4.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -71,7 +71,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp64060816"></a><h3>Element Pads</h3>
+<a name="id-1.2.43.4.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -119,6 +119,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
index 7f8ef235..f6e68e97 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">
<link rel="next" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -161,7 +161,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62915632"></a><h3>Element Information</h3>
+<a name="id-1.2.44.6.7.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -187,7 +187,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
</div>
<hr>
<div class="refsect2">
-<a name="idp61986080"></a><h3>Element Pads</h3>
+<a name="id-1.2.44.6.7.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -251,6 +251,6 @@ rtpdtmsrc, rtpdtmfmuxx
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
index caef6910..caccf970 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">
<link rel="next" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@ GstDV1394Src implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65723088"></a><h3>Element Information</h3>
+<a name="id-1.2.45.8.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -116,7 +116,7 @@ GstDV1394Src implements
</div>
<hr>
<div class="refsect2">
-<a name="idp65815072"></a><h3>Element Pads</h3>
+<a name="id-1.2.45.8.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -246,6 +246,6 @@ GstDV1394Src implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
index 54635d2c..75237d4b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
<link rel="next" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61624528"></a><h3>Element Information</h3>
+<a name="id-1.2.46.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -94,7 +94,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp59413952"></a><h3>Element Pads</h3>
+<a name="id-1.2.46.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -191,6 +191,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
index 981cfef2..ebbf8311 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">
<link rel="next" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,7 +57,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65322672"></a><h3>Element Information</h3>
+<a name="id-1.2.47.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -83,7 +83,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp60696336"></a><h3>Element Pads</h3>
+<a name="id-1.2.47.5.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -173,6 +173,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
index 850df57f..7e8b7116 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux">
<link rel="next" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,7 +63,7 @@ computer way.
<p>
</p>
<div class="refsect2">
-<a name="idp60516768"></a><h3>Example launch line</h3>
+<a name="id-1.2.48.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -81,7 +81,7 @@ computer way.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63062192"></a><h3>Element Information</h3>
+<a name="id-1.2.48.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -107,7 +107,7 @@ computer way.
</div>
<hr>
<div class="refsect2">
-<a name="idp65244640"></a><h3>Element Pads</h3>
+<a name="id-1.2.48.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -173,6 +173,6 @@ computer way.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
index a0082b22..e72bb128 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
<link rel="next" href="gst-plugins-good-plugins-equalizer-3bands.html" title="equalizer-3bands">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ frequency bands between 30 Hz and 15 kHz.
<p>
</p>
<div class="refsect2">
-<a name="idp60527760"></a><h3>Example launch line</h3>
+<a name="id-1.2.49.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -107,7 +107,7 @@ frequency bands between 30 Hz and 15 kHz.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61487088"></a><h3>Element Information</h3>
+<a name="id-1.2.49.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -133,7 +133,7 @@ frequency bands between 30 Hz and 15 kHz.
</div>
<hr>
<div class="refsect2">
-<a name="idp61780672"></a><h3>Element Pads</h3>
+<a name="id-1.2.49.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -281,6 +281,6 @@ frequency bands between 30 Hz and 15 kHz.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
index dfe4f108..0d82b107 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">
<link rel="next" href="gst-plugins-good-plugins-equalizer-nbands.html" title="equalizer-nbands">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@ medium frequency and high frequency band.
<p>
</p>
<div class="refsect2">
-<a name="idp65633712"></a><h3>Example launch line</h3>
+<a name="id-1.2.50.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -100,7 +100,7 @@ medium frequency and high frequency band.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59388320"></a><h3>Element Information</h3>
+<a name="id-1.2.50.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -126,7 +126,7 @@ medium frequency and high frequency band.
</div>
<hr>
<div class="refsect2">
-<a name="idp62578960"></a><h3>Element Pads</h3>
+<a name="id-1.2.50.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -218,6 +218,6 @@ medium frequency and high frequency band.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
index 2164c35f..0614b873 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-equalizer-3bands.html" title="equalizer-3bands">
<link rel="next" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@ the center frequency, band width and gain.
<p>
</p>
<div class="refsect2">
-<a name="idp65863520"></a><h3>Example launch line</h3>
+<a name="id-1.2.51.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ the center frequency, band width and gain.
</p>
<hr>
<div class="refsect2">
-<a name="idp62131008"></a><h3>Example code</h3>
+<a name="id-1.2.51.7.3.2"></a><h3>Example code</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -190,7 +190,7 @@ the center frequency, band width and gain.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67290512"></a><h3>Element Information</h3>
+<a name="id-1.2.51.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -216,7 +216,7 @@ the center frequency, band width and gain.
</div>
<hr>
<div class="refsect2">
-<a name="idp62359136"></a><h3>Element Pads</h3>
+<a name="id-1.2.51.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -292,6 +292,6 @@ the center frequency, band width and gain.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
index 2b8da444..78b729ce 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-equalizer-nbands.html" title="equalizer-nbands">
<link rel="next" href="gst-plugins-good-plugins-flacenc.html" title="flacenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66872576"></a><h3>Element Information</h3>
+<a name="id-1.2.52.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -84,7 +84,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp60924240"></a><h3>Element Pads</h3>
+<a name="id-1.2.52.5.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -150,6 +150,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
index ac43f193..6fb08ace 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">
<link rel="next" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -88,7 +88,7 @@ GstFlacEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67341744"></a><h3>Element Information</h3>
+<a name="id-1.2.53.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -114,7 +114,7 @@ GstFlacEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp64028448"></a><h3>Element Pads</h3>
+<a name="id-1.2.53.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -294,6 +294,6 @@ GstFlacEnc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
index b958d7eb..ea217e20 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flacenc.html" title="flacenc">
<link rel="next" href="gst-plugins-good-plugins-flactag.html" title="flactag">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ format file to an ogg bitstream.
<p>
</p>
<div class="refsect2">
-<a name="idp62696320"></a><h3>Example pipelines</h3>
+<a name="id-1.2.54.6.4.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -102,7 +102,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64839696"></a><h3>Element Information</h3>
+<a name="id-1.2.54.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -128,7 +128,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
</div>
<hr>
<div class="refsect2">
-<a name="idp61831856"></a><h3>Element Pads</h3>
+<a name="id-1.2.54.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -207,6 +207,6 @@ flacdec, oggdemux, vorbisparse
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
index 6b2bc910..9a6e04d5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">
<link rel="next" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,7 +65,7 @@ GstFlacTag implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp59710064"></a><h3>Element Information</h3>
+<a name="id-1.2.55.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -91,7 +91,7 @@ GstFlacTag implements
</div>
<hr>
<div class="refsect2">
-<a name="idp65056704"></a><h3>Element Pads</h3>
+<a name="id-1.2.55.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -157,6 +157,6 @@ GstFlacTag implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
index 09bb677d..5a9e6114 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flactag.html" title="flactag">
<link rel="next" href="gst-plugins-good-plugins-flvmux.html" title="flvmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ flvdemux demuxes an FLV file into the different contained streams.
<p>
</p>
<div class="refsect2">
-<a name="idp65778032"></a><h3>Example launch line</h3>
+<a name="id-1.2.56.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -78,7 +78,7 @@ flvdemux demuxes an FLV file into the different contained streams.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66991744"></a><h3>Element Information</h3>
+<a name="id-1.2.56.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -104,7 +104,7 @@ flvdemux demuxes an FLV file into the different contained streams.
</div>
<hr>
<div class="refsect2">
-<a name="idp61706544"></a><h3>Element Pads</h3>
+<a name="id-1.2.56.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -238,6 +238,6 @@ flvdemux demuxes an FLV file into the different contained streams.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
index 02ee94e8..289d0272 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">
<link rel="next" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@ flvmux muxes different streams into an FLV file.
<p>
</p>
<div class="refsect2">
-<a name="idp61251920"></a><h3>Example launch line</h3>
+<a name="id-1.2.57.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -95,7 +95,7 @@ flvmux muxes different streams into an FLV file.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65340896"></a><h3>Element Information</h3>
+<a name="id-1.2.57.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -121,7 +121,7 @@ flvmux muxes different streams into an FLV file.
</div>
<hr>
<div class="refsect2">
-<a name="idp59929280"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -279,6 +279,6 @@ duration)
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
index 30f5e91c..a32bd5d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flvmux.html" title="flvmux">
<link rel="next" href="gst-plugins-good-plugins-gamma.html" title="gamma">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ This element decodes fli/flc/flx-video into raw video
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60223792"></a><h3>Element Information</h3>
+<a name="id-1.2.58.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -86,7 +86,7 @@ This element decodes fli/flc/flx-video into raw video
</div>
<hr>
<div class="refsect2">
-<a name="idp64665680"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -152,6 +152,6 @@ This element decodes fli/flc/flx-video into raw video
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
index 9c8a8c79..7a826fc3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">
<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ Performs gamma correction on a video stream.
<p>
</p>
<div class="refsect2">
-<a name="idp65216832"></a><h3>Example launch line</h3>
+<a name="id-1.2.59.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -102,7 +102,7 @@ Last reviewed on 2010-04-18 (0.10.22)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61313232"></a><h3>Element Information</h3>
+<a name="id-1.2.59.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -128,7 +128,7 @@ Last reviewed on 2010-04-18 (0.10.22)
</div>
<hr>
<div class="refsect2">
-<a name="idp64906224"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -205,6 +205,6 @@ Opaque data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
index cd43b70f..f8aa1263 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma">
<link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67233296"></a><h3>Element Information</h3>
+<a name="id-1.2.60.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -95,7 +95,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp63600624"></a><h3>Element Pads</h3>
+<a name="id-1.2.60.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -163,6 +163,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html
index 63f5d020..7014ace6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
<link rel="next" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ based on the incoming audio signal.
<p>
</p>
<div class="refsect2">
-<a name="idp64567760"></a><h3>Example launch line</h3>
+<a name="id-1.2.61.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ based on the incoming audio signal.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63899488"></a><h3>Element Information</h3>
+<a name="id-1.2.61.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ based on the incoming audio signal.
</div>
<hr>
<div class="refsect2">
-<a name="idp59564656"></a><h3>Element Pads</h3>
+<a name="id-1.2.61.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -179,6 +179,6 @@ synaesthesia
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
index 5046243f..c492865a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-goom.html" title="goom">
<link rel="next" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ visualisation. Also available is goom2k4, with a different look.
<p>
</p>
<div class="refsect2">
-<a name="idp63177840"></a><h3>Example launch line</h3>
+<a name="id-1.2.62.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -80,7 +80,7 @@ visualisation. Also available is goom2k4, with a different look.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60656352"></a><h3>Element Information</h3>
+<a name="id-1.2.62.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ visualisation. Also available is goom2k4, with a different look.
</div>
<hr>
<div class="refsect2">
-<a name="idp61219984"></a><h3>Element Pads</h3>
+<a name="id-1.2.62.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -180,6 +180,6 @@ goom, synaesthesia
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
index 5396641d..4ca2fd16 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
<link rel="next" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -79,7 +79,7 @@ GstHDV1394Src implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64726432"></a><h3>Element Information</h3>
+<a name="id-1.2.63.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ GstHDV1394Src implements
</div>
<hr>
<div class="refsect2">
-<a name="idp65054576"></a><h3>Element Pads</h3>
+<a name="id-1.2.63.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +186,6 @@ GstHDV1394Src implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
index 8d35d477..a0d4fe64 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
<link rel="next" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@ on outgoing buffers.
<p>
</p>
<div class="refsect2">
-<a name="idp63907008"></a><h3>Example launch line</h3>
+<a name="id-1.2.64.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -85,7 +85,7 @@ or giosrc instead of souphttpsrc should also work.)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60892640"></a><h3>Element Information</h3>
+<a name="id-1.2.64.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -111,7 +111,7 @@ or giosrc instead of souphttpsrc should also work.)
</div>
<hr>
<div class="refsect2">
-<a name="idp60649776"></a><h3>Element Pads</h3>
+<a name="id-1.2.64.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -177,6 +177,6 @@ or giosrc instead of souphttpsrc should also work.)
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
index 30e1b6c7..0e94409b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
<link rel="next" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ relied on libid3tag from the MAD project.
<p>
</p>
<div class="refsect2">
-<a name="idp60372656"></a><h3>Example launch line</h3>
+<a name="id-1.2.65.6.5.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -103,7 +103,7 @@ the appropriate mime type set on buffers produced from id3demux.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62054576"></a><h3>Element Information</h3>
+<a name="id-1.2.65.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -129,7 +129,7 @@ the appropriate mime type set on buffers produced from id3demux.
</div>
<hr>
<div class="refsect2">
-<a name="idp64536960"></a><h3>Element Pads</h3>
+<a name="id-1.2.65.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -204,6 +204,6 @@ the appropriate mime type set on buffers produced from id3demux.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
index 3e5ca6c8..803f01e8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">
<link rel="next" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@ GstId3v2Mux implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65664032"></a><h3>Element Information</h3>
+<a name="id-1.2.66.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -92,7 +92,7 @@ GstId3v2Mux implements
</div>
<hr>
<div class="refsect2">
-<a name="idp66824752"></a><h3>Element Pads</h3>
+<a name="id-1.2.66.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -158,6 +158,6 @@ GstId3v2Mux implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
index db0ed53c..bb3ec370 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
<link rel="next" href="gst-plugins-good-plugins-interleave.html" title="interleave">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ by downstream, allows seeking and answers queries.
<p>
</p>
<div class="refsect2">
-<a name="idp61376320"></a><h3>Example launch line</h3>
+<a name="id-1.2.67.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -80,7 +80,7 @@ by downstream, allows seeking and answers queries.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64623376"></a><h3>Element Information</h3>
+<a name="id-1.2.67.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ by downstream, allows seeking and answers queries.
</div>
<hr>
<div class="refsect2">
-<a name="idp65805552"></a><h3>Element Pads</h3>
+<a name="id-1.2.67.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -172,6 +172,6 @@ by downstream, allows seeking and answers queries.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
index f3c4827f..768c9f26 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
<link rel="next" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@ The channel number of every sinkpad in the out can be retrieved from the "channe
<p>
</p>
<div class="refsect2">
-<a name="idp64505600"></a><h3>Example launch line</h3>
+<a name="id-1.2.68.6.6.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -113,7 +113,7 @@ channels exchanged.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63240560"></a><h3>Element Information</h3>
+<a name="id-1.2.68.6.7.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -139,7 +139,7 @@ channels exchanged.
</div>
<hr>
<div class="refsect2">
-<a name="idp60155200"></a><h3>Element Pads</h3>
+<a name="id-1.2.68.6.7.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -240,6 +240,6 @@ deinterleave
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index 3cf5ec43..beeadcdb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-interleave.html" title="interleave">
<link rel="next" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,7 +96,7 @@ presentation-timestamp.
<p>
</p>
<div class="refsect2">
-<a name="idp57307264"></a><h3>Example pipelines</h3>
+<a name="id-1.2.69.4.8.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -119,7 +119,7 @@ Documentation last reviewed on 2011-04-21
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65690528"></a><h3>Element Information</h3>
+<a name="id-1.2.69.4.10.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -145,7 +145,7 @@ Documentation last reviewed on 2011-04-21
</div>
<hr>
<div class="refsect2">
-<a name="idp59849264"></a><h3>Element Pads</h3>
+<a name="id-1.2.69.4.10.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -241,6 +241,6 @@ Documentation last reviewed on 2011-04-21
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
index 60e45502..cc9ebfdf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
<link rel="next" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,7 +71,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68005392"></a><h3>Element Information</h3>
+<a name="id-1.2.71.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -97,7 +97,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp68373216"></a><h3>Element Pads</h3>
+<a name="id-1.2.71.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -174,6 +174,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
index 4719c454..a4df480f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
<link rel="next" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66183776"></a><h3>Element Information</h3>
+<a name="id-1.2.70.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -98,7 +98,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp68874656"></a><h3>Element Pads</h3>
+<a name="id-1.2.70.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -175,6 +175,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index 4ffbaee2..b284e221 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
<link rel="next" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67655616"></a><h3>Element Information</h3>
+<a name="id-1.2.72.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -93,7 +93,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp66470176"></a><h3>Element Pads</h3>
+<a name="id-1.2.72.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -176,6 +176,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
index 4b1cf86c..828590ee 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
<link rel="next" href="gst-plugins-good-plugins-level.html" title="level">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ GstJpegEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp56996640"></a><h3>Element Information</h3>
+<a name="id-1.2.73.8.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -109,7 +109,7 @@ GstJpegEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp65000672"></a><h3>Element Pads</h3>
+<a name="id-1.2.73.8.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -218,6 +218,6 @@ GstJpegEnc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html
index dfd35ad2..8377f1de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-level.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
<link rel="next" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -128,7 +128,7 @@ The message's structure contains these fields:
<p>
</p>
<div class="refsect2">
-<a name="idp68313168"></a><h3>Example application</h3>
+<a name="id-1.2.74.6.3.1"></a><h3>Example application</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -424,7 +424,7 @@ The message's structure contains these fields:
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67817328"></a><h3>Element Information</h3>
+<a name="id-1.2.74.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -450,7 +450,7 @@ The message's structure contains these fields:
</div>
<hr>
<div class="refsect2">
-<a name="idp65634896"></a><h3>Element Pads</h3>
+<a name="id-1.2.74.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -563,6 +563,6 @@ Post messages on the bus with level information.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
index cbe76254..819cff24 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
<link rel="next" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@ matroskademux demuxes a Matroska file into the different contained streams.
<p>
</p>
<div class="refsect2">
-<a name="idp67266704"></a><h3>Example launch line</h3>
+<a name="id-1.2.76.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -86,7 +86,7 @@ matroskademux demuxes a Matroska file into the different contained streams.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66646160"></a><h3>Element Information</h3>
+<a name="id-1.2.76.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -112,7 +112,7 @@ matroskademux demuxes a Matroska file into the different contained streams.
</div>
<hr>
<div class="refsect2">
-<a name="idp65713344"></a><h3>Element Pads</h3>
+<a name="id-1.2.76.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -279,6 +279,6 @@ matroskademux demuxes a Matroska file into the different contained streams.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
index 604a066f..3b1bfc06 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-level.html" title="level">
<link rel="next" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ matroskamux muxes different input streams into a Matroska file.
<p>
</p>
<div class="refsect2">
-<a name="idp69169648"></a><h3>Example launch line</h3>
+<a name="id-1.2.75.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -109,7 +109,7 @@ matroskamux muxes different input streams into a Matroska file.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66087440"></a><h3>Element Information</h3>
+<a name="id-1.2.75.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -135,7 +135,7 @@ matroskamux muxes different input streams into a Matroska file.
</div>
<hr>
<div class="refsect2">
-<a name="idp66238512"></a><h3>Element Pads</h3>
+<a name="id-1.2.75.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -417,6 +417,6 @@ matroskamux muxes different input streams into a Matroska file.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index 4948feff..988740d2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
<link rel="next" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -133,7 +133,7 @@ presentation-timestamp.
<p>
</p>
<div class="refsect2">
-<a name="idp68799680"></a><h3>Example pipelines</h3>
+<a name="id-1.2.77.7.8.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -156,7 +156,7 @@ Documentation last reviewed on 2011-04-21
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68802736"></a><h3>Element Information</h3>
+<a name="id-1.2.77.7.10.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -182,7 +182,7 @@ Documentation last reviewed on 2011-04-21
</div>
<hr>
<div class="refsect2">
-<a name="idp69158256"></a><h3>Element Pads</h3>
+<a name="id-1.2.77.7.10.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -346,6 +346,6 @@ Documentation last reviewed on 2011-04-21
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
index 2e9f5689..98979c56 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
<link rel="next" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ curve of the audio signal like on an oscilloscope.
<p>
</p>
<div class="refsect2">
-<a name="idp55910160"></a><h3>Example launch line</h3>
+<a name="id-1.2.78.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ curve of the audio signal like on an oscilloscope.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp65971872"></a><h3>Element Information</h3>
+<a name="id-1.2.78.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ curve of the audio signal like on an oscilloscope.
</div>
<hr>
<div class="refsect2">
-<a name="idp67843040"></a><h3>Element Pads</h3>
+<a name="id-1.2.78.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -175,6 +175,6 @@ goom
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index cfc26ca9..ec84c2dc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
<link rel="next" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -133,7 +133,7 @@ presentation-timestamp.
<p>
</p>
<div class="refsect2">
-<a name="idp60034016"></a><h3>Example pipelines</h3>
+<a name="id-1.2.80.7.8.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -156,7 +156,7 @@ Documentation last reviewed on 2011-04-21
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69627312"></a><h3>Element Information</h3>
+<a name="id-1.2.80.7.10.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -182,7 +182,7 @@ Documentation last reviewed on 2011-04-21
</div>
<hr>
<div class="refsect2">
-<a name="idp64400688"></a><h3>Element Pads</h3>
+<a name="id-1.2.80.7.10.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -359,6 +359,6 @@ Documentation last reviewed on 2011-04-21
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
index f544d722..5a830f3d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
<link rel="next" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.
<p>
</p>
<div class="refsect2">
-<a name="idp61640368"></a><h3>Example launch line</h3>
+<a name="id-1.2.79.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64800512"></a><h3>Element Information</h3>
+<a name="id-1.2.79.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.
</div>
<hr>
<div class="refsect2">
-<a name="idp59213824"></a><h3>Element Pads</h3>
+<a name="id-1.2.79.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -176,6 +176,6 @@ The opaque GstMpegAudioParse object
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
index e52dd935..e644260a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
<link rel="next" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp62756640"></a><h3>Element Information</h3>
+<a name="id-1.2.81.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -87,7 +87,7 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
</div>
<hr>
<div class="refsect2">
-<a name="idp61506848"></a><h3>Element Pads</h3>
+<a name="id-1.2.81.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -153,6 +153,6 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
index b8cdef76..055b6562 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
<link rel="next" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66003312"></a><h3>Element Information</h3>
+<a name="id-1.2.82.4.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,7 +75,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
</div>
<hr>
<div class="refsect2">
-<a name="idp59003088"></a><h3>Element Pads</h3>
+<a name="id-1.2.82.4.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -154,6 +154,6 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
index 9d2c8b02..0281704b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
<link rel="next" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -132,7 +132,7 @@ The message's structure contains these fields:
<p>
</p>
<div class="refsect2">
-<a name="idp70233408"></a><h3>Example launch line</h3>
+<a name="id-1.2.83.6.6.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -155,7 +155,7 @@ Last reviewed on 2009-09-11 (0.10.17)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69828864"></a><h3>Element Information</h3>
+<a name="id-1.2.83.6.8.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -181,7 +181,7 @@ Last reviewed on 2009-09-11 (0.10.17)
</div>
<hr>
<div class="refsect2">
-<a name="idp70006928"></a><h3>Element Pads</h3>
+<a name="id-1.2.83.6.8.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -336,6 +336,6 @@ Maximum file size before starting a new file in max-size mode.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
index 23d526c9..8f9926ef 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">
<link rel="next" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@ File names are created by replacing "%d" with the index using <code class="funct
<p>
</p>
<div class="refsect2">
-<a name="idp69883184"></a><h3>Example launch line</h3>
+<a name="id-1.2.84.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -105,7 +105,7 @@ files named img.0000.png, img.0001.png, etc.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67511424"></a><h3>Element Information</h3>
+<a name="id-1.2.84.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -131,7 +131,7 @@ files named img.0000.png, img.0001.png, etc.
</div>
<hr>
<div class="refsect2">
-<a name="idp67175104"></a><h3>Element Pads</h3>
+<a name="id-1.2.84.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -223,6 +223,6 @@ files named img.0000.png, img.0001.png, etc.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
index 89d64a80..f874cdd4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc">
<link rel="next" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ otherwise it will be autodetected.
<p>
</p>
<div class="refsect2">
-<a name="idp66476176"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.85.6.5.1"></a><h3>Sample pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -102,7 +102,7 @@ containing JPEG frames.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61073168"></a><h3>Element Information</h3>
+<a name="id-1.2.85.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -128,7 +128,7 @@ containing JPEG frames.
</div>
<hr>
<div class="refsect2">
-<a name="idp68380896"></a><h3>Element Pads</h3>
+<a name="id-1.2.85.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -222,6 +222,6 @@ The opaque <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#Gs
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
index 354634d3..bb432633 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">
<link rel="next" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ multipart streams are sequential JPEG frames.
<p>
</p>
<div class="refsect2">
-<a name="idp64493024"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.86.6.3.1"></a><h3>Sample pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -89,7 +89,7 @@ stored to a file.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69256800"></a><h3>Element Information</h3>
+<a name="id-1.2.86.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -115,7 +115,7 @@ stored to a file.
</div>
<hr>
<div class="refsect2">
-<a name="idp66858880"></a><h3>Element Pads</h3>
+<a name="id-1.2.86.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -191,6 +191,6 @@ The opaque <a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstM
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
index c4f1b324..a7173910 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux">
<link rel="next" href="gst-plugins-good-plugins-optv.html" title="optv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -106,7 +106,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69950528"></a><h3>Element Information</h3>
+<a name="id-1.2.87.7.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -132,7 +132,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.
</div>
<hr>
<div class="refsect2">
-<a name="idp70171408"></a><h3>Element Pads</h3>
+<a name="id-1.2.87.7.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -555,6 +555,6 @@ udpsink, multifdsink
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html
index 1fa27a71..a174221d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-optv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink">
<link rel="next" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@ various optical pattern.
<p>
</p>
<div class="refsect2">
-<a name="idp62578032"></a><h3>Example launch line</h3>
+<a name="id-1.2.88.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ various optical pattern.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64173520"></a><h3>Element Information</h3>
+<a name="id-1.2.88.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -118,7 +118,7 @@ various optical pattern.
</div>
<hr>
<div class="refsect2">
-<a name="idp61727216"></a><h3>Element Pads</h3>
+<a name="id-1.2.88.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -208,6 +208,6 @@ various optical pattern.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
index c93c81b6..c8ef645c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-optv.html" title="optv">
<link rel="next" href="gst-plugins-good-plugins-oss4src.html" title="oss4src">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -79,7 +79,7 @@ GstOss4Sink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60390224"></a><h3>Element Information</h3>
+<a name="id-1.2.89.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ GstOss4Sink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp59733568"></a><h3>Element Pads</h3>
+<a name="id-1.2.89.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,6 +186,6 @@ GstOss4Sink implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
index ad96c7be..b71a9d3a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
<link rel="next" href="gst-plugins-good-plugins-osssink.html" title="osssink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@ GstOss4Source implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66413968"></a><h3>Element Information</h3>
+<a name="id-1.2.90.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -104,7 +104,7 @@ GstOss4Source implements
</div>
<hr>
<div class="refsect2">
-<a name="idp67435376"></a><h3>Element Pads</h3>
+<a name="id-1.2.90.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -170,6 +170,6 @@ GstOss4Source implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
index c0d87226..87e9e73f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-oss4src.html" title="oss4src">
<link rel="next" href="gst-plugins-good-plugins-osssrc.html" title="osssrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69810512"></a><h3>Element Information</h3>
+<a name="id-1.2.91.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -94,7 +94,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp67169504"></a><h3>Element Pads</h3>
+<a name="id-1.2.91.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -149,6 +149,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
index d9003e3c..823f24a3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-osssink.html" title="osssink">
<link rel="next" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@ GstOssSrc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68444688"></a><h3>Element Information</h3>
+<a name="id-1.2.92.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -104,7 +104,7 @@ GstOssSrc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp62018304"></a><h3>Element Pads</h3>
+<a name="id-1.2.92.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -166,6 +166,6 @@ GstOssSrc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
index f05f9ea3..6d3649ab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-osssrc.html" title="osssrc">
<link rel="next" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -53,7 +53,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63408928"></a><h3>Element Information</h3>
+<a name="id-1.2.93.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -79,7 +79,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp67480336"></a><h3>Element Pads</h3>
+<a name="id-1.2.93.5.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -119,6 +119,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
index 6c0e6d18..83c7088d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">
<link rel="next" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -53,7 +53,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp66136224"></a><h3>Element Information</h3>
+<a name="id-1.2.94.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -79,7 +79,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp65934976"></a><h3>Element Pads</h3>
+<a name="id-1.2.94.5.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -115,6 +115,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
index b675f63f..355516e3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc">
<link rel="next" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -54,7 +54,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68878752"></a><h3>Element Information</h3>
+<a name="id-1.2.95.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -80,7 +80,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp67632256"></a><h3>Element Pads</h3>
+<a name="id-1.2.95.5.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -123,6 +123,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
index f086094d..6f9dc301 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="next" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78225248"></a><h2>Plugin Information</h2>
+<a name="id-1.3.2.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76265984"></a><h2>Elements</h2>
+<a name="id-1.3.2.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
index 1e3e4778..5526afb8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-1394.html" title="1394">
<link rel="next" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78778448"></a><h2>Plugin Information</h2>
+<a name="id-1.3.3.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79388000"></a><h2>Elements</h2>
+<a name="id-1.3.3.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
index 677892da..3ecb3f2a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
<link rel="next" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79128880"></a><h2>Plugin Information</h2>
+<a name="id-1.3.4.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78218544"></a><h2>Elements</h2>
+<a name="id-1.3.4.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
index 1678b3fa..1e9d6673 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
<link rel="next" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp75655616"></a><h2>Plugin Information</h2>
+<a name="id-1.3.5.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76126416"></a><h2>Elements</h2>
+<a name="id-1.3.5.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
index 7d2674cc..2c08188c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
<link rel="next" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78285424"></a><h2>Plugin Information</h2>
+<a name="id-1.3.6.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78784176"></a><h2>Elements</h2>
+<a name="id-1.3.6.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
index ed4d3066..93ce7872 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
<link rel="next" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79185936"></a><h2>Plugin Information</h2>
+<a name="id-1.3.7.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp72781856"></a><h2>Elements</h2>
+<a name="id-1.3.7.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
index 6968819e..b1c5e55f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
<link rel="next" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79593872"></a><h2>Plugin Information</h2>
+<a name="id-1.3.8.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79625792"></a><h2>Elements</h2>
+<a name="id-1.3.8.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,6 +125,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
index 87891f62..299b6b5f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
<link rel="next" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80165552"></a><h2>Plugin Information</h2>
+<a name="id-1.3.9.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79346736"></a><h2>Elements</h2>
+<a name="id-1.3.9.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
index 65e1c6ba..464954a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
<link rel="next" href="gst-plugins-good-plugins-plugin-avi.html" title="avi">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80194720"></a><h2>Plugin Information</h2>
+<a name="id-1.3.10.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp77444416"></a><h2>Elements</h2>
+<a name="id-1.3.10.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -89,6 +89,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
index abeb35a6..3864b783 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
<link rel="next" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp61591424"></a><h2>Plugin Information</h2>
+<a name="id-1.3.11.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp69501552"></a><h2>Elements</h2>
+<a name="id-1.3.11.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
index 70237be7..f0acc36e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-avi.html" title="avi">
<link rel="next" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80223680"></a><h2>Plugin Information</h2>
+<a name="id-1.3.12.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76059408"></a><h2>Elements</h2>
+<a name="id-1.3.12.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
index 76d7a0f6..caad9900 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink">
<link rel="next" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79977168"></a><h2>Plugin Information</h2>
+<a name="id-1.3.13.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp75722240"></a><h2>Elements</h2>
+<a name="id-1.3.13.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
index c1c675f6..cb2349cc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo">
<link rel="next" href="gst-plugins-good-plugins-plugin-debug.html" title="debug">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79270928"></a><h2>Plugin Information</h2>
+<a name="id-1.3.14.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp71306832"></a><h2>Elements</h2>
+<a name="id-1.3.14.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
index d0249059..ec9f754e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter">
<link rel="next" href="gst-plugins-good-plugins-plugin-deinterlace.html" title="deinterlace">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp61810384"></a><h2>Plugin Information</h2>
+<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80248528"></a><h2>Elements</h2>
+<a name="id-1.3.15.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -109,6 +109,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
index 26d27cff..c8ce2935 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-debug.html" title="debug">
<link rel="next" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79049456"></a><h2>Plugin Information</h2>
+<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79325568"></a><h2>Elements</h2>
+<a name="id-1.3.16.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
index c26d0f6d..328cbd40 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-deinterlace.html" title="deinterlace">
<link rel="next" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79608608"></a><h2>Plugin Information</h2>
+<a name="id-1.3.17.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78139680"></a><h2>Elements</h2>
+<a name="id-1.3.17.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
index e7c26875..483fe9f0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound">
<link rel="next" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp73528448"></a><h2>Plugin Information</h2>
+<a name="id-1.3.18.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78890096"></a><h2>Elements</h2>
+<a name="id-1.3.18.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
index d35dfa18..3c064a3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
<link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp77126592"></a><h2>Plugin Information</h2>
+<a name="id-1.3.19.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79973456"></a><h2>Elements</h2>
+<a name="id-1.3.19.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
index b619b2a8..aa3c5421 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
<link rel="next" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp76371216"></a><h2>Plugin Information</h2>
+<a name="id-1.3.21.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp71315840"></a><h2>Elements</h2>
+<a name="id-1.3.21.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -121,6 +121,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
index f88d56eb..452dbd77 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
<link rel="next" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78982496"></a><h2>Plugin Information</h2>
+<a name="id-1.3.20.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79168736"></a><h2>Elements</h2>
+<a name="id-1.3.20.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
index d014bac1..e7445f7b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
<link rel="next" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79965552"></a><h2>Plugin Information</h2>
+<a name="id-1.3.22.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79864752"></a><h2>Elements</h2>
+<a name="id-1.3.22.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
index 24c5cefb..143f3ba7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
<link rel="next" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79945744"></a><h2>Plugin Information</h2>
+<a name="id-1.3.23.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp75669584"></a><h2>Elements</h2>
+<a name="id-1.3.23.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
index 725dc5de..04029635 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
<link rel="next" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80105392"></a><h2>Plugin Information</h2>
+<a name="id-1.3.24.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78308336"></a><h2>Elements</h2>
+<a name="id-1.3.24.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
index 7c1d96a7..c2100f04 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
<link rel="next" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79068800"></a><h2>Plugin Information</h2>
+<a name="id-1.3.25.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76715312"></a><h2>Elements</h2>
+<a name="id-1.3.25.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
index 4e1474aa..0d95f262 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
<link rel="next" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79314000"></a><h2>Plugin Information</h2>
+<a name="id-1.3.26.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78044512"></a><h2>Elements</h2>
+<a name="id-1.3.26.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
index 1a411f8b..73e2b73d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
<link rel="next" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79898128"></a><h2>Plugin Information</h2>
+<a name="id-1.3.27.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76425472"></a><h2>Elements</h2>
+<a name="id-1.3.27.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
index ff1b9d6a..7ca46898 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
<link rel="next" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79915040"></a><h2>Plugin Information</h2>
+<a name="id-1.3.28.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78064544"></a><h2>Elements</h2>
+<a name="id-1.3.28.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
index bace0be7..1087f0e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
<link rel="next" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78804992"></a><h2>Plugin Information</h2>
+<a name="id-1.3.29.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76373056"></a><h2>Elements</h2>
+<a name="id-1.3.29.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
index 69ae9bd3..5f60f602 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
<link rel="next" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp77075440"></a><h2>Plugin Information</h2>
+<a name="id-1.3.30.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79263376"></a><h2>Elements</h2>
+<a name="id-1.3.30.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
index 64cce45c..5286ab22 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze">
<link rel="next" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78219328"></a><h2>Plugin Information</h2>
+<a name="id-1.3.31.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78144256"></a><h2>Elements</h2>
+<a name="id-1.3.31.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
index 3d62a59c..014b12a6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave">
<link rel="next" href="gst-plugins-good-plugins-plugin-jack.html" title="jack">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80149296"></a><h2>Plugin Information</h2>
+<a name="id-1.3.32.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp61468096"></a><h2>Elements</h2>
+<a name="id-1.3.32.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,6 +105,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
index c3a6aaa4..5618e8b9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4">
<link rel="next" href="gst-plugins-good-plugins-plugin-jpeg.html" title="jpeg">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80531888"></a><h2>Plugin Information</h2>
+<a name="id-1.3.33.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp77714960"></a><h2>Elements</h2>
+<a name="id-1.3.33.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
index 16e4798a..23a71c74 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-jack.html" title="jack">
<link rel="next" href="gst-plugins-good-plugins-plugin-level.html" title="level">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78985472"></a><h2>Plugin Information</h2>
+<a name="id-1.3.34.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79742256"></a><h2>Elements</h2>
+<a name="id-1.3.34.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
index 0a210e8b..2d3ab392 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-jpeg.html" title="jpeg">
<link rel="next" href="gst-plugins-good-plugins-plugin-matroska.html" title="matroska">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80600448"></a><h2>Plugin Information</h2>
+<a name="id-1.3.35.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78062000"></a><h2>Elements</h2>
+<a name="id-1.3.35.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
index cc871607..f422972c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-level.html" title="level">
<link rel="next" href="gst-plugins-good-plugins-plugin-monoscope.html" title="monoscope">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79770512"></a><h2>Plugin Information</h2>
+<a name="id-1.3.36.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp75677776"></a><h2>Elements</h2>
+<a name="id-1.3.36.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -89,6 +89,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
index 040399ac..04289232 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-matroska.html" title="matroska">
<link rel="next" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80617440"></a><h2>Plugin Information</h2>
+<a name="id-1.3.37.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78063568"></a><h2>Elements</h2>
+<a name="id-1.3.37.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
index 69968d5b..94a9fa42 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-monoscope.html" title="monoscope">
<link rel="next" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp77490960"></a><h2>Plugin Information</h2>
+<a name="id-1.3.38.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79798400"></a><h2>Elements</h2>
+<a name="id-1.3.38.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
index 2ec8441e..57c4d6b0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
<link rel="next" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80635920"></a><h2>Plugin Information</h2>
+<a name="id-1.3.39.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78220032"></a><h2>Elements</h2>
+<a name="id-1.3.39.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
index e1e87538..d17278a0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile">
<link rel="next" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79417584"></a><h2>Plugin Information</h2>
+<a name="id-1.3.40.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp73388464"></a><h2>Elements</h2>
+<a name="id-1.3.40.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
index 453f699d..d21f1472 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart">
<link rel="next" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80884880"></a><h2>Plugin Information</h2>
+<a name="id-1.3.41.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78227376"></a><h2>Elements</h2>
+<a name="id-1.3.41.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
index 4bc48a27..54b4ba50 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest">
<link rel="next" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp55150176"></a><h2>Plugin Information</h2>
+<a name="id-1.3.42.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp68054112"></a><h2>Elements</h2>
+<a name="id-1.3.42.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
index 555ded96..639ddf9e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4">
<link rel="next" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80149424"></a><h2>Plugin Information</h2>
+<a name="id-1.3.43.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79386352"></a><h2>Elements</h2>
+<a name="id-1.3.43.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
index 03bedcb7..3395e818 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio">
<link rel="next" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79284912"></a><h2>Plugin Information</h2>
+<a name="id-1.3.44.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79082832"></a><h2>Elements</h2>
+<a name="id-1.3.44.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
index a272772b..98243b3f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio">
<link rel="next" href="gst-plugins-good-plugins-plugin-png.html" title="png">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78893168"></a><h2>Plugin Information</h2>
+<a name="id-1.3.45.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp77307008"></a><h2>Elements</h2>
+<a name="id-1.3.45.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
index c1105ace..41d3e644 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo">
<link rel="next" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80890800"></a><h2>Plugin Information</h2>
+<a name="id-1.3.46.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79395808"></a><h2>Elements</h2>
+<a name="id-1.3.46.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
index a6a2c253..830c89d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-png.html" title="png">
<link rel="next" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79177696"></a><h2>Plugin Information</h2>
+<a name="id-1.3.47.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79767696"></a><h2>Elements</h2>
+<a name="id-1.3.47.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
index 37f75af8..61d46151 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio">
<link rel="next" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78065776"></a><h2>Plugin Information</h2>
+<a name="id-1.3.48.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79603216"></a><h2>Elements</h2>
+<a name="id-1.3.48.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
index ac974ab4..6ed5d4a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
<link rel="next" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80267904"></a><h2>Plugin Information</h2>
+<a name="id-1.3.49.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp76744880"></a><h2>Elements</h2>
+<a name="id-1.3.49.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -80,6 +80,14 @@
<td>Payload-encode Raw audio into RTP packets (RFC 3551)</td>
</tr>
<tr>
+<td><p><span class="term">rtpL24depay</span></p></td>
+<td>Extracts raw 24-bit audio from RTP packets</td>
+</tr>
+<tr>
+<td><p><span class="term">rtpL24pay</span></p></td>
+<td>Payload-encode Raw 24-bit audio into RTP packets (RFC 3190)</td>
+</tr>
+<tr>
<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">rtpac3depay</a></span></p></td>
<td>Extracts AC3 audio from RTP packets (RFC 4184)</td>
</tr>
@@ -361,6 +369,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
index c468a1fb..afa9ad2e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
<link rel="next" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79840560"></a><h2>Plugin Information</h2>
+<a name="id-1.3.50.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78848160"></a><h2>Elements</h2>
+<a name="id-1.3.50.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,6 +105,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
index f43860ac..5908799d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
<link rel="next" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79085056"></a><h2>Plugin Information</h2>
+<a name="id-1.3.51.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp74304832"></a><h2>Elements</h2>
+<a name="id-1.3.51.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
index 65a0a840..90a7fe1d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
<link rel="next" href="gst-plugins-good-plugins-plugin-shout2send.html" title="shout2send">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp76822448"></a><h2>Plugin Information</h2>
+<a name="id-1.3.52.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80913936"></a><h2>Elements</h2>
+<a name="id-1.3.52.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
index 13fc6745..3054459c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
<link rel="next" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80357232"></a><h2>Plugin Information</h2>
+<a name="id-1.3.53.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79636256"></a><h2>Elements</h2>
+<a name="id-1.3.53.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
index b5d9da79..b311e2e1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-shout2send.html" title="shout2send">
<link rel="next" href="gst-plugins-good-plugins-plugin-soup.html" title="soup">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80828096"></a><h2>Plugin Information</h2>
+<a name="id-1.3.54.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78188656"></a><h2>Elements</h2>
+<a name="id-1.3.54.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
index 33d2550f..adda7777 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte">
<link rel="next" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80654112"></a><h2>Plugin Information</h2>
+<a name="id-1.3.55.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78452448"></a><h2>Elements</h2>
+<a name="id-1.3.55.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
index b228c4a1..b644b03d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-soup.html" title="soup">
<link rel="next" href="gst-plugins-good-plugins-plugin-speex.html" title="speex">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78429648"></a><h2>Plugin Information</h2>
+<a name="id-1.3.56.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80800816"></a><h2>Elements</h2>
+<a name="id-1.3.56.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
index e8ae563f..cd74e8f1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum">
<link rel="next" href="gst-plugins-good-plugins-plugin-taglib.html" title="taglib">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79338816"></a><h2>Plugin Information</h2>
+<a name="id-1.3.57.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78377616"></a><h2>Elements</h2>
+<a name="id-1.3.57.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
index caf7f032..46346021 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-speex.html" title="speex">
<link rel="next" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79746816"></a><h2>Plugin Information</h2>
+<a name="id-1.3.58.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80947072"></a><h2>Elements</h2>
+<a name="id-1.3.58.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
index 28e8f739..bd4fba04 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-taglib.html" title="taglib">
<link rel="next" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78461344"></a><h2>Plugin Information</h2>
+<a name="id-1.3.59.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80687920"></a><h2>Elements</h2>
+<a name="id-1.3.59.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -89,6 +89,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
index 619ce2b3..18cb8731 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
<link rel="next" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80419232"></a><h2>Plugin Information</h2>
+<a name="id-1.3.60.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79197488"></a><h2>Elements</h2>
+<a name="id-1.3.60.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -85,6 +85,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
index 7ff7d708..68156c2a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2">
<link rel="next" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79959248"></a><h2>Plugin Information</h2>
+<a name="id-1.3.61.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79638912"></a><h2>Elements</h2>
+<a name="id-1.3.61.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
index 3ec97360..17b21d4f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox">
<link rel="next" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80081216"></a><h2>Plugin Information</h2>
+<a name="id-1.3.62.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80849088"></a><h2>Elements</h2>
+<a name="id-1.3.62.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
index 5107dd90..ba300147 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop">
<link rel="next" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp81058736"></a><h2>Plugin Information</h2>
+<a name="id-1.3.63.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79793104"></a><h2>Elements</h2>
+<a name="id-1.3.63.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -89,6 +89,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
index d206c04d..f45b604c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter">
<link rel="next" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80380112"></a><h2>Plugin Information</h2>
+<a name="id-1.3.64.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79901664"></a><h2>Elements</h2>
+<a name="id-1.3.64.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
index 11cc02fc..87464ec4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer">
<link rel="next" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80597200"></a><h2>Plugin Information</h2>
+<a name="id-1.3.65.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp71009184"></a><h2>Elements</h2>
+<a name="id-1.3.65.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
index a9d5fda7..868c485d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx">
<link rel="next" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79901088"></a><h2>Plugin Information</h2>
+<a name="id-1.3.66.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80089888"></a><h2>Elements</h2>
+<a name="id-1.3.66.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
index 9db1fca6..6914fbb7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform">
<link rel="next" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79863296"></a><h2>Plugin Information</h2>
+<a name="id-1.3.67.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp81114032"></a><h2>Elements</h2>
+<a name="id-1.3.67.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
index a42bf485..a0f938ff 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc">
<link rel="next" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp80350464"></a><h2>Plugin Information</h2>
+<a name="id-1.3.68.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp79062512"></a><h2>Elements</h2>
+<a name="id-1.3.68.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -81,6 +81,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
index dae001c3..b348e514 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack">
<link rel="next" href="gst-plugins-good-plugins-plugin-ximagesrc.html" title="ximagesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78490208"></a><h2>Plugin Information</h2>
+<a name="id-1.3.69.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80458608"></a><h2>Elements</h2>
+<a name="id-1.3.69.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
index 6f19300f..54dcfa52 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse">
<link rel="next" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp79214224"></a><h2>Plugin Information</h2>
+<a name="id-1.3.70.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp78072480"></a><h2>Elements</h2>
+<a name="id-1.3.70.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
index 9f8dd60f..b5ceb29f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
<link rel="prev" href="gst-plugins-good-plugins-plugin-ximagesrc.html" title="ximagesrc">
<link rel="next" href="ch03.html" title="gst-plugins-good Base Classes">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp78442928"></a><h2>Plugin Information</h2>
+<a name="id-1.3.71.3"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.1.4</td>
+<td>1.1.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp80896896"></a><h2>Elements</h2>
+<a name="id-1.3.71.4"></a><h2>Elements</h2>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -75,6 +75,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
index 3d4bc0e5..5f677275 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">
<link rel="next" href="gst-plugins-good-plugins-pngenc.html" title="pngenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68413344"></a><h3>Element Information</h3>
+<a name="id-1.2.96.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -84,7 +84,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp64658832"></a><h3>Element Pads</h3>
+<a name="id-1.2.96.5.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -150,6 +150,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
index 425d506e..41f803a5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">
<link rel="next" href="gst-plugins-good-plugins-progressreport.html" title="progressreport">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,7 +75,7 @@ GstPngEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64777136"></a><h3>Element Information</h3>
+<a name="id-1.2.97.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -101,7 +101,7 @@ GstPngEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp68844032"></a><h3>Element Pads</h3>
+<a name="id-1.2.97.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -184,6 +184,6 @@ GstPngEnc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
index a3c227e9..54e41714 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-pngenc.html" title="pngenc">
<link rel="next" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -104,7 +104,7 @@ a whole).
<p>
</p>
<div class="refsect2">
-<a name="idp65280048"></a><h3>Example launch line</h3>
+<a name="id-1.2.98.6.7.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -133,7 +133,7 @@ a whole).
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68379328"></a><h3>Element Information</h3>
+<a name="id-1.2.98.6.8.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -159,7 +159,7 @@ a whole).
</div>
<hr>
<div class="refsect2">
-<a name="idp65667536"></a><h3>Element Pads</h3>
+<a name="id-1.2.98.6.8.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -256,6 +256,6 @@ a whole).
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
index 877d3f2c..26ebe9bd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-progressreport.html" title="progressreport">
<link rel="next" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ GstPulseSink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67522160"></a><h3>Element Information</h3>
+<a name="id-1.2.99.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -109,7 +109,7 @@ GstPulseSink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp67984048"></a><h3>Element Pads</h3>
+<a name="id-1.2.99.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -244,6 +244,6 @@ GstPulseSink implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
index 58c56183..2e2d24b6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
<link rel="next" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,7 +86,7 @@ GstPulseSrc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp70194928"></a><h3>Element Information</h3>
+<a name="id-1.2.100.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -112,7 +112,7 @@ GstPulseSrc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp70533712"></a><h3>Element Pads</h3>
+<a name="id-1.2.100.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -234,6 +234,6 @@ GstPulseSrc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
index c76565e9..df36fb3a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
<link rel="next" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ capabilities of the upstream elements.
<p>
</p>
<div class="refsect2">
-<a name="idp67932544"></a><h3>Example launch line</h3>
+<a name="id-1.2.102.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -96,7 +96,7 @@ Last reviewed on 2006-12-29 (0.10.5)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60256320"></a><h3>Element Information</h3>
+<a name="id-1.2.102.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -122,7 +122,7 @@ Last reviewed on 2006-12-29 (0.10.5)
</div>
<hr>
<div class="refsect2">
-<a name="idp68489616"></a><h3>Element Pads</h3>
+<a name="id-1.2.102.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -275,6 +275,6 @@ Last reviewed on 2006-12-29 (0.10.5)
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
index 04dc67ab..957247f4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
<link rel="next" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@ GstQTMoovRecover implements
<p>
</p>
<div class="refsect2">
-<a name="idp68240704"></a><h3>Example pipelines</h3>
+<a name="id-1.2.104.7.2.1"></a><h3>Example pipelines</h3>
<p>
This element recovers quicktime files created with qtmux using the moov
recovery feature.
@@ -102,7 +102,7 @@ Documentation last reviewed on 2011-04-21
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67421936"></a><h3>Element Information</h3>
+<a name="id-1.2.104.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -128,7 +128,7 @@ Documentation last reviewed on 2011-04-21
</div>
<hr>
<div class="refsect2">
-<a name="idp71639920"></a><h3>Element Pads</h3>
+<a name="id-1.2.104.7.4.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -200,6 +200,6 @@ Documentation last reviewed on 2011-04-21
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index 30e3f2dd..361753f2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
<link rel="next" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,7 +120,7 @@ index metadata (at the end of file).
<p>
</p>
<div class="refsect2">
-<a name="idp70116784"></a><h3>Example pipelines</h3>
+<a name="id-1.2.103.7.7.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -142,7 +142,7 @@ Last reviewed on 2010-12-03
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68421696"></a><h3>Element Information</h3>
+<a name="id-1.2.103.7.9.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -168,7 +168,7 @@ Last reviewed on 2010-12-03
</div>
<hr>
<div class="refsect2">
-<a name="idp68489744"></a><h3>Element Pads</h3>
+<a name="id-1.2.103.7.9.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -412,6 +412,6 @@ Last reviewed on 2010-12-03
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
index 08f95acc..fd134c35 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
<link rel="next" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ of the video along each line.
<p>
</p>
<div class="refsect2">
-<a name="idp70916176"></a><h3>Example launch line</h3>
+<a name="id-1.2.101.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -90,7 +90,7 @@ of the video along each line.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp70156928"></a><h3>Element Information</h3>
+<a name="id-1.2.101.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -116,7 +116,7 @@ of the video along each line.
</div>
<hr>
<div class="refsect2">
-<a name="idp65577744"></a><h3>Element Pads</h3>
+<a name="id-1.2.101.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -192,6 +192,6 @@ of the video along each line.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
index aa6a66b4..e54e066c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
<link rel="next" href="gst-plugins-good-plugins-revtv.html" title="revtv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
<p>
</p>
<div class="refsect2">
-<a name="idp61262768"></a><h3>Example launch line</h3>
+<a name="id-1.2.105.6.5.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -101,7 +101,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71234288"></a><h3>Element Information</h3>
+<a name="id-1.2.105.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -127,7 +127,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
</div>
<hr>
<div class="refsect2">
-<a name="idp71569888"></a><h3>Element Pads</h3>
+<a name="id-1.2.105.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -224,6 +224,6 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
index 4369357a..aef7f696 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
<link rel="next" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp70189408"></a><h3>Element Information</h3>
+<a name="id-1.2.106.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -95,7 +95,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp71617664"></a><h3>Element Pads</h3>
+<a name="id-1.2.106.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -187,6 +187,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
index 7d304d1d..58f8db03 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-revtv.html" title="revtv">
<link rel="next" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@ an album, not just the last one.
<p>
</p>
<div class="refsect2">
-<a name="idp71423248"></a><h3>Example launch lines</h3>
+<a name="id-1.2.107.6.4.1"></a><h3>Example launch lines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -138,7 +138,7 @@ property documentation for more information.
</p>
<hr>
<div class="refsect2">
-<a name="idp69102400"></a><h3>Acknowledgements</h3>
+<a name="id-1.2.107.6.4.2"></a><h3>Acknowledgements</h3>
<p>
This element is based on code used in the <a class="ulink" href="http://sjeng.org/vorbisgain.html" target="_top">vorbisgain</a> program and many
others. The relevant parts are copyrighted by David Robinson, Glen Sawyer
@@ -150,7 +150,7 @@ and Frank Klemm.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69994064"></a><h3>Element Information</h3>
+<a name="id-1.2.107.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -176,7 +176,7 @@ and Frank Klemm.
</div>
<hr>
<div class="refsect2">
-<a name="idp72761344"></a><h3>Element Pads</h3>
+<a name="id-1.2.107.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -362,6 +362,6 @@ tag, which allows to store the used value alongside the gain values.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
index 18d6e7f4..6699eca2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">
<link rel="next" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,7 +71,7 @@ threshold of -6 dB. This type of filter is mentioned in the proposed <a class="
<p>
</p>
<div class="refsect2">
-<a name="idp69022208"></a><h3>Example launch line</h3>
+<a name="id-1.2.108.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -93,7 +93,7 @@ Playback of a file
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67873648"></a><h3>Element Information</h3>
+<a name="id-1.2.108.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -119,7 +119,7 @@ Playback of a file
</div>
<hr>
<div class="refsect2">
-<a name="idp67620000"></a><h3>Element Pads</h3>
+<a name="id-1.2.108.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -199,6 +199,6 @@ Opaque data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
index af1ebb79..3c2ee703 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter">
<link rel="next" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -104,7 +104,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
<p>
</p>
<div class="refsect2">
-<a name="idp64182064"></a><h3>Example launch line</h3>
+<a name="id-1.2.109.7.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -124,7 +124,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69835680"></a><h3>Element Information</h3>
+<a name="id-1.2.109.7.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -150,7 +150,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
</div>
<hr>
<div class="refsect2">
-<a name="idp71691840"></a><h3>Element Pads</h3>
+<a name="id-1.2.109.7.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -363,6 +363,6 @@ of the stream</li>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
index 6eeb8553..ae0e23de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
<link rel="next" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ by motion or random rain drops.
<p>
</p>
<div class="refsect2">
-<a name="idp62616864"></a><h3>Example launch line</h3>
+<a name="id-1.2.110.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -90,7 +90,7 @@ by motion or random rain drops.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp63101120"></a><h3>Element Information</h3>
+<a name="id-1.2.110.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -116,7 +116,7 @@ by motion or random rain drops.
</div>
<hr>
<div class="refsect2">
-<a name="idp69999984"></a><h3>Element Pads</h3>
+<a name="id-1.2.110.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -198,6 +198,6 @@ by motion or random rain drops.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
index b1ac8aa0..12fe5373 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
<link rel="next" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
<p>
</p>
<div class="refsect2">
-<a name="idp70439424"></a><h3>Example pipeline</h3>
+<a name="id-1.2.118.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69307904"></a><h3>Element Information</h3>
+<a name="id-1.2.118.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp69963088"></a><h3>Element Pads</h3>
+<a name="id-1.2.118.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -184,6 +184,6 @@ rtpL16pay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
index 48c71bff..01ca2ad5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,7 +63,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
<p>
</p>
<div class="refsect2">
-<a name="idp70378608"></a><h3>Example pipeline</h3>
+<a name="id-1.2.119.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -85,7 +85,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69461616"></a><h3>Element Information</h3>
+<a name="id-1.2.119.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -111,7 +111,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp60231824"></a><h3>Element Pads</h3>
+<a name="id-1.2.119.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -189,6 +189,6 @@ rtpL16depay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
index a0b00fab..52b65281 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
<link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
<p>
</p>
<div class="refsect2">
-<a name="idp67585552"></a><h3>Example pipeline</h3>
+<a name="id-1.2.112.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71193152"></a><h3>Element Information</h3>
+<a name="id-1.2.112.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp61610352"></a><h3>Element Pads</h3>
+<a name="id-1.2.112.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -180,6 +180,6 @@ rtpac3pay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
index 8b9b077d..c570cbf4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
<link rel="next" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
<p>
</p>
<div class="refsect2">
-<a name="idp71511792"></a><h3>Example pipeline</h3>
+<a name="id-1.2.113.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69664080"></a><h3>Element Information</h3>
+<a name="id-1.2.113.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp68520064"></a><h3>Element Pads</h3>
+<a name="id-1.2.113.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -184,6 +184,6 @@ rtpac3depay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
index bb929ae3..c0633b15 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
<link rel="next" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
<p>
</p>
<div class="refsect2">
-<a name="idp70399136"></a><h3>Example pipeline</h3>
+<a name="id-1.2.114.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp70320048"></a><h3>Element Information</h3>
+<a name="id-1.2.114.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp69664208"></a><h3>Element Pads</h3>
+<a name="id-1.2.114.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -188,6 +188,6 @@ rtpamrpay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
index f3c736b7..1459bbc2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">
<link rel="next" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
<p>
</p>
<div class="refsect2">
-<a name="idp69664336"></a><h3>Example pipeline</h3>
+<a name="id-1.2.115.5.3.1"></a><h3>Example pipeline</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -84,7 +84,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp72446048"></a><h3>Element Information</h3>
+<a name="id-1.2.115.5.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -110,7 +110,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp69843888"></a><h3>Element Pads</h3>
+<a name="id-1.2.115.5.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -188,6 +188,6 @@ rtpamrdepay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
index 7cf301db..b44e3e72 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
<link rel="next" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -158,7 +158,7 @@ internal source and other sources.
<p>
</p>
<div class="refsect2">
-<a name="idp74394608"></a><h3>Example pipelines</h3>
+<a name="id-1.2.124.8.10.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -255,7 +255,7 @@ Last reviewed on 2007-08-30 (0.10.6)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp74402224"></a><h3>Element Information</h3>
+<a name="id-1.2.124.8.12.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -281,7 +281,7 @@ Last reviewed on 2007-08-30 (0.10.6)
</div>
<hr>
<div class="refsect2">
-<a name="idp74409680"></a><h3>Element Pads</h3>
+<a name="id-1.2.124.8.12.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -1044,6 +1044,6 @@ rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
index 85b0d229..f1ffc7c8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
<link rel="next" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71908640"></a><h3>Element Information</h3>
+<a name="id-1.2.116.4.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -77,7 +77,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp70968064"></a><h3>Element Pads</h3>
+<a name="id-1.2.116.4.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -145,6 +145,6 @@ rtpbvpay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
index 3dd42818..28e2749b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@ Last reviewed on 2013-04-25 (1.1.0)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp72002384"></a><h3>Element Information</h3>
+<a name="id-1.2.117.4.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -77,7 +77,7 @@ Last reviewed on 2013-04-25 (1.1.0)
</div>
<hr>
<div class="refsect2">
-<a name="idp71851968"></a><h3>Element Pads</h3>
+<a name="id-1.2.117.4.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -145,6 +145,6 @@ rtpbvdepay
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
index a256c36a..75916f8d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
<link rel="next" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -87,7 +87,7 @@ Last reviewed on 2006-06-20 (0.10.4)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp72859536"></a><h3>Element Information</h3>
+<a name="id-1.2.111.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -113,7 +113,7 @@ Last reviewed on 2006-06-20 (0.10.4)
</div>
<hr>
<div class="refsect2">
-<a name="idp71625088"></a><h3>Element Pads</h3>
+<a name="id-1.2.111.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -496,6 +496,6 @@ Notify of an SSRC that has timed out
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
index 4747e31a..1dfdfb14 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
<link rel="next" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71988336"></a><h3>Element Information</h3>
+<a name="id-1.2.125.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -95,7 +95,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.
</div>
<hr>
<div class="refsect2">
-<a name="idp71997472"></a><h3>Element Pads</h3>
+<a name="id-1.2.125.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -190,6 +190,6 @@ rtpdtmfsrc, dtmfsrc, rtpmux
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
index e5fe4ca1..41b67e15 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -168,7 +168,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69611808"></a><h3>Element Information</h3>
+<a name="id-1.2.126.6.7.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -194,7 +194,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
</div>
<hr>
<div class="refsect2">
-<a name="idp67573632"></a><h3>Element Pads</h3>
+<a name="id-1.2.126.6.7.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -310,6 +310,6 @@ dtmfsrc, rtpdtmfdepay, rtpdtmfmux
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
index 78148396..1945651d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
<link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,7 +75,7 @@ codestream.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71844624"></a><h3>Element Information</h3>
+<a name="id-1.2.120.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -101,7 +101,7 @@ codestream.
</div>
<hr>
<div class="refsect2">
-<a name="idp65738816"></a><h3>Element Pads</h3>
+<a name="id-1.2.120.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -176,6 +176,6 @@ codestream.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
index e9ee9708..1de7d0d7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -87,7 +87,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp75250640"></a><h3>Element Information</h3>
+<a name="id-1.2.127.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -113,7 +113,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp72269360"></a><h3>Element Pads</h3>
+<a name="id-1.2.127.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -435,6 +435,6 @@ useful in buffering mode.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
index 6194c236..66a74a6a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ The payloader assumes that correct width and height is found in the caps.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp64783568"></a><h3>Element Information</h3>
+<a name="id-1.2.121.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ The payloader assumes that correct width and height is found in the caps.
</div>
<hr>
<div class="refsect2">
-<a name="idp66580384"></a><h3>Element Pads</h3>
+<a name="id-1.2.121.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -201,6 +201,6 @@ The payloader assumes that correct width and height is found in the caps.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
index 75d52020..b9ffccc5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,7 +73,7 @@ muxes into a single stream with a single SSRC.
<p>
</p>
<div class="refsect2">
-<a name="idp73088464"></a><h3>Example pipelines</h3>
+<a name="id-1.2.128.6.3.1"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -107,7 +107,7 @@ Last reviewed on 2010-09-30 (0.10.21)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp72860896"></a><h3>Element Information</h3>
+<a name="id-1.2.128.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -133,7 +133,7 @@ Last reviewed on 2010-09-30 (0.10.21)
</div>
<hr>
<div class="refsect2">
-<a name="idp74041616"></a><h3>Element Pads</h3>
+<a name="id-1.2.128.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -236,6 +236,6 @@ rtpdtmfmux
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
index d7563492..8095f53c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
<link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp60646176"></a><h3>Element Information</h3>
+<a name="id-1.2.129.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -94,7 +94,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp69992912"></a><h3>Element Pads</h3>
+<a name="id-1.2.129.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -283,6 +283,6 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
index 3b29cf32..13460815 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71869328"></a><h3>Element Information</h3>
+<a name="id-1.2.122.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -92,7 +92,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp65953216"></a><h3>Element Pads</h3>
+<a name="id-1.2.122.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -168,6 +168,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
index 5fc90cd0..e092a69e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
<link rel="next" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -94,7 +94,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73570592"></a><h3>Element Information</h3>
+<a name="id-1.2.130.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -120,7 +120,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp73129120"></a><h3>Element Pads</h3>
+<a name="id-1.2.130.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -706,6 +706,6 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
index 9b614020..116e3bb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73287952"></a><h3>Element Information</h3>
+<a name="id-1.2.131.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -93,7 +93,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp71756816"></a><h3>Element Pads</h3>
+<a name="id-1.2.131.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -309,6 +309,6 @@ Emited when a SSRC pad has been removed.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 170b01cb..53003f3d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
<link rel="next" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -139,7 +139,7 @@ PLAYING state.
<p>
</p>
<div class="refsect2">
-<a name="idp69748992"></a><h3>Example launch line</h3>
+<a name="id-1.2.123.8.7.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -161,7 +161,7 @@ Last reviewed on 2006-08-18 (0.10.5)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp69751856"></a><h3>Element Information</h3>
+<a name="id-1.2.123.8.9.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -187,7 +187,7 @@ Last reviewed on 2006-08-18 (0.10.5)
</div>
<hr>
<div class="refsect2">
-<a name="idp72750592"></a><h3>Element Pads</h3>
+<a name="id-1.2.123.8.9.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -567,6 +567,6 @@ is to be ignored.</td>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
index 15bab763..d8d9a227 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
<link rel="next" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ frames and timestamp them properly.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71837248"></a><h3>Element Information</h3>
+<a name="id-1.2.132.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -88,7 +88,7 @@ frames and timestamp them properly.
</div>
<hr>
<div class="refsect2">
-<a name="idp71426208"></a><h3>Element Pads</h3>
+<a name="id-1.2.132.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -158,6 +158,6 @@ sbcdec, sbcenc
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
index 87c25b68..5aaaf048 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
<link rel="next" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@ Use Sceletempo to apply playback rates without the chipmunk effect.
<p>
</p>
<div class="refsect2">
-<a name="idp71598192"></a><h3>Example pipelines</h3>
+<a name="id-1.2.133.6.4.1"></a><h3>Example pipelines</h3>
<p>
</p>
<div class="informalexample">
@@ -135,7 +135,7 @@ the algoritm looks.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71291872"></a><h3>Element Information</h3>
+<a name="id-1.2.133.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -161,7 +161,7 @@ the algoritm looks.
</div>
<hr>
<div class="refsect2">
-<a name="idp74779712"></a><h3>Element Pads</h3>
+<a name="id-1.2.133.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -269,6 +269,6 @@ the algoritm looks.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
index 7955e8c9..c9af1a0c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">
<link rel="next" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ Oh behave, ShagedelicTV makes images shagadelic!
<p>
</p>
<div class="refsect2">
-<a name="idp72330512"></a><h3>Example launch line</h3>
+<a name="id-1.2.134.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -80,7 +80,7 @@ Oh behave, ShagedelicTV makes images shagadelic!
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71191744"></a><h3>Element Information</h3>
+<a name="id-1.2.134.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ Oh behave, ShagedelicTV makes images shagadelic!
</div>
<hr>
<div class="refsect2">
-<a name="idp73331808"></a><h3>Element Pads</h3>
+<a name="id-1.2.134.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -172,6 +172,6 @@ Oh behave, ShagedelicTV makes images shagadelic!
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
index 77985467..524f5b7b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
<link rel="next" href="gst-plugins-good-plugins-smpte.html" title="smpte">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@ page.
<p>
</p>
<div class="refsect2">
-<a name="idp66620368"></a><h3>Example launch line</h3>
+<a name="id-1.2.135.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -95,7 +95,7 @@ page.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp75316224"></a><h3>Element Information</h3>
+<a name="id-1.2.135.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -121,7 +121,7 @@ page.
</div>
<hr>
<div class="refsect2">
-<a name="idp69782160"></a><h3>Element Pads</h3>
+<a name="id-1.2.135.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -233,6 +233,6 @@ page.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
index a2c2fb26..969c6ef5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
<link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ banding.
<p>
</p>
<div class="refsect2">
-<a name="idp74327808"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.136.6.4.1"></a><h3>Sample pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -101,7 +101,7 @@ edges of the transition are smoothed with a 20000 big border.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp68932912"></a><h3>Element Information</h3>
+<a name="id-1.2.136.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -127,7 +127,7 @@ edges of the transition are smoothed with a 20000 big border.
</div>
<hr>
<div class="refsect2">
-<a name="idp73291952"></a><h3>Element Pads</h3>
+<a name="id-1.2.136.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -264,6 +264,6 @@ edges of the transition are smoothed with a 20000 big border.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
index 886f0d4f..510b46de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte">
<link rel="next" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -87,7 +87,7 @@ avoid banding.
<p>
</p>
<div class="refsect2">
-<a name="idp74287824"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.137.6.5.1"></a><h3>Sample pipelines</h3>
<p>
Here is a pipeline to demonstrate the smpte transition :
</p>
@@ -106,7 +106,7 @@ transparent image. The edges of the transition are smoothed with a
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp71025712"></a><h3>Element Information</h3>
+<a name="id-1.2.137.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -132,7 +132,7 @@ transparent image. The edges of the transition are smoothed with a
</div>
<hr>
<div class="refsect2">
-<a name="idp74118704"></a><h3>Element Pads</h3>
+<a name="id-1.2.137.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -281,6 +281,6 @@ Set to TRUE to invert the transition mask (ie. flip it horizontally).
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
index 72df6a43..e156a610 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
<link rel="next" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -91,7 +91,7 @@ GstSoupHTTPSrc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73423824"></a><h3>Element Information</h3>
+<a name="id-1.2.138.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -117,7 +117,7 @@ GstSoupHTTPSrc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp73543264"></a><h3>Element Pads</h3>
+<a name="id-1.2.138.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -279,6 +279,6 @@ GstSoupHTTPSrc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
index b68d50ef..ac00d3b1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
<link rel="next" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -132,7 +132,7 @@ channels and the second dimension are the values.
<p>
</p>
<div class="refsect2">
-<a name="idp73114544"></a><h3>Example application</h3>
+<a name="id-1.2.139.6.5.1"></a><h3>Example application</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -399,7 +399,7 @@ Last reviewed on 2011-03-10 (0.10.29)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76216400"></a><h3>Element Information</h3>
+<a name="id-1.2.139.6.7.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -425,7 +425,7 @@ Last reviewed on 2011-03-10 (0.10.29)
</div>
<hr>
<div class="refsect2">
-<a name="idp76602640"></a><h3>Element Pads</h3>
+<a name="id-1.2.139.6.7.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -551,6 +551,6 @@ Last reviewed on 2011-03-10 (0.10.29)
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
index 66932497..f963b2b5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
<link rel="next" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp67671856"></a><h3>Element Information</h3>
+<a name="id-1.2.141.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -92,7 +92,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp75363744"></a><h3>Element Pads</h3>
+<a name="id-1.2.141.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -167,6 +167,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
index b32dd90b..6704265d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
<link rel="next" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ GstSpeexEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73495904"></a><h3>Element Information</h3>
+<a name="id-1.2.140.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -109,7 +109,7 @@ GstSpeexEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp69323520"></a><h3>Element Pads</h3>
+<a name="id-1.2.140.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -256,6 +256,6 @@ GstSpeexEnc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
index 0f75e445..68cdce8d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
<link rel="next" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -85,7 +85,7 @@ directories). The results will be sorted.
<p>
</p>
<div class="refsect2">
-<a name="idp72609504"></a><h3>Example launch lines</h3>
+<a name="id-1.2.142.7.4.1"></a><h3>Example launch lines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -114,7 +114,7 @@ directories). The results will be sorted.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73404976"></a><h3>Element Information</h3>
+<a name="id-1.2.142.7.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -140,7 +140,7 @@ directories). The results will be sorted.
</div>
<hr>
<div class="refsect2">
-<a name="idp75936080"></a><h3>Element Pads</h3>
+<a name="id-1.2.142.7.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -195,6 +195,6 @@ directories). The results will be sorted.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
index 2ac6ab04..890eb5fa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
<link rel="next" href="gst-plugins-good-plugins-taginject.html" title="taginject">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ StreakTV makes after images of moving objects.
<p>
</p>
<div class="refsect2">
-<a name="idp61083040"></a><h3>Example launch line</h3>
+<a name="id-1.2.143.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -88,7 +88,7 @@ StreakTV makes after images of moving objects.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp61245616"></a><h3>Element Information</h3>
+<a name="id-1.2.143.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -114,7 +114,7 @@ StreakTV makes after images of moving objects.
</div>
<hr>
<div class="refsect2">
-<a name="idp72398912"></a><h3>Element Pads</h3>
+<a name="id-1.2.143.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -189,6 +189,6 @@ StreakTV makes after images of moving objects.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
index 9cf6ab99..aed0a926 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
<link rel="next" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ unmodified.
<p>
</p>
<div class="refsect2">
-<a name="idp76454288"></a><h3>Example launch lines</h3>
+<a name="id-1.2.144.6.3.1"></a><h3>Example launch lines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -99,7 +99,7 @@ unmodified.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp74155328"></a><h3>Element Information</h3>
+<a name="id-1.2.144.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -125,7 +125,7 @@ unmodified.
</div>
<hr>
<div class="refsect2">
-<a name="idp76436000"></a><h3>Element Pads</h3>
+<a name="id-1.2.144.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -201,6 +201,6 @@ Opaque <a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInjec
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
index 10ce9288..d6b6de23 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
<link rel="next" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ It can be combined with RTP payloaders to implement RTP streaming.
<p>
</p>
<div class="refsect2">
-<a name="idp70433808"></a><h3>Examples</h3>
+<a name="id-1.2.146.7.3.1"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ It can be combined with RTP payloaders to implement RTP streaming.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73526176"></a><h3>Element Information</h3>
+<a name="id-1.2.146.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -124,7 +124,7 @@ It can be combined with RTP payloaders to implement RTP streaming.
</div>
<hr>
<div class="refsect2">
-<a name="idp73591424"></a><h3>Element Pads</h3>
+<a name="id-1.2.146.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -187,6 +187,6 @@ udpsrc, multifdsink
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
index 46ef51ea..38a7fccf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-taginject.html" title="taginject">
<link rel="next" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,7 @@ GstUDPSrc implements
"<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket" title='The "socket" property'>socket</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write
"<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket" title='The "used-socket" property'>used-socket</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read
"<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address" title='The "bind-address" property'>bind-address</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
+ "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address" title='The "address" property'>address</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -161,7 +162,7 @@ is responsible for closing the file descriptor.
<p>
</p>
<div class="refsect2">
-<a name="idp74771344"></a><h3>Examples</h3>
+<a name="id-1.2.145.7.13.1"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -207,7 +208,7 @@ Last reviewed on 2007-09-20 (0.10.7)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76200608"></a><h3>Element Information</h3>
+<a name="id-1.2.145.7.15.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -233,7 +234,7 @@ Last reviewed on 2007-09-20 (0.10.7)
</div>
<hr>
<div class="refsect2">
-<a name="idp75681088"></a><h3>Element Pads</h3>
+<a name="id-1.2.145.7.15.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -283,7 +284,7 @@ Last reviewed on 2007-09-20 (0.10.7)
<div class="refsect2">
<a name="GstUDPSrc--multicast-group"></a><h3>The <code class="literal">"multicast-group"</code> property</h3>
<pre class="programlisting"> "multicast-group" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
-<p>The Address of multicast group to join.</p>
+<p>The Address of multicast group to join. DEPRECATED: Use address property instead.</p>
<p>Default value: "0.0.0.0"</p>
</div>
<hr>
@@ -394,6 +395,13 @@ Last reviewed on 2007-09-20 (0.10.7)
<p>Address to bind the socket to. This is equivalent to the multicast-group property.</p>
<p>Default value: "0.0.0.0"</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstUDPSrc--address"></a><h3>The <code class="literal">"address"</code> property</h3>
+<pre class="programlisting"> "address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
+<p>Address to receive packets for. This is equivalent to the multicast-group property for now.</p>
+<p>Default value: "0.0.0.0"</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-good-plugins-udpsrc.see-also"></a><h2>See Also</h2>
@@ -402,6 +410,6 @@ udpsink, multifdsink
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
index 7e81b3ed..d449fbff 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
<link rel="next" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@ GstV4l2Radio implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76412896"></a><h3>Element Information</h3>
+<a name="id-1.2.149.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -100,7 +100,7 @@ GstV4l2Radio implements
</div>
<hr>
<div class="refsect2">
-<a name="idp69785536"></a><h3>Element Pads</h3>
+<a name="id-1.2.149.7.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -135,6 +135,6 @@ GstV4l2Radio implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
index 76cb218d..d1f2d8c4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
<link rel="next" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -97,7 +97,7 @@ GstV4l2Sink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76082672"></a><h3>Element Information</h3>
+<a name="id-1.2.148.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -123,7 +123,7 @@ GstV4l2Sink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp74073024"></a><h3>Element Pads</h3>
+<a name="id-1.2.148.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -445,6 +445,6 @@ GstV4l2Sink implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
index b7c5be6a..a9ce9472 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
<link rel="next" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -98,7 +98,7 @@ GstV4l2Src implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76376096"></a><h3>Element Information</h3>
+<a name="id-1.2.147.8.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -124,7 +124,7 @@ GstV4l2Src implements
</div>
<hr>
<div class="refsect2">
-<a name="idp76030496"></a><h3>Element Pads</h3>
+<a name="id-1.2.147.8.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -425,6 +425,6 @@ GstV4l2Src implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
index 32abfdd0..5793613c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
<link rel="next" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -79,7 +79,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
<p>
</p>
<div class="refsect2">
-<a name="idp62368480"></a><h3>Example launch line</h3>
+<a name="id-1.2.150.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -97,7 +97,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp72680912"></a><h3>Element Information</h3>
+<a name="id-1.2.150.7.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -123,7 +123,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
</div>
<hr>
<div class="refsect2">
-<a name="idp71806320"></a><h3>Element Pads</h3>
+<a name="id-1.2.150.7.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -233,6 +233,6 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
index bf7b12fd..f14e7bfe 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
<link rel="next" href="gst-plugins-good-plugins-videobox.html" title="videobox">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@ Adjusts brightness, contrast, hue, saturation on a video stream.
<p>
</p>
<div class="refsect2">
-<a name="idp71477840"></a><h3>Example launch line</h3>
+<a name="id-1.2.151.7.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -103,7 +103,7 @@ Last reviewed on 2010-04-18 (0.10.22)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76007968"></a><h3>Element Information</h3>
+<a name="id-1.2.151.7.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -129,7 +129,7 @@ Last reviewed on 2010-04-18 (0.10.22)
</div>
<hr>
<div class="refsect2">
-<a name="idp75693952"></a><h3>Element Pads</h3>
+<a name="id-1.2.151.7.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -230,6 +230,6 @@ Opaque data structure.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
index 19794530..273bb7b3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
<link rel="next" href="gst-plugins-good-plugins-videocrop.html" title="videocrop">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -122,7 +122,7 @@ Sample pipeline:
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76077744"></a><h3>Element Information</h3>
+<a name="id-1.2.152.6.8.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -148,7 +148,7 @@ Sample pipeline:
</div>
<hr>
<div class="refsect2">
-<a name="idp77469072"></a><h3>Element Pads</h3>
+<a name="id-1.2.152.6.8.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -282,6 +282,6 @@ video to be centered in the output.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
index c61e321a..19b97c63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-videobox.html" title="videobox">
<link rel="next" href="gst-plugins-good-plugins-videoflip.html" title="videoflip">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -92,7 +92,7 @@ most use cases, but it might matter for yours.
<p>
</p>
<div class="refsect2">
-<a name="idp77515872"></a><h3>Example launch line</h3>
+<a name="id-1.2.153.6.6.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -110,7 +110,7 @@ most use cases, but it might matter for yours.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76956784"></a><h3>Element Information</h3>
+<a name="id-1.2.153.6.7.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -136,7 +136,7 @@ most use cases, but it might matter for yours.
</div>
<hr>
<div class="refsect2">
-<a name="idp71978064"></a><h3>Element Pads</h3>
+<a name="id-1.2.153.6.7.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -240,6 +240,6 @@ most use cases, but it might matter for yours.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
index 1a3da298..67eb534d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-videocrop.html" title="videocrop">
<link rel="next" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,7 +71,7 @@ Flips and rotates video.
<p>
</p>
<div class="refsect2">
-<a name="idp76903824"></a><h3>Example launch line</h3>
+<a name="id-1.2.154.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ Last reviewed on 2010-04-18 (0.10.22)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp77216272"></a><h3>Element Information</h3>
+<a name="id-1.2.154.6.5.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -118,7 +118,7 @@ Last reviewed on 2010-04-18 (0.10.22)
</div>
<hr>
<div class="refsect2">
-<a name="idp76880256"></a><h3>Element Pads</h3>
+<a name="id-1.2.154.6.5.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -260,6 +260,6 @@ The different flip methods.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
index e553b27c..0cdd8844 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-videoflip.html" title="videoflip">
<link rel="next" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -48,9 +48,7 @@ output parameters. Indeed output video frames will have the geometry of the
biggest incoming video stream and the framerate of the fastest incoming one.
</p>
<p>
-All sink pads must be either AYUV, ARGB or BGRA, but a mixture of them is not
-supported. The src pad will have the same colorspace as the sinks.
-No colorspace conversion is done.
+Videomixer will do colorspace conversion.
</p>
<p>
Individual parameters for each input stream can be configured on the
@@ -59,7 +57,7 @@ Individual parameters for each input stream can be configured on the
<p>
</p>
<div class="refsect2">
-<a name="idp77312832"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.155.4.5.1"></a><h3>Sample pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -160,7 +158,7 @@ framerate of the output video is 10 frames per second.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76898672"></a><h3>Element Information</h3>
+<a name="id-1.2.155.4.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -186,7 +184,7 @@ framerate of the output video is 10 frames per second.
</div>
<hr>
<div class="refsect2">
-<a name="idp63127920"></a><h3>Element Pads</h3>
+<a name="id-1.2.155.4.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -246,6 +244,6 @@ framerate of the output video is 10 frames per second.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
index 5de80e1c..4934f24b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
<link rel="next" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp75770672"></a><h3>Element Information</h3>
+<a name="id-1.2.156.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -96,7 +96,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp77124272"></a><h3>Element Pads</h3>
+<a name="id-1.2.156.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -202,6 +202,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
index 6112c549..f5087b3d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
<link rel="next" href="gst-plugins-good-plugins-warptv.html" title="warptv">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -132,7 +132,7 @@ GstVP8Enc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp78532944"></a><h3>Element Information</h3>
+<a name="id-1.2.157.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -158,7 +158,7 @@ GstVP8Enc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp78540352"></a><h3>Element Pads</h3>
+<a name="id-1.2.157.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -669,6 +669,6 @@ GstVP8Enc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
index b5fe439e..94176cab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
<link rel="next" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ WarpTV does realtime goo'ing of the video input.
<p>
</p>
<div class="refsect2">
-<a name="idp78176720"></a><h3>Example launch line</h3>
+<a name="id-1.2.158.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -80,7 +80,7 @@ WarpTV does realtime goo'ing of the video input.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp77800016"></a><h3>Element Information</h3>
+<a name="id-1.2.158.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ WarpTV does realtime goo'ing of the video input.
</div>
<hr>
<div class="refsect2">
-<a name="idp78939664"></a><h3>Element Pads</h3>
+<a name="id-1.2.158.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -172,6 +172,6 @@ WarpTV does realtime goo'ing of the video input.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
index 4cdad9d2..a9b12cfa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
<link rel="next" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,7 +45,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp73194512"></a><h3>Element Information</h3>
+<a name="id-1.2.160.4.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -71,7 +71,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp77758576"></a><h3>Element Pads</h3>
+<a name="id-1.2.160.4.2.2"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -126,6 +126,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
index 5ae15a06..66c928e6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv">
<link rel="next" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@ Format an audio stream into the wav format.
<p>
</p>
<div class="refsect2">
-<a name="idp76248080"></a><h3>Example launch line</h3>
+<a name="id-1.2.159.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -97,7 +97,7 @@ Format an audio stream into the wav format.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp78882640"></a><h3>Element Information</h3>
+<a name="id-1.2.159.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -123,7 +123,7 @@ Format an audio stream into the wav format.
</div>
<hr>
<div class="refsect2">
-<a name="idp78245680"></a><h3>Element Pads</h3>
+<a name="id-1.2.159.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -201,6 +201,6 @@ Format an audio stream into the wav format.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
index 4d3df335..8f4f18d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
<link rel="next" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp77483728"></a><h3>Element Information</h3>
+<a name="id-1.2.161.5.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -84,7 +84,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp74181184"></a><h3>Element Pads</h3>
+<a name="id-1.2.161.5.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -158,6 +158,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
index e46f2fb0..6ca4756b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
<link rel="next" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,7 +80,7 @@ GstWavpackEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp77084000"></a><h3>Element Information</h3>
+<a name="id-1.2.162.7.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -106,7 +106,7 @@ GstWavpackEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp76422256"></a><h3>Element Pads</h3>
+<a name="id-1.2.162.7.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -250,6 +250,6 @@ GstWavpackEnc implements
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
index ddfcba5e..df752aeb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
<link rel="next" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ This is an Wavpack parser.
<p>
</p>
<div class="refsect2">
-<a name="idp79356528"></a><h3>Example launch line</h3>
+<a name="id-1.2.163.5.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -79,7 +79,7 @@ This is an Wavpack parser.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp76950704"></a><h3>Element Information</h3>
+<a name="id-1.2.163.5.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -105,7 +105,7 @@ This is an Wavpack parser.
</div>
<hr>
<div class="refsect2">
-<a name="idp78210144"></a><h3>Element Pads</h3>
+<a name="id-1.2.163.5.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -180,6 +180,6 @@ The opaque GstWavpackParse object
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
index ed842505..c0b20040 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">
<link rel="next" href="gst-plugins-good-plugins-webmmux.html" title="webmmux">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ stream from a network source.
<p>
</p>
<div class="refsect2">
-<a name="idp78214048"></a><h3>Example launch line</h3>
+<a name="id-1.2.164.6.4.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -105,7 +105,7 @@ Last reviewed on 2007-02-14 (0.10.6)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp78937680"></a><h3>Element Information</h3>
+<a name="id-1.2.164.6.6.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -131,7 +131,7 @@ Last reviewed on 2007-02-14 (0.10.6)
</div>
<hr>
<div class="refsect2">
-<a name="idp76140896"></a><h3>Element Pads</h3>
+<a name="id-1.2.164.6.6.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -318,6 +318,6 @@ in there and hopes it doesn't break too much.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
index 2dcd533a..db2fbe61 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">
<link rel="next" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
<p>
</p>
<div class="refsect2">
-<a name="idp73437696"></a><h3>Example launch line</h3>
+<a name="id-1.2.165.6.3.1"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -108,7 +108,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp77096080"></a><h3>Element Information</h3>
+<a name="id-1.2.165.6.4.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -134,7 +134,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
</div>
<hr>
<div class="refsect2">
-<a name="idp77778992"></a><h3>Element Pads</h3>
+<a name="id-1.2.165.6.4.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -280,6 +280,6 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
index 2b56a2b1..e31b3122 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-webmmux.html" title="webmmux">
<link rel="next" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp79073616"></a><h3>Element Information</h3>
+<a name="id-1.2.166.6.2.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -103,7 +103,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp79707664"></a><h3>Element Pads</h3>
+<a name="id-1.2.166.6.2.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -229,6 +229,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
index 7196fec5..c0c1e1fc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
@@ -8,7 +8,7 @@
<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
<link rel="prev" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">
<link rel="next" href="ch02.html" title="gst-plugins-good Plugins">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,7 +57,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp77502448"></a><h3>Example launch line</h3>
+<a name="id-1.2.167.5.2.1"></a><h3>Example launch line</h3>
<p>
Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
</p>
@@ -77,7 +77,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp75256384"></a><h3>Element Information</h3>
+<a name="id-1.2.167.5.3.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -103,7 +103,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
</div>
<hr>
<div class="refsect2">
-<a name="idp61612816"></a><h3>Element Pads</h3>
+<a name="id-1.2.167.5.3.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
@@ -169,6 +169,6 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index afe93538..bc8c133f 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
<link rel="next" href="ch01.html" title="gst-plugins-good Elements">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Good Plugins 1.0 (1.1.4)
+ for GStreamer Good Plugins 1.0 (1.1.90)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/</a>.
</p></div>
@@ -750,6 +750,6 @@
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.18</div>
+ Generated by GTK-Doc V1.19</div>
</body>
</html> \ No newline at end of file
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index dbe63f49..cad6a72b 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -311,6 +311,7 @@
<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.property-details">
<ANCHOR id="GstAutoAudioSink--filter-caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps">
<ANCHOR id="GstAutoAudioSink--ts-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset">
+<ANCHOR id="GstAutoAudioSink--sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--sync">
<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.see-also">
<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html">
<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.synopsis">
@@ -336,6 +337,7 @@
<ANCHOR id="gst-plugins-good-plugins-autovideosink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.property-details">
<ANCHOR id="GstAutoVideoSink--filter-caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps">
<ANCHOR id="GstAutoVideoSink--ts-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset">
+<ANCHOR id="GstAutoVideoSink--sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--sync">
<ANCHOR id="gst-plugins-good-plugins-autovideosink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.see-also">
<ANCHOR id="gst-plugins-good-plugins-autovideosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html">
<ANCHOR id="gst-plugins-good-plugins-autovideosrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.synopsis">
@@ -1832,6 +1834,7 @@
<ANCHOR id="GstUDPSrc--socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket">
<ANCHOR id="GstUDPSrc--used-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket">
<ANCHOR id="GstUDPSrc--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address">
+<ANCHOR id="GstUDPSrc--address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address">
<ANCHOR id="gst-plugins-good-plugins-udpsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.see-also">
<ANCHOR id="gst-plugins-good-plugins-udpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html">
<ANCHOR id="gst-plugins-good-plugins-udpsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.synopsis">
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index 118fff73..18fc864d 100644
--- a/docs/plugins/inspect/plugin-1394.xml
+++ b/docs/plugins/inspect/plugin-1394.xml
@@ -3,7 +3,7 @@
<description>Source for video data via IEEE1394 interface</description>
<filename>../../ext/raw1394/.libs/libgst1394.so</filename>
<basename>libgst1394.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-aasink.xml b/docs/plugins/inspect/plugin-aasink.xml
index 90e56a33..865bead8 100644
--- a/docs/plugins/inspect/plugin-aasink.xml
+++ b/docs/plugins/inspect/plugin-aasink.xml
@@ -3,7 +3,7 @@
<description>ASCII Art video sink</description>
<filename>../../ext/aalib/.libs/libgstaasink.so</filename>
<basename>libgstaasink.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alaw.xml b/docs/plugins/inspect/plugin-alaw.xml
index ed07c53f..122dd301 100644
--- a/docs/plugins/inspect/plugin-alaw.xml
+++ b/docs/plugins/inspect/plugin-alaw.xml
@@ -3,7 +3,7 @@
<description>ALaw audio conversion routines</description>
<filename>../../gst/law/.libs/libgstalaw.so</filename>
<basename>libgstalaw.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alpha.xml b/docs/plugins/inspect/plugin-alpha.xml
index 18304838..2df32913 100644
--- a/docs/plugins/inspect/plugin-alpha.xml
+++ b/docs/plugins/inspect/plugin-alpha.xml
@@ -3,7 +3,7 @@
<description>adds an alpha channel to video - constant or via chroma-keying</description>
<filename>../../gst/alpha/.libs/libgstalpha.so</filename>
<basename>libgstalpha.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alphacolor.xml b/docs/plugins/inspect/plugin-alphacolor.xml
index b20490d0..660f7654 100644
--- a/docs/plugins/inspect/plugin-alphacolor.xml
+++ b/docs/plugins/inspect/plugin-alphacolor.xml
@@ -3,7 +3,7 @@
<description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description>
<filename>../../gst/alpha/.libs/libgstalphacolor.so</filename>
<basename>libgstalphacolor.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-annodex.xml b/docs/plugins/inspect/plugin-annodex.xml
deleted file mode 100644
index 5d844829..00000000
--- a/docs/plugins/inspect/plugin-annodex.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<plugin>
- <name>annodex</name>
- <description>annodex stream manipulation (info about annodex: http://www.annodex.net)</description>
- <filename>../../ext/annodex/.libs/libgstannodex.so</filename>
- <basename>libgstannodex.so</basename>
- <version>0.11.91.1</version>
- <license>LGPL</license>
- <source>gst-plugins-good</source>
- <package>GStreamer Good Plug-ins git</package>
- <origin>Unknown package origin</origin>
- <elements>
- <element>
- <name>cmmldec</name>
- <longname>CMML stream decoder</longname>
- <class>Codec/Decoder</class>
- <description>Decodes CMML streams</description>
- <author>Alessandro Decina &lt;alessandro@nnva.org&gt;</author>
- <pads>
- <caps>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <details>text/x-cmml, encoded=(boolean)true</details>
- </caps>
- <caps>
- <name>src</name>
- <direction>source</direction>
- <presence>always</presence>
- <details>text/x-cmml, encoded=(boolean)false</details>
- </caps>
- </pads>
- </element>
- <element>
- <name>cmmlenc</name>
- <longname>CMML streams encoder</longname>
- <class>Codec/Encoder</class>
- <description>Encodes CMML streams</description>
- <author>Alessandro Decina &lt;alessandro@nnva.org&gt;</author>
- <pads>
- <caps>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <details>text/x-cmml, encoded=(boolean)false</details>
- </caps>
- <caps>
- <name>src</name>
- <direction>source</direction>
- <presence>always</presence>
- <details>text/x-cmml, encoded=(boolean)true</details>
- </caps>
- </pads>
- </element>
- </elements>
-</plugin> \ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml
index e70391f2..361bb482 100644
--- a/docs/plugins/inspect/plugin-apetag.xml
+++ b/docs/plugins/inspect/plugin-apetag.xml
@@ -3,7 +3,7 @@
<description>APEv1/2 tag reader</description>
<filename>../../gst/apetag/.libs/libgstapetag.so</filename>
<basename>libgstapetag.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiofx.xml b/docs/plugins/inspect/plugin-audiofx.xml
index 98dfee96..818d45ec 100644
--- a/docs/plugins/inspect/plugin-audiofx.xml
+++ b/docs/plugins/inspect/plugin-audiofx.xml
@@ -3,7 +3,7 @@
<description>Audio effects plugin</description>
<filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename>
<basename>libgstaudiofx.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml
index 2f181489..79027f9a 100644
--- a/docs/plugins/inspect/plugin-audioparsers.xml
+++ b/docs/plugins/inspect/plugin-audioparsers.xml
@@ -3,7 +3,7 @@
<description>Parsers for various audio formats</description>
<filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename>
<basename>libgstaudioparsers.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml
index 494cd516..9deb95b0 100644
--- a/docs/plugins/inspect/plugin-auparse.xml
+++ b/docs/plugins/inspect/plugin-auparse.xml
@@ -3,7 +3,7 @@
<description>parses au streams</description>
<filename>../../gst/auparse/.libs/libgstauparse.so</filename>
<basename>libgstauparse.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-autodetect.xml b/docs/plugins/inspect/plugin-autodetect.xml
index 8726455f..6d38314d 100644
--- a/docs/plugins/inspect/plugin-autodetect.xml
+++ b/docs/plugins/inspect/plugin-autodetect.xml
@@ -3,7 +3,7 @@
<description>Plugin contains auto-detection plugins for video/audio in- and outputs</description>
<filename>../../gst/autodetect/.libs/libgstautodetect.so</filename>
<basename>libgstautodetect.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-avi.xml b/docs/plugins/inspect/plugin-avi.xml
index 256c6edb..5631a7a9 100644
--- a/docs/plugins/inspect/plugin-avi.xml
+++ b/docs/plugins/inspect/plugin-avi.xml
@@ -3,7 +3,7 @@
<description>AVI stream handling</description>
<filename>../../gst/avi/.libs/libgstavi.so</filename>
<basename>libgstavi.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index 2fa88f8c..92129137 100644
--- a/docs/plugins/inspect/plugin-cacasink.xml
+++ b/docs/plugins/inspect/plugin-cacasink.xml
@@ -3,7 +3,7 @@
<description>Colored ASCII Art video sink</description>
<filename>../../ext/libcaca/.libs/libgstcacasink.so</filename>
<basename>libgstcacasink.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml
index 9e002cc4..8324f44c 100644
--- a/docs/plugins/inspect/plugin-cairo.xml
+++ b/docs/plugins/inspect/plugin-cairo.xml
@@ -3,7 +3,7 @@
<description>Cairo-based elements</description>
<filename>../../ext/cairo/.libs/libgstcairo.so</filename>
<basename>libgstcairo.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml
index 56f917f0..650443f3 100644
--- a/docs/plugins/inspect/plugin-cutter.xml
+++ b/docs/plugins/inspect/plugin-cutter.xml
@@ -3,7 +3,7 @@
<description>Audio Cutter to split audio into non-silent bits</description>
<filename>../../gst/cutter/.libs/libgstcutter.so</filename>
<basename>libgstcutter.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml
index ad131529..52787a1f 100644
--- a/docs/plugins/inspect/plugin-debug.xml
+++ b/docs/plugins/inspect/plugin-debug.xml
@@ -3,7 +3,7 @@
<description>elements for testing and debugging</description>
<filename>../../gst/debugutils/.libs/libgstdebug.so</filename>
<basename>libgstdebug.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-deinterlace.xml b/docs/plugins/inspect/plugin-deinterlace.xml
index b34c87aa..f5e8f389 100644
--- a/docs/plugins/inspect/plugin-deinterlace.xml
+++ b/docs/plugins/inspect/plugin-deinterlace.xml
@@ -3,7 +3,7 @@
<description>Deinterlacer</description>
<filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename>
<basename>libgstdeinterlace.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml
index 3f06c5c6..9ad65b0f 100644
--- a/docs/plugins/inspect/plugin-dtmf.xml
+++ b/docs/plugins/inspect/plugin-dtmf.xml
@@ -3,7 +3,7 @@
<description>DTMF plugins</description>
<filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
<basename>libgstdtmf.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml
index 1e786108..cdd9d7bc 100644
--- a/docs/plugins/inspect/plugin-dv.xml
+++ b/docs/plugins/inspect/plugin-dv.xml
@@ -3,7 +3,7 @@
<description>DV demuxer and decoder based on libdv (libdv.sf.net)</description>
<filename>../../ext/dv/.libs/libgstdv.so</filename>
<basename>libgstdv.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-effectv.xml b/docs/plugins/inspect/plugin-effectv.xml
index 82bca32f..f5763a78 100644
--- a/docs/plugins/inspect/plugin-effectv.xml
+++ b/docs/plugins/inspect/plugin-effectv.xml
@@ -3,7 +3,7 @@
<description>effect plugins from the effectv project</description>
<filename>../../gst/effectv/.libs/libgsteffectv.so</filename>
<basename>libgsteffectv.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-equalizer.xml b/docs/plugins/inspect/plugin-equalizer.xml
index f246e648..1e7ade12 100644
--- a/docs/plugins/inspect/plugin-equalizer.xml
+++ b/docs/plugins/inspect/plugin-equalizer.xml
@@ -3,7 +3,7 @@
<description>GStreamer audio equalizers</description>
<filename>../../gst/equalizer/.libs/libgstequalizer.so</filename>
<basename>libgstequalizer.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flac.xml b/docs/plugins/inspect/plugin-flac.xml
index 05d4ddb2..c3afda2f 100644
--- a/docs/plugins/inspect/plugin-flac.xml
+++ b/docs/plugins/inspect/plugin-flac.xml
@@ -3,7 +3,7 @@
<description>The FLAC Lossless compressor Codec</description>
<filename>../../ext/flac/.libs/libgstflac.so</filename>
<basename>libgstflac.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml
index 4e6897c8..4870014a 100644
--- a/docs/plugins/inspect/plugin-flv.xml
+++ b/docs/plugins/inspect/plugin-flv.xml
@@ -3,7 +3,7 @@
<description>FLV muxing and demuxing plugin</description>
<filename>../../gst/flv/.libs/libgstflv.so</filename>
<basename>libgstflv.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml
index ff1b889d..6ed063f4 100644
--- a/docs/plugins/inspect/plugin-flxdec.xml
+++ b/docs/plugins/inspect/plugin-flxdec.xml
@@ -3,7 +3,7 @@
<description>FLC/FLI/FLX video decoder</description>
<filename>../../gst/flx/.libs/libgstflxdec.so</filename>
<basename>libgstflxdec.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gdkpixbuf.xml b/docs/plugins/inspect/plugin-gdkpixbuf.xml
index 810ea51b..65e09395 100644
--- a/docs/plugins/inspect/plugin-gdkpixbuf.xml
+++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml
@@ -3,7 +3,7 @@
<description>GdkPixbuf-based image decoder, overlay and sink</description>
<filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename>
<basename>libgstgdkpixbuf.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml
index 9c70fb51..d8c9c922 100644
--- a/docs/plugins/inspect/plugin-goom.xml
+++ b/docs/plugins/inspect/plugin-goom.xml
@@ -3,7 +3,7 @@
<description>GOOM visualization filter</description>
<filename>../../gst/goom/.libs/libgstgoom.so</filename>
<basename>libgstgoom.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom2k1.xml b/docs/plugins/inspect/plugin-goom2k1.xml
index fa93447a..a7b103d3 100644
--- a/docs/plugins/inspect/plugin-goom2k1.xml
+++ b/docs/plugins/inspect/plugin-goom2k1.xml
@@ -3,7 +3,7 @@
<description>GOOM 2k1 visualization filter</description>
<filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename>
<basename>libgstgoom2k1.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml
index 6c6e45c3..9d6b636d 100644
--- a/docs/plugins/inspect/plugin-icydemux.xml
+++ b/docs/plugins/inspect/plugin-icydemux.xml
@@ -3,7 +3,7 @@
<description>Demux ICY tags from a stream</description>
<filename>../../gst/icydemux/.libs/libgsticydemux.so</filename>
<basename>libgsticydemux.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-id3demux.xml b/docs/plugins/inspect/plugin-id3demux.xml
index 867e565b..04b72bba 100644
--- a/docs/plugins/inspect/plugin-id3demux.xml
+++ b/docs/plugins/inspect/plugin-id3demux.xml
@@ -3,7 +3,7 @@
<description>Demux ID3v1 and ID3v2 tags from a file</description>
<filename>../../gst/id3demux/.libs/libgstid3demux.so</filename>
<basename>libgstid3demux.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-imagefreeze.xml b/docs/plugins/inspect/plugin-imagefreeze.xml
index 20738710..56695f93 100644
--- a/docs/plugins/inspect/plugin-imagefreeze.xml
+++ b/docs/plugins/inspect/plugin-imagefreeze.xml
@@ -3,7 +3,7 @@
<description>Still frame stream generator</description>
<filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename>
<basename>libgstimagefreeze.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-interleave.xml b/docs/plugins/inspect/plugin-interleave.xml
index 4783392b..c69bf591 100644
--- a/docs/plugins/inspect/plugin-interleave.xml
+++ b/docs/plugins/inspect/plugin-interleave.xml
@@ -3,7 +3,7 @@
<description>Audio interleaver/deinterleaver</description>
<filename>../../gst/interleave/.libs/libgstinterleave.so</filename>
<basename>libgstinterleave.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-isomp4.xml b/docs/plugins/inspect/plugin-isomp4.xml
index 8e66b290..14fe3892 100644
--- a/docs/plugins/inspect/plugin-isomp4.xml
+++ b/docs/plugins/inspect/plugin-isomp4.xml
@@ -3,7 +3,7 @@
<description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description>
<filename>../../gst/isomp4/.libs/libgstisomp4.so</filename>
<basename>libgstisomp4.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index 8e86b92f..7a4159a4 100644
--- a/docs/plugins/inspect/plugin-jack.xml
+++ b/docs/plugins/inspect/plugin-jack.xml
@@ -3,7 +3,7 @@
<description>JACK audio elements</description>
<filename>../../ext/jack/.libs/libgstjack.so</filename>
<basename>libgstjack.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jpeg.xml b/docs/plugins/inspect/plugin-jpeg.xml
index 0f6ff066..6dabe536 100644
--- a/docs/plugins/inspect/plugin-jpeg.xml
+++ b/docs/plugins/inspect/plugin-jpeg.xml
@@ -3,7 +3,7 @@
<description>JPeg plugin library</description>
<filename>../../ext/jpeg/.libs/libgstjpeg.so</filename>
<basename>libgstjpeg.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index 915f085e..67e96b64 100644
--- a/docs/plugins/inspect/plugin-level.xml
+++ b/docs/plugins/inspect/plugin-level.xml
@@ -3,7 +3,7 @@
<description>Audio level plugin</description>
<filename>../../gst/level/.libs/libgstlevel.so</filename>
<basename>libgstlevel.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-matroska.xml b/docs/plugins/inspect/plugin-matroska.xml
index d69d7542..e02f9f2d 100644
--- a/docs/plugins/inspect/plugin-matroska.xml
+++ b/docs/plugins/inspect/plugin-matroska.xml
@@ -3,7 +3,7 @@
<description>Matroska and WebM stream handling</description>
<filename>../../gst/matroska/.libs/libgstmatroska.so</filename>
<basename>libgstmatroska.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index 39275963..fa26bbf9 100644
--- a/docs/plugins/inspect/plugin-mulaw.xml
+++ b/docs/plugins/inspect/plugin-mulaw.xml
@@ -3,7 +3,7 @@
<description>MuLaw audio conversion routines</description>
<filename>../../gst/law/.libs/libgstmulaw.so</filename>
<basename>libgstmulaw.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml
index 6cdb4a00..f2e6652a 100644
--- a/docs/plugins/inspect/plugin-multifile.xml
+++ b/docs/plugins/inspect/plugin-multifile.xml
@@ -3,7 +3,7 @@
<description>Reads/Writes buffers from/to sequentially named files</description>
<filename>../../gst/multifile/.libs/libgstmultifile.so</filename>
<basename>libgstmultifile.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multipart.xml b/docs/plugins/inspect/plugin-multipart.xml
index 5459dbcf..0f690bf2 100644
--- a/docs/plugins/inspect/plugin-multipart.xml
+++ b/docs/plugins/inspect/plugin-multipart.xml
@@ -3,7 +3,7 @@
<description>multipart stream manipulation</description>
<filename>../../gst/multipart/.libs/libgstmultipart.so</filename>
<basename>libgstmultipart.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-navigationtest.xml b/docs/plugins/inspect/plugin-navigationtest.xml
index 7db1291f..a0c87863 100644
--- a/docs/plugins/inspect/plugin-navigationtest.xml
+++ b/docs/plugins/inspect/plugin-navigationtest.xml
@@ -3,7 +3,7 @@
<description>Template for a video filter</description>
<filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename>
<basename>libgstnavigationtest.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-oss4.xml b/docs/plugins/inspect/plugin-oss4.xml
index cbd7f11f..721ae970 100644
--- a/docs/plugins/inspect/plugin-oss4.xml
+++ b/docs/plugins/inspect/plugin-oss4.xml
@@ -3,7 +3,7 @@
<description>Open Sound System (OSS) version 4 support for GStreamer</description>
<filename>../../sys/oss4/.libs/libgstoss4audio.so</filename>
<basename>libgstoss4audio.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ossaudio.xml b/docs/plugins/inspect/plugin-ossaudio.xml
index 7b09401e..39615425 100644
--- a/docs/plugins/inspect/plugin-ossaudio.xml
+++ b/docs/plugins/inspect/plugin-ossaudio.xml
@@ -3,7 +3,7 @@
<description>OSS (Open Sound System) support for GStreamer</description>
<filename>../../sys/oss/.libs/libgstossaudio.so</filename>
<basename>libgstossaudio.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-png.xml b/docs/plugins/inspect/plugin-png.xml
index 70b3fbd6..5682fe86 100644
--- a/docs/plugins/inspect/plugin-png.xml
+++ b/docs/plugins/inspect/plugin-png.xml
@@ -3,7 +3,7 @@
<description>PNG plugin library</description>
<filename>../../ext/libpng/.libs/libgstpng.so</filename>
<basename>libgstpng.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pulseaudio.xml b/docs/plugins/inspect/plugin-pulseaudio.xml
index fa1933ac..39d71e0e 100644
--- a/docs/plugins/inspect/plugin-pulseaudio.xml
+++ b/docs/plugins/inspect/plugin-pulseaudio.xml
@@ -3,7 +3,7 @@
<description>PulseAudio plugin library</description>
<filename>../../ext/pulse/.libs/libgstpulse.so</filename>
<basename>libgstpulse.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml
index 968f1247..8520fe5b 100644
--- a/docs/plugins/inspect/plugin-replaygain.xml
+++ b/docs/plugins/inspect/plugin-replaygain.xml
@@ -3,7 +3,7 @@
<description>ReplayGain volume normalization</description>
<filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename>
<basename>libgstreplaygain.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtp.xml b/docs/plugins/inspect/plugin-rtp.xml
index cdbda492..449b7c6c 100644
--- a/docs/plugins/inspect/plugin-rtp.xml
+++ b/docs/plugins/inspect/plugin-rtp.xml
@@ -3,7 +3,7 @@
<description>Real-time protocol plugins</description>
<filename>../../gst/rtp/.libs/libgstrtp.so</filename>
<basename>libgstrtp.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
@@ -73,6 +73,48 @@
</pads>
</element>
<element>
+ <name>rtpL24depay</name>
+ <longname>RTP audio depayloader</longname>
+ <class>Codec/Depayloader/Network/RTP</class>
+ <description>Extracts raw 24-bit audio from RTP packets</description>
+ <author>Zeeshan Ali &lt;zak147@yahoo.com&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;,David Holroyd &lt;dave@badgers-in-foil.co.uk&gt;</author>
+ <pads>
+ <caps>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L24</details>
+ </caps>
+ <caps>
+ <name>src</name>
+ <direction>source</direction>
+ <presence>always</presence>
+ <details>audio/x-raw, format=(string)S24BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
+ </caps>
+ </pads>
+ </element>
+ <element>
+ <name>rtpL24pay</name>
+ <longname>RTP audio payloader</longname>
+ <class>Codec/Payloader/Network/RTP</class>
+ <description>Payload-encode Raw 24-bit audio into RTP packets (RFC 3190)</description>
+ <author>Wim Taymans &lt;wim.taymans@gmail.com&gt;,David Holroyd &lt;dave@badgers-in-foil.co.uk&gt;</author>
+ <pads>
+ <caps>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <details>audio/x-raw, format=(string)S24BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
+ </caps>
+ <caps>
+ <name>src</name>
+ <direction>source</direction>
+ <presence>always</presence>
+ <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L24, channels=(int)[ 1, 2147483647 ]</details>
+ </caps>
+ </pads>
+ </element>
+ <element>
<name>rtpac3depay</name>
<longname>RTP AC3 depayloader</longname>
<class>Codec/Depayloader/Network/RTP</class>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index 95f92d1d..e1887ed6 100644
--- a/docs/plugins/inspect/plugin-rtpmanager.xml
+++ b/docs/plugins/inspect/plugin-rtpmanager.xml
@@ -3,7 +3,7 @@
<description>RTP session management plugin library</description>
<filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename>
<basename>libgstrtpmanager.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml
index cfc5a54c..93a9d4a1 100644
--- a/docs/plugins/inspect/plugin-rtsp.xml
+++ b/docs/plugins/inspect/plugin-rtsp.xml
@@ -3,7 +3,7 @@
<description>transfer data via RTSP</description>
<filename>../../gst/rtsp/.libs/libgstrtsp.so</filename>
<basename>libgstrtsp.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shapewipe.xml b/docs/plugins/inspect/plugin-shapewipe.xml
index 41134b51..b0f08894 100644
--- a/docs/plugins/inspect/plugin-shapewipe.xml
+++ b/docs/plugins/inspect/plugin-shapewipe.xml
@@ -3,7 +3,7 @@
<description>Shape Wipe transition filter</description>
<filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename>
<basename>libgstshapewipe.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shout2send.xml b/docs/plugins/inspect/plugin-shout2send.xml
index 38152cbe..15758490 100644
--- a/docs/plugins/inspect/plugin-shout2send.xml
+++ b/docs/plugins/inspect/plugin-shout2send.xml
@@ -3,7 +3,7 @@
<description>Sends data to an icecast server using libshout2</description>
<filename>../../ext/shout2/.libs/libgstshout2.so</filename>
<basename>libgstshout2.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>libshout2</package>
diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml
index 56384246..e33367d2 100644
--- a/docs/plugins/inspect/plugin-smpte.xml
+++ b/docs/plugins/inspect/plugin-smpte.xml
@@ -3,7 +3,7 @@
<description>Apply the standard SMPTE transitions on video images</description>
<filename>../../gst/smpte/.libs/libgstsmpte.so</filename>
<basename>libgstsmpte.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-soup.xml b/docs/plugins/inspect/plugin-soup.xml
index 6dee4494..e0aba161 100644
--- a/docs/plugins/inspect/plugin-soup.xml
+++ b/docs/plugins/inspect/plugin-soup.xml
@@ -3,7 +3,7 @@
<description>libsoup HTTP client src/sink</description>
<filename>../../ext/soup/.libs/libgstsouphttpsrc.so</filename>
<basename>libgstsouphttpsrc.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-spectrum.xml b/docs/plugins/inspect/plugin-spectrum.xml
index 2aa7bf97..6ba2f855 100644
--- a/docs/plugins/inspect/plugin-spectrum.xml
+++ b/docs/plugins/inspect/plugin-spectrum.xml
@@ -3,7 +3,7 @@
<description>Run an FFT on the audio signal, output spectrum data</description>
<filename>../../gst/spectrum/.libs/libgstspectrum.so</filename>
<basename>libgstspectrum.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-speex.xml b/docs/plugins/inspect/plugin-speex.xml
index bcc9763a..2fd898a7 100644
--- a/docs/plugins/inspect/plugin-speex.xml
+++ b/docs/plugins/inspect/plugin-speex.xml
@@ -3,7 +3,7 @@
<description>Speex plugin library</description>
<filename>../../ext/speex/.libs/libgstspeex.so</filename>
<basename>libgstspeex.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-taglib.xml b/docs/plugins/inspect/plugin-taglib.xml
index b567cfe1..9a006484 100644
--- a/docs/plugins/inspect/plugin-taglib.xml
+++ b/docs/plugins/inspect/plugin-taglib.xml
@@ -3,7 +3,7 @@
<description>Tag writing plug-in based on taglib</description>
<filename>../../ext/taglib/.libs/libgsttaglib.so</filename>
<basename>libgsttaglib.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml
index 1b7d01fc..027d41e0 100644
--- a/docs/plugins/inspect/plugin-udp.xml
+++ b/docs/plugins/inspect/plugin-udp.xml
@@ -3,7 +3,7 @@
<description>transfer data via UDP</description>
<filename>../../gst/udp/.libs/libgstudp.so</filename>
<basename>libgstudp.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-video4linux2.xml b/docs/plugins/inspect/plugin-video4linux2.xml
index 3207d758..da99191c 100644
--- a/docs/plugins/inspect/plugin-video4linux2.xml
+++ b/docs/plugins/inspect/plugin-video4linux2.xml
@@ -3,7 +3,7 @@
<description>elements for Video 4 Linux</description>
<filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename>
<basename>libgstvideo4linux2.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index b127c1ce..07be7d64 100644
--- a/docs/plugins/inspect/plugin-videobox.xml
+++ b/docs/plugins/inspect/plugin-videobox.xml
@@ -3,7 +3,7 @@
<description>resizes a video by adding borders or cropping</description>
<filename>../../gst/videobox/.libs/libgstvideobox.so</filename>
<basename>libgstvideobox.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videocrop.xml b/docs/plugins/inspect/plugin-videocrop.xml
index a811e0ee..a900246e 100644
--- a/docs/plugins/inspect/plugin-videocrop.xml
+++ b/docs/plugins/inspect/plugin-videocrop.xml
@@ -3,7 +3,7 @@
<description>Crops video into a user-defined region</description>
<filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename>
<basename>libgstvideocrop.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml
index fc7f5deb..57a4101e 100644
--- a/docs/plugins/inspect/plugin-videofilter.xml
+++ b/docs/plugins/inspect/plugin-videofilter.xml
@@ -3,7 +3,7 @@
<description>Video filters plugin</description>
<filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename>
<basename>libgstvideofilter.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml
index ea86baeb..d132928f 100644
--- a/docs/plugins/inspect/plugin-videomixer.xml
+++ b/docs/plugins/inspect/plugin-videomixer.xml
@@ -3,7 +3,7 @@
<description>Video mixer</description>
<filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename>
<basename>libgstvideomixer.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vpx.xml b/docs/plugins/inspect/plugin-vpx.xml
index c8aff025..10b49eea 100644
--- a/docs/plugins/inspect/plugin-vpx.xml
+++ b/docs/plugins/inspect/plugin-vpx.xml
@@ -3,7 +3,7 @@
<description>VP8 plugin</description>
<filename>../../ext/vpx/.libs/libgstvpx.so</filename>
<basename>libgstvpx.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavenc.xml b/docs/plugins/inspect/plugin-wavenc.xml
index 7bea8648..08d9bfc4 100644
--- a/docs/plugins/inspect/plugin-wavenc.xml
+++ b/docs/plugins/inspect/plugin-wavenc.xml
@@ -3,7 +3,7 @@
<description>Encode raw audio into WAV</description>
<filename>../../gst/wavenc/.libs/libgstwavenc.so</filename>
<basename>libgstwavenc.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml
index 0f85cc09..f866910b 100644
--- a/docs/plugins/inspect/plugin-wavpack.xml
+++ b/docs/plugins/inspect/plugin-wavpack.xml
@@ -3,7 +3,7 @@
<description>Wavpack lossless/lossy audio format handling</description>
<filename>../../ext/wavpack/.libs/libgstwavpack.so</filename>
<basename>libgstwavpack.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavparse.xml b/docs/plugins/inspect/plugin-wavparse.xml
index d54ed5d3..45d5519a 100644
--- a/docs/plugins/inspect/plugin-wavparse.xml
+++ b/docs/plugins/inspect/plugin-wavparse.xml
@@ -3,7 +3,7 @@
<description>Parse a .wav file into raw audio</description>
<filename>../../gst/wavparse/.libs/libgstwavparse.so</filename>
<basename>libgstwavparse.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml
index 840e25ce..b43ea0e4 100644
--- a/docs/plugins/inspect/plugin-ximagesrc.xml
+++ b/docs/plugins/inspect/plugin-ximagesrc.xml
@@ -3,7 +3,7 @@
<description>X11 video input plugin using standard Xlib calls</description>
<filename>../../sys/ximage/.libs/libgstximagesrc.so</filename>
<basename>libgstximagesrc.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-y4menc.xml b/docs/plugins/inspect/plugin-y4menc.xml
index b8ef3074..1f494c83 100644
--- a/docs/plugins/inspect/plugin-y4menc.xml
+++ b/docs/plugins/inspect/plugin-y4menc.xml
@@ -3,7 +3,7 @@
<description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description>
<filename>../../gst/y4m/.libs/libgsty4menc.so</filename>
<basename>libgsty4menc.so</basename>
- <version>1.1.4</version>
+ <version>1.1.90</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index c6565ebc..18c5abd8 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in
index 6fe7df52..9940f2b2 100644
--- a/ext/aalib/Makefile.in
+++ b/ext/aalib/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in
index 908f4a60..7c3ac325 100644
--- a/ext/cairo/Makefile.in
+++ b/ext/cairo/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in
index 60c4bd1d..4773b9de 100644
--- a/ext/dv/Makefile.in
+++ b/ext/dv/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in
index f90533f7..c88dbdfc 100644
--- a/ext/flac/Makefile.in
+++ b/ext/flac/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in
index 011bfe9b..9299f541 100644
--- a/ext/gdk_pixbuf/Makefile.in
+++ b/ext/gdk_pixbuf/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in
index 53de5048..8ee04e20 100644
--- a/ext/jack/Makefile.in
+++ b/ext/jack/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in
index 6f7cef95..a6b48602 100644
--- a/ext/jpeg/Makefile.in
+++ b/ext/jpeg/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in
index f98e2bd4..b3dbc7e5 100644
--- a/ext/libcaca/Makefile.in
+++ b/ext/libcaca/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in
index 8ef5aead..41a2a62b 100644
--- a/ext/libpng/Makefile.in
+++ b/ext/libpng/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in
index 523992d7..449ebe4c 100644
--- a/ext/pulse/Makefile.in
+++ b/ext/pulse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in
index 832d06ad..41e3ae00 100644
--- a/ext/raw1394/Makefile.in
+++ b/ext/raw1394/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in
index ee93d203..d8129866 100644
--- a/ext/shout2/Makefile.in
+++ b/ext/shout2/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c
index ee6a6bac..cc58453a 100644
--- a/ext/shout2/gstshout2.c
+++ b/ext/shout2/gstshout2.c
@@ -799,7 +799,6 @@ static gboolean
plugin_init (GstPlugin * plugin)
{
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in
index 67db39ec..091b908e 100644
--- a/ext/soup/Makefile.in
+++ b/ext/soup/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 6c7f837b..aa2d0ad3 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -1384,17 +1384,16 @@ gst_soup_http_src_get_size (GstBaseSrc * bsrc, guint64 * size)
return FALSE;
}
-static gboolean
-gst_soup_http_src_is_seekable (GstBaseSrc * bsrc)
+static void
+gst_soup_http_src_check_seekable (GstSoupHTTPSrc * src)
{
- GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc);
GstFlowReturn ret = GST_FLOW_OK;
/* Special case to check if the server allows range requests
* before really starting to get data in the buffer creation
* loops.
*/
- if (!src->got_headers && GST_STATE (src) != GST_STATE_NULL) {
+ if (!src->got_headers && GST_STATE (src) >= GST_STATE_PAUSED) {
g_mutex_lock (&src->mutex);
while (!src->got_headers && !src->interrupted && ret == GST_FLOW_OK) {
if ((src->msg && src->msg->method != SOUP_METHOD_HEAD) &&
@@ -1416,6 +1415,15 @@ gst_soup_http_src_is_seekable (GstBaseSrc * bsrc)
g_mutex_unlock (&src->mutex);
}
+}
+
+static gboolean
+gst_soup_http_src_is_seekable (GstBaseSrc * bsrc)
+{
+ GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc);
+
+ gst_soup_http_src_check_seekable (src);
+
return src->seekable;
}
@@ -1434,7 +1442,11 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
return TRUE;
}
- if (!src->seekable) {
+ gst_soup_http_src_check_seekable (src);
+
+ /* If we have no headers we don't know yet if it is seekable or not.
+ * Store the start position and error out later if it isn't */
+ if (src->got_headers && !src->seekable) {
GST_WARNING_OBJECT (src, "Not seekable");
return FALSE;
}
diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in
index eff2f3a2..1b110f69 100644
--- a/ext/speex/Makefile.in
+++ b/ext/speex/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in
index 03d049e6..611758e2 100644
--- a/ext/taglib/Makefile.in
+++ b/ext/taglib/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in
index 74620dcb..092c3b38 100644
--- a/ext/vpx/Makefile.in
+++ b/ext/vpx/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in
index 1a8bb0e0..48855c32 100644
--- a/ext/wavpack/Makefile.in
+++ b/ext/wavpack/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index a31403e9..41693c70 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -34,6 +34,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
<release>
<Version>
+ <revision>1.1.90</revision>
+ <branch>1.1</branch>
+ <name></name>
+ <created>2013-09-19</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.1.90.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.1.4</revision>
<branch>1.1</branch>
<name></name>
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index 6f4b5293..c1ecd730 100644
--- a/gst-plugins-good.spec
+++ b/gst-plugins-good.spec
@@ -4,7 +4,7 @@
%define gst_minver 0.11.0
Name: %{gstreamer}-plugins-good
-Version: 1.1.4
+Version: 1.1.90
Release: 1.gst
Summary: GStreamer plug-ins with good code and licensing
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 4dae37de..3f665173 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in
index 9fc11629..e9fa3282 100644
--- a/gst/alpha/Makefile.in
+++ b/gst/alpha/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in
index 47882dba..91428342 100644
--- a/gst/apetag/Makefile.in
+++ b/gst/apetag/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in
index 65ce555e..03f6d323 100644
--- a/gst/audiofx/Makefile.in
+++ b/gst/audiofx/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c
index 438cc404..dc871464 100644
--- a/gst/audiofx/audiopanoramaorc-dist.c
+++ b/gst/audiofx/audiopanoramaorc-dist.c
@@ -264,7 +264,7 @@ audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2,
195, 0, 4, 4, 2, 0,
};
@@ -390,7 +390,7 @@ audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4,
194, 0, 4, 4, 2, 0,
};
@@ -502,7 +502,7 @@ audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4,
21, 1, 79, 0, 4, 2, 0,
};
@@ -614,7 +614,7 @@ audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8,
21, 1, 112, 0, 4, 2, 0,
};
@@ -842,7 +842,7 @@ audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17,
4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202,
34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@@ -1053,7 +1053,7 @@ audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17,
4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194,
0, 32, 33, 2, 0,
@@ -1355,7 +1355,7 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20,
4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34,
@@ -1675,7 +1675,7 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4,
4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4,
21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32,
@@ -1945,7 +1945,7 @@ audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192,
32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34,
@@ -2205,7 +2205,7 @@ audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8,
8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32,
4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32,
@@ -2433,7 +2433,7 @@ audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4,
211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@@ -2655,7 +2655,7 @@ audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211,
34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21,
@@ -2909,7 +2909,7 @@ audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153,
32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34,
@@ -3168,7 +3168,7 @@ audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
- 49,
+ 49,
54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32,
4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24,
@@ -3355,7 +3355,7 @@ audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33,
4, 24, 194, 0, 32, 33, 2, 0,
@@ -3529,7 +3529,7 @@ audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33,
4, 194, 0, 32, 33, 2, 0,
@@ -3725,7 +3725,7 @@ audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33,
4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0,
@@ -3923,7 +3923,7 @@ audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
- 51,
+ 51,
50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4,
202, 32, 32, 24, 194, 0, 32, 33, 2, 0,
diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in
index 58fa8d48..cad919b4 100644
--- a/gst/audioparsers/Makefile.in
+++ b/gst/audioparsers/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c
index ddc686e3..87569421 100644
--- a/gst/audioparsers/gstflacparse.c
+++ b/gst/audioparsers/gstflacparse.c
@@ -1129,6 +1129,9 @@ gst_flac_parse_handle_picture (GstFlacParse * flacparse, GstBuffer * buffer)
if (!gst_byte_reader_get_uint32_be (&reader, &img_len))
goto error;
+ if (gst_byte_reader_get_pos (&reader) + img_len > map.size)
+ goto error;
+
if (!flacparse->tags)
flacparse->tags = gst_tag_list_new_empty ();
@@ -1225,7 +1228,7 @@ _value_array_append_buffer (GValue * array_val, GstBuffer * buf)
g_value_unset (&value);
}
-static gboolean
+static GstFlowReturn
gst_flac_parse_handle_headers (GstFlacParse * flacparse)
{
GstBuffer *vorbiscomment = NULL;
@@ -1234,7 +1237,7 @@ gst_flac_parse_handle_headers (GstFlacParse * flacparse)
GValue array = { 0, };
GstCaps *caps;
GList *l;
- gboolean res = TRUE;
+ GstFlowReturn res = GST_FLOW_OK;
caps = gst_caps_new_simple ("audio/x-flac",
"channels", G_TYPE_INT, flacparse->channels,
@@ -1336,7 +1339,6 @@ push_headers:
* negotiated caps will change to caps that include the streamheader field */
while (flacparse->headers) {
GstBuffer *buf = GST_BUFFER (flacparse->headers->data);
- GstFlowReturn ret;
GstBaseParseFrame frame;
flacparse->headers =
@@ -1347,12 +1349,10 @@ push_headers:
gst_base_parse_frame_init (&frame);
frame.buffer = buf;
frame.overhead = -1;
- ret = gst_base_parse_push_frame (GST_BASE_PARSE (flacparse), &frame);
- if (ret != GST_FLOW_OK) {
- res = FALSE;
- break;
- }
+ res = gst_base_parse_push_frame (GST_BASE_PARSE (flacparse), &frame);
gst_base_parse_frame_free (&frame);
+ if (res != GST_FLOW_OK)
+ break;
}
g_list_foreach (flacparse->headers, (GFunc) gst_mini_object_unref, NULL);
g_list_free (flacparse->headers);
@@ -1579,13 +1579,15 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
}
if (is_last) {
- if (!gst_flac_parse_handle_headers (flacparse))
- goto cleanup;
+ res = gst_flac_parse_handle_headers (flacparse);
/* Minimal size of a frame header */
gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), MAX (9,
flacparse->min_framesize));
flacparse->state = GST_FLAC_PARSE_STATE_DATA;
+
+ if (res != GST_FLOW_OK)
+ goto cleanup;
}
/* DROPPED because we pushed already or will push all headers manually */
@@ -1618,18 +1620,18 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
GST_WARNING_OBJECT (flacparse,
"Generating headers for variable blocksize streams not supported");
- if (!gst_flac_parse_handle_headers (flacparse))
- goto cleanup;
+ res = gst_flac_parse_handle_headers (flacparse);
} else {
GST_DEBUG_OBJECT (flacparse, "Generating headers");
if (!gst_flac_parse_generate_headers (flacparse))
goto cleanup;
- if (!gst_flac_parse_handle_headers (flacparse))
- goto cleanup;
+ res = gst_flac_parse_handle_headers (flacparse);
}
flacparse->state = GST_FLAC_PARSE_STATE_DATA;
+ if (res != GST_FLOW_OK)
+ goto cleanup;
}
/* also cater for oggmux metadata */
diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in
index 3a4c8c76..e1f12f33 100644
--- a/gst/auparse/Makefile.in
+++ b/gst/auparse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in
index 6a7f200d..d54000bf 100644
--- a/gst/autodetect/Makefile.in
+++ b/gst/autodetect/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c
index 340e9a23..09306b49 100644
--- a/gst/autodetect/gstautoaudiosink.c
+++ b/gst/autodetect/gstautoaudiosink.c
@@ -45,6 +45,7 @@
#include "gstautodetect.h"
#define DEFAULT_TS_OFFSET 0
+#define DEFAULT_SYNC TRUE
/* Properties */
enum
@@ -52,6 +53,7 @@ enum
PROP_0,
PROP_CAPS,
PROP_TS_OFFSET,
+ PROP_SYNC,
};
static GstStateChangeReturn
@@ -108,6 +110,11 @@ gst_auto_audio_sink_class_init (GstAutoAudioSinkClass * klass)
"Timestamp offset in nanoseconds", G_MININT64, G_MAXINT64,
DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_SYNC,
+ g_param_spec_boolean ("sync", "Sync",
+ "Sync on the clock", DEFAULT_SYNC,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
gst_element_class_add_pad_template (eklass,
gst_static_pad_template_get (&sink_template));
@@ -175,6 +182,7 @@ gst_auto_audio_sink_init (GstAutoAudioSink * sink)
/* set the default raw audio caps */
sink->filter_caps = gst_static_caps_get (&raw_caps);
sink->ts_offset = DEFAULT_TS_OFFSET;
+ sink->sync = DEFAULT_SYNC;
/* mark as sink */
GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_FLAG_SINK);
@@ -336,6 +344,7 @@ gst_auto_audio_sink_detect (GstAutoAudioSink * sink)
goto no_sink;
g_object_set (G_OBJECT (esink), "ts-offset", sink->ts_offset, NULL);
+ g_object_set (G_OBJECT (esink), "sync", sink->sync, NULL);
sink->kid = esink;
/* Ensure the child is brought up to the right state to match the parent
@@ -421,6 +430,11 @@ gst_auto_audio_sink_set_property (GObject * object, guint prop_id,
if (sink->kid)
g_object_set_property (G_OBJECT (sink->kid), pspec->name, value);
break;
+ case PROP_SYNC:
+ sink->sync = g_value_get_boolean (value);
+ if (sink->kid)
+ g_object_set_property (G_OBJECT (sink->kid), pspec->name, value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -441,6 +455,9 @@ gst_auto_audio_sink_get_property (GObject * object, guint prop_id,
case PROP_TS_OFFSET:
g_value_set_int64 (value, sink->ts_offset);
break;
+ case PROP_SYNC:
+ g_value_set_boolean (value, sink->sync);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
diff --git a/gst/autodetect/gstautoaudiosink.h b/gst/autodetect/gstautoaudiosink.h
index 3435a9b3..6a049aee 100644
--- a/gst/autodetect/gstautoaudiosink.h
+++ b/gst/autodetect/gstautoaudiosink.h
@@ -45,6 +45,7 @@ typedef struct _GstAutoAudioSink {
GstElement *kid;
GstCaps *filter_caps;
GstClockTimeDiff ts_offset;
+ gboolean sync;
} GstAutoAudioSink;
typedef struct _GstAutoAudioSinkClass {
diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c
index f598986f..7456095e 100644
--- a/gst/autodetect/gstautovideosink.c
+++ b/gst/autodetect/gstautovideosink.c
@@ -45,6 +45,7 @@
#include "gstautodetect.h"
#define DEFAULT_TS_OFFSET 0
+#define DEFAULT_SYNC TRUE
/* Properties */
enum
@@ -52,6 +53,7 @@ enum
PROP_0,
PROP_CAPS,
PROP_TS_OFFSET,
+ PROP_SYNC,
};
static GstStateChangeReturn
@@ -106,6 +108,11 @@ gst_auto_video_sink_class_init (GstAutoVideoSinkClass * klass)
"Timestamp offset in nanoseconds", G_MININT64, G_MAXINT64,
DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_SYNC,
+ g_param_spec_boolean ("sync", "Sync",
+ "Sync on the clock", DEFAULT_SYNC,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
gst_element_class_add_pad_template (eklass,
gst_static_pad_template_get (&sink_template));
gst_element_class_set_static_metadata (eklass, "Auto video sink",
@@ -174,6 +181,7 @@ gst_auto_video_sink_init (GstAutoVideoSink * sink)
/* set the default raw video caps */
sink->filter_caps = gst_static_caps_get (&raw_caps);
sink->ts_offset = DEFAULT_TS_OFFSET;
+ sink->sync = DEFAULT_SYNC;
/* mark as sink */
GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_FLAG_SINK);
@@ -332,6 +340,7 @@ gst_auto_video_sink_detect (GstAutoVideoSink * sink)
goto no_sink;
g_object_set (G_OBJECT (esink), "ts-offset", sink->ts_offset, NULL);
+ g_object_set (G_OBJECT (esink), "sync", sink->sync, NULL);
sink->kid = esink;
gst_bin_add (GST_BIN (sink), esink);
@@ -409,6 +418,11 @@ gst_auto_video_sink_set_property (GObject * object, guint prop_id,
if (sink->kid)
g_object_set_property (G_OBJECT (sink->kid), pspec->name, value);
break;
+ case PROP_SYNC:
+ sink->sync = g_value_get_boolean (value);
+ if (sink->kid)
+ g_object_set_property (G_OBJECT (sink->kid), pspec->name, value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -429,6 +443,9 @@ gst_auto_video_sink_get_property (GObject * object, guint prop_id,
case PROP_TS_OFFSET:
g_value_set_int64 (value, sink->ts_offset);
break;
+ case PROP_SYNC:
+ g_value_set_boolean (value, sink->sync);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
diff --git a/gst/autodetect/gstautovideosink.h b/gst/autodetect/gstautovideosink.h
index 1ed0bd3b..dcc1d989 100644
--- a/gst/autodetect/gstautovideosink.h
+++ b/gst/autodetect/gstautovideosink.h
@@ -45,6 +45,7 @@ typedef struct _GstAutoVideoSink {
GstElement *kid;
GstCaps *filter_caps;
GstClockTimeDiff ts_offset;
+ gboolean sync;
} GstAutoVideoSink;
typedef struct _GstAutoVideoSinkClass {
diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in
index 2e98e17a..4e975d99 100644
--- a/gst/avi/Makefile.in
+++ b/gst/avi/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/avi/gstavi.c b/gst/avi/gstavi.c
index e2569b06..b4cf0ad4 100644
--- a/gst/avi/gstavi.c
+++ b/gst/avi/gstavi.c
@@ -35,7 +35,6 @@ plugin_init (GstPlugin * plugin)
gst_riff_init ();
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index d4aa1d6f..a3a1b5dc 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -2596,10 +2596,11 @@ gst_avi_demux_index_for_time (GstAviDemux * avi,
} else {
index = avi_stream_convert_time_to_frames_unchecked (stream, time);
}
- } else {
+ } else if (stream->strh->type == GST_RIFF_FCC_auds) {
/* constant rate stream */
total = avi_stream_convert_time_to_bytes_unchecked (stream, time);
- }
+ } else
+ return -1;
if (index == -1) {
GstAviIndexEntry *entry;
@@ -2716,7 +2717,8 @@ gst_avi_demux_parse_index (GstAviDemux * avi, GstBuffer * buf)
if (stream->strh->type == GST_RIFF_FCC_auds) {
/* all audio frames are keyframes */
ENTRY_SET_KEYFRAME (&entry);
- } else if (stream->strf.vids->compression == GST_RIFF_DXSB) {
+ } else if (stream->strh->type == GST_RIFF_FCC_vids &&
+ stream->strf.vids->compression == GST_RIFF_DXSB) {
/* all xsub frames are keyframes */
ENTRY_SET_KEYFRAME (&entry);
} else {
@@ -4124,6 +4126,8 @@ gst_avi_demux_do_seek (GstAviDemux * avi, GstSegment * segment)
/* get the entry index for the requested position */
index = gst_avi_demux_index_for_time (avi, stream, seek_time);
GST_DEBUG_OBJECT (avi, "Got entry %u", index);
+ if (index == -1)
+ return FALSE;
/* check if we are already on a keyframe */
if (!ENTRY_IS_KEYFRAME (&stream->index[index])) {
@@ -4175,6 +4179,8 @@ gst_avi_demux_do_seek (GstAviDemux * avi, GstSegment * segment)
/* get the entry index for the requested position */
index = gst_avi_demux_index_for_time (avi, ostream, seek_time);
+ if (index == -1)
+ continue;
/* move to previous keyframe */
if (!ENTRY_IS_KEYFRAME (&ostream->index[index]))
@@ -4402,6 +4408,8 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event)
index = gst_avi_demux_index_for_time (avi, stream, cur);
GST_DEBUG_OBJECT (avi, "str %u: Found entry %u for %" GST_TIME_FORMAT,
str_num, index, GST_TIME_ARGS (cur));
+ if (index == -1)
+ return -1;
/* check if we are already on a keyframe */
if (!ENTRY_IS_KEYFRAME (&stream->index[index])) {
@@ -4452,6 +4460,8 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event)
idx = gst_avi_demux_index_for_time (avi, str, cur);
GST_DEBUG_OBJECT (avi, "str %u: Found entry %u for %" GST_TIME_FORMAT, n,
idx, GST_TIME_ARGS (cur));
+ if (idx == -1)
+ continue;
/* check if we are already on a keyframe */
if (!ENTRY_IS_KEYFRAME (&str->index[idx])) {
diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in
index 1307ab2f..f4aab63d 100644
--- a/gst/cutter/Makefile.in
+++ b/gst/cutter/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index 220cc6eb..f9f48baf 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in
index 9b317ea3..e9c7fa6f 100644
--- a/gst/deinterlace/Makefile.in
+++ b/gst/deinterlace/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c
index fab30906..aa4d66e4 100644
--- a/gst/deinterlace/tvtime-dist.c
+++ b/gst/deinterlace/tvtime-dist.c
@@ -713,7 +713,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
static const orc_uint8 bc[] = {
1, 9, 29, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 98, 108, 101, 110,
- 100,
+ 100,
11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 2, 0,
0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 5, 150, 34,
6, 70, 32, 32, 33, 70, 34, 34, 34, 70, 32, 32, 34, 70, 32, 32,
diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in
index db60506f..402b579f 100644
--- a/gst/dtmf/Makefile.in
+++ b/gst/dtmf/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in
index dd612de1..6373795e 100644
--- a/gst/effectv/Makefile.in
+++ b/gst/effectv/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in
index f4b86f56..e142b9ac 100644
--- a/gst/equalizer/Makefile.in
+++ b/gst/equalizer/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in
index 5482ef3d..93932235 100644
--- a/gst/flv/Makefile.in
+++ b/gst/flv/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in
index daf3486e..f9c63c74 100644
--- a/gst/flx/Makefile.in
+++ b/gst/flx/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in
index 9df0e963..28382ae8 100644
--- a/gst/goom/Makefile.in
+++ b/gst/goom/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in
index 338b082a..0b97ed27 100644
--- a/gst/goom2k1/Makefile.in
+++ b/gst/goom2k1/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in
index eced94ec..e2006df7 100644
--- a/gst/icydemux/Makefile.in
+++ b/gst/icydemux/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in
index d2300bde..dfa78125 100644
--- a/gst/id3demux/Makefile.in
+++ b/gst/id3demux/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in
index e2e87977..7a87716f 100644
--- a/gst/imagefreeze/Makefile.in
+++ b/gst/imagefreeze/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in
index d11069ce..d0115bf0 100644
--- a/gst/interleave/Makefile.in
+++ b/gst/interleave/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in
index b5775bf6..0025b175 100644
--- a/gst/isomp4/Makefile.in
+++ b/gst/isomp4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c
index 7b9af627..f6df24af 100644
--- a/gst/isomp4/atoms.c
+++ b/gst/isomp4/atoms.c
@@ -3320,7 +3320,8 @@ atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context,
ste = atom_trak_add_video_entry (trak, context, entry->fourcc);
trak->is_video = TRUE;
- trak->is_h264 = (entry->fourcc == FOURCC_avc1);
+ trak->is_h264 = (entry->fourcc == FOURCC_avc1
+ || entry->fourcc == FOURCC_avc3);
ste->version = entry->version;
ste->width = entry->width;
diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h
index bcb182e5..1769c7b4 100644
--- a/gst/isomp4/fourcc.h
+++ b/gst/isomp4/fourcc.h
@@ -143,6 +143,7 @@ G_BEGIN_DECLS
#define FOURCC_qtim GST_MAKE_FOURCC('q','t','i','m')
#define FOURCC_drms GST_MAKE_FOURCC('d','r','m','s')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_h263 GST_MAKE_FOURCC('h','2','6','3')
#define FOURCC_s263 GST_MAKE_FOURCC('s','2','6','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
diff --git a/gst/isomp4/ftypcc.h b/gst/isomp4/ftypcc.h
index b8b2c5e6..6da9a090 100644
--- a/gst/isomp4/ftypcc.h
+++ b/gst/isomp4/ftypcc.h
@@ -59,10 +59,10 @@ G_BEGIN_DECLS
#define FOURCC_3gr6 GST_MAKE_FOURCC('3','g','r','6')
#define FOURCC_3gg7 GST_MAKE_FOURCC('3','g','g','7')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_qt__ GST_MAKE_FOURCC('q','t',' ',' ')
#define FOURCC_isml GST_MAKE_FOURCC('i','s','m','l')
#define FOURCC_piff GST_MAKE_FOURCC('p','i','f','f')
G_END_DECLS
-
#endif /* __FTYP_CC_H__ */
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 6a9de523..710d0dad 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -188,7 +188,6 @@ enum
/* some spare for header size as well */
#define MDAT_LARGE_FILE_LIMIT ((guint64) 1024 * 1024 * 1024 * 2)
-#define MAX_TOLERATED_LATENESS (GST_SECOND / 10)
#define DEFAULT_MOVIE_TIMESCALE 1000
#define DEFAULT_TRAK_TIMESCALE 0
@@ -1892,8 +1891,7 @@ gst_qt_mux_stop_file (GstQTMux * qtmux)
guint32 lateness;
guint32 duration;
- if (GST_CLOCK_TIME_IS_VALID (qtpad->first_ts) &&
- qtpad->first_ts > first_ts + MAX_TOLERATED_LATENESS) {
+ if (GST_CLOCK_TIME_IS_VALID (qtpad->first_ts) && qtpad->first_ts > first_ts) {
GST_DEBUG_OBJECT (qtmux, "Pad %s is a late stream by %" GST_TIME_FORMAT,
GST_PAD_NAME (qtpad->collect.pad),
GST_TIME_ARGS (qtpad->first_ts - first_ts));
@@ -2130,6 +2128,33 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
last_buf = pad->last_buf;
+ /* if buffer has missing DTS, we take either segment start or previous buffer end time,
+ which ever is later */
+ if (buf && pad->have_dts && !GST_BUFFER_DTS_IS_VALID (buf)) {
+ GstClockTime last_buf_duration = last_buf
+ && GST_BUFFER_DURATION_IS_VALID (last_buf) ?
+ GST_BUFFER_DURATION (last_buf) : 0;
+
+ buf = gst_buffer_make_writable (buf);
+ GST_BUFFER_DTS (buf) =
+ gst_segment_to_running_time (&pad->collect.segment, GST_FORMAT_TIME,
+ pad->collect.segment.start);
+ if (GST_CLOCK_TIME_IS_VALID (pad->first_ts))
+ check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts);
+
+ if (last_buf
+ && (GST_BUFFER_DTS (last_buf) + last_buf_duration) >
+ GST_BUFFER_DTS (buf)) {
+ GST_BUFFER_DTS (buf) = GST_BUFFER_DTS (last_buf) + last_buf_duration;
+ }
+ }
+
+ if (last_buf && !buf && !GST_BUFFER_DURATION_IS_VALID (last_buf)) {
+ /* this is last buffer; there is no next buffer so we need valid number as duration */
+ last_buf = gst_buffer_make_writable (last_buf);
+ GST_BUFFER_DURATION (last_buf) = 0;
+ }
+
if (last_buf == NULL) {
#ifndef GST_DISABLE_GST_DEBUG
if (buf == NULL) {
@@ -2149,12 +2174,20 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
/* if this is the first buffer, store the timestamp */
if (G_UNLIKELY (pad->first_ts == GST_CLOCK_TIME_NONE) && last_buf) {
- if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (last_buf))) {
+ if (pad->have_dts) {
+ /* first pad always has DTS. If it was not provided by upstream it was set to segment start */
+ pad->first_ts = GST_BUFFER_DTS (last_buf);
+ } else if (GST_BUFFER_PTS_IS_VALID (last_buf)) {
pad->first_ts = GST_BUFFER_PTS (last_buf);
+ }
+
+ if (GST_CLOCK_TIME_IS_VALID (pad->first_ts)) {
GST_DEBUG ("setting first_ts to %" G_GUINT64_FORMAT, pad->first_ts);
+ last_buf = gst_buffer_make_writable (last_buf);
check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (last_buf), pad->first_ts);
check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (last_buf), pad->first_ts);
if (buf) {
+ buf = gst_buffer_make_writable (buf);
check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts);
check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (buf), pad->first_ts);
}
@@ -2229,10 +2262,7 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
if (pad->have_dts) {
gint64 scaled_dts;
if (pad->last_buf) {
- if (GST_BUFFER_DTS_IS_VALID (pad->last_buf))
- pad->last_dts = GST_BUFFER_DTS (pad->last_buf);
- else
- pad->last_dts = GST_BUFFER_PTS (pad->last_buf);
+ pad->last_dts = GST_BUFFER_DTS (pad->last_buf);
} else {
pad->last_dts = GST_BUFFER_DTS (last_buf) +
GST_BUFFER_DURATION (last_buf);
diff --git a/gst/isomp4/gstrtpxqtdepay.c b/gst/isomp4/gstrtpxqtdepay.c
index 54baf09a..3bce461b 100644
--- a/gst/isomp4/gstrtpxqtdepay.c
+++ b/gst/isomp4/gstrtpxqtdepay.c
@@ -58,6 +58,7 @@
#define QT_UINT64(a) ((((guint64)QT_UINT32(a))<<32)|QT_UINT32(((guint8 *)a)+4))
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
GST_DEBUG_CATEGORY_STATIC (rtpxqtdepay_debug);
@@ -179,6 +180,7 @@ gst_rtp_quicktime_parse_sd (GstRtpXQTDepay * rtpxqtdepay, guint8 * data,
switch (fourcc) {
case FOURCC_avc1:
+ case FOURCC_avc3:
{
guint32 chlen;
diff --git a/gst/isomp4/isomp4-plugin.c b/gst/isomp4/isomp4-plugin.c
index 27af5d91..7ff78cee 100644
--- a/gst/isomp4/isomp4-plugin.c
+++ b/gst/isomp4/isomp4-plugin.c
@@ -35,7 +35,6 @@ static gboolean
plugin_init (GstPlugin * plugin)
{
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index 4c7a90bb..d2f3b878 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -89,6 +89,8 @@
#define QTDEMUX_SECONDS_FROM_1904_TO_1970 (((1970 - 1904) * (guint64) 365 + \
QTDEMUX_LEAP_YEARS_FROM_1904_TO_1970) * QTDEMUX_SECONDS_PER_DAY)
+#define STREAM_IS_EOS(s) (s->time_position == -1)
+
GST_DEBUG_CATEGORY (qtdemux_debug);
/*typedef struct _QtNode QtNode; */
@@ -206,6 +208,10 @@ struct _QtDemuxStream
gboolean new_caps;
gboolean new_stream; /* signals that a stream_start is required */
+ gboolean on_keyframe; /* if this stream last pushed buffer was a
+ * keyframe. This is important to identify
+ * where to stop pushing buffers after a
+ * segment stop time */
/* if the stream has a redirect URI in its headers, we store it here */
gchar *redirect_uri;
@@ -1252,17 +1258,17 @@ gst_qtdemux_do_push_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
GstFormat format;
GstSeekFlags flags;
GstSeekType cur_type, stop_type;
- gint64 cur, stop;
+ gint64 cur, stop, key_cur;
gboolean res;
gint64 byte_cur;
+ gint64 original_stop;
+ guint32 seqnum;
GST_DEBUG_OBJECT (qtdemux, "doing push-based seek");
gst_event_parse_seek (event, &rate, &format, &flags,
&cur_type, &cur, &stop_type, &stop);
-
- /* FIXME, always play to the end */
- stop = -1;
+ seqnum = gst_event_get_seqnum (event);
/* only forward streaming and seeking is possible */
if (rate <= 0)
@@ -1273,10 +1279,16 @@ gst_qtdemux_do_push_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
stop_type, &stop))
goto no_format;
+ /* Upstrea seek in bytes will have undefined stop, but qtdemux stores
+ * the original stop position to use when upstream pushes the new segment
+ * for this seek */
+ original_stop = stop;
+ stop = -1;
+
/* find reasonable corresponding BYTE position,
* also try to mind about keyframes, since we can not go back a bit for them
* later on */
- gst_qtdemux_adjust_seek (qtdemux, cur, NULL, &byte_cur);
+ gst_qtdemux_adjust_seek (qtdemux, cur, &key_cur, &byte_cur);
if (byte_cur == -1)
goto abort_seek;
@@ -1285,19 +1297,25 @@ gst_qtdemux_do_push_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
"start %" G_GINT64_FORMAT ", stop %" G_GINT64_FORMAT, rate, byte_cur,
stop);
+ GST_OBJECT_LOCK (qtdemux);
+ qtdemux->seek_offset = byte_cur;
if (!(flags & GST_SEEK_FLAG_KEY_UNIT)) {
- GST_DEBUG_OBJECT (qtdemux,
- "Requested seek time: %" GST_TIME_FORMAT ", calculated seek offset: %"
- G_GUINT64_FORMAT, GST_TIME_ARGS (cur), byte_cur);
- GST_OBJECT_LOCK (qtdemux);
- qtdemux->requested_seek_time = cur;
- qtdemux->seek_offset = byte_cur;
- GST_OBJECT_UNLOCK (qtdemux);
+ qtdemux->push_seek_start = cur;
+ } else {
+ qtdemux->push_seek_start = key_cur;
+ }
+
+ if (stop_type == GST_SEEK_TYPE_NONE) {
+ qtdemux->push_seek_stop = qtdemux->segment.stop;
+ } else {
+ qtdemux->push_seek_stop = original_stop;
}
+ GST_OBJECT_UNLOCK (qtdemux);
/* BYTE seek event */
event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, cur_type, byte_cur,
stop_type, stop);
+ gst_event_set_seqnum (event, seqnum);
res = gst_pad_push_event (qtdemux->sinkpad, event);
return res;
@@ -1809,8 +1827,6 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
gst_object_unref (qtdemux->pending_newsegment);
qtdemux->pending_newsegment = NULL;
qtdemux->upstream_newsegment = TRUE;
- qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE;
- qtdemux->seek_offset = 0;
qtdemux->upstream_seekable = FALSE;
qtdemux->upstream_size = 0;
@@ -1849,6 +1865,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
qtdemux->streams[n]->last_ret = GST_FLOW_OK;
qtdemux->streams[n]->sent_eos = FALSE;
qtdemux->streams[n]->segment_seqnum = 0;
+ qtdemux->streams[n]->time_position = 0;
}
}
}
@@ -1893,29 +1910,37 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
}
}
+ /* check if this matches a time seek we received previously
+ * FIXME for backwards compatibility reasons we use the
+ * seek_offset here to compare. In the future we might want to
+ * change this to use the seqnum as it uniquely should identify
+ * the segment that corresponds to the seek. */
+ GST_DEBUG_OBJECT (demux, "Stored seek offset: %" G_GINT64_FORMAT
+ ", received segment offset %" G_GINT64_FORMAT,
+ demux->seek_offset, segment.start);
+ if (segment.format == GST_FORMAT_BYTES
+ && demux->seek_offset == segment.start) {
+ GST_OBJECT_LOCK (demux);
+ offset = segment.start;
+
+ segment.format = GST_FORMAT_TIME;
+ segment.start = demux->push_seek_start;
+ segment.stop = demux->push_seek_stop;
+ GST_DEBUG_OBJECT (demux, "Replaced segment with stored seek "
+ "segment %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (segment.start), GST_TIME_ARGS (segment.stop));
+ GST_OBJECT_UNLOCK (demux);
+ }
+
/* we only expect a BYTE segment, e.g. following a seek */
if (segment.format == GST_FORMAT_BYTES) {
if (GST_CLOCK_TIME_IS_VALID (segment.start)) {
- gint64 requested_seek_time;
- guint64 seek_offset;
-
offset = segment.start;
- GST_OBJECT_LOCK (demux);
- requested_seek_time = demux->requested_seek_time;
- seek_offset = demux->seek_offset;
- demux->requested_seek_time = -1;
- demux->seek_offset = -1;
- GST_OBJECT_UNLOCK (demux);
-
- if (offset == seek_offset) {
- segment.start = requested_seek_time;
- } else {
- gst_qtdemux_find_sample (demux, segment.start, TRUE, FALSE, NULL,
- NULL, (gint64 *) & segment.start);
- if ((gint64) segment.start < 0)
- segment.start = 0;
- }
+ gst_qtdemux_find_sample (demux, segment.start, TRUE, FALSE, NULL,
+ NULL, (gint64 *) & segment.start);
+ if ((gint64) segment.start < 0)
+ segment.start = 0;
}
if (GST_CLOCK_TIME_IS_VALID (segment.stop)) {
gst_qtdemux_find_sample (demux, segment.stop, FALSE, FALSE, NULL,
@@ -3703,7 +3728,7 @@ gst_qtdemux_sync_streams (GstQTDemux * demux)
if (demux->pullbased) {
/* loop mode is sample time based */
- if (stream->time_position != -1)
+ if (!STREAM_IS_EOS (stream))
continue;
} else {
/* push mode is byte position based */
@@ -4067,8 +4092,13 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
}
- if (!keyframe)
+ if (!keyframe) {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+ stream->on_keyframe = FALSE;
+ } else {
+ stream->on_keyframe = TRUE;
+ }
+
GST_LOG_OBJECT (qtdemux,
"Pushing buffer with dts %" GST_TIME_FORMAT ", pts %" GST_TIME_FORMAT
@@ -4130,9 +4160,11 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
/* check for segment end */
if (G_UNLIKELY (qtdemux->segment.stop != -1
- && qtdemux->segment.stop < min_time)) {
+ && qtdemux->segment.stop <= min_time
+ && qtdemux->streams[index]->on_keyframe)) {
GST_DEBUG_OBJECT (qtdemux, "we reached the end of our segment.");
- goto eos;
+ qtdemux->streams[index]->time_position = -1;
+ goto eos_stream;
}
/* gap events for subtitle streams */
@@ -4856,7 +4888,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
}
}
- /* Figure out which stream this is packet belongs to */
+ /* Figure out which stream this packet belongs to */
for (i = 0; i < demux->n_streams; i++) {
stream = demux->streams[i];
if (stream->sample_index >= stream->n_samples)
@@ -4879,24 +4911,50 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
}
/* Put data in a buffer, set timestamps, caps, ... */
- outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes);
- GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT,
- GST_FOURCC_ARGS (stream->fourcc));
-
- g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR);
-
sample = &stream->samples[stream->sample_index];
- dts = QTSAMPLE_DTS (stream, sample);
- pts = QTSAMPLE_PTS (stream, sample);
- duration = QTSAMPLE_DUR_DTS (stream, sample, dts);
- keyframe = QTSAMPLE_KEYFRAME (stream, sample);
+ if (G_LIKELY (!(STREAM_IS_EOS (stream)))) {
+ outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes);
+ GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT,
+ GST_FOURCC_ARGS (stream->fourcc));
+
+ g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR);
+
+ dts = QTSAMPLE_DTS (stream, sample);
+ pts = QTSAMPLE_PTS (stream, sample);
+ duration = QTSAMPLE_DUR_DTS (stream, sample, dts);
+ keyframe = QTSAMPLE_KEYFRAME (stream, sample);
+
+ /* check for segment end */
+ if (G_UNLIKELY (demux->segment.stop != -1
+ && demux->segment.stop <= pts && stream->on_keyframe)) {
+ GST_DEBUG_OBJECT (demux, "we reached the end of our segment.");
+ stream->time_position = -1; /* this means EOS */
+
+ /* check if all streams are eos */
+ ret = GST_FLOW_EOS;
+ for (i = 0; i < demux->n_streams; i++) {
+ if (!STREAM_IS_EOS (demux->streams[i])) {
+ ret = GST_FLOW_OK;
+ break;
+ }
+ }
- ret = gst_qtdemux_decorate_and_push_buffer (demux, stream, outbuf,
- dts, pts, duration, keyframe, dts, demux->offset);
+ if (ret == GST_FLOW_EOS) {
+ GST_DEBUG_OBJECT (demux, "All streams are EOS, signal upstream");
+ goto eos;
+ }
+ } else {
+ ret = gst_qtdemux_decorate_and_push_buffer (demux, stream, outbuf,
+ dts, pts, duration, keyframe, dts, demux->offset);
+ }
- /* combine flows */
- ret = gst_qtdemux_combine_flows (demux, stream, ret);
+ /* combine flows */
+ ret = gst_qtdemux_combine_flows (demux, stream, ret);
+ } else {
+ /* skip this data, stream is EOS */
+ gst_adapter_flush (demux->adapter, demux->neededbytes);
+ }
stream->sample_index++;
stream->offset_in_sample = 0;
@@ -5390,6 +5448,12 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
qtdemux_parse_container (qtdemux, node, buffer + 0x56, end);
break;
}
+ case FOURCC_avc3:
+ {
+ GST_MEMDUMP_OBJECT (qtdemux, "avc3", buffer, end - buffer);
+ qtdemux_parse_container (qtdemux, node, buffer + 0x56, end);
+ break;
+ }
case FOURCC_mjp2:
{
qtdemux_parse_container (qtdemux, node, buffer + 86, end);
@@ -7305,6 +7369,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
switch (fourcc) {
case FOURCC_H264:
case FOURCC_avc1:
+ case FOURCC_avc3:
{
gint len = QT_UINT32 (stsd_data) - 0x66;
const guint8 *avc_data = stsd_data + 0x66;
@@ -10335,6 +10400,12 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
"stream-format", G_TYPE_STRING, "avc",
"alignment", G_TYPE_STRING, "au", NULL);
break;
+ case GST_MAKE_FOURCC ('a', 'v', 'c', '3'):
+ _codec ("H.264 / AVC");
+ caps = gst_caps_new_simple ("video/x-h264",
+ "stream-format", G_TYPE_STRING, "avc3",
+ "alignment", G_TYPE_STRING, "au", NULL);
+ break;
case GST_MAKE_FOURCC ('r', 'l', 'e', ' '):
_codec ("Run-length encoding");
caps = gst_caps_new_simple ("video/x-rle",
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index 5e3035fa..d27134c9 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -105,6 +105,9 @@ struct _GstQTDemux {
GstSegment segment;
GstEvent *pending_newsegment;
gboolean upstream_newsegment;
+ gint64 seek_offset;
+ gint64 push_seek_start;
+ gint64 push_seek_stop;
#if 0
/* gst index support */
@@ -112,9 +115,6 @@ struct _GstQTDemux {
gint index_id;
#endif
- gint64 requested_seek_time;
- guint64 seek_offset;
-
gboolean upstream_seekable;
gint64 upstream_size;
diff --git a/gst/isomp4/qtdemux_fourcc.h b/gst/isomp4/qtdemux_fourcc.h
index d3a972bb..6b8bd062 100644
--- a/gst/isomp4/qtdemux_fourcc.h
+++ b/gst/isomp4/qtdemux_fourcc.h
@@ -142,6 +142,7 @@ G_BEGIN_DECLS
#define FOURCC_H264 GST_MAKE_FOURCC('H','2','6','4')
#define FOURCC_strf GST_MAKE_FOURCC('s','t','r','f')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
#define FOURCC_btrt GST_MAKE_FOURCC('b','t','r','t')
#define FOURCC_VP31 GST_MAKE_FOURCC('V','P','3','1')
diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c
index 92e1814e..e9f32cc5 100644
--- a/gst/isomp4/qtdemux_types.c
+++ b/gst/isomp4/qtdemux_types.c
@@ -171,6 +171,9 @@ static const QtNodeType qt_node_types[] = {
qtdemux_dump_mehd},
{FOURCC_ovc1, "ovc1", 0},
{FOURCC_owma, "owma", 0},
+ {FOURCC_avcC, "AV codec configuration container", 0},
+ {FOURCC_avc1, "AV codec configuration v1", 0},
+ {FOURCC_avc3, "AV codec configuration v3", 0},
{FOURCC_tfdt, "Track fragment decode time", 0, qtdemux_dump_tfdt},
{FOURCC_chap, "Chapter Reference"},
{0, "unknown", 0,},
diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in
index 25af4928..dacde30b 100644
--- a/gst/law/Makefile.in
+++ b/gst/law/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in
index 359d4b67..ec3c0038 100644
--- a/gst/level/Makefile.in
+++ b/gst/level/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in
index 8bb8149c..1ffcb8e5 100644
--- a/gst/matroska/Makefile.in
+++ b/gst/matroska/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 1e8a5602..d5d705ea 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -171,7 +171,7 @@ static GstCaps
/* stream methods */
static void gst_matroska_demux_reset (GstElement * element);
static gboolean perform_seek_to_offset (GstMatroskaDemux * demux,
- gdouble rate, guint64 offset);
+ gdouble rate, guint64 offset, guint32 seqnum);
/* gobject functions */
static void gst_matroska_demux_set_property (GObject * object,
@@ -2196,7 +2196,7 @@ finish:
/* upstream takes care of flushing and all that
* ... and newsegment event handling takes care of the rest */
return perform_seek_to_offset (demux, rate,
- entry->pos + demux->common.ebml_segment_start);
+ entry->pos + demux->common.ebml_segment_start, seqnum);
}
exit:
@@ -2336,7 +2336,8 @@ gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, GstPad * pad,
if (!building_index) {
/* seek to the first subindex or legacy index */
GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset);
- return perform_seek_to_offset (demux, rate, offset);
+ return perform_seek_to_offset (demux, rate, offset,
+ gst_event_get_seqnum (event));
}
/* well, we are handling it already */
@@ -3006,7 +3007,7 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element,
return GST_FLOW_OK;
if (!sub_stream->invalid_utf8) {
- if (g_utf8_validate ((gchar *) map.data, map.size, NULL)) {
+ if (g_utf8_validate ((gchar *) map.data, map.size - 1, NULL)) {
goto next;
}
GST_WARNING_OBJECT (element, "subtitle stream %" G_GUINT64_FORMAT
@@ -4664,7 +4665,8 @@ pause:
* Create and push a flushing seek event upstream
*/
static gboolean
-perform_seek_to_offset (GstMatroskaDemux * demux, gdouble rate, guint64 offset)
+perform_seek_to_offset (GstMatroskaDemux * demux, gdouble rate, guint64 offset,
+ guint32 seqnum)
{
GstEvent *event;
gboolean res = 0;
@@ -4675,6 +4677,7 @@ perform_seek_to_offset (GstMatroskaDemux * demux, gdouble rate, guint64 offset)
gst_event_new_seek (rate, GST_FORMAT_BYTES,
GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset,
GST_SEEK_TYPE_NONE, -1);
+ gst_event_set_seqnum (event, seqnum);
res = gst_pad_push_event (demux->common.sinkpad, event);
diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c
index ffef5788..bfbe02aa 100644
--- a/gst/matroska/matroska-read-common.c
+++ b/gst/matroska/matroska-read-common.c
@@ -658,6 +658,9 @@ gst_matroska_read_common_parse_attached_file (GstMatroskaReadCommon * common,
tagsample = gst_sample_new (tagbuffer, caps, NULL, info);
+ gst_buffer_unref (tagbuffer);
+ gst_caps_unref (caps);
+
GST_DEBUG_OBJECT (common,
"Created attachment sample: %" GST_PTR_FORMAT, tagsample);
diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in
index f62947fb..75596db8 100644
--- a/gst/monoscope/Makefile.in
+++ b/gst/monoscope/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in
index e921ed4d..b06a8b10 100644
--- a/gst/multifile/Makefile.in
+++ b/gst/multifile/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in
index ec1ae5f3..cb0e9655 100644
--- a/gst/multipart/Makefile.in
+++ b/gst/multipart/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in
index 50ddf991..d54753fd 100644
--- a/gst/replaygain/Makefile.in
+++ b/gst/replaygain/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c
index e38d4d68..3e87953a 100644
--- a/gst/replaygain/gstrganalysis.c
+++ b/gst/replaygain/gstrganalysis.c
@@ -532,6 +532,7 @@ gst_rg_analysis_stop (GstBaseTransform * base)
return TRUE;
}
+/* FIXME: handle global vs. stream-tags? */
static void
gst_rg_analysis_handle_tags (GstRgAnalysis * filter,
const GstTagList * tag_list)
@@ -632,9 +633,10 @@ gst_rg_analysis_handle_eos (GstRgAnalysis * filter)
GST_LOG_OBJECT (filter, "posting tag list with results");
gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
GST_TAG_REFERENCE_LEVEL, filter->reference_level, NULL);
- /* This steals our reference to the list: */
- gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (GST_BASE_TRANSFORM
- (filter)), gst_event_new_tag (gst_tag_list_ref (tag_list)));
+ /* This takes ownership of our reference to the list */
+ gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (filter),
+ gst_event_new_tag (tag_list));
+ tag_list = NULL;
}
}
@@ -653,6 +655,7 @@ gst_rg_analysis_handle_eos (GstRgAnalysis * filter)
g_object_notify (G_OBJECT (filter), "num-tracks");
}
+/* FIXME: return tag list (lists?) based on input tags.. */
static gboolean
gst_rg_analysis_track_result (GstRgAnalysis * filter, GstTagList ** tag_list)
{
diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am
index 6c1d6b8e..b863e01b 100644
--- a/gst/rtp/Makefile.am
+++ b/gst/rtp/Makefile.am
@@ -50,6 +50,8 @@ libgstrtp_la_SOURCES = \
gstrtpjpegpay.c \
gstrtpL16depay.c \
gstrtpL16pay.c \
+ gstrtpL24depay.c \
+ gstrtpL24pay.c \
gstasteriskh263.c \
gstrtpmp1sdepay.c \
gstrtpmp2tdepay.c \
@@ -100,6 +102,8 @@ noinst_HEADERS = \
gstrtpchannels.h \
gstrtpL16depay.h \
gstrtpL16pay.h \
+ gstrtpL24depay.h \
+ gstrtpL24pay.h \
gstrtpac3depay.h \
gstrtpac3pay.h \
gstrtpbvdepay.h \
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index c3a0e268..b4fb3778 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -183,7 +183,8 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \
libgstrtp_la-gstrtph264pay.lo libgstrtp_la-gstrtpj2kdepay.lo \
libgstrtp_la-gstrtpj2kpay.lo libgstrtp_la-gstrtpjpegdepay.lo \
libgstrtp_la-gstrtpjpegpay.lo libgstrtp_la-gstrtpL16depay.lo \
- libgstrtp_la-gstrtpL16pay.lo libgstrtp_la-gstasteriskh263.lo \
+ libgstrtp_la-gstrtpL16pay.lo libgstrtp_la-gstrtpL24depay.lo \
+ libgstrtp_la-gstrtpL24pay.lo libgstrtp_la-gstasteriskh263.lo \
libgstrtp_la-gstrtpmp1sdepay.lo \
libgstrtp_la-gstrtpmp2tdepay.lo libgstrtp_la-gstrtpmp2tpay.lo \
libgstrtp_la-gstrtpmp4vdepay.lo libgstrtp_la-gstrtpmp4vpay.lo \
@@ -648,6 +649,8 @@ libgstrtp_la_SOURCES = \
gstrtpjpegpay.c \
gstrtpL16depay.c \
gstrtpL16pay.c \
+ gstrtpL24depay.c \
+ gstrtpL24pay.c \
gstasteriskh263.c \
gstrtpmp1sdepay.c \
gstrtpmp2tdepay.c \
@@ -698,6 +701,8 @@ noinst_HEADERS = \
gstrtpchannels.h \
gstrtpL16depay.h \
gstrtpL16pay.h \
+ gstrtpL24depay.h \
+ gstrtpL24pay.h \
gstrtpac3depay.h \
gstrtpac3pay.h \
gstrtpbvdepay.h \
@@ -855,6 +860,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL16depay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL16pay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL24depay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL24pay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpac3depay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpac3pay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Plo@am__quote@
@@ -1293,6 +1300,20 @@ libgstrtp_la-gstrtpL16pay.lo: gstrtpL16pay.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c
+libgstrtp_la-gstrtpL24depay.lo: gstrtpL24depay.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL24depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Tpo -c -o libgstrtp_la-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpL24depay.c' object='libgstrtp_la-gstrtpL24depay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
+
+libgstrtp_la-gstrtpL24pay.lo: gstrtpL24pay.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL24pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Tpo -c -o libgstrtp_la-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpL24pay.c' object='libgstrtp_la-gstrtpL24pay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
+
libgstrtp_la-gstasteriskh263.lo: gstasteriskh263.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstasteriskh263.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo $(DEPDIR)/libgstrtp_la-gstasteriskh263.Plo
diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c
index d317156c..893dafde 100644
--- a/gst/rtp/gstrtp.c
+++ b/gst/rtp/gstrtp.c
@@ -68,6 +68,8 @@
#include "gstrtpjpegpay.h"
#include "gstrtpL16depay.h"
#include "gstrtpL16pay.h"
+#include "gstrtpL24depay.h"
+#include "gstrtpL24pay.h"
#include "gstasteriskh263.h"
#include "gstrtpmp1sdepay.h"
#include "gstrtpmp2tdepay.h"
@@ -236,6 +238,12 @@ plugin_init (GstPlugin * plugin)
if (!gst_rtp_L16_depay_plugin_init (plugin))
return FALSE;
+ if (!gst_rtp_L24_pay_plugin_init (plugin))
+ return FALSE;
+
+ if (!gst_rtp_L24_depay_plugin_init (plugin))
+ return FALSE;
+
if (!gst_asteriskh263_plugin_init (plugin))
return FALSE;
diff --git a/gst/rtp/gstrtpL24depay.c b/gst/rtp/gstrtpL24depay.c
new file mode 100644
index 00000000..1925ce08
--- /dev/null
+++ b/gst/rtp/gstrtpL24depay.c
@@ -0,0 +1,266 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpL24depay
+ * @see_also: rtpL24pay
+ *
+ * Extract raw audio from RTP packets according to RFC 3190, section 4.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L24, encoding-params=(string)1, channels=(int)1, payload=(int)96' ! rtpL24depay ! pulsesink
+ * ]| This example pipeline will depayload an RTP raw audio stream. Refer to
+ * the rtpL24pay example to create the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gst/audio/audio.h>
+
+#include "gstrtpL24depay.h"
+#include "gstrtpchannels.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpL24depay_debug);
+#define GST_CAT_DEFAULT (rtpL24depay_debug)
+
+static GstStaticPadTemplate gst_rtp_L24_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw, "
+ "format = (string) S24BE, "
+ "layout = (string) interleaved, "
+ "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]")
+ );
+
+static GstStaticPadTemplate gst_rtp_L24_depay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("application/x-rtp, "
+ "media = (string) \"audio\", " "clock-rate = (int) [ 1, MAX ], "
+ "encoding-name = (string) \"L24\"")
+ );
+
+#define gst_rtp_L24_depay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpL24Depay, gst_rtp_L24_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static gboolean gst_rtp_L24_depay_setcaps (GstRTPBaseDepayload * depayload,
+ GstCaps * caps);
+static GstBuffer *gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload,
+ GstBuffer * buf);
+
+static void
+gst_rtp_L24_depay_class_init (GstRtpL24DepayClass * klass)
+{
+ GstElementClass *gstelement_class;
+ GstRTPBaseDepayloadClass *gstrtpbasedepayload_class;
+
+ gstelement_class = (GstElementClass *) klass;
+ gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
+
+ gstrtpbasedepayload_class->set_caps = gst_rtp_L24_depay_setcaps;
+ gstrtpbasedepayload_class->process = gst_rtp_L24_depay_process;
+
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&gst_rtp_L24_depay_src_template));
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&gst_rtp_L24_depay_sink_template));
+
+ gst_element_class_set_static_metadata (gstelement_class,
+ "RTP audio depayloader", "Codec/Depayloader/Network/RTP",
+ "Extracts raw 24-bit audio from RTP packets",
+ "Zeeshan Ali <zak147@yahoo.com>," "Wim Taymans <wim.taymans@gmail.com>,"
+ "David Holroyd <dave@badgers-in-foil.co.uk>");
+
+ GST_DEBUG_CATEGORY_INIT (rtpL24depay_debug, "rtpL24depay", 0,
+ "Raw Audio RTP Depayloader");
+}
+
+static void
+gst_rtp_L24_depay_init (GstRtpL24Depay * rtpL24depay)
+{
+}
+
+static gint
+gst_rtp_L24_depay_parse_int (GstStructure * structure, const gchar * field,
+ gint def)
+{
+ const gchar *str;
+ gint res;
+
+ if ((str = gst_structure_get_string (structure, field)))
+ return atoi (str);
+
+ if (gst_structure_get_int (structure, field, &res))
+ return res;
+
+ return def;
+}
+
+static gboolean
+gst_rtp_L24_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
+{
+ GstStructure *structure;
+ GstRtpL24Depay *rtpL24depay;
+ gint clock_rate, payload;
+ gint channels;
+ GstCaps *srccaps;
+ gboolean res;
+ const gchar *channel_order;
+ const GstRTPChannelOrder *order;
+ GstAudioInfo *info;
+
+ rtpL24depay = GST_RTP_L24_DEPAY (depayload);
+
+ structure = gst_caps_get_structure (caps, 0);
+
+ payload = 96;
+ gst_structure_get_int (structure, "payload", &payload);
+ /* no fixed mapping, we need clock-rate */
+ channels = 0;
+ clock_rate = 0;
+
+ /* caps can overwrite defaults */
+ clock_rate =
+ gst_rtp_L24_depay_parse_int (structure, "clock-rate", clock_rate);
+ if (clock_rate == 0)
+ goto no_clockrate;
+
+ channels =
+ gst_rtp_L24_depay_parse_int (structure, "encoding-params", channels);
+ if (channels == 0) {
+ channels = gst_rtp_L24_depay_parse_int (structure, "channels", channels);
+ if (channels == 0) {
+ /* channels defaults to 1 otherwise */
+ channels = 1;
+ }
+ }
+
+ depayload->clock_rate = clock_rate;
+
+ info = &rtpL24depay->info;
+ gst_audio_info_init (info);
+ info->finfo = gst_audio_format_get_info (GST_AUDIO_FORMAT_S24BE);
+ info->rate = clock_rate;
+ info->channels = channels;
+ info->bpf = (info->finfo->width / 8) * channels;
+
+ /* add channel positions */
+ channel_order = gst_structure_get_string (structure, "channel-order");
+
+ order = gst_rtp_channels_get_by_order (channels, channel_order);
+ rtpL24depay->order = order;
+ if (order) {
+ memcpy (info->position, order->pos,
+ sizeof (GstAudioChannelPosition) * channels);
+ gst_audio_channel_positions_to_valid_order (info->position, info->channels);
+ } else {
+ GST_ELEMENT_WARNING (rtpL24depay, STREAM, DECODE,
+ (NULL), ("Unknown channel order '%s' for %d channels",
+ GST_STR_NULL (channel_order), channels));
+ /* create default NONE layout */
+ gst_rtp_channels_create_default (channels, info->position);
+ }
+
+ srccaps = gst_audio_info_to_caps (info);
+ res = gst_pad_set_caps (depayload->srcpad, srccaps);
+ gst_caps_unref (srccaps);
+
+ return res;
+
+ /* ERRORS */
+no_clockrate:
+ {
+ GST_ERROR_OBJECT (depayload, "no clock-rate specified");
+ return FALSE;
+ }
+}
+
+static GstBuffer *
+gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+{
+ GstRtpL24Depay *rtpL24depay;
+ GstBuffer *outbuf;
+ gint payload_len;
+ gboolean marker;
+ GstRTPBuffer rtp = { NULL };
+
+ rtpL24depay = GST_RTP_L24_DEPAY (depayload);
+
+ gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+ payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+
+ if (payload_len <= 0)
+ goto empty_packet;
+
+ GST_DEBUG_OBJECT (rtpL24depay, "got payload of %d bytes", payload_len);
+
+ outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+ marker = gst_rtp_buffer_get_marker (&rtp);
+
+ if (marker) {
+ /* mark talk spurt with RESYNC */
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
+ }
+
+ outbuf = gst_buffer_make_writable (outbuf);
+ if (rtpL24depay->order &&
+ !gst_audio_buffer_reorder_channels (outbuf,
+ rtpL24depay->info.finfo->format, rtpL24depay->info.channels,
+ rtpL24depay->info.position, rtpL24depay->order->pos)) {
+ goto reorder_failed;
+ }
+
+ gst_rtp_buffer_unmap (&rtp);
+
+ return outbuf;
+
+ /* ERRORS */
+empty_packet:
+ {
+ GST_ELEMENT_WARNING (rtpL24depay, STREAM, DECODE,
+ ("Empty Payload."), (NULL));
+ gst_rtp_buffer_unmap (&rtp);
+ return NULL;
+ }
+reorder_failed:
+ {
+ GST_ELEMENT_ERROR (rtpL24depay, STREAM, DECODE,
+ ("Channel reordering failed."), (NULL));
+ gst_rtp_buffer_unmap (&rtp);
+ return NULL;
+ }
+}
+
+gboolean
+gst_rtp_L24_depay_plugin_init (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "rtpL24depay",
+ GST_RANK_SECONDARY, GST_TYPE_RTP_L24_DEPAY);
+}
diff --git a/gst/rtp/gstrtpL24depay.h b/gst/rtp/gstrtpL24depay.h
new file mode 100644
index 00000000..c4e00e6f
--- /dev/null
+++ b/gst/rtp/gstrtpL24depay.h
@@ -0,0 +1,67 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_L24_DEPAY_H__
+#define __GST_RTP_L24_DEPAY_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+#include <gst/audio/audio.h>
+
+#include "gstrtpchannels.h"
+
+G_BEGIN_DECLS
+
+/* Standard macros for defining types for this element. */
+#define GST_TYPE_RTP_L24_DEPAY \
+ (gst_rtp_L24_depay_get_type())
+#define GST_RTP_L24_DEPAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_L24_DEPAY,GstRtpL24Depay))
+#define GST_RTP_L24_DEPAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_L24_DEPAY,GstRtpL24DepayClass))
+#define GST_IS_RTP_L24_DEPAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_L24_DEPAY))
+#define GST_IS_RTP_L24_DEPAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_L24_DEPAY))
+
+typedef struct _GstRtpL24Depay GstRtpL24Depay;
+typedef struct _GstRtpL24DepayClass GstRtpL24DepayClass;
+
+/* Definition of structure storing data for this element. */
+struct _GstRtpL24Depay
+{
+ GstRTPBaseDepayload depayload;
+
+ GstAudioInfo info;
+ const GstRTPChannelOrder *order;
+};
+
+/* Standard definition defining a class for this element. */
+struct _GstRtpL24DepayClass
+{
+ GstRTPBaseDepayloadClass parent_class;
+};
+
+GType gst_rtp_L24_depay_get_type (void);
+
+gboolean gst_rtp_L24_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_L24_DEPAY_H__ */
diff --git a/gst/rtp/gstrtpL24pay.c b/gst/rtp/gstrtpL24pay.c
new file mode 100644
index 00000000..d2612e9c
--- /dev/null
+++ b/gst/rtp/gstrtpL24pay.c
@@ -0,0 +1,244 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpL24pay
+ * @see_also: rtpL24depay
+ *
+ * Payload raw 24-bit audio into RTP packets according to RFC 3190, section 4.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v audiotestsrc ! audioconvert ! rtpL24pay ! udpsink
+ * ]| This example pipeline will payload raw audio. Refer to
+ * the rtpL24depay example to depayload and play the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <string.h>
+
+#include <gst/audio/audio.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#include "gstrtpL24pay.h"
+#include "gstrtpchannels.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpL24pay_debug);
+#define GST_CAT_DEFAULT (rtpL24pay_debug)
+
+static GstStaticPadTemplate gst_rtp_L24_pay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw, "
+ "format = (string) S24BE, "
+ "layout = (string) interleaved, "
+ "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]")
+ );
+
+static GstStaticPadTemplate gst_rtp_L24_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) [ 96, 127 ], "
+ "clock-rate = (int) [ 1, MAX ], "
+ "encoding-name = (string) \"L24\", " "channels = (int) [ 1, MAX ];")
+ );
+
+static gboolean gst_rtp_L24_pay_setcaps (GstRTPBasePayload * basepayload,
+ GstCaps * caps);
+static GstCaps *gst_rtp_L24_pay_getcaps (GstRTPBasePayload * rtppayload,
+ GstPad * pad, GstCaps * filter);
+static GstFlowReturn
+gst_rtp_L24_pay_handle_buffer (GstRTPBasePayload * basepayload,
+ GstBuffer * buffer);
+
+#define gst_rtp_L24_pay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpL24Pay, gst_rtp_L24_pay, GST_TYPE_RTP_BASE_AUDIO_PAYLOAD);
+
+static void
+gst_rtp_L24_pay_class_init (GstRtpL24PayClass * klass)
+{
+ GstElementClass *gstelement_class;
+ GstRTPBasePayloadClass *gstrtpbasepayload_class;
+
+ gstelement_class = (GstElementClass *) klass;
+ gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
+
+ gstrtpbasepayload_class->set_caps = gst_rtp_L24_pay_setcaps;
+ gstrtpbasepayload_class->get_caps = gst_rtp_L24_pay_getcaps;
+ gstrtpbasepayload_class->handle_buffer = gst_rtp_L24_pay_handle_buffer;
+
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&gst_rtp_L24_pay_src_template));
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&gst_rtp_L24_pay_sink_template));
+
+ gst_element_class_set_static_metadata (gstelement_class,
+ "RTP audio payloader", "Codec/Payloader/Network/RTP",
+ "Payload-encode Raw 24-bit audio into RTP packets (RFC 3190)",
+ "Wim Taymans <wim.taymans@gmail.com>,"
+ "David Holroyd <dave@badgers-in-foil.co.uk>");
+
+ GST_DEBUG_CATEGORY_INIT (rtpL24pay_debug, "rtpL24pay", 0,
+ "L24 RTP Payloader");
+}
+
+static void
+gst_rtp_L24_pay_init (GstRtpL24Pay * rtpL24pay)
+{
+ GstRTPBaseAudioPayload *rtpbaseaudiopayload;
+
+ rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (rtpL24pay);
+
+ /* tell rtpbaseaudiopayload that this is a sample based codec */
+ gst_rtp_base_audio_payload_set_sample_based (rtpbaseaudiopayload);
+}
+
+static gboolean
+gst_rtp_L24_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
+{
+ GstRtpL24Pay *rtpL24pay;
+ gboolean res;
+ gchar *params;
+ GstAudioInfo *info;
+ const GstRTPChannelOrder *order;
+ GstRTPBaseAudioPayload *rtpbaseaudiopayload;
+
+ rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (basepayload);
+ rtpL24pay = GST_RTP_L24_PAY (basepayload);
+
+ info = &rtpL24pay->info;
+ gst_audio_info_init (info);
+ if (!gst_audio_info_from_caps (info, caps))
+ goto invalid_caps;
+
+ order = gst_rtp_channels_get_by_pos (info->channels, info->position);
+ rtpL24pay->order = order;
+
+ gst_rtp_base_payload_set_options (basepayload, "audio", TRUE, "L24",
+ info->rate);
+ params = g_strdup_printf ("%d", info->channels);
+
+ if (!order && info->channels > 2) {
+ GST_ELEMENT_WARNING (rtpL24pay, STREAM, DECODE,
+ (NULL), ("Unknown channel order for %d channels", info->channels));
+ }
+
+ if (order && order->name) {
+ res = gst_rtp_base_payload_set_outcaps (basepayload,
+ "encoding-params", G_TYPE_STRING, params, "channels", G_TYPE_INT,
+ info->channels, "channel-order", G_TYPE_STRING, order->name, NULL);
+ } else {
+ res = gst_rtp_base_payload_set_outcaps (basepayload,
+ "encoding-params", G_TYPE_STRING, params, "channels", G_TYPE_INT,
+ info->channels, NULL);
+ }
+
+ g_free (params);
+
+ /* octet-per-sample is 3 * channels for L24 */
+ gst_rtp_base_audio_payload_set_sample_options (rtpbaseaudiopayload,
+ 3 * info->channels);
+
+ return res;
+
+ /* ERRORS */
+invalid_caps:
+ {
+ GST_DEBUG_OBJECT (rtpL24pay, "invalid caps");
+ return FALSE;
+ }
+}
+
+static GstCaps *
+gst_rtp_L24_pay_getcaps (GstRTPBasePayload * rtppayload, GstPad * pad,
+ GstCaps * filter)
+{
+ GstCaps *otherpadcaps;
+ GstCaps *caps;
+
+ caps = gst_pad_get_pad_template_caps (pad);
+
+ otherpadcaps = gst_pad_get_allowed_caps (rtppayload->srcpad);
+ if (otherpadcaps) {
+ if (!gst_caps_is_empty (otherpadcaps)) {
+ GstStructure *structure;
+ gint channels;
+ gint rate;
+
+ structure = gst_caps_get_structure (otherpadcaps, 0);
+ caps = gst_caps_make_writable (caps);
+
+ if (gst_structure_get_int (structure, "channels", &channels)) {
+ gst_caps_set_simple (caps, "channels", G_TYPE_INT, channels, NULL);
+ }
+
+ if (gst_structure_get_int (structure, "clock-rate", &rate)) {
+ gst_caps_set_simple (caps, "rate", G_TYPE_INT, rate, NULL);
+ }
+
+ }
+ gst_caps_unref (otherpadcaps);
+ }
+
+ if (filter) {
+ GstCaps *tcaps = caps;
+
+ caps = gst_caps_intersect_full (filter, tcaps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (tcaps);
+ }
+
+ return caps;
+}
+
+static GstFlowReturn
+gst_rtp_L24_pay_handle_buffer (GstRTPBasePayload * basepayload,
+ GstBuffer * buffer)
+{
+ GstRtpL24Pay *rtpL24pay;
+
+ rtpL24pay = GST_RTP_L24_PAY (basepayload);
+ buffer = gst_buffer_make_writable (buffer);
+
+ if (rtpL24pay->order &&
+ !gst_audio_buffer_reorder_channels (buffer, rtpL24pay->info.finfo->format,
+ rtpL24pay->info.channels, rtpL24pay->info.position,
+ rtpL24pay->order->pos)) {
+ return GST_FLOW_ERROR;
+ }
+
+ return GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->handle_buffer (basepayload,
+ buffer);
+}
+
+gboolean
+gst_rtp_L24_pay_plugin_init (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "rtpL24pay",
+ GST_RANK_SECONDARY, GST_TYPE_RTP_L24_PAY);
+}
diff --git a/gst/rtp/gstrtpL24pay.h b/gst/rtp/gstrtpL24pay.h
new file mode 100644
index 00000000..47395ad1
--- /dev/null
+++ b/gst/rtp/gstrtpL24pay.h
@@ -0,0 +1,63 @@
+/* GStreamer
+ * Copyright (C) <2005> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_L24_PAY_H__
+#define __GST_RTP_L24_PAY_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbaseaudiopayload.h>
+
+#include "gstrtpchannels.h"
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_L24_PAY \
+ (gst_rtp_L24_pay_get_type())
+#define GST_RTP_L24_PAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_L24_PAY,GstRtpL24Pay))
+#define GST_RTP_L24_PAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_L24_PAY,GstRtpL24PayClass))
+#define GST_IS_RTP_L24_PAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_L24_PAY))
+#define GST_IS_RTP_L24_PAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_L24_PAY))
+
+typedef struct _GstRtpL24Pay GstRtpL24Pay;
+typedef struct _GstRtpL24PayClass GstRtpL24PayClass;
+
+struct _GstRtpL24Pay
+{
+ GstRTPBaseAudioPayload payload;
+
+ GstAudioInfo info;
+ const GstRTPChannelOrder *order;
+};
+
+struct _GstRtpL24PayClass
+{
+ GstRTPBaseAudioPayloadClass parent_class;
+};
+
+GType gst_rtp_L24_pay_get_type (void);
+
+gboolean gst_rtp_L24_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_L24_PAY_H__ */
diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c
index 87c511db..0751bcd8 100644
--- a/gst/rtp/gstrtpmpvpay.c
+++ b/gst/rtp/gstrtpmpvpay.c
@@ -180,14 +180,16 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
GstRTPBuffer rtp = { NULL };
GstBuffer *paybuf;
- packet_len = gst_rtp_buffer_calc_packet_len (avail, 4, 0);
+ packet_len = gst_rtp_buffer_calc_packet_len (avail + 4, 0, 0);
towrite = MIN (packet_len, GST_RTP_BASE_PAYLOAD_MTU (rtpmpvpay));
- payload_len = gst_rtp_buffer_calc_payload_len (towrite, 4, 0);
+ payload_len = gst_rtp_buffer_calc_payload_len (towrite, 0, 0);
outbuf = gst_rtp_buffer_new_allocate (4, 0, 0);
+ payload_len -= 4;
+
gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
payload = gst_rtp_buffer_get_payload (&rtp);
diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in
index 93e97fe0..083b7d2c 100644
--- a/gst/rtpmanager/Makefile.in
+++ b/gst/rtpmanager/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 079ae0ca..bf676e6e 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -117,17 +117,29 @@ enum
if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK)) \
goto label; \
} G_STMT_END
-
#define JBUF_UNLOCK(priv) (g_mutex_unlock (&(priv)->jbuf_lock))
-#define JBUF_WAIT(priv) (g_cond_wait (&(priv)->jbuf_cond, &(priv)->jbuf_lock))
-#define JBUF_WAIT_CHECK(priv,label) G_STMT_START { \
- JBUF_WAIT(priv); \
- if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK)) \
- goto label; \
+#define JBUF_WAIT_TIMER(priv) G_STMT_START { \
+ (priv)->waiting_timer = TRUE; \
+ g_cond_wait (&(priv)->jbuf_timer, &(priv)->jbuf_lock); \
+ (priv)->waiting_timer = FALSE; \
+} G_STMT_END
+#define JBUF_SIGNAL_TIMER(priv) G_STMT_START { \
+ if (G_UNLIKELY ((priv)->waiting_timer)) \
+ g_cond_signal (&(priv)->jbuf_timer); \
} G_STMT_END
-#define JBUF_SIGNAL(priv) (g_cond_signal (&(priv)->jbuf_cond))
+#define JBUF_WAIT_EVENT(priv,label) G_STMT_START { \
+ (priv)->waiting_event = TRUE; \
+ g_cond_wait (&(priv)->jbuf_event, &(priv)->jbuf_lock); \
+ (priv)->waiting_event = FALSE; \
+ if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK)) \
+ goto label; \
+} G_STMT_END
+#define JBUF_SIGNAL_EVENT(priv) G_STMT_START { \
+ if (G_UNLIKELY ((priv)->waiting_event)) \
+ g_cond_signal (&(priv)->jbuf_event); \
+} G_STMT_END
struct _GstRtpJitterBufferPrivate
{
@@ -136,13 +148,18 @@ struct _GstRtpJitterBufferPrivate
RTPJitterBuffer *jbuf;
GMutex jbuf_lock;
- GCond jbuf_cond;
- gboolean waiting;
+ gboolean waiting_timer;
+ GCond jbuf_timer;
+ gboolean waiting_event;
+ GCond jbuf_event;
gboolean discont;
gboolean ts_discont;
gboolean active;
guint64 out_offset;
+ gboolean timer_running;
+ GThread *timer_thread;
+
/* properties */
guint latency_ms;
guint64 latency_ns;
@@ -199,7 +216,6 @@ struct _GstRtpJitterBufferPrivate
GstClockID clock_id;
GstClockTime timer_timeout;
guint16 timer_seqnum;
- gboolean unscheduled;
/* the latency of the upstream peer, we have to take this into account when
* synchronizing the buffers. */
GstClockTime peer_latency;
@@ -223,8 +239,10 @@ typedef struct
{
guint idx;
guint16 seqnum;
+ guint num;
TimerType type;
GstClockTime timeout;
+ GstClockTime duration;
GstClockTime rtx_base;
GstClockTime rtx_retry;
} TimerData;
@@ -321,6 +339,8 @@ static void do_handle_sync (GstRtpJitterBuffer * jitterbuffer);
static void unschedule_current_timer (GstRtpJitterBuffer * jitterbuffer);
static void remove_all_timers (GstRtpJitterBuffer * jitterbuffer);
+static void wait_next_timeout (GstRtpJitterBuffer * jitterbuffer);
+
static void
gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass)
{
@@ -596,7 +616,8 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer)
priv->timers = g_array_new (FALSE, TRUE, sizeof (TimerData));
priv->jbuf = rtp_jitter_buffer_new ();
g_mutex_init (&priv->jbuf_lock);
- g_cond_init (&priv->jbuf_cond);
+ g_cond_init (&priv->jbuf_timer);
+ g_cond_init (&priv->jbuf_event);
/* reset skew detection initialy */
rtp_jitter_buffer_reset_skew (priv->jbuf);
@@ -641,7 +662,8 @@ gst_rtp_jitter_buffer_finalize (GObject * object)
g_array_free (jitterbuffer->priv->timers, TRUE);
g_mutex_clear (&jitterbuffer->priv->jbuf_lock);
- g_cond_clear (&jitterbuffer->priv->jbuf_cond);
+ g_cond_clear (&jitterbuffer->priv->jbuf_timer);
+ g_cond_clear (&jitterbuffer->priv->jbuf_event);
g_object_unref (jitterbuffer->priv->jbuf);
@@ -831,7 +853,7 @@ gst_rtp_jitter_buffer_set_active (GstRtpJitterBuffer * jbuf, gboolean active,
GST_DEBUG_OBJECT (jbuf, "out offset %" GST_TIME_FORMAT,
GST_TIME_ARGS (priv->out_offset));
priv->active = active;
- JBUF_SIGNAL (priv);
+ JBUF_SIGNAL_EVENT (priv);
}
if (!active) {
rtp_jitter_buffer_set_buffering (priv->jbuf, TRUE);
@@ -980,7 +1002,7 @@ gst_rtp_jitter_buffer_flush_start (GstRtpJitterBuffer * jitterbuffer)
priv->srcresult = GST_FLOW_FLUSHING;
GST_DEBUG_OBJECT (jitterbuffer, "Disabling pop on queue");
/* this unblocks any waiting pops on the src pad task */
- JBUF_SIGNAL (priv);
+ JBUF_SIGNAL_EVENT (priv);
/* unlock clock, we just unschedule, the entry will be released by the
* locking streaming thread. */
unschedule_current_timer (jitterbuffer);
@@ -1077,13 +1099,16 @@ gst_rtp_jitter_buffer_change_state (GstElement * element,
priv->last_pt = -1;
/* block until we go to PLAYING */
priv->blocked = TRUE;
+ priv->timer_running = TRUE;
+ priv->timer_thread =
+ g_thread_new ("timer", (GThreadFunc) wait_next_timeout, jitterbuffer);
JBUF_UNLOCK (priv);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
JBUF_LOCK (priv);
/* unblock to allow streaming in PLAYING */
priv->blocked = FALSE;
- JBUF_SIGNAL (priv);
+ JBUF_SIGNAL_EVENT (priv);
JBUF_UNLOCK (priv);
break;
default:
@@ -1108,7 +1133,13 @@ gst_rtp_jitter_buffer_change_state (GstElement * element,
ret = GST_STATE_CHANGE_NO_PREROLL;
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
+ JBUF_LOCK (priv);
gst_buffer_replace (&priv->last_sr, NULL);
+ priv->timer_running = FALSE;
+ JBUF_SIGNAL_TIMER (priv);
+ JBUF_UNLOCK (priv);
+ g_thread_join (priv->timer_thread);
+ priv->timer_thread = NULL;
break;
case GST_STATE_CHANGE_READY_TO_NULL:
break;
@@ -1229,7 +1260,7 @@ gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent,
if (ret && !priv->eos) {
GST_INFO_OBJECT (jitterbuffer, "queuing EOS");
priv->eos = TRUE;
- JBUF_SIGNAL (priv);
+ JBUF_SIGNAL_EVENT (priv);
} else if (priv->eos) {
GST_DEBUG_OBJECT (jitterbuffer, "dropping EOS, we are already EOS");
} else {
@@ -1418,7 +1449,6 @@ unschedule_current_timer (GstRtpJitterBuffer * jitterbuffer)
if (priv->clock_id) {
GST_DEBUG_OBJECT (jitterbuffer, "unschedule current timer");
gst_clock_id_unschedule (priv->clock_id);
- priv->unscheduled = TRUE;
}
}
@@ -1457,7 +1487,7 @@ recalculate_timer (GstRtpJitterBuffer * jitterbuffer, TimerData * timer)
static TimerData *
add_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type,
- guint16 seqnum, GstClockTime timeout)
+ guint16 seqnum, guint num, GstClockTime timeout, GstClockTime duration)
{
GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
TimerData *timer;
@@ -1473,12 +1503,15 @@ add_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type,
timer->idx = len;
timer->type = type;
timer->seqnum = seqnum;
+ timer->num = num;
timer->timeout = timeout;
+ timer->duration = duration;
if (type == TIMER_TYPE_EXPECTED) {
timer->rtx_base = timeout;
timer->rtx_retry = 0;
}
recalculate_timer (jitterbuffer, timer);
+ JBUF_SIGNAL_TIMER (priv);
return timer;
}
@@ -1531,7 +1564,7 @@ set_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type,
/* find the seqnum timer */
timer = find_timer (jitterbuffer, type, seqnum);
if (timer == NULL) {
- timer = add_timer (jitterbuffer, type, seqnum, timeout);
+ timer = add_timer (jitterbuffer, type, seqnum, 0, timeout, -1);
} else {
reschedule_timer (jitterbuffer, timer, seqnum, timeout);
}
@@ -1580,9 +1613,6 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
TimerData *timer = NULL;
gint i, len;
- if (!priv->do_retransmission)
- return;
-
/* go through all timers and unschedule the ones with a large gap, also find
* the timer for the seqnum */
len = priv->timers->len;
@@ -1595,10 +1625,8 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
GST_DEBUG_OBJECT (jitterbuffer, "%d, #%d<->#%d gap %d", i,
test->seqnum, seqnum, gap);
- if (test->type == TIMER_TYPE_DEADLINE)
- continue;
-
if (gap == 0) {
+ GST_DEBUG ("found timer for current seqnum");
/* the timer for the current seqnum */
timer = test;
} else if (gap > priv->rtx_delay_reorder) {
@@ -1609,7 +1637,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
}
}
- if (priv->packet_spacing > 0 && do_next_seqnum) {
+ if (priv->packet_spacing > 0 && do_next_seqnum && priv->do_retransmission) {
GstClockTime expected;
/* calculate expected arrival time of the next seqnum */
@@ -1618,12 +1646,13 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
if (timer)
reschedule_timer (jitterbuffer, timer, priv->next_in_seqnum, expected);
else
- add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum,
- expected);
- } else if (timer) {
+ add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum, 0,
+ expected, priv->packet_spacing);
+ } else if (timer && timer->type != TIMER_TYPE_DEADLINE) {
/* if we had a timer, remove it, we don't know when to expect the next
* packet. */
remove_timer (jitterbuffer, timer);
+ JBUF_SIGNAL_EVENT (priv);
}
}
@@ -1649,41 +1678,112 @@ calculate_packet_spacing (GstRtpJitterBuffer * jitterbuffer, guint32 rtptime,
}
static void
+send_lost_event (GstRtpJitterBuffer * jitterbuffer, guint seqnum,
+ guint lost_packets, GstClockTime timestamp, GstClockTime duration,
+ gboolean late)
+{
+ GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
+
+ /* we had a gap and thus we lost some packets. Create an event for this. */
+ if (lost_packets > 1)
+ GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", seqnum,
+ seqnum + lost_packets - 1);
+ else
+ GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", seqnum);
+
+ priv->num_late += lost_packets;
+ priv->discont = TRUE;
+
+ /* update our expected next packet but make sure the seqnum increases */
+ if (seqnum + lost_packets > priv->next_seqnum) {
+ priv->next_seqnum = (seqnum + lost_packets) & 0xffff;
+ priv->last_popped_seqnum = seqnum;
+ priv->last_out_time = timestamp;
+ }
+ if (priv->do_lost) {
+ GstEvent *event;
+
+ /* create paket lost event */
+ event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
+ gst_structure_new ("GstRTPPacketLost",
+ "seqnum", G_TYPE_UINT, (guint) seqnum,
+ "timestamp", G_TYPE_UINT64, timestamp,
+ "duration", G_TYPE_UINT64, duration,
+ "late", G_TYPE_BOOLEAN, late, NULL));
+ JBUF_UNLOCK (priv);
+ gst_pad_push_event (priv->srcpad, event);
+ JBUF_LOCK (priv);
+ }
+}
+
+static void
calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected,
guint16 seqnum, GstClockTime dts, gint gap)
{
GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
- GstClockTime duration, expected_dts;
+ GstClockTime total_duration, duration, expected_dts;
TimerType type;
GST_DEBUG_OBJECT (jitterbuffer,
"dts %" GST_TIME_FORMAT ", last %" GST_TIME_FORMAT,
GST_TIME_ARGS (dts), GST_TIME_ARGS (priv->last_in_dts));
- /* interpolate between the current time and the last time based on
- * number of packets we are missing, this is the estimated duration
- * for the missing packet based on equidistant packet spacing. Also make
- * sure we never go negative. */
+ /* the total duration spanned by the missing packets */
if (dts >= priv->last_in_dts)
- duration = (dts - priv->last_in_dts) / (gap + 1);
+ total_duration = dts - priv->last_in_dts;
else
- /* packet already lost, timer will timeout quickly */
- duration = 0;
+ total_duration = 0;
+
+ /* interpolate between the current time and the last time based on
+ * number of packets we are missing, this is the estimated duration
+ * for the missing packet based on equidistant packet spacing. */
+ duration = total_duration / (gap + 1);
GST_DEBUG_OBJECT (jitterbuffer, "duration %" GST_TIME_FORMAT,
GST_TIME_ARGS (duration));
+ if (total_duration > priv->latency_ns) {
+ GstClockTime gap_time;
+ guint lost_packets;
+
+ gap_time = total_duration - priv->latency_ns;
+
+ if (duration > 0) {
+ lost_packets = gap_time / duration;
+ gap_time = lost_packets * duration;
+ } else {
+ lost_packets = gap;
+ }
+
+ /* too many lost packets, some of the missing packets are already
+ * too late and we can generate lost packet events for them. */
+ GST_DEBUG_OBJECT (jitterbuffer, "too many lost packets %" GST_TIME_FORMAT
+ " > %" GST_TIME_FORMAT ", consider %u lost",
+ GST_TIME_ARGS (total_duration), GST_TIME_ARGS (priv->latency_ns),
+ lost_packets);
+
+ /* this timer will fire immediately and the lost event will be pushed from
+ * the timer thread */
+ add_timer (jitterbuffer, TIMER_TYPE_LOST, expected, lost_packets,
+ priv->last_in_dts + duration, gap_time);
+
+ expected += lost_packets;
+ priv->last_in_dts += gap_time;
+ }
+
expected_dts = priv->last_in_dts + duration;
if (priv->do_retransmission) {
- expected++;
type = TIMER_TYPE_EXPECTED;
+ /* if we had a timer for the first missing packet, leave it. */
+ if (find_timer (jitterbuffer, type, expected))
+ expected++;
} else {
type = TIMER_TYPE_LOST;
}
while (expected < seqnum) {
- add_timer (jitterbuffer, type, expected, expected_dts);
+ add_timer (jitterbuffer, type, expected, 0, expected_dts, duration);
expected_dts += duration;
expected++;
}
@@ -1811,6 +1911,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
GST_DEBUG_OBJECT (jitterbuffer, "%d missing packets", gap);
/* fill in the gap with EXPECTED timers */
calculate_expected (jitterbuffer, expected, seqnum, dts, gap);
+
do_next_seqnum = TRUE;
}
}
@@ -1834,6 +1935,9 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
* while we wait */
set_timer (jitterbuffer, TIMER_TYPE_DEADLINE, seqnum, dts);
do_next_seqnum = TRUE;
+ /* take rtptime and dts to calculate packet spacing */
+ priv->ips_rtptime = rtptime;
+ priv->ips_dts = dts;
}
if (do_next_seqnum) {
priv->last_in_seqnum = seqnum;
@@ -1894,8 +1998,8 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
do_handle_sync (jitterbuffer);
/* signal addition of new buffer when the _loop is waiting. */
- if (priv->waiting && priv->active)
- JBUF_SIGNAL (priv);
+ if (priv->active && priv->waiting_timer)
+ JBUF_SIGNAL_EVENT (priv);
/* let's unschedule and unblock any waiting buffers. We only want to do this
* when the tail buffer changed */
@@ -2071,6 +2175,9 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum)
dts = GST_BUFFER_DTS (outbuf);
pts = GST_BUFFER_PTS (outbuf);
+ dts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, dts);
+ pts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, pts);
+
/* apply timestamp with offset to buffer now */
GST_BUFFER_DTS (outbuf) = apply_offset (jitterbuffer, dts);
GST_BUFFER_PTS (outbuf) = apply_offset (jitterbuffer, pts);
@@ -2191,9 +2298,9 @@ wait:
}
/* the timeout for when we expected a packet expired */
-static GstFlowReturn
+static gboolean
do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
- GstClockTimeDiff clock_jitter)
+ GstClockTime now)
{
GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
GstEvent *event;
@@ -2226,95 +2333,85 @@ do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
reschedule_timer (jitterbuffer, timer, timer->seqnum,
timer->rtx_base + timer->rtx_retry);
- return priv->srcresult;
+ return FALSE;
}
/* a packet is lost */
-static GstFlowReturn
+static gboolean
do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
- GstClockTimeDiff clock_jitter)
+ GstClockTime now)
{
GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
- GstClockTime duration = GST_CLOCK_TIME_NONE;
- guint32 lost_packets = 1;
- gboolean lost_packets_late = FALSE;
-
-#if 0
- if (clock_jitter > 0
- && clock_jitter > (priv->latency_ns + priv->peer_latency)) {
- GstClockTimeDiff total_duration;
- GstClockTime out_time_diff;
-
- out_time_diff =
- apply_offset (jitterbuffer, timer->timeout) - timer->timeout;
- total_duration = MIN (out_time_diff, clock_jitter);
-
- if (duration > 0)
- lost_packets = total_duration / duration;
- else
- lost_packets = gap;
- total_duration = lost_packets * duration;
+ GstClockTime duration, timestamp;
+ guint seqnum, num;
+ gboolean late;
+
+ seqnum = timer->seqnum;
+ timestamp = apply_offset (jitterbuffer, timer->timeout);
+ duration = timer->duration;
+ if (duration == GST_CLOCK_TIME_NONE && priv->packet_spacing > 0)
+ duration = priv->packet_spacing;
+ num = MAX (timer->num, 1);
+ late = timer->num > 0;
- GST_DEBUG_OBJECT (jitterbuffer,
- "Current sync_time has expired a long time ago (+%" GST_TIME_FORMAT
- ") Cover up %d lost packets with duration %" GST_TIME_FORMAT,
- GST_TIME_ARGS (clock_jitter),
- lost_packets, GST_TIME_ARGS (total_duration));
+ /* remove timer now */
+ remove_timer (jitterbuffer, timer);
+ JBUF_SIGNAL_EVENT (priv);
- duration = total_duration;
- lost_packets_late = TRUE;
- }
-#endif
+ send_lost_event (jitterbuffer, seqnum, num, timestamp, duration, late);
- /* we had a gap and thus we lost some packets. Create an event for this. */
- if (lost_packets > 1)
- GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", timer->seqnum,
- timer->seqnum + lost_packets - 1);
- else
- GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", timer->seqnum);
+ return TRUE;
+}
- priv->num_late += lost_packets;
- priv->discont = TRUE;
+static gboolean
+do_eos_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
+ GstClockTime now)
+{
+ GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
- /* update our expected next packet */
- priv->last_popped_seqnum = timer->seqnum;
- priv->last_out_time = apply_offset (jitterbuffer, timer->timeout);
- if (timer->seqnum + lost_packets > priv->next_seqnum)
- priv->next_seqnum = (timer->seqnum + lost_packets) & 0xffff;
- /* remove timer now */
+ GST_INFO_OBJECT (jitterbuffer, "got the NPT timeout");
remove_timer (jitterbuffer, timer);
+ JBUF_SIGNAL_EVENT (priv);
- if (priv->do_lost) {
- GstEvent *event;
+ return TRUE;
+}
- /* create paket lost event */
- event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
- gst_structure_new ("GstRTPPacketLost",
- "seqnum", G_TYPE_UINT, (guint) priv->last_popped_seqnum,
- "timestamp", G_TYPE_UINT64, priv->last_out_time,
- "duration", G_TYPE_UINT64, duration,
- "late", G_TYPE_BOOLEAN, lost_packets_late, NULL));
- JBUF_UNLOCK (priv);
- gst_pad_push_event (priv->srcpad, event);
- JBUF_LOCK_CHECK (priv, flushing);
- }
- return GST_FLOW_OK;
+static gboolean
+do_deadline_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
+ GstClockTime now)
+{
+ GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
- /* ERRORS */
-flushing:
- {
- GST_DEBUG_OBJECT (jitterbuffer, "we are flushing");
- return priv->srcresult;
- }
+ GST_INFO_OBJECT (jitterbuffer, "got deadline timeout");
+
+ priv->next_seqnum = timer->seqnum;
+ remove_timer (jitterbuffer, timer);
+ JBUF_SIGNAL_EVENT (priv);
+
+ return TRUE;
}
-static GstFlowReturn
-do_eos_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer)
+static gboolean
+do_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
+ GstClockTime now)
{
- GST_INFO_OBJECT (jitterbuffer, "got the NPT timeout");
- remove_timer (jitterbuffer, timer);
+ gboolean removed = FALSE;
- return GST_FLOW_EOS;
+ switch (timer->type) {
+ case TIMER_TYPE_EXPECTED:
+ removed = do_expected_timeout (jitterbuffer, timer, now);
+ break;
+ case TIMER_TYPE_LOST:
+ removed = do_lost_timeout (jitterbuffer, timer, now);
+ break;
+ case TIMER_TYPE_DEADLINE:
+ removed = do_deadline_timeout (jitterbuffer, timer, now);
+ break;
+ case TIMER_TYPE_EOS:
+ removed = do_eos_timeout (jitterbuffer, timer, now);
+ break;
+ }
+ return removed;
}
/* called when we need to wait for the next timeout.
@@ -2324,137 +2421,100 @@ do_eos_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer)
*
* If there are no timers, we wait on a gcond until something new happens.
*/
-static GstFlowReturn
+static void
wait_next_timeout (GstRtpJitterBuffer * jitterbuffer)
{
GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
- GstFlowReturn result = GST_FLOW_OK;
- gint i, len;
- TimerData *timer = NULL;
- GstClockTime timer_timeout = -1;
- gint timer_idx;
-
- len = priv->timers->len;
- for (i = 0; i < len; i++) {
- TimerData *test = &g_array_index (priv->timers, TimerData, i);
- GstClockTime test_timeout = get_timeout (jitterbuffer, test);
+ GstClockTime now = 0;
- GST_DEBUG_OBJECT (jitterbuffer, "%d, %d, %" GST_TIME_FORMAT,
- i, test->seqnum, GST_TIME_ARGS (test_timeout));
-
- /* find the smallest timeout */
- if (timer == NULL || test_timeout == -1 || test_timeout < timer_timeout) {
- timer = test;
- timer_timeout = test_timeout;
- if (timer_timeout == -1)
- break;
+ JBUF_LOCK (priv);
+ while (priv->timer_running) {
+ TimerData *timer = NULL;
+ GstClockTime timer_timeout = -1;
+ gint i, len;
+
+ GST_DEBUG_OBJECT (jitterbuffer, "now %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (now));
+
+ len = priv->timers->len;
+ for (i = 0; i < len; i++) {
+ TimerData *test = &g_array_index (priv->timers, TimerData, i);
+ GstClockTime test_timeout = get_timeout (jitterbuffer, test);
+
+ GST_DEBUG_OBJECT (jitterbuffer, "%d, %d, %d, %" GST_TIME_FORMAT,
+ i, test->type, test->seqnum, GST_TIME_ARGS (test_timeout));
+
+ /* no timestamp, timeout immeditately */
+ if (test_timeout == -1 || test_timeout <= now) {
+ if (do_timeout (jitterbuffer, test, now))
+ len--;
+ i--;
+ } else if (timer == NULL || test_timeout < timer_timeout) {
+ /* find the smallest timeout */
+ timer = test;
+ timer_timeout = test_timeout;
+ }
}
- }
- if (timer) {
- GstClock *clock;
- GstClockTime sync_time;
- GstClockID id;
- GstClockReturn ret;
- GstClockTimeDiff clock_jitter;
+ if (timer) {
+ GstClock *clock;
+ GstClockTime sync_time;
+ GstClockID id;
+ GstClockReturn ret;
+ GstClockTimeDiff clock_jitter;
+
+ GST_OBJECT_LOCK (jitterbuffer);
+ clock = GST_ELEMENT_CLOCK (jitterbuffer);
+ if (!clock) {
+ GST_OBJECT_UNLOCK (jitterbuffer);
+ /* let's just push if there is no clock */
+ GST_DEBUG_OBJECT (jitterbuffer, "No clock, timeout right away");
+ now = timer_timeout;
+ continue;
+ }
- /* no timestamp, timeout immeditately */
- if (timer_timeout == -1)
- goto do_timeout;
+ /* prepare for sync against clock */
+ sync_time = timer_timeout + GST_ELEMENT_CAST (jitterbuffer)->base_time;
+ /* add latency of peer to get input time */
+ sync_time += priv->peer_latency;
- GST_OBJECT_LOCK (jitterbuffer);
- clock = GST_ELEMENT_CLOCK (jitterbuffer);
- if (!clock) {
- GST_OBJECT_UNLOCK (jitterbuffer);
- /* let's just push if there is no clock */
- GST_DEBUG_OBJECT (jitterbuffer, "No clock, timeout right away");
- goto do_timeout;
- }
+ GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT
+ " with sync time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (timer_timeout), GST_TIME_ARGS (sync_time));
- /* prepare for sync against clock */
- sync_time = timer_timeout + GST_ELEMENT_CAST (jitterbuffer)->base_time;
- /* add latency of peer to get input time */
- sync_time += priv->peer_latency;
+ /* create an entry for the clock */
+ id = priv->clock_id = gst_clock_new_single_shot_id (clock, sync_time);
+ priv->timer_timeout = timer_timeout;
+ priv->timer_seqnum = timer->seqnum;
+ GST_OBJECT_UNLOCK (jitterbuffer);
- GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT
- " with sync time %" GST_TIME_FORMAT,
- GST_TIME_ARGS (timer_timeout), GST_TIME_ARGS (sync_time));
+ /* release the lock so that the other end can push stuff or unlock */
+ JBUF_UNLOCK (priv);
- /* create an entry for the clock */
- id = priv->clock_id = gst_clock_new_single_shot_id (clock, sync_time);
- priv->unscheduled = FALSE;
- priv->timer_timeout = timer_timeout;
- priv->timer_seqnum = timer->seqnum;
- timer_idx = timer->idx;
- GST_OBJECT_UNLOCK (jitterbuffer);
+ ret = gst_clock_id_wait (id, &clock_jitter);
- /* release the lock so that the other end can push stuff or unlock */
- JBUF_UNLOCK (priv);
+ JBUF_LOCK (priv);
+ if (!priv->timer_running)
+ break;
- ret = gst_clock_id_wait (id, &clock_jitter);
+ GST_DEBUG_OBJECT (jitterbuffer, "sync done, %d, #%d, %" G_GINT64_FORMAT,
+ ret, priv->timer_seqnum, clock_jitter);
+ /* and free the entry */
+ gst_clock_id_unref (id);
+ priv->clock_id = NULL;
- JBUF_LOCK (priv);
- GST_DEBUG_OBJECT (jitterbuffer, "sync done, %d, #%d, %" G_GINT64_FORMAT,
- ret, priv->timer_seqnum, clock_jitter);
- /* and free the entry */
- gst_clock_id_unref (id);
- priv->clock_id = NULL;
-
- /* at this point, the clock could have been unlocked by a timeout, a new
- * tail element was added to the queue or because we are shutting down. Check
- * for shutdown first. */
- if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK))
- goto flushing;
-
- if (priv->timers->len <= timer_idx)
- goto done;
-
- /* we released the lock, the array might have changed */
- timer = &g_array_index (priv->timers, TimerData, timer_idx);
- /* if changed to timeout immediately, do so */
- if (timer->timeout == -1)
- goto do_timeout;
-
- /* if we got unscheduled and we are not flushing, it's because a new tail
- * element became available in the queue or we flushed the queue.
- * Grab it and try to push or sync. */
- if (ret == GST_CLOCK_UNSCHEDULED || priv->unscheduled) {
- GST_DEBUG_OBJECT (jitterbuffer, "Wait got unscheduled");
- goto done;
- }
-
- do_timeout:
- switch (timer->type) {
- case TIMER_TYPE_EXPECTED:
- result = do_expected_timeout (jitterbuffer, timer, clock_jitter);
- break;
- case TIMER_TYPE_LOST:
- result = do_lost_timeout (jitterbuffer, timer, clock_jitter);
- break;
- case TIMER_TYPE_DEADLINE:
- priv->next_seqnum = timer->seqnum;
- remove_timer (jitterbuffer, timer);
- break;
- case TIMER_TYPE_EOS:
- result = do_eos_timeout (jitterbuffer, timer);
- break;
+ if (ret != GST_CLOCK_UNSCHEDULED)
+ now = timer_timeout + MAX (clock_jitter, 0);
+ } else {
+ /* no timers, wait for activity */
+ GST_DEBUG_OBJECT (jitterbuffer, "waiting");
+ JBUF_WAIT_TIMER (priv);
+ GST_DEBUG_OBJECT (jitterbuffer, "waiting done");
}
- } else {
- /* no timers, wait for activity */
- GST_DEBUG_OBJECT (jitterbuffer, "waiting");
- priv->waiting = TRUE;
- JBUF_WAIT_CHECK (priv, flushing);
- priv->waiting = FALSE;
- GST_DEBUG_OBJECT (jitterbuffer, "waiting done");
}
+ JBUF_UNLOCK (priv);
-done:
- return result;
-
-flushing:
- {
- GST_DEBUG_OBJECT (jitterbuffer, "we are flushing");
- return priv->srcresult;
- }
+ GST_DEBUG_OBJECT (jitterbuffer, "we are stopping");
+ return;
}
/*
@@ -2474,9 +2534,13 @@ gst_rtp_jitter_buffer_loop (GstRtpJitterBuffer * jitterbuffer)
JBUF_LOCK_CHECK (priv, flushing);
do {
result = handle_next_buffer (jitterbuffer);
- if (G_LIKELY (result == GST_FLOW_WAIT))
+ if (G_LIKELY (result == GST_FLOW_WAIT)) {
+ GST_DEBUG_OBJECT (jitterbuffer, "waiting for event");
/* now wait for the next event */
- result = wait_next_timeout (jitterbuffer);
+ JBUF_WAIT_EVENT (priv, flushing);
+ GST_DEBUG_OBJECT (jitterbuffer, "waiting for event done");
+ result = GST_FLOW_OK;
+ }
}
while (result == GST_FLOW_OK);
JBUF_UNLOCK (priv);
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c
index c9beff72..a445be97 100644
--- a/gst/rtpmanager/gstrtpsession.c
+++ b/gst/rtpmanager/gstrtpsession.c
@@ -1614,6 +1614,7 @@ gst_rtp_session_chain_recv_rtp (GstPad * pad, GstObject * parent,
GstFlowReturn ret;
GstClockTime current_time, running_time;
GstClockTime timestamp;
+ guint64 ntpnstime;
rtpsession = GST_RTP_SESSION (parent);
priv = rtpsession->priv;
@@ -1627,13 +1628,14 @@ gst_rtp_session_chain_recv_rtp (GstPad * pad, GstObject * parent,
running_time =
gst_segment_to_running_time (&rtpsession->recv_rtp_seg, GST_FORMAT_TIME,
timestamp);
+ ntpnstime = GST_CLOCK_TIME_NONE;
} else {
- get_current_times (rtpsession, &running_time, NULL);
+ get_current_times (rtpsession, &running_time, &ntpnstime);
}
current_time = gst_clock_get_time (priv->sysclock);
ret = rtp_session_process_rtp (priv->session, buffer, current_time,
- running_time);
+ running_time, ntpnstime);
if (ret != GST_FLOW_OK)
goto push_error;
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index 7794efd9..d06ad26c 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -119,7 +119,7 @@ G_DEFINE_TYPE (RTPSession, rtp_session, G_TYPE_OBJECT);
static guint32 rtp_session_create_new_ssrc (RTPSession * sess);
static RTPSource *obtain_source (RTPSession * sess, guint32 ssrc,
- gboolean * created, RTPArrivalStats * arrival, gboolean rtp);
+ gboolean * created, RTPPacketInfo * pinfo, gboolean rtp);
static RTPSource *obtain_internal_source (RTPSession * sess,
guint32 ssrc, gboolean * created);
static GstFlowReturn rtp_session_schedule_bye_locked (RTPSession * sess,
@@ -1163,12 +1163,12 @@ static RTPSourceCallbacks callbacks = {
static gboolean
check_collision (RTPSession * sess, RTPSource * source,
- RTPArrivalStats * arrival, gboolean rtp)
+ RTPPacketInfo * pinfo, gboolean rtp)
{
guint32 ssrc;
- /* If we have no arrival address, we can't do collision checking */
- if (!arrival->address)
+ /* If we have no pinfo address, we can't do collision checking */
+ if (!pinfo->address)
return FALSE;
ssrc = rtp_source_get_ssrc (source);
@@ -1185,17 +1185,17 @@ check_collision (RTPSession * sess, RTPSource * source,
}
if (from) {
- if (__g_socket_address_equal (from, arrival->address)) {
+ if (__g_socket_address_equal (from, pinfo->address)) {
/* Address is the same */
return FALSE;
} else {
GST_LOG ("we have a third-party collision or loop ssrc:%x", ssrc);
if (sess->favor_new) {
if (rtp_source_find_conflicting_address (source,
- arrival->address, arrival->current_time)) {
+ pinfo->address, pinfo->current_time)) {
gchar *buf1;
- buf1 = __g_socket_address_to_string (arrival->address);
+ buf1 = __g_socket_address_to_string (pinfo->address);
GST_LOG ("Known conflict on %x for %s, dropping packet", ssrc,
buf1);
g_free (buf1);
@@ -1208,18 +1208,18 @@ check_collision (RTPSession * sess, RTPSource * source,
* a new source. Save old address in possible conflict list
*/
rtp_source_add_conflicting_address (source, from,
- arrival->current_time);
+ pinfo->current_time);
buf1 = __g_socket_address_to_string (from);
- buf2 = __g_socket_address_to_string (arrival->address);
+ buf2 = __g_socket_address_to_string (pinfo->address);
GST_DEBUG ("New conflict for ssrc %x, replacing %s with %s,"
" saving old as known conflict", ssrc, buf1, buf2);
if (rtp)
- rtp_source_set_rtp_from (source, arrival->address);
+ rtp_source_set_rtp_from (source, pinfo->address);
else
- rtp_source_set_rtcp_from (source, arrival->address);
+ rtp_source_set_rtcp_from (source, pinfo->address);
g_free (buf1);
g_free (buf2);
@@ -1234,9 +1234,9 @@ check_collision (RTPSession * sess, RTPSource * source,
} else {
/* We don't already have a from address for RTP, just set it */
if (rtp)
- rtp_source_set_rtp_from (source, arrival->address);
+ rtp_source_set_rtp_from (source, pinfo->address);
else
- rtp_source_set_rtcp_from (source, arrival->address);
+ rtp_source_set_rtcp_from (source, pinfo->address);
return FALSE;
}
@@ -1246,16 +1246,16 @@ check_collision (RTPSession * sess, RTPSource * source,
*/
} else {
/* This is sending with our ssrc, is it an address we already know */
- if (rtp_source_find_conflicting_address (source, arrival->address,
- arrival->current_time)) {
+ if (rtp_source_find_conflicting_address (source, pinfo->address,
+ pinfo->current_time)) {
/* Its a known conflict, its probably a loop, not a collision
* lets just drop the incoming packet
*/
GST_DEBUG ("Our packets are being looped back to us, dropping");
} else {
/* Its a new collision, lets change our SSRC */
- rtp_source_add_conflicting_address (source, arrival->address,
- arrival->current_time);
+ rtp_source_add_conflicting_address (source, pinfo->address,
+ pinfo->current_time);
GST_DEBUG ("Collision for SSRC %x", ssrc);
/* mark the source BYE */
@@ -1266,7 +1266,7 @@ check_collision (RTPSession * sess, RTPSource * source,
on_ssrc_collision (sess, source);
- rtp_session_schedule_bye_locked (sess, arrival->current_time);
+ rtp_session_schedule_bye_locked (sess, pinfo->current_time);
}
}
@@ -1302,7 +1302,7 @@ add_source (RTPSession * sess, RTPSource * src)
* unreffed after usage. */
static RTPSource *
obtain_source (RTPSession * sess, guint32 ssrc, gboolean * created,
- RTPArrivalStats * arrival, gboolean rtp)
+ RTPPacketInfo * pinfo, gboolean rtp)
{
RTPSource *source;
@@ -1322,11 +1322,11 @@ obtain_source (RTPSession * sess, guint32 ssrc, gboolean * created,
g_object_set (source, "probation", 0, NULL);
/* store from address, if any */
- if (arrival->address) {
+ if (pinfo->address) {
if (rtp)
- rtp_source_set_rtp_from (source, arrival->address);
+ rtp_source_set_rtp_from (source, pinfo->address);
else
- rtp_source_set_rtcp_from (source, arrival->address);
+ rtp_source_set_rtcp_from (source, pinfo->address);
}
/* configure a callback on the source */
@@ -1337,7 +1337,7 @@ obtain_source (RTPSession * sess, guint32 ssrc, gboolean * created,
} else {
*created = FALSE;
/* check for collision, this updates the address when not previously set */
- if (check_collision (sess, source, arrival, rtp)) {
+ if (check_collision (sess, source, pinfo, rtp)) {
return NULL;
}
/* Receiving RTCP packets of an SSRC is a strong indication that we
@@ -1346,9 +1346,9 @@ obtain_source (RTPSession * sess, guint32 ssrc, gboolean * created,
g_object_set (source, "probation", 0, NULL);
}
/* update last activity */
- source->last_activity = arrival->current_time;
+ source->last_activity = pinfo->current_time;
if (rtp)
- source->last_rtp_activity = arrival->current_time;
+ source->last_rtp_activity = pinfo->current_time;
g_object_ref (source);
return source;
@@ -1550,51 +1550,104 @@ rtp_session_create_source (RTPSession * sess)
return source;
}
-/* update the RTPArrivalStats structure with the current time and other bits
- * about the current buffer we are handling.
- * This function is typically called when a validated packet is received.
- * This function should be called with the SESSION_LOCK
- */
-static void
-update_arrival_stats (RTPSession * sess, RTPArrivalStats * arrival,
- gboolean rtp, GstBuffer * buffer, GstClockTime current_time,
- GstClockTime running_time, guint64 ntpnstime)
+static gboolean
+update_packet (GstBuffer ** buffer, guint idx, RTPPacketInfo * pinfo)
{
GstNetAddressMeta *meta;
- GstRTPBuffer rtpb = { NULL };
-
- /* get time of arrival */
- arrival->current_time = current_time;
- arrival->running_time = running_time;
- arrival->ntpnstime = ntpnstime;
/* get packet size including header overhead */
- arrival->bytes = gst_buffer_get_size (buffer) + sess->header_len;
+ pinfo->bytes += gst_buffer_get_size (*buffer) + pinfo->header_len;
+ pinfo->packets++;
+
+ if (pinfo->rtp) {
+ GstRTPBuffer rtp = { NULL };
+
+ if (!gst_rtp_buffer_map (*buffer, GST_MAP_READ, &rtp))
+ goto invalid_packet;
+
+ pinfo->payload_len += gst_rtp_buffer_get_payload_len (&rtp);
+ if (idx == 0) {
+ gint i;
+
+ /* only keep info for first buffer */
+ pinfo->ssrc = gst_rtp_buffer_get_ssrc (&rtp);
+ pinfo->seqnum = gst_rtp_buffer_get_seq (&rtp);
+ pinfo->pt = gst_rtp_buffer_get_payload_type (&rtp);
+ pinfo->rtptime = gst_rtp_buffer_get_timestamp (&rtp);
+ /* copy available csrc */
+ pinfo->csrc_count = gst_rtp_buffer_get_csrc_count (&rtp);
+ for (i = 0; i < pinfo->csrc_count; i++)
+ pinfo->csrcs[i] = gst_rtp_buffer_get_csrc (&rtp, i);
+ }
+ gst_rtp_buffer_unmap (&rtp);
+ }
- if (rtp) {
- gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtpb);
- arrival->payload_len = gst_rtp_buffer_get_payload_len (&rtpb);
- gst_rtp_buffer_unmap (&rtpb);
- } else {
- arrival->payload_len = 0;
+ if (idx == 0) {
+ /* for netbuffer we can store the IP address to check for collisions */
+ meta = gst_buffer_get_net_address_meta (*buffer);
+ if (pinfo->address)
+ g_object_unref (pinfo->address);
+ if (meta) {
+ pinfo->address = G_SOCKET_ADDRESS (g_object_ref (meta->addr));
+ } else {
+ pinfo->address = NULL;
+ }
+ }
+ return TRUE;
+
+ /* ERRORS */
+invalid_packet:
+ {
+ GST_DEBUG ("invalid RTP packet received");
+ return FALSE;
}
+}
+
+/* update the RTPPacketInfo structure with the current time and other bits
+ * about the current buffer we are handling.
+ * This function is typically called when a validated packet is received.
+ * This function should be called with the SESSION_LOCK
+ */
+static gboolean
+update_packet_info (RTPSession * sess, RTPPacketInfo * pinfo,
+ gboolean send, gboolean rtp, gboolean is_list, gpointer data,
+ GstClockTime current_time, GstClockTime running_time, guint64 ntpnstime)
+{
+ gboolean res;
+
+ pinfo->send = send;
+ pinfo->rtp = rtp;
+ pinfo->is_list = is_list;
+ pinfo->data = data;
+ pinfo->current_time = current_time;
+ pinfo->running_time = running_time;
+ pinfo->ntpnstime = ntpnstime;
+ pinfo->header_len = sess->header_len;
+ pinfo->bytes = 0;
+ pinfo->payload_len = 0;
+ pinfo->packets = 0;
- /* for netbuffer we can store the IP address to check for collisions */
- meta = gst_buffer_get_net_address_meta (buffer);
- if (arrival->address)
- g_object_unref (arrival->address);
- if (meta) {
- arrival->address = G_SOCKET_ADDRESS (g_object_ref (meta->addr));
+ if (is_list) {
+ GstBufferList *list = GST_BUFFER_LIST_CAST (data);
+ res =
+ gst_buffer_list_foreach (list, (GstBufferListFunc) update_packet,
+ pinfo);
} else {
- arrival->address = NULL;
+ GstBuffer *buffer = GST_BUFFER_CAST (data);
+ res = update_packet (&buffer, 0, pinfo);
}
+ return res;
}
static void
-clean_arrival_stats (RTPArrivalStats * arrival)
+clean_packet_info (RTPPacketInfo * pinfo)
{
- if (arrival->address)
- g_object_unref (arrival->address);
+ if (pinfo->address)
+ g_object_unref (pinfo->address);
+ if (pinfo->data) {
+ gst_mini_object_unref (pinfo->data);
+ pinfo->data = NULL;
+ }
}
static gboolean
@@ -1659,45 +1712,32 @@ source_update_sender (RTPSession * sess, RTPSource * source,
*/
GstFlowReturn
rtp_session_process_rtp (RTPSession * sess, GstBuffer * buffer,
- GstClockTime current_time, GstClockTime running_time)
+ GstClockTime current_time, GstClockTime running_time, guint64 ntpnstime)
{
GstFlowReturn result;
guint32 ssrc;
RTPSource *source;
gboolean created;
gboolean prevsender, prevactive;
- RTPArrivalStats arrival = { NULL, };
- guint32 csrcs[16];
- guint8 i, count;
+ RTPPacketInfo pinfo = { 0, };
guint64 oldrate;
- GstRTPBuffer rtp = { NULL };
g_return_val_if_fail (RTP_IS_SESSION (sess), GST_FLOW_ERROR);
g_return_val_if_fail (GST_IS_BUFFER (buffer), GST_FLOW_ERROR);
- if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
- goto invalid_packet;
-
- /* get SSRC to look up in session database */
- ssrc = gst_rtp_buffer_get_ssrc (&rtp);
- /* copy available csrc for later */
- count = gst_rtp_buffer_get_csrc_count (&rtp);
- /* make sure to not overflow our array. An RTP buffer can maximally contain
- * 16 CSRCs */
- count = MIN (count, 16);
-
- for (i = 0; i < count; i++)
- csrcs[i] = gst_rtp_buffer_get_csrc (&rtp, i);
-
- gst_rtp_buffer_unmap (&rtp);
-
RTP_SESSION_LOCK (sess);
- /* update arrival stats */
- update_arrival_stats (sess, &arrival, TRUE, buffer, current_time,
- running_time, -1);
+ /* update pinfo stats */
+ if (!update_packet_info (sess, &pinfo, FALSE, TRUE, FALSE, buffer,
+ current_time, running_time, ntpnstime)) {
+ GST_DEBUG ("invalid RTP packet received");
+ RTP_SESSION_UNLOCK (sess);
+ return rtp_session_process_rtcp (sess, buffer, current_time, ntpnstime);
+ }
+
+ ssrc = pinfo.ssrc;
- source = obtain_source (sess, ssrc, &created, &arrival, TRUE);
+ source = obtain_source (sess, ssrc, &created, &pinfo, TRUE);
if (!source)
goto collision;
@@ -1706,7 +1746,7 @@ rtp_session_process_rtp (RTPSession * sess, GstBuffer * buffer,
oldrate = source->bitrate;
/* let source process the packet */
- result = rtp_source_process_rtp (source, buffer, &arrival);
+ result = rtp_source_process_rtp (source, &pinfo);
/* source became active */
if (source_update_active (sess, source, prevactive))
@@ -1722,16 +1762,17 @@ rtp_session_process_rtp (RTPSession * sess, GstBuffer * buffer,
if (source->validated) {
gboolean created;
+ gint i;
/* for validated sources, we add the CSRCs as well */
- for (i = 0; i < count; i++) {
+ for (i = 0; i < pinfo.csrc_count; i++) {
guint32 csrc;
RTPSource *csrc_src;
- csrc = csrcs[i];
+ csrc = pinfo.csrcs[i];
/* get source */
- csrc_src = obtain_source (sess, csrc, &created, &arrival, TRUE);
+ csrc_src = obtain_source (sess, csrc, &created, &pinfo, TRUE);
if (!csrc_src)
continue;
@@ -1748,22 +1789,16 @@ rtp_session_process_rtp (RTPSession * sess, GstBuffer * buffer,
RTP_SESSION_UNLOCK (sess);
- clean_arrival_stats (&arrival);
+ clean_packet_info (&pinfo);
return result;
/* ERRORS */
-invalid_packet:
- {
- gst_buffer_unref (buffer);
- GST_DEBUG ("invalid RTP packet received");
- return GST_FLOW_OK;
- }
collision:
{
RTP_SESSION_UNLOCK (sess);
gst_buffer_unref (buffer);
- clean_arrival_stats (&arrival);
+ clean_packet_info (&pinfo);
GST_DEBUG ("ignoring packet because its collisioning");
return GST_FLOW_OK;
}
@@ -1771,7 +1806,7 @@ collision:
static void
rtp_session_process_rb (RTPSession * sess, RTPSource * source,
- GstRTCPPacket * packet, RTPArrivalStats * arrival)
+ GstRTCPPacket * packet, RTPPacketInfo * pinfo)
{
guint count, i;
@@ -1797,7 +1832,7 @@ rtp_session_process_rb (RTPSession * sess, RTPSource * source,
* the sender of the RTCP message. We could also compare our stats against
* the other sender to see if we are better or worse. */
/* FIXME, need to keep track who the RB block is from */
- rtp_source_process_rb (source, arrival->ntpnstime, fractionlost,
+ rtp_source_process_rb (source, pinfo->ntpnstime, fractionlost,
packetslost, exthighestseq, jitter, lsr, dlsr);
}
}
@@ -1815,7 +1850,7 @@ rtp_session_process_rb (RTPSession * sess, RTPSource * source,
*/
static void
rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival, gboolean * do_sync)
+ RTPPacketInfo * pinfo, gboolean * do_sync)
{
guint32 senderssrc, rtptime, packet_count, octet_count;
guint64 ntptime;
@@ -1826,9 +1861,9 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet,
&packet_count, &octet_count);
GST_DEBUG ("got SR packet: SSRC %08x, time %" GST_TIME_FORMAT,
- senderssrc, GST_TIME_ARGS (arrival->current_time));
+ senderssrc, GST_TIME_ARGS (pinfo->current_time));
- source = obtain_source (sess, senderssrc, &created, arrival, FALSE);
+ source = obtain_source (sess, senderssrc, &created, pinfo, FALSE);
if (!source)
return;
@@ -1841,7 +1876,7 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet,
prevsender = RTP_SOURCE_IS_SENDER (source);
/* first update the source */
- rtp_source_process_sr (source, arrival->current_time, ntptime, rtptime,
+ rtp_source_process_sr (source, pinfo->current_time, ntptime, rtptime,
packet_count, octet_count);
source_update_sender (sess, source, prevsender);
@@ -1849,7 +1884,7 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet,
if (created)
on_new_ssrc (sess, source);
- rtp_session_process_rb (sess, source, packet, arrival);
+ rtp_session_process_rb (sess, source, packet, pinfo);
g_object_unref (source);
}
@@ -1861,7 +1896,7 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet,
*/
static void
rtp_session_process_rr (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival)
+ RTPPacketInfo * pinfo)
{
guint32 senderssrc;
RTPSource *source;
@@ -1871,21 +1906,21 @@ rtp_session_process_rr (RTPSession * sess, GstRTCPPacket * packet,
GST_DEBUG ("got RR packet: SSRC %08x", senderssrc);
- source = obtain_source (sess, senderssrc, &created, arrival, FALSE);
+ source = obtain_source (sess, senderssrc, &created, pinfo, FALSE);
if (!source)
return;
if (created)
on_new_ssrc (sess, source);
- rtp_session_process_rb (sess, source, packet, arrival);
+ rtp_session_process_rb (sess, source, packet, pinfo);
g_object_unref (source);
}
/* Get SDES items and store them in the SSRC */
static void
rtp_session_process_sdes (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival)
+ RTPPacketInfo * pinfo)
{
guint items, i, j;
gboolean more_items, more_entries;
@@ -1908,7 +1943,7 @@ rtp_session_process_sdes (RTPSession * sess, GstRTCPPacket * packet,
changed = FALSE;
/* find src, no probation when dealing with RTCP */
- source = obtain_source (sess, ssrc, &created, arrival, FALSE);
+ source = obtain_source (sess, ssrc, &created, pinfo, FALSE);
if (!source)
return;
@@ -1974,7 +2009,7 @@ rtp_session_process_sdes (RTPSession * sess, GstRTCPPacket * packet,
*/
static void
rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival)
+ RTPPacketInfo * pinfo)
{
guint count, i;
gchar *reason;
@@ -1994,7 +2029,7 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
GST_DEBUG ("SSRC: %08x", ssrc);
/* find src and mark bye, no probation when dealing with RTCP */
- source = obtain_source (sess, ssrc, &created, arrival, FALSE);
+ source = obtain_source (sess, ssrc, &created, pinfo, FALSE);
if (!source)
return;
@@ -2005,7 +2040,7 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
}
/* store time for when we need to time out this source */
- source->bye_time = arrival->current_time;
+ source->bye_time = pinfo->current_time;
prevactive = RTP_SOURCE_IS_ACTIVE (source);
prevsender = RTP_SOURCE_IS_SENDER (source);
@@ -2025,17 +2060,17 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
* Perform reverse reconsideration but only when we are not scheduling a
* BYE ourselves. */
if (sess->next_rtcp_check_time != GST_CLOCK_TIME_NONE &&
- arrival->current_time < sess->next_rtcp_check_time) {
+ pinfo->current_time < sess->next_rtcp_check_time) {
GstClockTime time_remaining;
- time_remaining = sess->next_rtcp_check_time - arrival->current_time;
+ time_remaining = sess->next_rtcp_check_time - pinfo->current_time;
sess->next_rtcp_check_time =
gst_util_uint64_scale (time_remaining, members, pmembers);
GST_DEBUG ("reverse reconsideration %" GST_TIME_FORMAT,
GST_TIME_ARGS (sess->next_rtcp_check_time));
- sess->next_rtcp_check_time += arrival->current_time;
+ sess->next_rtcp_check_time += pinfo->current_time;
/* mark pending reconsider. We only want to signal the reconsideration
* once after we handled all the source in the bye packet */
@@ -2062,7 +2097,7 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
static void
rtp_session_process_app (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival)
+ RTPPacketInfo * pinfo)
{
GST_DEBUG ("received APP");
}
@@ -2200,7 +2235,7 @@ rtp_session_process_nack (RTPSession * sess, guint32 sender_ssrc,
static void
rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet,
- RTPArrivalStats * arrival, GstClockTime current_time)
+ RTPPacketInfo * pinfo, GstClockTime current_time)
{
GstRTCPType type = gst_rtcp_packet_get_type (packet);
GstRTCPFBType fbtype = gst_rtcp_packet_fb_get_type (packet);
@@ -2221,7 +2256,7 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet,
fci_buffer = gst_buffer_copy_region (packet->rtcp->buffer,
GST_BUFFER_COPY_MEMORY, fci_data - packet->rtcp->map.data,
fci_length);
- GST_BUFFER_TIMESTAMP (fci_buffer) = arrival->running_time;
+ GST_BUFFER_TIMESTAMP (fci_buffer) = pinfo->running_time;
}
RTP_SESSION_UNLOCK (sess);
@@ -2238,7 +2273,7 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet,
return;
if (sess->rtcp_feedback_retention_window) {
- rtp_source_retain_rtcp_packet (src, packet, arrival->running_time);
+ rtp_source_retain_rtcp_packet (src, packet, pinfo->running_time);
}
if (src->internal ||
@@ -2292,7 +2327,7 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer,
{
GstRTCPPacket packet;
gboolean more, is_bye = FALSE, do_sync = FALSE;
- RTPArrivalStats arrival = { NULL, };
+ RTPPacketInfo pinfo = { 0, };
GstFlowReturn result = GST_FLOW_OK;
GstRTCPBuffer rtcp = { NULL, };
@@ -2305,9 +2340,9 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer,
GST_DEBUG ("received RTCP packet");
RTP_SESSION_LOCK (sess);
- /* update arrival stats */
- update_arrival_stats (sess, &arrival, FALSE, buffer, current_time, -1,
- ntpnstime);
+ /* update pinfo stats */
+ update_packet_info (sess, &pinfo, FALSE, FALSE, FALSE, buffer, current_time,
+ -1, ntpnstime);
/* start processing the compound packet */
gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp);
@@ -2325,26 +2360,26 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer,
switch (type) {
case GST_RTCP_TYPE_SR:
- rtp_session_process_sr (sess, &packet, &arrival, &do_sync);
+ rtp_session_process_sr (sess, &packet, &pinfo, &do_sync);
break;
case GST_RTCP_TYPE_RR:
- rtp_session_process_rr (sess, &packet, &arrival);
+ rtp_session_process_rr (sess, &packet, &pinfo);
break;
case GST_RTCP_TYPE_SDES:
- rtp_session_process_sdes (sess, &packet, &arrival);
+ rtp_session_process_sdes (sess, &packet, &pinfo);
break;
case GST_RTCP_TYPE_BYE:
is_bye = TRUE;
/* don't try to attempt lip-sync anymore for streams with a BYE */
do_sync = FALSE;
- rtp_session_process_bye (sess, &packet, &arrival);
+ rtp_session_process_bye (sess, &packet, &pinfo);
break;
case GST_RTCP_TYPE_APP:
- rtp_session_process_app (sess, &packet, &arrival);
+ rtp_session_process_app (sess, &packet, &pinfo);
break;
case GST_RTCP_TYPE_RTPFB:
case GST_RTCP_TYPE_PSFB:
- rtp_session_process_feedback (sess, &packet, &arrival, current_time);
+ rtp_session_process_feedback (sess, &packet, &pinfo, current_time);
break;
default:
GST_WARNING ("got unknown RTCP packet");
@@ -2361,17 +2396,18 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer,
if (sess->scheduled_bye) {
if (is_bye) {
sess->stats.bye_members++;
- UPDATE_AVG (sess->stats.avg_rtcp_packet_size, arrival.bytes);
+ UPDATE_AVG (sess->stats.avg_rtcp_packet_size, pinfo.bytes);
}
} else {
/* keep track of average packet size */
- UPDATE_AVG (sess->stats.avg_rtcp_packet_size, arrival.bytes);
+ UPDATE_AVG (sess->stats.avg_rtcp_packet_size, pinfo.bytes);
}
GST_DEBUG ("%p, received RTCP packet, avg size %u, %u", &sess->stats,
- sess->stats.avg_rtcp_packet_size, arrival.bytes);
+ sess->stats.avg_rtcp_packet_size, pinfo.bytes);
RTP_SESSION_UNLOCK (sess);
- clean_arrival_stats (&arrival);
+ pinfo.data = NULL;
+ clean_packet_info (&pinfo);
/* notify caller of sr packets in the callback */
if (do_sync && sess->callbacks.sync_rtcp) {
@@ -2446,9 +2482,7 @@ rtp_session_send_rtp (RTPSession * sess, gpointer data, gboolean is_list,
RTPSource *source;
gboolean prevsender;
guint64 oldrate;
- GstBuffer *buffer;
- GstRTPBuffer rtp = { NULL };
- guint32 ssrc;
+ RTPPacketInfo pinfo = { 0, };
gboolean created;
g_return_val_if_fail (RTP_IS_SESSION (sess), GST_FLOW_ERROR);
@@ -2456,26 +2490,12 @@ rtp_session_send_rtp (RTPSession * sess, gpointer data, gboolean is_list,
GST_LOG ("received RTP %s for sending", is_list ? "list" : "packet");
- if (is_list) {
- GstBufferList *list = GST_BUFFER_LIST_CAST (data);
-
- buffer = gst_buffer_list_get (list, 0);
- if (!buffer)
- goto no_buffer;
- } else {
- buffer = GST_BUFFER_CAST (data);
- }
-
- if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
+ RTP_SESSION_LOCK (sess);
+ if (!update_packet_info (sess, &pinfo, TRUE, TRUE, is_list, data,
+ current_time, running_time, -1))
goto invalid_packet;
- /* get SSRC and look up in session database */
- ssrc = gst_rtp_buffer_get_ssrc (&rtp);
-
- gst_rtp_buffer_unmap (&rtp);
-
- RTP_SESSION_LOCK (sess);
- source = obtain_internal_source (sess, ssrc, &created);
+ source = obtain_internal_source (sess, pinfo.ssrc, &created);
/* update last activity */
source->last_rtp_activity = current_time;
@@ -2484,7 +2504,7 @@ rtp_session_send_rtp (RTPSession * sess, gpointer data, gboolean is_list,
oldrate = source->bitrate;
/* we use our own source to send */
- result = rtp_source_send_rtp (source, data, is_list, running_time);
+ result = rtp_source_send_rtp (source, &pinfo);
source_update_sender (sess, source, prevsender);
@@ -2493,21 +2513,17 @@ rtp_session_send_rtp (RTPSession * sess, gpointer data, gboolean is_list,
RTP_SESSION_UNLOCK (sess);
g_object_unref (source);
+ clean_packet_info (&pinfo);
return result;
invalid_packet:
{
gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+ RTP_SESSION_UNLOCK (sess);
GST_DEBUG ("invalid RTP packet received");
return GST_FLOW_OK;
}
-no_buffer:
- {
- gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
- GST_DEBUG ("no buffer in list");
- return GST_FLOW_OK;
- }
}
static void
diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h
index c8dee204..3ca6c161 100644
--- a/gst/rtpmanager/rtpsession.h
+++ b/gst/rtpmanager/rtpsession.h
@@ -333,7 +333,8 @@ RTPSource* rtp_session_create_source (RTPSession *sess);
/* processing packets from receivers */
GstFlowReturn rtp_session_process_rtp (RTPSession *sess, GstBuffer *buffer,
GstClockTime current_time,
- GstClockTime running_time);
+ GstClockTime running_time,
+ guint64 ntpnstime);
GstFlowReturn rtp_session_process_rtcp (RTPSession *sess, GstBuffer *buffer,
GstClockTime current_time,
guint64 ntpnstime);
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index 48c6986c..dea2e78a 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -863,34 +863,27 @@ get_clock_rate (RTPSource * src, guint8 payload)
* 50 milliseconds apart and arrive 60 milliseconds apart, then the jitter is 10
* milliseconds. */
static void
-calculate_jitter (RTPSource * src, GstBuffer * buffer,
- RTPArrivalStats * arrival)
+calculate_jitter (RTPSource * src, RTPPacketInfo * pinfo)
{
GstClockTime running_time;
guint32 rtparrival, transit, rtptime;
gint32 diff;
gint clock_rate;
guint8 pt;
- GstRTPBuffer rtp = { NULL };
/* get arrival time */
- if ((running_time = arrival->running_time) == GST_CLOCK_TIME_NONE)
+ if ((running_time = pinfo->running_time) == GST_CLOCK_TIME_NONE)
goto no_time;
- if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
- goto invalid_packet;
-
- pt = gst_rtp_buffer_get_payload_type (&rtp);
+ pt = pinfo->pt;
GST_LOG ("SSRC %08x got payload %d", src->ssrc, pt);
/* get clockrate */
- if ((clock_rate = get_clock_rate (src, pt)) == -1) {
- gst_rtp_buffer_unmap (&rtp);
+ if ((clock_rate = get_clock_rate (src, pt)) == -1)
goto no_clock_rate;
- }
- rtptime = gst_rtp_buffer_get_timestamp (&rtp);
+ rtptime = pinfo->rtptime;
/* convert arrival time to RTP timestamp units, truncate to 32 bits, we don't
* care about the absolute value, just the difference. */
@@ -919,7 +912,6 @@ calculate_jitter (RTPSource * src, GstBuffer * buffer,
GST_LOG ("rtparrival %u, rtptime %u, clock-rate %d, diff %d, jitter: %f",
rtparrival, rtptime, clock_rate, diff, (src->stats.jitter) / 16.0);
- gst_rtp_buffer_unmap (&rtp);
return;
/* ERRORS */
@@ -928,11 +920,6 @@ no_time:
GST_WARNING ("cannot get current running_time");
return;
}
-invalid_packet:
- {
- GST_WARNING ("invalid RTP packet");
- return;
- }
no_clock_rate:
{
GST_WARNING ("cannot get clock-rate for pt %d", pt);
@@ -993,35 +980,29 @@ do_bitrate_estimation (RTPSource * src, GstClockTime running_time,
/**
* rtp_source_process_rtp:
* @src: an #RTPSource
- * @buffer: an RTP buffer
+ * @pinfo: an #RTPPacketInfo
*
- * Let @src handle the incomming RTP @buffer.
+ * Let @src handle the incomming RTP packet described in @pinfo.
*
* Returns: a #GstFlowReturn.
*/
GstFlowReturn
-rtp_source_process_rtp (RTPSource * src, GstBuffer * buffer,
- RTPArrivalStats * arrival)
+rtp_source_process_rtp (RTPSource * src, RTPPacketInfo * pinfo)
{
GstFlowReturn result = GST_FLOW_OK;
guint16 seqnr, udelta;
RTPSourceStats *stats;
guint16 expected;
- GstRTPBuffer rtp = { NULL };
g_return_val_if_fail (RTP_IS_SOURCE (src), GST_FLOW_ERROR);
- g_return_val_if_fail (GST_IS_BUFFER (buffer), GST_FLOW_ERROR);
+ g_return_val_if_fail (pinfo != NULL, GST_FLOW_ERROR);
stats = &src->stats;
- if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
- goto invalid_packet;
-
- seqnr = gst_rtp_buffer_get_seq (&rtp);
- gst_rtp_buffer_unmap (&rtp);
+ seqnr = pinfo->seqnum;
if (stats->cycles == -1) {
- GST_DEBUG ("received first buffer");
+ GST_DEBUG ("received first packet");
/* first time we heard of this source */
init_seq (src, seqnr);
src->stats.max_seq = seqnr - 1;
@@ -1046,9 +1027,10 @@ rtp_source_process_rtp (RTPSource * src, GstBuffer * buffer,
} else {
GstBuffer *q;
- GST_DEBUG ("probation %d: queue buffer", src->curr_probation);
+ GST_DEBUG ("probation %d: queue packet", src->curr_probation);
/* when still in probation, keep packets in a list. */
- g_queue_push_tail (src->packets, buffer);
+ g_queue_push_tail (src->packets, pinfo->data);
+ pinfo->data = NULL;
/* remove packets from queue if there are too many */
while (g_queue_get_length (src->packets) > RTP_MAX_PROBATION_LEN) {
q = g_queue_pop_head (src->packets);
@@ -1084,40 +1066,34 @@ rtp_source_process_rtp (RTPSource * src, GstBuffer * buffer,
GST_WARNING ("duplicate or reordered packet (seqnr %d)", seqnr);
}
- src->stats.octets_received += arrival->payload_len;
- src->stats.bytes_received += arrival->bytes;
+ src->stats.octets_received += pinfo->payload_len;
+ src->stats.bytes_received += pinfo->bytes;
src->stats.packets_received++;
/* for the bitrate estimation */
- src->bytes_received += arrival->payload_len;
+ src->bytes_received += pinfo->payload_len;
/* the source that sent the packet must be a sender */
src->is_sender = TRUE;
src->validated = TRUE;
- do_bitrate_estimation (src, arrival->running_time, &src->bytes_received);
+ do_bitrate_estimation (src, pinfo->running_time, &src->bytes_received);
GST_LOG ("seq %d, PC: %" G_GUINT64_FORMAT ", OC: %" G_GUINT64_FORMAT,
seqnr, src->stats.packets_received, src->stats.octets_received);
/* calculate jitter for the stats */
- calculate_jitter (src, buffer, arrival);
+ calculate_jitter (src, pinfo);
/* we're ready to push the RTP packet now */
- result = push_packet (src, buffer);
+ result = push_packet (src, pinfo->data);
+ pinfo->data = NULL;
done:
return result;
/* ERRORS */
-invalid_packet:
- {
- GST_WARNING ("invalid packet received");
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- }
bad_sequence:
{
GST_WARNING ("unacceptable seqnum received");
- gst_buffer_unref (buffer);
return GST_FLOW_OK;
}
probation_seqnum:
@@ -1125,7 +1101,6 @@ probation_seqnum:
GST_WARNING ("probation: seqnr %d != expected %d", seqnr, expected);
src->curr_probation = src->probation;
src->stats.max_seq = seqnr;
- gst_buffer_unref (buffer);
return GST_FLOW_OK;
}
}
@@ -1168,68 +1143,30 @@ rtp_source_mark_bye (RTPSource * src, const gchar * reason)
* Returns: a #GstFlowReturn.
*/
GstFlowReturn
-rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
- GstClockTime running_time)
+rtp_source_send_rtp (RTPSource * src, RTPPacketInfo * pinfo)
{
GstFlowReturn result;
- guint len;
+ GstClockTime running_time;
guint32 rtptime;
guint64 ext_rtptime;
guint64 rt_diff, rtp_diff;
- GstBufferList *list = NULL;
- GstBuffer *buffer = NULL;
- guint packets;
- GstRTPBuffer rtp = { NULL };
g_return_val_if_fail (RTP_IS_SOURCE (src), GST_FLOW_ERROR);
- g_return_val_if_fail (is_list || GST_IS_BUFFER (data), GST_FLOW_ERROR);
-
- if (is_list) {
- list = GST_BUFFER_LIST_CAST (data);
-
- /* We can grab the caps from the first group, since all
- * groups of a buffer list have same caps. */
- buffer = gst_buffer_list_get (list, 0);
- if (!buffer)
- goto no_buffer;
- } else {
- buffer = GST_BUFFER_CAST (data);
- }
/* we are a sender now */
src->is_sender = TRUE;
- if (is_list) {
- gint i;
-
- /* Each group makes up a network packet. */
- packets = gst_buffer_list_length (list);
- for (i = 0, len = 0; i < packets; i++) {
- if (!gst_rtp_buffer_map (gst_buffer_list_get (list, i), GST_MAP_READ,
- &rtp))
- goto invalid_packet;
-
- len += gst_rtp_buffer_get_payload_len (&rtp);
- gst_rtp_buffer_unmap (&rtp);
- }
- /* subsequent info taken from first list member */
- gst_rtp_buffer_map (gst_buffer_list_get (list, 0), GST_MAP_READ, &rtp);
- } else {
- packets = 1;
- if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
- goto invalid_packet;
-
- len = gst_rtp_buffer_get_payload_len (&rtp);
- }
-
/* update stats for the SR */
- src->stats.packets_sent += packets;
- src->stats.octets_sent += len;
- src->bytes_sent += len;
+ src->stats.packets_sent += pinfo->packets;
+ src->stats.octets_sent += pinfo->payload_len;
+ src->bytes_sent += pinfo->payload_len;
+
+ running_time = pinfo->running_time;
do_bitrate_estimation (src, running_time, &src->bytes_sent);
- rtptime = gst_rtp_buffer_get_timestamp (&rtp);
+ rtptime = pinfo->rtptime;
+
ext_rtptime = src->last_rtptime;
ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime);
@@ -1253,36 +1190,21 @@ rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
src->last_rtptime = ext_rtptime;
/* push packet */
- if (!src->callbacks.push_rtp) {
- gst_rtp_buffer_unmap (&rtp);
+ if (!src->callbacks.push_rtp)
goto no_callback;
- }
- gst_rtp_buffer_unmap (&rtp);
- GST_LOG ("pushing RTP %s %" G_GUINT64_FORMAT, is_list ? "list" : "packet",
- src->stats.packets_sent);
+ GST_LOG ("pushing RTP %s %" G_GUINT64_FORMAT,
+ pinfo->is_list ? "list" : "packet", src->stats.packets_sent);
- result = src->callbacks.push_rtp (src, data, src->user_data);
+ result = src->callbacks.push_rtp (src, pinfo->data, src->user_data);
+ pinfo->data = NULL;
return result;
/* ERRORS */
-invalid_packet:
- {
- GST_WARNING ("invalid packet received");
- gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
- return GST_FLOW_OK;
- }
-no_buffer:
- {
- GST_WARNING ("no buffers in buffer list");
- gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
- return GST_FLOW_OK;
- }
no_callback:
{
GST_WARNING ("no callback installed, dropping packet");
- gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
return GST_FLOW_OK;
}
}
diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h
index 09a339b0..3a957bb6 100644
--- a/gst/rtpmanager/rtpsource.h
+++ b/gst/rtpmanager/rtpsource.h
@@ -72,7 +72,7 @@ typedef struct _RTPSourceClass RTPSourceClass;
/**
* RTPSourcePushRTP:
* @src: an #RTPSource
- * @buffer: the RTP buffer ready for processing
+ * @data: the RTP buffer or buffer list ready for processing
* @user_data: user data specified when registering
*
* This callback will be called when @src has @buffer ready for further
@@ -80,7 +80,7 @@ typedef struct _RTPSourceClass RTPSourceClass;
*
* Returns: a #GstFlowReturn.
*/
-typedef GstFlowReturn (*RTPSourcePushRTP) (RTPSource *src, GstBuffer *buffer,
+typedef GstFlowReturn (*RTPSourcePushRTP) (RTPSource *src, gpointer data,
gpointer user_data);
/**
@@ -229,10 +229,10 @@ void rtp_source_set_rtp_from (RTPSource *src, GSocketAddress *
void rtp_source_set_rtcp_from (RTPSource *src, GSocketAddress *address);
/* handling RTP */
-GstFlowReturn rtp_source_process_rtp (RTPSource *src, GstBuffer *buffer, RTPArrivalStats *arrival);
+GstFlowReturn rtp_source_process_rtp (RTPSource *src, RTPPacketInfo *pinfo);
+
+GstFlowReturn rtp_source_send_rtp (RTPSource *src, RTPPacketInfo *pinfo);
-GstFlowReturn rtp_source_send_rtp (RTPSource *src, gpointer data, gboolean is_list,
- GstClockTime running_time);
/* RTCP messages */
void rtp_source_process_sr (RTPSource *src, GstClockTime time, guint64 ntptime,
guint32 rtptime, guint32 packet_count, guint32 octet_count);
diff --git a/gst/rtpmanager/rtpstats.h b/gst/rtpmanager/rtpstats.h
index f27e9e74..cb9e06c7 100644
--- a/gst/rtpmanager/rtpstats.h
+++ b/gst/rtpmanager/rtpstats.h
@@ -56,24 +56,44 @@ typedef struct {
} RTPReceiverReport;
/**
- * RTPArrivalStats:
+ * RTPPacketInfo:
+ * @send: if this is a packet for sending
+ * @rtp: if this info is about an RTP packet
+ * @is_list: if this is a bufferlist
+ * @data: a #GstBuffer or #GstBufferList
* @address: address of the sender of the packet
* @current_time: current time according to the system clock
- * @running_time: arrival time of a packet as buffer running_time
- * @ntpnstime: arrival time of a packet NTP time in nanoseconds
+ * @running_time: time of a packet as buffer running_time
+ * @ntpnstime: time of a packet NTP time in nanoseconds
+ * @header_len: number of overhead bytes per packet
* @bytes: bytes of the packet including lowlevel overhead
* @payload_len: bytes of the RTP payload
+ * @seqnum: the seqnum of the packet
+ * @pt: the payload type of the packet
+ * @rtptime: the RTP time of the packet
*
- * Structure holding information about the arrival stats of a packet.
+ * Structure holding information about the packet.
*/
typedef struct {
+ gboolean send;
+ gboolean rtp;
+ gboolean is_list;
+ gpointer data;
GSocketAddress *address;
GstClockTime current_time;
GstClockTime running_time;
guint64 ntpnstime;
+ guint header_len;
guint bytes;
+ guint packets;
guint payload_len;
-} RTPArrivalStats;
+ guint32 ssrc;
+ guint16 seqnum;
+ guint8 pt;
+ guint32 rtptime;
+ guint32 csrc_count;
+ guint32 csrcs[16];
+} RTPPacketInfo;
/**
* RTPSourceStats:
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index 697b1835..47a5ea96 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/rtsp/gstrtsp.c b/gst/rtsp/gstrtsp.c
index 7f126530..66e2c3f6 100644
--- a/gst/rtsp/gstrtsp.c
+++ b/gst/rtsp/gstrtsp.c
@@ -54,7 +54,6 @@ static gboolean
plugin_init (GstPlugin * plugin)
{
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 461e6b75..2be6543c 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -267,7 +267,8 @@ static void gst_rtspsrc_handle_message (GstBin * bin, GstMessage * message);
static gboolean gst_rtspsrc_setup_auth (GstRTSPSrc * src,
GstRTSPMessage * response);
-static void gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd, gint mask);
+static gboolean gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd,
+ gint mask);
static GstRTSPResult gst_rtspsrc_send_cb (GstRTSPExtension * ext,
GstRTSPMessage * request, GstRTSPMessage * response, GstRTSPSrc * src);
@@ -4455,10 +4456,11 @@ gst_rtspsrc_loop_end_cmd (GstRTSPSrc * src, gint cmd, GstRTSPResult ret)
gst_rtspsrc_loop_error_cmd (src, cmd);
}
-static void
+static gboolean
gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd, gint mask)
{
gint old;
+ gboolean flushed = FALSE;
/* start new request */
gst_rtspsrc_loop_start_cmd (src, cmd);
@@ -4484,12 +4486,15 @@ gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd, gint mask)
if (src->busy_cmd & mask) {
GST_DEBUG_OBJECT (src, "connection flush busy %d", src->busy_cmd);
gst_rtspsrc_connection_flush (src, TRUE);
+ flushed = TRUE;
} else {
GST_DEBUG_OBJECT (src, "not interrupting busy cmd %d", src->busy_cmd);
}
if (src->task)
gst_task_start (src->task);
GST_OBJECT_UNLOCK (src);
+
+ return flushed;
}
static gboolean
@@ -7097,10 +7102,11 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition)
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
/* unblock the tcp tasks and make the loop waiting */
- gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP);
- /* make sure it is waiting before we send PAUSE or PLAY below */
- GST_RTSP_STREAM_LOCK (rtspsrc);
- GST_RTSP_STREAM_UNLOCK (rtspsrc);
+ if (gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP)) {
+ /* make sure it is waiting before we send PAUSE or PLAY below */
+ GST_RTSP_STREAM_LOCK (rtspsrc);
+ GST_RTSP_STREAM_UNLOCK (rtspsrc);
+ }
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
break;
diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in
index ce29b647..90236a66 100644
--- a/gst/shapewipe/Makefile.in
+++ b/gst/shapewipe/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in
index 4637044f..fc9fd43d 100644
--- a/gst/smpte/Makefile.in
+++ b/gst/smpte/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in
index 9a2d26ff..dd1a76c0 100644
--- a/gst/spectrum/Makefile.in
+++ b/gst/spectrum/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in
index 09da1f7b..5605d844 100644
--- a/gst/udp/Makefile.in
+++ b/gst/udp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index 85179103..922e381d 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -173,7 +173,7 @@ enum
PROP_USED_SOCKET,
PROP_AUTO_MULTICAST,
PROP_REUSE,
- PROP_BIND_ADDRESS,
+ PROP_ADDRESS,
PROP_LAST
};
@@ -226,9 +226,11 @@ gst_udpsrc_class_init (GstUDPSrcClass * klass)
g_param_spec_int ("port", "Port",
"The port to receive the packets from, 0=allocate", 0, G_MAXUINT16,
UDP_DEFAULT_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /* FIXME 2.0: Remove multicast-group property */
g_object_class_install_property (gobject_class, PROP_MULTICAST_GROUP,
g_param_spec_string ("multicast-group", "Multicast Group",
- "The Address of multicast group to join", UDP_DEFAULT_MULTICAST_GROUP,
+ "The Address of multicast group to join. DEPRECATED: "
+ "Use address property instead", UDP_DEFAULT_MULTICAST_GROUP,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_MULTICAST_IFACE,
g_param_spec_string ("multicast-iface", "Multicast Interface",
@@ -278,16 +280,10 @@ gst_udpsrc_class_init (GstUDPSrcClass * klass)
g_object_class_install_property (gobject_class, PROP_REUSE,
g_param_spec_boolean ("reuse", "Reuse", "Enable reuse of the port",
UDP_DEFAULT_REUSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- /* FIXME 2.0: multicast-group and bind-address should
- * be separated, the former only being the multicast group and
- * the latter always being the address the socket is bound too,
- * even if a multicast group is given.
- */
- g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS,
- g_param_spec_string ("bind-address", "Bind Address",
- "Address to bind the socket to. This is equivalent to the "
- "multicast-group property", UDP_DEFAULT_MULTICAST_GROUP,
+ g_object_class_install_property (gobject_class, PROP_ADDRESS,
+ g_param_spec_string ("address", "Address",
+ "Address to receive packets for. This is equivalent to the "
+ "multicast-group property for now", UDP_DEFAULT_MULTICAST_GROUP,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gst_element_class_add_pad_template (gstelement_class,
@@ -315,7 +311,7 @@ gst_udpsrc_init (GstUDPSrc * udpsrc)
g_strdup_printf ("udp://%s:%u", UDP_DEFAULT_MULTICAST_GROUP,
UDP_DEFAULT_PORT);
- udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
+ udpsrc->address = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
udpsrc->port = UDP_DEFAULT_PORT;
udpsrc->socket = UDP_DEFAULT_SOCKET;
udpsrc->multi_iface = g_strdup (UDP_DEFAULT_MULTICAST_IFACE);
@@ -356,8 +352,8 @@ gst_udpsrc_finalize (GObject * object)
g_free (udpsrc->uri);
udpsrc->uri = NULL;
- g_free (udpsrc->multi_group);
- udpsrc->multi_group = NULL;
+ g_free (udpsrc->address);
+ udpsrc->address = NULL;
if (udpsrc->socket)
g_object_unref (udpsrc->socket);
@@ -587,17 +583,17 @@ skip_error:
static gboolean
gst_udpsrc_set_uri (GstUDPSrc * src, const gchar * uri, GError ** error)
{
- gchar *multi_group;
+ gchar *address;
guint16 port;
- if (!gst_udp_parse_uri (uri, &multi_group, &port))
+ if (!gst_udp_parse_uri (uri, &address, &port))
goto wrong_uri;
if (port == (guint16) - 1)
port = UDP_DEFAULT_PORT;
- g_free (src->multi_group);
- src->multi_group = multi_group;
+ g_free (src->address);
+ src->address = address;
src->port = port;
g_free (src->uri);
@@ -630,22 +626,22 @@ gst_udpsrc_set_property (GObject * object, guint prop_id, const GValue * value,
udpsrc->port = g_value_get_int (value);
g_free (udpsrc->uri);
udpsrc->uri =
- g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port);
+ g_strdup_printf ("udp://%s:%u", udpsrc->address, udpsrc->port);
break;
case PROP_MULTICAST_GROUP:
- case PROP_BIND_ADDRESS:
+ case PROP_ADDRESS:
{
const gchar *group;
- g_free (udpsrc->multi_group);
+ g_free (udpsrc->address);
if ((group = g_value_get_string (value)))
- udpsrc->multi_group = g_strdup (group);
+ udpsrc->address = g_strdup (group);
else
- udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
+ udpsrc->address = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
g_free (udpsrc->uri);
udpsrc->uri =
- g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port);
+ g_strdup_printf ("udp://%s:%u", udpsrc->address, udpsrc->port);
break;
}
case PROP_MULTICAST_IFACE:
@@ -730,8 +726,8 @@ gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value,
g_value_set_int (value, udpsrc->port);
break;
case PROP_MULTICAST_GROUP:
- case PROP_BIND_ADDRESS:
- g_value_set_string (value, udpsrc->multi_group);
+ case PROP_ADDRESS:
+ g_value_set_string (value, udpsrc->address);
break;
case PROP_MULTICAST_IFACE:
g_value_set_string (value, udpsrc->multi_iface);
@@ -769,6 +765,48 @@ gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value,
}
}
+static GInetAddress *
+gst_udpsrc_resolve (GstUDPSrc * src, const gchar * address)
+{
+ GInetAddress *addr;
+ GError *err = NULL;
+ GResolver *resolver;
+
+ addr = g_inet_address_new_from_string (address);
+ if (!addr) {
+ GList *results;
+
+ GST_DEBUG_OBJECT (src, "resolving IP address for host %s", address);
+ resolver = g_resolver_get_default ();
+ results =
+ g_resolver_lookup_by_name (resolver, address, src->cancellable, &err);
+ if (!results)
+ goto name_resolve;
+ addr = G_INET_ADDRESS (g_object_ref (results->data));
+
+ g_resolver_free_addresses (results);
+ g_object_unref (resolver);
+ }
+#ifndef GST_DISABLE_GST_DEBUG
+ {
+ gchar *ip = g_inet_address_to_string (addr);
+
+ GST_DEBUG_OBJECT (src, "IP address for host %s is %s", address, ip);
+ g_free (ip);
+ }
+#endif
+
+ return addr;
+
+name_resolve:
+ {
+ GST_WARNING_OBJECT (src, "Failed to resolve %s: %s", address, err->message);
+ g_clear_error (&err);
+ g_object_unref (resolver);
+ return NULL;
+ }
+}
+
/* create a socket for sending to remote machine */
static gboolean
gst_udpsrc_start (GstBaseSrc * bsrc)
@@ -776,42 +814,18 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
GstUDPSrc *src;
GInetAddress *addr, *bind_addr;
GSocketAddress *bind_saddr;
- GResolver *resolver;
GError *err = NULL;
src = GST_UDPSRC (bsrc);
if (src->socket == NULL) {
/* need to allocate a socket */
- GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->multi_group,
+ GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->address,
src->port);
- addr = g_inet_address_new_from_string (src->multi_group);
- if (!addr) {
- GList *results;
-
- GST_DEBUG_OBJECT (src, "resolving IP address for host %s",
- src->multi_group);
- resolver = g_resolver_get_default ();
- results =
- g_resolver_lookup_by_name (resolver, src->multi_group,
- src->cancellable, &err);
- if (!results)
- goto name_resolve;
- addr = G_INET_ADDRESS (g_object_ref (results->data));
-
- g_resolver_free_addresses (results);
- g_object_unref (resolver);
- }
-#ifndef GST_DISABLE_GST_DEBUG
- {
- gchar *ip = g_inet_address_to_string (addr);
-
- GST_DEBUG_OBJECT (src, "IP address for host %s is %s", src->multi_group,
- ip);
- g_free (ip);
- }
-#endif
+ addr = gst_udpsrc_resolve (src, src->address);
+ if (!addr)
+ goto name_resolve;
if ((src->used_socket =
g_socket_new (g_inet_address_get_family (addr),
@@ -829,9 +843,20 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
GST_DEBUG_OBJECT (src, "binding on port %d", src->port);
+ /* On Windows it's not possible to bind to a multicast address
+ * but the OS will make sure to filter out all packets that
+ * arrive not for the multicast address the socket joined.
+ *
+ * On Linux and others it is necessary to bind to a multicast
+ * address to let the OS filter out all packets that are received
+ * on the same port but for different addresses than the multicast
+ * address
+ */
+#ifdef G_OS_WIN32
if (g_inet_address_get_is_multicast (addr))
bind_addr = g_inet_address_new_any (g_inet_address_get_family (addr));
else
+#endif
bind_addr = G_INET_ADDRESS (g_object_ref (addr));
g_object_unref (addr);
@@ -937,7 +962,7 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
&&
g_inet_address_get_is_multicast (g_inet_socket_address_get_address
(src->addr))) {
- GST_DEBUG_OBJECT (src, "joining multicast group %s", src->multi_group);
+ GST_DEBUG_OBJECT (src, "joining multicast group %s", src->address);
if (!g_socket_join_multicast_group (src->used_socket,
g_inet_socket_address_get_address (src->addr),
FALSE, src->multi_iface, &err))
@@ -971,10 +996,6 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
/* ERRORS */
name_resolve:
{
- GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL),
- ("Name resolval failed: %s", err->message));
- g_clear_error (&err);
- g_object_unref (resolver);
return FALSE;
}
no_socket:
@@ -1054,7 +1075,7 @@ gst_udpsrc_stop (GstBaseSrc * bsrc)
(src->addr))) {
GError *err = NULL;
- GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->multi_group);
+ GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->address);
if (!g_socket_leave_multicast_group (src->used_socket,
g_inet_socket_address_get_address (src->addr), FALSE,
diff --git a/gst/udp/gstudpsrc.h b/gst/udp/gstudpsrc.h
index b7c3f14a..c631e35e 100644
--- a/gst/udp/gstudpsrc.h
+++ b/gst/udp/gstudpsrc.h
@@ -48,7 +48,7 @@ struct _GstUDPSrc {
GstPushSrc parent;
/* properties */
- gchar *multi_group;
+ gchar *address;
gint port;
gchar *multi_iface;
gint ttl;
diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in
index aa1645ab..9fae437f 100644
--- a/gst/videobox/Makefile.in
+++ b/gst/videobox/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in
index c950b1c9..7cff4cf0 100644
--- a/gst/videocrop/Makefile.in
+++ b/gst/videocrop/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in
index 2b58dbca..f2c41fed 100644
--- a/gst/videofilter/Makefile.in
+++ b/gst/videofilter/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/videomixer/Makefile.am b/gst/videomixer/Makefile.am
index 767337e5..483ac908 100644
--- a/gst/videomixer/Makefile.am
+++ b/gst/videomixer/Makefile.am
@@ -1,10 +1,13 @@
plugin_LTLIBRARIES = libgstvideomixer.la
-ORC_SOURCE=blendorc
+ORC_SOURCE=videomixerorc
+
include $(top_srcdir)/common/orc.mak
libgstvideomixer_la_SOURCES = \
blend.c \
+ videoconvert.c \
+ gstcms.c \
videomixer2.c
nodist_libgstvideomixer_la_SOURCES = $(ORC_NODIST_SOURCES)
@@ -12,7 +15,7 @@ libgstvideomixer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-lgstvideo-@GST_API_VERSION@ \
- $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
+ $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
libgstvideomixer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -20,7 +23,9 @@ libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = \
blend.h \
videomixer2.h \
- videomixer2pad.h
+ videomixer2pad.h \
+ videoconvert.h \
+ gstcms.h
Android.mk: Makefile.am $(BUILT_SOURCES)
androgenizer \
diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in
index db0bbb22..548fb5c7 100644
--- a/gst/videomixer/Makefile.in
+++ b/gst/videomixer/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -179,8 +179,10 @@ LTLIBRARIES = $(plugin_LTLIBRARIES)
am__DEPENDENCIES_1 =
libgstvideomixer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_libgstvideomixer_la_OBJECTS = libgstvideomixer_la-blend.lo \
+ libgstvideomixer_la-videoconvert.lo \
+ libgstvideomixer_la-gstcms.lo \
libgstvideomixer_la-videomixer2.lo
am__objects_1 = libgstvideomixer_la-tmp-orc.lo
nodist_libgstvideomixer_la_OBJECTS = $(am__objects_1)
@@ -583,7 +585,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
plugin_LTLIBRARIES = libgstvideomixer.la
-ORC_SOURCE = blendorc
+ORC_SOURCE = videomixerorc
EXTRA_DIST = $(ORC_SOURCE).orc
ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
@@ -595,6 +597,8 @@ cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
cp_v_gen_0 = @echo " CP $@";
libgstvideomixer_la_SOURCES = \
blend.c \
+ videoconvert.c \
+ gstcms.c \
videomixer2.c
nodist_libgstvideomixer_la_SOURCES = $(ORC_NODIST_SOURCES)
@@ -603,7 +607,7 @@ libgstvideomixer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-lgstvideo-@GST_API_VERSION@ \
- $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
+ $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
libgstvideomixer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -612,7 +616,9 @@ libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = \
blend.h \
videomixer2.h \
- videomixer2pad.h
+ videomixer2pad.h \
+ videoconvert.h \
+ gstcms.h
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -696,7 +702,9 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-blend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-gstcms.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-tmp-orc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-videoconvert.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-videomixer2.Plo@am__quote@
.c.o:
@@ -730,6 +738,20 @@ libgstvideomixer_la-blend.lo: blend.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c
+libgstvideomixer_la-videoconvert.lo: videoconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videoconvert.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videoconvert.Tpo -c -o libgstvideomixer_la-videoconvert.lo `test -f 'videoconvert.c' || echo '$(srcdir)/'`videoconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-videoconvert.Tpo $(DEPDIR)/libgstvideomixer_la-videoconvert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videoconvert.c' object='libgstvideomixer_la-videoconvert.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 $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videoconvert.lo `test -f 'videoconvert.c' || echo '$(srcdir)/'`videoconvert.c
+
+libgstvideomixer_la-gstcms.lo: gstcms.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-gstcms.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-gstcms.Tpo -c -o libgstvideomixer_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-gstcms.Tpo $(DEPDIR)/libgstvideomixer_la-gstcms.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcms.c' object='libgstvideomixer_la-gstcms.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 $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c
+
libgstvideomixer_la-videomixer2.lo: videomixer2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videomixer2.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo $(DEPDIR)/libgstvideomixer_la-videomixer2.Plo
diff --git a/gst/videomixer/blend.c b/gst/videomixer/blend.c
index aa5aa516..894ea210 100644
--- a/gst/videomixer/blend.c
+++ b/gst/videomixer/blend.c
@@ -27,7 +27,7 @@
#endif
#include "blend.h"
-#include "blendorc.h"
+#include "videomixerorc.h"
#include <string.h>
diff --git a/gst/videomixer/blendorc-dist.c b/gst/videomixer/blendorc-dist.c
deleted file mode 100644
index 5f6067cd..00000000
--- a/gst/videomixer/blendorc-dist.c
+++ /dev/null
@@ -1,2402 +0,0 @@
-
-/* autogenerated from blendorc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <glib.h>
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-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 <limits.h>
-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 ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-void video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
-void video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
- const guint32 * ORC_RESTRICT s1, int n);
-void video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-
-
-/* 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 */
-
-
-
-/* video_mixer_orc_splat_u32 */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
-{
- int i;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
-
- ptr0 = (orc_union32 *) d1;
-
- /* 0: loadpl */
- var32.i = p1;
-
- for (i = 0; i < n; i++) {
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
- int i;
- int n = ex->n;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
-
- ptr0 = (orc_union32 *) ex->arrays[0];
-
- /* 0: loadpl */
- var32.i = ex->params[24];
-
- for (i = 0; i < n; i++) {
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
- }
-
-}
-
-void
-video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 9, 25, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
- 114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16,
- 4, 112, 0, 24, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
-#else
- p = orc_program_new ();
- orc_program_set_name (p, "video_mixer_orc_splat_u32");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_parameter (p, 4, "p1");
-
- orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_memcpy_u32 */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
- const guint32 * ORC_RESTRICT s1, int n)
-{
- int i;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union32 var32;
- orc_union32 var33;
-
- ptr0 = (orc_union32 *) d1;
- ptr4 = (orc_union32 *) s1;
-
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var32 = ptr4[i];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_memcpy_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
- int i;
- int n = ex->n;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union32 var32;
- orc_union32 var33;
-
- ptr0 = (orc_union32 *) ex->arrays[0];
- ptr4 = (orc_union32 *) ex->arrays[4];
-
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var32 = ptr4[i];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
- }
-
-}
-
-void
-video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
- const guint32 * ORC_RESTRICT s1, int n)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
- 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 117, 51, 50, 11, 4, 4,
- 12, 4, 4, 112, 0, 4, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
-#else
- p = orc_program_new ();
- orc_program_set_name (p, "video_mixer_orc_memcpy_u32");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_source (p, 4, "s1");
-
- orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_blend_u8 */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- int i;
- int j;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- orc_int8 var34;
- orc_int8 var35;
- orc_union16 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_union16 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
-
- for (j = 0; j < m; j++) {
- ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
- ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
- /* 5: loadpw */
- var36.i = p1;
-
- for (i = 0; i < n; i++) {
- /* 0: loadb */
- var34 = ptr0[i];
- /* 1: convubw */
- var38.i = (orc_uint8) var34;
- /* 2: loadb */
- var35 = ptr4[i];
- /* 3: convubw */
- var39.i = (orc_uint8) var35;
- /* 4: subw */
- var40.i = var39.i - var38.i;
- /* 6: mullw */
- var41.i = (var40.i * var36.i) & 0xffff;
- /* 7: shlw */
- var42.i = var38.i << 8;
- /* 8: addw */
- var43.i = var42.i + var41.i;
- /* 9: shruw */
- var44.i = ((orc_uint16) var43.i) >> 8;
- /* 10: convsuswb */
- var37 = ORC_CLAMP_UB (var44.i);
- /* 11: storeb */
- ptr0[i] = var37;
- }
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_blend_u8 (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 var34;
- orc_int8 var35;
- orc_union16 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_union16 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
-
- 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);
-
- /* 5: loadpw */
- var36.i = ex->params[24];
-
- for (i = 0; i < n; i++) {
- /* 0: loadb */
- var34 = ptr0[i];
- /* 1: convubw */
- var38.i = (orc_uint8) var34;
- /* 2: loadb */
- var35 = ptr4[i];
- /* 3: convubw */
- var39.i = (orc_uint8) var35;
- /* 4: subw */
- var40.i = var39.i - var38.i;
- /* 6: mullw */
- var41.i = (var40.i * var36.i) & 0xffff;
- /* 7: shlw */
- var42.i = var38.i << 8;
- /* 8: addw */
- var43.i = var42.i + var41.i;
- /* 9: shruw */
- var44.i = ((orc_uint16) var43.i) >> 8;
- /* 10: convsuswb */
- var37 = ORC_CLAMP_UB (var44.i);
- /* 11: storeb */
- ptr0[i] = var37;
- }
- }
-
-}
-
-void
-video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 7, 9, 24, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
- 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 56, 11, 1, 1, 12,
- 1, 1, 14, 1, 8, 0, 0, 0, 16, 2, 20, 2, 20, 2, 150, 32,
- 0, 150, 33, 4, 98, 33, 33, 32, 89, 33, 33, 24, 93, 32, 32, 16,
- 70, 33, 32, 33, 95, 33, 33, 16, 160, 0, 33, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8);
-#else
- p = orc_program_new ();
- orc_program_set_2d (p);
- orc_program_set_name (p, "video_mixer_orc_blend_u8");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8);
- orc_program_add_destination (p, 1, "d1");
- orc_program_add_source (p, 1, "s1");
- orc_program_add_constant (p, 1, 0x00000008, "c1");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_temporary (p, 2, "t1");
- orc_program_add_temporary (p, 2, "t2");
-
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shlw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
- ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ORC_EXECUTOR_M (ex) = m;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_D1] = d1_stride;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
- ex->params[ORC_VAR_S1] = s1_stride;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_blend_argb */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- int i;
- int j;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union64 var39;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var40;
-#else
- orc_union32 var40;
-#endif
- orc_union32 var41;
- orc_union16 var42;
- orc_int8 var43;
- orc_union32 var44;
- orc_union64 var45;
- orc_union64 var46;
- orc_union64 var47;
- orc_union64 var48;
- orc_union32 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union32 var55;
- orc_union32 var56;
-
- for (j = 0; j < m; j++) {
- ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
- ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
- /* 5: loadpw */
- var39.x4[0] = p1;
- var39.x4[1] = p1;
- var39.x4[2] = p1;
- var39.x4[3] = p1;
- /* 16: loadpl */
- var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var41 = ptr4[i];
- /* 1: convlw */
- var42.i = var41.i;
- /* 2: convwb */
- var43 = var42.i;
- /* 3: splatbl */
- var44.i =
- ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
- 8) | (var43 & 0xff);
- /* 4: convubw */
- var45.x4[0] = (orc_uint8) var44.x4[0];
- var45.x4[1] = (orc_uint8) var44.x4[1];
- var45.x4[2] = (orc_uint8) var44.x4[2];
- var45.x4[3] = (orc_uint8) var44.x4[3];
- /* 6: mullw */
- var46.x4[0] = (var45.x4[0] * var39.x4[0]) & 0xffff;
- var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
- var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
- var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
- /* 7: shruw */
- var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
- var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
- var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
- var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
- /* 8: convubw */
- var48.x4[0] = (orc_uint8) var41.x4[0];
- var48.x4[1] = (orc_uint8) var41.x4[1];
- var48.x4[2] = (orc_uint8) var41.x4[2];
- var48.x4[3] = (orc_uint8) var41.x4[3];
- /* 9: loadl */
- var49 = ptr0[i];
- /* 10: convubw */
- var50.x4[0] = (orc_uint8) var49.x4[0];
- var50.x4[1] = (orc_uint8) var49.x4[1];
- var50.x4[2] = (orc_uint8) var49.x4[2];
- var50.x4[3] = (orc_uint8) var49.x4[3];
- /* 11: subw */
- var51.x4[0] = var48.x4[0] - var50.x4[0];
- var51.x4[1] = var48.x4[1] - var50.x4[1];
- var51.x4[2] = var48.x4[2] - var50.x4[2];
- var51.x4[3] = var48.x4[3] - var50.x4[3];
- /* 12: mullw */
- var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
- var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
- var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
- var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
- /* 13: div255w */
- var53.x4[0] =
- ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
- (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
- var53.x4[1] =
- ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
- (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
- var53.x4[2] =
- ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
- (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
- var53.x4[3] =
- ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
- (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
- /* 14: addw */
- var54.x4[0] = var50.x4[0] + var53.x4[0];
- var54.x4[1] = var50.x4[1] + var53.x4[1];
- var54.x4[2] = var50.x4[2] + var53.x4[2];
- var54.x4[3] = var50.x4[3] + var53.x4[3];
- /* 15: convwb */
- var55.x4[0] = var54.x4[0];
- var55.x4[1] = var54.x4[1];
- var55.x4[2] = var54.x4[2];
- var55.x4[3] = var54.x4[3];
- /* 17: orl */
- var56.i = var55.i | var40.i;
- /* 18: storel */
- ptr0[i] = var56;
- }
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_blend_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_union64 var39;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var40;
-#else
- orc_union32 var40;
-#endif
- orc_union32 var41;
- orc_union16 var42;
- orc_int8 var43;
- orc_union32 var44;
- orc_union64 var45;
- orc_union64 var46;
- orc_union64 var47;
- orc_union64 var48;
- orc_union32 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union32 var55;
- orc_union32 var56;
-
- 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);
-
- /* 5: loadpw */
- var39.x4[0] = ex->params[24];
- var39.x4[1] = ex->params[24];
- var39.x4[2] = ex->params[24];
- var39.x4[3] = ex->params[24];
- /* 16: loadpl */
- var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var41 = ptr4[i];
- /* 1: convlw */
- var42.i = var41.i;
- /* 2: convwb */
- var43 = var42.i;
- /* 3: splatbl */
- var44.i =
- ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
- 8) | (var43 & 0xff);
- /* 4: convubw */
- var45.x4[0] = (orc_uint8) var44.x4[0];
- var45.x4[1] = (orc_uint8) var44.x4[1];
- var45.x4[2] = (orc_uint8) var44.x4[2];
- var45.x4[3] = (orc_uint8) var44.x4[3];
- /* 6: mullw */
- var46.x4[0] = (var45.x4[0] * var39.x4[0]) & 0xffff;
- var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
- var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
- var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
- /* 7: shruw */
- var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
- var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
- var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
- var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
- /* 8: convubw */
- var48.x4[0] = (orc_uint8) var41.x4[0];
- var48.x4[1] = (orc_uint8) var41.x4[1];
- var48.x4[2] = (orc_uint8) var41.x4[2];
- var48.x4[3] = (orc_uint8) var41.x4[3];
- /* 9: loadl */
- var49 = ptr0[i];
- /* 10: convubw */
- var50.x4[0] = (orc_uint8) var49.x4[0];
- var50.x4[1] = (orc_uint8) var49.x4[1];
- var50.x4[2] = (orc_uint8) var49.x4[2];
- var50.x4[3] = (orc_uint8) var49.x4[3];
- /* 11: subw */
- var51.x4[0] = var48.x4[0] - var50.x4[0];
- var51.x4[1] = var48.x4[1] - var50.x4[1];
- var51.x4[2] = var48.x4[2] - var50.x4[2];
- var51.x4[3] = var48.x4[3] - var50.x4[3];
- /* 12: mullw */
- var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
- var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
- var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
- var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
- /* 13: div255w */
- var53.x4[0] =
- ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
- (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
- var53.x4[1] =
- ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
- (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
- var53.x4[2] =
- ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
- (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
- var53.x4[3] =
- ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
- (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
- /* 14: addw */
- var54.x4[0] = var50.x4[0] + var53.x4[0];
- var54.x4[1] = var50.x4[1] + var53.x4[1];
- var54.x4[2] = var50.x4[2] + var53.x4[2];
- var54.x4[3] = var50.x4[3] + var53.x4[3];
- /* 15: convwb */
- var55.x4[0] = var54.x4[0];
- var55.x4[1] = var54.x4[1];
- var55.x4[2] = var54.x4[2];
- var55.x4[3] = var54.x4[3];
- /* 17: orl */
- var56.i = var55.i | var40.i;
- /* 18: storel */
- ptr0[i] = var56;
- }
- }
-
-}
-
-void
-video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
- 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4,
- 4, 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0,
- 16, 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8,
- 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38,
- 35, 21, 2, 89, 38, 38, 24, 21, 2, 95, 38, 38, 17, 21, 2, 150,
- 37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98, 37, 37, 36,
- 21, 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2, 70, 36, 36,
- 37, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb);
-#else
- p = orc_program_new ();
- orc_program_set_2d (p);
- orc_program_set_name (p, "video_mixer_orc_blend_argb");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_source (p, 4, "s1");
- orc_program_add_constant (p, 4, 0x000000ff, "c1");
- orc_program_add_constant (p, 4, 0x00000008, "c2");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_temporary (p, 4, "t1");
- orc_program_add_temporary (p, 2, "t2");
- orc_program_add_temporary (p, 1, "t3");
- orc_program_add_temporary (p, 4, "t4");
- orc_program_add_temporary (p, 8, "t5");
- orc_program_add_temporary (p, 8, "t6");
- orc_program_add_temporary (p, 8, "t7");
-
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
- ORC_VAR_D1);
- orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ORC_EXECUTOR_M (ex) = m;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_D1] = d1_stride;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
- ex->params[ORC_VAR_S1] = s1_stride;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_blend_bgra */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- int i;
- int j;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union64 var40;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var41;
-#else
- orc_union32 var41;
-#endif
- orc_union32 var42;
- orc_union32 var43;
- orc_union16 var44;
- orc_int8 var45;
- orc_union32 var46;
- orc_union64 var47;
- orc_union64 var48;
- orc_union64 var49;
- orc_union64 var50;
- orc_union32 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union64 var55;
- orc_union64 var56;
- orc_union32 var57;
- orc_union32 var58;
-
- for (j = 0; j < m; j++) {
- ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
- ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
- /* 6: loadpw */
- var40.x4[0] = p1;
- var40.x4[1] = p1;
- var40.x4[2] = p1;
- var40.x4[3] = p1;
- /* 17: loadpl */
- var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var42 = ptr4[i];
- /* 1: shrul */
- var43.i = ((orc_uint32) var42.i) >> 24;
- /* 2: convlw */
- var44.i = var43.i;
- /* 3: convwb */
- var45 = var44.i;
- /* 4: splatbl */
- var46.i =
- ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
- 8) | (var45 & 0xff);
- /* 5: convubw */
- var47.x4[0] = (orc_uint8) var46.x4[0];
- var47.x4[1] = (orc_uint8) var46.x4[1];
- var47.x4[2] = (orc_uint8) var46.x4[2];
- var47.x4[3] = (orc_uint8) var46.x4[3];
- /* 7: mullw */
- var48.x4[0] = (var47.x4[0] * var40.x4[0]) & 0xffff;
- var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
- var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
- var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
- /* 8: shruw */
- var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
- var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
- var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
- var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
- /* 9: convubw */
- var50.x4[0] = (orc_uint8) var42.x4[0];
- var50.x4[1] = (orc_uint8) var42.x4[1];
- var50.x4[2] = (orc_uint8) var42.x4[2];
- var50.x4[3] = (orc_uint8) var42.x4[3];
- /* 10: loadl */
- var51 = ptr0[i];
- /* 11: convubw */
- var52.x4[0] = (orc_uint8) var51.x4[0];
- var52.x4[1] = (orc_uint8) var51.x4[1];
- var52.x4[2] = (orc_uint8) var51.x4[2];
- var52.x4[3] = (orc_uint8) var51.x4[3];
- /* 12: subw */
- var53.x4[0] = var50.x4[0] - var52.x4[0];
- var53.x4[1] = var50.x4[1] - var52.x4[1];
- var53.x4[2] = var50.x4[2] - var52.x4[2];
- var53.x4[3] = var50.x4[3] - var52.x4[3];
- /* 13: mullw */
- var54.x4[0] = (var53.x4[0] * var49.x4[0]) & 0xffff;
- var54.x4[1] = (var53.x4[1] * var49.x4[1]) & 0xffff;
- var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
- var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
- /* 14: div255w */
- var55.x4[0] =
- ((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) +
- (((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8;
- var55.x4[1] =
- ((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
- (((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
- var55.x4[2] =
- ((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
- (((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
- var55.x4[3] =
- ((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
- (((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
- /* 15: addw */
- var56.x4[0] = var52.x4[0] + var55.x4[0];
- var56.x4[1] = var52.x4[1] + var55.x4[1];
- var56.x4[2] = var52.x4[2] + var55.x4[2];
- var56.x4[3] = var52.x4[3] + var55.x4[3];
- /* 16: convwb */
- var57.x4[0] = var56.x4[0];
- var57.x4[1] = var56.x4[1];
- var57.x4[2] = var56.x4[2];
- var57.x4[3] = var56.x4[3];
- /* 18: orl */
- var58.i = var57.i | var41.i;
- /* 19: storel */
- ptr0[i] = var58;
- }
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_blend_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_union64 var40;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var41;
-#else
- orc_union32 var41;
-#endif
- orc_union32 var42;
- orc_union32 var43;
- orc_union16 var44;
- orc_int8 var45;
- orc_union32 var46;
- orc_union64 var47;
- orc_union64 var48;
- orc_union64 var49;
- orc_union64 var50;
- orc_union32 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union64 var55;
- orc_union64 var56;
- orc_union32 var57;
- orc_union32 var58;
-
- 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);
-
- /* 6: loadpw */
- var40.x4[0] = ex->params[24];
- var40.x4[1] = ex->params[24];
- var40.x4[2] = ex->params[24];
- var40.x4[3] = ex->params[24];
- /* 17: loadpl */
- var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var42 = ptr4[i];
- /* 1: shrul */
- var43.i = ((orc_uint32) var42.i) >> 24;
- /* 2: convlw */
- var44.i = var43.i;
- /* 3: convwb */
- var45 = var44.i;
- /* 4: splatbl */
- var46.i =
- ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
- 8) | (var45 & 0xff);
- /* 5: convubw */
- var47.x4[0] = (orc_uint8) var46.x4[0];
- var47.x4[1] = (orc_uint8) var46.x4[1];
- var47.x4[2] = (orc_uint8) var46.x4[2];
- var47.x4[3] = (orc_uint8) var46.x4[3];
- /* 7: mullw */
- var48.x4[0] = (var47.x4[0] * var40.x4[0]) & 0xffff;
- var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
- var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
- var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
- /* 8: shruw */
- var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
- var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
- var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
- var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
- /* 9: convubw */
- var50.x4[0] = (orc_uint8) var42.x4[0];
- var50.x4[1] = (orc_uint8) var42.x4[1];
- var50.x4[2] = (orc_uint8) var42.x4[2];
- var50.x4[3] = (orc_uint8) var42.x4[3];
- /* 10: loadl */
- var51 = ptr0[i];
- /* 11: convubw */
- var52.x4[0] = (orc_uint8) var51.x4[0];
- var52.x4[1] = (orc_uint8) var51.x4[1];
- var52.x4[2] = (orc_uint8) var51.x4[2];
- var52.x4[3] = (orc_uint8) var51.x4[3];
- /* 12: subw */
- var53.x4[0] = var50.x4[0] - var52.x4[0];
- var53.x4[1] = var50.x4[1] - var52.x4[1];
- var53.x4[2] = var50.x4[2] - var52.x4[2];
- var53.x4[3] = var50.x4[3] - var52.x4[3];
- /* 13: mullw */
- var54.x4[0] = (var53.x4[0] * var49.x4[0]) & 0xffff;
- var54.x4[1] = (var53.x4[1] * var49.x4[1]) & 0xffff;
- var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
- var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
- /* 14: div255w */
- var55.x4[0] =
- ((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) +
- (((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8;
- var55.x4[1] =
- ((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
- (((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
- var55.x4[2] =
- ((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
- (((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
- var55.x4[3] =
- ((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
- (((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
- /* 15: addw */
- var56.x4[0] = var52.x4[0] + var55.x4[0];
- var56.x4[1] = var52.x4[1] + var55.x4[1];
- var56.x4[2] = var52.x4[2] + var55.x4[2];
- var56.x4[3] = var52.x4[3] + var55.x4[3];
- /* 16: convwb */
- var57.x4[0] = var56.x4[0];
- var57.x4[1] = var56.x4[1];
- var57.x4[2] = var56.x4[2];
- var57.x4[3] = var56.x4[3];
- /* 18: orl */
- var58.i = var57.i | var41.i;
- /* 19: storel */
- ptr0[i] = var58;
- }
- }
-
-}
-
-void
-video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
- 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4,
- 4, 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0,
- 14, 4, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1,
- 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163,
- 34, 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89,
- 39, 39, 24, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32,
- 0, 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38,
- 38, 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157,
- 32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra);
-#else
- p = orc_program_new ();
- orc_program_set_2d (p);
- orc_program_set_name (p, "video_mixer_orc_blend_bgra");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_source (p, 4, "s1");
- orc_program_add_constant (p, 4, 0xff000000, "c1");
- orc_program_add_constant (p, 4, 0x00000018, "c2");
- orc_program_add_constant (p, 4, 0x00000008, "c3");
- orc_program_add_parameter (p, 2, "p1");
- 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, 1, "t4");
- orc_program_add_temporary (p, 4, "t5");
- orc_program_add_temporary (p, 8, "t6");
- orc_program_add_temporary (p, 8, "t7");
- orc_program_add_temporary (p, 8, "t8");
-
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
- ORC_VAR_D1);
- orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ORC_EXECUTOR_M (ex) = m;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_D1] = d1_stride;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
- ex->params[ORC_VAR_S1] = s1_stride;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_overlay_argb */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- int i;
- int j;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union64 var41;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var42;
-#else
- orc_union32 var42;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var43;
-#else
- orc_union32 var43;
-#endif
- orc_union32 var44;
- orc_union16 var45;
- orc_int8 var46;
- orc_union32 var47;
- orc_union64 var48;
- orc_union64 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union32 var53;
- orc_union64 var54;
- orc_union64 var55;
- orc_union32 var56;
- orc_union16 var57;
- orc_int8 var58;
- orc_union32 var59;
- orc_union64 var60;
- orc_union64 var61;
- orc_union64 var62;
- orc_union64 var63;
- orc_union64 var64;
- orc_union64 var65;
- orc_union64 var66;
- orc_union64 var67;
- orc_union32 var68;
- orc_union32 var69;
- orc_union32 var70;
- orc_union32 var71;
- orc_union32 var72;
-
- for (j = 0; j < m; j++) {
- ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
- ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
- /* 5: loadpw */
- var41.x4[0] = p1;
- var41.x4[1] = p1;
- var41.x4[2] = p1;
- var41.x4[3] = p1;
- /* 10: loadpl */
- var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
- /* 26: loadpl */
- var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
- /* 29: loadpl */
- var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var44 = ptr4[i];
- /* 1: convlw */
- var45.i = var44.i;
- /* 2: convwb */
- var46 = var45.i;
- /* 3: splatbl */
- var47.i =
- ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
- 8) | (var46 & 0xff);
- /* 4: convubw */
- var48.x4[0] = (orc_uint8) var47.x4[0];
- var48.x4[1] = (orc_uint8) var47.x4[1];
- var48.x4[2] = (orc_uint8) var47.x4[2];
- var48.x4[3] = (orc_uint8) var47.x4[3];
- /* 6: mullw */
- var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
- var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
- var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
- var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
- /* 7: shruw */
- var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
- var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
- var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
- var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
- /* 8: convubw */
- var51.x4[0] = (orc_uint8) var44.x4[0];
- var51.x4[1] = (orc_uint8) var44.x4[1];
- var51.x4[2] = (orc_uint8) var44.x4[2];
- var51.x4[3] = (orc_uint8) var44.x4[3];
- /* 9: mullw */
- var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
- var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
- var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
- var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
- /* 11: convubw */
- var54.x4[0] = (orc_uint8) var53.x4[0];
- var54.x4[1] = (orc_uint8) var53.x4[1];
- var54.x4[2] = (orc_uint8) var53.x4[2];
- var54.x4[3] = (orc_uint8) var53.x4[3];
- /* 12: subw */
- var55.x4[0] = var54.x4[0] - var50.x4[0];
- var55.x4[1] = var54.x4[1] - var50.x4[1];
- var55.x4[2] = var54.x4[2] - var50.x4[2];
- var55.x4[3] = var54.x4[3] - var50.x4[3];
- /* 13: loadl */
- var56 = ptr0[i];
- /* 14: convlw */
- var57.i = var56.i;
- /* 15: convwb */
- var58 = var57.i;
- /* 16: splatbl */
- var59.i =
- ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
- 8) | (var58 & 0xff);
- /* 17: convubw */
- var60.x4[0] = (orc_uint8) var59.x4[0];
- var60.x4[1] = (orc_uint8) var59.x4[1];
- var60.x4[2] = (orc_uint8) var59.x4[2];
- var60.x4[3] = (orc_uint8) var59.x4[3];
- /* 18: mullw */
- var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
- var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
- var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
- var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
- /* 19: div255w */
- var62.x4[0] =
- ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
- (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
- var62.x4[1] =
- ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
- (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
- var62.x4[2] =
- ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
- (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
- var62.x4[3] =
- ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
- (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
- /* 20: convubw */
- var63.x4[0] = (orc_uint8) var56.x4[0];
- var63.x4[1] = (orc_uint8) var56.x4[1];
- var63.x4[2] = (orc_uint8) var56.x4[2];
- var63.x4[3] = (orc_uint8) var56.x4[3];
- /* 21: mullw */
- var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
- var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
- var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
- var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
- /* 22: addw */
- var65.x4[0] = var64.x4[0] + var52.x4[0];
- var65.x4[1] = var64.x4[1] + var52.x4[1];
- var65.x4[2] = var64.x4[2] + var52.x4[2];
- var65.x4[3] = var64.x4[3] + var52.x4[3];
- /* 23: addw */
- var66.x4[0] = var62.x4[0] + var50.x4[0];
- var66.x4[1] = var62.x4[1] + var50.x4[1];
- var66.x4[2] = var62.x4[2] + var50.x4[2];
- var66.x4[3] = var62.x4[3] + var50.x4[3];
- /* 24: divluw */
- var67.x4[0] =
- ((var66.x4[0] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
- ((orc_uint16) var66.x4[0] & 0xff));
- var67.x4[1] =
- ((var66.x4[1] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
- ((orc_uint16) var66.x4[1] & 0xff));
- var67.x4[2] =
- ((var66.x4[2] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
- ((orc_uint16) var66.x4[2] & 0xff));
- var67.x4[3] =
- ((var66.x4[3] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
- ((orc_uint16) var66.x4[3] & 0xff));
- /* 25: convwb */
- var68.x4[0] = var67.x4[0];
- var68.x4[1] = var67.x4[1];
- var68.x4[2] = var67.x4[2];
- var68.x4[3] = var67.x4[3];
- /* 27: andl */
- var69.i = var68.i & var42.i;
- /* 28: convwb */
- var70.x4[0] = var66.x4[0];
- var70.x4[1] = var66.x4[1];
- var70.x4[2] = var66.x4[2];
- var70.x4[3] = var66.x4[3];
- /* 30: andl */
- var71.i = var70.i & var43.i;
- /* 31: orl */
- var72.i = var69.i | var71.i;
- /* 32: storel */
- ptr0[i] = var72;
- }
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_overlay_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_union64 var41;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var42;
-#else
- orc_union32 var42;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var43;
-#else
- orc_union32 var43;
-#endif
- orc_union32 var44;
- orc_union16 var45;
- orc_int8 var46;
- orc_union32 var47;
- orc_union64 var48;
- orc_union64 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union32 var53;
- orc_union64 var54;
- orc_union64 var55;
- orc_union32 var56;
- orc_union16 var57;
- orc_int8 var58;
- orc_union32 var59;
- orc_union64 var60;
- orc_union64 var61;
- orc_union64 var62;
- orc_union64 var63;
- orc_union64 var64;
- orc_union64 var65;
- orc_union64 var66;
- orc_union64 var67;
- orc_union32 var68;
- orc_union32 var69;
- orc_union32 var70;
- orc_union32 var71;
- orc_union32 var72;
-
- 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);
-
- /* 5: loadpw */
- var41.x4[0] = ex->params[24];
- var41.x4[1] = ex->params[24];
- var41.x4[2] = ex->params[24];
- var41.x4[3] = ex->params[24];
- /* 10: loadpl */
- var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
- /* 26: loadpl */
- var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
- /* 29: loadpl */
- var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var44 = ptr4[i];
- /* 1: convlw */
- var45.i = var44.i;
- /* 2: convwb */
- var46 = var45.i;
- /* 3: splatbl */
- var47.i =
- ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
- 8) | (var46 & 0xff);
- /* 4: convubw */
- var48.x4[0] = (orc_uint8) var47.x4[0];
- var48.x4[1] = (orc_uint8) var47.x4[1];
- var48.x4[2] = (orc_uint8) var47.x4[2];
- var48.x4[3] = (orc_uint8) var47.x4[3];
- /* 6: mullw */
- var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
- var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
- var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
- var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
- /* 7: shruw */
- var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
- var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
- var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
- var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
- /* 8: convubw */
- var51.x4[0] = (orc_uint8) var44.x4[0];
- var51.x4[1] = (orc_uint8) var44.x4[1];
- var51.x4[2] = (orc_uint8) var44.x4[2];
- var51.x4[3] = (orc_uint8) var44.x4[3];
- /* 9: mullw */
- var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
- var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
- var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
- var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
- /* 11: convubw */
- var54.x4[0] = (orc_uint8) var53.x4[0];
- var54.x4[1] = (orc_uint8) var53.x4[1];
- var54.x4[2] = (orc_uint8) var53.x4[2];
- var54.x4[3] = (orc_uint8) var53.x4[3];
- /* 12: subw */
- var55.x4[0] = var54.x4[0] - var50.x4[0];
- var55.x4[1] = var54.x4[1] - var50.x4[1];
- var55.x4[2] = var54.x4[2] - var50.x4[2];
- var55.x4[3] = var54.x4[3] - var50.x4[3];
- /* 13: loadl */
- var56 = ptr0[i];
- /* 14: convlw */
- var57.i = var56.i;
- /* 15: convwb */
- var58 = var57.i;
- /* 16: splatbl */
- var59.i =
- ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
- 8) | (var58 & 0xff);
- /* 17: convubw */
- var60.x4[0] = (orc_uint8) var59.x4[0];
- var60.x4[1] = (orc_uint8) var59.x4[1];
- var60.x4[2] = (orc_uint8) var59.x4[2];
- var60.x4[3] = (orc_uint8) var59.x4[3];
- /* 18: mullw */
- var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
- var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
- var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
- var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
- /* 19: div255w */
- var62.x4[0] =
- ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
- (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
- var62.x4[1] =
- ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
- (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
- var62.x4[2] =
- ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
- (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
- var62.x4[3] =
- ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
- (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
- /* 20: convubw */
- var63.x4[0] = (orc_uint8) var56.x4[0];
- var63.x4[1] = (orc_uint8) var56.x4[1];
- var63.x4[2] = (orc_uint8) var56.x4[2];
- var63.x4[3] = (orc_uint8) var56.x4[3];
- /* 21: mullw */
- var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
- var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
- var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
- var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
- /* 22: addw */
- var65.x4[0] = var64.x4[0] + var52.x4[0];
- var65.x4[1] = var64.x4[1] + var52.x4[1];
- var65.x4[2] = var64.x4[2] + var52.x4[2];
- var65.x4[3] = var64.x4[3] + var52.x4[3];
- /* 23: addw */
- var66.x4[0] = var62.x4[0] + var50.x4[0];
- var66.x4[1] = var62.x4[1] + var50.x4[1];
- var66.x4[2] = var62.x4[2] + var50.x4[2];
- var66.x4[3] = var62.x4[3] + var50.x4[3];
- /* 24: divluw */
- var67.x4[0] =
- ((var66.x4[0] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
- ((orc_uint16) var66.x4[0] & 0xff));
- var67.x4[1] =
- ((var66.x4[1] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
- ((orc_uint16) var66.x4[1] & 0xff));
- var67.x4[2] =
- ((var66.x4[2] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
- ((orc_uint16) var66.x4[2] & 0xff));
- var67.x4[3] =
- ((var66.x4[3] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
- ((orc_uint16) var66.x4[3] & 0xff));
- /* 25: convwb */
- var68.x4[0] = var67.x4[0];
- var68.x4[1] = var67.x4[1];
- var68.x4[2] = var67.x4[2];
- var68.x4[3] = var67.x4[3];
- /* 27: andl */
- var69.i = var68.i & var42.i;
- /* 28: convwb */
- var70.x4[0] = var66.x4[0];
- var70.x4[1] = var66.x4[1];
- var70.x4[2] = var66.x4[2];
- var70.x4[3] = var66.x4[3];
- /* 30: andl */
- var71.i = var70.i & var43.i;
- /* 31: orl */
- var72.i = var69.i | var71.i;
- /* 32: storel */
- ptr0[i] = var72;
- }
- }
-
-}
-
-void
-video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
- 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103,
- 98,
- 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0,
- 0, 0, 14, 4, 0, 255, 255, 255, 14, 4, 8, 0, 0, 0, 16, 2,
- 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8,
- 20, 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2,
- 150, 35, 38, 21, 2, 89, 35, 35, 24, 21, 2, 95, 35, 35, 19, 21,
- 2, 150, 40, 32, 21, 2, 89, 40, 40, 35, 115, 38, 16, 21, 2, 150,
- 36, 38, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33, 32, 157, 34,
- 33, 152, 38, 34, 21, 2, 150, 37, 38, 21, 2, 89, 37, 37, 36, 21,
- 2, 80, 37, 37, 21, 2, 150, 39, 32, 21, 2, 89, 39, 39, 37, 21,
- 2, 70, 39, 39, 40, 21, 2, 70, 37, 37, 35, 21, 2, 81, 39, 39,
- 37, 21, 2, 157, 32, 39, 106, 32, 32, 18, 21, 2, 157, 38, 37, 106,
- 38, 38, 17, 123, 32, 32, 38, 128, 0, 32, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb);
-#else
- p = orc_program_new ();
- orc_program_set_2d (p);
- orc_program_set_name (p, "video_mixer_orc_overlay_argb");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_source (p, 4, "s1");
- orc_program_add_constant (p, 4, 0xffffffff, "c1");
- orc_program_add_constant (p, 4, 0x000000ff, "c2");
- orc_program_add_constant (p, 4, 0xffffff00, "c3");
- orc_program_add_constant (p, 4, 0x00000008, "c4");
- orc_program_add_parameter (p, 2, "p1");
- orc_program_add_temporary (p, 4, "t1");
- orc_program_add_temporary (p, 2, "t2");
- orc_program_add_temporary (p, 1, "t3");
- orc_program_add_temporary (p, 8, "t4");
- orc_program_add_temporary (p, 8, "t5");
- orc_program_add_temporary (p, 8, "t6");
- orc_program_add_temporary (p, 4, "t7");
- orc_program_add_temporary (p, 8, "t8");
- orc_program_add_temporary (p, 8, "t9");
-
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T7, ORC_VAR_C1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T9,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "divluw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "andl", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T7,
- ORC_VAR_D1);
- orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ORC_EXECUTOR_M (ex) = m;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_D1] = d1_stride;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
- ex->params[ORC_VAR_S1] = s1_stride;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
-
-
-/* video_mixer_orc_overlay_bgra */
-#ifdef DISABLE_ORC
-void
-video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- int i;
- int j;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union64 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var43;
-#else
- orc_union32 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var44;
-#else
- orc_union32 var44;
-#endif
- orc_union32 var45;
- orc_union32 var46;
- orc_union16 var47;
- orc_int8 var48;
- orc_union32 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union32 var55;
- orc_union64 var56;
- orc_union64 var57;
- orc_union32 var58;
- orc_union32 var59;
- orc_union16 var60;
- orc_int8 var61;
- orc_union32 var62;
- orc_union64 var63;
- orc_union64 var64;
- orc_union64 var65;
- orc_union64 var66;
- orc_union64 var67;
- orc_union64 var68;
- orc_union64 var69;
- orc_union64 var70;
- orc_union32 var71;
- orc_union32 var72;
- orc_union32 var73;
- orc_union32 var74;
- orc_union32 var75;
-
- for (j = 0; j < m; j++) {
- ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
- ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
- /* 6: loadpw */
- var42.x4[0] = p1;
- var42.x4[1] = p1;
- var42.x4[2] = p1;
- var42.x4[3] = p1;
- /* 11: loadpl */
- var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
- /* 28: loadpl */
- var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
- /* 31: loadpl */
- var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var45 = ptr4[i];
- /* 1: shrul */
- var46.i = ((orc_uint32) var45.i) >> 24;
- /* 2: convlw */
- var47.i = var46.i;
- /* 3: convwb */
- var48 = var47.i;
- /* 4: splatbl */
- var49.i =
- ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
- 8) | (var48 & 0xff);
- /* 5: convubw */
- var50.x4[0] = (orc_uint8) var49.x4[0];
- var50.x4[1] = (orc_uint8) var49.x4[1];
- var50.x4[2] = (orc_uint8) var49.x4[2];
- var50.x4[3] = (orc_uint8) var49.x4[3];
- /* 7: mullw */
- var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
- var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
- var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
- var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
- /* 8: shruw */
- var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
- var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
- var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
- var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
- /* 9: convubw */
- var53.x4[0] = (orc_uint8) var45.x4[0];
- var53.x4[1] = (orc_uint8) var45.x4[1];
- var53.x4[2] = (orc_uint8) var45.x4[2];
- var53.x4[3] = (orc_uint8) var45.x4[3];
- /* 10: mullw */
- var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
- var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
- var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
- var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
- /* 12: convubw */
- var56.x4[0] = (orc_uint8) var55.x4[0];
- var56.x4[1] = (orc_uint8) var55.x4[1];
- var56.x4[2] = (orc_uint8) var55.x4[2];
- var56.x4[3] = (orc_uint8) var55.x4[3];
- /* 13: subw */
- var57.x4[0] = var56.x4[0] - var52.x4[0];
- var57.x4[1] = var56.x4[1] - var52.x4[1];
- var57.x4[2] = var56.x4[2] - var52.x4[2];
- var57.x4[3] = var56.x4[3] - var52.x4[3];
- /* 14: loadl */
- var58 = ptr0[i];
- /* 15: shrul */
- var59.i = ((orc_uint32) var58.i) >> 24;
- /* 16: convlw */
- var60.i = var59.i;
- /* 17: convwb */
- var61 = var60.i;
- /* 18: splatbl */
- var62.i =
- ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
- 8) | (var61 & 0xff);
- /* 19: convubw */
- var63.x4[0] = (orc_uint8) var62.x4[0];
- var63.x4[1] = (orc_uint8) var62.x4[1];
- var63.x4[2] = (orc_uint8) var62.x4[2];
- var63.x4[3] = (orc_uint8) var62.x4[3];
- /* 20: mullw */
- var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
- var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
- var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
- var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
- /* 21: div255w */
- var65.x4[0] =
- ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
- (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
- var65.x4[1] =
- ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
- (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
- var65.x4[2] =
- ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
- (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
- var65.x4[3] =
- ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
- (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
- /* 22: convubw */
- var66.x4[0] = (orc_uint8) var58.x4[0];
- var66.x4[1] = (orc_uint8) var58.x4[1];
- var66.x4[2] = (orc_uint8) var58.x4[2];
- var66.x4[3] = (orc_uint8) var58.x4[3];
- /* 23: mullw */
- var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
- var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
- var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
- var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
- /* 24: addw */
- var68.x4[0] = var67.x4[0] + var54.x4[0];
- var68.x4[1] = var67.x4[1] + var54.x4[1];
- var68.x4[2] = var67.x4[2] + var54.x4[2];
- var68.x4[3] = var67.x4[3] + var54.x4[3];
- /* 25: addw */
- var69.x4[0] = var65.x4[0] + var52.x4[0];
- var69.x4[1] = var65.x4[1] + var52.x4[1];
- var69.x4[2] = var65.x4[2] + var52.x4[2];
- var69.x4[3] = var65.x4[3] + var52.x4[3];
- /* 26: divluw */
- var70.x4[0] =
- ((var69.x4[0] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
- ((orc_uint16) var69.x4[0] & 0xff));
- var70.x4[1] =
- ((var69.x4[1] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
- ((orc_uint16) var69.x4[1] & 0xff));
- var70.x4[2] =
- ((var69.x4[2] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
- ((orc_uint16) var69.x4[2] & 0xff));
- var70.x4[3] =
- ((var69.x4[3] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
- ((orc_uint16) var69.x4[3] & 0xff));
- /* 27: convwb */
- var71.x4[0] = var70.x4[0];
- var71.x4[1] = var70.x4[1];
- var71.x4[2] = var70.x4[2];
- var71.x4[3] = var70.x4[3];
- /* 29: andl */
- var72.i = var71.i & var43.i;
- /* 30: convwb */
- var73.x4[0] = var69.x4[0];
- var73.x4[1] = var69.x4[1];
- var73.x4[2] = var69.x4[2];
- var73.x4[3] = var69.x4[3];
- /* 32: andl */
- var74.i = var73.i & var44.i;
- /* 33: orl */
- var75.i = var72.i | var74.i;
- /* 34: storel */
- ptr0[i] = var75;
- }
- }
-
-}
-
-#else
-static void
-_backup_video_mixer_orc_overlay_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_union64 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var43;
-#else
- orc_union32 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
- volatile orc_union32 var44;
-#else
- orc_union32 var44;
-#endif
- orc_union32 var45;
- orc_union32 var46;
- orc_union16 var47;
- orc_int8 var48;
- orc_union32 var49;
- orc_union64 var50;
- orc_union64 var51;
- orc_union64 var52;
- orc_union64 var53;
- orc_union64 var54;
- orc_union32 var55;
- orc_union64 var56;
- orc_union64 var57;
- orc_union32 var58;
- orc_union32 var59;
- orc_union16 var60;
- orc_int8 var61;
- orc_union32 var62;
- orc_union64 var63;
- orc_union64 var64;
- orc_union64 var65;
- orc_union64 var66;
- orc_union64 var67;
- orc_union64 var68;
- orc_union64 var69;
- orc_union64 var70;
- orc_union32 var71;
- orc_union32 var72;
- orc_union32 var73;
- orc_union32 var74;
- orc_union32 var75;
-
- 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);
-
- /* 6: loadpw */
- var42.x4[0] = ex->params[24];
- var42.x4[1] = ex->params[24];
- var42.x4[2] = ex->params[24];
- var42.x4[3] = ex->params[24];
- /* 11: loadpl */
- var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
- /* 28: loadpl */
- var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
- /* 31: loadpl */
- var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
-
- for (i = 0; i < n; i++) {
- /* 0: loadl */
- var45 = ptr4[i];
- /* 1: shrul */
- var46.i = ((orc_uint32) var45.i) >> 24;
- /* 2: convlw */
- var47.i = var46.i;
- /* 3: convwb */
- var48 = var47.i;
- /* 4: splatbl */
- var49.i =
- ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
- 8) | (var48 & 0xff);
- /* 5: convubw */
- var50.x4[0] = (orc_uint8) var49.x4[0];
- var50.x4[1] = (orc_uint8) var49.x4[1];
- var50.x4[2] = (orc_uint8) var49.x4[2];
- var50.x4[3] = (orc_uint8) var49.x4[3];
- /* 7: mullw */
- var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
- var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
- var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
- var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
- /* 8: shruw */
- var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
- var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
- var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
- var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
- /* 9: convubw */
- var53.x4[0] = (orc_uint8) var45.x4[0];
- var53.x4[1] = (orc_uint8) var45.x4[1];
- var53.x4[2] = (orc_uint8) var45.x4[2];
- var53.x4[3] = (orc_uint8) var45.x4[3];
- /* 10: mullw */
- var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
- var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
- var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
- var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
- /* 12: convubw */
- var56.x4[0] = (orc_uint8) var55.x4[0];
- var56.x4[1] = (orc_uint8) var55.x4[1];
- var56.x4[2] = (orc_uint8) var55.x4[2];
- var56.x4[3] = (orc_uint8) var55.x4[3];
- /* 13: subw */
- var57.x4[0] = var56.x4[0] - var52.x4[0];
- var57.x4[1] = var56.x4[1] - var52.x4[1];
- var57.x4[2] = var56.x4[2] - var52.x4[2];
- var57.x4[3] = var56.x4[3] - var52.x4[3];
- /* 14: loadl */
- var58 = ptr0[i];
- /* 15: shrul */
- var59.i = ((orc_uint32) var58.i) >> 24;
- /* 16: convlw */
- var60.i = var59.i;
- /* 17: convwb */
- var61 = var60.i;
- /* 18: splatbl */
- var62.i =
- ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
- 8) | (var61 & 0xff);
- /* 19: convubw */
- var63.x4[0] = (orc_uint8) var62.x4[0];
- var63.x4[1] = (orc_uint8) var62.x4[1];
- var63.x4[2] = (orc_uint8) var62.x4[2];
- var63.x4[3] = (orc_uint8) var62.x4[3];
- /* 20: mullw */
- var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
- var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
- var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
- var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
- /* 21: div255w */
- var65.x4[0] =
- ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
- (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
- var65.x4[1] =
- ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
- (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
- var65.x4[2] =
- ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
- (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
- var65.x4[3] =
- ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
- (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
- /* 22: convubw */
- var66.x4[0] = (orc_uint8) var58.x4[0];
- var66.x4[1] = (orc_uint8) var58.x4[1];
- var66.x4[2] = (orc_uint8) var58.x4[2];
- var66.x4[3] = (orc_uint8) var58.x4[3];
- /* 23: mullw */
- var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
- var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
- var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
- var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
- /* 24: addw */
- var68.x4[0] = var67.x4[0] + var54.x4[0];
- var68.x4[1] = var67.x4[1] + var54.x4[1];
- var68.x4[2] = var67.x4[2] + var54.x4[2];
- var68.x4[3] = var67.x4[3] + var54.x4[3];
- /* 25: addw */
- var69.x4[0] = var65.x4[0] + var52.x4[0];
- var69.x4[1] = var65.x4[1] + var52.x4[1];
- var69.x4[2] = var65.x4[2] + var52.x4[2];
- var69.x4[3] = var65.x4[3] + var52.x4[3];
- /* 26: divluw */
- var70.x4[0] =
- ((var69.x4[0] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
- ((orc_uint16) var69.x4[0] & 0xff));
- var70.x4[1] =
- ((var69.x4[1] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
- ((orc_uint16) var69.x4[1] & 0xff));
- var70.x4[2] =
- ((var69.x4[2] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
- ((orc_uint16) var69.x4[2] & 0xff));
- var70.x4[3] =
- ((var69.x4[3] & 0xff) ==
- 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
- ((orc_uint16) var69.x4[3] & 0xff));
- /* 27: convwb */
- var71.x4[0] = var70.x4[0];
- var71.x4[1] = var70.x4[1];
- var71.x4[2] = var70.x4[2];
- var71.x4[3] = var70.x4[3];
- /* 29: andl */
- var72.i = var71.i & var43.i;
- /* 30: convwb */
- var73.x4[0] = var69.x4[0];
- var73.x4[1] = var69.x4[1];
- var73.x4[2] = var69.x4[2];
- var73.x4[3] = var69.x4[3];
- /* 32: andl */
- var74.i = var73.i & var44.i;
- /* 33: orl */
- var75.i = var72.i | var74.i;
- /* 34: storel */
- ptr0[i] = var75;
- }
- }
-
-}
-
-void
-video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
- const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
-{
- OrcExecutor _ex, *ex = &_ex;
- static volatile int p_inited = 0;
- static OrcCode *c = 0;
- void (*func) (OrcExecutor *);
-
- if (!p_inited) {
- orc_once_mutex_lock ();
- if (!p_inited) {
- OrcProgram *p;
-
-#if 1
- static const orc_uint8 bc[] = {
- 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
- 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114,
- 97,
- 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0,
- 0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 4,
- 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8,
- 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32,
- 19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 36, 39, 21,
- 2, 89, 36, 36, 24, 21, 2, 95, 36, 36, 20, 21, 2, 150, 41, 32,
- 21, 2, 89, 41, 41, 36, 115, 39, 16, 21, 2, 150, 37, 39, 21, 2,
- 98, 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35,
- 34, 152, 39, 35, 21, 2, 150, 38, 39, 21, 2, 89, 38, 38, 37, 21,
- 2, 80, 38, 38, 21, 2, 150, 40, 32, 21, 2, 89, 40, 40, 38, 21,
- 2, 70, 40, 40, 41, 21, 2, 70, 38, 38, 36, 21, 2, 81, 40, 40,
- 38, 21, 2, 157, 32, 40, 106, 32, 32, 18, 21, 2, 157, 39, 38, 106,
- 39, 39, 17, 123, 32, 32, 39, 128, 0, 32, 2, 0,
- };
- p = orc_program_new_from_static_bytecode (bc);
- orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra);
-#else
- p = orc_program_new ();
- orc_program_set_2d (p);
- orc_program_set_name (p, "video_mixer_orc_overlay_bgra");
- orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra);
- orc_program_add_destination (p, 4, "d1");
- orc_program_add_source (p, 4, "s1");
- orc_program_add_constant (p, 4, 0xffffffff, "c1");
- orc_program_add_constant (p, 4, 0xff000000, "c2");
- orc_program_add_constant (p, 4, 0x00ffffff, "c3");
- orc_program_add_constant (p, 4, 0x00000018, "c4");
- orc_program_add_constant (p, 4, 0x00000008, "c5");
- orc_program_add_parameter (p, 2, "p1");
- 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, 1, "t4");
- orc_program_add_temporary (p, 8, "t5");
- orc_program_add_temporary (p, 8, "t6");
- orc_program_add_temporary (p, 8, "t7");
- orc_program_add_temporary (p, 4, "t8");
- orc_program_add_temporary (p, 8, "t9");
- orc_program_add_temporary (p, 8, "t10");
-
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T8, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
- ORC_VAR_D1, ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T8, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
- ORC_VAR_D1);
- orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T10,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
- ORC_VAR_D1);
- orc_program_append_2 (p, "divluw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convwb", 2, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "andl", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T8,
- ORC_VAR_D1);
- orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
- ORC_VAR_D1);
-#endif
-
- orc_program_compile (p);
- c = orc_program_take_code (p);
- orc_program_free (p);
- }
- p_inited = TRUE;
- orc_once_mutex_unlock ();
- }
- ex->arrays[ORC_VAR_A2] = c;
- ex->program = 0;
-
- ex->n = n;
- ORC_EXECUTOR_M (ex) = m;
- ex->arrays[ORC_VAR_D1] = d1;
- ex->params[ORC_VAR_D1] = d1_stride;
- ex->arrays[ORC_VAR_S1] = (void *) s1;
- ex->params[ORC_VAR_S1] = s1_stride;
- ex->params[ORC_VAR_P1] = p1;
-
- func = c->exec;
- func (ex);
-}
-#endif
diff --git a/gst/videomixer/blendorc-dist.h b/gst/videomixer/blendorc-dist.h
deleted file mode 100644
index e5ec9de1..00000000
--- a/gst/videomixer/blendorc-dist.h
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/* autogenerated from blendorc.orc */
-
-#ifndef _BLENDORC_H_
-#define _BLENDORC_H_
-
-#include <glib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-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 <limits.h>
-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 ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-void video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
-void video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
-void video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/gst/videomixer/blendorc.orc b/gst/videomixer/blendorc.orc
deleted file mode 100644
index cbc1a468..00000000
--- a/gst/videomixer/blendorc.orc
+++ /dev/null
@@ -1,220 +0,0 @@
-.function video_mixer_orc_splat_u32
-.dest 4 d1 guint32
-.param 4 p1 guint32
-
-copyl d1, p1
-
-.function video_mixer_orc_memcpy_u32
-.dest 4 d1 guint32
-.source 4 s1 guint32
-
-copyl d1, s1
-
-.function video_mixer_orc_blend_u8
-.flags 2d
-.dest 1 d1 guint8
-.source 1 s1 guint8
-.param 2 p1
-.temp 2 t1
-.temp 2 t2
-.const 1 c1 8
-
-convubw t1, d1
-convubw t2, s1
-subw t2, t2, t1
-mullw t2, t2, p1
-shlw t1, t1, c1
-addw t2, t1, t2
-shruw t2, t2, c1
-convsuswb d1, t2
-
-
-.function video_mixer_orc_blend_argb
-.flags 2d
-.dest 4 d guint8
-.source 4 s guint8
-.param 2 alpha
-.temp 4 t
-.temp 2 tw
-.temp 1 tb
-.temp 4 a
-.temp 8 d_wide
-.temp 8 s_wide
-.temp 8 a_wide
-.const 4 a_alpha 0x000000ff
-
-loadl t, s
-convlw tw, t
-convwb tb, tw
-splatbl a, tb
-x4 convubw a_wide, a
-x4 mullw a_wide, a_wide, alpha
-x4 shruw a_wide, a_wide, 8
-x4 convubw s_wide, t
-loadl t, d
-x4 convubw d_wide, t
-x4 subw s_wide, s_wide, d_wide
-x4 mullw s_wide, s_wide, a_wide
-x4 div255w s_wide, s_wide
-x4 addw d_wide, d_wide, s_wide
-x4 convwb t, d_wide
-orl t, t, a_alpha
-storel d, t
-
-.function video_mixer_orc_blend_bgra
-.flags 2d
-.dest 4 d guint8
-.source 4 s guint8
-.param 2 alpha
-.temp 4 t
-.temp 4 t2
-.temp 2 tw
-.temp 1 tb
-.temp 4 a
-.temp 8 d_wide
-.temp 8 s_wide
-.temp 8 a_wide
-.const 4 a_alpha 0xff000000
-
-loadl t, s
-shrul t2, t, 24
-convlw tw, t2
-convwb tb, tw
-splatbl a, tb
-x4 convubw a_wide, a
-x4 mullw a_wide, a_wide, alpha
-x4 shruw a_wide, a_wide, 8
-x4 convubw s_wide, t
-loadl t, d
-x4 convubw d_wide, t
-x4 subw s_wide, s_wide, d_wide
-x4 mullw s_wide, s_wide, a_wide
-x4 div255w s_wide, s_wide
-x4 addw d_wide, d_wide, s_wide
-x4 convwb t, d_wide
-orl t, t, a_alpha
-storel d, t
-
-
-.function video_mixer_orc_overlay_argb
-.flags 2d
-.dest 4 d guint8
-.source 4 s guint8
-.param 2 alpha
-.temp 4 t
-.temp 2 tw
-.temp 1 tb
-.temp 8 alpha_s
-.temp 8 alpha_s_inv
-.temp 8 alpha_d
-.temp 4 a
-.temp 8 d_wide
-.temp 8 s_wide
-.const 4 xfs 0xffffffff
-.const 4 a_alpha 0x000000ff
-.const 4 a_alpha_inv 0xffffff00
-
-# calc source alpha as alpha_s = alpha_s * alpha / 256
-loadl t, s
-convlw tw, t
-convwb tb, tw
-splatbl a, tb
-x4 convubw alpha_s, a
-x4 mullw alpha_s, alpha_s, alpha
-x4 shruw alpha_s, alpha_s, 8
-x4 convubw s_wide, t
-x4 mullw s_wide, s_wide, alpha_s
-
-# calc destination alpha as alpha_d = (255-alpha_s) * alpha_d / 255
-loadpl a, xfs
-x4 convubw alpha_s_inv, a
-x4 subw alpha_s_inv, alpha_s_inv, alpha_s
-loadl t, d
-convlw tw, t
-convwb tb, tw
-splatbl a, tb
-x4 convubw alpha_d, a
-x4 mullw alpha_d, alpha_d, alpha_s_inv
-x4 div255w alpha_d, alpha_d
-x4 convubw d_wide, t
-x4 mullw d_wide, d_wide, alpha_d
-
-# calc final pixel as pix_d = pix_s*alpha_s + pix_d*alpha_d*(255-alpha_s)/255
-x4 addw d_wide, d_wide, s_wide
-
-# calc the final destination alpha_d = alpha_s + alpha_d * (255-alpha_s)/255
-x4 addw alpha_d, alpha_d, alpha_s
-
-# now normalize the pix_d by the final alpha to make it associative
-x4 divluw, d_wide, d_wide, alpha_d
-
-# pack the new alpha into the correct spot
-x4 convwb t, d_wide
-andl t, t, a_alpha_inv
-x4 convwb a, alpha_d
-andl a, a, a_alpha
-orl t, t, a
-storel d, t
-
-.function video_mixer_orc_overlay_bgra
-.flags 2d
-.dest 4 d guint8
-.source 4 s guint8
-.param 2 alpha
-.temp 4 t
-.temp 4 t2
-.temp 2 tw
-.temp 1 tb
-.temp 8 alpha_s
-.temp 8 alpha_s_inv
-.temp 8 alpha_d
-.temp 4 a
-.temp 8 d_wide
-.temp 8 s_wide
-.const 4 xfs 0xffffffff
-.const 4 a_alpha 0xff000000
-.const 4 a_alpha_inv 0x00ffffff
-
-# calc source alpha as alpha_s = alpha_s * alpha / 256
-loadl t, s
-shrul t2, t, 24
-convlw tw, t2
-convwb tb, tw
-splatbl a, tb
-x4 convubw alpha_s, a
-x4 mullw alpha_s, alpha_s, alpha
-x4 shruw alpha_s, alpha_s, 8
-x4 convubw s_wide, t
-x4 mullw s_wide, s_wide, alpha_s
-
-# calc destination alpha as alpha_d = (255-alpha_s) * alpha_d / 255
-loadpl a, xfs
-x4 convubw alpha_s_inv, a
-x4 subw alpha_s_inv, alpha_s_inv, alpha_s
-loadl t, d
-shrul t2, t, 24
-convlw tw, t2
-convwb tb, tw
-splatbl a, tb
-x4 convubw alpha_d, a
-x4 mullw alpha_d, alpha_d, alpha_s_inv
-x4 div255w alpha_d, alpha_d
-x4 convubw d_wide, t
-x4 mullw d_wide, d_wide, alpha_d
-
-# calc final pixel as pix_d = pix_s*alpha_s + pix_d*alpha_d*(255-alpha_s)/255
-x4 addw d_wide, d_wide, s_wide
-
-# calc the final destination alpha_d = alpha_s + alpha_d * (255-alpha_s)/255
-x4 addw alpha_d, alpha_d, alpha_s
-
-# now normalize the pix_d by the final alpha to make it associative
-x4 divluw, d_wide, d_wide, alpha_d
-
-# pack the new alpha into the correct spot
-x4 convwb t, d_wide
-andl t, t, a_alpha_inv
-x4 convwb a, alpha_d
-andl a, a, a_alpha
-orl t, t, a
-storel d, t
diff --git a/gst/videomixer/gstcms.c b/gst/videomixer/gstcms.c
new file mode 100644
index 00000000..96a9f70b
--- /dev/null
+++ b/gst/videomixer/gstcms.c
@@ -0,0 +1,573 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@entropywave.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/math-compat.h>
+#include "gstcms.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+
+/* our simple CMS */
+
+void
+color_xyY_to_XYZ (Color * c)
+{
+ if (c->v[1] == 0) {
+ c->v[0] = 0;
+ c->v[1] = 0;
+ c->v[2] = 0;
+ } else {
+ double X, Y, Z;
+ X = c->v[0] * c->v[2] / c->v[1];
+ Y = c->v[2];
+ Z = (1.0 - c->v[0] - c->v[1]) * c->v[2] / c->v[1];
+ c->v[0] = X;
+ c->v[1] = Y;
+ c->v[2] = Z;
+ }
+}
+
+void
+color_XYZ_to_xyY (Color * c)
+{
+ double d;
+ d = c->v[0] + c->v[1] + c->v[2];
+ if (d == 0) {
+ c->v[0] = 0.3128;
+ c->v[1] = 0.3290;
+ c->v[2] = 0;
+ } else {
+ double x, y, Y;
+ x = c->v[0] / d;
+ y = c->v[1] / d;
+ Y = c->v[1];
+ c->v[0] = x;
+ c->v[1] = y;
+ c->v[2] = Y;
+ }
+}
+
+void
+color_set (Color * c, double x, double y, double z)
+{
+ c->v[0] = x;
+ c->v[1] = y;
+ c->v[2] = z;
+}
+
+void
+color_matrix_set_identity (ColorMatrix * m)
+{
+ int i, j;
+
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 4; j++) {
+ m->m[i][j] = (i == j);
+ }
+ }
+}
+
+/* Prettyprint a 4x4 matrix @m@ */
+void
+color_matrix_dump (ColorMatrix * m)
+{
+ int i, j;
+
+ printf ("[\n");
+ for (i = 0; i < 4; i++) {
+ printf (" ");
+ for (j = 0; j < 4; j++) {
+ printf (" %8.5g", m->m[i][j]);
+ }
+ printf ("\n");
+ }
+ printf ("]\n");
+}
+
+/* Perform 4x4 matrix multiplication:
+ * - @dst@ = @a@ * @b@
+ * - @dst@ may be a pointer to @a@ andor @b@
+ */
+void
+color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b)
+{
+ ColorMatrix tmp;
+ int i, j, k;
+
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 4; j++) {
+ double x = 0;
+ for (k = 0; k < 4; k++) {
+ x += a->m[i][k] * b->m[k][j];
+ }
+ tmp.m[i][j] = x;
+ }
+ }
+
+ memcpy (dst, &tmp, sizeof (ColorMatrix));
+}
+
+void
+color_matrix_apply (ColorMatrix * m, Color * dest, Color * src)
+{
+ int i;
+ Color tmp;
+
+ for (i = 0; i < 3; i++) {
+ double x = 0;
+ x += m->m[i][0] * src->v[0];
+ x += m->m[i][1] * src->v[1];
+ x += m->m[i][2] * src->v[2];
+ x += m->m[i][3];
+ tmp.v[i] = x;
+ }
+ memcpy (dest, &tmp, sizeof (tmp));
+}
+
+void
+color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
+ double a3)
+{
+ ColorMatrix a;
+
+ color_matrix_set_identity (&a);
+ a.m[0][3] = a1;
+ a.m[1][3] = a2;
+ a.m[2][3] = a3;
+ color_matrix_multiply (m, &a, m);
+}
+
+void
+color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3)
+{
+ ColorMatrix a;
+
+ color_matrix_set_identity (&a);
+ a.m[0][0] = a1;
+ a.m[1][1] = a2;
+ a.m[2][2] = a3;
+ color_matrix_multiply (m, &a, m);
+}
+
+void
+color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb)
+{
+ double Kg = 1.0 - Kr - Kb;
+ ColorMatrix k = {
+ {
+ {1., 0., 2 * (1 - Kr), 0.},
+ {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.},
+ {1., 2 * (1 - Kb), 0., 0.},
+ {0., 0., 0., 1.},
+ }
+ };
+
+ color_matrix_multiply (m, &k, m);
+}
+
+void
+color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb)
+{
+ double Kg = 1.0 - Kr - Kb;
+ ColorMatrix k;
+ double x;
+
+ k.m[0][0] = Kr;
+ k.m[0][1] = Kg;
+ k.m[0][2] = Kb;
+ k.m[0][3] = 0;
+
+ x = 1 / (2 * (1 - Kb));
+ k.m[1][0] = -x * Kr;
+ k.m[1][1] = -x * Kg;
+ k.m[1][2] = x * (1 - Kb);
+ k.m[1][3] = 0;
+
+ x = 1 / (2 * (1 - Kr));
+ k.m[2][0] = x * (1 - Kr);
+ k.m[2][1] = -x * Kg;
+ k.m[2][2] = -x * Kb;
+ k.m[2][3] = 0;
+
+ k.m[3][0] = 0;
+ k.m[3][1] = 0;
+ k.m[3][2] = 0;
+ k.m[3][3] = 1;
+
+ color_matrix_multiply (m, &k, m);
+}
+
+void
+color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst)
+{
+ /*
+ * At this point, everything is in YCbCr
+ * All components are in the range [0,255]
+ */
+ color_matrix_set_identity (dst);
+
+ /* offset required to get input video black to (0.,0.,0.) */
+ color_matrix_offset_components (dst, -16, -128, -128);
+
+ /* scale required to get input video black to (0.,0.,0.) */
+ color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
+
+ /* colour matrix, YCbCr -> RGB */
+ /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
+ color_matrix_YCbCr_to_RGB (dst, 0.2990, 0.1140); /* SD */
+
+ /*
+ * We are now in RGB space
+ */
+
+#if 0
+ /* scale to output range. */
+ color_matrix_scale_components (dst, 255.0, 255.0, 255.0);
+#endif
+}
+
+void
+color_matrix_build_bt709_to_bt601 (ColorMatrix * dst)
+{
+ color_matrix_set_identity (dst);
+
+ /* offset required to get input video black to (0.,0.,0.) */
+ color_matrix_offset_components (dst, -16, -128, -128);
+
+ /* scale required to get input video black to (0.,0.,0.) */
+ color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
+
+ /* colour matrix, YCbCr -> RGB */
+ /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
+ color_matrix_YCbCr_to_RGB (dst, 0.2126, 0.0722); /* HD */
+
+ color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140); /* SD */
+
+ color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
+
+ color_matrix_offset_components (dst, 16, 128, 128);
+}
+
+void
+color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst)
+{
+ color_matrix_set_identity (dst);
+
+ color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140); /* SD */
+
+ color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
+
+ color_matrix_offset_components (dst, 16, 128, 128);
+
+ {
+ Color c;
+ int i;
+ for (i = 7; i >= 0; i--) {
+ color_set (&c, (i & 2) ? 0.75 : 0.0, (i & 4) ? 0.75 : 0.0,
+ (i & 1) ? 0.75 : 0.0);
+ color_matrix_apply (dst, &c, &c);
+ g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
+ rint (c.v[2]));
+ }
+ color_set (&c, -0.075, -0.075, -0.075);
+ color_matrix_apply (dst, &c, &c);
+ g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
+ rint (c.v[2]));
+ color_set (&c, 0.075, 0.075, 0.075);
+ color_matrix_apply (dst, &c, &c);
+ g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
+ rint (c.v[2]));
+ }
+}
+
+void
+color_matrix_invert (ColorMatrix * m)
+{
+ ColorMatrix tmp;
+ int i, j;
+ double det;
+
+ color_matrix_set_identity (&tmp);
+ for (j = 0; j < 3; j++) {
+ for (i = 0; i < 3; i++) {
+ tmp.m[j][i] =
+ m->m[(i + 1) % 3][(j + 1) % 3] * m->m[(i + 2) % 3][(j + 2) % 3] -
+ m->m[(i + 1) % 3][(j + 2) % 3] * m->m[(i + 2) % 3][(j + 1) % 3];
+ }
+ }
+ det =
+ tmp.m[0][0] * m->m[0][0] + tmp.m[0][1] * m->m[1][0] +
+ tmp.m[0][2] * m->m[2][0];
+ for (j = 0; j < 3; j++) {
+ for (i = 0; i < 3; i++) {
+ tmp.m[i][j] /= det;
+ }
+ }
+ memcpy (m, &tmp, sizeof (tmp));
+}
+
+void
+color_matrix_copy (ColorMatrix * dest, ColorMatrix * src)
+{
+ memcpy (dest, src, sizeof (ColorMatrix));
+}
+
+void
+color_matrix_transpose (ColorMatrix * m)
+{
+ int i, j;
+ ColorMatrix tmp;
+
+ color_matrix_set_identity (&tmp);
+ for (i = 0; i < 3; i++) {
+ for (j = 0; j < 3; j++) {
+ tmp.m[i][j] = m->m[j][i];
+ }
+ }
+ memcpy (m, &tmp, sizeof (ColorMatrix));
+}
+
+void
+color_matrix_build_XYZ (ColorMatrix * dst,
+ double rx, double ry,
+ double gx, double gy, double bx, double by, double wx, double wy)
+{
+ Color r, g, b, w, scale;
+ ColorMatrix m;
+
+ color_set (&r, rx, ry, 1.0);
+ color_xyY_to_XYZ (&r);
+ color_set (&g, gx, gy, 1.0);
+ color_xyY_to_XYZ (&g);
+ color_set (&b, bx, by, 1.0);
+ color_xyY_to_XYZ (&b);
+ color_set (&w, wx, wy, 1.0);
+ color_xyY_to_XYZ (&w);
+
+ color_matrix_set_identity (dst);
+
+ dst->m[0][0] = r.v[0];
+ dst->m[0][1] = r.v[1];
+ dst->m[0][2] = r.v[2];
+ dst->m[1][0] = g.v[0];
+ dst->m[1][1] = g.v[1];
+ dst->m[1][2] = g.v[2];
+ dst->m[2][0] = b.v[0];
+ dst->m[2][1] = b.v[1];
+ dst->m[2][2] = b.v[2];
+
+ color_matrix_dump (dst);
+ color_matrix_copy (&m, dst);
+ color_matrix_invert (&m);
+ color_matrix_dump (&m);
+
+ color_matrix_transpose (&m);
+ color_matrix_apply (&m, &scale, &w);
+ g_print ("%g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
+
+ dst->m[0][0] = r.v[0] * scale.v[0];
+ dst->m[0][1] = r.v[1] * scale.v[0];
+ dst->m[0][2] = r.v[2] * scale.v[0];
+ dst->m[1][0] = g.v[0] * scale.v[1];
+ dst->m[1][1] = g.v[1] * scale.v[1];
+ dst->m[1][2] = g.v[2] * scale.v[1];
+ dst->m[2][0] = b.v[0] * scale.v[2];
+ dst->m[2][1] = b.v[1] * scale.v[2];
+ dst->m[2][2] = b.v[2] * scale.v[2];
+
+ color_matrix_transpose (dst);
+ color_matrix_dump (dst);
+
+ color_set (&scale, 1, 1, 1);
+ color_matrix_apply (dst, &scale, &scale);
+ color_XYZ_to_xyY (&scale);
+ g_print ("white %g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
+
+}
+
+void
+color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst)
+{
+ /* SMPTE C primaries, SMPTE 170M-2004 */
+ color_matrix_build_XYZ (dst,
+ 0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
+#if 0
+ /* NTSC 1953 primaries, SMPTE 170M-2004 */
+ color_matrix_build_XYZ (dst,
+ 0.67, 0.33, 0.21, 0.71, 0.14, 0.08, 0.3127, 0.3290);
+#endif
+}
+
+void
+color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst)
+{
+ /* Rec. ITU-R BT.709-5 */
+ color_matrix_build_XYZ (dst,
+ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060, 0.3127, 0.3290);
+}
+
+void
+color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst)
+{
+ /* Dell monitor */
+#if 1
+ color_matrix_build_XYZ (dst,
+ 0.662, 0.329, 0.205, 0.683, 0.146, 0.077, 0.3135, 0.3290);
+#endif
+#if 0
+ color_matrix_build_XYZ (dst,
+ 0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
+#endif
+ color_matrix_invert (dst);
+}
+
+void
+color_transfer_function_apply (Color * dest, Color * src)
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+ if (src->v[i] < 0.0812) {
+ dest->v[i] = src->v[i] / 4.500;
+ } else {
+ dest->v[i] = pow (src->v[i] + 0.099, 1 / 0.4500);
+ }
+ }
+}
+
+void
+color_transfer_function_unapply (Color * dest, Color * src)
+{
+ int i;
+
+ for (i = 0; i < 3; i++) {
+ if (src->v[i] < 0.0812 / 4.500) {
+ dest->v[i] = src->v[i] * 4.500;
+ } else {
+ dest->v[i] = pow (src->v[i], 0.4500) - 0.099;
+ }
+ }
+}
+
+void
+color_gamut_clamp (Color * dest, Color * src)
+{
+ dest->v[0] = CLAMP (src->v[0], 0.0, 1.0);
+ dest->v[1] = CLAMP (src->v[1], 0.0, 1.0);
+ dest->v[2] = CLAMP (src->v[2], 0.0, 1.0);
+}
+
+#if 0
+static guint8 *
+get_color_transform_table (void)
+{
+ static guint8 *color_transform_table = NULL;
+
+#if 1
+ if (!color_transform_table) {
+ ColorMatrix bt601_to_rgb;
+ ColorMatrix bt601_to_yuv;
+ ColorMatrix bt601_rgb_to_XYZ;
+ ColorMatrix dell_XYZ_to_rgb;
+ guint8 *table_y;
+ guint8 *table_u;
+ guint8 *table_v;
+ int y, u, v;
+
+ color_matrix_build_yuv_to_rgb_601 (&bt601_to_rgb);
+ color_matrix_build_rgb_to_yuv_601 (&bt601_to_yuv);
+ color_matrix_build_rgb_to_XYZ_601 (&bt601_rgb_to_XYZ);
+ color_matrix_build_XYZ_to_rgb_dell (&dell_XYZ_to_rgb);
+
+ color_transform_table = g_malloc (0x1000000 * 3);
+
+ table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
+ table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
+ table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
+
+ for (y = 0; y < 256; y++) {
+ for (u = 0; u < 256; u++) {
+ for (v = 0; v < 256; v++) {
+ Color c;
+
+ c.v[0] = y;
+ c.v[1] = u;
+ c.v[2] = v;
+ color_matrix_apply (&bt601_to_rgb, &c, &c);
+ color_gamut_clamp (&c, &c);
+ color_transfer_function_apply (&c, &c);
+ color_matrix_apply (&bt601_rgb_to_XYZ, &c, &c);
+ color_matrix_apply (&dell_XYZ_to_rgb, &c, &c);
+ color_transfer_function_unapply (&c, &c);
+ color_gamut_clamp (&c, &c);
+ color_matrix_apply (&bt601_to_yuv, &c, &c);
+
+ table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
+ table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
+ table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ if (!color_transform_table) {
+ ColorMatrix bt709_to_bt601;
+ guint8 *table_y;
+ guint8 *table_u;
+ guint8 *table_v;
+ int y, u, v;
+
+ color_matrix_build_bt709_to_bt601 (&bt709_to_bt601);
+
+ color_transform_table = g_malloc (0x1000000 * 3);
+
+ table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
+ table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
+ table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
+
+ for (y = 0; y < 256; y++) {
+ for (u = 0; u < 256; u++) {
+ for (v = 0; v < 256; v++) {
+ Color c;
+
+ c.v[0] = y;
+ c.v[1] = u;
+ c.v[2] = v;
+ color_matrix_apply (&bt709_to_bt601, &c, &c);
+
+ table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
+ table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
+ table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
+ }
+ }
+ }
+ }
+#endif
+
+ return color_transform_table;
+}
+#endif
diff --git a/gst/videomixer/gstcms.h b/gst/videomixer/gstcms.h
new file mode 100644
index 00000000..f926a44a
--- /dev/null
+++ b/gst/videomixer/gstcms.h
@@ -0,0 +1,71 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@entropywave.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _GST_CMS_H_
+#define _GST_CMS_H_
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+typedef struct _Color Color;
+typedef struct _ColorMatrix ColorMatrix;
+
+struct _Color
+{
+ double v[3];
+};
+
+struct _ColorMatrix
+{
+ double m[4][4];
+};
+
+void color_xyY_to_XYZ (Color * c);
+void color_XYZ_to_xyY (Color * c);
+void color_set (Color * c, double x, double y, double z);
+void color_matrix_set_identity (ColorMatrix * m);
+void color_matrix_dump (ColorMatrix * m);
+void color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b);
+void color_matrix_apply (ColorMatrix * m, Color * dest, Color * src);
+void color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
+ double a3);
+void color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3);
+void color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb);
+void color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb);
+void color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst);
+void color_matrix_build_bt709_to_bt601 (ColorMatrix * dst);
+void color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst);
+void color_matrix_invert (ColorMatrix * m);
+void color_matrix_copy (ColorMatrix * dest, ColorMatrix * src);
+void color_matrix_transpose (ColorMatrix * m);
+void color_matrix_build_XYZ (ColorMatrix * dst,
+ double rx, double ry,
+ double gx, double gy, double bx, double by, double wx, double wy);
+void color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst);
+void color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst);
+void color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst);
+void color_transfer_function_apply (Color * dest, Color * src);
+void color_transfer_function_unapply (Color * dest, Color * src);
+void color_gamut_clamp (Color * dest, Color * src);
+
+G_END_DECLS
+
+#endif
+
diff --git a/gst/videomixer/videoconvert.c b/gst/videomixer/videoconvert.c
new file mode 100644
index 00000000..ae95d59b
--- /dev/null
+++ b/gst/videomixer/videoconvert.c
@@ -0,0 +1,1420 @@
+/* GStreamer
+ * Copyright (C) 2010 David Schleef <ds@schleef.org>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "videoconvert.h"
+
+#include <glib.h>
+#include <string.h>
+#include <math.h>
+
+#include "videomixerorc.h"
+
+
+static void videomixer_videoconvert_convert_generic (VideoConvert * convert,
+ GstVideoFrame * dest, const GstVideoFrame * src);
+static void videomixer_videoconvert_convert_matrix8 (VideoConvert * convert,
+ gpointer pixels);
+static void videomixer_videoconvert_convert_matrix16 (VideoConvert * convert,
+ gpointer pixels);
+static gboolean videomixer_videoconvert_convert_lookup_fastpath (VideoConvert *
+ convert);
+static gboolean videomixer_videoconvert_convert_compute_matrix (VideoConvert *
+ convert);
+static gboolean videomixer_videoconvert_convert_compute_resample (VideoConvert *
+ convert);
+static void videomixer_videoconvert_dither_verterr (VideoConvert * convert,
+ guint16 * pixels, int j);
+static void videomixer_videoconvert_dither_halftone (VideoConvert * convert,
+ guint16 * pixels, int j);
+
+
+VideoConvert *
+videomixer_videoconvert_convert_new (GstVideoInfo * in_info,
+ GstVideoInfo * out_info)
+{
+ VideoConvert *convert;
+ gint width;
+
+ convert = g_malloc0 (sizeof (VideoConvert));
+
+ convert->in_info = *in_info;
+ convert->out_info = *out_info;
+ convert->dither16 = NULL;
+
+ convert->width = GST_VIDEO_INFO_WIDTH (in_info);
+ convert->height = GST_VIDEO_INFO_HEIGHT (in_info);
+
+ if (!videomixer_videoconvert_convert_lookup_fastpath (convert)) {
+ convert->convert = videomixer_videoconvert_convert_generic;
+ if (!videomixer_videoconvert_convert_compute_matrix (convert))
+ goto no_convert;
+
+ if (!videomixer_videoconvert_convert_compute_resample (convert))
+ goto no_convert;
+ }
+
+ width = convert->width;
+
+ convert->lines = out_info->finfo->pack_lines;
+ convert->errline = g_malloc0 (sizeof (guint16) * width * 4);
+
+ return convert;
+
+ /* ERRORS */
+no_convert:
+ {
+ videomixer_videoconvert_convert_free (convert);
+ return NULL;
+ }
+}
+
+void
+videomixer_videoconvert_convert_free (VideoConvert * convert)
+{
+ gint i;
+
+ if (convert->upsample)
+ gst_video_chroma_resample_free (convert->upsample);
+ if (convert->downsample)
+ gst_video_chroma_resample_free (convert->downsample);
+
+ for (i = 0; i < convert->n_tmplines; i++)
+ g_free (convert->tmplines[i]);
+ g_free (convert->tmplines);
+ g_free (convert->errline);
+
+ g_free (convert);
+}
+
+void
+videomixer_videoconvert_convert_set_dither (VideoConvert * convert, int type)
+{
+ switch (type) {
+ case 0:
+ default:
+ convert->dither16 = NULL;
+ break;
+ case 1:
+ convert->dither16 = videomixer_videoconvert_dither_verterr;
+ break;
+ case 2:
+ convert->dither16 = videomixer_videoconvert_dither_halftone;
+ break;
+ }
+}
+
+void
+videomixer_videoconvert_convert_convert (VideoConvert * convert,
+ GstVideoFrame * dest, const GstVideoFrame * src)
+{
+ convert->convert (convert, dest, src);
+}
+
+#define SCALE (8)
+#define SCALE_F ((float) (1 << SCALE))
+
+static void
+videomixer_videoconvert_convert_matrix8 (VideoConvert * convert,
+ gpointer pixels)
+{
+ int i;
+ int r, g, b;
+ int y, u, v;
+ guint8 *p = pixels;
+
+ for (i = 0; i < convert->width; i++) {
+ r = p[i * 4 + 1];
+ g = p[i * 4 + 2];
+ b = p[i * 4 + 3];
+
+ y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
+ convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
+ u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
+ convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
+ v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
+ convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
+
+ p[i * 4 + 1] = CLAMP (y, 0, 255);
+ p[i * 4 + 2] = CLAMP (u, 0, 255);
+ p[i * 4 + 3] = CLAMP (v, 0, 255);
+ }
+}
+
+static void
+videomixer_videoconvert_convert_matrix16 (VideoConvert * convert,
+ gpointer pixels)
+{
+ int i;
+ int r, g, b;
+ int y, u, v;
+ guint16 *p = pixels;
+
+ for (i = 0; i < convert->width; i++) {
+ r = p[i * 4 + 1];
+ g = p[i * 4 + 2];
+ b = p[i * 4 + 3];
+
+ y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
+ convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
+ u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
+ convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
+ v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
+ convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
+
+ p[i * 4 + 1] = CLAMP (y, 0, 65535);
+ p[i * 4 + 2] = CLAMP (u, 0, 65535);
+ p[i * 4 + 3] = CLAMP (v, 0, 65535);
+ }
+}
+
+static gboolean
+get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr, gdouble * Kb)
+{
+ gboolean res = TRUE;
+
+ switch (matrix) {
+ /* RGB */
+ default:
+ case GST_VIDEO_COLOR_MATRIX_RGB:
+ res = FALSE;
+ break;
+ /* YUV */
+ case GST_VIDEO_COLOR_MATRIX_FCC:
+ *Kr = 0.30;
+ *Kb = 0.11;
+ break;
+ case GST_VIDEO_COLOR_MATRIX_BT709:
+ *Kr = 0.2126;
+ *Kb = 0.0722;
+ break;
+ case GST_VIDEO_COLOR_MATRIX_BT601:
+ *Kr = 0.2990;
+ *Kb = 0.1140;
+ break;
+ case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
+ *Kr = 0.212;
+ *Kb = 0.087;
+ break;
+ }
+ GST_DEBUG ("matrix: %d, Kr %f, Kb %f", matrix, *Kr, *Kb);
+ return res;
+}
+
+static gboolean
+videomixer_videoconvert_convert_compute_matrix (VideoConvert * convert)
+{
+ GstVideoInfo *in_info, *out_info;
+ ColorMatrix dst;
+ gint i, j;
+ const GstVideoFormatInfo *sfinfo, *dfinfo;
+ const GstVideoFormatInfo *suinfo, *duinfo;
+ gint offset[4], scale[4];
+ gdouble Kr = 0, Kb = 0;
+
+ in_info = &convert->in_info;
+ out_info = &convert->out_info;
+
+ sfinfo = in_info->finfo;
+ dfinfo = out_info->finfo;
+
+ if (sfinfo->unpack_func == NULL)
+ goto no_unpack_func;
+
+ if (dfinfo->pack_func == NULL)
+ goto no_pack_func;
+
+ suinfo = gst_video_format_get_info (sfinfo->unpack_format);
+ duinfo = gst_video_format_get_info (dfinfo->unpack_format);
+
+ convert->in_bits = GST_VIDEO_FORMAT_INFO_DEPTH (suinfo, 0);
+ convert->out_bits = GST_VIDEO_FORMAT_INFO_DEPTH (duinfo, 0);
+
+ GST_DEBUG ("in bits %d, out bits %d", convert->in_bits, convert->out_bits);
+
+ if (in_info->colorimetry.range == out_info->colorimetry.range &&
+ in_info->colorimetry.matrix == out_info->colorimetry.matrix) {
+ GST_DEBUG ("using identity color transform");
+ convert->matrix = NULL;
+ return TRUE;
+ }
+
+ /* calculate intermediate format for the matrix. When unpacking, we expand
+ * input to 16 when one of the inputs is 16 bits */
+ if (convert->in_bits == 16 || convert->out_bits == 16) {
+ convert->matrix = videomixer_videoconvert_convert_matrix16;
+
+ if (GST_VIDEO_FORMAT_INFO_IS_RGB (suinfo))
+ suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
+ else
+ suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
+
+ if (GST_VIDEO_FORMAT_INFO_IS_RGB (duinfo))
+ duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
+ else
+ duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
+ } else {
+ convert->matrix = videomixer_videoconvert_convert_matrix8;
+ }
+
+ color_matrix_set_identity (&dst);
+
+ /* 1, bring color components to [0..1.0] range */
+ gst_video_color_range_offsets (in_info->colorimetry.range, suinfo, offset,
+ scale);
+ color_matrix_offset_components (&dst, -offset[0], -offset[1], -offset[2]);
+
+ color_matrix_scale_components (&dst, 1 / ((float) scale[0]),
+ 1 / ((float) scale[1]), 1 / ((float) scale[2]));
+
+ /* 2. bring components to R'G'B' space */
+ if (get_Kr_Kb (in_info->colorimetry.matrix, &Kr, &Kb))
+ color_matrix_YCbCr_to_RGB (&dst, Kr, Kb);
+
+ /* 3. inverse transfer function. R'G'B' to linear RGB */
+
+ /* 4. from RGB to XYZ using the primaries */
+
+ /* 5. from XYZ to RGB using the primaries */
+
+ /* 6. transfer function. linear RGB to R'G'B' */
+
+ /* 7. bring components to YCbCr space */
+ if (get_Kr_Kb (out_info->colorimetry.matrix, &Kr, &Kb))
+ color_matrix_RGB_to_YCbCr (&dst, Kr, Kb);
+
+ /* 8, bring color components to nominal range */
+ gst_video_color_range_offsets (out_info->colorimetry.range, duinfo, offset,
+ scale);
+ color_matrix_scale_components (&dst, (float) scale[0], (float) scale[1],
+ (float) scale[2]);
+
+ color_matrix_offset_components (&dst, offset[0], offset[1], offset[2]);
+
+ /* because we're doing fixed point matrix coefficients */
+ color_matrix_scale_components (&dst, SCALE_F, SCALE_F, SCALE_F);
+
+ for (i = 0; i < 4; i++)
+ for (j = 0; j < 4; j++)
+ convert->cmatrix[i][j] = rint (dst.m[i][j]);
+
+ GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[0][0],
+ convert->cmatrix[0][1], convert->cmatrix[0][2], convert->cmatrix[0][3]);
+ GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[1][0],
+ convert->cmatrix[1][1], convert->cmatrix[1][2], convert->cmatrix[1][3]);
+ GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[2][0],
+ convert->cmatrix[2][1], convert->cmatrix[2][2], convert->cmatrix[2][3]);
+ GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[3][0],
+ convert->cmatrix[3][1], convert->cmatrix[3][2], convert->cmatrix[3][3]);
+
+ return TRUE;
+
+ /* ERRORS */
+no_unpack_func:
+ {
+ GST_ERROR ("no unpack_func for format %s",
+ gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (in_info)));
+ return FALSE;
+ }
+no_pack_func:
+ {
+ GST_ERROR ("no pack_func for format %s",
+ gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (out_info)));
+ return FALSE;
+ }
+}
+
+static void
+videomixer_videoconvert_dither_verterr (VideoConvert * convert,
+ guint16 * pixels, int j)
+{
+ int i;
+ guint16 *errline = convert->errline;
+ unsigned int mask = 0xff;
+
+ for (i = 0; i < 4 * convert->width; i++) {
+ int x = pixels[i] + errline[i];
+ if (x > 65535)
+ x = 65535;
+ pixels[i] = x;
+ errline[i] = x & mask;
+ }
+}
+
+static void
+videomixer_videoconvert_dither_halftone (VideoConvert * convert,
+ guint16 * pixels, int j)
+{
+ int i;
+ static guint16 halftone[8][8] = {
+ {0, 128, 32, 160, 8, 136, 40, 168},
+ {192, 64, 224, 96, 200, 72, 232, 104},
+ {48, 176, 16, 144, 56, 184, 24, 152},
+ {240, 112, 208, 80, 248, 120, 216, 88},
+ {12, 240, 44, 172, 4, 132, 36, 164},
+ {204, 76, 236, 108, 196, 68, 228, 100},
+ {60, 188, 28, 156, 52, 180, 20, 148},
+ {252, 142, 220, 92, 244, 116, 212, 84}
+ };
+
+ for (i = 0; i < convert->width * 4; i++) {
+ int x;
+ x = pixels[i] + halftone[(i >> 2) & 7][j & 7];
+ if (x > 65535)
+ x = 65535;
+ pixels[i] = x;
+ }
+}
+
+static gboolean
+videomixer_videoconvert_convert_compute_resample (VideoConvert * convert)
+{
+ GstVideoInfo *in_info, *out_info;
+ const GstVideoFormatInfo *sfinfo, *dfinfo;
+ gint lines, i;
+ gint width;
+
+ in_info = &convert->in_info;
+ out_info = &convert->out_info;
+
+ sfinfo = in_info->finfo;
+ dfinfo = out_info->finfo;
+
+ width = convert->width;
+
+ convert->upsample = gst_video_chroma_resample_new (0,
+ in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
+ sfinfo->h_sub[2]);
+ if (convert->upsample) {
+ gst_video_chroma_resample_get_info (convert->upsample,
+ &convert->up_n_lines, &convert->up_offset);
+ } else {
+ convert->up_n_lines = 1;
+ convert->up_offset = 0;
+ }
+ GST_DEBUG ("upsample: %p, offset %d, n_lines %d", convert->upsample,
+ convert->up_offset, convert->up_n_lines);
+
+ convert->downsample = gst_video_chroma_resample_new (0,
+ out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
+ -dfinfo->h_sub[2]);
+ if (convert->downsample) {
+ gst_video_chroma_resample_get_info (convert->downsample,
+ &convert->down_n_lines, &convert->down_offset);
+ } else {
+ convert->down_n_lines = 1;
+ convert->down_offset = 0;
+ }
+
+ GST_DEBUG ("downsample: %p, offset %d, n_lines %d", convert->downsample,
+ convert->down_offset, convert->down_n_lines);
+
+ lines = MAX (convert->down_n_lines, convert->up_n_lines);
+
+ convert->n_tmplines = lines;
+ convert->tmplines = g_malloc (lines * sizeof (gpointer));
+ for (i = 0; i < lines; i++)
+ convert->tmplines[i] = g_malloc (sizeof (guint16) * (width + 8) * 4);
+
+ return TRUE;
+}
+
+#define TO_16(x) (((x)<<8) | (x))
+
+static void
+convert_to16 (gpointer line, gint width)
+{
+ guint8 *line8 = line;
+ guint16 *line16 = line;
+ gint i;
+
+ for (i = (width - 1) * 4; i >= 0; i--)
+ line16[i] = TO_16 (line8[i]);
+}
+
+static void
+convert_to8 (gpointer line, gint width)
+{
+ guint8 *line8 = line;
+ guint16 *line16 = line;
+ gint i;
+
+ for (i = 0; i < width * 4; i++)
+ line8[i] = line16[i] >> 8;
+}
+
+#define UNPACK_FRAME(frame,dest,line,width) \
+ frame->info.finfo->unpack_func (frame->info.finfo, \
+ (GST_VIDEO_FRAME_IS_INTERLACED (frame) ? \
+ GST_VIDEO_PACK_FLAG_INTERLACED : \
+ GST_VIDEO_PACK_FLAG_NONE), \
+ dest, frame->data, frame->info.stride, 0, \
+ line, width)
+#define PACK_FRAME(frame,dest,line,width) \
+ frame->info.finfo->pack_func (frame->info.finfo, \
+ (GST_VIDEO_FRAME_IS_INTERLACED (frame) ? \
+ GST_VIDEO_PACK_FLAG_INTERLACED : \
+ GST_VIDEO_PACK_FLAG_NONE), \
+ dest, 0, frame->data, frame->info.stride, \
+ frame->info.chroma_site, line, width);
+
+static void
+videomixer_videoconvert_convert_generic (VideoConvert * convert,
+ GstVideoFrame * dest, const GstVideoFrame * src)
+{
+ int j, k;
+ gint width, height, lines, max_lines;
+ guint in_bits, out_bits;
+ gconstpointer pal;
+ gsize palsize;
+ guint up_n_lines, down_n_lines;
+ gint up_offset, down_offset;
+ gint in_lines, out_lines;
+ gint up_line, down_line;
+ gint start_offset, stop_offset;
+ gpointer in_tmplines[8];
+ gpointer out_tmplines[8];
+
+ height = convert->height;
+ width = convert->width;
+
+ in_bits = convert->in_bits;
+ out_bits = convert->out_bits;
+
+ lines = convert->lines;
+ up_n_lines = convert->up_n_lines;
+ up_offset = convert->up_offset;
+ down_n_lines = convert->down_n_lines;
+ down_offset = convert->down_offset;
+ max_lines = MAX (down_n_lines, up_n_lines);
+
+ in_lines = 0;
+ out_lines = 0;
+
+ GST_DEBUG ("up_offset %d, up_n_lines %u", up_offset, up_n_lines);
+
+ start_offset = MIN (up_offset, down_offset);
+ stop_offset = height + start_offset + MAX (up_n_lines, down_n_lines);
+
+ for (; start_offset < stop_offset; start_offset++) {
+ guint idx, start;
+
+ idx = CLAMP (start_offset, 0, height);
+ in_tmplines[in_lines] = convert->tmplines[idx % max_lines];
+ out_tmplines[out_lines] = in_tmplines[in_lines];
+ GST_DEBUG ("start_offset %d, %d, idx %u, in %d, out %d", start_offset,
+ up_offset, idx, in_lines, out_lines);
+
+ up_line = up_offset + in_lines;
+
+ /* extract the next line */
+ if (up_line >= 0 && up_line < height) {
+ GST_DEBUG ("unpack line %d", up_line);
+ UNPACK_FRAME (src, in_tmplines[in_lines], up_line, width);
+ }
+
+ if (start_offset >= up_offset)
+ in_lines++;
+
+ if (start_offset >= down_offset)
+ out_lines++;
+
+ if (in_lines < up_n_lines)
+ continue;
+
+ in_lines = 0;
+
+ /* we have enough lines to upsample */
+ if (convert->upsample) {
+ GST_DEBUG ("doing upsample");
+ gst_video_chroma_resample (convert->upsample, in_tmplines, width);
+ }
+
+ /* convert upsampled lines */
+ for (k = 0; k < up_n_lines; k++) {
+ down_line = up_offset + k;
+
+ /* only takes lines with valid output */
+ if (down_line < 0 || down_line >= height)
+ continue;
+
+ GST_DEBUG ("handle line %d, %d/%d, down_line %d", k, out_lines,
+ down_n_lines, down_line);
+
+ if (out_bits == 16 || in_bits == 16) {
+ /* FIXME, we can scale in the conversion matrix */
+ if (in_bits == 8)
+ convert_to16 (in_tmplines[k], width);
+
+ if (convert->matrix)
+ convert->matrix (convert, in_tmplines[k]);
+ if (convert->dither16)
+ convert->dither16 (convert, in_tmplines[k], down_line);
+
+ if (out_bits == 8)
+ convert_to8 (in_tmplines[k], width);
+ } else {
+ if (convert->matrix)
+ convert->matrix (convert, in_tmplines[k]);
+ }
+ }
+
+ start = 0;
+ while (out_lines >= down_n_lines) {
+ GST_DEBUG ("doing downsample %u", start);
+ if (convert->downsample)
+ gst_video_chroma_resample (convert->downsample,
+ &out_tmplines[start], width);
+
+ for (j = 0; j < down_n_lines; j += lines) {
+ idx = down_offset + j;
+
+ if (idx >= 0 && idx < height) {
+ GST_DEBUG ("packing line %d %d %d", j + start, down_offset, idx);
+ /* FIXME, not correct if lines > 1 */
+ PACK_FRAME (dest, out_tmplines[j + start], idx, width);
+ }
+ }
+ down_offset += down_n_lines;
+ start += down_n_lines;
+ out_lines -= down_n_lines;
+ }
+ up_offset += up_n_lines;
+ }
+ if ((pal =
+ gst_video_format_get_palette (GST_VIDEO_FRAME_FORMAT (dest),
+ &palsize))) {
+ memcpy (GST_VIDEO_FRAME_PLANE_DATA (dest, 1), pal, palsize);
+ }
+}
+
+#define FRAME_GET_PLANE_STRIDE(frame, plane) \
+ GST_VIDEO_FRAME_PLANE_STRIDE (frame, plane)
+#define FRAME_GET_PLANE_LINE(frame, plane, line) \
+ (gpointer)(((guint8*)(GST_VIDEO_FRAME_PLANE_DATA (frame, plane))) + \
+ FRAME_GET_PLANE_STRIDE (frame, plane) * (line))
+
+#define FRAME_GET_COMP_STRIDE(frame, comp) \
+ GST_VIDEO_FRAME_COMP_STRIDE (frame, comp)
+#define FRAME_GET_COMP_LINE(frame, comp, line) \
+ (gpointer)(((guint8*)(GST_VIDEO_FRAME_COMP_DATA (frame, comp))) + \
+ FRAME_GET_COMP_STRIDE (frame, comp) * (line))
+
+#define FRAME_GET_STRIDE(frame) FRAME_GET_PLANE_STRIDE (frame, 0)
+#define FRAME_GET_LINE(frame,line) FRAME_GET_PLANE_LINE (frame, 0, line)
+
+#define FRAME_GET_Y_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_Y, line)
+#define FRAME_GET_U_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_U, line)
+#define FRAME_GET_V_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_V, line)
+#define FRAME_GET_A_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_A, line)
+
+#define FRAME_GET_Y_STRIDE(frame) FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_Y)
+#define FRAME_GET_U_STRIDE(frame) FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_U)
+#define FRAME_GET_V_STRIDE(frame) FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_V)
+#define FRAME_GET_A_STRIDE(frame) FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_A)
+
+/* Fast paths */
+
+#define GET_LINE_OFFSETS(interlaced,line,l1,l2) \
+ if (interlaced) { \
+ l1 = (line & 2 ? line - 1 : line); \
+ l2 = l1 + 2; \
+ } else { \
+ l1 = line; \
+ l2 = l1 + 1; \
+ }
+
+
+static void
+convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i;
+ gint width = convert->width;
+ gint height = convert->height;
+ gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+ gint l1, l2;
+
+ for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+ GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+ videomixer_video_convert_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
+ FRAME_GET_LINE (dest, l2),
+ FRAME_GET_Y_LINE (src, l1),
+ FRAME_GET_Y_LINE (src, l2),
+ FRAME_GET_U_LINE (src, i >> 1),
+ FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
+ }
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_I420_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i;
+ gint width = convert->width;
+ gint height = convert->height;
+ gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+ gint l1, l2;
+
+ for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+ GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+ videomixer_video_convert_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
+ FRAME_GET_LINE (dest, l2),
+ FRAME_GET_Y_LINE (src, l1),
+ FRAME_GET_Y_LINE (src, l2),
+ FRAME_GET_U_LINE (src, i >> 1),
+ FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
+ }
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_I420_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i;
+ gint width = convert->width;
+ gint height = convert->height;
+ gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+ gint l1, l2;
+
+ for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+ GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+ videomixer_video_convert_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
+ FRAME_GET_LINE (dest, l2),
+ FRAME_GET_Y_LINE (src, l1),
+ FRAME_GET_Y_LINE (src, l2),
+ FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1), width);
+ }
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_I420_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_420_422 (FRAME_GET_U_LINE (dest,
+ 0), 2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
+ 2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+
+ videomixer_video_convert_orc_planar_chroma_420_422 (FRAME_GET_V_LINE (dest,
+ 0), 2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
+ 2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+}
+
+static void
+convert_I420_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_420_444 (FRAME_GET_U_LINE (dest,
+ 0), 2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
+ 2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+
+ videomixer_video_convert_orc_planar_chroma_420_444 (FRAME_GET_V_LINE (dest,
+ 0), 2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
+ 2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i, h;
+ gint width = convert->width;
+ gint height = convert->height;
+ gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+ gint l1, l2;
+
+ h = height;
+ if (width & 1)
+ h--;
+
+ for (i = 0; i < h; i += 2) {
+ GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+ videomixer_video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
+ FRAME_GET_Y_LINE (dest, l2),
+ FRAME_GET_U_LINE (dest, i >> 1),
+ FRAME_GET_V_LINE (dest, i >> 1),
+ FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
+ }
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_YUY2_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2,
+ height & 1 ? height - 1 : height);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_YUY2_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_YUY2_Y42B (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_YUY2_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_YUY2_Y444 (FRAME_GET_COMP_LINE (dest, 0,
+ 0), FRAME_GET_COMP_STRIDE (dest, 0), FRAME_GET_COMP_LINE (dest, 1, 0),
+ FRAME_GET_COMP_STRIDE (dest, 1), FRAME_GET_COMP_LINE (dest, 2, 0),
+ FRAME_GET_COMP_STRIDE (dest, 2), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+}
+
+
+static void
+convert_UYVY_I420 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i;
+ gint width = convert->width;
+ gint height = convert->height;
+ gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+ gint l1, l2;
+
+ for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+ GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+ videomixer_video_convert_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest,
+ 0, l1), FRAME_GET_COMP_LINE (dest, 0, l2),
+ FRAME_GET_COMP_LINE (dest, 1, i >> 1), FRAME_GET_COMP_LINE (dest, 2,
+ i >> 1), FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2),
+ (width + 1) / 2);
+ }
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_UYVY_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2,
+ height & 1 ? height - 1 : height);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_UYVY_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_UYVY_YUY2 (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_UYVY_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_UYVY_Y42B (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_UYVY_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_UYVY_Y444 (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_AYUV_I420 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
+ 2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (dest, 1),
+ 2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ 2 * FRAME_GET_STRIDE (src), FRAME_GET_LINE (src, 1),
+ 2 * FRAME_GET_STRIDE (src), width / 2, height / 2);
+}
+
+static void
+convert_AYUV_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width / 2, height);
+}
+
+static void
+convert_AYUV_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width / 2, height);
+}
+
+static void
+convert_AYUV_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), (width + 1) / 2,
+ height & 1 ? height - 1 : height);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_AYUV_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_Y444 (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+ FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+ FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width, height);
+}
+
+static void
+convert_Y42B_I420 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_422_420 (FRAME_GET_U_LINE (dest,
+ 0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ 2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
+ 2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+
+ videomixer_video_convert_orc_planar_chroma_422_420 (FRAME_GET_V_LINE (dest,
+ 0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ 2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
+ 2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_Y42B_Y444 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_422_444 (FRAME_GET_U_LINE (dest,
+ 0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
+
+ videomixer_video_convert_orc_planar_chroma_422_444 (FRAME_GET_V_LINE (dest,
+ 0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y42B_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y42B_YUY2 (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y42B_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y42B_UYVY (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y42B_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width) / 2, height);
+}
+
+static void
+convert_Y444_I420 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest,
+ 0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ 2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
+ 2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+
+ videomixer_video_convert_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest,
+ 0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ 2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
+ 2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+
+ /* now handle last line */
+ if (height & 1) {
+ UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+ PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
+ }
+}
+
+static void
+convert_Y444_Y42B (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
+ FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), width, height);
+
+ videomixer_video_convert_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest,
+ 0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
+
+ videomixer_video_convert_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest,
+ 0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y444_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y444_YUY2 (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y444_UYVY (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y444_UYVY (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+}
+
+static void
+convert_Y444_AYUV (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_Y444_AYUV (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
+ FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
+ FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
+ FRAME_GET_V_STRIDE (src), width, height);
+}
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+static void
+convert_AYUV_ARGB (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_ARGB (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width, height);
+}
+
+static void
+convert_AYUV_BGRA (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_BGRA (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width, height);
+}
+
+static void
+convert_AYUV_ABGR (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_ABGR (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width, height);
+}
+
+static void
+convert_AYUV_RGBA (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ gint width = convert->width;
+ gint height = convert->height;
+
+ videomixer_video_convert_orc_convert_AYUV_RGBA (FRAME_GET_LINE (dest, 0),
+ FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
+ FRAME_GET_STRIDE (src), width, height);
+}
+
+static void
+convert_I420_BGRA (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src)
+{
+ int i;
+ int quality = 0;
+ gint width = convert->width;
+ gint height = convert->height;
+
+ if (quality > 3) {
+ for (i = 0; i < height; i++) {
+ if (i & 1) {
+ videomixer_video_convert_orc_convert_I420_BGRA_avg (FRAME_GET_LINE
+ (dest, i), FRAME_GET_Y_LINE (src, i), FRAME_GET_U_LINE (src,
+ i >> 1), FRAME_GET_U_LINE (src, (i >> 1) + 1),
+ FRAME_GET_V_LINE (src, i >> 1), FRAME_GET_V_LINE (src,
+ (i >> 1) + 1), width);
+ } else {
+ videomixer_video_convert_orc_convert_I420_BGRA (FRAME_GET_LINE (dest,
+ i), FRAME_GET_Y_LINE (src, i), FRAME_GET_U_LINE (src, i >> 1),
+ FRAME_GET_V_LINE (src, i >> 1), width);
+ }
+ }
+ } else {
+ for (i = 0; i < height; i++) {
+ videomixer_video_convert_orc_convert_I420_BGRA (FRAME_GET_LINE (dest, i),
+ FRAME_GET_Y_LINE (src, i),
+ FRAME_GET_U_LINE (src, i >> 1),
+ FRAME_GET_V_LINE (src, i >> 1), width);
+ }
+ }
+}
+#endif
+
+
+
+/* Fast paths */
+
+typedef struct
+{
+ GstVideoFormat in_format;
+ GstVideoColorMatrix in_matrix;
+ GstVideoFormat out_format;
+ GstVideoColorMatrix out_matrix;
+ gboolean keeps_color_matrix;
+ gboolean keeps_interlaced;
+ void (*convert) (VideoConvert * convert, GstVideoFrame * dest,
+ const GstVideoFrame * src);
+} VideoTransform;
+
+static const VideoTransform transforms[] = {
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_YUY2},
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_UYVY},
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_AYUV},
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y42B},
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y444},
+
+ {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_I420},
+ {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2}, /* alias */
+ {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_AYUV},
+ {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y42B},
+ {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y444},
+
+ {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_I420},
+ {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2},
+ {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_AYUV},
+ {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y42B},
+ {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y444},
+
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_AYUV_I420},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_YUY2},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_UYVY},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y42B},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y444},
+
+ {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y42B_I420},
+ {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_YUY2},
+ {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_UYVY},
+ {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_AYUV},
+ {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_Y444},
+
+ {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y444_I420},
+ {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_YUY2},
+ {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_UYVY},
+ {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_AYUV},
+ {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_Y42B},
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ARGB,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xRGB,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB}, /* alias */
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA}, /* alias */
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ABGR,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBA,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA},
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xBGR,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR}, /* alias */
+ {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBx,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA}, /* alias */
+
+ {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
+ GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, convert_I420_BGRA},
+#endif
+};
+
+static gboolean
+videomixer_videoconvert_convert_lookup_fastpath (VideoConvert * convert)
+{
+ int i;
+ GstVideoFormat in_format, out_format;
+ GstVideoColorMatrix in_matrix, out_matrix;
+ gboolean interlaced;
+
+ in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
+ out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
+
+ in_matrix = convert->in_info.colorimetry.matrix;
+ out_matrix = convert->out_info.colorimetry.matrix;
+
+ interlaced = GST_VIDEO_INFO_IS_INTERLACED (&convert->in_info);
+ interlaced |= GST_VIDEO_INFO_IS_INTERLACED (&convert->out_info);
+
+ for (i = 0; i < sizeof (transforms) / sizeof (transforms[0]); i++) {
+ if (transforms[i].in_format == in_format &&
+ transforms[i].out_format == out_format &&
+ (transforms[i].keeps_color_matrix ||
+ (transforms[i].in_matrix == in_matrix &&
+ transforms[i].out_matrix == out_matrix)) &&
+ (transforms[i].keeps_interlaced || !interlaced)) {
+ GST_DEBUG ("using fastpath");
+ convert->convert = transforms[i].convert;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
diff --git a/gst/videomixer/videoconvert.h b/gst/videomixer/videoconvert.h
new file mode 100644
index 00000000..b83b28ba
--- /dev/null
+++ b/gst/videomixer/videoconvert.h
@@ -0,0 +1,80 @@
+/* Video conversion functions
+ * Copyright (C) 2010 David Schleef <ds@schleef.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should 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 St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __COLORSPACE_H__
+#define __COLORSPACE_H__
+
+#include <gst/video/video.h>
+#include "gstcms.h"
+
+G_BEGIN_DECLS
+
+typedef struct _VideoConvert VideoConvert;
+
+typedef enum {
+ DITHER_NONE,
+ DITHER_VERTERR,
+ DITHER_HALFTONE
+} ColorSpaceDitherMethod;
+
+struct _VideoConvert {
+ GstVideoInfo in_info;
+ GstVideoInfo out_info;
+
+ gint width;
+ gint height;
+
+ gint in_bits;
+ gint out_bits;
+ gint cmatrix[4][4];
+
+ ColorSpaceDitherMethod dither;
+
+ guint lines;
+
+ guint n_tmplines;
+ gpointer *tmplines;
+ guint16 *errline;
+
+ GstVideoChromaResample *upsample;
+ guint up_n_lines;
+ gint up_offset;
+ GstVideoChromaResample *downsample;
+ guint down_n_lines;
+ gint down_offset;
+
+ void (*convert) (VideoConvert *convert, GstVideoFrame *dest, const GstVideoFrame *src);
+ void (*matrix) (VideoConvert *convert, gpointer pixels);
+ void (*dither16) (VideoConvert *convert, guint16 * pixels, int j);
+
+};
+
+VideoConvert * videomixer_videoconvert_convert_new (GstVideoInfo *in_info,
+ GstVideoInfo *out_info);
+void videomixer_videoconvert_convert_free (VideoConvert * convert);
+
+void videomixer_videoconvert_convert_set_dither (VideoConvert * convert, int type);
+
+void videomixer_videoconvert_convert_convert (VideoConvert * convert,
+ GstVideoFrame *dest, const GstVideoFrame *src);
+
+
+G_END_DECLS
+
+#endif /* __GST_COLORSPACE_H__ */
diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c
index 1fe43194..c12f0368 100644
--- a/gst/videomixer/videomixer2.c
+++ b/gst/videomixer/videomixer2.c
@@ -26,9 +26,7 @@
* output parameters. Indeed output video frames will have the geometry of the
* biggest incoming video stream and the framerate of the fastest incoming one.
*
- * All sink pads must be either AYUV, ARGB or BGRA, but a mixture of them is not
- * supported. The src pad will have the same colorspace as the sinks.
- * No colorspace conversion is done.
+ * Videomixer will do colorspace conversion.
*
* Individual parameters for each input stream can be configured on the
* #GstVideoMixer2Pad.
@@ -86,6 +84,7 @@
#include "videomixer2.h"
#include "videomixer2pad.h"
+#include "videoconvert.h"
#ifdef DISABLE_ORC
#define orc_memset memset
@@ -289,9 +288,150 @@ gst_videomixer2_update_src_caps (GstVideoMixer2 * mix)
done:
GST_VIDEO_MIXER2_SETCAPS_UNLOCK (mix);
+
return ret;
}
+static gboolean
+gst_videomixer2_update_converters (GstVideoMixer2 * mix)
+{
+ GSList *tmp;
+ GstVideoFormat best_format;
+ GstVideoInfo best_info;
+ GstVideoMixer2Pad *pad;
+ gboolean need_alpha = FALSE;
+ GstCaps *downstream_caps;
+ GstCaps *possible_caps;
+ gchar *best_colorimetry;
+ const gchar *best_chroma;
+ GHashTable *formats_table = g_hash_table_new (g_direct_hash, g_direct_equal);
+ gint best_format_number = 0;
+
+ best_format = GST_VIDEO_FORMAT_UNKNOWN;
+ gst_video_info_init (&best_info);
+
+ downstream_caps = gst_pad_get_allowed_caps (mix->srcpad);
+
+ if (!downstream_caps || gst_caps_is_empty (downstream_caps))
+ return FALSE;
+
+ /* first find new preferred format */
+ for (tmp = mix->sinkpads; tmp; tmp = tmp->next) {
+ GstStructure *s;
+ gint format_number;
+
+ pad = tmp->data;
+
+ if (!pad->info.finfo)
+ continue;
+
+ /* If we want alpha, disregard all the other formats */
+ if (need_alpha && !(pad->info.finfo->flags & GST_VIDEO_FORMAT_FLAG_ALPHA))
+ continue;
+
+ /* This can happen if we release a pad and another pad hasn't been negotiated yet */
+ if (GST_VIDEO_INFO_FORMAT (&pad->info) == GST_VIDEO_FORMAT_UNKNOWN)
+ continue;
+
+ possible_caps = gst_video_info_to_caps (&pad->info);
+
+ s = gst_caps_get_structure (possible_caps, 0);
+ gst_structure_remove_fields (s, "width", "height", "framerate",
+ "pixel-aspect-ratio", "interlace-mode", NULL);
+
+ /* Can downstream accept this format ? */
+ if (!gst_caps_can_intersect (downstream_caps, possible_caps)) {
+ gst_caps_unref (possible_caps);
+ continue;
+ }
+
+ gst_caps_unref (possible_caps);
+
+ format_number =
+ GPOINTER_TO_INT (g_hash_table_lookup (formats_table,
+ GINT_TO_POINTER (GST_VIDEO_INFO_FORMAT (&pad->info))));
+ format_number += 1;
+
+ g_hash_table_replace (formats_table,
+ GINT_TO_POINTER (GST_VIDEO_INFO_FORMAT (&pad->info)),
+ GINT_TO_POINTER (format_number));
+
+ /* If that pad is the first with alpha, set it as the new best format */
+ if (!need_alpha && (pad->info.finfo->flags & GST_VIDEO_FORMAT_FLAG_ALPHA)) {
+ need_alpha = TRUE;
+ best_format = GST_VIDEO_INFO_FORMAT (&pad->info);
+ best_info = pad->info;
+ best_format_number = format_number;
+ } else if (format_number > best_format_number) {
+ best_format = GST_VIDEO_INFO_FORMAT (&pad->info);
+ best_info = pad->info;
+ best_format_number = format_number;
+ }
+ }
+
+ g_hash_table_unref (formats_table);
+
+ if (best_format == GST_VIDEO_FORMAT_UNKNOWN) {
+ downstream_caps = gst_caps_fixate (downstream_caps);
+ gst_video_info_from_caps (&best_info, downstream_caps);
+ best_format = GST_VIDEO_INFO_FORMAT (&best_info);
+ }
+
+ gst_caps_unref (downstream_caps);
+
+ best_colorimetry = gst_video_colorimetry_to_string (&(best_info.colorimetry));
+ best_chroma = gst_video_chroma_to_string (best_info.chroma_site);
+ mix->info = best_info;
+
+ GST_DEBUG_OBJECT (mix,
+ "The output format will now be : %d with colorimetry : %s and chroma : %s",
+ best_format, best_colorimetry, best_chroma);
+
+ /* Then browse the sinks once more, setting or unsetting conversion if needed */
+ for (tmp = mix->sinkpads; tmp; tmp = tmp->next) {
+ gchar *colorimetry;
+ const gchar *chroma;
+
+ pad = tmp->data;
+
+ if (!pad->info.finfo)
+ continue;
+
+ if (GST_VIDEO_INFO_FORMAT (&pad->info) == GST_VIDEO_FORMAT_UNKNOWN)
+ continue;
+
+ if (pad->convert)
+ videomixer_videoconvert_convert_free (pad->convert);
+
+ pad->convert = NULL;
+
+ colorimetry = gst_video_colorimetry_to_string (&(pad->info.colorimetry));
+ chroma = gst_video_chroma_to_string (pad->info.chroma_site);
+
+ if (best_format != GST_VIDEO_INFO_FORMAT (&pad->info) ||
+ g_strcmp0 (colorimetry, best_colorimetry) ||
+ g_strcmp0 (chroma, best_chroma)) {
+ GST_DEBUG_OBJECT (pad, "This pad will be converted from %d to %d",
+ GST_VIDEO_INFO_FORMAT (&pad->info),
+ GST_VIDEO_INFO_FORMAT (&best_info));
+ pad->convert =
+ videomixer_videoconvert_convert_new (&pad->info, &best_info);
+ pad->need_conversion_update = TRUE;
+ if (!pad->convert) {
+ g_free (colorimetry);
+ g_free (best_colorimetry);
+ GST_WARNING ("No path found for conversion");
+ return FALSE;
+ }
+ } else {
+ GST_DEBUG_OBJECT (pad, "This pad will not need conversion");
+ }
+ g_free (colorimetry);
+ }
+
+ g_free (best_colorimetry);
+ return TRUE;
+}
static gboolean
gst_videomixer2_pad_sink_setcaps (GstPad * pad, GstObject * parent,
@@ -314,23 +454,28 @@ gst_videomixer2_pad_sink_setcaps (GstPad * pad, GstObject * parent,
GST_VIDEO_MIXER2_LOCK (mix);
if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN) {
- if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_INFO_FORMAT (&info) ||
- GST_VIDEO_INFO_PAR_N (&mix->info) != GST_VIDEO_INFO_PAR_N (&info) ||
- GST_VIDEO_INFO_PAR_D (&mix->info) != GST_VIDEO_INFO_PAR_D (&info)) {
+ if (GST_VIDEO_INFO_PAR_N (&mix->info) != GST_VIDEO_INFO_PAR_N (&info)
+ || GST_VIDEO_INFO_PAR_D (&mix->info) != GST_VIDEO_INFO_PAR_D (&info) ||
+ GST_VIDEO_INFO_INTERLACE_MODE (&mix->info) !=
+ GST_VIDEO_INFO_INTERLACE_MODE (&info)) {
+ GST_DEBUG_OBJECT (pad,
+ "got input caps %" GST_PTR_FORMAT ", but " "current caps are %"
+ GST_PTR_FORMAT, caps, mix->current_caps);
GST_VIDEO_MIXER2_UNLOCK (mix);
- GST_DEBUG_OBJECT (pad, "got input caps %" GST_PTR_FORMAT ", but "
- "current caps are %" GST_PTR_FORMAT, caps, mix->current_caps);
- gst_pad_push_event (pad, gst_event_new_reconfigure ());
return FALSE;
}
}
- mix->info = info;
mixpad->info = info;
- GST_VIDEO_MIXER2_UNLOCK (mix);
+ GST_COLLECT_PADS_STREAM_LOCK (mix->collect);
- ret = gst_videomixer2_update_src_caps (mix);
+ ret = gst_videomixer2_update_converters (mix);
+
+ GST_VIDEO_MIXER2_UNLOCK (mix);
+ if (ret)
+ ret = gst_videomixer2_update_src_caps (mix);
+ GST_COLLECT_PADS_STREAM_UNLOCK (mix->collect);
beach:
return ret;
@@ -341,12 +486,20 @@ gst_videomixer2_pad_sink_getcaps (GstPad * pad, GstVideoMixer2 * mix,
GstCaps * filter)
{
GstCaps *srccaps;
+ GstCaps *template_caps;
+ GstCaps *filtered_caps;
+ GstCaps *returned_caps;
GstStructure *s;
+ gboolean had_current_caps = TRUE;
gint i, n;
+ template_caps = gst_pad_get_pad_template_caps (GST_PAD (mix->srcpad));
+
srccaps = gst_pad_get_current_caps (GST_PAD (mix->srcpad));
- if (srccaps == NULL)
- srccaps = gst_pad_get_pad_template_caps (GST_PAD (mix->srcpad));
+ if (srccaps == NULL) {
+ had_current_caps = FALSE;
+ srccaps = template_caps;
+ }
srccaps = gst_caps_make_writable (srccaps);
@@ -359,11 +512,23 @@ gst_videomixer2_pad_sink_getcaps (GstPad * pad, GstVideoMixer2 * mix,
if (!gst_structure_has_field (s, "pixel-aspect-ratio"))
gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
NULL);
+
+ gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
+ NULL);
}
- GST_DEBUG_OBJECT (pad, "Returning %" GST_PTR_FORMAT, srccaps);
+ filtered_caps = srccaps;
+ if (filter)
+ filtered_caps = gst_caps_intersect (srccaps, filter);
+ returned_caps = gst_caps_intersect (filtered_caps, template_caps);
+
+ gst_caps_unref (srccaps);
+ if (filter)
+ gst_caps_unref (filtered_caps);
+ if (had_current_caps)
+ gst_caps_unref (template_caps);
- return srccaps;
+ return returned_caps;
}
static gboolean
@@ -371,17 +536,26 @@ gst_videomixer2_pad_sink_acceptcaps (GstPad * pad, GstVideoMixer2 * mix,
GstCaps * caps)
{
gboolean ret;
+ GstCaps *modified_caps;
GstCaps *accepted_caps;
+ GstCaps *template_caps;
+ gboolean had_current_caps = TRUE;
gint i, n;
GstStructure *s;
GST_DEBUG_OBJECT (pad, "%" GST_PTR_FORMAT, caps);
accepted_caps = gst_pad_get_current_caps (GST_PAD (mix->srcpad));
- if (accepted_caps == NULL)
- accepted_caps = gst_pad_get_pad_template_caps (GST_PAD (mix->srcpad));
+
+ template_caps = gst_pad_get_pad_template_caps (GST_PAD (mix->srcpad));
+
+ if (accepted_caps == NULL) {
+ accepted_caps = template_caps;
+ had_current_caps = FALSE;
+ }
accepted_caps = gst_caps_make_writable (accepted_caps);
+
GST_LOG_OBJECT (pad, "src caps %" GST_PTR_FORMAT, accepted_caps);
n = gst_caps_get_size (accepted_caps);
@@ -393,14 +567,21 @@ gst_videomixer2_pad_sink_acceptcaps (GstPad * pad, GstVideoMixer2 * mix,
if (!gst_structure_has_field (s, "pixel-aspect-ratio"))
gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
NULL);
+
+ gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
+ NULL);
}
+ modified_caps = gst_caps_intersect (accepted_caps, template_caps);
+
ret = gst_caps_can_intersect (caps, accepted_caps);
- GST_INFO_OBJECT (pad, "%saccepted caps %" GST_PTR_FORMAT, (ret ? "" : "not "),
- caps);
- GST_INFO_OBJECT (pad, "acceptable caps are %" GST_PTR_FORMAT, accepted_caps);
+ GST_DEBUG_OBJECT (pad, "%saccepted caps %" GST_PTR_FORMAT,
+ (ret ? "" : "not "), caps);
+ GST_DEBUG_OBJECT (pad, "acceptable caps are %" GST_PTR_FORMAT, accepted_caps);
gst_caps_unref (accepted_caps);
-
+ gst_caps_unref (modified_caps);
+ if (had_current_caps)
+ gst_caps_unref (template_caps);
return ret;
}
@@ -538,6 +719,8 @@ gst_videomixer2_pad_init (GstVideoMixer2Pad * mixerpad)
mixerpad->xpos = DEFAULT_PAD_XPOS;
mixerpad->ypos = DEFAULT_PAD_YPOS;
mixerpad->alpha = DEFAULT_PAD_ALPHA;
+ mixerpad->convert = NULL;
+ mixerpad->need_conversion_update = FALSE;
}
/* GstVideoMixer2 */
@@ -802,7 +985,8 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix,
if (!GST_COLLECT_PADS_STATE_IS_SET (mixcol,
GST_COLLECT_PADS_STATE_EOS))
need_more_data = TRUE;
- } else {
+ } else if (!GST_COLLECT_PADS_STATE_IS_SET (mixcol,
+ GST_COLLECT_PADS_STATE_EOS)) {
eos = FALSE;
}
}
@@ -882,6 +1066,8 @@ gst_videomixer2_blend_buffers (GstVideoMixer2 * mix,
GstClockTime timestamp;
gint64 stream_time;
GstSegment *seg;
+ GstVideoFrame converted_frame;
+ GstBuffer *converted_buf = NULL;
GstVideoFrame frame;
seg = &mixcol->collect.segment;
@@ -897,9 +1083,37 @@ gst_videomixer2_blend_buffers (GstVideoMixer2 * mix,
gst_video_frame_map (&frame, &pad->info, mixcol->buffer, GST_MAP_READ);
- composite (&frame, pad->xpos, pad->ypos, pad->alpha, &outframe);
+ if (pad->convert) {
+ gint converted_size;
+
+ /* We wait until here to set the conversion infos, in case mix->info changed */
+ if (pad->need_conversion_update) {
+ pad->conversion_info = mix->info;
+ gst_video_info_set_format (&(pad->conversion_info),
+ GST_VIDEO_INFO_FORMAT (&mix->info), pad->info.width,
+ pad->info.height);
+ pad->need_conversion_update = FALSE;
+ }
+
+ converted_size = pad->conversion_info.size;
+ converted_size = converted_size > outsize ? converted_size : outsize;
+ converted_buf = gst_buffer_new_allocate (NULL, converted_size, &params);
+
+ gst_video_frame_map (&converted_frame, &(pad->conversion_info),
+ converted_buf, GST_MAP_READWRITE);
+ videomixer_videoconvert_convert_convert (pad->convert, &converted_frame,
+ &frame);
+ gst_video_frame_unmap (&frame);
+ } else {
+ converted_frame = frame;
+ }
+
+ composite (&converted_frame, pad->xpos, pad->ypos, pad->alpha, &outframe);
+
+ if (pad->convert)
+ gst_buffer_unref (converted_buf);
- gst_video_frame_unmap (&frame);
+ gst_video_frame_unmap (&converted_frame);
}
}
gst_video_frame_unmap (&outframe);
@@ -1088,41 +1302,6 @@ done_unlocked:
return ret;
}
-static gboolean
-gst_videomixer2_query_caps (GstPad * pad, GstObject * parent, GstQuery * query)
-{
- GstCaps *filter;
- GstStructure *s;
- gint n;
- GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (parent);
- GstCaps *caps = NULL;
-
- gst_query_parse_caps (query, &filter);
-
- if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN)
- caps = gst_caps_ref (mix->current_caps);
-
- if (caps == NULL)
- caps = gst_pad_get_pad_template_caps (mix->srcpad);
-
- caps = gst_caps_make_writable (caps);
-
- n = gst_caps_get_size (caps) - 1;
- for (; n >= 0; n--) {
- s = gst_caps_get_structure (caps, n);
- gst_structure_set (s, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
- "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
- if (GST_VIDEO_INFO_FPS_D (&mix->info) != 0) {
- gst_structure_set (s,
- "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
- }
- }
- gst_query_set_caps_result (query, caps);
- gst_caps_unref (caps);
-
- return TRUE;
-}
-
/* FIXME, the duration query should reflect how long you will produce
* data, that is the amount of stream time until you will emit EOS.
*
@@ -1323,7 +1502,7 @@ gst_videomixer2_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
res = gst_videomixer2_query_latency (mix, query);
break;
case GST_QUERY_CAPS:
- res = gst_videomixer2_query_caps (pad, parent, query);
+ res = gst_pad_query_default (pad, parent, query);
break;
default:
/* FIXME, needs a custom query handler because we have multiple
@@ -1932,11 +2111,18 @@ gst_videomixer2_release_pad (GstElement * element, GstPad * pad)
mixpad = GST_VIDEO_MIXER2_PAD (pad);
+ if (mixpad->convert)
+ videomixer_videoconvert_convert_free (mixpad->convert);
+
mix->sinkpads = g_slist_remove (mix->sinkpads, pad);
gst_child_proxy_child_removed (GST_CHILD_PROXY (mix), G_OBJECT (mixpad),
GST_OBJECT_NAME (mixpad));
mix->numpads--;
+ GST_COLLECT_PADS_STREAM_LOCK (mix->collect);
+ gst_videomixer2_update_converters (mix);
+ GST_COLLECT_PADS_STREAM_UNLOCK (mix->collect);
+
update_caps = GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN;
GST_VIDEO_MIXER2_UNLOCK (mix);
@@ -1968,6 +2154,14 @@ static void
gst_videomixer2_dispose (GObject * o)
{
GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (o);
+ GSList *tmp;
+
+ for (tmp = mix->sinkpads; tmp; tmp = tmp->next) {
+ GstVideoMixer2Pad *mixpad = tmp->data;
+
+ if (mixpad->convert)
+ videomixer_videoconvert_convert_free (mixpad->convert);
+ }
gst_caps_replace (&mix->current_caps, NULL);
}
diff --git a/gst/videomixer/videomixer2pad.h b/gst/videomixer/videomixer2pad.h
index 759bf9ee..bce0aee5 100644
--- a/gst/videomixer/videomixer2pad.h
+++ b/gst/videomixer/videomixer2pad.h
@@ -26,6 +26,8 @@
#include <gst/base/gstcollectpads.h>
+#include "videoconvert.h"
+
G_BEGIN_DECLS
#define GST_TYPE_VIDEO_MIXER2_PAD (gst_videomixer2_pad_get_type())
@@ -62,6 +64,14 @@ struct _GstVideoMixer2Pad
gdouble alpha;
GstVideoMixer2Collect *mixcol;
+
+ /* caps used for conversion if needed */
+ GstVideoInfo conversion_info;
+
+ /* Converter, if NULL no conversion is done */
+ VideoConvert *convert;
+
+ gboolean need_conversion_update;
};
struct _GstVideoMixer2PadClass
diff --git a/gst/videomixer/videomixerorc-dist.c b/gst/videomixer/videomixerorc-dist.c
new file mode 100644
index 00000000..9106640f
--- /dev/null
+++ b/gst/videomixer/videomixerorc-dist.c
@@ -0,0 +1,18969 @@
+
+/* autogenerated from videomixerorc.orc */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <glib.h>
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+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 <limits.h>
+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 ORC_INTERNAL
+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#define ORC_INTERNAL __hidden
+#elif defined (__GNUC__)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#else
+#define ORC_INTERNAL
+#endif
+#endif
+
+
+#ifndef DISABLE_ORC
+#include <orc/orc.h>
+#endif
+void video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
+void video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
+ const guint32 * ORC_RESTRICT s1, int n);
+void video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void videomixer_video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_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 videomixer_video_convert_orc_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);
+void videomixer_video_convert_orc_convert_I420_AYUV (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 videomixer_video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_420_422 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_420_444 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_422_444 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_444_422 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_444_420 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_422_420 (guint8 *
+ ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
+ int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_convert_I420_BGRA_avg (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, int n);
+void videomixer_video_convert_orc_getline_I420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_YUV9 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_Y42B (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_Y444 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_NV12 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_getline_NV21 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_getline_A420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void videomixer_video_convert_orc_putline_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y42B (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y444 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_NV12 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_NV21 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, 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 */
+
+
+
+/* video_mixer_orc_splat_u32 */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+
+ /* 0: loadpl */
+ var32.i = p1;
+
+ for (i = 0; i < n; i++) {
+ /* 1: copyl */
+ var33.i = var32.i;
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+
+ /* 0: loadpl */
+ var32.i = ex->params[24];
+
+ for (i = 0; i < n; i++) {
+ /* 1: copyl */
+ var33.i = var32.i;
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 25, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
+ 114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16,
+ 4, 112, 0, 24, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "video_mixer_orc_splat_u32");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_parameter (p, 4, "p1");
+
+ orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_memcpy_u32 */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
+ const guint32 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: copyl */
+ var33.i = var32.i;
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_memcpy_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: copyl */
+ var33.i = var32.i;
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
+ const guint32 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
+ 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 117, 51, 50, 11, 4, 4,
+ 12, 4, 4, 112, 0, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "video_mixer_orc_memcpy_u32");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_blend_u8 */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var34;
+ orc_int8 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 5: loadpw */
+ var36.i = p1;
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr0[i];
+ /* 1: convubw */
+ var38.i = (orc_uint8) var34;
+ /* 2: loadb */
+ var35 = ptr4[i];
+ /* 3: convubw */
+ var39.i = (orc_uint8) var35;
+ /* 4: subw */
+ var40.i = var39.i - var38.i;
+ /* 6: mullw */
+ var41.i = (var40.i * var36.i) & 0xffff;
+ /* 7: shlw */
+ var42.i = var38.i << 8;
+ /* 8: addw */
+ var43.i = var42.i + var41.i;
+ /* 9: shruw */
+ var44.i = ((orc_uint16) var43.i) >> 8;
+ /* 10: convsuswb */
+ var37 = ORC_CLAMP_UB (var44.i);
+ /* 11: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_blend_u8 (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 var34;
+ orc_int8 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ 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);
+
+ /* 5: loadpw */
+ var36.i = ex->params[24];
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr0[i];
+ /* 1: convubw */
+ var38.i = (orc_uint8) var34;
+ /* 2: loadb */
+ var35 = ptr4[i];
+ /* 3: convubw */
+ var39.i = (orc_uint8) var35;
+ /* 4: subw */
+ var40.i = var39.i - var38.i;
+ /* 6: mullw */
+ var41.i = (var40.i * var36.i) & 0xffff;
+ /* 7: shlw */
+ var42.i = var38.i << 8;
+ /* 8: addw */
+ var43.i = var42.i + var41.i;
+ /* 9: shruw */
+ var44.i = ((orc_uint16) var43.i) >> 8;
+ /* 10: convsuswb */
+ var37 = ORC_CLAMP_UB (var44.i);
+ /* 11: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+void
+video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 24, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+ 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 56, 11, 1, 1, 12,
+ 1, 1, 14, 1, 8, 0, 0, 0, 16, 2, 20, 2, 20, 2, 150, 32,
+ 0, 150, 33, 4, 98, 33, 33, 32, 89, 33, 33, 24, 93, 32, 32, 16,
+ 70, 33, 32, 33, 95, 33, 33, 16, 160, 0, 33, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "video_mixer_orc_blend_u8");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shlw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_blend_argb */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union64 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var40;
+#else
+ orc_union32 var40;
+#endif
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_int8 var43;
+ orc_union32 var44;
+ orc_union64 var45;
+ orc_union64 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union32 var56;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 5: loadpw */
+ var39.x4[0] = p1;
+ var39.x4[1] = p1;
+ var39.x4[2] = p1;
+ var39.x4[3] = p1;
+ /* 16: loadpl */
+ var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var41 = ptr4[i];
+ /* 1: convlw */
+ var42.i = var41.i;
+ /* 2: convwb */
+ var43 = var42.i;
+ /* 3: splatbl */
+ var44.i =
+ ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
+ 8) | (var43 & 0xff);
+ /* 4: convubw */
+ var45.x4[0] = (orc_uint8) var44.x4[0];
+ var45.x4[1] = (orc_uint8) var44.x4[1];
+ var45.x4[2] = (orc_uint8) var44.x4[2];
+ var45.x4[3] = (orc_uint8) var44.x4[3];
+ /* 6: mullw */
+ var46.x4[0] = (var45.x4[0] * var39.x4[0]) & 0xffff;
+ var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
+ var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
+ var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
+ /* 7: shruw */
+ var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+ var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+ var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+ var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 8: convubw */
+ var48.x4[0] = (orc_uint8) var41.x4[0];
+ var48.x4[1] = (orc_uint8) var41.x4[1];
+ var48.x4[2] = (orc_uint8) var41.x4[2];
+ var48.x4[3] = (orc_uint8) var41.x4[3];
+ /* 9: loadl */
+ var49 = ptr0[i];
+ /* 10: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 11: subw */
+ var51.x4[0] = var48.x4[0] - var50.x4[0];
+ var51.x4[1] = var48.x4[1] - var50.x4[1];
+ var51.x4[2] = var48.x4[2] - var50.x4[2];
+ var51.x4[3] = var48.x4[3] - var50.x4[3];
+ /* 12: mullw */
+ var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+ /* 13: div255w */
+ var53.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+ (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+ var53.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+ (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+ var53.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+ (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+ var53.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+ (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+ /* 14: addw */
+ var54.x4[0] = var50.x4[0] + var53.x4[0];
+ var54.x4[1] = var50.x4[1] + var53.x4[1];
+ var54.x4[2] = var50.x4[2] + var53.x4[2];
+ var54.x4[3] = var50.x4[3] + var53.x4[3];
+ /* 15: convwb */
+ var55.x4[0] = var54.x4[0];
+ var55.x4[1] = var54.x4[1];
+ var55.x4[2] = var54.x4[2];
+ var55.x4[3] = var54.x4[3];
+ /* 17: orl */
+ var56.i = var55.i | var40.i;
+ /* 18: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_blend_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_union64 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var40;
+#else
+ orc_union32 var40;
+#endif
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_int8 var43;
+ orc_union32 var44;
+ orc_union64 var45;
+ orc_union64 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union32 var56;
+
+ 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);
+
+ /* 5: loadpw */
+ var39.x4[0] = ex->params[24];
+ var39.x4[1] = ex->params[24];
+ var39.x4[2] = ex->params[24];
+ var39.x4[3] = ex->params[24];
+ /* 16: loadpl */
+ var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var41 = ptr4[i];
+ /* 1: convlw */
+ var42.i = var41.i;
+ /* 2: convwb */
+ var43 = var42.i;
+ /* 3: splatbl */
+ var44.i =
+ ((var43 & 0xff) << 24) | ((var43 & 0xff) << 16) | ((var43 & 0xff) <<
+ 8) | (var43 & 0xff);
+ /* 4: convubw */
+ var45.x4[0] = (orc_uint8) var44.x4[0];
+ var45.x4[1] = (orc_uint8) var44.x4[1];
+ var45.x4[2] = (orc_uint8) var44.x4[2];
+ var45.x4[3] = (orc_uint8) var44.x4[3];
+ /* 6: mullw */
+ var46.x4[0] = (var45.x4[0] * var39.x4[0]) & 0xffff;
+ var46.x4[1] = (var45.x4[1] * var39.x4[1]) & 0xffff;
+ var46.x4[2] = (var45.x4[2] * var39.x4[2]) & 0xffff;
+ var46.x4[3] = (var45.x4[3] * var39.x4[3]) & 0xffff;
+ /* 7: shruw */
+ var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+ var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+ var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+ var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 8: convubw */
+ var48.x4[0] = (orc_uint8) var41.x4[0];
+ var48.x4[1] = (orc_uint8) var41.x4[1];
+ var48.x4[2] = (orc_uint8) var41.x4[2];
+ var48.x4[3] = (orc_uint8) var41.x4[3];
+ /* 9: loadl */
+ var49 = ptr0[i];
+ /* 10: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 11: subw */
+ var51.x4[0] = var48.x4[0] - var50.x4[0];
+ var51.x4[1] = var48.x4[1] - var50.x4[1];
+ var51.x4[2] = var48.x4[2] - var50.x4[2];
+ var51.x4[3] = var48.x4[3] - var50.x4[3];
+ /* 12: mullw */
+ var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+ /* 13: div255w */
+ var53.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+ (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+ var53.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+ (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+ var53.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+ (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+ var53.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+ (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+ /* 14: addw */
+ var54.x4[0] = var50.x4[0] + var53.x4[0];
+ var54.x4[1] = var50.x4[1] + var53.x4[1];
+ var54.x4[2] = var50.x4[2] + var53.x4[2];
+ var54.x4[3] = var50.x4[3] + var53.x4[3];
+ /* 15: convwb */
+ var55.x4[0] = var54.x4[0];
+ var55.x4[1] = var54.x4[1];
+ var55.x4[2] = var54.x4[2];
+ var55.x4[3] = var54.x4[3];
+ /* 17: orl */
+ var56.i = var55.i | var40.i;
+ /* 18: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+void
+video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+ 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4,
+ 4, 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0,
+ 16, 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8,
+ 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38,
+ 35, 21, 2, 89, 38, 38, 24, 21, 2, 95, 38, 38, 17, 21, 2, 150,
+ 37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98, 37, 37, 36,
+ 21, 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2, 70, 36, 36,
+ 37, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "video_mixer_orc_blend_argb");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0x000000ff, "c1");
+ orc_program_add_constant (p, 4, 0x00000008, "c2");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 8, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 8, "t7");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_blend_bgra */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var41;
+#else
+ orc_union32 var41;
+#endif
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_int8 var45;
+ orc_union32 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union32 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union64 var55;
+ orc_union64 var56;
+ orc_union32 var57;
+ orc_union32 var58;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 6: loadpw */
+ var40.x4[0] = p1;
+ var40.x4[1] = p1;
+ var40.x4[2] = p1;
+ var40.x4[3] = p1;
+ /* 17: loadpl */
+ var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var42 = ptr4[i];
+ /* 1: shrul */
+ var43.i = ((orc_uint32) var42.i) >> 24;
+ /* 2: convlw */
+ var44.i = var43.i;
+ /* 3: convwb */
+ var45 = var44.i;
+ /* 4: splatbl */
+ var46.i =
+ ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
+ 8) | (var45 & 0xff);
+ /* 5: convubw */
+ var47.x4[0] = (orc_uint8) var46.x4[0];
+ var47.x4[1] = (orc_uint8) var46.x4[1];
+ var47.x4[2] = (orc_uint8) var46.x4[2];
+ var47.x4[3] = (orc_uint8) var46.x4[3];
+ /* 7: mullw */
+ var48.x4[0] = (var47.x4[0] * var40.x4[0]) & 0xffff;
+ var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
+ var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
+ var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
+ /* 8: shruw */
+ var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
+ var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
+ var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
+ var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
+ /* 9: convubw */
+ var50.x4[0] = (orc_uint8) var42.x4[0];
+ var50.x4[1] = (orc_uint8) var42.x4[1];
+ var50.x4[2] = (orc_uint8) var42.x4[2];
+ var50.x4[3] = (orc_uint8) var42.x4[3];
+ /* 10: loadl */
+ var51 = ptr0[i];
+ /* 11: convubw */
+ var52.x4[0] = (orc_uint8) var51.x4[0];
+ var52.x4[1] = (orc_uint8) var51.x4[1];
+ var52.x4[2] = (orc_uint8) var51.x4[2];
+ var52.x4[3] = (orc_uint8) var51.x4[3];
+ /* 12: subw */
+ var53.x4[0] = var50.x4[0] - var52.x4[0];
+ var53.x4[1] = var50.x4[1] - var52.x4[1];
+ var53.x4[2] = var50.x4[2] - var52.x4[2];
+ var53.x4[3] = var50.x4[3] - var52.x4[3];
+ /* 13: mullw */
+ var54.x4[0] = (var53.x4[0] * var49.x4[0]) & 0xffff;
+ var54.x4[1] = (var53.x4[1] * var49.x4[1]) & 0xffff;
+ var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
+ var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
+ /* 14: div255w */
+ var55.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) +
+ (((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8;
+ var55.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
+ (((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
+ var55.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
+ (((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
+ var55.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
+ (((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
+ /* 15: addw */
+ var56.x4[0] = var52.x4[0] + var55.x4[0];
+ var56.x4[1] = var52.x4[1] + var55.x4[1];
+ var56.x4[2] = var52.x4[2] + var55.x4[2];
+ var56.x4[3] = var52.x4[3] + var55.x4[3];
+ /* 16: convwb */
+ var57.x4[0] = var56.x4[0];
+ var57.x4[1] = var56.x4[1];
+ var57.x4[2] = var56.x4[2];
+ var57.x4[3] = var56.x4[3];
+ /* 18: orl */
+ var58.i = var57.i | var41.i;
+ /* 19: storel */
+ ptr0[i] = var58;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_blend_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_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var41;
+#else
+ orc_union32 var41;
+#endif
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_int8 var45;
+ orc_union32 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union32 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union64 var55;
+ orc_union64 var56;
+ orc_union32 var57;
+ orc_union32 var58;
+
+ 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);
+
+ /* 6: loadpw */
+ var40.x4[0] = ex->params[24];
+ var40.x4[1] = ex->params[24];
+ var40.x4[2] = ex->params[24];
+ var40.x4[3] = ex->params[24];
+ /* 17: loadpl */
+ var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var42 = ptr4[i];
+ /* 1: shrul */
+ var43.i = ((orc_uint32) var42.i) >> 24;
+ /* 2: convlw */
+ var44.i = var43.i;
+ /* 3: convwb */
+ var45 = var44.i;
+ /* 4: splatbl */
+ var46.i =
+ ((var45 & 0xff) << 24) | ((var45 & 0xff) << 16) | ((var45 & 0xff) <<
+ 8) | (var45 & 0xff);
+ /* 5: convubw */
+ var47.x4[0] = (orc_uint8) var46.x4[0];
+ var47.x4[1] = (orc_uint8) var46.x4[1];
+ var47.x4[2] = (orc_uint8) var46.x4[2];
+ var47.x4[3] = (orc_uint8) var46.x4[3];
+ /* 7: mullw */
+ var48.x4[0] = (var47.x4[0] * var40.x4[0]) & 0xffff;
+ var48.x4[1] = (var47.x4[1] * var40.x4[1]) & 0xffff;
+ var48.x4[2] = (var47.x4[2] * var40.x4[2]) & 0xffff;
+ var48.x4[3] = (var47.x4[3] * var40.x4[3]) & 0xffff;
+ /* 8: shruw */
+ var49.x4[0] = ((orc_uint16) var48.x4[0]) >> 8;
+ var49.x4[1] = ((orc_uint16) var48.x4[1]) >> 8;
+ var49.x4[2] = ((orc_uint16) var48.x4[2]) >> 8;
+ var49.x4[3] = ((orc_uint16) var48.x4[3]) >> 8;
+ /* 9: convubw */
+ var50.x4[0] = (orc_uint8) var42.x4[0];
+ var50.x4[1] = (orc_uint8) var42.x4[1];
+ var50.x4[2] = (orc_uint8) var42.x4[2];
+ var50.x4[3] = (orc_uint8) var42.x4[3];
+ /* 10: loadl */
+ var51 = ptr0[i];
+ /* 11: convubw */
+ var52.x4[0] = (orc_uint8) var51.x4[0];
+ var52.x4[1] = (orc_uint8) var51.x4[1];
+ var52.x4[2] = (orc_uint8) var51.x4[2];
+ var52.x4[3] = (orc_uint8) var51.x4[3];
+ /* 12: subw */
+ var53.x4[0] = var50.x4[0] - var52.x4[0];
+ var53.x4[1] = var50.x4[1] - var52.x4[1];
+ var53.x4[2] = var50.x4[2] - var52.x4[2];
+ var53.x4[3] = var50.x4[3] - var52.x4[3];
+ /* 13: mullw */
+ var54.x4[0] = (var53.x4[0] * var49.x4[0]) & 0xffff;
+ var54.x4[1] = (var53.x4[1] * var49.x4[1]) & 0xffff;
+ var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
+ var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
+ /* 14: div255w */
+ var55.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) +
+ (((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8;
+ var55.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
+ (((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
+ var55.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
+ (((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
+ var55.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
+ (((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
+ /* 15: addw */
+ var56.x4[0] = var52.x4[0] + var55.x4[0];
+ var56.x4[1] = var52.x4[1] + var55.x4[1];
+ var56.x4[2] = var52.x4[2] + var55.x4[2];
+ var56.x4[3] = var52.x4[3] + var55.x4[3];
+ /* 16: convwb */
+ var57.x4[0] = var56.x4[0];
+ var57.x4[1] = var56.x4[1];
+ var57.x4[2] = var56.x4[2];
+ var57.x4[3] = var56.x4[3];
+ /* 18: orl */
+ var58.i = var57.i | var41.i;
+ /* 19: storel */
+ ptr0[i] = var58;
+ }
+ }
+
+}
+
+void
+video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+ 111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4,
+ 4, 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0,
+ 14, 4, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1,
+ 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163,
+ 34, 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89,
+ 39, 39, 24, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32,
+ 0, 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38,
+ 38, 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157,
+ 32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "video_mixer_orc_blend_bgra");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0xff000000, "c1");
+ orc_program_add_constant (p, 4, 0x00000018, "c2");
+ orc_program_add_constant (p, 4, 0x00000008, "c3");
+ orc_program_add_parameter (p, 2, "p1");
+ 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, 1, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 8, "t7");
+ orc_program_add_temporary (p, 8, "t8");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_overlay_argb */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union64 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var42;
+#else
+ orc_union32 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var43;
+#else
+ orc_union32 var43;
+#endif
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_union32 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union32 var53;
+ orc_union64 var54;
+ orc_union64 var55;
+ orc_union32 var56;
+ orc_union16 var57;
+ orc_int8 var58;
+ orc_union32 var59;
+ orc_union64 var60;
+ orc_union64 var61;
+ orc_union64 var62;
+ orc_union64 var63;
+ orc_union64 var64;
+ orc_union64 var65;
+ orc_union64 var66;
+ orc_union64 var67;
+ orc_union32 var68;
+ orc_union32 var69;
+ orc_union32 var70;
+ orc_union32 var71;
+ orc_union32 var72;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 5: loadpw */
+ var41.x4[0] = p1;
+ var41.x4[1] = p1;
+ var41.x4[2] = p1;
+ var41.x4[3] = p1;
+ /* 10: loadpl */
+ var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
+ /* 26: loadpl */
+ var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
+ /* 29: loadpl */
+ var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var44 = ptr4[i];
+ /* 1: convlw */
+ var45.i = var44.i;
+ /* 2: convwb */
+ var46 = var45.i;
+ /* 3: splatbl */
+ var47.i =
+ ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
+ 8) | (var46 & 0xff);
+ /* 4: convubw */
+ var48.x4[0] = (orc_uint8) var47.x4[0];
+ var48.x4[1] = (orc_uint8) var47.x4[1];
+ var48.x4[2] = (orc_uint8) var47.x4[2];
+ var48.x4[3] = (orc_uint8) var47.x4[3];
+ /* 6: mullw */
+ var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
+ var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
+ var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
+ var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
+ /* 7: shruw */
+ var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
+ var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
+ var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
+ var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
+ /* 8: convubw */
+ var51.x4[0] = (orc_uint8) var44.x4[0];
+ var51.x4[1] = (orc_uint8) var44.x4[1];
+ var51.x4[2] = (orc_uint8) var44.x4[2];
+ var51.x4[3] = (orc_uint8) var44.x4[3];
+ /* 9: mullw */
+ var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
+ /* 11: convubw */
+ var54.x4[0] = (orc_uint8) var53.x4[0];
+ var54.x4[1] = (orc_uint8) var53.x4[1];
+ var54.x4[2] = (orc_uint8) var53.x4[2];
+ var54.x4[3] = (orc_uint8) var53.x4[3];
+ /* 12: subw */
+ var55.x4[0] = var54.x4[0] - var50.x4[0];
+ var55.x4[1] = var54.x4[1] - var50.x4[1];
+ var55.x4[2] = var54.x4[2] - var50.x4[2];
+ var55.x4[3] = var54.x4[3] - var50.x4[3];
+ /* 13: loadl */
+ var56 = ptr0[i];
+ /* 14: convlw */
+ var57.i = var56.i;
+ /* 15: convwb */
+ var58 = var57.i;
+ /* 16: splatbl */
+ var59.i =
+ ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
+ 8) | (var58 & 0xff);
+ /* 17: convubw */
+ var60.x4[0] = (orc_uint8) var59.x4[0];
+ var60.x4[1] = (orc_uint8) var59.x4[1];
+ var60.x4[2] = (orc_uint8) var59.x4[2];
+ var60.x4[3] = (orc_uint8) var59.x4[3];
+ /* 18: mullw */
+ var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
+ var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
+ var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
+ var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
+ /* 19: div255w */
+ var62.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
+ (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
+ var62.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
+ (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
+ var62.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
+ (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
+ var62.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
+ (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
+ /* 20: convubw */
+ var63.x4[0] = (orc_uint8) var56.x4[0];
+ var63.x4[1] = (orc_uint8) var56.x4[1];
+ var63.x4[2] = (orc_uint8) var56.x4[2];
+ var63.x4[3] = (orc_uint8) var56.x4[3];
+ /* 21: mullw */
+ var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
+ var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
+ var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
+ var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
+ /* 22: addw */
+ var65.x4[0] = var64.x4[0] + var52.x4[0];
+ var65.x4[1] = var64.x4[1] + var52.x4[1];
+ var65.x4[2] = var64.x4[2] + var52.x4[2];
+ var65.x4[3] = var64.x4[3] + var52.x4[3];
+ /* 23: addw */
+ var66.x4[0] = var62.x4[0] + var50.x4[0];
+ var66.x4[1] = var62.x4[1] + var50.x4[1];
+ var66.x4[2] = var62.x4[2] + var50.x4[2];
+ var66.x4[3] = var62.x4[3] + var50.x4[3];
+ /* 24: divluw */
+ var67.x4[0] =
+ ((var66.x4[0] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
+ ((orc_uint16) var66.x4[0] & 0xff));
+ var67.x4[1] =
+ ((var66.x4[1] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
+ ((orc_uint16) var66.x4[1] & 0xff));
+ var67.x4[2] =
+ ((var66.x4[2] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
+ ((orc_uint16) var66.x4[2] & 0xff));
+ var67.x4[3] =
+ ((var66.x4[3] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
+ ((orc_uint16) var66.x4[3] & 0xff));
+ /* 25: convwb */
+ var68.x4[0] = var67.x4[0];
+ var68.x4[1] = var67.x4[1];
+ var68.x4[2] = var67.x4[2];
+ var68.x4[3] = var67.x4[3];
+ /* 27: andl */
+ var69.i = var68.i & var42.i;
+ /* 28: convwb */
+ var70.x4[0] = var66.x4[0];
+ var70.x4[1] = var66.x4[1];
+ var70.x4[2] = var66.x4[2];
+ var70.x4[3] = var66.x4[3];
+ /* 30: andl */
+ var71.i = var70.i & var43.i;
+ /* 31: orl */
+ var72.i = var69.i | var71.i;
+ /* 32: storel */
+ ptr0[i] = var72;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_overlay_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_union64 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var42;
+#else
+ orc_union32 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var43;
+#else
+ orc_union32 var43;
+#endif
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_union32 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union32 var53;
+ orc_union64 var54;
+ orc_union64 var55;
+ orc_union32 var56;
+ orc_union16 var57;
+ orc_int8 var58;
+ orc_union32 var59;
+ orc_union64 var60;
+ orc_union64 var61;
+ orc_union64 var62;
+ orc_union64 var63;
+ orc_union64 var64;
+ orc_union64 var65;
+ orc_union64 var66;
+ orc_union64 var67;
+ orc_union32 var68;
+ orc_union32 var69;
+ orc_union32 var70;
+ orc_union32 var71;
+ orc_union32 var72;
+
+ 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);
+
+ /* 5: loadpw */
+ var41.x4[0] = ex->params[24];
+ var41.x4[1] = ex->params[24];
+ var41.x4[2] = ex->params[24];
+ var41.x4[3] = ex->params[24];
+ /* 10: loadpl */
+ var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
+ /* 26: loadpl */
+ var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
+ /* 29: loadpl */
+ var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var44 = ptr4[i];
+ /* 1: convlw */
+ var45.i = var44.i;
+ /* 2: convwb */
+ var46 = var45.i;
+ /* 3: splatbl */
+ var47.i =
+ ((var46 & 0xff) << 24) | ((var46 & 0xff) << 16) | ((var46 & 0xff) <<
+ 8) | (var46 & 0xff);
+ /* 4: convubw */
+ var48.x4[0] = (orc_uint8) var47.x4[0];
+ var48.x4[1] = (orc_uint8) var47.x4[1];
+ var48.x4[2] = (orc_uint8) var47.x4[2];
+ var48.x4[3] = (orc_uint8) var47.x4[3];
+ /* 6: mullw */
+ var49.x4[0] = (var48.x4[0] * var41.x4[0]) & 0xffff;
+ var49.x4[1] = (var48.x4[1] * var41.x4[1]) & 0xffff;
+ var49.x4[2] = (var48.x4[2] * var41.x4[2]) & 0xffff;
+ var49.x4[3] = (var48.x4[3] * var41.x4[3]) & 0xffff;
+ /* 7: shruw */
+ var50.x4[0] = ((orc_uint16) var49.x4[0]) >> 8;
+ var50.x4[1] = ((orc_uint16) var49.x4[1]) >> 8;
+ var50.x4[2] = ((orc_uint16) var49.x4[2]) >> 8;
+ var50.x4[3] = ((orc_uint16) var49.x4[3]) >> 8;
+ /* 8: convubw */
+ var51.x4[0] = (orc_uint8) var44.x4[0];
+ var51.x4[1] = (orc_uint8) var44.x4[1];
+ var51.x4[2] = (orc_uint8) var44.x4[2];
+ var51.x4[3] = (orc_uint8) var44.x4[3];
+ /* 9: mullw */
+ var52.x4[0] = (var51.x4[0] * var50.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var50.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var50.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var50.x4[3]) & 0xffff;
+ /* 11: convubw */
+ var54.x4[0] = (orc_uint8) var53.x4[0];
+ var54.x4[1] = (orc_uint8) var53.x4[1];
+ var54.x4[2] = (orc_uint8) var53.x4[2];
+ var54.x4[3] = (orc_uint8) var53.x4[3];
+ /* 12: subw */
+ var55.x4[0] = var54.x4[0] - var50.x4[0];
+ var55.x4[1] = var54.x4[1] - var50.x4[1];
+ var55.x4[2] = var54.x4[2] - var50.x4[2];
+ var55.x4[3] = var54.x4[3] - var50.x4[3];
+ /* 13: loadl */
+ var56 = ptr0[i];
+ /* 14: convlw */
+ var57.i = var56.i;
+ /* 15: convwb */
+ var58 = var57.i;
+ /* 16: splatbl */
+ var59.i =
+ ((var58 & 0xff) << 24) | ((var58 & 0xff) << 16) | ((var58 & 0xff) <<
+ 8) | (var58 & 0xff);
+ /* 17: convubw */
+ var60.x4[0] = (orc_uint8) var59.x4[0];
+ var60.x4[1] = (orc_uint8) var59.x4[1];
+ var60.x4[2] = (orc_uint8) var59.x4[2];
+ var60.x4[3] = (orc_uint8) var59.x4[3];
+ /* 18: mullw */
+ var61.x4[0] = (var60.x4[0] * var55.x4[0]) & 0xffff;
+ var61.x4[1] = (var60.x4[1] * var55.x4[1]) & 0xffff;
+ var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
+ var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
+ /* 19: div255w */
+ var62.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) +
+ (((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8;
+ var62.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
+ (((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
+ var62.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
+ (((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
+ var62.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
+ (((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
+ /* 20: convubw */
+ var63.x4[0] = (orc_uint8) var56.x4[0];
+ var63.x4[1] = (orc_uint8) var56.x4[1];
+ var63.x4[2] = (orc_uint8) var56.x4[2];
+ var63.x4[3] = (orc_uint8) var56.x4[3];
+ /* 21: mullw */
+ var64.x4[0] = (var63.x4[0] * var62.x4[0]) & 0xffff;
+ var64.x4[1] = (var63.x4[1] * var62.x4[1]) & 0xffff;
+ var64.x4[2] = (var63.x4[2] * var62.x4[2]) & 0xffff;
+ var64.x4[3] = (var63.x4[3] * var62.x4[3]) & 0xffff;
+ /* 22: addw */
+ var65.x4[0] = var64.x4[0] + var52.x4[0];
+ var65.x4[1] = var64.x4[1] + var52.x4[1];
+ var65.x4[2] = var64.x4[2] + var52.x4[2];
+ var65.x4[3] = var64.x4[3] + var52.x4[3];
+ /* 23: addw */
+ var66.x4[0] = var62.x4[0] + var50.x4[0];
+ var66.x4[1] = var62.x4[1] + var50.x4[1];
+ var66.x4[2] = var62.x4[2] + var50.x4[2];
+ var66.x4[3] = var62.x4[3] + var50.x4[3];
+ /* 24: divluw */
+ var67.x4[0] =
+ ((var66.x4[0] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[0]) /
+ ((orc_uint16) var66.x4[0] & 0xff));
+ var67.x4[1] =
+ ((var66.x4[1] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[1]) /
+ ((orc_uint16) var66.x4[1] & 0xff));
+ var67.x4[2] =
+ ((var66.x4[2] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[2]) /
+ ((orc_uint16) var66.x4[2] & 0xff));
+ var67.x4[3] =
+ ((var66.x4[3] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var65.x4[3]) /
+ ((orc_uint16) var66.x4[3] & 0xff));
+ /* 25: convwb */
+ var68.x4[0] = var67.x4[0];
+ var68.x4[1] = var67.x4[1];
+ var68.x4[2] = var67.x4[2];
+ var68.x4[3] = var67.x4[3];
+ /* 27: andl */
+ var69.i = var68.i & var42.i;
+ /* 28: convwb */
+ var70.x4[0] = var66.x4[0];
+ var70.x4[1] = var66.x4[1];
+ var70.x4[2] = var66.x4[2];
+ var70.x4[3] = var66.x4[3];
+ /* 30: andl */
+ var71.i = var70.i & var43.i;
+ /* 31: orl */
+ var72.i = var69.i | var71.i;
+ /* 32: storel */
+ ptr0[i] = var72;
+ }
+ }
+
+}
+
+void
+video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+ 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103,
+ 98,
+ 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0,
+ 0, 0, 14, 4, 0, 255, 255, 255, 14, 4, 8, 0, 0, 0, 16, 2,
+ 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8,
+ 20, 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2,
+ 150, 35, 38, 21, 2, 89, 35, 35, 24, 21, 2, 95, 35, 35, 19, 21,
+ 2, 150, 40, 32, 21, 2, 89, 40, 40, 35, 115, 38, 16, 21, 2, 150,
+ 36, 38, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33, 32, 157, 34,
+ 33, 152, 38, 34, 21, 2, 150, 37, 38, 21, 2, 89, 37, 37, 36, 21,
+ 2, 80, 37, 37, 21, 2, 150, 39, 32, 21, 2, 89, 39, 39, 37, 21,
+ 2, 70, 39, 39, 40, 21, 2, 70, 37, 37, 35, 21, 2, 81, 39, 39,
+ 37, 21, 2, 157, 32, 39, 106, 32, 32, 18, 21, 2, 157, 38, 37, 106,
+ 38, 38, 17, 123, 32, 32, 38, 128, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "video_mixer_orc_overlay_argb");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0xffffffff, "c1");
+ orc_program_add_constant (p, 4, 0x000000ff, "c2");
+ orc_program_add_constant (p, 4, 0xffffff00, "c3");
+ orc_program_add_constant (p, 4, 0x00000008, "c4");
+ orc_program_add_parameter (p, 2, "p1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 8, "t4");
+ orc_program_add_temporary (p, 8, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 4, "t7");
+ orc_program_add_temporary (p, 8, "t8");
+ orc_program_add_temporary (p, 8, "t9");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T7, ORC_VAR_C1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T9,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "divluw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "andl", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* video_mixer_orc_overlay_bgra */
+#ifdef DISABLE_ORC
+void
+video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union64 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var43;
+#else
+ orc_union32 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var44;
+#else
+ orc_union32 var44;
+#endif
+ orc_union32 var45;
+ orc_union32 var46;
+ orc_union16 var47;
+ orc_int8 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union64 var56;
+ orc_union64 var57;
+ orc_union32 var58;
+ orc_union32 var59;
+ orc_union16 var60;
+ orc_int8 var61;
+ orc_union32 var62;
+ orc_union64 var63;
+ orc_union64 var64;
+ orc_union64 var65;
+ orc_union64 var66;
+ orc_union64 var67;
+ orc_union64 var68;
+ orc_union64 var69;
+ orc_union64 var70;
+ orc_union32 var71;
+ orc_union32 var72;
+ orc_union32 var73;
+ orc_union32 var74;
+ orc_union32 var75;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 6: loadpw */
+ var42.x4[0] = p1;
+ var42.x4[1] = p1;
+ var42.x4[2] = p1;
+ var42.x4[3] = p1;
+ /* 11: loadpl */
+ var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
+ /* 28: loadpl */
+ var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
+ /* 31: loadpl */
+ var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var45 = ptr4[i];
+ /* 1: shrul */
+ var46.i = ((orc_uint32) var45.i) >> 24;
+ /* 2: convlw */
+ var47.i = var46.i;
+ /* 3: convwb */
+ var48 = var47.i;
+ /* 4: splatbl */
+ var49.i =
+ ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
+ 8) | (var48 & 0xff);
+ /* 5: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 7: mullw */
+ var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
+ var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
+ var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
+ var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
+ /* 8: shruw */
+ var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
+ var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
+ var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
+ var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
+ /* 9: convubw */
+ var53.x4[0] = (orc_uint8) var45.x4[0];
+ var53.x4[1] = (orc_uint8) var45.x4[1];
+ var53.x4[2] = (orc_uint8) var45.x4[2];
+ var53.x4[3] = (orc_uint8) var45.x4[3];
+ /* 10: mullw */
+ var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
+ var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
+ var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
+ var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
+ /* 12: convubw */
+ var56.x4[0] = (orc_uint8) var55.x4[0];
+ var56.x4[1] = (orc_uint8) var55.x4[1];
+ var56.x4[2] = (orc_uint8) var55.x4[2];
+ var56.x4[3] = (orc_uint8) var55.x4[3];
+ /* 13: subw */
+ var57.x4[0] = var56.x4[0] - var52.x4[0];
+ var57.x4[1] = var56.x4[1] - var52.x4[1];
+ var57.x4[2] = var56.x4[2] - var52.x4[2];
+ var57.x4[3] = var56.x4[3] - var52.x4[3];
+ /* 14: loadl */
+ var58 = ptr0[i];
+ /* 15: shrul */
+ var59.i = ((orc_uint32) var58.i) >> 24;
+ /* 16: convlw */
+ var60.i = var59.i;
+ /* 17: convwb */
+ var61 = var60.i;
+ /* 18: splatbl */
+ var62.i =
+ ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
+ 8) | (var61 & 0xff);
+ /* 19: convubw */
+ var63.x4[0] = (orc_uint8) var62.x4[0];
+ var63.x4[1] = (orc_uint8) var62.x4[1];
+ var63.x4[2] = (orc_uint8) var62.x4[2];
+ var63.x4[3] = (orc_uint8) var62.x4[3];
+ /* 20: mullw */
+ var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
+ var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
+ var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
+ var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
+ /* 21: div255w */
+ var65.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
+ (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
+ var65.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
+ (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
+ var65.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
+ (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
+ var65.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
+ (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
+ /* 22: convubw */
+ var66.x4[0] = (orc_uint8) var58.x4[0];
+ var66.x4[1] = (orc_uint8) var58.x4[1];
+ var66.x4[2] = (orc_uint8) var58.x4[2];
+ var66.x4[3] = (orc_uint8) var58.x4[3];
+ /* 23: mullw */
+ var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
+ var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
+ var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
+ var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
+ /* 24: addw */
+ var68.x4[0] = var67.x4[0] + var54.x4[0];
+ var68.x4[1] = var67.x4[1] + var54.x4[1];
+ var68.x4[2] = var67.x4[2] + var54.x4[2];
+ var68.x4[3] = var67.x4[3] + var54.x4[3];
+ /* 25: addw */
+ var69.x4[0] = var65.x4[0] + var52.x4[0];
+ var69.x4[1] = var65.x4[1] + var52.x4[1];
+ var69.x4[2] = var65.x4[2] + var52.x4[2];
+ var69.x4[3] = var65.x4[3] + var52.x4[3];
+ /* 26: divluw */
+ var70.x4[0] =
+ ((var69.x4[0] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
+ ((orc_uint16) var69.x4[0] & 0xff));
+ var70.x4[1] =
+ ((var69.x4[1] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
+ ((orc_uint16) var69.x4[1] & 0xff));
+ var70.x4[2] =
+ ((var69.x4[2] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
+ ((orc_uint16) var69.x4[2] & 0xff));
+ var70.x4[3] =
+ ((var69.x4[3] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
+ ((orc_uint16) var69.x4[3] & 0xff));
+ /* 27: convwb */
+ var71.x4[0] = var70.x4[0];
+ var71.x4[1] = var70.x4[1];
+ var71.x4[2] = var70.x4[2];
+ var71.x4[3] = var70.x4[3];
+ /* 29: andl */
+ var72.i = var71.i & var43.i;
+ /* 30: convwb */
+ var73.x4[0] = var69.x4[0];
+ var73.x4[1] = var69.x4[1];
+ var73.x4[2] = var69.x4[2];
+ var73.x4[3] = var69.x4[3];
+ /* 32: andl */
+ var74.i = var73.i & var44.i;
+ /* 33: orl */
+ var75.i = var72.i | var74.i;
+ /* 34: storel */
+ ptr0[i] = var75;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_video_mixer_orc_overlay_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_union64 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var43;
+#else
+ orc_union32 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var44;
+#else
+ orc_union32 var44;
+#endif
+ orc_union32 var45;
+ orc_union32 var46;
+ orc_union16 var47;
+ orc_int8 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union64 var56;
+ orc_union64 var57;
+ orc_union32 var58;
+ orc_union32 var59;
+ orc_union16 var60;
+ orc_int8 var61;
+ orc_union32 var62;
+ orc_union64 var63;
+ orc_union64 var64;
+ orc_union64 var65;
+ orc_union64 var66;
+ orc_union64 var67;
+ orc_union64 var68;
+ orc_union64 var69;
+ orc_union64 var70;
+ orc_union32 var71;
+ orc_union32 var72;
+ orc_union32 var73;
+ orc_union32 var74;
+ orc_union32 var75;
+
+ 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);
+
+ /* 6: loadpw */
+ var42.x4[0] = ex->params[24];
+ var42.x4[1] = ex->params[24];
+ var42.x4[2] = ex->params[24];
+ var42.x4[3] = ex->params[24];
+ /* 11: loadpl */
+ var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
+ /* 28: loadpl */
+ var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
+ /* 31: loadpl */
+ var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var45 = ptr4[i];
+ /* 1: shrul */
+ var46.i = ((orc_uint32) var45.i) >> 24;
+ /* 2: convlw */
+ var47.i = var46.i;
+ /* 3: convwb */
+ var48 = var47.i;
+ /* 4: splatbl */
+ var49.i =
+ ((var48 & 0xff) << 24) | ((var48 & 0xff) << 16) | ((var48 & 0xff) <<
+ 8) | (var48 & 0xff);
+ /* 5: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 7: mullw */
+ var51.x4[0] = (var50.x4[0] * var42.x4[0]) & 0xffff;
+ var51.x4[1] = (var50.x4[1] * var42.x4[1]) & 0xffff;
+ var51.x4[2] = (var50.x4[2] * var42.x4[2]) & 0xffff;
+ var51.x4[3] = (var50.x4[3] * var42.x4[3]) & 0xffff;
+ /* 8: shruw */
+ var52.x4[0] = ((orc_uint16) var51.x4[0]) >> 8;
+ var52.x4[1] = ((orc_uint16) var51.x4[1]) >> 8;
+ var52.x4[2] = ((orc_uint16) var51.x4[2]) >> 8;
+ var52.x4[3] = ((orc_uint16) var51.x4[3]) >> 8;
+ /* 9: convubw */
+ var53.x4[0] = (orc_uint8) var45.x4[0];
+ var53.x4[1] = (orc_uint8) var45.x4[1];
+ var53.x4[2] = (orc_uint8) var45.x4[2];
+ var53.x4[3] = (orc_uint8) var45.x4[3];
+ /* 10: mullw */
+ var54.x4[0] = (var53.x4[0] * var52.x4[0]) & 0xffff;
+ var54.x4[1] = (var53.x4[1] * var52.x4[1]) & 0xffff;
+ var54.x4[2] = (var53.x4[2] * var52.x4[2]) & 0xffff;
+ var54.x4[3] = (var53.x4[3] * var52.x4[3]) & 0xffff;
+ /* 12: convubw */
+ var56.x4[0] = (orc_uint8) var55.x4[0];
+ var56.x4[1] = (orc_uint8) var55.x4[1];
+ var56.x4[2] = (orc_uint8) var55.x4[2];
+ var56.x4[3] = (orc_uint8) var55.x4[3];
+ /* 13: subw */
+ var57.x4[0] = var56.x4[0] - var52.x4[0];
+ var57.x4[1] = var56.x4[1] - var52.x4[1];
+ var57.x4[2] = var56.x4[2] - var52.x4[2];
+ var57.x4[3] = var56.x4[3] - var52.x4[3];
+ /* 14: loadl */
+ var58 = ptr0[i];
+ /* 15: shrul */
+ var59.i = ((orc_uint32) var58.i) >> 24;
+ /* 16: convlw */
+ var60.i = var59.i;
+ /* 17: convwb */
+ var61 = var60.i;
+ /* 18: splatbl */
+ var62.i =
+ ((var61 & 0xff) << 24) | ((var61 & 0xff) << 16) | ((var61 & 0xff) <<
+ 8) | (var61 & 0xff);
+ /* 19: convubw */
+ var63.x4[0] = (orc_uint8) var62.x4[0];
+ var63.x4[1] = (orc_uint8) var62.x4[1];
+ var63.x4[2] = (orc_uint8) var62.x4[2];
+ var63.x4[3] = (orc_uint8) var62.x4[3];
+ /* 20: mullw */
+ var64.x4[0] = (var63.x4[0] * var57.x4[0]) & 0xffff;
+ var64.x4[1] = (var63.x4[1] * var57.x4[1]) & 0xffff;
+ var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
+ var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
+ /* 21: div255w */
+ var65.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) +
+ (((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8;
+ var65.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
+ (((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
+ var65.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
+ (((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
+ var65.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
+ (((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
+ /* 22: convubw */
+ var66.x4[0] = (orc_uint8) var58.x4[0];
+ var66.x4[1] = (orc_uint8) var58.x4[1];
+ var66.x4[2] = (orc_uint8) var58.x4[2];
+ var66.x4[3] = (orc_uint8) var58.x4[3];
+ /* 23: mullw */
+ var67.x4[0] = (var66.x4[0] * var65.x4[0]) & 0xffff;
+ var67.x4[1] = (var66.x4[1] * var65.x4[1]) & 0xffff;
+ var67.x4[2] = (var66.x4[2] * var65.x4[2]) & 0xffff;
+ var67.x4[3] = (var66.x4[3] * var65.x4[3]) & 0xffff;
+ /* 24: addw */
+ var68.x4[0] = var67.x4[0] + var54.x4[0];
+ var68.x4[1] = var67.x4[1] + var54.x4[1];
+ var68.x4[2] = var67.x4[2] + var54.x4[2];
+ var68.x4[3] = var67.x4[3] + var54.x4[3];
+ /* 25: addw */
+ var69.x4[0] = var65.x4[0] + var52.x4[0];
+ var69.x4[1] = var65.x4[1] + var52.x4[1];
+ var69.x4[2] = var65.x4[2] + var52.x4[2];
+ var69.x4[3] = var65.x4[3] + var52.x4[3];
+ /* 26: divluw */
+ var70.x4[0] =
+ ((var69.x4[0] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[0]) /
+ ((orc_uint16) var69.x4[0] & 0xff));
+ var70.x4[1] =
+ ((var69.x4[1] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[1]) /
+ ((orc_uint16) var69.x4[1] & 0xff));
+ var70.x4[2] =
+ ((var69.x4[2] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[2]) /
+ ((orc_uint16) var69.x4[2] & 0xff));
+ var70.x4[3] =
+ ((var69.x4[3] & 0xff) ==
+ 0) ? 255 : ORC_CLAMP_UB (((orc_uint16) var68.x4[3]) /
+ ((orc_uint16) var69.x4[3] & 0xff));
+ /* 27: convwb */
+ var71.x4[0] = var70.x4[0];
+ var71.x4[1] = var70.x4[1];
+ var71.x4[2] = var70.x4[2];
+ var71.x4[3] = var70.x4[3];
+ /* 29: andl */
+ var72.i = var71.i & var43.i;
+ /* 30: convwb */
+ var73.x4[0] = var69.x4[0];
+ var73.x4[1] = var69.x4[1];
+ var73.x4[2] = var69.x4[2];
+ var73.x4[3] = var69.x4[3];
+ /* 32: andl */
+ var74.i = var73.i & var44.i;
+ /* 33: orl */
+ var75.i = var72.i | var74.i;
+ /* 34: storel */
+ ptr0[i] = var75;
+ }
+ }
+
+}
+
+void
+video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+ 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114,
+ 97,
+ 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0,
+ 0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 4,
+ 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8,
+ 20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32,
+ 19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 36, 39, 21,
+ 2, 89, 36, 36, 24, 21, 2, 95, 36, 36, 20, 21, 2, 150, 41, 32,
+ 21, 2, 89, 41, 41, 36, 115, 39, 16, 21, 2, 150, 37, 39, 21, 2,
+ 98, 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35,
+ 34, 152, 39, 35, 21, 2, 150, 38, 39, 21, 2, 89, 38, 38, 37, 21,
+ 2, 80, 38, 38, 21, 2, 150, 40, 32, 21, 2, 89, 40, 40, 38, 21,
+ 2, 70, 40, 40, 41, 21, 2, 70, 38, 38, 36, 21, 2, 81, 40, 40,
+ 38, 21, 2, 157, 32, 40, 106, 32, 32, 18, 21, 2, 157, 39, 38, 106,
+ 39, 39, 17, 123, 32, 32, 39, 128, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "video_mixer_orc_overlay_bgra");
+ orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0xffffffff, "c1");
+ orc_program_add_constant (p, 4, 0xff000000, "c2");
+ orc_program_add_constant (p, 4, 0x00ffffff, "c3");
+ orc_program_add_constant (p, 4, 0x00000018, "c4");
+ orc_program_add_constant (p, 4, 0x00000008, "c5");
+ orc_program_add_parameter (p, 2, "p1");
+ 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, 1, "t4");
+ orc_program_add_temporary (p, 8, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 8, "t7");
+ orc_program_add_temporary (p, 4, "t8");
+ orc_program_add_temporary (p, 8, "t9");
+ orc_program_add_temporary (p, 8, "t10");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T8, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T8, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T9, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T10,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "divluw", 2, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "andl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "andl", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_memcpy_2d */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var32;
+ orc_int8 var33;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: copyb */
+ var33 = var32;
+ /* 2: storeb */
+ ptr0[i] = var33;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var32;
+ orc_int8 var33;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: copyb */
+ var33 = var32;
+ /* 2: storeb */
+ ptr0[i] = var33;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 38, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11, 1, 1, 12, 1, 1,
+ 42, 0, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_memcpy_2d);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p, "videomixer_video_convert_orc_memcpy_2d");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_memcpy_2d);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 1, "s1");
+
+ orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_I420_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_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)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr1 = (orc_union32 *) d2;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr6[i];
+ /* 1: loadb */
+ var34 = ptr7[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var39.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[0];
+ _dest.x2[1] = var35.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[1];
+ _dest.x2[1] = var35.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ /* 6: loadw */
+ var37 = ptr5[i];
+ /* 7: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 8: storel */
+ ptr1[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_I420_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr1 = (orc_union32 *) ex->arrays[1];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+ ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr6[i];
+ /* 1: loadb */
+ var34 = ptr7[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var39.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[0];
+ _dest.x2[1] = var35.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[1];
+ _dest.x2[1] = var35.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ /* 6: loadw */
+ var37 = ptr5[i];
+ /* 7: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 8: storel */
+ ptr1[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 85, 89, 86,
+ 89, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 1, 1,
+ 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1, 196, 0, 32, 4, 21,
+ 1, 196, 1, 32, 5, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_I420_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_destination (p, 4, "d2");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_I420_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_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)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr1 = (orc_union32 *) d2;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr6[i];
+ /* 1: loadb */
+ var34 = ptr7[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var39.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ /* 6: loadw */
+ var37 = ptr5[i];
+ /* 7: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 8: storel */
+ ptr1[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_I420_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr1 = (orc_union32 *) ex->arrays[1];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+ ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr6[i];
+ /* 1: loadb */
+ var34 = ptr7[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var39.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ /* 6: loadw */
+ var37 = ptr5[i];
+ /* 7: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 8: storel */
+ ptr1[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 89, 85, 89,
+ 50, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 1, 1,
+ 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1, 196, 0, 4, 32, 21,
+ 1, 196, 1, 5, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_I420_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_destination (p, 4, "d2");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_I420_AYUV */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_I420_AYUV (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)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ orc_union32 *ORC_RESTRICT ptr1;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var39;
+#else
+ orc_int8 var39;
+#endif
+ orc_int8 var40;
+ orc_union32 var41;
+ orc_int8 var42;
+ orc_int8 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr1 = (orc_union32 *) d2;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 8: loadpb */
+ var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var42 = ptr6[i >> 1];
+ /* 1: loadupdb */
+ var43 = ptr7[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var42;
+ _dest.x2[1] = var43;
+ var44.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var45.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var45.i;
+ _dest.x2[1] = var44.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ /* 9: loadb */
+ var40 = ptr5[i];
+ /* 10: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var46.i = _dest.i;
+ }
+ /* 11: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var46.i;
+ _dest.x2[1] = var44.i;
+ var41.i = _dest.i;
+ }
+ /* 12: storel */
+ ptr1[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var39;
+#else
+ orc_int8 var39;
+#endif
+ orc_int8 var40;
+ orc_union32 var41;
+ orc_int8 var42;
+ orc_int8 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr1 = (orc_union32 *) ex->arrays[1];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+ ptr7 = (orc_int8 *) ex->arrays[7];
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 8: loadpb */
+ var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var42 = ptr6[i >> 1];
+ /* 1: loadupdb */
+ var43 = ptr7[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var42;
+ _dest.x2[1] = var43;
+ var44.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var45.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var45.i;
+ _dest.x2[1] = var44.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ /* 9: loadb */
+ var40 = ptr5[i];
+ /* 10: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var46.i = _dest.i;
+ }
+ /* 11: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var46.i;
+ _dest.x2[1] = var44.i;
+ var41.i = _dest.i;
+ }
+ /* 12: storel */
+ ptr1[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_I420_AYUV (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)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 65, 89, 85,
+ 86, 11, 4, 4, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1,
+ 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20,
+ 1, 45, 34, 6, 45, 35, 7, 196, 32, 34, 35, 196, 33, 16, 4, 195,
+ 0, 33, 32, 196, 33, 16, 5, 195, 1, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_AYUV);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_I420_AYUV");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_AYUV);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_destination (p, 4, "d2");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_YUY2_I420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
+ orc_union32 var35;
+ orc_union32 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr3 = (orc_int8 *) d4;
+ ptr4 = (orc_union32 *) s1;
+ ptr5 = (orc_union32 *) s2;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var40;
+ /* 3: loadl */
+ var36 = ptr5[i];
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var41.x2[0] = _src.x2[1];
+ var42.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var41.x2[1] = _src.x2[1];
+ var42.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr1[i] = var42;
+ /* 6: avgub */
+ var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 8: storeb */
+ ptr3[i] = var37;
+ /* 9: storeb */
+ ptr2[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_YUY2_I420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
+ orc_union32 var35;
+ orc_union32 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr3 = (orc_int8 *) ex->arrays[3];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+ ptr5 = (orc_union32 *) ex->arrays[5];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var40;
+ /* 3: loadl */
+ var36 = ptr5[i];
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var41.x2[0] = _src.x2[1];
+ var42.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var41.x2[1] = _src.x2[1];
+ var42.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr1[i] = var42;
+ /* 6: avgub */
+ var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 8: storeb */
+ ptr3[i] = var37;
+ /* 9: storeb */
+ ptr2[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 73, 52, 50,
+ 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4,
+ 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1, 199, 32, 34, 4, 97,
+ 0, 34, 21, 1, 199, 33, 34, 5, 97, 1, 34, 21, 1, 39, 32, 32,
+ 33, 199, 3, 2, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_I420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_YUY2_I420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_I420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_destination (p, 1, "d4");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_source (p, 4, "s2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_D4] = d4;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_UYVY_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapw */
+ var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
+ var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_UYVY_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapw */
+ var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
+ var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 85,
+ 89, 50, 11, 4, 4, 12, 4, 4, 21, 1, 183, 0, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_UYVY_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_420_422 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var32;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_int8 var35;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: copyb */
+ var33 = var32;
+ /* 2: storeb */
+ ptr0[i] = var33;
+ /* 3: loadb */
+ var34 = ptr4[i];
+ /* 4: copyb */
+ var35 = var34;
+ /* 5: storeb */
+ ptr1[i] = var35;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_420_422 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var32;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_int8 var35;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: copyb */
+ var33 = var32;
+ /* 2: storeb */
+ ptr0[i] = var33;
+ /* 3: loadb */
+ var34 = ptr4[i];
+ /* 4: copyb */
+ var35 = var34;
+ /* 5: storeb */
+ ptr1[i] = var35;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 50, 48, 95, 52, 50, 50, 11, 1, 1, 11, 1, 1, 12, 1, 1, 42,
+ 0, 4, 42, 1, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_420_422);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_420_422");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_420_422);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_source (p, 1, "s1");
+
+ orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_420_444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_union16 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr4[i];
+ /* 1: splatbw */
+ var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: storew */
+ ptr1[i] = var34;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_420_444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_union16 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr4[i];
+ /* 1: splatbw */
+ var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: storew */
+ ptr1[i] = var34;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 50, 48, 95, 52, 52, 52, 11, 2, 2, 11, 2, 2, 12, 1, 1, 20,
+ 2, 151, 32, 4, 97, 0, 32, 97, 1, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_420_444);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_420_444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_420_444);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_422_444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_union16 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr4[i];
+ /* 1: splatbw */
+ var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+ /* 2: storew */
+ ptr0[i] = var34;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_422_444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_union16 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr4[i];
+ /* 1: splatbw */
+ var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+ /* 2: storew */
+ ptr0[i] = var34;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 50, 50, 95, 52, 52, 52, 11, 2, 2, 12, 1, 1, 20, 2, 151, 32,
+ 4, 97, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_422_444);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_422_444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_422_444);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_444_422 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var34.i;
+ var36 = _src.x2[1];
+ var37 = _src.x2[0];
+ }
+ /* 2: avgub */
+ var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
+ /* 3: storeb */
+ ptr0[i] = var35;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_444_422 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var34.i;
+ var36 = _src.x2[1];
+ var37 = _src.x2[0];
+ }
+ /* 2: avgub */
+ var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
+ /* 3: storeb */
+ ptr0[i] = var35;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 52, 52, 95, 52, 50, 50, 11, 1, 1, 12, 2, 2, 20, 1, 20, 1,
+ 199, 32, 33, 4, 39, 0, 32, 33, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_444_422);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_444_422");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_444_422);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_444_420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr4[i];
+ /* 1: loadw */
+ var36 = ptr5[i];
+ /* 2: avgub */
+ var38.x2[0] =
+ ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
+ var38.x2[1] =
+ ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var39 = _src.x2[1];
+ var40 = _src.x2[0];
+ }
+ /* 4: avgub */
+ var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
+ /* 5: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_444_420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr4[i];
+ /* 1: loadw */
+ var36 = ptr5[i];
+ /* 2: avgub */
+ var38.x2[0] =
+ ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
+ var38.x2[1] =
+ ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var39 = _src.x2[1];
+ var40 = _src.x2[0];
+ }
+ /* 4: avgub */
+ var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
+ /* 5: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 52, 52, 95, 52, 50, 48, 11, 1, 1, 12, 2, 2, 12, 2, 2, 20,
+ 2, 20, 1, 20, 1, 21, 1, 39, 32, 4, 5, 199, 33, 34, 32, 39,
+ 0, 33, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_444_420);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_444_420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_444_420);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_planar_chroma_422_420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ orc_int8 var32;
+ orc_int8 var33;
+ orc_int8 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: loadb */
+ var33 = ptr5[i];
+ /* 2: avgub */
+ var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_planar_chroma_422_420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ orc_int8 var32;
+ orc_int8 var33;
+ orc_int8 var34;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var32 = ptr4[i];
+ /* 1: loadb */
+ var33 = ptr5[i];
+ /* 2: avgub */
+ var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52,
+ 50, 50, 95, 52, 50, 48, 11, 1, 1, 12, 1, 1, 12, 1, 1, 39,
+ 0, 4, 5, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_422_420);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_planar_chroma_422_420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_planar_chroma_422_420);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_YUY2_AYUV */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 65, 89,
+ 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255, 0, 0, 0, 20, 2,
+ 20, 2, 20, 4, 20, 4, 21, 1, 199, 33, 32, 4, 21, 1, 196, 34,
+ 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_AYUV);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_YUY2_AYUV");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_AYUV);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_UYVY_AYUV */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 65, 89,
+ 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255, 0, 0, 0, 20, 2,
+ 20, 2, 20, 4, 20, 4, 21, 1, 199, 32, 33, 4, 21, 1, 196, 34,
+ 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_AYUV);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_UYVY_AYUV");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_AYUV);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_YUY2_Y42B */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[0];
+ var37.x2[0] = _src.x2[1];
+ var34.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[1];
+ var37.x2[1] = _src.x2[1];
+ var34.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var37.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 4: storeb */
+ ptr2[i] = var35;
+ /* 5: storeb */
+ ptr1[i] = var36;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_YUY2_Y42B (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[0];
+ var37.x2[0] = _src.x2[1];
+ var34.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[1];
+ var37.x2[1] = _src.x2[1];
+ var34.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var37.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 4: storeb */
+ ptr2[i] = var35;
+ /* 5: storeb */
+ ptr1[i] = var36;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 89, 52,
+ 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2,
+ 21, 1, 199, 32, 0, 4, 199, 2, 1, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_Y42B);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_YUY2_Y42B");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_Y42B);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_UYVY_Y42B */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[0];
+ var34.x2[0] = _src.x2[1];
+ var37.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[1];
+ var34.x2[1] = _src.x2[1];
+ var37.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var37.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 4: storeb */
+ ptr2[i] = var35;
+ /* 5: storeb */
+ ptr1[i] = var36;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_UYVY_Y42B (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[0];
+ var34.x2[0] = _src.x2[1];
+ var37.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var33.x2[1];
+ var34.x2[1] = _src.x2[1];
+ var37.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var34;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var37.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 4: storeb */
+ ptr2[i] = var35;
+ /* 5: storeb */
+ ptr1[i] = var36;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 52,
+ 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2,
+ 21, 1, 199, 0, 32, 4, 199, 2, 1, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_Y42B);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_UYVY_Y42B");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_Y42B);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_YUY2_Y444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_union16 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var36.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var36.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var36;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var40 = _src.x2[1];
+ var41 = _src.x2[0];
+ }
+ /* 4: splatbw */
+ var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+ /* 5: storew */
+ ptr1[i] = var37;
+ /* 6: splatbw */
+ var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+ /* 7: storew */
+ ptr2[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_YUY2_Y444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_union16 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var36.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var36.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var36;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var40 = _src.x2[1];
+ var41 = _src.x2[0];
+ }
+ /* 4: splatbw */
+ var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+ /* 5: storew */
+ ptr1[i] = var37;
+ /* 6: splatbw */
+ var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+ /* 7: storew */
+ ptr2[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 89, 52,
+ 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2, 12, 4, 4, 20, 2,
+ 20, 1, 20, 1, 21, 1, 199, 32, 0, 4, 199, 34, 33, 32, 151, 1,
+ 33, 151, 2, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_Y444);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_YUY2_Y444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_YUY2_Y444);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_destination (p, 2, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_UYVY_Y444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_union16 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var36.x2[0] = _src.x2[1];
+ var39.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var36.x2[1] = _src.x2[1];
+ var39.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var36;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var40 = _src.x2[1];
+ var41 = _src.x2[0];
+ }
+ /* 4: splatbw */
+ var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+ /* 5: storew */
+ ptr1[i] = var37;
+ /* 6: splatbw */
+ var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+ /* 7: storew */
+ ptr2[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_UYVY_Y444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_union16 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var36.x2[0] = _src.x2[1];
+ var39.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var36.x2[1] = _src.x2[1];
+ var39.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var36;
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var40 = _src.x2[1];
+ var41 = _src.x2[0];
+ }
+ /* 4: splatbw */
+ var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+ /* 5: storew */
+ ptr1[i] = var37;
+ /* 6: splatbw */
+ var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+ /* 7: storew */
+ ptr2[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 52,
+ 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2, 12, 4, 4, 20, 2,
+ 20, 1, 20, 1, 21, 1, 199, 0, 32, 4, 199, 34, 33, 32, 151, 1,
+ 33, 151, 2, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_Y444);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_UYVY_Y444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_Y444);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_destination (p, 2, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_UYVY_I420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
+ orc_union32 var35;
+ orc_union32 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr3 = (orc_int8 *) d4;
+ ptr4 = (orc_union32 *) s1;
+ ptr5 = (orc_union32 *) s2;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var39;
+ /* 3: loadl */
+ var36 = ptr5[i];
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var41.x2[0] = _src.x2[1];
+ var42.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var41.x2[1] = _src.x2[1];
+ var42.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr1[i] = var41;
+ /* 6: avgub */
+ var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 8: storeb */
+ ptr3[i] = var37;
+ /* 9: storeb */
+ ptr2[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_UYVY_I420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ const orc_union32 *ORC_RESTRICT ptr5;
+ orc_union32 var35;
+ orc_union32 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr3 = (orc_int8 *) ex->arrays[3];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+ ptr5 = (orc_union32 *) ex->arrays[5];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var35 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var35.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: storew */
+ ptr0[i] = var39;
+ /* 3: loadl */
+ var36 = ptr5[i];
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var41.x2[0] = _src.x2[1];
+ var42.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var41.x2[1] = _src.x2[1];
+ var42.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr1[i] = var41;
+ /* 6: avgub */
+ var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 8: storeb */
+ ptr3[i] = var37;
+ /* 9: storeb */
+ ptr2[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 73, 52, 50,
+ 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4,
+ 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1, 199, 34, 32, 4, 97,
+ 0, 34, 21, 1, 199, 34, 33, 5, 97, 1, 34, 21, 1, 39, 32, 32,
+ 33, 199, 3, 2, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_I420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_UYVY_I420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_UYVY_I420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_destination (p, 1, "d4");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_source (p, 4, "s2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_D4] = d4;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_I420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
+ int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union64 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_union32 var46;
+ orc_union32 var47;
+ orc_union32 var48;
+ orc_union32 var49;
+ orc_union32 var50;
+ orc_union16 var51;
+ orc_union16 var52;
+ orc_int8 var53;
+ orc_int8 var54;
+ orc_int8 var55;
+ orc_int8 var56;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.x2[0];
+ var46.x2[0] = _src.x2[1];
+ var47.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var40.x2[1];
+ var46.x2[1] = _src.x2[1];
+ var47.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var47.x2[0];
+ var41.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var47.x2[1];
+ var41.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var41;
+ /* 4: loadq */
+ var42 = ptr5[i];
+ /* 5: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var42.x2[0];
+ var48.x2[0] = _src.x2[1];
+ var49.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var42.x2[1];
+ var48.x2[1] = _src.x2[1];
+ var49.x2[1] = _src.x2[0];
+ }
+ /* 6: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var49.x2[0];
+ var43.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var49.x2[1];
+ var43.x2[1] = _src.x2[1];
+ }
+ /* 7: storew */
+ ptr1[i] = var43;
+ /* 8: avgub */
+ var50.x4[0] =
+ ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
+ var50.x4[1] =
+ ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
+ var50.x4[2] =
+ ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
+ var50.x4[3] =
+ ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
+ /* 9: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var50.x2[0];
+ var51.x2[0] = _src.x2[1];
+ var52.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var50.x2[1];
+ var51.x2[1] = _src.x2[1];
+ var52.x2[1] = _src.x2[0];
+ }
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var52.i;
+ var53 = _src.x2[1];
+ var54 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var44;
+ /* 13: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var51.i;
+ var55 = _src.x2[1];
+ var56 = _src.x2[0];
+ }
+ /* 14: avgub */
+ var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
+ /* 15: storeb */
+ ptr3[i] = var45;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_AYUV_I420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_int8 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ const orc_union64 *ORC_RESTRICT ptr5;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union64 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_union32 var46;
+ orc_union32 var47;
+ orc_union32 var48;
+ orc_union32 var49;
+ orc_union32 var50;
+ orc_union16 var51;
+ orc_union16 var52;
+ orc_int8 var53;
+ orc_int8 var54;
+ orc_int8 var55;
+ orc_int8 var56;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.x2[0];
+ var46.x2[0] = _src.x2[1];
+ var47.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var40.x2[1];
+ var46.x2[1] = _src.x2[1];
+ var47.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var47.x2[0];
+ var41.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var47.x2[1];
+ var41.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var41;
+ /* 4: loadq */
+ var42 = ptr5[i];
+ /* 5: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var42.x2[0];
+ var48.x2[0] = _src.x2[1];
+ var49.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var42.x2[1];
+ var48.x2[1] = _src.x2[1];
+ var49.x2[1] = _src.x2[0];
+ }
+ /* 6: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var49.x2[0];
+ var43.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var49.x2[1];
+ var43.x2[1] = _src.x2[1];
+ }
+ /* 7: storew */
+ ptr1[i] = var43;
+ /* 8: avgub */
+ var50.x4[0] =
+ ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
+ var50.x4[1] =
+ ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
+ var50.x4[2] =
+ ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
+ var50.x4[3] =
+ ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
+ /* 9: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var50.x2[0];
+ var51.x2[0] = _src.x2[1];
+ var52.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var50.x2[1];
+ var51.x2[1] = _src.x2[1];
+ var52.x2[1] = _src.x2[0];
+ }
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var52.i;
+ var53 = _src.x2[1];
+ var54 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var44;
+ /* 13: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var51.i;
+ var55 = _src.x2[1];
+ var56 = _src.x2[0];
+ }
+ /* 14: avgub */
+ var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
+ /* 15: storeb */
+ ptr3[i] = var45;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
+ int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 73, 52,
+ 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 8,
+ 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 20, 4, 20, 2, 20, 2,
+ 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 21,
+ 1, 198, 34, 32, 5, 21, 1, 189, 1, 32, 21, 2, 39, 35, 33, 34,
+ 21, 1, 199, 37, 36, 35, 199, 38, 39, 36, 39, 2, 38, 39, 199, 38,
+ 39, 37, 39, 3, 38, 39, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_I420);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_I420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_I420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_destination (p, 1, "d4");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_source (p, 8, "s2");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 1, "t7");
+ orc_program_add_temporary (p, 1, "t8");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_D4] = d4;
+ ex->params[ORC_VAR_D4] = d4_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_AYUV_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 85,
+ 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4,
+ 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33,
+ 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 32, 33, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_AYUV_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 85, 89,
+ 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4,
+ 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33,
+ 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_Y42B */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] =
+ ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] =
+ ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_AYUV_Y42B (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] =
+ ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] =
+ ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 52,
+ 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 20, 4,
+ 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32, 4, 198, 34, 35, 33,
+ 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21, 1, 189, 0, 32, 2,
+ 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_Y42B);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_Y42B");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_Y42B);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_Y444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+ ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_AYUV_Y444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+ ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
+ guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
+ int s1_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 52,
+ 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2,
+ 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_Y444);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_Y444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_Y444);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->params[ORC_VAR_D2] = d2_stride;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->params[ORC_VAR_D3] = d3_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y42B_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr5[i];
+ /* 1: loadb */
+ var34 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_Y42B_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr5[i];
+ /* 1: loadb */
+ var34 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 89, 85,
+ 89, 50, 11, 4, 4, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2,
+ 196, 32, 5, 6, 21, 1, 196, 0, 4, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y42B_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y42B_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr5[i];
+ /* 1: loadb */
+ var34 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var35.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var35.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_Y42B_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var33 = ptr5[i];
+ /* 1: loadb */
+ var34 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 3: loadw */
+ var35 = ptr4[i];
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var35.x2[0];
+ var36.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var35.x2[1];
+ var36.x2[1] = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 85, 89,
+ 86, 89, 11, 4, 4, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2,
+ 196, 32, 5, 6, 21, 1, 196, 0, 32, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y42B_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y42B_AYUV */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var36;
+ orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var38;
+#else
+ orc_union16 var38;
+#endif
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var38;
+#else
+ orc_union16 var38;
+#endif
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 65, 89,
+ 85, 86, 11, 8, 8, 12, 2, 2, 12, 1, 1, 12, 1, 1, 14, 1,
+ 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 196, 32, 5, 6,
+ 21, 1, 196, 35, 16, 4, 195, 34, 32, 32, 21, 1, 195, 0, 35, 34,
+ 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_AYUV);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y42B_AYUV");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y42B_AYUV);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y444_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_union16 *ORC_RESTRICT ptr6;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var36 = ptr5[i];
+ /* 1: loadw */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 4: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_Y444_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_union16 *ORC_RESTRICT ptr6;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var36 = ptr5[i];
+ /* 1: loadw */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 4: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 89, 85,
+ 89, 50, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2,
+ 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5, 6, 198, 34, 35, 33,
+ 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 4, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y444_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_source (p, 2, "s3");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y444_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_union16 *ORC_RESTRICT ptr6;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var36 = ptr5[i];
+ /* 1: loadw */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 4: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_convert_Y444_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int j;
+ int n = ex->n;
+ int m = ex->params[ORC_VAR_A1];
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ const orc_union16 *ORC_RESTRICT ptr6;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var36 = ptr5[i];
+ /* 1: loadw */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 4: avgub */
+ var43.x2[0] =
+ ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] =
+ ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var39;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 85, 89,
+ 86, 89, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2,
+ 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5, 6, 198, 34, 35, 33,
+ 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 32, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y444_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_source (p, 2, "s3");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_Y444_AYUV */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var34;
+ orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+ ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+ ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+ ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+ ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+ const guint8 * ORC_RESTRICT s2, int s2_stride,
+ const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 65, 89,
+ 85, 86, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1,
+ 255, 0, 0, 0, 20, 2, 20, 2, 196, 32, 5, 6, 196, 33, 16, 4,
+ 195, 0, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_AYUV);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_Y444_AYUV");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_Y444_AYUV);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_S2] = s2_stride;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->params[ORC_VAR_S3] = s3_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_ARGB */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var61;
+ _dest.x2[1] = var87;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var88;
+ _dest.x2[1] = var89;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var61;
+ _dest.x2[1] = var87;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var88;
+ _dest.x2[1] = var89;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 65, 82,
+ 71, 66, 11, 4, 4, 12, 4, 4, 14, 1, 8, 0, 0, 0, 14, 4,
+ 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4, 103, 0, 0, 0,
+ 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0, 14, 4, 104, 0,
+ 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2,
+ 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1,
+ 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33, 47, 199, 35, 34, 33,
+ 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149, 40, 37, 89, 32, 38,
+ 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41, 38, 40, 89, 32, 40,
+ 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41, 41, 40, 71, 43, 38,
+ 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32, 32, 16, 71, 43, 43,
+ 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42, 38, 32, 89, 32, 40,
+ 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42, 42, 32, 159, 44, 41,
+ 159, 45, 42, 159, 46, 43, 196, 32, 34, 44, 196, 33, 45, 46, 195, 47,
+ 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_ARGB);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_ARGB");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_ARGB);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 4, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 2, "t10");
+ orc_program_add_temporary (p, 2, "t11");
+ orc_program_add_temporary (p, 2, "t12");
+ orc_program_add_temporary (p, 1, "t13");
+ orc_program_add_temporary (p, 1, "t14");
+ orc_program_add_temporary (p, 1, "t15");
+ orc_program_add_temporary (p, 4, "t16");
+
+ orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T9, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3,
+ ORC_VAR_T13, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14,
+ ORC_VAR_T15, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_BGRA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var89;
+ _dest.x2[1] = var88;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var61;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var89;
+ _dest.x2[1] = var88;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var61;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 66, 71,
+ 82, 65, 11, 4, 4, 12, 4, 4, 14, 1, 8, 0, 0, 0, 14, 4,
+ 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4, 103, 0, 0, 0,
+ 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0, 14, 4, 104, 0,
+ 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2,
+ 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1,
+ 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33, 47, 199, 35, 34, 33,
+ 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149, 40, 37, 89, 32, 38,
+ 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41, 38, 40, 89, 32, 40,
+ 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41, 41, 40, 71, 43, 38,
+ 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32, 32, 16, 71, 43, 43,
+ 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42, 38, 32, 89, 32, 40,
+ 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42, 42, 32, 159, 44, 41,
+ 159, 45, 42, 159, 46, 43, 196, 32, 46, 45, 196, 33, 44, 34, 195, 47,
+ 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_BGRA);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_BGRA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 4, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 2, "t10");
+ orc_program_add_temporary (p, 2, "t11");
+ orc_program_add_temporary (p, 2, "t12");
+ orc_program_add_temporary (p, 1, "t13");
+ orc_program_add_temporary (p, 1, "t14");
+ orc_program_add_temporary (p, 1, "t15");
+ orc_program_add_temporary (p, 4, "t16");
+
+ orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T9, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T15,
+ ORC_VAR_T14, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T13,
+ ORC_VAR_T3, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_ABGR */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var61;
+ _dest.x2[1] = var89;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var88;
+ _dest.x2[1] = var87;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var61;
+ _dest.x2[1] = var89;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var88;
+ _dest.x2[1] = var87;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 65, 66,
+ 71, 82, 11, 4, 4, 12, 4, 4, 14, 1, 8, 0, 0, 0, 14, 4,
+ 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4, 103, 0, 0, 0,
+ 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0, 14, 4, 104, 0,
+ 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2,
+ 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1,
+ 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33, 47, 199, 35, 34, 33,
+ 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149, 40, 37, 89, 32, 38,
+ 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41, 38, 40, 89, 32, 40,
+ 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41, 41, 40, 71, 43, 38,
+ 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32, 32, 16, 71, 43, 43,
+ 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42, 38, 32, 89, 32, 40,
+ 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42, 42, 32, 159, 44, 41,
+ 159, 45, 42, 159, 46, 43, 196, 32, 34, 46, 196, 33, 45, 44, 195, 47,
+ 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_ABGR);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_ABGR");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_ABGR);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 4, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 2, "t10");
+ orc_program_add_temporary (p, 2, "t11");
+ orc_program_add_temporary (p, 2, "t12");
+ orc_program_add_temporary (p, 1, "t13");
+ orc_program_add_temporary (p, 1, "t14");
+ orc_program_add_temporary (p, 1, "t15");
+ orc_program_add_temporary (p, 4, "t16");
+
+ orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T9, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3,
+ ORC_VAR_T15, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14,
+ ORC_VAR_T13, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_AYUV_RGBA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1,
+ int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+ int i;
+ int j;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+ ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var88;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var89;
+ _dest.x2[1] = var61;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var49;
+#else
+ orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_union32 var57;
+ orc_union16 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_int8 var87;
+ orc_int8 var88;
+ orc_int8 var89;
+ orc_union16 var90;
+ orc_union16 var91;
+ orc_union32 var92;
+
+ for (j = 0; j < m; j++) {
+ ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+ ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+ /* 1: loadpb */
+ var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 14: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 21: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 25: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 29: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 40: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var48 = ptr4[i];
+ /* 2: subb */
+ var57.x4[0] = var48.x4[0] - var49.x4[0];
+ var57.x4[1] = var48.x4[1] - var49.x4[1];
+ var57.x4[2] = var48.x4[2] - var49.x4[2];
+ var57.x4[3] = var48.x4[3] - var49.x4[3];
+ /* 3: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var57.i;
+ var58.i = _src.x2[1];
+ var59.i = _src.x2[0];
+ }
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var59.i;
+ var60 = _src.x2[1];
+ var61 = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var58.i;
+ var62 = _src.x2[1];
+ var63 = _src.x2[0];
+ }
+ /* 6: convsbw */
+ var64.i = var60;
+ /* 7: convsbw */
+ var65.i = var63;
+ /* 8: convsbw */
+ var66.i = var62;
+ /* 10: mullw */
+ var67.i = (var64.i * var50.i) & 0xffff;
+ /* 11: shrsw */
+ var68.i = var67.i >> 8;
+ /* 12: addssw */
+ var69.i = ORC_CLAMP_SW (var64.i + var68.i);
+ /* 13: addssw */
+ var70.i = ORC_CLAMP_SW (var69.i + var66.i);
+ /* 15: mullw */
+ var71.i = (var66.i * var51.i) & 0xffff;
+ /* 16: shrsw */
+ var72.i = var71.i >> 8;
+ /* 17: subssw */
+ var73.i = ORC_CLAMP_SW (var70.i - var72.i);
+ /* 18: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var66.i);
+ /* 19: addssw */
+ var75.i = ORC_CLAMP_SW (var69.i + var65.i);
+ /* 20: addssw */
+ var76.i = ORC_CLAMP_SW (var75.i + var65.i);
+ /* 22: mullw */
+ var77.i = (var65.i * var52.i) & 0xffff;
+ /* 23: shrsw */
+ var78.i = var77.i >> 8;
+ /* 24: addssw */
+ var79.i = ORC_CLAMP_SW (var76.i + var78.i);
+ /* 26: mullw */
+ var80.i = (var65.i * var53.i) & 0xffff;
+ /* 27: shrsw */
+ var81.i = var80.i >> 8;
+ /* 28: subssw */
+ var82.i = ORC_CLAMP_SW (var69.i - var81.i);
+ /* 30: mullw */
+ var83.i = (var66.i * var54.i) & 0xffff;
+ /* 31: shrsw */
+ var84.i = var83.i >> 8;
+ /* 32: subssw */
+ var85.i = ORC_CLAMP_SW (var82.i - var84.i);
+ /* 33: subssw */
+ var86.i = ORC_CLAMP_SW (var85.i - var84.i);
+ /* 34: convssswb */
+ var87 = ORC_CLAMP_SB (var74.i);
+ /* 35: convssswb */
+ var88 = ORC_CLAMP_SB (var86.i);
+ /* 36: convssswb */
+ var89 = ORC_CLAMP_SB (var79.i);
+ /* 37: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var88;
+ var90.i = _dest.i;
+ }
+ /* 38: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var89;
+ _dest.x2[1] = var61;
+ var91.i = _dest.i;
+ }
+ /* 39: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var90.i;
+ _dest.x2[1] = var91.i;
+ var92.i = _dest.i;
+ }
+ /* 41: addb */
+ var56.x4[0] = var92.x4[0] + var55.x4[0];
+ var56.x4[1] = var92.x4[1] + var55.x4[1];
+ var56.x4[2] = var92.x4[2] + var55.x4[2];
+ var56.x4[3] = var92.x4[3] + var55.x4[3];
+ /* 42: storel */
+ ptr0[i] = var56;
+ }
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 7, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114,
+ 99,
+ 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 82, 71,
+ 66, 65, 11, 4, 4, 12, 4, 4, 14, 1, 8, 0, 0, 0, 14, 4,
+ 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4, 103, 0, 0, 0,
+ 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0, 14, 4, 104, 0,
+ 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2,
+ 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1,
+ 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33, 47, 199, 35, 34, 33,
+ 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149, 40, 37, 89, 32, 38,
+ 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41, 38, 40, 89, 32, 40,
+ 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41, 41, 40, 71, 43, 38,
+ 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32, 32, 16, 71, 43, 43,
+ 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42, 38, 32, 89, 32, 40,
+ 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42, 42, 32, 159, 44, 41,
+ 159, 45, 42, 159, 46, 43, 196, 32, 44, 45, 196, 33, 46, 34, 195, 47,
+ 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_RGBA);
+#else
+ p = orc_program_new ();
+ orc_program_set_2d (p);
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_AYUV_RGBA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_AYUV_RGBA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 4, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 2, "t10");
+ orc_program_add_temporary (p, 2, "t11");
+ orc_program_add_temporary (p, 2, "t12");
+ orc_program_add_temporary (p, 1, "t13");
+ orc_program_add_temporary (p, 1, "t14");
+ orc_program_add_temporary (p, 1, "t15");
+ orc_program_add_temporary (p, 4, "t16");
+
+ orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T9, ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13,
+ ORC_VAR_T14, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T15,
+ ORC_VAR_T3, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ORC_EXECUTOR_M (ex) = m;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->params[ORC_VAR_D1] = d1_stride;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_S1] = s1_stride;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_I420_BGRA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var46;
+#else
+ orc_int8 var46;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var47;
+#else
+ orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var48;
+#else
+ orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var49;
+#else
+ orc_union16 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var54;
+#else
+ orc_int8 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_int8 var57;
+ orc_union16 var58;
+ orc_int8 var59;
+ orc_int8 var60;
+ orc_union16 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_int8 var85;
+ orc_int8 var86;
+ orc_int8 var87;
+ orc_union16 var88;
+ orc_union16 var89;
+ orc_union32 var90;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 1: loadpb */
+ var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 5: loadpb */
+ var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpb */
+ var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 12: loadpw */
+ var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 17: loadpw */
+ var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 24: loadpw */
+ var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 28: loadpw */
+ var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 32: loadpw */
+ var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 41: loadpb */
+ var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 44: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var45 = ptr4[i];
+ /* 2: subb */
+ var57 = var45 - var46;
+ /* 3: convsbw */
+ var58.i = var57;
+ /* 4: loadupib */
+ var59 =
+ (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
+ 1) >> 1 : ptr5[i >> 1];
+ /* 6: subb */
+ var60 = var59 - var47;
+ /* 7: convsbw */
+ var61.i = var60;
+ /* 8: loadupib */
+ var62 =
+ (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
+ 1) >> 1 : ptr6[i >> 1];
+ /* 10: subb */
+ var63 = var62 - var48;
+ /* 11: convsbw */
+ var64.i = var63;
+ /* 13: mullw */
+ var65.i = (var58.i * var49.i) & 0xffff;
+ /* 14: shrsw */
+ var66.i = var65.i >> 8;
+ /* 15: addssw */
+ var67.i = ORC_CLAMP_SW (var58.i + var66.i);
+ /* 16: addssw */
+ var68.i = ORC_CLAMP_SW (var67.i + var64.i);
+ /* 18: mullw */
+ var69.i = (var64.i * var50.i) & 0xffff;
+ /* 19: shrsw */
+ var70.i = var69.i >> 8;
+ /* 20: subssw */
+ var71.i = ORC_CLAMP_SW (var68.i - var70.i);
+ /* 21: addssw */
+ var72.i = ORC_CLAMP_SW (var71.i + var64.i);
+ /* 22: addssw */
+ var73.i = ORC_CLAMP_SW (var67.i + var61.i);
+ /* 23: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var61.i);
+ /* 25: mullw */
+ var75.i = (var61.i * var51.i) & 0xffff;
+ /* 26: shrsw */
+ var76.i = var75.i >> 8;
+ /* 27: addssw */
+ var77.i = ORC_CLAMP_SW (var74.i + var76.i);
+ /* 29: mullw */
+ var78.i = (var61.i * var52.i) & 0xffff;
+ /* 30: shrsw */
+ var79.i = var78.i >> 8;
+ /* 31: subssw */
+ var80.i = ORC_CLAMP_SW (var67.i - var79.i);
+ /* 33: mullw */
+ var81.i = (var64.i * var53.i) & 0xffff;
+ /* 34: shrsw */
+ var82.i = var81.i >> 8;
+ /* 35: subssw */
+ var83.i = ORC_CLAMP_SW (var80.i - var82.i);
+ /* 36: subssw */
+ var84.i = ORC_CLAMP_SW (var83.i - var82.i);
+ /* 37: convssswb */
+ var85 = ORC_CLAMP_SB (var72.i);
+ /* 38: convssswb */
+ var86 = ORC_CLAMP_SB (var84.i);
+ /* 39: convssswb */
+ var87 = ORC_CLAMP_SB (var77.i);
+ /* 40: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var86;
+ var88.i = _dest.i;
+ }
+ /* 42: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var85;
+ _dest.x2[1] = var54;
+ var89.i = _dest.i;
+ }
+ /* 43: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var88.i;
+ _dest.x2[1] = var89.i;
+ var90.i = _dest.i;
+ }
+ /* 45: addb */
+ var56.x4[0] = var90.x4[0] + var55.x4[0];
+ var56.x4[1] = var90.x4[1] + var55.x4[1];
+ var56.x4[2] = var90.x4[2] + var55.x4[2];
+ var56.x4[3] = var90.x4[3] + var55.x4[3];
+ /* 46: storel */
+ ptr0[i] = var56;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var46;
+#else
+ orc_int8 var46;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var47;
+#else
+ orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var48;
+#else
+ orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var49;
+#else
+ orc_union16 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var54;
+#else
+ orc_int8 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var55;
+#else
+ orc_union32 var55;
+#endif
+ orc_union32 var56;
+ orc_int8 var57;
+ orc_union16 var58;
+ orc_int8 var59;
+ orc_int8 var60;
+ orc_union16 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_union16 var65;
+ orc_union16 var66;
+ orc_union16 var67;
+ orc_union16 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_int8 var85;
+ orc_int8 var86;
+ orc_int8 var87;
+ orc_union16 var88;
+ orc_union16 var89;
+ orc_union32 var90;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 1: loadpb */
+ var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 5: loadpb */
+ var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 9: loadpb */
+ var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 12: loadpw */
+ var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 17: loadpw */
+ var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 24: loadpw */
+ var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 28: loadpw */
+ var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 32: loadpw */
+ var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 41: loadpb */
+ var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 44: loadpb */
+ var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var45 = ptr4[i];
+ /* 2: subb */
+ var57 = var45 - var46;
+ /* 3: convsbw */
+ var58.i = var57;
+ /* 4: loadupib */
+ var59 =
+ (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
+ 1) >> 1 : ptr5[i >> 1];
+ /* 6: subb */
+ var60 = var59 - var47;
+ /* 7: convsbw */
+ var61.i = var60;
+ /* 8: loadupib */
+ var62 =
+ (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
+ 1) >> 1 : ptr6[i >> 1];
+ /* 10: subb */
+ var63 = var62 - var48;
+ /* 11: convsbw */
+ var64.i = var63;
+ /* 13: mullw */
+ var65.i = (var58.i * var49.i) & 0xffff;
+ /* 14: shrsw */
+ var66.i = var65.i >> 8;
+ /* 15: addssw */
+ var67.i = ORC_CLAMP_SW (var58.i + var66.i);
+ /* 16: addssw */
+ var68.i = ORC_CLAMP_SW (var67.i + var64.i);
+ /* 18: mullw */
+ var69.i = (var64.i * var50.i) & 0xffff;
+ /* 19: shrsw */
+ var70.i = var69.i >> 8;
+ /* 20: subssw */
+ var71.i = ORC_CLAMP_SW (var68.i - var70.i);
+ /* 21: addssw */
+ var72.i = ORC_CLAMP_SW (var71.i + var64.i);
+ /* 22: addssw */
+ var73.i = ORC_CLAMP_SW (var67.i + var61.i);
+ /* 23: addssw */
+ var74.i = ORC_CLAMP_SW (var73.i + var61.i);
+ /* 25: mullw */
+ var75.i = (var61.i * var51.i) & 0xffff;
+ /* 26: shrsw */
+ var76.i = var75.i >> 8;
+ /* 27: addssw */
+ var77.i = ORC_CLAMP_SW (var74.i + var76.i);
+ /* 29: mullw */
+ var78.i = (var61.i * var52.i) & 0xffff;
+ /* 30: shrsw */
+ var79.i = var78.i >> 8;
+ /* 31: subssw */
+ var80.i = ORC_CLAMP_SW (var67.i - var79.i);
+ /* 33: mullw */
+ var81.i = (var64.i * var53.i) & 0xffff;
+ /* 34: shrsw */
+ var82.i = var81.i >> 8;
+ /* 35: subssw */
+ var83.i = ORC_CLAMP_SW (var80.i - var82.i);
+ /* 36: subssw */
+ var84.i = ORC_CLAMP_SW (var83.i - var82.i);
+ /* 37: convssswb */
+ var85 = ORC_CLAMP_SB (var72.i);
+ /* 38: convssswb */
+ var86 = ORC_CLAMP_SB (var84.i);
+ /* 39: convssswb */
+ var87 = ORC_CLAMP_SB (var77.i);
+ /* 40: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var87;
+ _dest.x2[1] = var86;
+ var88.i = _dest.i;
+ }
+ /* 42: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var85;
+ _dest.x2[1] = var54;
+ var89.i = _dest.i;
+ }
+ /* 43: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var88.i;
+ _dest.x2[1] = var89.i;
+ var90.i = _dest.i;
+ }
+ /* 45: addb */
+ var56.x4[0] = var90.x4[0] + var55.x4[0];
+ var56.x4[1] = var90.x4[1] + var55.x4[1];
+ var56.x4[2] = var90.x4[2] + var55.x4[2];
+ var56.x4[3] = var90.x4[3] + var55.x4[3];
+ /* 46: storel */
+ ptr0[i] = var56;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_I420_BGRA (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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 66, 71, 82,
+ 65, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 8,
+ 0, 0, 0, 14, 1, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14,
+ 4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0,
+ 0, 14, 4, 104, 0, 0, 0, 14, 4, 255, 0, 0, 0, 20, 2, 20,
+ 2, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
+ 1, 20, 1, 20, 1, 20, 4, 65, 34, 4, 17, 149, 35, 34, 46, 34,
+ 5, 65, 34, 34, 17, 149, 36, 34, 46, 34, 6, 65, 34, 34, 17, 149,
+ 37, 34, 89, 32, 35, 18, 94, 32, 32, 16, 71, 35, 35, 32, 71, 38,
+ 35, 37, 89, 32, 37, 19, 94, 32, 32, 16, 99, 38, 38, 32, 71, 38,
+ 38, 37, 71, 40, 35, 36, 71, 40, 40, 36, 89, 32, 36, 20, 94, 32,
+ 32, 16, 71, 40, 40, 32, 89, 32, 36, 21, 94, 32, 32, 16, 99, 39,
+ 35, 32, 89, 32, 37, 22, 94, 32, 32, 16, 99, 39, 39, 32, 99, 39,
+ 39, 32, 159, 41, 38, 159, 42, 39, 159, 43, 40, 196, 32, 43, 42, 196,
+ 33, 41, 23, 195, 44, 32, 33, 21, 2, 33, 0, 44, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_BGRA);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_I420_BGRA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 1, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_constant (p, 4, 0x000000ff, "c8");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 1, "t10");
+ orc_program_add_temporary (p, 1, "t11");
+ orc_program_add_temporary (p, 1, "t12");
+ orc_program_add_temporary (p, 4, "t13");
+
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T10, ORC_VAR_T7,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T12,
+ ORC_VAR_T11, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T10,
+ ORC_VAR_C8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T13, ORC_VAR_T1,
+ ORC_VAR_T2, ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T13, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_convert_I420_BGRA_avg */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_convert_I420_BGRA_avg (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, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ const orc_int8 *ORC_RESTRICT ptr8;
+ orc_int8 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var47;
+#else
+ orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var48;
+#else
+ orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var49;
+#else
+ orc_int8 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var55;
+#else
+ orc_int8 var55;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var56;
+#else
+ orc_union32 var56;
+#endif
+ orc_union32 var57;
+ orc_int8 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_int8 var65;
+ orc_int8 var66;
+ orc_int8 var67;
+ orc_int8 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_union16 var87;
+ orc_union16 var88;
+ orc_union16 var89;
+ orc_int8 var90;
+ orc_int8 var91;
+ orc_int8 var92;
+ orc_union16 var93;
+ orc_union16 var94;
+ orc_union32 var95;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+ ptr8 = (orc_int8 *) s5;
+
+ /* 1: loadpb */
+ var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 7: loadpb */
+ var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 13: loadpb */
+ var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 16: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 21: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 28: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 32: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 36: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 45: loadpb */
+ var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 48: loadpb */
+ var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var46 = ptr4[i];
+ /* 2: subb */
+ var58 = var46 - var47;
+ /* 3: convsbw */
+ var59.i = var58;
+ /* 4: loadupib */
+ var60 =
+ (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
+ 1) >> 1 : ptr5[i >> 1];
+ /* 5: loadupib */
+ var61 =
+ (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
+ 1) >> 1 : ptr6[i >> 1];
+ /* 6: avgub */
+ var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1;
+ /* 8: subb */
+ var63 = var62 - var48;
+ /* 9: convsbw */
+ var64.i = var63;
+ /* 10: loadupib */
+ var65 =
+ (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] +
+ 1) >> 1 : ptr7[i >> 1];
+ /* 11: loadupib */
+ var66 =
+ (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] +
+ 1) >> 1 : ptr8[i >> 1];
+ /* 12: avgub */
+ var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1;
+ /* 14: subb */
+ var68 = var67 - var49;
+ /* 15: convsbw */
+ var69.i = var68;
+ /* 17: mullw */
+ var70.i = (var59.i * var50.i) & 0xffff;
+ /* 18: shrsw */
+ var71.i = var70.i >> 8;
+ /* 19: addssw */
+ var72.i = ORC_CLAMP_SW (var59.i + var71.i);
+ /* 20: addssw */
+ var73.i = ORC_CLAMP_SW (var72.i + var69.i);
+ /* 22: mullw */
+ var74.i = (var69.i * var51.i) & 0xffff;
+ /* 23: shrsw */
+ var75.i = var74.i >> 8;
+ /* 24: subssw */
+ var76.i = ORC_CLAMP_SW (var73.i - var75.i);
+ /* 25: addssw */
+ var77.i = ORC_CLAMP_SW (var76.i + var69.i);
+ /* 26: addssw */
+ var78.i = ORC_CLAMP_SW (var72.i + var64.i);
+ /* 27: addssw */
+ var79.i = ORC_CLAMP_SW (var78.i + var64.i);
+ /* 29: mullw */
+ var80.i = (var64.i * var52.i) & 0xffff;
+ /* 30: shrsw */
+ var81.i = var80.i >> 8;
+ /* 31: addssw */
+ var82.i = ORC_CLAMP_SW (var79.i + var81.i);
+ /* 33: mullw */
+ var83.i = (var64.i * var53.i) & 0xffff;
+ /* 34: shrsw */
+ var84.i = var83.i >> 8;
+ /* 35: subssw */
+ var85.i = ORC_CLAMP_SW (var72.i - var84.i);
+ /* 37: mullw */
+ var86.i = (var69.i * var54.i) & 0xffff;
+ /* 38: shrsw */
+ var87.i = var86.i >> 8;
+ /* 39: subssw */
+ var88.i = ORC_CLAMP_SW (var85.i - var87.i);
+ /* 40: subssw */
+ var89.i = ORC_CLAMP_SW (var88.i - var87.i);
+ /* 41: convssswb */
+ var90 = ORC_CLAMP_SB (var77.i);
+ /* 42: convssswb */
+ var91 = ORC_CLAMP_SB (var89.i);
+ /* 43: convssswb */
+ var92 = ORC_CLAMP_SB (var82.i);
+ /* 44: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var92;
+ _dest.x2[1] = var91;
+ var93.i = _dest.i;
+ }
+ /* 46: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var90;
+ _dest.x2[1] = var55;
+ var94.i = _dest.i;
+ }
+ /* 47: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var93.i;
+ _dest.x2[1] = var94.i;
+ var95.i = _dest.i;
+ }
+ /* 49: addb */
+ var57.x4[0] = var95.x4[0] + var56.x4[0];
+ var57.x4[1] = var95.x4[1] + var56.x4[1];
+ var57.x4[2] = var95.x4[2] + var56.x4[2];
+ var57.x4[3] = var95.x4[3] + var56.x4[3];
+ /* 50: storel */
+ ptr0[i] = var57;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var47;
+#else
+ orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var48;
+#else
+ orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var49;
+#else
+ orc_int8 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var50;
+#else
+ orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var51;
+#else
+ orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var52;
+#else
+ orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var53;
+#else
+ orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var54;
+#else
+ orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var55;
+#else
+ orc_int8 var55;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union32 var56;
+#else
+ orc_union32 var56;
+#endif
+ orc_union32 var57;
+ orc_int8 var58;
+ orc_union16 var59;
+ orc_int8 var60;
+ orc_int8 var61;
+ orc_int8 var62;
+ orc_int8 var63;
+ orc_union16 var64;
+ orc_int8 var65;
+ orc_int8 var66;
+ orc_int8 var67;
+ orc_int8 var68;
+ orc_union16 var69;
+ orc_union16 var70;
+ orc_union16 var71;
+ orc_union16 var72;
+ orc_union16 var73;
+ orc_union16 var74;
+ orc_union16 var75;
+ orc_union16 var76;
+ orc_union16 var77;
+ orc_union16 var78;
+ orc_union16 var79;
+ orc_union16 var80;
+ orc_union16 var81;
+ orc_union16 var82;
+ orc_union16 var83;
+ orc_union16 var84;
+ orc_union16 var85;
+ orc_union16 var86;
+ orc_union16 var87;
+ orc_union16 var88;
+ orc_union16 var89;
+ orc_int8 var90;
+ orc_int8 var91;
+ orc_int8 var92;
+ orc_union16 var93;
+ orc_union16 var94;
+ orc_union32 var95;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+ ptr7 = (orc_int8 *) ex->arrays[7];
+ ptr8 = (orc_int8 *) ex->arrays[8];
+
+ /* 1: loadpb */
+ var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 7: loadpb */
+ var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 13: loadpb */
+ var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ /* 16: loadpw */
+ var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
+ /* 21: loadpw */
+ var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
+ /* 28: loadpw */
+ var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
+ /* 32: loadpw */
+ var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
+ /* 36: loadpw */
+ var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
+ /* 45: loadpb */
+ var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 48: loadpb */
+ var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+ var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var46 = ptr4[i];
+ /* 2: subb */
+ var58 = var46 - var47;
+ /* 3: convsbw */
+ var59.i = var58;
+ /* 4: loadupib */
+ var60 =
+ (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
+ 1) >> 1 : ptr5[i >> 1];
+ /* 5: loadupib */
+ var61 =
+ (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
+ 1) >> 1 : ptr6[i >> 1];
+ /* 6: avgub */
+ var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1;
+ /* 8: subb */
+ var63 = var62 - var48;
+ /* 9: convsbw */
+ var64.i = var63;
+ /* 10: loadupib */
+ var65 =
+ (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] +
+ 1) >> 1 : ptr7[i >> 1];
+ /* 11: loadupib */
+ var66 =
+ (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] +
+ 1) >> 1 : ptr8[i >> 1];
+ /* 12: avgub */
+ var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1;
+ /* 14: subb */
+ var68 = var67 - var49;
+ /* 15: convsbw */
+ var69.i = var68;
+ /* 17: mullw */
+ var70.i = (var59.i * var50.i) & 0xffff;
+ /* 18: shrsw */
+ var71.i = var70.i >> 8;
+ /* 19: addssw */
+ var72.i = ORC_CLAMP_SW (var59.i + var71.i);
+ /* 20: addssw */
+ var73.i = ORC_CLAMP_SW (var72.i + var69.i);
+ /* 22: mullw */
+ var74.i = (var69.i * var51.i) & 0xffff;
+ /* 23: shrsw */
+ var75.i = var74.i >> 8;
+ /* 24: subssw */
+ var76.i = ORC_CLAMP_SW (var73.i - var75.i);
+ /* 25: addssw */
+ var77.i = ORC_CLAMP_SW (var76.i + var69.i);
+ /* 26: addssw */
+ var78.i = ORC_CLAMP_SW (var72.i + var64.i);
+ /* 27: addssw */
+ var79.i = ORC_CLAMP_SW (var78.i + var64.i);
+ /* 29: mullw */
+ var80.i = (var64.i * var52.i) & 0xffff;
+ /* 30: shrsw */
+ var81.i = var80.i >> 8;
+ /* 31: addssw */
+ var82.i = ORC_CLAMP_SW (var79.i + var81.i);
+ /* 33: mullw */
+ var83.i = (var64.i * var53.i) & 0xffff;
+ /* 34: shrsw */
+ var84.i = var83.i >> 8;
+ /* 35: subssw */
+ var85.i = ORC_CLAMP_SW (var72.i - var84.i);
+ /* 37: mullw */
+ var86.i = (var69.i * var54.i) & 0xffff;
+ /* 38: shrsw */
+ var87.i = var86.i >> 8;
+ /* 39: subssw */
+ var88.i = ORC_CLAMP_SW (var85.i - var87.i);
+ /* 40: subssw */
+ var89.i = ORC_CLAMP_SW (var88.i - var87.i);
+ /* 41: convssswb */
+ var90 = ORC_CLAMP_SB (var77.i);
+ /* 42: convssswb */
+ var91 = ORC_CLAMP_SB (var89.i);
+ /* 43: convssswb */
+ var92 = ORC_CLAMP_SB (var82.i);
+ /* 44: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var92;
+ _dest.x2[1] = var91;
+ var93.i = _dest.i;
+ }
+ /* 46: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var90;
+ _dest.x2[1] = var55;
+ var94.i = _dest.i;
+ }
+ /* 47: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var93.i;
+ _dest.x2[1] = var94.i;
+ var95.i = _dest.i;
+ }
+ /* 49: addb */
+ var57.x4[0] = var95.x4[0] + var56.x4[0];
+ var57.x4[1] = var95.x4[1] + var56.x4[1];
+ var57.x4[2] = var95.x4[2] + var56.x4[2];
+ var57.x4[3] = var95.x4[3] + var56.x4[3];
+ /* 50: storel */
+ ptr0[i] = var57;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_convert_I420_BGRA_avg (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, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 66, 71, 82,
+ 65, 95, 97, 118, 103, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1,
+ 1, 12, 1, 1, 12, 1, 1, 14, 1, 8, 0, 0, 0, 14, 1, 128,
+ 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4, 103, 0, 0, 0, 14,
+ 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0, 14, 4, 104, 0, 0,
+ 0, 14, 4, 255, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+ 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+ 1, 20, 4, 65, 34, 4, 17, 149, 36, 34, 46, 34, 5, 46, 35, 6,
+ 39, 34, 34, 35, 65, 34, 34, 17, 149, 37, 34, 46, 34, 7, 46, 35,
+ 8, 39, 34, 34, 35, 65, 34, 34, 17, 149, 38, 34, 89, 32, 36, 18,
+ 94, 32, 32, 16, 71, 36, 36, 32, 71, 39, 36, 38, 89, 32, 38, 19,
+ 94, 32, 32, 16, 99, 39, 39, 32, 71, 39, 39, 38, 71, 41, 36, 37,
+ 71, 41, 41, 37, 89, 32, 37, 20, 94, 32, 32, 16, 71, 41, 41, 32,
+ 89, 32, 37, 21, 94, 32, 32, 16, 99, 40, 36, 32, 89, 32, 38, 22,
+ 94, 32, 32, 16, 99, 40, 40, 32, 99, 40, 40, 32, 159, 42, 39, 159,
+ 43, 40, 159, 44, 41, 196, 32, 44, 43, 196, 33, 42, 23, 195, 45, 32,
+ 33, 21, 2, 33, 0, 45, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_BGRA_avg);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p,
+ "videomixer_video_convert_orc_convert_I420_BGRA_avg");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_convert_I420_BGRA_avg);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_source (p, 1, "s5");
+ orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 1, 0x00000080, "c2");
+ orc_program_add_constant (p, 4, 0x0000002a, "c3");
+ orc_program_add_constant (p, 4, 0x00000067, "c4");
+ orc_program_add_constant (p, 4, 0x00000004, "c5");
+ orc_program_add_constant (p, 4, 0x00000064, "c6");
+ orc_program_add_constant (p, 4, 0x00000068, "c7");
+ orc_program_add_constant (p, 4, 0x000000ff, "c8");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+ orc_program_add_temporary (p, 2, "t9");
+ orc_program_add_temporary (p, 2, "t10");
+ orc_program_add_temporary (p, 1, "t11");
+ orc_program_add_temporary (p, 1, "t12");
+ orc_program_add_temporary (p, 1, "t13");
+ orc_program_add_temporary (p, 4, "t14");
+
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S5,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T6, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
+ ORC_VAR_T1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13,
+ ORC_VAR_T12, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T11,
+ ORC_VAR_C8, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T1,
+ ORC_VAR_T2, ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+ ex->arrays[ORC_VAR_S5] = (void *) s5;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_I420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_I420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_I420 (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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 73, 52, 50, 48, 11, 4, 4, 12,
+ 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
+ 20, 2, 20, 1, 20, 1, 45, 34, 5, 45, 35, 6, 196, 32, 34, 35,
+ 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_I420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_I420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_I420);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_YUV9 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_YUV9 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union16 var38;
+ orc_union64 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 4: 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: loadupdb */
+ var40 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var41 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var40;
+ _dest.x2[1] = var41;
+ var42.i = _dest.i;
+ }
+ /* 3: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var42.i;
+ var43.i = _dest.i;
+ }
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var44.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var44.x2[1] = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_YUV9 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union16 var38;
+ orc_union64 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 4: 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: loadupdb */
+ var40 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var41 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var40;
+ _dest.x2[1] = var41;
+ var42.i = _dest.i;
+ }
+ /* 3: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var42.i;
+ var43.i = _dest.i;
+ }
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var44.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var44.x2[1] = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var39;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 85, 86, 57, 11, 8, 8, 12,
+ 2, 2, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
+ 20, 4, 20, 4, 20, 1, 20, 1, 45, 35, 5, 45, 36, 6, 196, 32,
+ 35, 36, 195, 34, 32, 32, 21, 1, 196, 33, 16, 4, 21, 1, 195, 0,
+ 33, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YUV9);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_YUV9");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YUV9);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T5, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 85, 89, 50, 11, 8, 8, 12,
+ 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4,
+ 21, 1, 199, 33, 32, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33,
+ 21, 1, 195, 0, 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YUY2);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 85, 89, 86, 89, 11, 8, 8, 12,
+ 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4,
+ 21, 1, 199, 32, 33, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33,
+ 21, 1, 195, 0, 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_UYVY);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_YVYU */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 3: 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];
+ }
+ /* 2: swapw */
+ var41.i = ORC_SWAP_W (var39.i);
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_YVYU (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var37;
+#else
+ orc_union16 var37;
+#endif
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 3: 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];
+ }
+ /* 2: swapw */
+ var41.i = ORC_SWAP_W (var39.i);
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 86, 89, 85, 11, 8, 8, 12,
+ 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4,
+ 21, 1, 199, 33, 32, 4, 183, 33, 33, 21, 1, 196, 34, 16, 32, 195,
+ 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YVYU);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_YVYU");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_YVYU);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_Y42B */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_Y42B (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ 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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var38;
+#else
+ orc_union16 var38;
+#endif
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_Y42B (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var38;
+#else
+ orc_union16 var38;
+#endif
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 52, 50, 66, 11, 8, 8, 12,
+ 2, 2, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
+ 20, 2, 20, 4, 20, 4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4,
+ 195, 34, 32, 32, 21, 1, 195, 0, 35, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y42B);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_Y42B");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y42B);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_Y444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_Y444 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var34;
+ orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_Y444 (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;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var36;
+#else
+ orc_int8 var36;
+#endif
+ 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];
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 52, 52, 52, 11, 4, 4, 12,
+ 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
+ 20, 2, 196, 32, 5, 6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
+
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y444);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_Y444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y444);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_Y800 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var33;
+#else
+ orc_int8 var33;
+#endif
+ orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var35;
+#else
+ orc_union16 var35;
+#endif
+ orc_union32 var36;
+ orc_union16 var37;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+
+ /* 0: loadpb */
+ var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 3: loadpw */
+ var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 1: loadb */
+ var34 = ptr4[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var37.i;
+ _dest.x2[1] = var35.i;
+ var36.i = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_Y800 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var33;
+#else
+ orc_int8 var33;
+#endif
+ orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var35;
+#else
+ orc_union16 var35;
+#endif
+ orc_union32 var36;
+ orc_union16 var37;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+
+ /* 0: loadpb */
+ var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 3: loadpw */
+ var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 1: loadb */
+ var34 = ptr4[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var37.i;
+ _dest.x2[1] = var35.i;
+ var36.i = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 56, 48, 48, 11, 4, 4, 12,
+ 1, 1, 14, 1, 255, 0, 0, 0, 14, 2, 128, 128, 0, 0, 20, 2,
+ 196, 32, 16, 4, 195, 0, 32, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y800);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_Y800");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y800);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_constant (p, 2, 0x00008080, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_Y16 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var35;
+#else
+ orc_int8 var35;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union32 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union16 *) s1;
+
+ /* 2: loadpb */
+ var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 4: loadpw */
+ var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: convhwb */
+ var38 = ((orc_uint16) var34.i) >> 8;
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35;
+ _dest.x2[1] = var38;
+ var39.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var36.i;
+ var37.i = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var37;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_int8 var35;
+#else
+ orc_int8 var35;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union32 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 4: loadpw */
+ var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: convhwb */
+ var38 = ((orc_uint16) var34.i) >> 8;
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35;
+ _dest.x2[1] = var38;
+ var39.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var36.i;
+ var37.i = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var37;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 40, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 89, 49, 54, 11, 4, 4, 12, 2,
+ 2, 14, 1, 255, 0, 0, 0, 14, 2, 128, 128, 0, 0, 20, 2, 20,
+ 1, 158, 33, 4, 196, 32, 16, 33, 195, 0, 32, 17, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y16);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_Y16");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_Y16);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_constant (p, 2, 0x00008080, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+
+ orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_BGRA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_BGRA (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 66, 71, 82, 65, 11, 4, 4, 12,
+ 4, 4, 184, 0, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_BGRA);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_BGRA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_ABGR */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_ABGR (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 65, 66, 71, 82, 11, 4, 4, 12,
+ 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2,
+ 20, 2, 198, 36, 37, 4, 199, 33, 34, 36, 199, 35, 32, 37, 196, 38,
+ 32, 33, 196, 39, 34, 35, 195, 0, 38, 39, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_ABGR);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_ABGR");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_ABGR);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_RGBA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_RGBA (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 82, 71, 66, 65, 11, 4, 4, 12,
+ 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2,
+ 20, 2, 198, 37, 36, 4, 199, 34, 33, 36, 199, 32, 35, 37, 196, 38,
+ 32, 33, 196, 39, 34, 35, 195, 0, 38, 39, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_RGBA);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_RGBA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_RGBA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_NV12 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_NV12 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var34;
+ orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr5[i];
+ /* 1: loadw */
+ var35 = ptr5[i];
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var34.i;
+ _dest.x2[1] = var35.i;
+ var39.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: 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;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_NV12 (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;
+ orc_union16 var34;
+ orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr5[i];
+ /* 1: loadw */
+ var35 = ptr5[i];
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var34.i;
+ _dest.x2[1] = var35.i;
+ var39.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: 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;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_NV12 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 78, 86, 49, 50, 11, 8, 8, 12,
+ 2, 2, 12, 2, 2, 14, 1, 255, 0, 0, 0, 20, 4, 20, 4, 195,
+ 33, 5, 5, 21, 1, 196, 32, 16, 4, 21, 1, 195, 0, 32, 33, 2,
+ 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_NV12);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_NV12");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_NV12);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_NV21 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_NV21 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr5[i];
+ /* 1: swapw */
+ var39.i = ORC_SWAP_W (var35.i);
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var40.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_NV21 (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;
+ orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+ volatile orc_union16 var36;
+#else
+ orc_union16 var36;
+#endif
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr5[i];
+ /* 1: swapw */
+ var39.i = ORC_SWAP_W (var35.i);
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var40.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_NV21 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 78, 86, 50, 49, 11, 8, 8, 12,
+ 2, 2, 12, 2, 2, 14, 1, 255, 0, 0, 0, 20, 2, 20, 4, 20,
+ 4, 183, 32, 5, 195, 34, 32, 32, 21, 1, 196, 33, 16, 4, 21, 1,
+ 195, 0, 33, 34, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_NV21);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_NV21");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_NV21);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_getline_A420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_getline_A420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 3: loadb */
+ var36 = ptr7[i];
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_getline_A420 (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;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ 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];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 3: loadb */
+ var36 = ptr7[i];
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_getline_A420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 103, 101, 116, 108, 105, 110, 101, 95, 65, 52, 50, 48, 11, 4, 4, 12,
+ 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 20, 2, 20, 2, 20,
+ 1, 20, 1, 45, 34, 5, 45, 35, 6, 196, 32, 34, 35, 196, 33, 7,
+ 4, 195, 0, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_A420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_getline_A420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_getline_A420);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_I420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_I420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var42.x2[0] = _src.x2[1];
+ var43.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var42.x2[1] = _src.x2[1];
+ var43.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[0];
+ var44.x2[0] = _src.x2[1];
+ var45.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[1];
+ var44.x2[1] = _src.x2[1];
+ var45.x2[1] = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 6: avgub */
+ var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+ /* 7: storeb */
+ ptr1[i] = var40;
+ /* 8: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var48 = _src.x2[1];
+ var49 = _src.x2[0];
+ }
+ /* 9: avgub */
+ var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+ /* 10: storeb */
+ ptr2[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_I420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var42.x2[0] = _src.x2[1];
+ var43.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var42.x2[1] = _src.x2[1];
+ var43.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[0];
+ var44.x2[0] = _src.x2[1];
+ var45.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[1];
+ var44.x2[1] = _src.x2[1];
+ var45.x2[1] = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 6: avgub */
+ var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+ /* 7: storeb */
+ ptr1[i] = var40;
+ /* 8: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var48 = _src.x2[1];
+ var49 = _src.x2[0];
+ }
+ /* 9: avgub */
+ var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+ /* 10: storeb */
+ ptr2[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 73, 52, 50, 48, 11, 2, 2, 11,
+ 1, 1, 11, 1, 1, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2,
+ 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 21,
+ 1, 199, 35, 34, 33, 199, 36, 37, 34, 39, 1, 36, 37, 199, 36, 37,
+ 35, 39, 2, 36, 37, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_I420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_I420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_I420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_YUY2 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ 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;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_YUY2 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 85, 89, 50, 11, 4, 4, 12,
+ 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36,
+ 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32,
+ 35, 21, 1, 196, 0, 32, 33, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_YUY2);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_YUY2");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_YVYU */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ 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;
+ orc_union16 var45;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union64 *) s1;
+
+
+ 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: swapw */
+ var45.i = ORC_SWAP_W (var43.i);
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var45.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var45.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_YVYU (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+ orc_union16 var45;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ 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: swapw */
+ var45.i = ORC_SWAP_W (var43.i);
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var45.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var45.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_YVYU (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 86, 89, 85, 11, 4, 4, 12,
+ 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36,
+ 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32,
+ 35, 183, 33, 33, 21, 1, 196, 0, 32, 33, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_YVYU);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_YVYU");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_YVYU);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_UYVY */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ 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;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_UYVY (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 85, 89, 86, 89, 11, 4, 4, 12,
+ 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36,
+ 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32,
+ 35, 21, 1, 196, 0, 33, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_UYVY);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_UYVY");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_Y42B */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_Y42B (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ 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;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_Y42B (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 52, 50, 66, 11, 2, 2, 11,
+ 1, 1, 11, 1, 1, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2,
+ 21, 1, 198, 33, 32, 4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35,
+ 199, 2, 1, 34, 21, 1, 189, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y42B);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_Y42B");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y42B);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_Y444 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_Y444 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ 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;
+
+ ptr0 = (orc_int8 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_Y444 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ 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;
+
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_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 volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 52, 52, 52, 11, 1, 1, 11,
+ 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4,
+ 199, 2, 1, 33, 189, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y444);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_Y444");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y444);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_Y800 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+
+ ptr0 = (orc_int8 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var33.i;
+ var35.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var35.i;
+ var34 = _src.x2[1];
+ }
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_Y800 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var33.i;
+ var35.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var35.i;
+ var34 = _src.x2[1];
+ }
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 56, 48, 48, 11, 1, 1, 12,
+ 4, 4, 20, 2, 190, 32, 4, 189, 0, 32, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y800);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_Y800");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y800);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_Y16 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var36.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var36.i;
+ var37 = _src.x2[1];
+ }
+ /* 3: convubw */
+ var38.i = (orc_uint8) var37;
+ /* 4: shlw */
+ var35.i = var38.i << 8;
+ /* 5: storew */
+ ptr0[i] = var35;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var36.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var36.i;
+ var37 = _src.x2[1];
+ }
+ /* 3: convubw */
+ var38.i = (orc_uint8) var37;
+ /* 4: shlw */
+ var35.i = var38.i << 8;
+ /* 5: storew */
+ ptr0[i] = var35;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 40, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 89, 49, 54, 11, 2, 2, 12, 4,
+ 4, 14, 4, 8, 0, 0, 0, 20, 2, 20, 1, 190, 32, 4, 189, 33,
+ 32, 150, 32, 33, 93, 0, 32, 16, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y16);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_Y16");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_Y16);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0x00000008, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+
+ orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_BGRA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_BGRA (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 66, 71, 82, 65, 11, 4, 4, 12,
+ 4, 4, 184, 0, 4, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_BGRA);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_BGRA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_ABGR */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_ABGR (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 65, 66, 71, 82, 11, 4, 4, 12,
+ 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2,
+ 20, 2, 198, 39, 38, 4, 199, 35, 34, 39, 199, 33, 32, 38, 196, 37,
+ 32, 35, 196, 36, 34, 33, 195, 0, 37, 36, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_ABGR);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_ABGR");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_ABGR);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_RGBA */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var49.i;
+ _dest.x2[1] = var48.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_RGBA (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var49.i;
+ _dest.x2[1] = var48.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 82, 71, 66, 65, 11, 4, 4, 12,
+ 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2,
+ 20, 2, 198, 39, 38, 4, 199, 35, 34, 39, 199, 33, 32, 38, 196, 37,
+ 35, 32, 196, 36, 33, 34, 195, 0, 36, 37, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_RGBA);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_RGBA");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_RGBA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_NV12 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_NV12 (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_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var37.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var37.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var37;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 6: storew */
+ ptr1[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_NV12 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var37.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var37.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var37;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 6: storew */
+ ptr1[i] = var38;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_NV12 (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 OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 78, 86, 49, 50, 11, 2, 2, 11,
+ 2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198,
+ 33, 32, 4, 21, 1, 189, 0, 32, 198, 34, 35, 33, 21, 1, 39, 1,
+ 34, 35, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_NV12);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_NV12");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_NV12);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_NV21 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_NV21 (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_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var38.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var38.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var38;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 5: 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;
+ /* 6: swapw */
+ var39.i = ORC_SWAP_W (var44.i);
+ /* 7: storew */
+ ptr1[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_NV21 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var38.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var38.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var38;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 5: 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;
+ /* 6: swapw */
+ var39.i = ORC_SWAP_W (var44.i);
+ /* 7: storew */
+ ptr1[i] = var39;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_NV21 (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 OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 78, 86, 50, 49, 11, 2, 2, 11,
+ 2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 20, 2, 21,
+ 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 198, 34, 35, 33, 21, 1,
+ 39, 36, 34, 35, 183, 1, 36, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_NV21);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_NV21");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_NV21);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
+
+
+/* videomixer_video_convert_orc_putline_A420 */
+#ifdef DISABLE_ORC
+void
+videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_union16 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_int8 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+ orc_int8 var50;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr3 = (orc_union16 *) d4;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var43.x2[0] = _src.x2[1];
+ var44.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var43.x2[1] = _src.x2[1];
+ var44.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: select0wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr3[i] = var40;
+ /* 6: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var45.x2[0] = _src.x2[1];
+ var46.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var45.x2[1] = _src.x2[1];
+ var46.x2[1] = _src.x2[0];
+ }
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var46.i;
+ var47 = _src.x2[1];
+ var48 = _src.x2[0];
+ }
+ /* 8: avgub */
+ var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+ /* 9: storeb */
+ ptr1[i] = var41;
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var49 = _src.x2[1];
+ var50 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var42;
+ }
+
+}
+
+#else
+static void
+_backup_videomixer_video_convert_orc_putline_A420 (OrcExecutor *
+ ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_union16 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_int8 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+ orc_int8 var50;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr3 = (orc_union16 *) ex->arrays[3];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var43.x2[0] = _src.x2[1];
+ var44.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var43.x2[1] = _src.x2[1];
+ var44.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: select0wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr3[i] = var40;
+ /* 6: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var45.x2[0] = _src.x2[1];
+ var46.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var45.x2[1] = _src.x2[1];
+ var46.x2[1] = _src.x2[0];
+ }
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var46.i;
+ var47 = _src.x2[1];
+ var48 = _src.x2[0];
+ }
+ /* 8: avgub */
+ var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+ /* 9: storeb */
+ ptr1[i] = var41;
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var49 = _src.x2[1];
+ var50 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var42;
+ }
+
+}
+
+void
+videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1,
+ guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+ guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcCode *c = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+ OrcProgram *p;
+
+#if 1
+ static const orc_uint8 bc[] = {
+ 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118,
+ 105,
+ 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99,
+ 95,
+ 112, 117, 116, 108, 105, 110, 101, 95, 65, 52, 50, 48, 11, 2, 2, 11,
+ 1, 1, 11, 1, 1, 11, 2, 2, 12, 8, 8, 20, 4, 20, 4, 20,
+ 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21, 1, 189,
+ 0, 32, 21, 1, 188, 3, 32, 21, 1, 199, 35, 34, 33, 199, 36, 37,
+ 34, 39, 1, 36, 37, 199, 36, 37, 35, 39, 2, 36, 37, 2, 0,
+ };
+ p = orc_program_new_from_static_bytecode (bc);
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_A420);
+#else
+ p = orc_program_new ();
+ orc_program_set_name (p, "videomixer_video_convert_orc_putline_A420");
+ orc_program_set_backup_function (p,
+ _backup_videomixer_video_convert_orc_putline_A420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_destination (p, 2, "d4");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select0wb", 1, ORC_VAR_D4, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+#endif
+
+ orc_program_compile (p);
+ c = orc_program_take_code (p);
+ orc_program_free (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->arrays[ORC_VAR_A2] = c;
+ ex->program = 0;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_D4] = d4;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = c->exec;
+ func (ex);
+}
+#endif
diff --git a/gst/videomixer/videomixerorc-dist.h b/gst/videomixer/videomixerorc-dist.h
new file mode 100644
index 00000000..e0b935f6
--- /dev/null
+++ b/gst/videomixer/videomixerorc-dist.h
@@ -0,0 +1,161 @@
+
+/* autogenerated from videomixerorc.orc */
+
+#ifndef _VIDEOMIXERORC_H_
+#define _VIDEOMIXERORC_H_
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+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 <limits.h>
+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 ORC_INTERNAL
+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#define ORC_INTERNAL __hidden
+#elif defined (__GNUC__)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#else
+#define ORC_INTERNAL
+#endif
+#endif
+
+void video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
+void video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void videomixer_video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_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 videomixer_video_convert_orc_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);
+void videomixer_video_convert_orc_convert_I420_AYUV (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 videomixer_video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void videomixer_video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_convert_I420_BGRA_avg (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, int n);
+void videomixer_video_convert_orc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void videomixer_video_convert_orc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void videomixer_video_convert_orc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void videomixer_video_convert_orc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/gst/videomixer/videomixerorc.orc b/gst/videomixer/videomixerorc.orc
new file mode 100644
index 00000000..7ee7fef4
--- /dev/null
+++ b/gst/videomixer/videomixerorc.orc
@@ -0,0 +1,1516 @@
+.function video_mixer_orc_splat_u32
+.dest 4 d1 guint32
+.param 4 p1 guint32
+
+copyl d1, p1
+
+.function video_mixer_orc_memcpy_u32
+.dest 4 d1 guint32
+.source 4 s1 guint32
+
+copyl d1, s1
+
+.function video_mixer_orc_blend_u8
+.flags 2d
+.dest 1 d1 guint8
+.source 1 s1 guint8
+.param 2 p1
+.temp 2 t1
+.temp 2 t2
+.const 1 c1 8
+
+convubw t1, d1
+convubw t2, s1
+subw t2, t2, t1
+mullw t2, t2, p1
+shlw t1, t1, c1
+addw t2, t1, t2
+shruw t2, t2, c1
+convsuswb d1, t2
+
+
+.function video_mixer_orc_blend_argb
+.flags 2d
+.dest 4 d guint8
+.source 4 s guint8
+.param 2 alpha
+.temp 4 t
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0x000000ff
+
+loadl t, s
+convlw tw, t
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 mullw a_wide, a_wide, alpha
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+.function video_mixer_orc_blend_bgra
+.flags 2d
+.dest 4 d guint8
+.source 4 s guint8
+.param 2 alpha
+.temp 4 t
+.temp 4 t2
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0xff000000
+
+loadl t, s
+shrul t2, t, 24
+convlw tw, t2
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 mullw a_wide, a_wide, alpha
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+
+.function video_mixer_orc_overlay_argb
+.flags 2d
+.dest 4 d guint8
+.source 4 s guint8
+.param 2 alpha
+.temp 4 t
+.temp 2 tw
+.temp 1 tb
+.temp 8 alpha_s
+.temp 8 alpha_s_inv
+.temp 8 alpha_d
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.const 4 xfs 0xffffffff
+.const 4 a_alpha 0x000000ff
+.const 4 a_alpha_inv 0xffffff00
+
+# calc source alpha as alpha_s = alpha_s * alpha / 256
+loadl t, s
+convlw tw, t
+convwb tb, tw
+splatbl a, tb
+x4 convubw alpha_s, a
+x4 mullw alpha_s, alpha_s, alpha
+x4 shruw alpha_s, alpha_s, 8
+x4 convubw s_wide, t
+x4 mullw s_wide, s_wide, alpha_s
+
+# calc destination alpha as alpha_d = (255-alpha_s) * alpha_d / 255
+loadpl a, xfs
+x4 convubw alpha_s_inv, a
+x4 subw alpha_s_inv, alpha_s_inv, alpha_s
+loadl t, d
+convlw tw, t
+convwb tb, tw
+splatbl a, tb
+x4 convubw alpha_d, a
+x4 mullw alpha_d, alpha_d, alpha_s_inv
+x4 div255w alpha_d, alpha_d
+x4 convubw d_wide, t
+x4 mullw d_wide, d_wide, alpha_d
+
+# calc final pixel as pix_d = pix_s*alpha_s + pix_d*alpha_d*(255-alpha_s)/255
+x4 addw d_wide, d_wide, s_wide
+
+# calc the final destination alpha_d = alpha_s + alpha_d * (255-alpha_s)/255
+x4 addw alpha_d, alpha_d, alpha_s
+
+# now normalize the pix_d by the final alpha to make it associative
+x4 divluw, d_wide, d_wide, alpha_d
+
+# pack the new alpha into the correct spot
+x4 convwb t, d_wide
+andl t, t, a_alpha_inv
+x4 convwb a, alpha_d
+andl a, a, a_alpha
+orl t, t, a
+storel d, t
+
+.function video_mixer_orc_overlay_bgra
+.flags 2d
+.dest 4 d guint8
+.source 4 s guint8
+.param 2 alpha
+.temp 4 t
+.temp 4 t2
+.temp 2 tw
+.temp 1 tb
+.temp 8 alpha_s
+.temp 8 alpha_s_inv
+.temp 8 alpha_d
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.const 4 xfs 0xffffffff
+.const 4 a_alpha 0xff000000
+.const 4 a_alpha_inv 0x00ffffff
+
+# calc source alpha as alpha_s = alpha_s * alpha / 256
+loadl t, s
+shrul t2, t, 24
+convlw tw, t2
+convwb tb, tw
+splatbl a, tb
+x4 convubw alpha_s, a
+x4 mullw alpha_s, alpha_s, alpha
+x4 shruw alpha_s, alpha_s, 8
+x4 convubw s_wide, t
+x4 mullw s_wide, s_wide, alpha_s
+
+# calc destination alpha as alpha_d = (255-alpha_s) * alpha_d / 255
+loadpl a, xfs
+x4 convubw alpha_s_inv, a
+x4 subw alpha_s_inv, alpha_s_inv, alpha_s
+loadl t, d
+shrul t2, t, 24
+convlw tw, t2
+convwb tb, tw
+splatbl a, tb
+x4 convubw alpha_d, a
+x4 mullw alpha_d, alpha_d, alpha_s_inv
+x4 div255w alpha_d, alpha_d
+x4 convubw d_wide, t
+x4 mullw d_wide, d_wide, alpha_d
+
+# calc final pixel as pix_d = pix_s*alpha_s + pix_d*alpha_d*(255-alpha_s)/255
+x4 addw d_wide, d_wide, s_wide
+
+# calc the final destination alpha_d = alpha_s + alpha_d * (255-alpha_s)/255
+x4 addw alpha_d, alpha_d, alpha_s
+
+# now normalize the pix_d by the final alpha to make it associative
+x4 divluw, d_wide, d_wide, alpha_d
+
+# pack the new alpha into the correct spot
+x4 convwb t, d_wide
+andl t, t, a_alpha_inv
+x4 convwb a, alpha_d
+andl a, a, a_alpha
+orl t, t, a
+storel d, t
+
+# Videoconvert logic, copy from videomixer_videoconvert.
+# Remove that when videomixer_videoconvert lands in libgstvideo.
+
+.function videomixer_video_convert_orc_memcpy_2d
+.flags 2d
+.dest 1 d1 guint8
+.source 1 s1 guint8
+
+copyb d1, s1
+
+.function videomixer_video_convert_orc_convert_I420_UYVY
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, uv, y1
+x2 mergebw d2, uv, y2
+
+
+.function videomixer_video_convert_orc_convert_I420_YUY2
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, y1, uv
+x2 mergebw d2, y2, uv
+
+
+
+.function videomixer_video_convert_orc_convert_I420_AYUV
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 1 y1 guint8
+.source 1 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, c255, y1
+mergewl d1, ay, uv
+mergebw ay, c255, y2
+mergewl d2, ay, uv
+
+
+.function videomixer_video_convert_orc_convert_YUY2_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb t1, ty, yuv1
+storew y1, ty
+x2 splitwb t2, ty, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+.function videomixer_video_convert_orc_convert_UYVY_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 4 uyvy guint8
+
+x2 swapw yuy2, uyvy
+
+
+.function videomixer_video_convert_orc_planar_chroma_420_422
+.flags 2d
+.dest 1 d1 guint8
+.dest 1 d2 guint8
+.source 1 s guint8
+
+copyb d1, s
+copyb d2, s
+
+
+.function videomixer_video_convert_orc_planar_chroma_420_444
+.flags 2d
+.dest 2 d1 guint8
+.dest 2 d2 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+storew d2, t
+
+
+.function videomixer_video_convert_orc_planar_chroma_422_444
+.flags 2d
+.dest 2 d1 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+
+
+.function videomixer_video_convert_orc_planar_chroma_444_422
+.flags 2d
+.dest 1 d guint8
+.source 2 s guint8
+.temp 1 t1
+.temp 1 t2
+
+splitwb t1, t2, s
+avgub d, t1, t2
+
+
+.function videomixer_video_convert_orc_planar_chroma_444_420
+.flags 2d
+.dest 1 d guint8
+.source 2 s1 guint8
+.source 2 s2 guint8
+.temp 2 t
+.temp 1 t1
+.temp 1 t2
+
+x2 avgub t, s1, s2
+splitwb t1, t2, t
+avgub d, t1, t2
+
+
+.function videomixer_video_convert_orc_planar_chroma_422_420
+.flags 2d
+.dest 1 d guint8
+.source 1 s1 guint8
+.source 1 s2 guint8
+
+avgub d, s1, s2
+
+
+.function videomixer_video_convert_orc_convert_YUY2_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_convert_UYVY_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_convert_YUY2_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+
+
+.function videomixer_video_convert_orc_convert_UYVY_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 uyvy guint8
+.temp 2 uv
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+
+
+.function videomixer_video_convert_orc_convert_YUY2_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function videomixer_video_convert_orc_convert_UYVY_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 uyvy guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function videomixer_video_convert_orc_convert_UYVY_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb ty, t1, yuv1
+storew y1, ty
+x2 splitwb ty, t2, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_I420
+.flags 2d
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv1 guint8
+.source 8 ayuv2 guint8
+.temp 4 ay
+.temp 4 uv1
+.temp 4 uv2
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv1, ay, ayuv1
+x2 select1wb y1, ay
+x2 splitlw uv2, ay, ayuv2
+x2 select1wb y2, ay
+x4 avgub uv, uv1, uv2
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function videomixer_video_convert_orc_convert_AYUV_UYVY
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function videomixer_video_convert_orc_convert_AYUV_Y444
+.flags 2d
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+
+.function videomixer_video_convert_orc_convert_Y42B_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw yuy2, y, uv
+
+
+.function videomixer_video_convert_orc_convert_Y42B_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw uyvy, uv, y
+
+
+.function videomixer_video_convert_orc_convert_Y42B_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_convert_Y444_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw yuy2, y, uv
+
+
+.function videomixer_video_convert_orc_convert_Y444_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw uyvy, uv, y
+
+
+.function videomixer_video_convert_orc_convert_Y444_AYUV
+.flags 2d
+.dest 4 ayuv guint8
+.source 1 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, c255, yy
+mergewl ayuv, ay, uv
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_ARGB
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+
+x4 subb x, ayuv, 128
+splitlw t1, t2, x
+splitwb y, a, t2
+splitwb v, u, t1
+convsbw wy, y
+convsbw wu, u
+convsbw wv, v
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, a, r
+mergebw t2, g, b
+mergewl x, t1, t2
+x4 addb argb, x, 128
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_BGRA
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+
+x4 subb x, ayuv, 128
+splitlw t1, t2, x
+splitwb y, a, t2
+splitwb v, u, t1
+convsbw wy, y
+convsbw wu, u
+convsbw wv, v
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, b, g
+mergebw t2, r, a
+mergewl x, t1, t2
+x4 addb argb, x, 128
+
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_ABGR
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+
+x4 subb x, ayuv, 128
+splitlw t1, t2, x
+splitwb y, a, t2
+splitwb v, u, t1
+convsbw wy, y
+convsbw wu, u
+convsbw wv, v
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, a, b
+mergebw t2, g, r
+mergewl x, t1, t2
+x4 addb argb, x, 128
+
+
+
+.function videomixer_video_convert_orc_convert_AYUV_RGBA
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+
+x4 subb x, ayuv, 128
+splitlw t1, t2, x
+splitwb y, a, t2
+splitwb v, u, t1
+convsbw wy, y
+convsbw wu, u
+convsbw wv, v
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, r, g
+mergebw t2, b, a
+mergewl x, t1, t2
+x4 addb argb, x, 128
+
+
+
+.function videomixer_video_convert_orc_convert_I420_BGRA
+.dest 4 argb guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 t3
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+.const 1 c128 128
+
+subb t3, y, c128
+convsbw wy, t3
+loadupib t3, u
+subb t3, t3, c128
+convsbw wu, t3
+loadupib t3, v
+subb t3, t3, c128
+convsbw wv, t3
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, b, g
+mergebw t2, r, 255
+mergewl x, t1, t2
+x4 addb argb, x, c128
+
+
+
+.function videomixer_video_convert_orc_convert_I420_BGRA_avg
+.dest 4 argb guint8
+.source 1 y guint8
+.source 1 u1 guint8
+.source 1 u2 guint8
+.source 1 v1 guint8
+.source 1 v2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 1 t3
+.temp 1 t4
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c8 8
+.const 1 c128 128
+
+subb t3, y, c128
+convsbw wy, t3
+loadupib t3, u1
+loadupib t4, u2
+avgub t3, t3, t4
+subb t3, t3, c128
+convsbw wu, t3
+loadupib t3, v1
+loadupib t4, v2
+avgub t3, t3, t4
+subb t3, t3, c128
+convsbw wv, t3
+
+mullw t1, wy, 42
+shrsw t1, t1, c8
+addssw wy, wy, t1
+
+addssw wr, wy, wv
+mullw t1, wv, 103
+shrsw t1, t1, c8
+subssw wr, wr, t1
+addssw wr, wr, wv
+
+addssw wb, wy, wu
+addssw wb, wb, wu
+mullw t1, wu, 4
+shrsw t1, t1, c8
+addssw wb, wb, t1
+
+mullw t1, wu, 100
+shrsw t1, t1, c8
+subssw wg, wy, t1
+mullw t1, wv, 104
+shrsw t1, t1, c8
+subssw wg, wg, t1
+subssw wg, wg, t1
+
+convssswb r, wr
+convssswb g, wg
+convssswb b, wb
+
+mergebw t1, b, g
+mergebw t2, r, 255
+mergewl x, t1, t2
+x4 addb argb, x, c128
+
+
+
+.function videomixer_video_convert_orc_getline_I420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, c255, y
+mergewl d, ay, uv
+
+.function videomixer_video_convert_orc_getline_YUV9
+.dest 8 d guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 tuv
+.temp 4 ay
+.temp 4 uv
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw tuv, tu, tv
+mergewl uv, tuv, tuv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uv
+
+.function videomixer_video_convert_orc_getline_YUY2
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_getline_UYVY
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_getline_YVYU
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, uyvy
+swapw uv, uv
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_getline_Y42B
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function videomixer_video_convert_orc_getline_Y444
+.dest 4 ayuv guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, c255, y
+mergewl ayuv, ay, uv
+
+
+.function videomixer_video_convert_orc_getline_Y800
+.dest 4 ayuv guint8
+.source 1 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+
+mergebw ay, c255, y
+mergewl ayuv, ay, c0x8080
+
+.function videomixer_video_convert_orc_getline_Y16
+.dest 4 ayuv guint8
+.source 2 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+.temp 1 yb
+
+convhwb yb, y
+mergebw ay, c255, yb
+mergewl ayuv, ay, c0x8080
+
+.function videomixer_video_convert_orc_getline_BGRA
+.dest 4 argb guint8
+.source 4 bgra guint8
+
+swapl argb, bgra
+
+
+.function videomixer_video_convert_orc_getline_ABGR
+.dest 4 argb guint8
+.source 4 abgr guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gr, ab, abgr
+splitwb r, g, gr
+splitwb b, a, ab
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function videomixer_video_convert_orc_getline_RGBA
+.dest 4 argb guint8
+.source 4 rgba guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw ba, rg, rgba
+splitwb g, r, rg
+splitwb a, b, ba
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function videomixer_video_convert_orc_getline_NV12
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 uv guint8
+.const 1 c255 255
+.temp 4 ay
+.temp 4 uvuv
+
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+
+.function videomixer_video_convert_orc_getline_NV21
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 vu guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 4 ay
+.temp 4 uvuv
+
+swapw uv, vu
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+.function videomixer_video_convert_orc_getline_A420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.source 1 a guint8
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, a, y
+mergewl d, ay, uv
+
+.function videomixer_video_convert_orc_putline_I420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+
+
+.function videomixer_video_convert_orc_putline_YUY2
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function videomixer_video_convert_orc_putline_YVYU
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+swapw uv1, uv1
+x2 mergebw yuy2, yy, uv1
+
+
+.function videomixer_video_convert_orc_putline_UYVY
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+
+.function videomixer_video_convert_orc_putline_Y42B
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function videomixer_video_convert_orc_putline_Y444
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+
+.function videomixer_video_convert_orc_putline_Y800
+.dest 1 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+select0lw ay, ayuv
+select1wb y, ay
+
+.function videomixer_video_convert_orc_putline_Y16
+.dest 2 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 1 yb
+
+select0lw ay, ayuv
+select1wb yb, ay
+convubw ay, yb
+shlw y, ay, 8
+
+.function videomixer_video_convert_orc_putline_BGRA
+.dest 4 bgra guint8
+.source 4 argb guint8
+
+swapl bgra, argb
+
+
+.function videomixer_video_convert_orc_putline_ABGR
+.dest 4 abgr guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ab, a, b
+mergebw gr, g, r
+mergewl abgr, ab, gr
+
+
+.function videomixer_video_convert_orc_putline_RGBA
+.dest 4 rgba guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ba, b, a
+mergebw rg, r, g
+mergewl rgba, rg, ba
+
+
+.function videomixer_video_convert_orc_putline_NV12
+.dest 2 y guint8
+.dest 2 uv guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+
+
+.function videomixer_video_convert_orc_putline_NV21
+.dest 2 y guint8
+.dest 2 vu guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+.temp 2 uv
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+swapw vu, uv
+
+.function videomixer_video_convert_orc_putline_A420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.dest 2 a guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 select0wb a, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in
index 659c9e7e..24464449 100644
--- a/gst/wavenc/Makefile.in
+++ b/gst/wavenc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in
index d3c5b8e5..0f256bb5 100644
--- a/gst/wavparse/Makefile.in
+++ b/gst/wavparse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 9c0e30ea..badfcee9 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 897e91fd..0156d444 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index 5a4006fd..f2b6e0c8 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/po/af.gmo b/po/af.gmo
index 2dad34f3..ec87c10e 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 895e280a..f97ac745 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: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2004-03-18 14:16+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index 7ef01e5f..3586969f 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 06abbd2a..a9b7f649 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: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2004-03-19 18:29+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index d0d65617..08f85d49 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index f00188a7..b5268cf7 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-04-26 22:35+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 7384694a..1517fb18 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index dbcd825b..0f6a5ff5 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-01-01 14:19+0100\n"
"Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 2402d0f4..2baf64f1 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index df540256..feadd317 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,43 +1,45 @@
# Czech translation of gst-plugins-good.
# Copyright (C) 2007, 2008, 2009, 2010, 2011 the author(s) of gst-plugins-good.
-# Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>.
# This file is put in the public domain.
+#
# Miloslav Trmac <mitr@volny.cz>, 2004.
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011.
+# Marek Černocký <marek@manet.cz>, 2013.
+#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good-0.10.26.2\n"
+"Project-Id-Version: gst-plugins-good-1.1.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
-"PO-Revision-Date: 2011-01-12 23:07+0100\n"
-"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
+"PO-Revision-Date: 2013-09-18 19:18+0200\n"
+"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 1.1\n"
+"X-Generator: Gtranslator 2.91.6\n"
msgid "Jack server not found"
-msgstr ""
+msgstr "Server Jack nebyl nalezen"
msgid "Failed to decode JPEG image"
-msgstr "Nezdařilo se dekódování obrázku JPEG"
+msgstr "Selhalo dekódování obrázku JPEG"
#. TRANSLATORS: 'song title' by 'artist name'
#, c-format
msgid "'%s' by '%s'"
-msgstr "\"%s\" od \"%s\""
+msgstr "„%s“ od „%s“"
msgid "Could not connect to server"
msgstr "Nezdařilo se spojení se serverem"
msgid "No URL set."
-msgstr "Nenastaveno URL."
+msgstr "Není nastavena žádná adresa URL."
msgid "Server does not support seeking."
-msgstr "Server nepodporuje hledání."
+msgstr "Server nepodporuje přeskakování."
msgid "Could not resolve server name."
msgstr "Nezdařil se překlad názvu serveru."
@@ -46,11 +48,11 @@ msgid "Could not establish connection to server."
msgstr "Nezdařilo se navázání spojení se serverem."
msgid "Secure connection setup failed."
-msgstr "Zabezpečené připojení selhalo."
+msgstr "Selhalo nastavení zabezpečeného připojení."
msgid ""
"A network error occured, or the server closed the connection unexpectedly."
-msgstr "Došlo k síťové chybě, nebo server neočekávaně ukončil spojení."
+msgstr "Došlo k chybě sítě nebo server neočekávaně ukončil spojení."
msgid "Server sent bad data."
msgstr "Server odeslal chybná data."
@@ -68,13 +70,13 @@ msgid "This file is invalid and cannot be played."
msgstr "Tento soubor je neplatný a nelze jej přehrát."
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
-msgstr ""
+msgstr "Nelze přehrát proud, protože je šifrován pomocí DRM PlayReady."
msgid "This file is corrupt and cannot be played."
msgstr "Tento soubor je poškozen a nelze jej přehrát."
msgid "Invalid atom size."
-msgstr "Atom - neplatná velikost."
+msgstr "Neplatná atomická velikost."
msgid "This file is incomplete and cannot be played."
msgstr "Tento soubor není úplný a nelze jej přehrát."
@@ -99,7 +101,7 @@ msgid ""
"plugin."
msgstr ""
"Nebyl nalezen žádný podporovaný proud. Patrně bude nutné povolit více "
-"přenosových protokolů, jinak asi bude scházet potřebný zásuvný modul "
+"přenosových protokolů, jinak nejspíš bude scházet potřebný zásuvný modul "
"rozšíření GStreamer RTSP."
msgid "Internal data flow error."
@@ -109,25 +111,25 @@ msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
-"Zvukové zařízení nelze otevřít k přehrávání. Zařízení je používáno jinou "
+"Zvukové zařízení nelze otevřít pro přehrávání. Zařízení je používáno jinou "
"aplikací."
msgid ""
"Could not open audio device for playback. You don't have permission to open "
"the device."
msgstr ""
-"Zvukové zařízení nelze otevřít k přehrávání. Nemáte oprávnění k otevření "
+"Zvukové zařízení nelze otevřít pro přehrávání. Nemáte oprávnění k otevření "
"zařízení."
msgid "Could not open audio device for playback."
-msgstr "Zvukové zařízení nelze otevřít ke čtení."
+msgstr "Zvukové zařízení nelze otevřít pro čtení."
msgid ""
"Could not open audio device for playback. This version of the Open Sound "
"System is not supported by this element."
msgstr ""
-"Nezdařilo se otevření zvukového zařízení k přehrávání. Tato verze Open Sound "
-"System není příslušným prvkem podporována."
+"Nezdařilo se otevření zvukového zařízení pro přehrávání. Tato verze Open "
+"Sound System není příslušným prvkem podporována."
msgid "Playback is not supported by this audio device."
msgstr "Přehrávání není tímto zvukovým zařízením podporováno."
@@ -145,14 +147,14 @@ msgid ""
"Could not open audio device for recording. You don't have permission to open "
"the device."
msgstr ""
-"Zvukové zařízení nelze otevřít k nahrávání. Nemáte oprávnění k otevření "
+"Zvukové zařízení nelze otevřít pro nahrávání. Nemáte oprávnění k otevření "
"zařízení."
msgid "Could not open audio device for recording."
-msgstr "Zvukové zařízení nelze otevřít k nahrávání."
+msgstr "Zvukové zařízení nelze otevřít pro nahrávání."
msgid "Record Source"
-msgstr "Zdroj záznamu"
+msgstr "Zdroj nahrávání"
msgid "Microphone"
msgstr "Mikrofon"
@@ -161,7 +163,7 @@ msgid "Line In"
msgstr "Linkový vstup"
msgid "Internal CD"
-msgstr "Vnitřní CD"
+msgstr "Interní CD"
msgid "SPDIF In"
msgstr "Vstup SPDIF"
@@ -172,13 +174,11 @@ msgstr "Vstup AUX 1"
msgid "AUX 2 In"
msgstr "Vstup AUX 2"
-#, fuzzy
msgid "Codec Loopback"
-msgstr "Zpětná smyčka"
+msgstr "Kodeková smyčka"
-#, fuzzy
msgid "SunVTS Loopback"
-msgstr "Zpětná smyčka"
+msgstr "Smyčka SunVTS"
msgid "Volume"
msgstr "Hlasitost"
@@ -209,513 +209,163 @@ msgstr "Výstup AUX 2"
#, c-format
msgid "Error reading %d bytes from device '%s'."
-msgstr "Chyba při čtení %d bajtů na zařízení \"%s\"."
+msgstr "Chyba při čtení %d bajtů na zařízení „%s“."
#, c-format
msgid "Failed to enumerate possible video formats device '%s' can work with"
msgstr ""
+"Selhalo vytvoření seznamu možných formátů videa, se kterými umí zařízení "
+"„%s“ pracovat"
#, c-format
msgid "Could not map buffers from device '%s'"
-msgstr "Nezdařilo se mapování vyrovnávací paměti ze zařízení \"%s\""
+msgstr "Nezdařilo se mapování vyrovnávací paměti ze zařízení „%s“"
-#, fuzzy, c-format
+#, c-format
msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Ovladač zařízení \"%s\" nepodporuje žádnou známou záznamovou metodu."
+msgstr "Ovladač zařízení „%s“ nepodporuje V/V metodu %d"
-#, fuzzy, c-format
+#, c-format
msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Ovladač zařízení \"%s\" nepodporuje žádnou známou záznamovou metodu."
+msgstr "Ovladač zařízení „%s“ nepodporuje žádnou známou V/V metodu."
-#, fuzzy, c-format
+#, c-format
msgid "Device '%s' does not support video capture"
-msgstr "Zařízení \"%s\" není výstupním zařízením."
+msgstr "Zařízení „%s“ nepodporuje zachytávání videa"
-#, fuzzy, c-format
+#, c-format
msgid "Device '%s' is busy"
-msgstr "Zařízení \"%s\" není výstupním zařízením."
+msgstr "Zařízení „%s“ je zaneprázdněno"
-#, fuzzy, c-format
+#, c-format
msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Zařízení \"%s\" není záznamovým zařízením."
+msgstr "Zařízení „%s“ neumí zachytávat v rozměru %d × %d"
-#, fuzzy, c-format
+#, c-format
msgid "Device '%s' cannot capture in the specified format"
-msgstr "Zařízení \"%s\" není záznamovým zařízením."
+msgstr "Zařízení „%s“ neumí zachytávat v tomto konkrétním formátu"
#, c-format
msgid "Could not get parameters on device '%s'"
-msgstr "Nezdařilo se zjištění parametrů na zařízení \"%s\""
+msgstr "Nezdařilo se zjištění parametrů na zařízení „%s“"
-#, fuzzy
msgid "Video device did not accept new frame rate setting."
-msgstr "Vstupní videozařízení nepřijalo nové nastavení vzorkovací frekvence."
+msgstr "Videozařízení nepřijalo nové nastavení snímkové rychlosti."
msgid "Video device could not create buffer pool."
-msgstr ""
+msgstr "Videozařízení se nezdařilo vytvořit společnou vyrovnávací paměť."
-#, fuzzy, c-format
+#, c-format
msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Selhalo zjištění nastavení tuneru %d na zařízení \"%s\"."
+msgstr "Selhalo zjištění nastavení tuneru %d u zařízení „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Error getting capabilities for device '%s'."
-msgstr "Chyba při čtení %d bajtů na zařízení \"%s\"."
+msgstr "Chyba při zjišťování schopností zařízení „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Device '%s' is not a tuner."
-msgstr "Zařízení \"%s\" není výstupním zařízením."
+msgstr "Zařízení „%s“ není tuner."
-#, fuzzy, c-format
+#, c-format
msgid "Failed to get radio input on device '%s'. "
-msgstr "Nezdařilo se nastavení vstupu \"%d\" na zařízení \"%s\"."
+msgstr "Selhalo získání rádiového vstupu u zařízení „%s“."
#, c-format
msgid "Failed to set input %d on device %s."
-msgstr "Nezdařilo se nastavení vstupu \"%d\" na zařízení \"%s\"."
+msgstr "Nezdařilo se nastavení vstupu %d u zařízení „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Failed to change mute state for device '%s'."
-msgstr "Nezdařilo se zjištění síly signálu u zařízení \"%s\"."
+msgstr "Selhala změna stavu zapnutí/vypnutí zvuku u zařízení „%s“."
#, c-format
msgid "Cannot identify device '%s'."
-msgstr "Nelze rozpoznat zařízení \"%s\"."
+msgstr "Nezdařilo se rozpoznat zařízení „%s“."
#, c-format
msgid ""
"Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
"it is a v4l1 driver."
msgstr ""
-"Chyba při získávání informací o schopnostech u zařízení \"%s\": Nejedná se o "
-"ovladač v4l2. Je nutné zkontrolovat, zda se nejedná o ovladač v4l1."
+"Chyba při získávání informací o schopnostech u zařízení „%s“: Nejedná se o "
+"ovladač v4l2. Zkontrolujte, zda se nejedná o ovladač v4l1."
#, c-format
msgid "Failed to query attributes of input %d in device %s"
-msgstr "Nezdařilo se dotázání na vlastnosti vstupu %d na zařízení %s"
+msgstr "Nezdařilo se dotázání na vlastnosti vstupu %d u zařízení „%s“"
#, c-format
msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Selhalo zjištění nastavení tuneru %d na zařízení \"%s\"."
+msgstr "Selhalo zjištění nastavení tuneru %d u zařízení „%s“."
#, c-format
msgid "Failed to query norm on device '%s'."
-msgstr "Nezdařilo se dotázání na norm na zařízení \"%s\"."
+msgstr "Nezdařilo se dotázání na normu na zařízení „%s“."
#, c-format
msgid "Failed getting controls attributes on device '%s'."
-msgstr "Nezdařilo se zjištění vlastností ovládacích prvků na zařízení \"%s\"."
+msgstr "Nezdařilo se zjištění vlastností ovládacích prvků u zařízení „%s“."
#, c-format
msgid "This isn't a device '%s'."
-msgstr "Toto není zařízení \"%s\"."
+msgstr "Toto není zařízení „%s“."
#, c-format
msgid "Could not open device '%s' for reading and writing."
-msgstr "Nelze otevřít zařízení \"%s\" ke čtení a k zápisu."
+msgstr "Nezdařilo se otevřít zařízení „%s“ pro čtení a pro zápisu."
#, c-format
msgid "Device '%s' is not a capture device."
-msgstr "Zařízení \"%s\" není záznamovým zařízením."
+msgstr "Zařízení „%s“ není zachytávacím zařízením."
#, c-format
msgid "Device '%s' is not a output device."
-msgstr "Zařízení \"%s\" není výstupním zařízením."
+msgstr "Zařízení „%s“ není výstupním zařízením."
#, c-format
msgid "Failed to set norm for device '%s'."
-msgstr "Nezdařilo se nastavení norm u zařízení \"%s\"."
+msgstr "Selhalo nastavení normy u zařízení „%s“."
#, c-format
msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Nezdařilo se zjištění aktuální frekvence tuneru u zařízení \"%s\"."
+msgstr "Selhalo zjištění aktuální frekvence tuneru u zařízení „%s“."
#, c-format
msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
-msgstr ""
-"Nezdařilo se nastavení aktuální frekvence tuneru u zařízení \"%s\" na %lu Hz."
+msgstr "Selhalo nastavení aktuální frekvence tuneru u zařízení „%s“ na %lu Hz."
#, c-format
msgid "Failed to get signal strength for device '%s'."
-msgstr "Nezdařilo se zjištění síly signálu u zařízení \"%s\"."
+msgstr "Selhalo zjištění síly signálu u zařízení „%s“."
#, c-format
msgid "Failed to get value for control %d on device '%s'."
-msgstr ""
-"Nezdařilo se zjištění hodnoty u ovládacího prvku \"%d\" na zařízení \"%s\"."
+msgstr "Selhalo zjištění hodnoty u ovládacího prvku %d na zařízení „%s“."
#, c-format
msgid "Failed to set value %d for control %d on device '%s'."
-msgstr ""
-"Nezdařilo se nastavení hodnoty \"%d\" u ovládacího prvku \"%d\" na zařízení "
-"\"%s\"."
+msgstr "Selhalo nastavení hodnoty %d u ovládacího prvku %d na zařízení „%s“."
#, c-format
msgid "Failed to get current input on device '%s'. May be it is a radio device"
msgstr ""
-"Nezdařilo se získání aktuálního vstupu na zařízení \"%s\". Možná se jedná o "
+"Selhalo získání aktuálního vstupu na zařízení „%s“. Možná se jedná o "
"radiopřijímač."
#, c-format
msgid ""
"Failed to get current output on device '%s'. May be it is a radio device"
msgstr ""
-"Nezdařilo se získání aktuálního výstupu na zařízení \"%s\". Možná se jedná o "
+"Selhalo získání aktuálního výstupu na zařízení „%s“. Možná se jedná o "
"radiopřijímač"
#, c-format
msgid "Failed to set output %d on device %s."
-msgstr "Nezdařilo se nastavení výstupu %d na zařízení %s."
+msgstr "Selhalo nastavení výstupu %d na zařízení %s."
msgid "Changing resolution at runtime is not yet supported."
-msgstr "Změna rozlišení za běhu doposud není podporována."
+msgstr "Změna rozlišení za běhu zatím není podporována."
msgid "Cannot operate without a clock"
msgstr "Není možné fungovat bez hodin"
-
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Získána neočekávaná velikost snímku %u namísto %u."
-
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Nezdařil se pokus o získání videosnímků ze zařízení \"%s\"."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Selhání po %d pokusech. Zařízení %s. Systémová chyba: %s"
-
-#~ msgid "Bass"
-#~ msgstr "Basy"
-
-#~ msgid "Treble"
-#~ msgstr "Výšky"
-
-#~ msgid "Synth"
-#~ msgstr "Syntezátor"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Speaker"
-#~ msgstr "Reproduktor"
-
-#~ msgid "Line-in"
-#~ msgstr "Linkový vstup"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Mixer"
-#~ msgstr "Směšovač"
-
-#~ msgid "PCM-2"
-#~ msgstr "PCM 2"
-
-#~ msgid "Record"
-#~ msgstr "Nahrávání"
-
-#~ msgid "In-gain"
-#~ msgstr "Vstupní zesílení"
-
-#~ msgid "Out-gain"
-#~ msgstr "Výstupní zesílení"
-
-#~ msgid "Line-1"
-#~ msgstr "Linka 1"
-
-#~ msgid "Line-2"
-#~ msgstr "Linka 2"
-
-#~ msgid "Line-3"
-#~ msgstr "Linka 3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Digitální 1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Digitální 2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Digitální 3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Telefonní vstup"
-
-#~ msgid "Phone-out"
-#~ msgstr "Telefonní výstup"
-
-#~ msgid "Video"
-#~ msgstr "Video"
-
-#~ msgid "Radio"
-#~ msgstr "Rádio"
-
-#~ msgid "Could not open audio device for mixer control handling."
-#~ msgstr ""
-#~ "Nezdařilo se otevření zvukového zařízení pro obsluhu ovládání směšovače."
-
-#~ msgid ""
-#~ "Could not open audio device for mixer control handling. This version of "
-#~ "the Open Sound System is not supported by this element."
-#~ msgstr ""
-#~ "Nezdařilo se otevření zvukového zařízení k obsluze ovládání směšovače. "
-#~ "Tato verze Open Sound System není příslušným prvkem podporována."
-
-#~ msgid "Master"
-#~ msgstr "Master"
-
-#~ msgid "Front"
-#~ msgstr "Přední"
-
-#~ msgid "Rear"
-#~ msgstr "Zadní"
-
-#~ msgid "Headphones"
-#~ msgstr "Sluchátka"
-
-#~ msgid "Center"
-#~ msgstr "Středový"
-
-#~ msgid "LFE"
-#~ msgstr "LFE"
-
-#~ msgid "Surround"
-#~ msgstr "Prostorový zvuk"
-
-#~ msgid "Side"
-#~ msgstr "Boční"
-
-#~ msgid "AUX Out"
-#~ msgstr "Výstup AUX"
-
-#~ msgid "3D Depth"
-#~ msgstr "Hloubka prostorového zvuku"
-
-#~ msgid "3D Center"
-#~ msgstr "Střed prostorového zvuku"
-
-#~ msgid "3D Enhance"
-#~ msgstr "Prostorové rozšíření"
-
-#~ msgid "Telephone"
-#~ msgstr "Telefon"
-
-#~ msgid "Video In"
-#~ msgstr "Vstup videa"
-
-#~ msgid "AUX In"
-#~ msgstr "Vstup AUX"
-
-#~ msgid "Record Gain"
-#~ msgstr "Zesílení záznamu"
-
-#~ msgid "Output Gain"
-#~ msgstr "Výstupní zesílení"
-
-#~ msgid "Microphone Boost"
-#~ msgstr "Zesílení mikrofonu"
-
-#~ msgid "Diagnostic"
-#~ msgstr "Diagnostika"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Zesílení basů"
-
-#~ msgid "Playback Ports"
-#~ msgstr "Porty přehrávání"
-
-#~ msgid "Input"
-#~ msgstr "Vstup"
-
-#~ msgid "Monitor Source"
-#~ msgstr "Zdroj monitoru"
-
-#~ msgid "Keyboard Beep"
-#~ msgstr "Zvukové znamení klávesnice"
-
-#~ msgid "Simulate Stereo"
-#~ msgstr "Napodobit stereo"
-
-#~ msgid "Stereo"
-#~ msgstr "Stereo"
-
-#~ msgid "Surround Sound"
-#~ msgstr "Prostorový zvuk"
-
-#~ msgid "Microphone Gain"
-#~ msgstr "Zesílení mikrofonu"
-
-#~ msgid "Speaker Source"
-#~ msgstr "Zdroj reproduktoru"
-
-#~ msgid "Microphone Source"
-#~ msgstr "Zdroj mikrofonu"
-
-#~ msgid "Jack"
-#~ msgstr "Jack"
-
-#~ msgid "Center / LFE"
-#~ msgstr "Středový / LFE"
-
-#~ msgid "Stereo Mix"
-#~ msgstr "Směšovač stereo"
-
-#~ msgid "Mono Mix"
-#~ msgstr "Směšovač mono"
-
-#~ msgid "Input Mix"
-#~ msgstr "Směšovač vstupu"
-
-#~ msgid "Microphone 1"
-#~ msgstr "Mikrofon 1"
-
-#~ msgid "Microphone 2"
-#~ msgstr "Mikrofon 2"
-
-#~ msgid "Digital Out"
-#~ msgstr "Digitální výstup"
-
-#~ msgid "Digital In"
-#~ msgstr "Digitální vstup"
-
-#~ msgid "HDMI"
-#~ msgstr "HDMI"
-
-#~ msgid "Modem"
-#~ msgstr "Modem"
-
-#~ msgid "Handset"
-#~ msgstr "Telefonní sluchátko"
-
-#~ msgid "Other"
-#~ msgstr "Jiné"
-
-#~ msgid "None"
-#~ msgstr "Žádné"
-
-#~ msgid "On"
-#~ msgstr "Zapnuto"
-
-#~ msgid "Off"
-#~ msgstr "Vypnuto"
-
-#~ msgid "Mute"
-#~ msgstr "Ztlumit"
-
-#~ msgid "Fast"
-#~ msgstr "Rychlé"
-
-#~ msgid "Very Low"
-#~ msgstr "Velmi nízké"
-
-#~ msgid "Low"
-#~ msgstr "Nízké"
-
-#~ msgid "Medium"
-#~ msgstr "Střední"
-
-#~ msgid "High"
-#~ msgstr "Vysoké"
-
-#~ msgid "Very High"
-#~ msgstr "Velmi vysoké"
-
-#~ msgid "Production"
-#~ msgstr "Výroba"
-
-#~ msgid "Front Panel Microphone"
-#~ msgstr "Mikrofon na předním panelu"
-
-#~ msgid "Front Panel Line In"
-#~ msgstr "Linkový vstup na předním panelu"
-
-#~ msgid "Front Panel Headphones"
-#~ msgstr "Sluchátka na předním panelu"
-
-#~ msgid "Front Panel Line Out"
-#~ msgstr "Linkový výstup na předním panelu"
-
-#~ msgid "Green Connector"
-#~ msgstr "Zelený konektor"
-
-#~ msgid "Pink Connector"
-#~ msgstr "Růžový konektor"
-
-#~ msgid "Blue Connector"
-#~ msgstr "Modrý konektor"
-
-#~ msgid "White Connector"
-#~ msgstr "Bílý konektor"
-
-#~ msgid "Black Connector"
-#~ msgstr "Černý konektor"
-
-#~ msgid "Gray Connector"
-#~ msgstr "Šedý konektor"
-
-#~ msgid "Orange Connector"
-#~ msgstr "Oranžový konektor"
-
-#~ msgid "Red Connector"
-#~ msgstr "Červený konektor"
-
-#~ msgid "Yellow Connector"
-#~ msgstr "Žlutý konektor"
-
-#~ msgid "Green Front Panel Connector"
-#~ msgstr "Zelený konektor na předním panelu"
-
-#~ msgid "Pink Front Panel Connector"
-#~ msgstr "Růžový konektor na předním panelu"
-
-#~ msgid "Blue Front Panel Connector"
-#~ msgstr "Modrý konektor na předním panelu"
-
-#~ msgid "White Front Panel Connector"
-#~ msgstr "Bílý konektor na předním panelu"
-
-#~ msgid "Black Front Panel Connector"
-#~ msgstr "Černý konektor na předním panelu"
-
-#~ msgid "Gray Front Panel Connector"
-#~ msgstr "Šedý konektor na předním panelu"
-
-#~ msgid "Orange Front Panel Connector"
-#~ msgstr "Oranžový konektor na předním panelu"
-
-#~ msgid "Red Front Panel Connector"
-#~ msgstr "Červený konektor na předním panelu"
-
-#~ msgid "Yellow Front Panel Connector"
-#~ msgstr "Žlutý konektor na předním panelu"
-
-#~ msgid "Spread Output"
-#~ msgstr "Rozložený výstup"
-
-#~ msgid "Downmix"
-#~ msgstr "Snížení počtu kanálů"
-
-#~ msgid "Virtual Mixer Input"
-#~ msgstr "Vstup virtuálního směšovače"
-
-#~ msgid "Virtual Mixer Output"
-#~ msgstr "Výstup virtuálního směšovače"
-
-#~ msgid "Virtual Mixer Channels"
-#~ msgstr "Kanály virtuálního směšovače"
-
-#~ msgid "%s %d Function"
-#~ msgstr "%s %d (funkce)"
-
-#~ msgid "%s Function"
-#~ msgstr "%s (funkce)"
-
-#~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Chyba při čtení %d bajtů na zařízení \"%s\"."
-
-#~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Nezdařilo se zařazení vyrovnávací paměti na zařízení \"%s\"."
-
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Nezdařilo se navázání spojení se zvukovým serverem"
-
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Nezdařil se dotaz na schopnosti zvukového serveru"
diff --git a/po/da.gmo b/po/da.gmo
index 91578be5..ef4448da 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 273f4ed3..461f3baf 100644
--- a/po/da.po
+++ b/po/da.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-12-13 23:54+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index 1454e870..c17e166b 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 3480c1c5..c8ec9c75 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-11-28 19:56+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
diff --git a/po/el.gmo b/po/el.gmo
index 86d72b85..9f0dca06 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index a83d5d2b..b1523944 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-05-05 19:05+0100\n"
"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5dfbddef..ca191493 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index b04efc14..312cd3ed 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: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2004-04-26 10:41-0400\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
"Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index ed04bf69..cee0bab6 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 32a7ac8b..68c3b29d 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-06-04 21:48+0100\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo
index 7c134f3a..7bc6db93 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index eff8a9de..c7195875 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-02-12 18:30+0100\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index a45ff0b8..880a137f 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 96a11b35..a15b2b9f 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-0.10.18.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-03-25 12:37+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index 8399da5f..5af02d0f 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 25f3760f..db8456ce 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-11-17 23:03+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 2e15909d..69814da1 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 3080f768..081aab2d 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-04-28 09:22+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index c0fac628..618d5619 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 66e175bb..a4b86eb5 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-12-15 03:46+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index 650f872e..fb1c0453 100644
--- a/po/gst-plugins-good-1.0.pot
+++ b/po/gst-plugins-good-1.0.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good 1.1.4\n"
+"Project-Id-Version: gst-plugins-good 1.1.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -66,7 +66,7 @@ msgstr ""
msgid "Server sent bad data."
msgstr ""
-#: gst/avi/gstavidemux.c:5372
+#: gst/avi/gstavidemux.c:5382
msgid "Internal data stream error."
msgstr ""
@@ -74,51 +74,51 @@ msgstr ""
msgid "No or invalid input audio, AVI stream will be corrupt."
msgstr ""
-#: gst/isomp4/qtdemux.c:559 gst/isomp4/qtdemux.c:563
+#: gst/isomp4/qtdemux.c:565 gst/isomp4/qtdemux.c:569
msgid "This file contains no playable streams."
msgstr ""
-#: gst/isomp4/qtdemux.c:609 gst/isomp4/qtdemux.c:4564
-#: gst/isomp4/qtdemux.c:4630 gst/isomp4/qtdemux.c:4815
+#: gst/isomp4/qtdemux.c:615 gst/isomp4/qtdemux.c:4596
+#: gst/isomp4/qtdemux.c:4662 gst/isomp4/qtdemux.c:4847
msgid "This file is invalid and cannot be played."
msgstr ""
-#: gst/isomp4/qtdemux.c:2251
+#: gst/isomp4/qtdemux.c:2276
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr ""
-#: gst/isomp4/qtdemux.c:2816 gst/isomp4/qtdemux.c:2892
-#: gst/isomp4/qtdemux.c:2935 gst/isomp4/qtdemux.c:5449
-#: gst/isomp4/qtdemux.c:5456 gst/isomp4/qtdemux.c:6098
-#: gst/isomp4/qtdemux.c:6534 gst/isomp4/qtdemux.c:6541
-#: gst/isomp4/qtdemux.c:8344
+#: gst/isomp4/qtdemux.c:2841 gst/isomp4/qtdemux.c:2917
+#: gst/isomp4/qtdemux.c:2960 gst/isomp4/qtdemux.c:5513
+#: gst/isomp4/qtdemux.c:5520 gst/isomp4/qtdemux.c:6162
+#: gst/isomp4/qtdemux.c:6598 gst/isomp4/qtdemux.c:6605
+#: gst/isomp4/qtdemux.c:8409
msgid "This file is corrupt and cannot be played."
msgstr ""
-#: gst/isomp4/qtdemux.c:3026
+#: gst/isomp4/qtdemux.c:3051
msgid "Invalid atom size."
msgstr ""
-#: gst/isomp4/qtdemux.c:3094
+#: gst/isomp4/qtdemux.c:3119
msgid "This file is incomplete and cannot be played."
msgstr ""
-#: gst/isomp4/qtdemux.c:7197
+#: gst/isomp4/qtdemux.c:7261
msgid "The video in this file might not play correctly."
msgstr ""
-#: gst/isomp4/qtdemux.c:8381
+#: gst/isomp4/qtdemux.c:8446
#, c-format
msgid "This file contains too many streams. Only playing first %d"
msgstr ""
-#: gst/rtsp/gstrtspsrc.c:5750
+#: gst/rtsp/gstrtspsrc.c:5755
msgid ""
"No supported stream was found. You might need to install a GStreamer RTSP "
"extension plugin for Real media streams."
msgstr ""
-#: gst/rtsp/gstrtspsrc.c:5755
+#: gst/rtsp/gstrtspsrc.c:5760
msgid ""
"No supported stream was found. You might need to allow more transport "
"protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -252,7 +252,7 @@ msgstr ""
msgid "AUX 2 Out"
msgstr ""
-#: sys/v4l2/gstv4l2bufferpool.c:1136
+#: sys/v4l2/gstv4l2bufferpool.c:1151
#, c-format
msgid "Error reading %d bytes from device '%s'."
msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 5234a3b2..e346405e 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 8e6b588c..ccc502c7 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-04-16 03:04+0200\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index aa28b338..cb3ae640 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index dbe77889..5a96f394 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-11-30 15:05+0100\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index 50e66c4f..bf422c36 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index ed05a240..cc0ad115 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-02-26 18:09+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.gmo b/po/it.gmo
index 5e97acac..0acb1144 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index ab7758ba..e9d84ed8 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-10-25 10:11+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index ad0360c5..022d9627 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 9ab7a15e..b20bf34c 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-12-22 20:13+0900\n"
"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index 8bae41a3..2488dc1b 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 1faea0ec..e134cdc8 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.23.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-07-16 19:34+0300\n"
"Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/lv.gmo b/po/lv.gmo
index 7507355e..aea90a52 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 4383f9c9..ec721d1d 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-09-02 11:23-0000\n"
"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
diff --git a/po/mt.gmo b/po/mt.gmo
index 0f4d52e0..b9cf43f7 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index 13c2df36..c1f67459 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-0.10.10.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2008-10-26 19:09+0100\n"
"Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
"Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index 0e07cbbb..bdbb43c6 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index b094d3f4..d001e47d 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2012-12-21 22:13+0100\n"
"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index 2d92300a..d934e7fe 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index f2246398..bcd35565 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,13 +1,13 @@
-# translation of gst-plugins-good-1.0.3.nl.po to Dutch
+# translation of gst-plugins-good-1.1.4.nl.po to Dutch
# This file is put in the public domain.
#
-# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012.
+# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 1.1.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
-"PO-Revision-Date: 2012-11-29 22:30+0100\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
+"PO-Revision-Date: 2013-09-15 13:31+0200\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
@@ -18,7 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
msgid "Jack server not found"
-msgstr ""
+msgstr "Jack-server niet gevonden"
msgid "Failed to decode JPEG image"
msgstr "Kan de JPEG-afbeelding niet decoderen"
@@ -68,7 +68,7 @@ msgid "This file is invalid and cannot be played."
msgstr "Dit bestand is ongeldig en kan niet afgespeeld worden."
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
-msgstr ""
+msgstr "Kan stream niet afspelen omdat het versleuteld is met PlayReady DRM."
msgid "This file is corrupt and cannot be played."
msgstr "Dit bestand is beschadigd en kan niet afgespeeld worden."
@@ -173,13 +173,11 @@ msgstr "AUX 1-in"
msgid "AUX 2 In"
msgstr "AUX 2-in"
-#, fuzzy
msgid "Codec Loopback"
-msgstr "Loopback"
+msgstr "Codec-loopback"
-#, fuzzy
msgid "SunVTS Loopback"
-msgstr "Loopback"
+msgstr "SunVTS-loopback"
msgid "Volume"
msgstr "Volume"
diff --git a/po/or.gmo b/po/or.gmo
index 2b37c5b4..2e16035c 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 09b56765..f5e7c04f 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: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2004-09-27 13:32+0530\n"
"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
"Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 07d8fe21..998f34e1 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 21c39b2f..bce78bc4 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,13 @@
# Polish translation for gst-plugins-good.
# This file is distributed under the same license as the gst-plugins-good package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 1.1.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
-"PO-Revision-Date: 2012-11-28 19:27+0100\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
+"PO-Revision-Date: 2013-09-15 11:26+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
msgid "Jack server not found"
-msgstr ""
+msgstr "Nie znaleziono serwera Jack"
msgid "Failed to decode JPEG image"
msgstr "Nie udało się zdekodować obrazu JPEG"
@@ -65,6 +65,7 @@ msgstr "Ten plik jest błędny i nie może być odtworzony."
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr ""
+"Nie można odtwarzać strumienia, ponieważ jest zaszyfrowany DRM-em PlayReady."
msgid "This file is corrupt and cannot be played."
msgstr "Ten plik jest uszkodzony i nie może być odtworzony."
@@ -148,35 +149,31 @@ msgid "Could not open audio device for recording."
msgstr "Nie udało się otworzyć urządzenia dźwiękowego do nagrywania."
msgid "Record Source"
-msgstr ""
+msgstr "Źródło nagrywania"
msgid "Microphone"
-msgstr ""
+msgstr "Mikrofon"
-#, fuzzy
msgid "Line In"
-msgstr "Wyjście linii"
+msgstr "Wejście linii"
msgid "Internal CD"
-msgstr ""
+msgstr "Wewnętrzny CD"
-#, fuzzy
msgid "SPDIF In"
-msgstr "Wyjście SPDIF"
+msgstr "Wejście SPDIF"
-#, fuzzy
msgid "AUX 1 In"
-msgstr "Wyjście AUX 1"
+msgstr "Wejście AUX 1"
-#, fuzzy
msgid "AUX 2 In"
-msgstr "Wyjście AUX 2"
+msgstr "Wejście AUX 2"
msgid "Codec Loopback"
-msgstr ""
+msgstr "Pętla zwrotna kodeka"
msgid "SunVTS Loopback"
-msgstr ""
+msgstr "Pętla zwrotna SunVTS"
msgid "Volume"
msgstr "Głośność"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index ac3cf098..69efad69 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 74e2b862..71c48c30 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2013-08-21 00:12-0300\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo
index 93ed1cb4..058340e1 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 78d12cda..ed237390 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.23.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-08-16 03:22+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index 87cf32a9..e1dd8258 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index c0d7493a..831981e8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2013-03-09 17:09+0200\n"
"Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index dd6fcfa1..f55cb523 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 5f6b9b2e..e0c10896 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2010-11-08 15:48+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index 904582d4..56d06c2e 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index a977f60a..f50839e9 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2013-01-05 10:03+0100\n"
"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index b005f70d..9fa0b2d9 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index daf38b90..cb60e08a 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins 0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2004-08-07 20:29+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index f172611f..715e451a 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 14f1cd24..39005467 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-12-04 16:44+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnu@prevod.org>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 85a97a71..9dc8f1d7 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 948950f1..40c55c02 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2011-01-09 19:36+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index f564b515..7f47bbf3 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 913cbf53..536b77b4 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2013-03-10 13:05+0200\n"
"Last-Translator: Server Acim <serveracim@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 8eb981f4..4be2e073 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 67975993..4fc97b03 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,10 +6,10 @@
# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 1.1.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
-"PO-Revision-Date: 2013-03-09 22:52+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
+"PO-Revision-Date: 2013-09-14 22:23+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
@@ -20,7 +20,7 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Jack server not found"
-msgstr ""
+msgstr "Не знайдено сервера Jack"
msgid "Failed to decode JPEG image"
msgstr "Помилка при декодуванні зображення JPEG"
@@ -73,6 +73,8 @@ msgstr "Файл є некоректним, його не можна відтв
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr ""
+"Відтворення потоку даних неможливе, оскільки дані зашифровано за допомогою "
+"PlayReady DRM."
msgid "This file is corrupt and cannot be played."
msgstr "Файл пошкоджено, його не можна відтворити."
@@ -176,13 +178,11 @@ msgstr "Вхід AUX 1"
msgid "AUX 2 In"
msgstr "Вхід AUX 2"
-#, fuzzy
msgid "Codec Loopback"
-msgstr "Заглушка"
+msgstr "Петля кодека"
-#, fuzzy
msgid "SunVTS Loopback"
-msgstr "Заглушка"
+msgstr "Петля SunVTS"
msgid "Volume"
msgstr "Гучність"
diff --git a/po/vi.gmo b/po/vi.gmo
index cd9d7597..136f160f 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 056ecf6d..5584843e 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,15 +1,15 @@
# Vietnamese Translation for GST Plugins Good.
-# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-good package.
# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good-1.0.3\n"
+"Project-Id-Version: gst-plugins-good-1.1.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
-"PO-Revision-Date: 2012-12-02 08:06+0700\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
+"PO-Revision-Date: 2013-09-16 14:36+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
@@ -20,9 +20,11 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.8\n"
"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
msgid "Jack server not found"
-msgstr ""
+msgstr "Không tìm thấy máy phục vụ Jack"
msgid "Failed to decode JPEG image"
msgstr "Gặp lỗi khi giải mã ảnh JPEG"
@@ -52,7 +54,7 @@ msgstr "Cài đặt kết nối an toàn gặp lỗi."
msgid ""
"A network error occured, or the server closed the connection unexpectedly."
-msgstr "Một lỗi mạng đã xảy ra, hoặc máy chủ đóng kết nối bất ngờ."
+msgstr "Có lỗi mạng đã xảy ra, hoặc máy chủ đóng kết nối bất ngờ."
msgid "Server sent bad data."
msgstr "Máy chủ gửi dữ liệu sai."
@@ -63,7 +65,7 @@ msgstr "Lỗi luồng dữ liệu nội bộ."
msgid "No or invalid input audio, AVI stream will be corrupt."
msgstr ""
"Chưa có dữ liệu âm thanh nhập, hoặc dữ liệu âm thanh nhập không hợp lệ. Vì "
-"thế luồng AVI hư."
+"thế luồng AVI sẽ hỏng."
msgid "This file contains no playable streams."
msgstr "Tập tin này không chứa luồng có thể phát."
@@ -72,7 +74,7 @@ msgid "This file is invalid and cannot be played."
msgstr "Tập tin này không hợp lệ nên không thể phát được."
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
-msgstr ""
+msgstr "Không thể phát luồng dữ liệu bởi vì nó được mã hóa bằng PlayReady DRM."
msgid "This file is corrupt and cannot be played."
msgstr "Tập tin này bị hỏng nên không thể phát."
@@ -102,8 +104,8 @@ msgid ""
"protocols or may otherwise be missing the right GStreamer RTSP extension "
"plugin."
msgstr ""
-"Không tìm thấy luồng được hỗ trợ. Người dùng có thể cần cho phép thêm giao "
-"thức truyền, hoặc chưa cài đặt phần bổ sung RTSP Gstreamer đúng."
+"Không tìm thấy luồng dữ liệu được hỗ trợ. Người dùng có thể cần cho phép "
+"thêm giao thức truyền, hoặc chưa cài đặt phần bổ sung RTSP Gstreamer đúng."
msgid "Internal data flow error."
msgstr "Lỗi luồng dữ liệu nội bộ."
@@ -119,8 +121,8 @@ msgid ""
"Could not open audio device for playback. You don't have permission to open "
"the device."
msgstr ""
-"Không thể mở thiết bị âm thanh để phát lại. Bạn không có quyền mở thiết bị "
-"này."
+"Không thể mở thiết bị âm thanh để phát lại. Bạn không có đủ thẩm quyền để mở "
+"thiết bị này."
msgid "Could not open audio device for playback."
msgstr "Không thể mở thiết bị âm thanh để phát lại."
@@ -160,7 +162,7 @@ msgid "Microphone"
msgstr "Micrô"
msgid "Line In"
-msgstr "Dây Vào"
+msgstr "Đầu vào"
msgid "Internal CD"
msgstr "CD ở trong"
@@ -174,13 +176,11 @@ msgstr "AUX 1 Vào"
msgid "AUX 2 In"
msgstr "AUX 2 Vào"
-#, fuzzy
msgid "Codec Loopback"
-msgstr "Mạch nội bộ"
+msgstr "Vòng ngược Codec"
-#, fuzzy
msgid "SunVTS Loopback"
-msgstr "Mạch nội bộ"
+msgstr "Vòng ngược SunVTS"
msgid "Volume"
msgstr "Âm lượng"
@@ -198,7 +198,7 @@ msgid "Headphone"
msgstr "Tai nghe"
msgid "Line Out"
-msgstr "Dây Ra"
+msgstr "Đầu ra"
msgid "SPDIF Out"
msgstr "SPDIF Ra"
@@ -277,7 +277,7 @@ msgstr "Gặp lỗi khi lấy đầu vào radio trên thiết bị “%s”."
#, c-format
msgid "Failed to set input %d on device %s."
-msgstr "Lỗi đặt dữ liệu nhập %d vào thiết bị “%s”."
+msgstr "Gặp lỗi khi đặt dữ liệu nhập %d vào thiết bị “%s”."
#, c-format
msgid "Failed to change mute state for device '%s'."
@@ -321,7 +321,7 @@ msgstr "Không thể mở thiết bị “%s” để đọc và ghi."
#, c-format
msgid "Device '%s' is not a capture device."
-msgstr "Thiết bị “%s” không phải là thiết bị bắt gì."
+msgstr "Thiết bị “%s” không phải là thiết bị bắt hình/tiếng."
#, c-format
msgid "Device '%s' is not a output device."
@@ -329,24 +329,27 @@ msgstr "Thiết bị “%s” không phải là thiết bị xuất ra."
#, c-format
msgid "Failed to set norm for device '%s'."
-msgstr "Lỗi đặt chỉ tiêu cho thiết bị “%s”."
+msgstr "Gặp lỗi khi đặt chỉ tiêu cho thiết bị “%s”."
#, c-format
msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Lỗi lấy tần số hiện thời của thiết bị điều hưởng cho thiết bị “%s”."
+msgstr ""
+"Gặp lỗi khi lấy tần số hiện thời của thiết bị điều chỉnh cộng hưởng cho "
+"thiết bị “%s”."
#, c-format
msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
msgstr ""
-"Lỗi đặt tần số hiện thời của thiết bị điều hưởng cho thiết bị “%s” là %lu Hz."
+"Gặp lỗi khi đặt tần số hiện thời của thiết bị điều chỉnh cộng hưởng cho "
+"thiết bị “%s” là %lu Hz."
#, c-format
msgid "Failed to get signal strength for device '%s'."
-msgstr "Lỗi lấy biên độ tín hiệu cho thiết bị “%s”."
+msgstr "Gặp lỗi khi lấy biên độ tín hiệu cho thiết bị “%s”."
#, c-format
msgid "Failed to get value for control %d on device '%s'."
-msgstr "Lỗi lấy giá trị của bộ điều khiển %d trên thiết bị “%s”."
+msgstr "Gặp lỗi khi lấy giá trị của bộ điều khiển %d trên thiết bị “%s”."
#, c-format
msgid "Failed to set value %d for control %d on device '%s'."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 48233dc3..3ed27093 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 3059f97e..b9eef162 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good 0.10.16.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2009-11-13 22:20+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index 551a2fab..0049d528 100644
--- a/po/zh_HK.gmo
+++ b/po/zh_HK.gmo
Binary files differ
diff --git a/po/zh_HK.po b/po/zh_HK.po
index fec7e04f..1e2572ea 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2006-08-29 01:08+0800\n"
"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 55f1ea74..349d26cd 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 80d84d1e..dbb9719b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-08-28 12:49+0200\n"
+"POT-Creation-Date: 2013-09-19 10:18+0200\n"
"PO-Revision-Date: 2006-08-29 01:08+0800\n"
"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 3cead7c6..91748c5c 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index 82b5edcf..a6c922d4 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in
index e4eb0fe7..cd237a31 100644
--- a/sys/oss/Makefile.in
+++ b/sys/oss/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in
index 3a23bacf..de406abb 100644
--- a/sys/oss4/Makefile.in
+++ b/sys/oss4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in
index 9dc6d681..757ddec8 100644
--- a/sys/osxaudio/Makefile.in
+++ b/sys/osxaudio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in
index fc7deb14..9bcc0f69 100644
--- a/sys/osxvideo/Makefile.in
+++ b/sys/osxvideo/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in
index e31423bc..d60562a9 100644
--- a/sys/sunaudio/Makefile.in
+++ b/sys/sunaudio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/sunaudio/gstsunaudio.c b/sys/sunaudio/gstsunaudio.c
index 433fba24..633c1f01 100644
--- a/sys/sunaudio/gstsunaudio.c
+++ b/sys/sunaudio/gstsunaudio.c
@@ -48,7 +48,6 @@ plugin_init (GstPlugin * plugin)
GST_DEBUG_CATEGORY_INIT (sunaudio_debug, "sunaudio", 0, "sunaudio elements");
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in
index 23374ea0..ca18d7af 100644
--- a/sys/v4l2/Makefile.in
+++ b/sys/v4l2/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
index 12b247fb..a61d6ab7 100644
--- a/sys/v4l2/gstv4l2.c
+++ b/sys/v4l2/gstv4l2.c
@@ -61,7 +61,6 @@ plugin_init (GstPlugin * plugin)
return FALSE;
#ifdef ENABLE_NLS
- setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif /* ENABLE_NLS */
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 1e74fc75..0bc88ca7 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -63,7 +63,8 @@ GType
gst_v4l2_meta_api_get_type (void)
{
static volatile GType type;
- static const gchar *tags[] = { "memory", NULL };
+ static const gchar *tags[] =
+ { GST_META_TAG_VIDEO_STR, GST_META_TAG_MEMORY_STR, NULL };
if (g_once_init_enter (&type)) {
GType _type = gst_meta_api_type_register ("GstV4l2MetaAPI", tags);
@@ -247,8 +248,22 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
offs = 0;
for (i = 0; i < n_planes; i++) {
offset[i] = offs;
- stride[i] =
- GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i, obj->bytesperline);
+
+ switch (info->finfo->format) {
+ case GST_VIDEO_FORMAT_NV12:
+ case GST_VIDEO_FORMAT_NV21:
+ case GST_VIDEO_FORMAT_NV16:
+ case GST_VIDEO_FORMAT_NV24:
+ stride[i] =
+ (i == 0 ? 1 : 2) * GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo,
+ i, obj->bytesperline);
+ break;
+ default:
+ stride[i] =
+ GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i,
+ obj->bytesperline);
+ break;
+ }
offs +=
stride[i] * GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, height);
@@ -432,7 +447,7 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config)
pool->copy_threshold = copy_threshold;
if (obj->mode == GST_V4L2_IO_DMABUF)
- allocator = gst_dmabuf_allocator_obtain ();
+ allocator = gst_dmabuf_allocator_new ();
if (pool->allocator)
gst_object_unref (pool->allocator);
diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in
index 83f475ab..1c4ac63c 100644
--- a/sys/waveform/Makefile.in
+++ b/sys/waveform/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index f9615fce..f9b3e1f4 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 88dcb579..12974797 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index b9d9cec4..cee4c1bd 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -319,6 +319,9 @@ elements_videocrop_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(CFLA
elements_videofilter_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_videofilter_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
+elements_rtpjitterbuffer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
+elements_rtpjitterbuffer_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
+
# FIXME: configure should check for gdk-pixbuf not gtk
# only need video.h header, not the lib
elements_gdkpixbufsink_CFLAGS = \
@@ -352,7 +355,7 @@ orc/deinterlace.c: $(top_srcdir)/gst/deinterlace/tvtime.orc
$(MKDIR_P) orc/
$(ORCC) --test -o $@ $<
-orc/videomixer.c: $(top_srcdir)/gst/videomixer/blendorc.orc
+orc/videomixer.c: $(top_srcdir)/gst/videomixer/videomixerorc.orc
$(MKDIR_P) orc/
$(ORCC) --test -o $@ $<
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index b41b5e1b..d1b0bb22 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -524,9 +524,14 @@ elements_rtpbin_buffer_list_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c
-elements_rtpjitterbuffer_OBJECTS = elements/rtpjitterbuffer.$(OBJEXT)
-elements_rtpjitterbuffer_LDADD = $(LDADD)
-elements_rtpjitterbuffer_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_rtpjitterbuffer_OBJECTS = \
+ elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT)
+elements_rtpjitterbuffer_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_2)
+elements_rtpjitterbuffer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_rtpjitterbuffer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
elements_rtpmux_SOURCES = elements/rtpmux.c
elements_rtpmux_OBJECTS = elements/elements_rtpmux-rtpmux.$(OBJEXT)
elements_rtpmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -1536,6 +1541,8 @@ elements_videocrop_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) -lgstvideo-
elements_videocrop_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_videofilter_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_videofilter_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
+elements_rtpjitterbuffer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
+elements_rtpjitterbuffer_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
# FIXME: configure should check for gdk-pixbuf not gtk
# only need video.h header, not the lib
@@ -1929,12 +1936,12 @@ elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.$(OBJEXT): \
elements/rtpbin_buffer_list$(EXEEXT): $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_DEPENDENCIES) $(EXTRA_elements_rtpbin_buffer_list_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/rtpbin_buffer_list$(EXEEXT)
$(AM_V_CCLD)$(elements_rtpbin_buffer_list_LINK) $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_LDADD) $(LIBS)
-elements/rtpjitterbuffer.$(OBJEXT): elements/$(am__dirstamp) \
- elements/$(DEPDIR)/$(am__dirstamp)
+elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
elements/rtpjitterbuffer$(EXEEXT): $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_DEPENDENCIES) $(EXTRA_elements_rtpjitterbuffer_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/rtpjitterbuffer$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(elements_rtpjitterbuffer_LINK) $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_LDADD) $(LIBS)
elements/elements_rtpmux-rtpmux.$(OBJEXT): elements/$(am__dirstamp) \
elements/$(DEPDIR)/$(am__dirstamp)
@@ -2164,6 +2171,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rglimiter-rglimiter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rgvolume-rgvolume.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_spectrum-spectrum.Po@am__quote@
@@ -2186,7 +2194,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/mulawenc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtp-payloading.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpbin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpjitterbuffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/shapewipe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/udpsink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/vp8dec.Po@am__quote@
@@ -2616,6 +2623,20 @@ elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.obj: elements/rtpbin_buf
@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_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.obj `if test -f 'elements/rtpbin_buffer_list.c'; then $(CYGPATH_W) 'elements/rtpbin_buffer_list.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin_buffer_list.c'; fi`
+elements/elements_rtpjitterbuffer-rtpjitterbuffer.o: elements/rtpjitterbuffer.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpjitterbuffer_CFLAGS) $(CFLAGS) -MT elements/elements_rtpjitterbuffer-rtpjitterbuffer.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpjitterbuffer.c' object='elements/elements_rtpjitterbuffer-rtpjitterbuffer.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_rtpjitterbuffer_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c
+
+elements/elements_rtpjitterbuffer-rtpjitterbuffer.obj: elements/rtpjitterbuffer.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpjitterbuffer_CFLAGS) $(CFLAGS) -MT elements/elements_rtpjitterbuffer-rtpjitterbuffer.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpjitterbuffer.c' object='elements/elements_rtpjitterbuffer-rtpjitterbuffer.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_rtpjitterbuffer_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi`
+
elements/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/elements_rtpmux-rtpmux.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements/elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpmux-rtpmux.Tpo elements/$(DEPDIR)/elements_rtpmux-rtpmux.Po
@@ -3991,7 +4012,7 @@ orc/deinterlace.c: $(top_srcdir)/gst/deinterlace/tvtime.orc
$(MKDIR_P) orc/
$(ORCC) --test -o $@ $<
-orc/videomixer.c: $(top_srcdir)/gst/videomixer/blendorc.orc
+orc/videomixer.c: $(top_srcdir)/gst/videomixer/videomixerorc.orc
$(MKDIR_P) orc/
$(ORCC) --test -o $@ $<
diff --git a/tests/check/elements/rganalysis.c b/tests/check/elements/rganalysis.c
index ba2669ac..1f6f6ee5 100644
--- a/tests/check/elements/rganalysis.c
+++ b/tests/check/elements/rganalysis.c
@@ -320,11 +320,8 @@ poll_eos (GstElement * element)
gst_object_unref (bus);
}
-/* This also polls for EOS since the TAG message comes right before the end of
- * streams. */
-
static GstTagList *
-poll_tags (GstElement * element)
+poll_tags_only (GstElement * element)
{
GstBus *bus = gst_element_get_bus (element);
GstTagList *tag_list;
@@ -337,6 +334,17 @@ poll_tags (GstElement * element)
gst_message_unref (message);
gst_object_unref (bus);
+ return tag_list;
+}
+
+/* This also polls for EOS since the TAG message comes right before the end of
+ * streams. */
+
+static GstTagList *
+poll_tags_followed_by_eos (GstElement * element)
+{
+ GstTagList *tag_list = poll_tags_only (element);
+
poll_eos (element);
return tag_list;
@@ -738,7 +746,7 @@ GST_START_TEST (test_no_buffer_album_2)
push_buffer (test_buffer_square_float_mono (&accumulator, 44100, 512,
0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, -6.20);
/* Album is not finished yet: */
@@ -752,7 +760,7 @@ GST_START_TEST (test_no_buffer_album_2)
send_segment_event (element);
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_album_peak (tag_list, 0.25);
fail_unless_album_gain (tag_list, -6.20);
/* No track tags should be posted, as there was no data for it: */
@@ -839,7 +847,7 @@ GST_START_TEST (test_peak_float)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 512, -1.369, 0.0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.369);
gst_tag_list_unref (tag_list);
@@ -848,7 +856,7 @@ GST_START_TEST (test_peak_float)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 512, 0.0, -1.369));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.369);
gst_tag_list_unref (tag_list);
@@ -858,7 +866,7 @@ GST_START_TEST (test_peak_float)
send_segment_event (element);
push_buffer (test_buffer_const_float_mono (8000, 512, -1.369));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.369);
gst_tag_list_unref (tag_list);
@@ -880,7 +888,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 1 << 14, 0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -890,7 +898,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 1 << 14));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -900,7 +908,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 1 << 14));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -910,7 +918,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -1 << 14, 0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -920,7 +928,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -1 << 14));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -930,7 +938,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -1 << 14));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -945,7 +953,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 32767, 0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 32767. / 32768.);
gst_tag_list_unref (tag_list);
@@ -955,7 +963,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 32767));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 32767. / 32768.);
gst_tag_list_unref (tag_list);
@@ -965,7 +973,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 32767));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 32767. / 32768.);
gst_tag_list_unref (tag_list);
@@ -976,7 +984,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -32768, 0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
gst_tag_list_unref (tag_list);
@@ -986,7 +994,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -32768));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
gst_tag_list_unref (tag_list);
@@ -996,7 +1004,7 @@ GST_START_TEST (test_peak_int16_16)
send_segment_event (element);
push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -32768));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
gst_tag_list_unref (tag_list);
@@ -1018,7 +1026,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1028,7 +1036,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.0, 0.5));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
fail_unless_album_peak (tag_list, 1.0);
gst_tag_list_unref (tag_list);
@@ -1041,7 +1049,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.4, 0.4));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.4);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1051,7 +1059,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.45, 0.45));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.45);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1061,7 +1069,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.2, 0.2));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.2);
fail_unless_album_peak (tag_list, 0.45);
gst_tag_list_unref (tag_list);
@@ -1073,7 +1081,7 @@ GST_START_TEST (test_peak_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.1, 0.1));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.1);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1097,7 +1105,7 @@ GST_START_TEST (test_peak_track_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_mono (8000, 1024, 1.0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1107,7 +1115,7 @@ GST_START_TEST (test_peak_track_album)
send_segment_event (element);
push_buffer (test_buffer_const_float_mono (8000, 1024, 0.5));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
fail_unless_album_peak (tag_list, 0.5);
gst_tag_list_unref (tag_list);
@@ -1136,7 +1144,7 @@ GST_START_TEST (test_peak_album_abort_to_track)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 1.0);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1148,7 +1156,7 @@ GST_START_TEST (test_peak_album_abort_to_track)
send_segment_event (element);
push_buffer (test_buffer_const_float_stereo (8000, 1024, 0.0, 0.5));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
fail_if_album_tags (tag_list);
gst_tag_list_unref (tag_list);
@@ -1178,7 +1186,7 @@ GST_START_TEST (test_gain_album)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.75, 0.75));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.75);
fail_unless_track_gain (tag_list, -15.70);
fail_if_album_tags (tag_list);
@@ -1191,7 +1199,7 @@ GST_START_TEST (test_gain_album)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.5, 0.5));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.5);
fail_unless_track_gain (tag_list, -12.22);
fail_if_album_tags (tag_list);
@@ -1205,7 +1213,7 @@ GST_START_TEST (test_gain_album)
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, -6.20);
fail_unless_album_peak (tag_list, 0.75);
@@ -1243,8 +1251,13 @@ GST_START_TEST (test_forced)
for (i = 20; i--;)
push_buffer (test_buffer_const_float_stereo (44100, 512, 0.5, 0.5));
send_eos_event (element);
+
/* This fails if a tag message is generated: */
- poll_eos (element);
+ /* Same values as above */
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_gain (tag_list, 2.21);
+ fail_unless_track_peak (tag_list, 1.0);
+ gst_tag_list_unref (tag_list);
/* Now back to a track without tags. */
send_flush_events (element);
@@ -1253,7 +1266,7 @@ GST_START_TEST (test_forced)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100));
gst_tag_list_unref (tag_list);
@@ -1292,8 +1305,15 @@ GST_START_TEST (test_forced_separate)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.5, 0.5));
send_eos_event (element);
- /* This fails if a tag message is generated: */
- poll_eos (element);
+
+ /* Same values as above */
+ tag_list = poll_tags_only (element);
+ fail_unless_track_gain (tag_list, 2.21);
+ gst_tag_list_unref (tag_list);
+
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_peak (tag_list, 1.0);
+ gst_tag_list_unref (tag_list);
/* Now a track without tags. */
send_flush_events (element);
@@ -1303,7 +1323,7 @@ GST_START_TEST (test_forced_separate)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100));
fail_if_album_tags (tag_list);
@@ -1342,7 +1362,12 @@ GST_START_TEST (test_forced_after_data)
send_tag_event (element, tag_list);
send_eos_event (element);
- poll_eos (element);
+
+ /* Same values as above */
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_gain (tag_list, 2.21);
+ fail_unless_track_peak (tag_list, 1.0);
+ gst_tag_list_unref (tag_list);
send_flush_events (element);
send_segment_event (element);
@@ -1351,7 +1376,7 @@ GST_START_TEST (test_forced_after_data)
push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (8000));
gst_tag_list_unref (tag_list);
@@ -1388,8 +1413,12 @@ GST_START_TEST (test_forced_album)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.5, 0.5));
send_eos_event (element);
- /* This fails if a tag message is generated: */
- poll_eos (element);
+
+ /* Same values as above */
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_gain (tag_list, 2.21);
+ fail_unless_track_peak (tag_list, 1.0);
+ gst_tag_list_unref (tag_list);
/* Now an album without tags. */
g_object_set (element, "num-tracks", 2, NULL);
@@ -1401,7 +1430,7 @@ GST_START_TEST (test_forced_album)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100));
fail_if_album_tags (tag_list);
@@ -1415,7 +1444,7 @@ GST_START_TEST (test_forced_album)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100));
fail_unless_album_peak (tag_list, 0.25);
@@ -1452,7 +1481,13 @@ GST_START_TEST (test_forced_album_skip)
push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
0.25));
send_eos_event (element);
- poll_eos (element);
+
+ /* Same values as above */
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_gain (tag_list, 2.21);
+ fail_unless_track_peak (tag_list, 0.75);
+ gst_tag_list_unref (tag_list);
+
fail_unless_num_tracks (element, 1);
/* This track has no tags, but needs to be skipped anyways since we
@@ -1473,7 +1508,7 @@ GST_START_TEST (test_forced_album_skip)
push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (8000));
fail_if_album_tags (tag_list);
@@ -1501,7 +1536,7 @@ GST_START_TEST (test_forced_album_no_skip)
push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (8000));
fail_if_album_tags (tag_list);
@@ -1521,7 +1556,15 @@ GST_START_TEST (test_forced_album_no_skip)
for (i = 20; i--;)
push_buffer (test_buffer_const_float_stereo (8000, 512, 0.0, 0.0));
send_eos_event (element);
- tag_list = poll_tags (element);
+
+ /* the first batch from the tags */
+ tag_list = poll_tags_only (element);
+ fail_unless_track_peak (tag_list, 0.75);
+ fail_unless_track_gain (tag_list, 2.21);
+ gst_tag_list_unref (tag_list);
+
+ /* the second from the processing */
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.0);
fail_unless_track_gain (tag_list, SILENCE_GAIN);
/* Second track was just silence so the album peak equals the first
@@ -1555,7 +1598,7 @@ GST_START_TEST (test_forced_abort_album_no_skip)
push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (8000));
fail_if_album_tags (tag_list);
@@ -1578,7 +1621,11 @@ GST_START_TEST (test_forced_abort_album_no_skip)
for (i = 20; i--;)
push_buffer (test_buffer_const_float_stereo (8000, 512, 0.0, 0.0));
send_eos_event (element);
- poll_eos (element);
+
+ tag_list = poll_tags_followed_by_eos (element);
+ fail_unless_track_peak (tag_list, 0.75);
+ fail_unless_track_gain (tag_list, 2.21);
+ gst_tag_list_unref (tag_list);
cleanup_rganalysis (element);
}
@@ -1602,7 +1649,7 @@ GST_START_TEST (test_reference_level)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100));
fail_if_album_tags (tag_list);
@@ -1619,7 +1666,7 @@ GST_START_TEST (test_reference_level)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100) - 6.);
fail_if_album_tags (tag_list);
@@ -1635,7 +1682,7 @@ GST_START_TEST (test_reference_level)
push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
0.25, 0.25));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, get_expected_gain (44100) - 6.);
fail_unless_album_peak (tag_list, 0.25);
@@ -1682,7 +1729,7 @@ GST_START_TEST (test_all_formats)
push_buffer (test_buffer_square_int16_mono (&accumulator,
supported_rates[i].sample_rate, 16, 512, 1 << 13));
send_eos_event (element);
- tag_list = poll_tags (element);
+ tag_list = poll_tags_followed_by_eos (element);
fail_unless_track_peak (tag_list, 0.25);
fail_unless_track_gain (tag_list, supported_rates[i].gain);
gst_tag_list_unref (tag_list);
@@ -1715,7 +1762,7 @@ GST_END_TEST;
push_buffer (test_buffer_square_float_mono (&accumulator, \
sample_rate, 512, 0.25)); \
send_eos_event (element); \
- tag_list = poll_tags (element); \
+ tag_list = poll_tags_followed_by_eos (element); \
fail_unless_track_peak (tag_list, 0.25); \
fail_unless_track_gain (tag_list, \
get_expected_gain (sample_rate)); \
@@ -1743,7 +1790,7 @@ GST_END_TEST;
push_buffer (test_buffer_square_float_stereo (&accumulator, \
sample_rate, 512, 0.25, 0.25)); \
send_eos_event (element); \
- tag_list = poll_tags (element); \
+ tag_list = poll_tags_followed_by_eos (element); \
fail_unless_track_peak (tag_list, 0.25); \
fail_unless_track_gain (tag_list, \
get_expected_gain (sample_rate)); \
@@ -1772,7 +1819,7 @@ GST_END_TEST;
sample_rate, depth, 512, 1 << (13 + depth - 16))); \
\
send_eos_event (element); \
- tag_list = poll_tags (element); \
+ tag_list = poll_tags_followed_by_eos (element); \
fail_unless_track_peak (tag_list, 0.25); \
fail_unless_track_gain (tag_list, \
get_expected_gain (sample_rate)); \
@@ -1801,7 +1848,7 @@ GST_END_TEST;
sample_rate, depth, 512, 1 << (13 + depth - 16), \
1 << (13 + depth - 16))); \
send_eos_event (element); \
- tag_list = poll_tags (element); \
+ tag_list = poll_tags_followed_by_eos (element); \
fail_unless_track_peak (tag_list, 0.25); \
fail_unless_track_gain (tag_list, \
get_expected_gain (sample_rate)); \
@@ -1874,13 +1921,13 @@ rganalysis_suite (void)
tcase_add_test (tc_chain, test_gain_album);
- tcase_skip_broken_test (tc_chain, test_forced);
- tcase_skip_broken_test (tc_chain, test_forced_separate);
- tcase_skip_broken_test (tc_chain, test_forced_after_data);
- tcase_skip_broken_test (tc_chain, test_forced_album);
- tcase_skip_broken_test (tc_chain, test_forced_album_skip);
- tcase_skip_broken_test (tc_chain, test_forced_album_no_skip);
- tcase_skip_broken_test (tc_chain, test_forced_abort_album_no_skip);
+ tcase_add_test (tc_chain, test_forced);
+ tcase_add_test (tc_chain, test_forced_separate);
+ tcase_add_test (tc_chain, test_forced_after_data);
+ tcase_add_test (tc_chain, test_forced_album);
+ tcase_add_test (tc_chain, test_forced_album_skip);
+ tcase_add_test (tc_chain, test_forced_album_no_skip);
+ tcase_add_test (tc_chain, test_forced_abort_album_no_skip);
tcase_add_test (tc_chain, test_reference_level);
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c
index e5c1c8d8..32d785fd 100644
--- a/tests/check/elements/rtp-payloading.c
+++ b/tests/check/elements/rtp-payloading.c
@@ -651,6 +651,25 @@ GST_START_TEST (rtp_L16)
}
GST_END_TEST;
+
+static const guint8 rtp_L24_frame_data[] =
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static int rtp_L24_frame_data_size = 24;
+
+static int rtp_L24_frame_count = 1;
+
+GST_START_TEST (rtp_L24)
+{
+ rtp_pipeline_test (rtp_L24_frame_data, rtp_L24_frame_data_size,
+ rtp_L24_frame_count,
+ "audio/x-raw,format=S24BE,rate=1,channels=1,layout=(string)interleaved",
+ "rtpL24pay", "rtpL24depay", 0, 0, FALSE);
+}
+
+GST_END_TEST;
static const guint8 rtp_mp2t_frame_data[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -917,6 +936,7 @@ rtp_payloading_suite (void)
tcase_add_test (tc_chain, rtp_h264_list_gt_mtu);
tcase_add_test (tc_chain, rtp_h264_list_gt_mtu_avc);
tcase_add_test (tc_chain, rtp_L16);
+ tcase_add_test (tc_chain, rtp_L24);
tcase_add_test (tc_chain, rtp_mp2t);
tcase_add_test (tc_chain, rtp_mp4v);
tcase_add_test (tc_chain, rtp_mp4v_list);
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c
index dfc9a2bd..bc868cba 100644
--- a/tests/check/elements/rtpjitterbuffer.c
+++ b/tests/check/elements/rtpjitterbuffer.c
@@ -25,6 +25,8 @@
#include <gst/check/gstcheck.h>
#include <gst/check/gsttestclock.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
/* 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 */
@@ -323,7 +325,6 @@ GST_START_TEST (test_basetime)
GST_END_TEST;
-#if 0
static const guint payload_size = 160;
static const guint clock_rate = 8000;
static const guint pcmu_payload_type = 0;
@@ -357,25 +358,29 @@ generate_test_buffer (GstClockTime gst_ts,
GstBuffer *buf;
guint8 *payload;
guint i;
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0);
GST_BUFFER_TIMESTAMP (buf) = gst_ts;
- GST_BUFFER_CAPS (buf) = generate_caps ();
- gst_rtp_buffer_set_payload_type (buf, pcmu_payload_type);
- gst_rtp_buffer_set_marker (buf, marker_bit);
- gst_rtp_buffer_set_seq (buf, seq_num);
- gst_rtp_buffer_set_timestamp (buf, rtp_ts);
- gst_rtp_buffer_set_ssrc (buf, test_ssrc);
-
- payload = gst_rtp_buffer_get_payload (buf);
+
+ gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+ gst_rtp_buffer_set_payload_type (&rtp, pcmu_payload_type);
+ gst_rtp_buffer_set_marker (&rtp, marker_bit);
+ gst_rtp_buffer_set_seq (&rtp, seq_num);
+ gst_rtp_buffer_set_timestamp (&rtp, rtp_ts);
+ gst_rtp_buffer_set_ssrc (&rtp, test_ssrc);
+
+ payload = gst_rtp_buffer_get_payload (&rtp);
for (i = 0; i < payload_size; i++)
payload[i] = 0xff;
+ gst_rtp_buffer_unmap (&rtp);
+
return buf;
}
static GstFlowReturn
-test_sink_pad_chain_cb (GstPad * pad, GstBuffer * buffer)
+test_sink_pad_chain_cb (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{
TestData *data = gst_pad_get_element_private (pad);
g_async_queue_push (data->buf_queue, buffer);
@@ -383,10 +388,13 @@ test_sink_pad_chain_cb (GstPad * pad, GstBuffer * buffer)
}
static gboolean
-test_sink_pad_event_cb (GstPad * pad, GstEvent * event)
+test_sink_pad_event_cb (GstPad * pad, GstObject * parent, GstEvent * event)
{
TestData *data = gst_pad_get_element_private (pad);
const GstStructure *structure = gst_event_get_structure (event);
+
+ GST_DEBUG ("got event %" GST_PTR_FORMAT, event);
+
if (strcmp (gst_structure_get_name (structure), "GstRTPPacketLost") == 0)
data->lost_event_count++;
@@ -398,41 +406,42 @@ static void
setup_testharness (TestData * data)
{
GstPad *jb_sink_pad, *jb_src_pad;
+ GstSegment seg;
+ GstMiniObject *obj;
- // create the testclock
+ /* create the testclock */
data->clock = gst_test_clock_new ();
g_assert (data->clock);
gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), 0);
- // rig up the jitter buffer
- data->jitter_buffer = gst_element_factory_make ("gstrtpjitterbuffer", NULL);
+ /* rig up the jitter buffer */
+ data->jitter_buffer = gst_element_factory_make ("rtpjitterbuffer", NULL);
g_assert (data->jitter_buffer);
gst_element_set_clock (data->jitter_buffer, data->clock);
g_object_set (data->jitter_buffer, "do-lost", TRUE, NULL);
g_assert_cmpint (gst_element_set_state (data->jitter_buffer,
GST_STATE_PLAYING), !=, GST_STATE_CHANGE_FAILURE);
- // link in the test source-pad
+ /* link in the test source-pad */
data->test_src_pad = gst_pad_new ("src", GST_PAD_SRC);
- gst_pad_set_caps (data->test_src_pad, generate_caps ());
- jb_sink_pad = gst_element_get_pad (data->jitter_buffer, "sink");
+ jb_sink_pad = gst_element_get_static_pad (data->jitter_buffer, "sink");
g_assert_cmpint (gst_pad_link (data->test_src_pad, jb_sink_pad), ==,
GST_PAD_LINK_OK);
g_assert (gst_pad_set_active (data->test_src_pad, TRUE));
gst_object_unref (jb_sink_pad);
- // link in the test sink-pad
+ /* link in the test sink-pad */
data->test_sink_pad = gst_pad_new ("sink", GST_PAD_SINK);
gst_pad_set_caps (data->test_sink_pad, generate_caps ());
gst_pad_set_chain_function (data->test_sink_pad, test_sink_pad_chain_cb);
gst_pad_set_event_function (data->test_sink_pad, test_sink_pad_event_cb);
- jb_src_pad = gst_element_get_pad (data->jitter_buffer, "src");
+ jb_src_pad = gst_element_get_static_pad (data->jitter_buffer, "src");
g_assert_cmpint (gst_pad_link (jb_src_pad, data->test_sink_pad), ==,
GST_PAD_LINK_OK);
g_assert (gst_pad_set_active (data->test_sink_pad, TRUE));
gst_object_unref (jb_src_pad);
- // set up the buf and event queues
+ /* set up the buf and event queues */
data->buf_queue =
g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref);
data->event_queue =
@@ -440,12 +449,22 @@ setup_testharness (TestData * data)
data->lost_event_count = 0;
gst_pad_set_element_private (data->test_sink_pad, data);
+
+ gst_segment_init (&seg, GST_FORMAT_TIME);
+
+ gst_pad_push_event (data->test_src_pad,
+ gst_event_new_stream_start ("stream0"));
+ gst_pad_set_caps (data->test_src_pad, generate_caps ());
+ gst_pad_push_event (data->test_src_pad, gst_event_new_segment (&seg));
+
+ while ((obj = g_async_queue_try_pop (data->event_queue)))
+ gst_mini_object_unref (obj);
}
static void
destroy_testharness (TestData * data)
{
- // clean up
+ /* clean up */
g_assert_cmpint (gst_element_set_state (data->jitter_buffer, GST_STATE_NULL),
==, GST_STATE_CHANGE_SUCCESS);
gst_object_unref (data->jitter_buffer);
@@ -501,74 +520,76 @@ verify_lost_event (GstEvent * event, guint32 expected_seqnum,
GST_START_TEST (test_only_one_lost_event_on_large_gaps)
{
TestData data;
- GstTestClockPendingID id;
+ GstClockID id, test_id;
guint64 timeout;
GstBuffer *in_buf, *out_buf;
GstEvent *out_event;
gint jb_latency_ms = 200;
guint buffer_size_ms = (payload_size * 1000) / clock_rate;
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
setup_testharness (&data);
timeout = 20 * G_USEC_PER_SEC;
g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
- // push the first buffer in
+ /* push the first buffer in */
in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // wait for the first buffer to be synced to timestamp + latency
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
+ /* wait for the first buffer to be synced to timestamp + latency */
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
- // increase the time to timestamp + latency and release the wait
+ /* increase the time to timestamp + latency and release the wait */
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
jb_latency_ms * GST_MSECOND);
g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ == id);
- // check for the buffer coming out that was pushed in
+ /* check for the buffer coming out that was pushed in */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0);
- // move time ahead 10 seconds
+ /* move time ahead 10 seconds */
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
- // wait a bit
+ /* wait a bit */
g_usleep (G_USEC_PER_SEC / 10);
- // check that no buffers have been pushed out and no pending waits
+ /* check that no buffers have been pushed out and no pending waits */
g_assert_cmpint (g_async_queue_length (data.buf_queue), ==, 0);
g_assert (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock),
&id) == FALSE);
- // a buffer now arrives perfectly on time
+ /* a buffer now arrives perfectly on time */
in_buf = generate_test_buffer (10 * GST_SECOND, FALSE, 500, 500 * 160);
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // release the wait
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
- g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ /* release the wait */
+ GST_DEBUG ("wait for id");
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+ GST_DEBUG ("got wait id %p", id);
+ gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock), GST_MSECOND * 20);
+ test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
+ GST_DEBUG ("process id %p", test_id);
+ g_assert (id == test_id);
- // we should now receive a packet-lost-event for buffers 1 through 489
+ /* we should now receive a packet-lost-event for buffers 1 through 489 */
out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
g_assert (out_event != NULL);
g_assert_cmpint (data.lost_event_count, ==, 1);
- verify_lost_event (out_event, 1, 1 * GST_MSECOND * 20, GST_MSECOND * 20 * 489,
+ verify_lost_event (out_event, 1, 1 * GST_MSECOND * 20, GST_MSECOND * 20 * 490,
TRUE);
- // churn through sync_times until the new buffer gets pushed out
+ /* churn through sync_times until the new buffer gets pushed out */
while (g_async_queue_length (data.buf_queue) < 1) {
if (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), &id)) {
- if (id.time > gst_clock_get_time (data.clock)) {
- gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time);
- g_print ("setting time to %" GST_TIME_FORMAT "\n",
- GST_TIME_ARGS (id.time));
+ GstClockTime t = gst_clock_id_get_time (id);
+ if (t > gst_clock_get_time (data.clock)) {
+ gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), t);
}
gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
}
@@ -577,13 +598,14 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps)
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
- g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 500);
+ gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
+ g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, 500);
+ gst_rtp_buffer_unmap (&rtp);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, (10 * GST_SECOND));
- // we get as many lost events as the the number of buffers the jitterbuffer
- // is able to wait for (+ the one we already got)
- g_assert_cmpint (data.lost_event_count, ==,
- jb_latency_ms / buffer_size_ms + 1);
+ /* we get as many lost events as the the number of buffers the jitterbuffer
+ * is able to wait for (+ the one we already got) */
+ g_assert_cmpint (data.lost_event_count, ==, jb_latency_ms / buffer_size_ms);
destroy_testharness (&data);
}
@@ -593,89 +615,93 @@ GST_END_TEST;
GST_START_TEST (test_two_lost_one_arrives_in_time)
{
TestData data;
- GstTestClockPendingID id;
+ GstClockID id;
guint64 timeout;
GstBuffer *in_buf, *out_buf;
GstEvent *out_event;
- gint jb_latency_ms = 10;
- GstClockTime buffer_time;
+ gint jb_latency_ms = 100;
+ GstClockTime buffer_time, now;
gint b;
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
setup_testharness (&data);
timeout = 20 * G_USEC_PER_SEC;
g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
- // push the first buffer in
+ /* push the first buffer in */
in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
- gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
- jb_latency_ms * GST_MSECOND);
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+ now = jb_latency_ms * GST_MSECOND;
+ gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), now);
g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ == id);
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
- // push some buffers arriving in perfect time!
+ /* push some buffers arriving in perfect time! */
for (b = 1; b < 3; b++) {
buffer_time = b * GST_MSECOND * 20;
in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
- gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), buffer_time);
+ gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), now + buffer_time);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // check for the buffer coming out that was pushed in
+ /* check for the buffer coming out that was pushed in */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time);
}
- // hop over 2 packets and make another one (gap of 2)
+ /* hop over 2 packets and make another one (gap of 2) */
b = 5;
buffer_time = b * GST_MSECOND * 20;
in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // verify that the jitterbuffer now wait for the latest moment it can push
- // the first lost buffer (buffer 3) out on (buffer-timestamp (60) + latency (10) = 70)
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
- g_assert_cmpint (id.time, ==,
+ /* verify that the jitterbuffer now wait for the latest moment it can push */
+ /* the first lost buffer (buffer 3) out on (buffer-timestamp (60) + latency (10) = 70) */
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+ g_assert_cmpint (gst_clock_id_get_time (id), ==,
(3 * GST_MSECOND * 20) + (jb_latency_ms * GST_MSECOND));
- // let the time expire...
- gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time);
+ /* let the time expire... */
+ gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
+ gst_clock_id_get_time (id));
g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ == id);
- // we should now receive a packet-lost-event for buffer 3
+ /* we should now receive a packet-lost-event for buffer 3 */
out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
g_assert (out_event != NULL);
g_assert_cmpint (data.lost_event_count, ==, 1);
verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20,
FALSE);
- // buffer 4 now arrives just in time (time is 70, buffer 4 expires at 90)
+ /* buffer 4 now arrives just in time (time is 70, buffer 4 expires at 90) */
b = 4;
buffer_time = b * GST_MSECOND * 20;
in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // verify that buffer 4 made it through!
+ /* verify that buffer 4 made it through! */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
- g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 4);
+ gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
+ g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, 4);
+ gst_rtp_buffer_unmap (&rtp);
- // and see that buffer 5 now arrives in a normal fashion
+ /* and see that buffer 5 now arrives in a normal fashion */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert (!GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
- g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+ gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
+ g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, 5);
+ gst_rtp_buffer_unmap (&rtp);
- // should still have only seen 1 packet lost event
+ /* should still have only seen 1 packet lost event */
g_assert_cmpint (data.lost_event_count, ==, 1);
destroy_testharness (&data);
@@ -686,13 +712,14 @@ GST_END_TEST;
GST_START_TEST (test_late_packets_still_makes_lost_events)
{
TestData data;
- GstTestClockPendingID id;
+ GstClockID id;
guint64 timeout;
GstBuffer *in_buf, *out_buf;
GstEvent *out_event;
gint jb_latency_ms = 10;
GstClockTime buffer_time;
gint b;
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
setup_testharness (&data);
timeout = 20 * G_USEC_PER_SEC;
@@ -701,55 +728,50 @@ GST_START_TEST (test_late_packets_still_makes_lost_events)
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
- // push the first buffer in
+ /* push the first buffer in */
in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ == id);
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
- // push some buffers in!
+ /* push some buffers in! */
for (b = 1; b < 3; b++) {
buffer_time = b * GST_MSECOND * 20;
in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // check for the buffer coming out that was pushed in
+ /* check for the buffer coming out that was pushed in */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time);
}
- // hop over 2 packets and make another one (gap of 2)
+ /* hop over 2 packets and make another one (gap of 2) */
b = 5;
buffer_time = b * GST_MSECOND * 20;
in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // release the wait
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
- g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
-
- // we should now receive a packet-lost-event for buffer 3 and 4
+ /* we should now receive a packet-lost-event for buffer 3 and 4 */
out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
g_assert (out_event != NULL);
g_assert_cmpint (data.lost_event_count, ==, 1);
verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20 * 2,
TRUE);
- // verify that buffer 5 made it through!
+ /* verify that buffer 5 made it through! */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
- g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+ gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
+ g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, 5);
+ gst_rtp_buffer_unmap (&rtp);
- // should still have only seen 1 packet lost event
+ /* should still have only seen 1 packet lost event */
g_assert_cmpint (data.lost_event_count, ==, 1);
destroy_testharness (&data);
@@ -760,13 +782,13 @@ GST_END_TEST;
GST_START_TEST (test_all_packets_are_timestamped_zero)
{
TestData data;
- GstTestClockPendingID id;
+ GstClockID id;
guint64 timeout;
GstBuffer *in_buf, *out_buf;
GstEvent *out_event;
gint jb_latency_ms = 10;
- GstClockTime buffer_time;
gint b;
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
setup_testharness (&data);
timeout = 20 * G_USEC_PER_SEC;
@@ -775,59 +797,58 @@ GST_START_TEST (test_all_packets_are_timestamped_zero)
gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
- // push the first buffer in
+ /* push the first buffer in */
in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
+ gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ == id);
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
- // push some buffers in!
+ /* push some buffers in! */
for (b = 1; b < 3; b++) {
in_buf = generate_test_buffer (0, TRUE, b, 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // check for the buffer coming out that was pushed in
+ /* check for the buffer coming out that was pushed in */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0);
}
- // hop over 2 packets and make another one (gap of 2)
+ /* hop over 2 packets and make another one (gap of 2) */
b = 5;
in_buf = generate_test_buffer (0, TRUE, b, 0);
g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
- // release the wait
- g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
- (data.clock), &id));
- g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
- == id.clock_id);
+ /* we should now receive a packet-lost-event for buffer 3 and 4 */
+ out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
+ g_assert (out_event != NULL);
+ verify_lost_event (out_event, 3, 0, 0, FALSE);
- // we should now receive a packet-lost-event for buffer 3 and 4
out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
g_assert (out_event != NULL);
- g_assert_cmpint (data.lost_event_count, ==, 1);
- verify_lost_event (out_event, 3, 0, 0, TRUE);
+ verify_lost_event (out_event, 4, 0, 0, FALSE);
- // verify that buffer 5 made it through!
+ g_assert_cmpint (data.lost_event_count, ==, 2);
+
+ /* verify that buffer 5 made it through! */
out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
g_assert (out_buf != NULL);
g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
- g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+ gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
+ g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, 5);
+ gst_rtp_buffer_unmap (&rtp);
- // should still have only seen 1 packet lost event
- g_assert_cmpint (data.lost_event_count, ==, 1);
+ /* should still have only seen 1 packet lost event */
+ g_assert_cmpint (data.lost_event_count, ==, 2);
destroy_testharness (&data);
}
GST_END_TEST;
-#endif
static Suite *
rtpjitterbuffer_suite (void)
@@ -840,14 +861,10 @@ rtpjitterbuffer_suite (void)
tcase_add_test (tc_chain, test_push_backward_seq);
tcase_add_test (tc_chain, test_push_unordered);
tcase_add_test (tc_chain, test_basetime);
-#if 0
tcase_add_test (tc_chain, test_only_one_lost_event_on_large_gaps);
tcase_add_test (tc_chain, test_two_lost_one_arrives_in_time);
tcase_add_test (tc_chain, test_late_packets_still_makes_lost_events);
tcase_add_test (tc_chain, test_all_packets_are_timestamped_zero);
-#endif
-
- /* FIXME: test buffer lists */
return s;
}
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 00cc2c4f..5c240951 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in
index 08a7b033..c94ca347 100644
--- a/tests/examples/audiofx/Makefile.in
+++ b/tests/examples/audiofx/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in
index e7707271..deee2277 100644
--- a/tests/examples/cairo/Makefile.in
+++ b/tests/examples/cairo/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in
index b245916e..6901c0c3 100644
--- a/tests/examples/equalizer/Makefile.in
+++ b/tests/examples/equalizer/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in
index 51e0fadb..ecc6bacd 100644
--- a/tests/examples/jack/Makefile.in
+++ b/tests/examples/jack/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in
index cac2dbfe..b06ec524 100644
--- a/tests/examples/level/Makefile.in
+++ b/tests/examples/level/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in
index 1d2dcd84..435fbaf5 100644
--- a/tests/examples/pulse/Makefile.in
+++ b/tests/examples/pulse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in
index 29dc1106..56882bcf 100644
--- a/tests/examples/rtp/Makefile.in
+++ b/tests/examples/rtp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in
index 5aaaa213..2c52688e 100644
--- a/tests/examples/shapewipe/Makefile.in
+++ b/tests/examples/shapewipe/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in
index 15a0e5bd..4d0dcdb8 100644
--- a/tests/examples/spectrum/Makefile.in
+++ b/tests/examples/spectrum/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in
index bcfa081c..edd13722 100644
--- a/tests/examples/v4l2/Makefile.in
+++ b/tests/examples/v4l2/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index ab3cc278..638dd735 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index a4570123..53b2b42c 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/win32/common/config.h b/win32/common/config.h
index ce37e173..a73fb4ae 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -58,7 +58,7 @@
#define GST_PACKAGE_ORIGIN "Unknown package origin"
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2013-08-28"
+#define GST_PACKAGE_RELEASE_DATETIME "2013-09-19"
/* Define if static plugins should be built */
#undef GST_PLUGIN_BUILD_STATIC
@@ -375,9 +375,6 @@
*/
#undef LT_OBJDIR
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
/* Name of package */
#define PACKAGE "gst-plugins-good"
@@ -388,7 +385,7 @@
#define PACKAGE_NAME "GStreamer Good Plug-ins"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Good Plug-ins 1.1.4"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.1.90"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-good"
@@ -397,7 +394,7 @@
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.1.4"
+#define PACKAGE_VERSION "1.1.90"
/* directory where plugins are located */
#ifdef _DEBUG
@@ -431,7 +428,7 @@
#undef TARGET_CPU
/* Version number of package */
-#define VERSION "1.1.4"
+#define VERSION "1.1.90"
/* old wavpack API */
#undef WAVPACK_OLD_API